@lssm/example.analytics-dashboard 0.0.0-canary-20251217054315 → 0.0.0-canary-20251217060804

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.
@@ -0,0 +1,332 @@
1
+ import * as _lssm_lib_schema246 from "@lssm/lib.schema";
2
+
3
+ //#region src/dashboard/dashboard.schema.d.ts
4
+ /**
5
+ * A dashboard widget.
6
+ */
7
+ declare const WidgetModel: _lssm_lib_schema246.SchemaModel<{
8
+ id: {
9
+ type: _lssm_lib_schema246.FieldType<string, string>;
10
+ isOptional: false;
11
+ };
12
+ dashboardId: {
13
+ type: _lssm_lib_schema246.FieldType<string, string>;
14
+ isOptional: false;
15
+ };
16
+ name: {
17
+ type: _lssm_lib_schema246.FieldType<string, string>;
18
+ isOptional: false;
19
+ };
20
+ type: {
21
+ type: _lssm_lib_schema246.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
22
+ isOptional: false;
23
+ };
24
+ gridX: {
25
+ type: _lssm_lib_schema246.FieldType<number, number>;
26
+ isOptional: false;
27
+ };
28
+ gridY: {
29
+ type: _lssm_lib_schema246.FieldType<number, number>;
30
+ isOptional: false;
31
+ };
32
+ gridWidth: {
33
+ type: _lssm_lib_schema246.FieldType<number, number>;
34
+ isOptional: false;
35
+ };
36
+ gridHeight: {
37
+ type: _lssm_lib_schema246.FieldType<number, number>;
38
+ isOptional: false;
39
+ };
40
+ queryId: {
41
+ type: _lssm_lib_schema246.FieldType<string, string>;
42
+ isOptional: true;
43
+ };
44
+ config: {
45
+ type: _lssm_lib_schema246.FieldType<unknown, unknown>;
46
+ isOptional: true;
47
+ };
48
+ }>;
49
+ /**
50
+ * An analytics dashboard.
51
+ */
52
+ declare const DashboardModel: _lssm_lib_schema246.SchemaModel<{
53
+ id: {
54
+ type: _lssm_lib_schema246.FieldType<string, string>;
55
+ isOptional: false;
56
+ };
57
+ name: {
58
+ type: _lssm_lib_schema246.FieldType<string, string>;
59
+ isOptional: false;
60
+ };
61
+ slug: {
62
+ type: _lssm_lib_schema246.FieldType<string, string>;
63
+ isOptional: false;
64
+ };
65
+ description: {
66
+ type: _lssm_lib_schema246.FieldType<string, string>;
67
+ isOptional: true;
68
+ };
69
+ status: {
70
+ type: _lssm_lib_schema246.EnumType<[string, string, string]>;
71
+ isOptional: false;
72
+ };
73
+ refreshInterval: {
74
+ type: _lssm_lib_schema246.EnumType<[string, string, string, string, string, string]>;
75
+ isOptional: false;
76
+ };
77
+ isPublic: {
78
+ type: _lssm_lib_schema246.FieldType<boolean, boolean>;
79
+ isOptional: false;
80
+ };
81
+ widgets: {
82
+ type: _lssm_lib_schema246.SchemaModel<{
83
+ id: {
84
+ type: _lssm_lib_schema246.FieldType<string, string>;
85
+ isOptional: false;
86
+ };
87
+ dashboardId: {
88
+ type: _lssm_lib_schema246.FieldType<string, string>;
89
+ isOptional: false;
90
+ };
91
+ name: {
92
+ type: _lssm_lib_schema246.FieldType<string, string>;
93
+ isOptional: false;
94
+ };
95
+ type: {
96
+ type: _lssm_lib_schema246.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
97
+ isOptional: false;
98
+ };
99
+ gridX: {
100
+ type: _lssm_lib_schema246.FieldType<number, number>;
101
+ isOptional: false;
102
+ };
103
+ gridY: {
104
+ type: _lssm_lib_schema246.FieldType<number, number>;
105
+ isOptional: false;
106
+ };
107
+ gridWidth: {
108
+ type: _lssm_lib_schema246.FieldType<number, number>;
109
+ isOptional: false;
110
+ };
111
+ gridHeight: {
112
+ type: _lssm_lib_schema246.FieldType<number, number>;
113
+ isOptional: false;
114
+ };
115
+ queryId: {
116
+ type: _lssm_lib_schema246.FieldType<string, string>;
117
+ isOptional: true;
118
+ };
119
+ config: {
120
+ type: _lssm_lib_schema246.FieldType<unknown, unknown>;
121
+ isOptional: true;
122
+ };
123
+ }>;
124
+ isArray: true;
125
+ isOptional: true;
126
+ };
127
+ createdAt: {
128
+ type: _lssm_lib_schema246.FieldType<Date, string>;
129
+ isOptional: false;
130
+ };
131
+ }>;
132
+ /**
133
+ * Input for creating a dashboard.
134
+ */
135
+ declare const CreateDashboardInputModel: _lssm_lib_schema246.SchemaModel<{
136
+ name: {
137
+ type: _lssm_lib_schema246.FieldType<string, string>;
138
+ isOptional: false;
139
+ };
140
+ slug: {
141
+ type: _lssm_lib_schema246.FieldType<string, string>;
142
+ isOptional: false;
143
+ };
144
+ description: {
145
+ type: _lssm_lib_schema246.FieldType<string, string>;
146
+ isOptional: true;
147
+ };
148
+ refreshInterval: {
149
+ type: _lssm_lib_schema246.EnumType<[string, string, string, string, string, string]>;
150
+ isOptional: true;
151
+ };
152
+ dateRange: {
153
+ type: _lssm_lib_schema246.FieldType<unknown, unknown>;
154
+ isOptional: true;
155
+ };
156
+ }>;
157
+ /**
158
+ * Input for adding a widget.
159
+ */
160
+ declare const AddWidgetInputModel: _lssm_lib_schema246.SchemaModel<{
161
+ dashboardId: {
162
+ type: _lssm_lib_schema246.FieldType<string, string>;
163
+ isOptional: false;
164
+ };
165
+ name: {
166
+ type: _lssm_lib_schema246.FieldType<string, string>;
167
+ isOptional: false;
168
+ };
169
+ type: {
170
+ type: _lssm_lib_schema246.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
171
+ isOptional: false;
172
+ };
173
+ gridX: {
174
+ type: _lssm_lib_schema246.FieldType<number, number>;
175
+ isOptional: true;
176
+ };
177
+ gridY: {
178
+ type: _lssm_lib_schema246.FieldType<number, number>;
179
+ isOptional: true;
180
+ };
181
+ gridWidth: {
182
+ type: _lssm_lib_schema246.FieldType<number, number>;
183
+ isOptional: true;
184
+ };
185
+ gridHeight: {
186
+ type: _lssm_lib_schema246.FieldType<number, number>;
187
+ isOptional: true;
188
+ };
189
+ queryId: {
190
+ type: _lssm_lib_schema246.FieldType<string, string>;
191
+ isOptional: true;
192
+ };
193
+ config: {
194
+ type: _lssm_lib_schema246.FieldType<unknown, unknown>;
195
+ isOptional: true;
196
+ };
197
+ }>;
198
+ /**
199
+ * Input for listing dashboards.
200
+ */
201
+ declare const ListDashboardsInputModel: _lssm_lib_schema246.SchemaModel<{
202
+ status: {
203
+ type: _lssm_lib_schema246.EnumType<[string, string, string]>;
204
+ isOptional: true;
205
+ };
206
+ search: {
207
+ type: _lssm_lib_schema246.FieldType<string, string>;
208
+ isOptional: true;
209
+ };
210
+ limit: {
211
+ type: _lssm_lib_schema246.FieldType<number, number>;
212
+ isOptional: true;
213
+ defaultValue: number;
214
+ };
215
+ offset: {
216
+ type: _lssm_lib_schema246.FieldType<number, number>;
217
+ isOptional: true;
218
+ defaultValue: number;
219
+ };
220
+ }>;
221
+ /**
222
+ * Output for listing dashboards.
223
+ */
224
+ declare const ListDashboardsOutputModel: _lssm_lib_schema246.SchemaModel<{
225
+ dashboards: {
226
+ type: _lssm_lib_schema246.SchemaModel<{
227
+ id: {
228
+ type: _lssm_lib_schema246.FieldType<string, string>;
229
+ isOptional: false;
230
+ };
231
+ name: {
232
+ type: _lssm_lib_schema246.FieldType<string, string>;
233
+ isOptional: false;
234
+ };
235
+ slug: {
236
+ type: _lssm_lib_schema246.FieldType<string, string>;
237
+ isOptional: false;
238
+ };
239
+ description: {
240
+ type: _lssm_lib_schema246.FieldType<string, string>;
241
+ isOptional: true;
242
+ };
243
+ status: {
244
+ type: _lssm_lib_schema246.EnumType<[string, string, string]>;
245
+ isOptional: false;
246
+ };
247
+ refreshInterval: {
248
+ type: _lssm_lib_schema246.EnumType<[string, string, string, string, string, string]>;
249
+ isOptional: false;
250
+ };
251
+ isPublic: {
252
+ type: _lssm_lib_schema246.FieldType<boolean, boolean>;
253
+ isOptional: false;
254
+ };
255
+ widgets: {
256
+ type: _lssm_lib_schema246.SchemaModel<{
257
+ id: {
258
+ type: _lssm_lib_schema246.FieldType<string, string>;
259
+ isOptional: false;
260
+ };
261
+ dashboardId: {
262
+ type: _lssm_lib_schema246.FieldType<string, string>;
263
+ isOptional: false;
264
+ };
265
+ name: {
266
+ type: _lssm_lib_schema246.FieldType<string, string>;
267
+ isOptional: false;
268
+ };
269
+ type: {
270
+ type: _lssm_lib_schema246.EnumType<[string, string, string, string, string, string, string, string, string, string, string, string]>;
271
+ isOptional: false;
272
+ };
273
+ gridX: {
274
+ type: _lssm_lib_schema246.FieldType<number, number>;
275
+ isOptional: false;
276
+ };
277
+ gridY: {
278
+ type: _lssm_lib_schema246.FieldType<number, number>;
279
+ isOptional: false;
280
+ };
281
+ gridWidth: {
282
+ type: _lssm_lib_schema246.FieldType<number, number>;
283
+ isOptional: false;
284
+ };
285
+ gridHeight: {
286
+ type: _lssm_lib_schema246.FieldType<number, number>;
287
+ isOptional: false;
288
+ };
289
+ queryId: {
290
+ type: _lssm_lib_schema246.FieldType<string, string>;
291
+ isOptional: true;
292
+ };
293
+ config: {
294
+ type: _lssm_lib_schema246.FieldType<unknown, unknown>;
295
+ isOptional: true;
296
+ };
297
+ }>;
298
+ isArray: true;
299
+ isOptional: true;
300
+ };
301
+ createdAt: {
302
+ type: _lssm_lib_schema246.FieldType<Date, string>;
303
+ isOptional: false;
304
+ };
305
+ }>;
306
+ isArray: true;
307
+ isOptional: false;
308
+ };
309
+ total: {
310
+ type: _lssm_lib_schema246.FieldType<number, number>;
311
+ isOptional: false;
312
+ };
313
+ }>;
314
+ /**
315
+ * Input for getting a dashboard.
316
+ */
317
+ declare const GetDashboardInputModel: _lssm_lib_schema246.SchemaModel<{
318
+ dashboardId: {
319
+ type: _lssm_lib_schema246.FieldType<string, string>;
320
+ isOptional: true;
321
+ };
322
+ slug: {
323
+ type: _lssm_lib_schema246.FieldType<string, string>;
324
+ isOptional: true;
325
+ };
326
+ shareToken: {
327
+ type: _lssm_lib_schema246.FieldType<string, string>;
328
+ isOptional: true;
329
+ };
330
+ }>;
331
+ //#endregion
332
+ export { AddWidgetInputModel, CreateDashboardInputModel, DashboardModel, GetDashboardInputModel, ListDashboardsInputModel, ListDashboardsOutputModel, WidgetModel };
@@ -0,0 +1,4 @@
1
+ import { AddWidgetContract, CreateDashboardContract, GetDashboardContract, ListDashboardsContract } from "./dashboard.contracts.js";
2
+ import { DashboardStatusEnum, RefreshIntervalEnum, WidgetTypeEnum } from "./dashboard.enum.js";
3
+ import { AddWidgetInputModel, CreateDashboardInputModel, DashboardModel, GetDashboardInputModel, ListDashboardsInputModel, ListDashboardsOutputModel, WidgetModel } from "./dashboard.schema.js";
4
+ export { AddWidgetContract, AddWidgetInputModel, CreateDashboardContract, CreateDashboardInputModel, DashboardModel, DashboardStatusEnum, GetDashboardContract, GetDashboardInputModel, ListDashboardsContract, ListDashboardsInputModel, ListDashboardsOutputModel, RefreshIntervalEnum, WidgetModel, WidgetTypeEnum };
@@ -0,0 +1,7 @@
1
+ import { FeatureModuleSpec } from "@lssm/lib.contracts";
2
+
3
+ //#region src/dashboard.feature.d.ts
4
+
5
+ declare const AnalyticsDashboardFeature: FeatureModuleSpec;
6
+ //#endregion
7
+ export { AnalyticsDashboardFeature };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,148 @@
1
+ import * as _lssm_lib_schema208 from "@lssm/lib.schema";
2
+ import * as _lssm_lib_contracts5 from "@lssm/lib.contracts";
3
+
4
+ //#region src/events.d.ts
5
+ declare const DashboardCreatedEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema208.SchemaModel<{
6
+ dashboardId: {
7
+ type: _lssm_lib_schema208.FieldType<string, string>;
8
+ isOptional: false;
9
+ };
10
+ title: {
11
+ type: _lssm_lib_schema208.FieldType<string, string>;
12
+ isOptional: false;
13
+ };
14
+ orgId: {
15
+ type: _lssm_lib_schema208.FieldType<string, string>;
16
+ isOptional: false;
17
+ };
18
+ createdBy: {
19
+ type: _lssm_lib_schema208.FieldType<string, string>;
20
+ isOptional: false;
21
+ };
22
+ timestamp: {
23
+ type: _lssm_lib_schema208.FieldType<Date, string>;
24
+ isOptional: false;
25
+ };
26
+ }>>;
27
+ declare const WidgetAddedEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema208.SchemaModel<{
28
+ widgetId: {
29
+ type: _lssm_lib_schema208.FieldType<string, string>;
30
+ isOptional: false;
31
+ };
32
+ dashboardId: {
33
+ type: _lssm_lib_schema208.FieldType<string, string>;
34
+ isOptional: false;
35
+ };
36
+ widgetType: {
37
+ type: _lssm_lib_schema208.FieldType<string, string>;
38
+ isOptional: false;
39
+ };
40
+ orgId: {
41
+ type: _lssm_lib_schema208.FieldType<string, string>;
42
+ isOptional: false;
43
+ };
44
+ timestamp: {
45
+ type: _lssm_lib_schema208.FieldType<Date, string>;
46
+ isOptional: false;
47
+ };
48
+ }>>;
49
+ declare const QueryCreatedEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema208.SchemaModel<{
50
+ queryId: {
51
+ type: _lssm_lib_schema208.FieldType<string, string>;
52
+ isOptional: false;
53
+ };
54
+ name: {
55
+ type: _lssm_lib_schema208.FieldType<string, string>;
56
+ isOptional: false;
57
+ };
58
+ queryType: {
59
+ type: _lssm_lib_schema208.FieldType<string, string>;
60
+ isOptional: false;
61
+ };
62
+ orgId: {
63
+ type: _lssm_lib_schema208.FieldType<string, string>;
64
+ isOptional: false;
65
+ };
66
+ createdBy: {
67
+ type: _lssm_lib_schema208.FieldType<string, string>;
68
+ isOptional: false;
69
+ };
70
+ timestamp: {
71
+ type: _lssm_lib_schema208.FieldType<Date, string>;
72
+ isOptional: false;
73
+ };
74
+ }>>;
75
+ declare const AnalyticsDashboardEvents: {
76
+ DashboardCreatedEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema208.SchemaModel<{
77
+ dashboardId: {
78
+ type: _lssm_lib_schema208.FieldType<string, string>;
79
+ isOptional: false;
80
+ };
81
+ title: {
82
+ type: _lssm_lib_schema208.FieldType<string, string>;
83
+ isOptional: false;
84
+ };
85
+ orgId: {
86
+ type: _lssm_lib_schema208.FieldType<string, string>;
87
+ isOptional: false;
88
+ };
89
+ createdBy: {
90
+ type: _lssm_lib_schema208.FieldType<string, string>;
91
+ isOptional: false;
92
+ };
93
+ timestamp: {
94
+ type: _lssm_lib_schema208.FieldType<Date, string>;
95
+ isOptional: false;
96
+ };
97
+ }>>;
98
+ WidgetAddedEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema208.SchemaModel<{
99
+ widgetId: {
100
+ type: _lssm_lib_schema208.FieldType<string, string>;
101
+ isOptional: false;
102
+ };
103
+ dashboardId: {
104
+ type: _lssm_lib_schema208.FieldType<string, string>;
105
+ isOptional: false;
106
+ };
107
+ widgetType: {
108
+ type: _lssm_lib_schema208.FieldType<string, string>;
109
+ isOptional: false;
110
+ };
111
+ orgId: {
112
+ type: _lssm_lib_schema208.FieldType<string, string>;
113
+ isOptional: false;
114
+ };
115
+ timestamp: {
116
+ type: _lssm_lib_schema208.FieldType<Date, string>;
117
+ isOptional: false;
118
+ };
119
+ }>>;
120
+ QueryCreatedEvent: _lssm_lib_contracts5.EventSpec<_lssm_lib_schema208.SchemaModel<{
121
+ queryId: {
122
+ type: _lssm_lib_schema208.FieldType<string, string>;
123
+ isOptional: false;
124
+ };
125
+ name: {
126
+ type: _lssm_lib_schema208.FieldType<string, string>;
127
+ isOptional: false;
128
+ };
129
+ queryType: {
130
+ type: _lssm_lib_schema208.FieldType<string, string>;
131
+ isOptional: false;
132
+ };
133
+ orgId: {
134
+ type: _lssm_lib_schema208.FieldType<string, string>;
135
+ isOptional: false;
136
+ };
137
+ createdBy: {
138
+ type: _lssm_lib_schema208.FieldType<string, string>;
139
+ isOptional: false;
140
+ };
141
+ timestamp: {
142
+ type: _lssm_lib_schema208.FieldType<Date, string>;
143
+ isOptional: false;
144
+ };
145
+ }>>;
146
+ };
147
+ //#endregion
148
+ export { AnalyticsDashboardEvents, DashboardCreatedEvent, QueryCreatedEvent, WidgetAddedEvent };
@@ -0,0 +1,39 @@
1
+ //#region src/example.d.ts
2
+ declare const example: {
3
+ readonly id: "analytics-dashboard";
4
+ readonly title: "Analytics Dashboard";
5
+ readonly summary: "Tenant-scoped dashboards, widgets, query builder, and scheduled reports (spec-first widgets/queries).";
6
+ readonly tags: readonly ["analytics", "dashboards", "bi", "queries"];
7
+ readonly kind: "template";
8
+ readonly visibility: "public";
9
+ readonly docs: {
10
+ readonly rootDocId: "docs.examples.analytics-dashboard";
11
+ readonly goalDocId: "docs.examples.analytics-dashboard.goal";
12
+ readonly usageDocId: "docs.examples.analytics-dashboard.usage";
13
+ readonly constraintsDocId: "docs.examples.analytics-dashboard.constraints";
14
+ };
15
+ readonly entrypoints: {
16
+ readonly packageName: "@lssm/example.analytics-dashboard";
17
+ readonly feature: "./feature";
18
+ readonly contracts: "./contracts";
19
+ readonly presentations: "./presentations";
20
+ readonly handlers: "./handlers";
21
+ readonly docs: "./docs";
22
+ };
23
+ readonly surfaces: {
24
+ readonly templates: true;
25
+ readonly sandbox: {
26
+ readonly enabled: true;
27
+ readonly modes: readonly ["playground", "specs", "builder", "markdown", "evolution"];
28
+ };
29
+ readonly studio: {
30
+ readonly enabled: true;
31
+ readonly installable: true;
32
+ };
33
+ readonly mcp: {
34
+ readonly enabled: true;
35
+ };
36
+ };
37
+ };
38
+ //#endregion
39
+ export { example as default };
@@ -0,0 +1,7 @@
1
+ import { AnalyticsDashboardFeature } from "./dashboard.feature.js";
2
+ import { QueryTypeEnum } from "./query/query.enum.js";
3
+ import { CreateQueryInputModel, ExecuteQueryInputModel, QueryModel, QueryResultModel } from "./query/query.schema.js";
4
+ import { CreateQueryContract, ExecuteQueryContract } from "./query/query.contracts.js";
5
+ import "./query/index.js";
6
+ import { AggregationDefinition, BasicQueryEngine, ColumnDefinition, CustomQueryDefinition, DimensionDefinition, FilterDefinition, IQueryCache, IQueryEngine, InMemoryQueryCache, MeasureDefinition, OrderByDefinition, QueryDefinition, QueryParameters, QueryResult, createQueryEngine } from "./query-engine/index.js";
7
+ export { AggregationDefinition, AnalyticsDashboardFeature, BasicQueryEngine, ColumnDefinition, CreateQueryContract, CreateQueryInputModel, CustomQueryDefinition, DimensionDefinition, ExecuteQueryContract, ExecuteQueryInputModel, FilterDefinition, IQueryCache, IQueryEngine, InMemoryQueryCache, MeasureDefinition, OrderByDefinition, QueryDefinition, QueryModel, QueryParameters, QueryResult, QueryResultModel, QueryTypeEnum, createQueryEngine };
@@ -0,0 +1,4 @@
1
+ import { QueryTypeEnum } from "./query.enum.js";
2
+ import { CreateQueryInputModel, ExecuteQueryInputModel, QueryModel, QueryResultModel } from "./query.schema.js";
3
+ import { CreateQueryContract, ExecuteQueryContract } from "./query.contracts.js";
4
+ export { CreateQueryContract, CreateQueryInputModel, ExecuteQueryContract, ExecuteQueryInputModel, QueryModel, QueryResultModel, QueryTypeEnum };