@contractspec/example.analytics-dashboard 1.57.0 → 1.59.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
@@ -1,5 +1,300 @@
1
- import { DashboardStatusEnum, RefreshIntervalEnum, WidgetTypeEnum } from "./dashboard.enum.js";
2
- import { AddWidgetInputModel, CreateDashboardInputModel, DashboardModel, GetDashboardInputModel, ListDashboardsInputModel, ListDashboardsOutputModel, WidgetModel } from "./dashboard.schema.js";
3
- import { AddWidgetContract, CreateDashboardContract, GetDashboardContract, ListDashboardsContract } from "./dashboard.operation.js";
1
+ // @bun
2
+ // src/dashboard/dashboard.enum.ts
3
+ import { defineEnum } from "@contractspec/lib.schema";
4
+ var DashboardStatusEnum = defineEnum("DashboardStatus", [
5
+ "DRAFT",
6
+ "PUBLISHED",
7
+ "ARCHIVED"
8
+ ]);
9
+ var WidgetTypeEnum = defineEnum("WidgetType", [
10
+ "LINE_CHART",
11
+ "BAR_CHART",
12
+ "PIE_CHART",
13
+ "AREA_CHART",
14
+ "SCATTER_PLOT",
15
+ "METRIC",
16
+ "TABLE",
17
+ "HEATMAP",
18
+ "FUNNEL",
19
+ "MAP",
20
+ "TEXT",
21
+ "EMBED"
22
+ ]);
23
+ var RefreshIntervalEnum = defineEnum("RefreshInterval", [
24
+ "NONE",
25
+ "MINUTE",
26
+ "FIVE_MINUTES",
27
+ "FIFTEEN_MINUTES",
28
+ "HOUR",
29
+ "DAY"
30
+ ]);
4
31
 
