@contractspec/example.analytics-dashboard 1.56.1 → 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 (171) 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 -7
  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 +18 -0
  53. package/dist/datasource/posthog-datasource.d.ts.map +1 -0
  54. package/dist/datasource/posthog-datasource.js +290 -0
  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 +46 -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 +40 -55
  67. package/dist/handlers/analytics.handlers.d.ts +110 -110
  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 -2
  71. package/dist/handlers/index.d.ts.map +1 -0
  72. package/dist/handlers/index.js +571 -2
  73. package/dist/handlers/query.handlers.d.ts +9 -0
  74. package/dist/handlers/query.handlers.d.ts.map +1 -0
  75. package/dist/handlers/query.handlers.js +295 -0
  76. package/dist/index.d.ts +12 -12
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/index.js +1678 -13
  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 -86
  128. package/dist/query-engine/index.d.ts.map +1 -1
  129. package/dist/query-engine/index.js +490 -187
  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 -15
  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 +329 -62
  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/docs/analytics-dashboard.docblock.js.map +0 -1
  159. package/dist/events.js.map +0 -1
  160. package/dist/example.js.map +0 -1
  161. package/dist/handlers/analytics.handlers.js.map +0 -1
  162. package/dist/query/query.enum.js.map +0 -1
  163. package/dist/query/query.operation.js.map +0 -1
  164. package/dist/query/query.presentation.js.map +0 -1
  165. package/dist/query/query.schema.js.map +0 -1
  166. package/dist/query/query.test-spec.js.map +0 -1
  167. package/dist/query-engine/index.js.map +0 -1
  168. package/dist/seeders/index.js.map +0 -1
  169. package/dist/ui/AnalyticsDashboard.js.map +0 -1
  170. package/dist/ui/hooks/useAnalyticsData.js.map +0 -1
  171. package/dist/ui/renderers/analytics.markdown.js.map +0 -1
@@ -1,90 +1,198 @@
1
- import { DashboardModel } from "./dashboard.schema.js";
2
- import { StabilityEnum, definePresentation } from "@contractspec/lib.contracts";
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
+ ]);
3
31
 
4
- //#region src/dashboard/dashboard.presentation.ts
5
- const DashboardsListPresentation = definePresentation({
6
- meta: {
7
- key: "analytics.dashboard.viewList",
8
- version: "1.0.0",
9
- title: "Dashboards List",
10
- description: "List of analytics dashboards",
11
- domain: "analytics",
12
- owners: ["@analytics-dashboard"],
13
- tags: [
14
- "analytics",
15
- "dashboards",
16
- "list"
17
- ],
18
- stability: StabilityEnum.Experimental,
19
- goal: "Show users available analytics dashboards.",
20
- context: "The main dashboard management view."
21
- },
22
- source: {
23
- type: "component",
24
- framework: "react",
25
- componentKey: "DashboardsList",
26
- props: DashboardModel
27
- },
28
- targets: [
29
- "react",
30
- "markdown",
31
- "application/json"
32
- ],
33
- policy: { flags: ["analytics.dashboards.enabled"] }
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
+ }
34
48
  });
35
- const DashboardViewPresentation = definePresentation({
36
- meta: {
37
- key: "analytics.dashboard.view",
38
- version: "1.0.0",
39
- title: "Dashboard View",
40
- description: "View a single dashboard with widgets",
41
- domain: "analytics",
42
- owners: ["@analytics-dashboard"],
43
- tags: [
44
- "analytics",
45
- "dashboard",
46
- "view"
47
- ],
48
- stability: StabilityEnum.Experimental,
49
- goal: "Render a dashboard with its visualizations and data.",
50
- context: "The interactive viewing interface."
51
- },
52
- source: {
53
- type: "component",
54
- framework: "react",
55
- componentKey: "DashboardView",
56
- props: DashboardModel
57
- },
58
- targets: ["react", "markdown"],
59
- policy: { flags: ["analytics.dashboards.enabled"] }
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
+ }
60
62
  });
