react-semaphor 0.1.325 → 0.1.326
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +260 -226
- package/dist/brand-studio/index.cjs +2 -2
- package/dist/brand-studio/index.js +7 -6
- package/dist/chunks/{braces-C7BeIXvM.js → braces-DVaMJoCd.js} +1 -1
- package/dist/chunks/{braces-ZjRH2Kl7.js → braces-dHeaioTd.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog-DHhT6Sja.js → calendar-preferences-dialog--2jD-eKu.js} +6 -5
- package/dist/chunks/calendar-preferences-dialog-mqU_uOmY.js +1 -0
- package/dist/chunks/{chevrons-up-down-CA-XvN1o.js → chevrons-up-down-CLbzBHoI.js} +1 -1
- package/dist/chunks/{chevrons-up-down-Cuilz9aY.js → chevrons-up-down-DNQE-uEp.js} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-DZiFMK8I.js → dashboard-briefing-launcher-DguNfFr8.js} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-BzIxRlzW.js → dashboard-briefing-launcher-DsjXUPFq.js} +29 -28
- package/dist/chunks/{dashboard-controls-DVwsWny9.js → dashboard-controls-DgNkM1yT.js} +10 -9
- package/dist/chunks/{dashboard-controls-BX693lE0.js → dashboard-controls-XCa9PZuU.js} +1 -1
- package/dist/chunks/dashboard-json-DiBd65Xf.js +1 -0
- package/dist/chunks/{dashboard-json-D15C_I9e.js → dashboard-json-DkA6Bf0Y.js} +7 -6
- package/dist/chunks/{edit-dashboard-visual-90_qEgRc.js → edit-dashboard-visual-BC9eOc4U.js} +2 -2
- package/dist/chunks/{edit-dashboard-visual-wQyJEcVH.js → edit-dashboard-visual-Q5hW5MXk.js} +11 -9
- package/dist/chunks/{index-YTk9Hab2.js → index-B1-46PoR.js} +213 -213
- package/dist/chunks/index-BxM99sFL.js +1 -0
- package/dist/chunks/index-CuHybtft.js +51 -0
- package/dist/chunks/{index-CffvIaZO.js → index-DwfDwtv2.js} +20578 -20474
- package/dist/chunks/{palette-CanPG11m.js → palette-DpcvHAiY.js} +1 -1
- package/dist/chunks/{palette-D96DOM7E.js → palette-DtmNws9a.js} +1 -1
- package/dist/chunks/{resource-management-panel-DlnrD0y-.js → resource-management-panel-CGwWKZOP.js} +1 -1
- package/dist/chunks/{resource-management-panel-CLoO2DL3.js → resource-management-panel-D2oAQkKi.js} +6 -5
- package/dist/chunks/{save-DxkSzUTZ.js → save-BY7WF62U.js} +1 -1
- package/dist/chunks/{save-CqrBQKG6.js → save-Cv_XRb94.js} +1 -1
- package/dist/chunks/{switch-BXICAlvS.js → switch-5aQ_jcLH.js} +39 -39
- package/dist/chunks/{switch-Deo2Ltmj.js → switch-j3AThLFk.js} +2580 -2628
- package/dist/chunks/{use-create-flow-overlay-state-DocFanjO.js → use-create-flow-overlay-state-BQPXP0AM.js} +1 -1
- package/dist/chunks/{use-create-flow-overlay-state-DsPoCfMu.js → use-create-flow-overlay-state-CP6GDQAX.js} +29 -28
- package/dist/chunks/{use-visual-utils-BdO22fQZ.js → use-visual-utils-CSXU-96k.js} +2 -2
- package/dist/chunks/{use-visual-utils-DSbXQQD1.js → use-visual-utils-NpOW5uZ1.js} +1 -1
- package/dist/chunks/validators-DJUMR5An.js +2 -0
- package/dist/chunks/validators-DvTxl9i0.js +352 -0
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard-authoring/index.cjs +3 -3
- package/dist/dashboard-authoring/index.js +168 -136
- package/dist/data-app-sdk/index.cjs +1 -0
- package/dist/data-app-sdk/index.js +512 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +141 -140
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/analytics-protocol.d.ts +325 -2
- package/dist/types/dashboard-authoring.d.ts +23 -1
- package/dist/types/dashboard.d.ts +6 -1
- package/dist/types/data-app-sdk.d.ts +378 -0
- package/dist/types/main.d.ts +117 -2
- package/dist/types/shared.d.ts +1 -0
- package/dist/types/surfboard.d.ts +6 -1
- package/dist/types/types.d.ts +6 -1
- package/package.json +6 -1
- package/dist/chunks/calendar-preferences-dialog-BxeROxyq.js +0 -1
- package/dist/chunks/dashboard-json-DxNEFM-p.js +0 -1
|
@@ -1,5 +1,265 @@
|
|
|
1
|
+
export declare type AnalyticsCatalogDataType = 'string' | 'number' | 'boolean' | 'date' | 'datetime' | 'unknown';
|
|
2
|
+
|
|
3
|
+
export declare type AnalyticsCatalogField = {
|
|
4
|
+
id?: unknown;
|
|
5
|
+
column_name?: unknown;
|
|
6
|
+
name?: unknown;
|
|
7
|
+
label?: unknown;
|
|
8
|
+
alias?: unknown;
|
|
9
|
+
qualifiedFieldName?: unknown;
|
|
10
|
+
data_type?: unknown;
|
|
11
|
+
dataType?: unknown;
|
|
12
|
+
role?: unknown;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export declare type AnalyticsCatalogFieldSummary = {
|
|
16
|
+
validMetricCandidates: string[];
|
|
17
|
+
validDateCandidates: string[];
|
|
18
|
+
validDimensionCandidates: string[];
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export declare type AnalyticsMetricFormat = {
|
|
22
|
+
type: 'number' | 'currency' | 'percent' | 'scientific';
|
|
23
|
+
locale?: string;
|
|
24
|
+
minimumFractionDigits?: number;
|
|
25
|
+
maximumFractionDigits?: number;
|
|
26
|
+
useGrouping?: boolean;
|
|
27
|
+
prefix?: string;
|
|
28
|
+
suffix?: string;
|
|
29
|
+
negativeStyle?: 'minus' | 'parentheses';
|
|
30
|
+
compact?: boolean;
|
|
31
|
+
scale?: number;
|
|
32
|
+
currency?: string;
|
|
33
|
+
percentValueMode?: 'fraction' | 'whole';
|
|
34
|
+
} | {
|
|
35
|
+
type: 'date';
|
|
36
|
+
locale?: string;
|
|
37
|
+
pattern?: string;
|
|
38
|
+
relative?: boolean;
|
|
39
|
+
timezone?: string;
|
|
40
|
+
sourceTimezone?: string;
|
|
41
|
+
prefix?: string;
|
|
42
|
+
suffix?: string;
|
|
43
|
+
} | {
|
|
44
|
+
type: 'string';
|
|
45
|
+
prefix?: string;
|
|
46
|
+
suffix?: string;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export declare function buildAnalyticsCatalogFieldSummary(fields: AnalyticsCatalogField[]): AnalyticsCatalogFieldSummary;
|
|
50
|
+
|
|
51
|
+
export declare function getAnalyticsCatalogFieldCandidates(field: AnalyticsCatalogField): string[];
|
|
52
|
+
|
|
53
|
+
export declare function getAnalyticsCatalogFieldName(field: AnalyticsCatalogField): string;
|
|
54
|
+
|
|
55
|
+
export declare function inferAnalyticsMetricFormat(field: AnalyticsCatalogField): AnalyticsMetricFormat | undefined;
|
|
56
|
+
|
|
57
|
+
export declare function isAnalyticsCatalogDateField(field: AnalyticsCatalogField): boolean;
|
|
58
|
+
|
|
59
|
+
export declare function isAnalyticsCatalogDimensionField(field: AnalyticsCatalogField): boolean;
|
|
60
|
+
|
|
61
|
+
export declare function isAnalyticsCatalogMetricField(field: AnalyticsCatalogField, options?: {
|
|
62
|
+
excludeIdentifiers?: boolean;
|
|
63
|
+
}): boolean;
|
|
64
|
+
|
|
65
|
+
export declare function isAnalyticsDateLikeDataType(value: unknown): boolean;
|
|
66
|
+
|
|
67
|
+
export declare function isAnalyticsMetricIdentifierField(field: AnalyticsCatalogField): boolean;
|
|
68
|
+
|
|
69
|
+
export declare function isAnalyticsTechnicalIdentifierField(field: AnalyticsCatalogField): boolean;
|
|
70
|
+
|
|
71
|
+
export declare function normalizeAnalyticsCatalogDataType(value: unknown): AnalyticsCatalogDataType;
|
|
72
|
+
|
|
73
|
+
export declare function normalizeAnalyticsCatalogName(value: unknown): string;
|
|
74
|
+
|
|
75
|
+
export declare const SEMAPHOR_ANALYTICS_INTENT_FIXTURES: {
|
|
76
|
+
revenueKpi: {
|
|
77
|
+
version: 1;
|
|
78
|
+
kind: "metric";
|
|
79
|
+
id: string;
|
|
80
|
+
label: string;
|
|
81
|
+
source: {
|
|
82
|
+
readonly kind: "semantic";
|
|
83
|
+
readonly domainId: "domain_sales";
|
|
84
|
+
readonly datasetName: "orders";
|
|
85
|
+
readonly connectionId: "conn_sales";
|
|
86
|
+
readonly label: "Orders";
|
|
87
|
+
};
|
|
88
|
+
metric: string;
|
|
89
|
+
comparison: {
|
|
90
|
+
kind: "previous_period";
|
|
91
|
+
};
|
|
92
|
+
limit: number;
|
|
93
|
+
};
|
|
94
|
+
revenueTrend: {
|
|
95
|
+
version: 1;
|
|
96
|
+
kind: "records";
|
|
97
|
+
id: string;
|
|
98
|
+
label: string;
|
|
99
|
+
source: {
|
|
100
|
+
readonly kind: "semantic";
|
|
101
|
+
readonly domainId: "domain_sales";
|
|
102
|
+
readonly datasetName: "orders";
|
|
103
|
+
readonly connectionId: "conn_sales";
|
|
104
|
+
readonly label: "Orders";
|
|
105
|
+
};
|
|
106
|
+
fields: {
|
|
107
|
+
name: string;
|
|
108
|
+
role: "date";
|
|
109
|
+
dataType: "date";
|
|
110
|
+
label: string;
|
|
111
|
+
}[];
|
|
112
|
+
measures: string[];
|
|
113
|
+
dateField: {
|
|
114
|
+
name: string;
|
|
115
|
+
role: "date";
|
|
116
|
+
dataType: "date";
|
|
117
|
+
};
|
|
118
|
+
timeGrain: "month";
|
|
119
|
+
limit: number;
|
|
120
|
+
};
|
|
121
|
+
topCustomersRecords: {
|
|
122
|
+
version: 1;
|
|
123
|
+
kind: "records";
|
|
124
|
+
id: string;
|
|
125
|
+
label: string;
|
|
126
|
+
source: {
|
|
127
|
+
readonly kind: "semantic";
|
|
128
|
+
readonly domainId: "domain_sales";
|
|
129
|
+
readonly datasetName: "orders";
|
|
130
|
+
readonly connectionId: "conn_sales";
|
|
131
|
+
readonly label: "Orders";
|
|
132
|
+
};
|
|
133
|
+
fields: ({
|
|
134
|
+
name: string;
|
|
135
|
+
role: "dimension";
|
|
136
|
+
dataType: "string";
|
|
137
|
+
} | {
|
|
138
|
+
name: string;
|
|
139
|
+
role: "measure";
|
|
140
|
+
dataType: "number";
|
|
141
|
+
})[];
|
|
142
|
+
measures: string[];
|
|
143
|
+
orderBy: {
|
|
144
|
+
field: string;
|
|
145
|
+
direction: "desc";
|
|
146
|
+
};
|
|
147
|
+
limit: number;
|
|
148
|
+
};
|
|
149
|
+
regionInputOptions: {
|
|
150
|
+
version: 1;
|
|
151
|
+
kind: "inputOptions";
|
|
152
|
+
id: string;
|
|
153
|
+
label: string;
|
|
154
|
+
source: {
|
|
155
|
+
readonly kind: "semantic";
|
|
156
|
+
readonly domainId: "domain_sales";
|
|
157
|
+
readonly datasetName: "orders";
|
|
158
|
+
readonly connectionId: "conn_sales";
|
|
159
|
+
readonly label: "Orders";
|
|
160
|
+
};
|
|
161
|
+
field: {
|
|
162
|
+
name: string;
|
|
163
|
+
role: "dimension";
|
|
164
|
+
dataType: "string";
|
|
165
|
+
};
|
|
166
|
+
limit: number;
|
|
167
|
+
};
|
|
168
|
+
previousPeriodRevenueComparison: {
|
|
169
|
+
version: 1;
|
|
170
|
+
kind: "metric";
|
|
171
|
+
id: string;
|
|
172
|
+
label: string;
|
|
173
|
+
source: {
|
|
174
|
+
readonly kind: "semantic";
|
|
175
|
+
readonly domainId: "domain_sales";
|
|
176
|
+
readonly datasetName: "orders";
|
|
177
|
+
readonly connectionId: "conn_sales";
|
|
178
|
+
readonly label: "Orders";
|
|
179
|
+
};
|
|
180
|
+
metric: string;
|
|
181
|
+
dateField: {
|
|
182
|
+
name: string;
|
|
183
|
+
role: "date";
|
|
184
|
+
dataType: "date";
|
|
185
|
+
};
|
|
186
|
+
timeGrain: "week";
|
|
187
|
+
comparison: {
|
|
188
|
+
kind: "previous_period";
|
|
189
|
+
};
|
|
190
|
+
limit: number;
|
|
191
|
+
};
|
|
192
|
+
boundedSqlRanking: {
|
|
193
|
+
version: 1;
|
|
194
|
+
kind: "sql";
|
|
195
|
+
id: string;
|
|
196
|
+
label: string;
|
|
197
|
+
source: {
|
|
198
|
+
kind: "physical";
|
|
199
|
+
connectionId: string;
|
|
200
|
+
databaseName: string;
|
|
201
|
+
schemaName: string;
|
|
202
|
+
tableName: string;
|
|
203
|
+
dialect: "postgres";
|
|
204
|
+
};
|
|
205
|
+
sql: string;
|
|
206
|
+
limit: number;
|
|
207
|
+
rationale: string;
|
|
208
|
+
fields: ({
|
|
209
|
+
name: string;
|
|
210
|
+
role: "dimension";
|
|
211
|
+
dataType: "string";
|
|
212
|
+
} | {
|
|
213
|
+
name: string;
|
|
214
|
+
role: "measure";
|
|
215
|
+
dataType: "number";
|
|
216
|
+
})[];
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
export declare type SemaphorAnalyticsFieldRole = 'metric' | 'dateField' | 'dimension' | 'input' | 'source' | 'sql';
|
|
221
|
+
|
|
1
222
|
export declare type SemaphorAnalyticsIntent = SemaphorMetricIntent | SemaphorRecordsIntent | SemaphorInputOptionsIntent | SemaphorSqlIntent;
|
|
2
223
|
|
|
224
|
+
export declare type SemaphorAnalyticsIntentFixtureName = keyof typeof SEMAPHOR_ANALYTICS_INTENT_FIXTURES;
|
|
225
|
+
|
|
226
|
+
export declare type SemaphorAnalyticsRepairHint = {
|
|
227
|
+
code: SemaphorAnalyticsValidationCode | string;
|
|
228
|
+
message?: string;
|
|
229
|
+
invalidField?: string;
|
|
230
|
+
fieldRole?: SemaphorAnalyticsFieldRole;
|
|
231
|
+
validMetricCandidates?: string[];
|
|
232
|
+
validDateCandidates?: string[];
|
|
233
|
+
validDimensionCandidates?: string[];
|
|
234
|
+
recommendedNextStep: string;
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
export declare type SemaphorAnalyticsResult = SemaphorMetricResult | SemaphorRecordsResult | SemaphorInputOptionsResult | SemaphorSqlResult;
|
|
238
|
+
|
|
239
|
+
export declare type SemaphorAnalyticsResultBase = {
|
|
240
|
+
intentId?: string;
|
|
241
|
+
queryPath: SemaphorQueryPath;
|
|
242
|
+
warnings?: string[];
|
|
243
|
+
rowCount?: number;
|
|
244
|
+
rowLimitExceeded?: boolean;
|
|
245
|
+
limit?: number;
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
export declare type SemaphorAnalyticsValidationCode = 'missing_source' | 'invalid_source_kind' | 'missing_semantic_domain' | 'missing_dataset_name' | 'missing_connection_id' | 'missing_table_name' | 'missing_sql' | 'missing_metric' | 'missing_record_fields' | 'missing_input_options_field' | 'invalid_metric' | 'invalid_metric_list' | 'invalid_date_field' | 'invalid_dimension' | 'invalid_metric_dimensions' | 'conflicting_sql' | 'sql_policy_violation' | 'unsupported_intent_for_adapter' | 'invalid_analytics_kind' | 'invalid_analytics_intent';
|
|
249
|
+
|
|
250
|
+
export declare type SemaphorAnalyticsValidationIssue = SemaphorProtocolIssue & {
|
|
251
|
+
code: SemaphorAnalyticsValidationCode | string;
|
|
252
|
+
fieldRole?: SemaphorAnalyticsFieldRole;
|
|
253
|
+
repairHint?: SemaphorAnalyticsRepairHint;
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
export declare type SemaphorAnalyticsValidationResult = {
|
|
257
|
+
ok: boolean;
|
|
258
|
+
errors: SemaphorAnalyticsValidationIssue[];
|
|
259
|
+
warnings: SemaphorAnalyticsValidationIssue[];
|
|
260
|
+
repairHints: SemaphorAnalyticsRepairHint[];
|
|
261
|
+
};
|
|
262
|
+
|
|
3
263
|
export declare type SemaphorDashboardIntent = {
|
|
4
264
|
version: SemaphorProtocolVersion;
|
|
5
265
|
kind: 'dashboard';
|
|
@@ -45,12 +305,24 @@ export declare type SemaphorInputOperator = '=' | '!=' | 'in' | 'not_in' | 'cont
|
|
|
45
305
|
|
|
46
306
|
export declare type SemaphorInputOptionsIntent = {
|
|
47
307
|
kind: 'inputOptions';
|
|
308
|
+
version?: SemaphorProtocolVersion;
|
|
309
|
+
id?: string;
|
|
310
|
+
label?: string;
|
|
48
311
|
source: SemaphorSourceRef;
|
|
49
312
|
field: SemaphorFieldRef;
|
|
50
313
|
search?: string;
|
|
51
314
|
limit?: number;
|
|
52
315
|
};
|
|
53
316
|
|
|
317
|
+
export declare type SemaphorInputOptionsResult = SemaphorAnalyticsResultBase & {
|
|
318
|
+
kind: 'inputOptions';
|
|
319
|
+
options: Array<{
|
|
320
|
+
label: string;
|
|
321
|
+
value: unknown;
|
|
322
|
+
count?: number;
|
|
323
|
+
}>;
|
|
324
|
+
};
|
|
325
|
+
|
|
54
326
|
export declare type SemaphorInputScope = {
|
|
55
327
|
level: 'dashboard';
|
|
56
328
|
excludeViewIds?: string[];
|
|
@@ -77,15 +349,32 @@ export declare type SemaphorInputSpec = {
|
|
|
77
349
|
|
|
78
350
|
export declare type SemaphorMetricIntent = {
|
|
79
351
|
kind: 'metric';
|
|
352
|
+
version?: SemaphorProtocolVersion;
|
|
353
|
+
id?: string;
|
|
80
354
|
source: SemaphorSourceRef;
|
|
81
355
|
metric: string;
|
|
356
|
+
metrics?: string[];
|
|
82
357
|
label?: string;
|
|
83
358
|
dateField?: SemaphorFieldRef;
|
|
359
|
+
timeGrain?: SemaphorTimeGrain;
|
|
360
|
+
dimensions?: SemaphorFieldRef[];
|
|
84
361
|
comparison?: {
|
|
85
362
|
kind: 'previous_period' | 'previous_year' | 'target';
|
|
86
363
|
targetValue?: number;
|
|
87
364
|
};
|
|
88
365
|
inputs?: SemaphorInputBinding[];
|
|
366
|
+
limit?: number;
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
export declare type SemaphorMetricResult = SemaphorAnalyticsResultBase & {
|
|
370
|
+
kind: 'metric';
|
|
371
|
+
value: number | string | null;
|
|
372
|
+
comparison?: {
|
|
373
|
+
kind: NonNullable<SemaphorMetricIntent['comparison']>['kind'];
|
|
374
|
+
value?: number | string | null;
|
|
375
|
+
delta?: number | null;
|
|
376
|
+
deltaPercent?: number | null;
|
|
377
|
+
};
|
|
89
378
|
};
|
|
90
379
|
|
|
91
380
|
export declare type SemaphorProtocolIssue = {
|
|
@@ -96,9 +385,14 @@ export declare type SemaphorProtocolIssue = {
|
|
|
96
385
|
|
|
97
386
|
export declare type SemaphorProtocolVersion = 1;
|
|
98
387
|
|
|
388
|
+
export declare type SemaphorQueryPath = 'query_spec' | 'sql' | 'sql_python';
|
|
389
|
+
|
|
99
390
|
export declare type SemaphorRecordsIntent = {
|
|
100
391
|
kind: 'records';
|
|
392
|
+
version?: SemaphorProtocolVersion;
|
|
101
393
|
source: SemaphorSourceRef;
|
|
394
|
+
id?: string;
|
|
395
|
+
label?: string;
|
|
102
396
|
fields: SemaphorFieldRef[];
|
|
103
397
|
measures?: string[];
|
|
104
398
|
dateField?: SemaphorFieldRef;
|
|
@@ -111,6 +405,16 @@ export declare type SemaphorRecordsIntent = {
|
|
|
111
405
|
inputs?: SemaphorInputBinding[];
|
|
112
406
|
};
|
|
113
407
|
|
|
408
|
+
export declare type SemaphorRecordsResult = SemaphorAnalyticsResultBase & {
|
|
409
|
+
kind: 'records';
|
|
410
|
+
columns: Array<{
|
|
411
|
+
name: string;
|
|
412
|
+
label?: string;
|
|
413
|
+
dataType?: SemaphorFieldRef['dataType'];
|
|
414
|
+
}>;
|
|
415
|
+
records: Array<Record<string, unknown>>;
|
|
416
|
+
};
|
|
417
|
+
|
|
114
418
|
export declare type SemaphorSourceRef = {
|
|
115
419
|
kind: 'semantic';
|
|
116
420
|
domainId: string;
|
|
@@ -136,13 +440,32 @@ export declare type SemaphorSourceRef = {
|
|
|
136
440
|
|
|
137
441
|
export declare type SemaphorSqlIntent = {
|
|
138
442
|
kind: 'sql';
|
|
443
|
+
version?: SemaphorProtocolVersion;
|
|
444
|
+
id?: string;
|
|
445
|
+
label?: string;
|
|
139
446
|
source: Extract<SemaphorSourceRef, {
|
|
140
|
-
kind: 'sql';
|
|
447
|
+
kind: 'sql' | 'physical';
|
|
141
448
|
}>;
|
|
449
|
+
sql?: string;
|
|
450
|
+
parameters?: Record<string, unknown>;
|
|
451
|
+
pythonCode?: string;
|
|
452
|
+
limit?: number;
|
|
453
|
+
rationale?: string;
|
|
142
454
|
fields?: SemaphorFieldRef[];
|
|
143
455
|
inputs?: SemaphorInputBinding[];
|
|
144
456
|
};
|
|
145
457
|
|
|
458
|
+
export declare type SemaphorSqlResult = SemaphorAnalyticsResultBase & {
|
|
459
|
+
kind: 'sql';
|
|
460
|
+
columns: SemaphorRecordsResult['columns'];
|
|
461
|
+
records: SemaphorRecordsResult['records'];
|
|
462
|
+
sqlShape?: {
|
|
463
|
+
statementType?: string;
|
|
464
|
+
explicitLimit?: number;
|
|
465
|
+
hasPythonCode?: boolean;
|
|
466
|
+
};
|
|
467
|
+
};
|
|
468
|
+
|
|
146
469
|
export declare type SemaphorTimeGrain = 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
|
|
147
470
|
|
|
148
471
|
export declare type SemaphorValidationResult = {
|
|
@@ -165,7 +488,7 @@ export declare type SemaphorViewPresentation = {
|
|
|
165
488
|
kind: 'text';
|
|
166
489
|
};
|
|
167
490
|
|
|
168
|
-
export declare function validateSemaphorAnalyticsIntent(intent: SemaphorAnalyticsIntent):
|
|
491
|
+
export declare function validateSemaphorAnalyticsIntent(intent: SemaphorAnalyticsIntent): SemaphorAnalyticsValidationResult;
|
|
169
492
|
|
|
170
493
|
export declare function validateSemaphorDashboardIntent(intent: SemaphorDashboardIntent): SemaphorValidationResult;
|
|
171
494
|
|
|
@@ -732,6 +732,7 @@ export declare type DashboardPlanCard = {
|
|
|
732
732
|
priority: number;
|
|
733
733
|
section?: string;
|
|
734
734
|
query?: DashboardCardQueryIntent;
|
|
735
|
+
analyticsIntent?: SemaphorAnalyticsIntent;
|
|
735
736
|
text?: string;
|
|
736
737
|
};
|
|
737
738
|
|
|
@@ -800,6 +801,7 @@ declare interface DataModelEntityReference extends DatabaseEntityReference {
|
|
|
800
801
|
declare interface DatasetEntityReference extends DatabaseEntityReference {
|
|
801
802
|
type: 'dataset';
|
|
802
803
|
datasetType: 'physical' | 'virtual';
|
|
804
|
+
table?: string | null;
|
|
803
805
|
datamodelId?: string | null;
|
|
804
806
|
sql?: string | null;
|
|
805
807
|
id: string;
|
|
@@ -1804,6 +1806,9 @@ declare type SemaphorInputOperator = '=' | '!=' | 'in' | 'not_in' | 'contains' |
|
|
|
1804
1806
|
|
|
1805
1807
|
declare type SemaphorInputOptionsIntent = {
|
|
1806
1808
|
kind: 'inputOptions';
|
|
1809
|
+
version?: SemaphorProtocolVersion;
|
|
1810
|
+
id?: string;
|
|
1811
|
+
label?: string;
|
|
1807
1812
|
source: SemaphorSourceRef;
|
|
1808
1813
|
field: SemaphorFieldRef;
|
|
1809
1814
|
search?: string;
|
|
@@ -1836,22 +1841,31 @@ declare type SemaphorInputSpec = {
|
|
|
1836
1841
|
|
|
1837
1842
|
declare type SemaphorMetricIntent = {
|
|
1838
1843
|
kind: 'metric';
|
|
1844
|
+
version?: SemaphorProtocolVersion;
|
|
1845
|
+
id?: string;
|
|
1839
1846
|
source: SemaphorSourceRef;
|
|
1840
1847
|
metric: string;
|
|
1848
|
+
metrics?: string[];
|
|
1841
1849
|
label?: string;
|
|
1842
1850
|
dateField?: SemaphorFieldRef;
|
|
1851
|
+
timeGrain?: SemaphorTimeGrain;
|
|
1852
|
+
dimensions?: SemaphorFieldRef[];
|
|
1843
1853
|
comparison?: {
|
|
1844
1854
|
kind: 'previous_period' | 'previous_year' | 'target';
|
|
1845
1855
|
targetValue?: number;
|
|
1846
1856
|
};
|
|
1847
1857
|
inputs?: SemaphorInputBinding[];
|
|
1858
|
+
limit?: number;
|
|
1848
1859
|
};
|
|
1849
1860
|
|
|
1850
1861
|
declare type SemaphorProtocolVersion = 1;
|
|
1851
1862
|
|
|
1852
1863
|
declare type SemaphorRecordsIntent = {
|
|
1853
1864
|
kind: 'records';
|
|
1865
|
+
version?: SemaphorProtocolVersion;
|
|
1854
1866
|
source: SemaphorSourceRef;
|
|
1867
|
+
id?: string;
|
|
1868
|
+
label?: string;
|
|
1855
1869
|
fields: SemaphorFieldRef[];
|
|
1856
1870
|
measures?: string[];
|
|
1857
1871
|
dateField?: SemaphorFieldRef;
|
|
@@ -1889,9 +1903,17 @@ declare type SemaphorSourceRef = {
|
|
|
1889
1903
|
|
|
1890
1904
|
declare type SemaphorSqlIntent = {
|
|
1891
1905
|
kind: 'sql';
|
|
1906
|
+
version?: SemaphorProtocolVersion;
|
|
1907
|
+
id?: string;
|
|
1908
|
+
label?: string;
|
|
1892
1909
|
source: Extract<SemaphorSourceRef, {
|
|
1893
|
-
kind: 'sql';
|
|
1910
|
+
kind: 'sql' | 'physical';
|
|
1894
1911
|
}>;
|
|
1912
|
+
sql?: string;
|
|
1913
|
+
parameters?: Record<string, unknown>;
|
|
1914
|
+
pythonCode?: string;
|
|
1915
|
+
limit?: number;
|
|
1916
|
+
rationale?: string;
|
|
1895
1917
|
fields?: SemaphorFieldRef[];
|
|
1896
1918
|
inputs?: SemaphorInputBinding[];
|
|
1897
1919
|
};
|
|
@@ -812,6 +812,7 @@ declare interface DataModelEntityReference extends DatabaseEntityReference {
|
|
|
812
812
|
declare interface DatasetEntityReference extends DatabaseEntityReference {
|
|
813
813
|
type: 'dataset';
|
|
814
814
|
datasetType: 'physical' | 'virtual';
|
|
815
|
+
table?: string | null;
|
|
815
816
|
datamodelId?: string | null;
|
|
816
817
|
sql?: string | null;
|
|
817
818
|
id: string;
|
|
@@ -2500,7 +2501,11 @@ export declare type TDataColumn = {
|
|
|
2500
2501
|
label?: string;
|
|
2501
2502
|
description?: string;
|
|
2502
2503
|
qualifiedFieldName?: string;
|
|
2503
|
-
|
|
2504
|
+
qualifiedEntityName?: string;
|
|
2505
|
+
entityId?: string;
|
|
2506
|
+
entityName?: string;
|
|
2507
|
+
entityType?: EntityType;
|
|
2508
|
+
role?: 'groupby' | 'metric' | 'sortby' | 'pivotby' | 'detail';
|
|
2504
2509
|
expression?: string;
|
|
2505
2510
|
calculatedFormula?: CalculatedFieldFormula;
|
|
2506
2511
|
format?: FormatSpec;
|