5
- export { AddWidgetContract, AddWidgetInputModel, CreateDashboardContract, CreateDashboardInputModel, DashboardModel, DashboardStatusEnum, GetDashboardContract, GetDashboardInputModel, ListDashboardsContract, ListDashboardsInputModel, ListDashboardsOutputModel, RefreshIntervalEnum, WidgetModel, WidgetTypeEnum };
32
+ // src/dashboard/dashboard.schema.ts
33
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
34
+ var WidgetModel = defineSchemaModel({
35
+ name: "WidgetModel",
36
+ fields: {
37
+ id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
38
+ dashboardId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
39
+ name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
40
+ type: { type: WidgetTypeEnum, isOptional: false },
41
+ gridX: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
42
+ gridY: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
43
+ gridWidth: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
44
+ gridHeight: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
45
+ queryId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
46
+ config: { type: ScalarTypeEnum.JSON(), isOptional: true }
47
+ }
48
+ });
49
+ var DashboardModel = defineSchemaModel({
50
+ name: "DashboardModel",
51
+ fields: {
52
+ id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
53
+ name: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
54
+ slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
55
+ description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
56
+ status: { type: DashboardStatusEnum, isOptional: false },
57
+ refreshInterval: { type: RefreshIntervalEnum, isOptional: false },
58
+ isPublic: { type: ScalarTypeEnum.Boolean(), isOptional: false },
59
+ widgets: { type: WidgetModel, isArray: true, isOptional: true },
60
+ createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false }
61
+ }
62
+ });
63
+ var CreateDashboardInputModel = defineSchemaModel({
64
+ name: "CreateDashboardInput",
65
+ fields: {
66
+ name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
67
+ slug: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
68
+ description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
69
+ refreshInterval: { type: RefreshIntervalEnum, isOptional: true },
70
+ dateRange: { type: ScalarTypeEnum.JSON(), isOptional: true }
71
+ }
72
+ });
73
+ var AddWidgetInputModel = defineSchemaModel({
74
+ name: "AddWidgetInput",
75
+ fields: {
76
+ dashboardId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
77
+ name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
78
+ type: { type: WidgetTypeEnum, isOptional: false },
79
+ gridX: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },
80
+ gridY: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },
81
+ gridWidth: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },
82
+ gridHeight: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },
83
+ queryId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
84
+ config: { type: ScalarTypeEnum.JSON(), isOptional: true }
85
+ }
86
+ });
87
+ var ListDashboardsInputModel = defineSchemaModel({
88
+ name: "ListDashboardsInput",
89
+ fields: {
90
+ status: { type: DashboardStatusEnum, isOptional: true },
91
+ search: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
92
+ limit: {
93
+ type: ScalarTypeEnum.Int_unsecure(),
94
+ isOptional: true,
95
+ defaultValue: 20
96
+ },
97
+ offset: {
98
+ type: ScalarTypeEnum.Int_unsecure(),
99
+ isOptional: true,
100
+ defaultValue: 0
101
+ }
102
+ }
103
+ });
104
+ var ListDashboardsOutputModel = defineSchemaModel({
105
+ name: "ListDashboardsOutput",
106
+ fields: {
107
+ dashboards: { type: DashboardModel, isArray: true, isOptional: false },
108
+ total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false }
109
+ }
110
+ });
111
+ var GetDashboardInputModel = defineSchemaModel({
112
+ name: "GetDashboardInput",
113
+ fields: {
114
+ dashboardId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
115
+ slug: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
116
+ shareToken: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
117
+ }
118
+ });
119
+
120
+ // src/dashboard/dashboard.operation.ts
121
+ import {
122
+ defineCommand,
123
+ defineQuery
124
+ } from "@contractspec/lib.contracts/operations";
125
+ var OWNERS = ["@example.analytics-dashboard"];
126
+ var CreateDashboardContract = defineCommand({
127
+ meta: {
128
+ key: "analytics.dashboard.create",
129
+ version: "1.0.0",
130
+ stability: "stable",
131
+ owners: [...OWNERS],
132
+ tags: ["analytics", "dashboard", "create"],
133
+ description: "Create a new analytics dashboard.",
134
+ goal: "Allow users to create custom dashboards.",
135
+ context: "Dashboard management."
136
+ },
137
+ io: { input: CreateDashboardInputModel, output: DashboardModel },
138
+ policy: { auth: "user" },
139
+ sideEffects: {
140
+ emits: [
141
+ {
142
+ key: "analytics.dashboard.created",
143
+ version: "1.0.0",
144
+ stability: "stable",
145
+ owners: [...OWNERS],
146
+ tags: ["analytics", "dashboard", "created"],
147
+ when: "Dashboard created",
148
+ payload: DashboardModel
149
+ }
150
+ ],
151
+ audit: ["analytics.dashboard.created"]
152
+ },
153
+ acceptance: {
154
+ scenarios: [
155
+ {
156
+ key: "create-dashboard-happy-path",
157
+ given: ["User is authenticated"],
158
+ when: ["User submits valid dashboard configuration"],
159
+ then: ["Dashboard is created", "DashboardCreated event is emitted"]
160
+ }
161
+ ],
162
+ examples: [
163
+ {
164
+ key: "create-basic",
165
+ input: {
166
+ name: "Revenue Dashboard",
167
+ description: "Monthly revenue metrics"
168
+ },
169
+ output: { id: "dash-123", name: "Revenue Dashboard", widgets: [] }
170
+ }
171
+ ]
172
+ }
173
+ });
174
+ var AddWidgetContract = defineCommand({
175
+ meta: {
176
+ key: "analytics.widget.add",
177
+ version: "1.0.0",
178
+ stability: "stable",
179
+ owners: [...OWNERS],
180
+ tags: ["analytics", "widget", "add"],
181
+ description: "Add a widget to a dashboard.",
182
+ goal: "Allow users to add visualizations.",
183
+ context: "Dashboard editor."
184
+ },
185
+ io: { input: AddWidgetInputModel, output: WidgetModel },
186
+ policy: { auth: "user" },
187
+ sideEffects: {
188
+ emits: [
189
+ {
190
+ key: "analytics.widget.added",
191
+ version: "1.0.0",
192
+ stability: "stable",
193
+ owners: [...OWNERS],
194
+ tags: ["analytics", "widget", "added"],
195
+ when: "Widget added",
196
+ payload: WidgetModel
197
+ }
198
+ ]
199
+ },
200
+ acceptance: {
201
+ scenarios: [
202
+ {
203
+ key: "add-widget-happy-path",
204
+ given: ["Dashboard exists"],
205
+ when: ["User adds widget to dashboard"],
206
+ then: ["Widget is created", "WidgetAdded event is emitted"]
207
+ }
208
+ ],
209
+ examples: [
210
+ {
211
+ key: "add-chart-widget",
212
+ input: {
213
+ dashboardId: "dash-123",
214
+ type: "chart",
215
+ queryId: "query-456",
216
+ config: { chartType: "bar" }
217
+ },
218
+ output: { id: "widget-789", type: "chart", dashboardId: "dash-123" }
219
+ }
220
+ ]
221
+ }
222
+ });
223
+ var ListDashboardsContract = defineQuery({
224
+ meta: {
225
+ key: "analytics.dashboard.list",
226
+ version: "1.0.0",
227
+ stability: "stable",
228
+ owners: [...OWNERS],
229
+ tags: ["analytics", "dashboard", "list"],
230
+ description: "List dashboards.",
231
+ goal: "Browse available dashboards.",
232
+ context: "Dashboard listing."
233
+ },
234
+ io: { input: ListDashboardsInputModel, output: ListDashboardsOutputModel },
235
+ policy: { auth: "user" },
236
+ acceptance: {
237
+ scenarios: [
238
+ {
239
+ key: "list-dashboards-happy-path",
240
+ given: ["User has dashboards"],
241
+ when: ["User lists dashboards"],
242
+ then: ["Paginated list of dashboards is returned"]
243
+ }
244
+ ],
245
+ examples: [
246
+ {
247
+ key: "list-basic",
248
+ input: { limit: 10, offset: 0 },
249
+ output: { items: [], total: 0, hasMore: false }
250
+ }
251
+ ]
252
+ }
253
+ });
254
+ var GetDashboardContract = defineQuery({
255
+ meta: {
256
+ key: "analytics.dashboard.get",
257
+ version: "1.0.0",
258
+ stability: "stable",
259
+ owners: [...OWNERS],
260
+ tags: ["analytics", "dashboard", "get"],
261
+ description: "Get a dashboard with widgets.",
262
+ goal: "Load dashboard for viewing.",
263
+ context: "Dashboard view."
264
+ },
265
+ io: { input: GetDashboardInputModel, output: DashboardModel },
266
+ policy: { auth: "anonymous" },
267
+ acceptance: {
268
+ scenarios: [
269
+ {
270
+ key: "get-dashboard-happy-path",
271
+ given: ["Dashboard exists"],
272
+ when: ["User requests dashboard by ID"],
273
+ then: ["Dashboard with widgets is returned"]
274
+ }
275
+ ],
276
+ examples: [
277
+ {
278
+ key: "get-basic",
279
+ input: { dashboardId: "dash-123" },
280
+ output: { id: "dash-123", name: "Revenue Dashboard", widgets: [] }
281
+ }
282
+ ]
283
+ }
284
+ });
285
+ export {
286
+ WidgetTypeEnum,
287
+ WidgetModel,
288
+ RefreshIntervalEnum,
289
+ ListDashboardsOutputModel,
290
+ ListDashboardsInputModel,
291
+ ListDashboardsContract,
292
+ GetDashboardInputModel,
293
+ GetDashboardContract,
294
+ DashboardStatusEnum,
295
+ DashboardModel,
296
+ CreateDashboardInputModel,
297
+ CreateDashboardContract,
298
+ AddWidgetInputModel,
299
+ AddWidgetContract
300
+ };
@@ -1,6 +1,3 @@
1
- import * as _contractspec_lib_contracts0 from "@contractspec/lib.contracts";
2
-
3
- //#region src/dashboard.feature.d.ts
4
1
  /**
5
2
  * Analytics Dashboard Feature Module
6
3
  *
@@ -10,7 +7,5 @@ import * as _contractspec_lib_contracts0 from "@contractspec/lib.contracts";
10
7
  * This feature module bundles all dashboard and query operations, events,
11
8
  * and presentations into an installable feature following FeatureModuleSpec.
12
9
  */