61
- const DashboardEditorPresentation = definePresentation({
62
- meta: {
63
- key: "analytics.dashboard.editor",
64
- version: "1.0.0",
65
- title: "Dashboard Editor",
66
- description: "Edit dashboard configuration and widgets",
67
- domain: "analytics",
68
- owners: ["@analytics-dashboard"],
69
- tags: [
70
- "analytics",
71
- "dashboard",
72
- "editor"
73
- ],
74
- stability: StabilityEnum.Experimental,
75
- goal: "Configure dashboard layout and widget settings.",
76
- context: "Management tool for analysts."
77
- },
78
- source: {
79
- type: "component",
80
- framework: "react",
81
- componentKey: "DashboardEditor",
82
- props: DashboardModel
83
- },
84
- targets: ["react"],
85
- policy: { flags: ["analytics.dashboards.enabled"] }
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
+ }
86
118
  });
87
119
 
88
- //#endregion
89
- export { DashboardEditorPresentation, DashboardViewPresentation, DashboardsListPresentation };
90
- //# sourceMappingURL=dashboard.presentation.js.map
120
+ // src/dashboard/dashboard.presentation.ts
121
+ import { definePresentation, StabilityEnum } from "@contractspec/lib.contracts";
122
+ var DashboardsListPresentation = definePresentation({
123
+ meta: {
124
+ key: "analytics.dashboard.viewList",
125
+ version: "1.0.0",
126
+ title: "Dashboards List",
127
+ description: "List of analytics dashboards",
128
+ domain: "analytics",
129
+ owners: ["@analytics-dashboard"],
130
+ tags: ["analytics", "dashboards", "list"],
131
+ stability: StabilityEnum.Experimental,
132
+ goal: "Show users available analytics dashboards.",
133
+ context: "The main dashboard management view."
134
+ },
135
+ source: {
136
+ type: "component",
137
+ framework: "react",
138
+ componentKey: "DashboardsList",
139
+ props: DashboardModel
140
+ },
141
+ targets: ["react", "markdown", "application/json"],
142
+ policy: {
143
+ flags: ["analytics.dashboards.enabled"]
144
+ }
145
+ });
146
+ var DashboardViewPresentation = definePresentation({
147
+ meta: {
148
+ key: "analytics.dashboard.view",
149
+ version: "1.0.0",
150
+ title: "Dashboard View",
151
+ description: "View a single dashboard with widgets",
152
+ domain: "analytics",
153
+ owners: ["@analytics-dashboard"],
154
+ tags: ["analytics", "dashboard", "view"],
155
+ stability: StabilityEnum.Experimental,
156
+ goal: "Render a dashboard with its visualizations and data.",
157
+ context: "The interactive viewing interface."
158
+ },
159
+ source: {
160
+ type: "component",
161
+ framework: "react",
162
+ componentKey: "DashboardView",
163
+ props: DashboardModel
164
+ },
165
+ targets: ["react", "markdown"],
166
+ policy: {
167
+ flags: ["analytics.dashboards.enabled"]
168
+ }
169
+ });
170
+ var DashboardEditorPresentation = definePresentation({
171
+ meta: {
172
+ key: "analytics.dashboard.editor",
173
+ version: "1.0.0",
174
+ title: "Dashboard Editor",
175
+ description: "Edit dashboard configuration and widgets",
176
+ domain: "analytics",
177
+ owners: ["@analytics-dashboard"],
178
+ tags: ["analytics", "dashboard", "editor"],
179
+ stability: StabilityEnum.Experimental,
180
+ goal: "Configure dashboard layout and widget settings.",
181
+ context: "Management tool for analysts."
182
+ },
183
+ source: {
184
+ type: "component",
185
+ framework: "react",
186
+ componentKey: "DashboardEditor",
187
+ props: DashboardModel
188
+ },
189
+ targets: ["react"],
190
+ policy: {
191
+ flags: ["analytics.dashboards.enabled"]
192
+ }
193
+ });
194
+ export {
195
+ DashboardsListPresentation,
196
+ DashboardViewPresentation,
197
+ DashboardEditorPresentation
198
+ };