13
- declare const AnalyticsDashboardFeature: _contractspec_lib_contracts0.FeatureModuleSpec;
14
- //#endregion
15
- export { AnalyticsDashboardFeature };
10
+ export declare const AnalyticsDashboardFeature: import("@contractspec/lib.contracts").FeatureModuleSpec;
16
11
  //# sourceMappingURL=dashboard.feature.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.feature.d.ts","names":[],"sources":["../src/dashboard.feature.ts"],"mappings":";;;;;;AAcA;;;;;;cAAa,yBAAA,EA6GX,4BAAA,CA7GoC,iBAAA"}
1
+ {"version":3,"file":"dashboard.feature.d.ts","sourceRoot":"","sources":["../src/dashboard.feature.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,eAAO,MAAM,yBAAyB,yDA6GpC,CAAC"}
@@ -1,177 +1,85 @@
1
+ // @bun
2
+ // src/dashboard.feature.ts
1
3
  import { defineFeature } from "@contractspec/lib.contracts";
2
-
3
- //#region src/dashboard.feature.ts
4
- /**
5
- * Analytics Dashboard Feature Module
6
- *
7
- * Comprehensive analytics and dashboarding solution for data visualization
8
- * and reporting across the platform.
9
- *
10
- * This feature module bundles all dashboard and query operations, events,
11
- * and presentations into an installable feature following FeatureModuleSpec.
12
- */
13
- const AnalyticsDashboardFeature = defineFeature({
14
- meta: {
15
- key: "analytics-dashboard",
16
- version: "1.0.0",
17
- title: "Analytics Dashboard",
18
- description: "Analytics dashboards with customizable widgets and queries",
19
- domain: "analytics",
20
- owners: ["@analytics-dashboard"],
21
- tags: [
22
- "analytics",
23
- "dashboards",
24
- "widgets",
25
- "queries"
26
- ],
27
- stability: "experimental"
28
- },
29
- operations: [
30
- {
31
- key: "analytics.dashboard.create",
32
- version: "1.0.0"
33
- },
34
- {
35
- key: "analytics.dashboard.list",
36
- version: "1.0.0"
37
- },
38
- {
39
- key: "analytics.dashboard.get",
40
- version: "1.0.0"
41
- },
42
- {
43
- key: "analytics.widget.add",
44
- version: "1.0.0"
45
- },
46
- {
47
- key: "analytics.query.create",
48
- version: "1.0.0"
49
- },
50
- {
51
- key: "analytics.query.execute",
52
- version: "1.0.0"
53
- }
54
- ],
55
- events: [
56
- {
57
- key: "analytics.dashboard.created",
58
- version: "1.0.0"
59
- },
60
- {
61
- key: "analytics.widget.added",
62
- version: "1.0.0"
63
- },
64
- {
65
- key: "analytics.query.created",
66
- version: "1.0.0"
67
- }
68
- ],
69
- presentations: [
70
- {
71
- key: "analytics.dashboard.viewList",
72
- version: "1.0.0"
73
- },
74
- {
75
- key: "analytics.dashboard.view",
76
- version: "1.0.0"
77
- },
78
- {
79
- key: "analytics.dashboard.editor",
80
- version: "1.0.0"
81
- },
82
- {
83
- key: "analytics.query.list",
84
- version: "1.0.0"
85
- },
86
- {
87
- key: "analytics.query.builder",
88
- version: "1.0.0"
89
- }
90
- ],
91
- opToPresentation: [
92
- {
93
- op: {
94
- key: "analytics.dashboard.list",
95
- version: "1.0.0"
96
- },
97
- pres: {
98
- key: "analytics.dashboard.viewList",
99
- version: "1.0.0"
100
- }
101
- },
102
- {
103
- op: {
104
- key: "analytics.dashboard.get",
105
- version: "1.0.0"
106
- },
107
- pres: {
108
- key: "analytics.dashboard.view",
109
- version: "1.0.0"
110
- }
111
- },
112
- {
113
- op: {
114
- key: "analytics.dashboard.create",
115
- version: "1.0.0"
116
- },
117
- pres: {
118
- key: "analytics.dashboard.editor",
119
- version: "1.0.0"
120
- }
121
- },
122
- {
123
- op: {
124
- key: "analytics.query.create",
125
- version: "1.0.0"
126
- },
127
- pres: {
128
- key: "analytics.query.builder",
129
- version: "1.0.0"
130
- }
131
- }
132
- ],
133
- presentationsTargets: [
134
- {
135
- key: "analytics.dashboard.viewList",
136
- version: "1.0.0",
137
- targets: [
138
- "react",
139
- "markdown",
140
- "application/json"
141
- ]
142
- },
143
- {
144
- key: "analytics.dashboard.view",
145
- version: "1.0.0",
146
- targets: ["react", "markdown"]
147
- },
148
- {
149
- key: "analytics.dashboard.editor",
150
- version: "1.0.0",
151
- targets: ["react"]
152
- },
153
- {
154
- key: "analytics.query.builder",
155
- version: "1.0.0",
156
- targets: ["react"]
157
- }
158
- ],
159
- capabilities: { requires: [
160
- {
161
- key: "identity",
162
- version: "1.0.0"
163
- },
164
- {
165
- key: "metering",
166
- version: "1.0.0"
167
- },
168
- {
169
- key: "audit-trail",
170
- version: "1.0.0"
171
- }
172
- ] }
4
+ var AnalyticsDashboardFeature = defineFeature({
5
+ meta: {
6
+ key: "analytics-dashboard",
7
+ version: "1.0.0",
8
+ title: "Analytics Dashboard",
9
+ description: "Analytics dashboards with customizable widgets and queries",
10
+ domain: "analytics",
11
+ owners: ["@analytics-dashboard"],
12
+ tags: ["analytics", "dashboards", "widgets", "queries"],
13
+ stability: "experimental"
14
+ },
15
+ operations: [
16
+ { key: "analytics.dashboard.create", version: "1.0.0" },
17
+ { key: "analytics.dashboard.list", version: "1.0.0" },
18
+ { key: "analytics.dashboard.get", version: "1.0.0" },
19
+ { key: "analytics.widget.add", version: "1.0.0" },
20
+ { key: "analytics.query.create", version: "1.0.0" },
21
+ { key: "analytics.query.execute", version: "1.0.0" }
22
+ ],
23
+ events: [
24
+ { key: "analytics.dashboard.created", version: "1.0.0" },
25
+ { key: "analytics.widget.added", version: "1.0.0" },
26
+ { key: "analytics.query.created", version: "1.0.0" }
27
+ ],
28
+ presentations: [
29
+ { key: "analytics.dashboard.viewList", version: "1.0.0" },
30
+ { key: "analytics.dashboard.view", version: "1.0.0" },
31
+ { key: "analytics.dashboard.editor", version: "1.0.0" },
32
+ { key: "analytics.query.list", version: "1.0.0" },
33
+ { key: "analytics.query.builder", version: "1.0.0" }
34
+ ],
35
+ opToPresentation: [
36
+ {
37
+ op: { key: "analytics.dashboard.list", version: "1.0.0" },
38
+ pres: { key: "analytics.dashboard.viewList", version: "1.0.0" }
39
+ },
40
+ {
41
+ op: { key: "analytics.dashboard.get", version: "1.0.0" },
42
+ pres: { key: "analytics.dashboard.view", version: "1.0.0" }
43
+ },
44
+ {
45
+ op: { key: "analytics.dashboard.create", version: "1.0.0" },
46
+ pres: { key: "analytics.dashboard.editor", version: "1.0.0" }
47
+ },
48
+ {
49
+ op: { key: "analytics.query.create", version: "1.0.0" },
50
+ pres: { key: "analytics.query.builder", version: "1.0.0" }
51
+ }
52
+ ],
53
+ presentationsTargets: [
54
+ {
55
+ key: "analytics.dashboard.viewList",
56
+ version: "1.0.0",
57
+ targets: ["react", "markdown", "application/json"]
58
+ },
59
+ {
60
+ key: "analytics.dashboard.view",
61
+ version: "1.0.0",
62
+ targets: ["react", "markdown"]
63
+ },
64
+ {
65
+ key: "analytics.dashboard.editor",
66
+ version: "1.0.0",
67
+ targets: ["react"]
68
+ },
69
+ {
70
+ key: "analytics.query.builder",
71
+ version: "1.0.0",
72
+ targets: ["react"]
73
+ }
74
+ ],
75
+ capabilities: {
76
+ requires: [
77
+ { key: "identity", version: "1.0.0" },
78
+ { key: "metering", version: "1.0.0" },
79
+ { key: "audit-trail", version: "1.0.0" }
80
+ ]
81
+ }
173
82
  });
174
-
175
- //#endregion
176
- export { AnalyticsDashboardFeature };
177
- //# sourceMappingURL=dashboard.feature.js.map
83
+ export {
84
+ AnalyticsDashboardFeature
85
+ };
@@ -1,22 +1,18 @@
1
- import { IQueryEngine, QueryDefinition, QueryParameters, QueryResult } from "../query-engine/index.js";
2
- import { AnalyticsReader } from "@contractspec/lib.contracts/integrations/providers/analytics";
3
-
4
- //#region src/datasource/posthog-datasource.d.ts
5
- interface PosthogQueryEngineOptions {
6
- defaultLimit?: number;
1
+ import type { AnalyticsReader } from '@contractspec/lib.contracts/integrations/providers/analytics';
2
+ import type { IQueryEngine, QueryDefinition, QueryParameters, QueryResult } from '../query-engine';
3
+ export interface PosthogQueryEngineOptions {
4
+ defaultLimit?: number;
7
5
  }
8
- declare class PosthogQueryEngine implements IQueryEngine {
9
- private readonly reader;
10
- private readonly defaultLimit;
11
- constructor(reader: AnalyticsReader, options?: PosthogQueryEngineOptions);
12
- execute(definition: QueryDefinition, params: QueryParameters): Promise<QueryResult>;
13
- validateQuery(definition: QueryDefinition): {
14
- valid: boolean;
15
- errors: string[];
16
- };
17
- private executeHogQL;
6
+ export declare class PosthogQueryEngine implements IQueryEngine {
7
+ private readonly reader;
8
+ private readonly defaultLimit;
9
+ constructor(reader: AnalyticsReader, options?: PosthogQueryEngineOptions);
10
+ execute(definition: QueryDefinition, params: QueryParameters): Promise<QueryResult>;
11
+ validateQuery(definition: QueryDefinition): {
12
+ valid: boolean;
13
+ errors: string[];
14
+ };
15
+ private executeHogQL;
18
16
  }
19
- declare function createPosthogQueryEngine(reader: AnalyticsReader, options?: PosthogQueryEngineOptions): IQueryEngine;
20
- //#endregion
21
- export { PosthogQueryEngine, PosthogQueryEngineOptions, createPosthogQueryEngine };
17
+ export declare function createPosthogQueryEngine(reader: AnalyticsReader, options?: PosthogQueryEngineOptions): IQueryEngine;
22
18
  //# sourceMappingURL=posthog-datasource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"posthog-datasource.d.ts","names":[],"sources":["../../src/datasource/posthog-datasource.ts"],"mappings":";;;;UAaiB,yBAAA;EACf,YAAA;AAAA;AAAA,cAGW,kBAAA,YAA8B,YAAA;EAAA,iBACxB,MAAA;EAAA,iBACA,YAAA;cAGf,MAAA,EAAQ,eAAA,EACR,OAAA,GAAS,yBAAA;EAML,OAAA,CACJ,UAAA,EAAY,eAAA,EACZ,MAAA,EAAQ,eAAA,GACP,OAAA,CAAQ,WAAA;EA8CX,aAAA,CAAc,UAAA,EAAY,eAAA;IACxB,KAAA;IACA,MAAA;EAAA;EAAA,QAkBY,YAAA;AAAA;AAAA,iBAmCA,wBAAA,CACd,MAAA,EAAQ,eAAA,EACR,OAAA,GAAU,yBAAA,GACT,YAAA"}
1
+ {"version":3,"file":"posthog-datasource.d.ts","sourceRoot":"","sources":["../../src/datasource/posthog-datasource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,eAAe,EAChB,MAAM,8DAA8D,CAAC;AACtE,OAAO,KAAK,EAGV,YAAY,EACZ,eAAe,EACf,eAAe,EACf,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,yBAAyB;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAGpC,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,yBAA8B;IAMnC,OAAO,CACX,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,WAAW,CAAC;IA8CvB,aAAa,CAAC,UAAU,EAAE,eAAe,GAAG;QAC1C,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB;YAiBa,YAAY;CAiC3B;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EACvB,OAAO,CAAC,EAAE,yBAAyB,GAClC,YAAY,CAEd"}