react-semaphor 0.1.381 → 0.1.383
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/DATA_APP_SDK.md +238 -0
- package/README.md +7 -0
- package/dist/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +45 -41
- package/dist/brand-studio/index.cjs +4 -4
- package/dist/brand-studio/index.js +28 -28
- package/dist/chunks/analyze-result-contract-CtXfp3nv.js +1 -0
- package/dist/chunks/analyze-result-contract-DuhlklhI.js +102 -0
- package/dist/chunks/{braces-DOxxfERN.js → braces--20GzUQh.js} +1 -1
- package/dist/chunks/{braces-BT-ZyB-g.js → braces-C0Vh_Mft.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog-Dsgs8WDv.js → calendar-preferences-dialog-B-VsxhsA.js} +4 -4
- package/dist/chunks/calendar-preferences-dialog-DE67Z3oQ.js +1 -0
- package/dist/chunks/catalog-field-grounding-Bnx-3tE0.js +1 -0
- package/dist/chunks/catalog-field-grounding-CJKAqtiC.js +100 -0
- package/dist/chunks/{dashboard-briefing-launcher-Coks66cV.js → dashboard-briefing-launcher-BIj3X7b3.js} +108 -107
- package/dist/chunks/dashboard-briefing-launcher-Czx6BcXW.js +80 -0
- package/dist/chunks/dashboard-controls-BP-DcPFs.js +52 -0
- package/dist/chunks/{dashboard-controls-BfkcnIdy.js → dashboard-controls-BXxucM4f.js} +115 -114
- package/dist/chunks/dashboard-json-BNwshkK2.js +1 -0
- package/dist/chunks/{dashboard-json-DjXi4cI6.js → dashboard-json-C6oZuipD.js} +9 -9
- package/dist/chunks/edit-dashboard-visual-BAprin3J.js +178 -0
- package/dist/chunks/{edit-dashboard-visual-DOW1Ap1N.js → edit-dashboard-visual-CmfrI_L3.js} +1278 -1277
- package/dist/chunks/{index-CkoRCh3g.js → index-4W_ElSBJ.js} +219 -239
- package/dist/chunks/{index-DlprYjr6.js → index-icb12JV1.js} +900 -952
- package/dist/chunks/{layout-grid-DccceHv4.js → layout-grid-B7-klXiK.js} +1 -1
- package/dist/chunks/{layout-grid-DTbOIOsE.js → layout-grid-DV89AC9_.js} +1 -1
- package/dist/chunks/operators-C8TxpM4C.js +48 -0
- package/dist/chunks/operators-DrTQsJXv.js +1 -0
- package/dist/chunks/{palette-DCzLwqIw.js → palette-5IwhMbSF.js} +1 -1
- package/dist/chunks/{palette-SimHJELn.js → palette-Dj-dgPYh.js} +1 -1
- package/dist/chunks/{save-zNVYH02T.js → save-16C6YSW2.js} +1 -1
- package/dist/chunks/{save-D2O96E5A.js → save-C5fwVdTF.js} +1 -1
- package/dist/chunks/search-0LmWwZzW.js +57 -0
- package/dist/chunks/search-Dq1Mbb03.js +21 -0
- package/dist/chunks/{source-identity-Dj3dryN9.js → source-identity-CN4xiyKJ.js} +5 -5
- package/dist/chunks/{switch-DMPsMpHW.js → switch-DUdaHFZQ.js} +2328 -2414
- package/dist/chunks/{switch-Jhyl63RF.js → switch-bdJp0Bkw.js} +29 -54
- package/dist/chunks/use-create-flow-overlay-state-BIHKf_XK.js +21 -0
- package/dist/chunks/{use-create-flow-overlay-state-r5JKyXU8.js → use-create-flow-overlay-state-YvqCp6Zo.js} +75 -75
- package/dist/chunks/{validators-CtNmgsvG.js → validators-CHPH6ORs.js} +641 -498
- package/dist/chunks/validators-lWo8m0Q7.js +1 -0
- package/dist/chunks/x-B_cx7LwM.js +26 -0
- package/dist/chunks/x-IdR_js6f.js +139 -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 +105 -92
- package/dist/data-app-builder/index.cjs +23 -23
- package/dist/data-app-builder/index.js +17 -15
- package/dist/data-app-sdk/index.cjs +68 -1
- package/dist/data-app-sdk/index.js +2731 -384
- package/dist/data-app-sdk-adapters/index.cjs +1 -0
- package/dist/data-app-sdk-adapters/index.js +383 -0
- package/dist/data-app-sdk-validation/index.cjs +1 -1
- package/dist/data-app-sdk-validation/index.js +1073 -6
- package/dist/index.cjs +1 -1
- package/dist/index.js +15 -15
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/analytics-protocol.d.ts +58 -31
- package/dist/types/dashboard-assistant.d.ts +40 -15
- package/dist/types/dashboard-authoring.d.ts +36 -16
- package/dist/types/dashboard.d.ts +8 -8
- package/dist/types/data-app-builder.d.ts +35 -11
- package/dist/types/data-app-sdk-adapters.d.ts +733 -0
- package/dist/types/data-app-sdk-validation.d.ts +85 -25
- package/dist/types/data-app-sdk.d.ts +217 -147
- package/dist/types/main.d.ts +35 -11
- package/dist/types/shared.d.ts +8 -8
- package/dist/types/surfboard.d.ts +8 -8
- package/dist/types/types.d.ts +8 -8
- package/package.json +9 -2
- package/src/data-app-sdk/README.md +240 -0
- package/dist/chunks/calendar-preferences-dialog-iZs8XqyH.js +0 -1
- package/dist/chunks/catalog-field-grounding-8L9I0zdg.js +0 -1
- package/dist/chunks/catalog-field-grounding-BK4BX8sZ.js +0 -200
- package/dist/chunks/dashboard-briefing-launcher-B5vPTl8P.js +0 -80
- package/dist/chunks/dashboard-controls-Dyqye6fh.js +0 -52
- package/dist/chunks/dashboard-json-CV_LnO9x.js +0 -1
- package/dist/chunks/edit-dashboard-visual-yinO0yU-.js +0 -178
- package/dist/chunks/index-BxM99sFL.js +0 -1
- package/dist/chunks/index-CuHybtft.js +0 -51
- package/dist/chunks/use-create-flow-overlay-state-NsqFPwdB.js +0 -21
- package/dist/chunks/validation-BM3-ShHV.js +0 -1003
- package/dist/chunks/validation-BVpqRFar.js +0 -1
- package/dist/chunks/validators-jpoYhpHh.js +0 -1
|
@@ -0,0 +1,733 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calendar context for timezone-aware date operations.
|
|
3
|
+
* Controls how dates are interpreted, grouped, and displayed.
|
|
4
|
+
*/
|
|
5
|
+
declare type CalendarContext = {
|
|
6
|
+
/**
|
|
7
|
+
* IANA timezone identifier.
|
|
8
|
+
* @example 'America/Chicago', 'Europe/London', 'Asia/Tokyo', 'UTC'
|
|
9
|
+
* @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
10
|
+
*/
|
|
11
|
+
tz: string;
|
|
12
|
+
/**
|
|
13
|
+
* Day the week starts on.
|
|
14
|
+
* 0 = Sunday (US, Canada, Japan)
|
|
15
|
+
* 1 = Monday (ISO standard, most of Europe)
|
|
16
|
+
* 6 = Saturday (Middle East)
|
|
17
|
+
* @default 1 (Monday) for backward compatibility
|
|
18
|
+
*/
|
|
19
|
+
weekStart: WeekStart;
|
|
20
|
+
/**
|
|
21
|
+
* Date anchor for relative date calculations.
|
|
22
|
+
* - 'now': Use current time (default, live dashboards)
|
|
23
|
+
* - { iso: string }: Fixed ISO 8601 date for reproducible views
|
|
24
|
+
*/
|
|
25
|
+
anchor: 'now' | {
|
|
26
|
+
iso: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export declare function hasSemaphorInputValue(value: unknown): boolean;
|
|
31
|
+
|
|
32
|
+
export declare function normalizeSemaphorInputOptions(options?: Array<{
|
|
33
|
+
label: string;
|
|
34
|
+
value: SemaphorOptionValue;
|
|
35
|
+
count?: number;
|
|
36
|
+
disambiguation?: string[];
|
|
37
|
+
} | SemaphorOptionValue>): {
|
|
38
|
+
label: string;
|
|
39
|
+
value: SemaphorOptionValue;
|
|
40
|
+
count?: number;
|
|
41
|
+
disambiguation?: string[];
|
|
42
|
+
}[];
|
|
43
|
+
|
|
44
|
+
declare type SemaphorAbsoluteTimeWindow = {
|
|
45
|
+
kind: 'absolute';
|
|
46
|
+
start: string;
|
|
47
|
+
end: string;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
declare type SemaphorActiveInput<TValue extends SemaphorInputValue = SemaphorInputValue> = SemaphorInputBinding & {
|
|
51
|
+
kind: 'filter' | 'control';
|
|
52
|
+
label?: string;
|
|
53
|
+
value?: TValue;
|
|
54
|
+
isActive: boolean;
|
|
55
|
+
operator?: SemaphorInputOperator;
|
|
56
|
+
controlRole?: SemaphorControlRole;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
declare type SemaphorAggregateFunction = 'SUM' | 'COUNT' | 'AVG' | 'MIN' | 'MAX' | 'MEDIAN' | 'DISTINCT';
|
|
60
|
+
|
|
61
|
+
declare type SemaphorAnalysisDriverMode = 'absolute_delta' | 'largest_negative' | 'largest_positive' | 'positive_and_negative' | 'all';
|
|
62
|
+
|
|
63
|
+
declare type SemaphorAnalysisQueryOptions = {
|
|
64
|
+
chartTitle?: string;
|
|
65
|
+
chartType?: string;
|
|
66
|
+
driverMode?: SemaphorAnalysisDriverMode;
|
|
67
|
+
includePopulation?: boolean;
|
|
68
|
+
calendarContext?: CalendarContext;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
declare type SemaphorAnalysisQuerySpec = SemaphorMetricQuerySpec & SemaphorAnalysisQueryOptions & {
|
|
72
|
+
analysis?: SemaphorMetricIntent['analysis'];
|
|
73
|
+
timeWindow?: SemaphorMetricIntent['timeWindow'];
|
|
74
|
+
filters?: SemaphorAnalyticsFilter[];
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
declare type SemaphorAnalyticsFilter = SemaphorAnalyticsValueFilter | SemaphorAnalyticsNullFilter;
|
|
78
|
+
|
|
79
|
+
declare type SemaphorAnalyticsFilterBase = {
|
|
80
|
+
id?: string;
|
|
81
|
+
field: SemaphorFieldRef;
|
|
82
|
+
/**
|
|
83
|
+
* Controls where the filter is applied in an aggregate query.
|
|
84
|
+
*
|
|
85
|
+
* `row` means pre-aggregation filtering (`WHERE`).
|
|
86
|
+
* `aggregate` means post-aggregation filtering (`HAVING`) and is valid only
|
|
87
|
+
* for measure fields the execution engine can aggregate safely.
|
|
88
|
+
*/
|
|
89
|
+
scope?: 'row' | 'aggregate';
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
declare type SemaphorAnalyticsFilterOperator = SemaphorInputOperator | 'not_contains' | 'is_null' | 'is_not_null';
|
|
93
|
+
|
|
94
|
+
declare type SemaphorAnalyticsIntent = SemaphorMetricIntent | SemaphorRecordsIntent | SemaphorInputOptionsIntent | SemaphorSqlIntent | SemaphorMatrixIntent;
|
|
95
|
+
|
|
96
|
+
declare type SemaphorAnalyticsNullFilter = SemaphorAnalyticsFilterBase & {
|
|
97
|
+
operator: SemaphorAnalyticsNullFilterOperator;
|
|
98
|
+
values?: never;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
declare type SemaphorAnalyticsNullFilterOperator = 'is_null' | 'is_not_null';
|
|
102
|
+
|
|
103
|
+
declare type SemaphorAnalyticsValueFilter = SemaphorAnalyticsFilterBase & {
|
|
104
|
+
operator?: SemaphorAnalyticsValueFilterOperator;
|
|
105
|
+
values: unknown[];
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
declare type SemaphorAnalyticsValueFilterOperator = Exclude<SemaphorAnalyticsFilterOperator, 'is_null' | 'is_not_null'>;
|
|
109
|
+
|
|
110
|
+
declare type SemaphorAppDerivedFieldsSpec = {
|
|
111
|
+
derivedFields?: SemaphorDerivedFieldDefinition[];
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
declare type SemaphorControlInputSpec<TValue extends SemaphorInputValue = SemaphorInputValue> = SemaphorInputBase<TValue> & {
|
|
115
|
+
kind: 'control';
|
|
116
|
+
role: SemaphorControlRole;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
declare type SemaphorControlRole = 'grain' | 'measure' | 'dimension' | 'aggregation' | 'sqlParam';
|
|
120
|
+
|
|
121
|
+
declare type SemaphorDerivedFieldAggregationBehavior = 'additive' | 'non_additive' | 'ratio_of_sums' | 'weighted' | 'pre_aggregated' | 'snapshot';
|
|
122
|
+
|
|
123
|
+
declare type SemaphorDerivedFieldAggregationStrategy = 'default' | 'symmetric_aggregate' | 'aggregate_then_join' | 'weighted';
|
|
124
|
+
|
|
125
|
+
declare type SemaphorDerivedFieldComputeStage = 'row' | 'aggregate';
|
|
126
|
+
|
|
127
|
+
declare type SemaphorDerivedFieldDefinition = {
|
|
128
|
+
kind: 'derived_field';
|
|
129
|
+
name: string;
|
|
130
|
+
label: string;
|
|
131
|
+
description?: string;
|
|
132
|
+
resultRole: SemaphorDerivedFieldResultRole;
|
|
133
|
+
dataType: NonNullable<SemaphorFieldRef['dataType']>;
|
|
134
|
+
computeStage: SemaphorDerivedFieldComputeStage;
|
|
135
|
+
expression: string;
|
|
136
|
+
expressionLanguage?: 'semaphor_sql_template';
|
|
137
|
+
inputs: Record<string, SemaphorDerivedFieldInput>;
|
|
138
|
+
defaultAggregate?: SemaphorAggregateFunction;
|
|
139
|
+
aggregationBehavior?: SemaphorDerivedFieldAggregationBehavior;
|
|
140
|
+
aggregationStrategy?: SemaphorDerivedFieldAggregationStrategy;
|
|
141
|
+
format?: SemaphorValueFormat;
|
|
142
|
+
tags?: string[];
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
declare type SemaphorDerivedFieldInput = {
|
|
146
|
+
kind: 'field';
|
|
147
|
+
field: SemaphorFieldRef;
|
|
148
|
+
aggregate?: SemaphorAggregateFunction;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
declare type SemaphorDerivedFieldResultRole = 'measure' | 'dimension' | 'date' | 'id' | 'unknown';
|
|
152
|
+
|
|
153
|
+
declare type SemaphorDialect = 'postgres' | 'mysql' | 'mssql' | 'snowflake' | 'clickhouse' | 'bigquery' | 'redshift' | 'duckdb' | 'sqlite' | 'unknown';
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Explorer-backed table source. This is intentionally distinct from raw SQL:
|
|
157
|
+
* matrix planning needs stable source metadata, fields, and dialect context.
|
|
158
|
+
*/
|
|
159
|
+
declare type SemaphorExplorerSourceRef = Extract<SemaphorSourceRef, {
|
|
160
|
+
kind: 'physical';
|
|
161
|
+
}>;
|
|
162
|
+
|
|
163
|
+
declare type SemaphorFieldRef = {
|
|
164
|
+
name: string;
|
|
165
|
+
label?: string;
|
|
166
|
+
role?: 'dimension' | 'measure' | 'date' | 'id' | 'unknown';
|
|
167
|
+
dataType?: 'string' | 'number' | 'boolean' | 'date' | 'datetime' | 'unknown';
|
|
168
|
+
source?: SemaphorSourceRef;
|
|
169
|
+
aggregate?: SemaphorAggregateFunction;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
declare type SemaphorFilterInputSpec<TValue extends SemaphorInputValue = SemaphorInputValue> = SemaphorInputBase<TValue> & {
|
|
173
|
+
kind: 'filter';
|
|
174
|
+
field: SemaphorQueryField;
|
|
175
|
+
operator?: SemaphorInputOperator;
|
|
176
|
+
relationshipHint?: SemaphorInputBinding['relationshipHint'];
|
|
177
|
+
multi?: boolean;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
declare type SemaphorInputBase<TValue extends SemaphorInputValue> = {
|
|
181
|
+
id: string;
|
|
182
|
+
label?: string;
|
|
183
|
+
value?: TValue;
|
|
184
|
+
defaultValue?: TValue;
|
|
185
|
+
onValueChange?: {
|
|
186
|
+
bivarianceHack(value: TValue | undefined): void;
|
|
187
|
+
}['bivarianceHack'];
|
|
188
|
+
options?: Array<SemaphorInputOption | SemaphorOptionValue>;
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
declare type SemaphorInputBinding = {
|
|
192
|
+
inputId: string;
|
|
193
|
+
kind?: 'filter' | 'control';
|
|
194
|
+
controlRole?: 'grain' | 'measure' | 'dimension' | 'aggregation' | 'sqlParam';
|
|
195
|
+
operator?: SemaphorInputOperator;
|
|
196
|
+
field?: SemaphorFieldRef;
|
|
197
|
+
relationshipHint?: SemaphorRelationshipHint;
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
declare type SemaphorInputBindingReference<TValue extends SemaphorInputValue = SemaphorInputValue> = {
|
|
201
|
+
toAnalyticsInput(): SemaphorActiveInput<TValue>;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
declare type SemaphorInputHandle<TValue extends SemaphorInputValue = SemaphorInputValue> = {
|
|
205
|
+
id: string;
|
|
206
|
+
kind: 'filter' | 'control';
|
|
207
|
+
label?: string;
|
|
208
|
+
field?: SemaphorFieldRef;
|
|
209
|
+
operator?: SemaphorInputOperator;
|
|
210
|
+
relationshipHint?: SemaphorInputBinding['relationshipHint'];
|
|
211
|
+
controlRole?: SemaphorControlRole;
|
|
212
|
+
value: TValue | undefined;
|
|
213
|
+
options: SemaphorInputOption[];
|
|
214
|
+
isActive: boolean;
|
|
215
|
+
setValue(value: TValue | undefined): void;
|
|
216
|
+
clear(): void;
|
|
217
|
+
toAnalyticsInput(): SemaphorActiveInput<TValue>;
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
declare type SemaphorInputOperator = '=' | '!=' | 'in' | 'not_in' | 'contains' | 'not_contains' | 'between' | 'not_between' | '>' | '>=' | '<' | '<=';
|
|
221
|
+
|
|
222
|
+
declare type SemaphorInputOption = {
|
|
223
|
+
label: string;
|
|
224
|
+
value: SemaphorOptionValue;
|
|
225
|
+
count?: number;
|
|
226
|
+
disambiguation?: string[];
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
declare type SemaphorInputOptionsIntent = {
|
|
230
|
+
kind: 'inputOptions';
|
|
231
|
+
version?: SemaphorProtocolVersion;
|
|
232
|
+
id?: string;
|
|
233
|
+
label?: string;
|
|
234
|
+
inputId: string;
|
|
235
|
+
source: SemaphorSourceRef;
|
|
236
|
+
labelField: SemaphorFieldRef;
|
|
237
|
+
valueField: SemaphorFieldRef;
|
|
238
|
+
searchField?: SemaphorFieldRef;
|
|
239
|
+
disambiguationFields?: SemaphorFieldRef[];
|
|
240
|
+
population?: SemaphorOptionPopulation;
|
|
241
|
+
dependencies?: SemaphorOptionDependencies;
|
|
242
|
+
search?: string;
|
|
243
|
+
limit?: number;
|
|
244
|
+
inputs?: SemaphorInputBinding[];
|
|
245
|
+
derivedFields?: SemaphorDerivedFieldDefinition[];
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
declare type SemaphorInputOptionsQuerySpec = SemaphorQuerySourceSpec & SemaphorAppDerivedFieldsSpec & {
|
|
249
|
+
id?: string;
|
|
250
|
+
label?: string;
|
|
251
|
+
inputId: string;
|
|
252
|
+
labelField: SemaphorQueryField;
|
|
253
|
+
valueField: SemaphorQueryField;
|
|
254
|
+
searchField?: SemaphorQueryField;
|
|
255
|
+
disambiguationFields?: SemaphorQueryField[];
|
|
256
|
+
population?: SemaphorOptionPopulation;
|
|
257
|
+
dependencies?: SemaphorOptionDependencies;
|
|
258
|
+
inputs?: SemaphorInputReference[];
|
|
259
|
+
search?: string;
|
|
260
|
+
limit?: number;
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
declare type SemaphorInputReference = SemaphorInputSpec | SemaphorInputBinding | SemaphorActiveInput | SemaphorInputHandle | SemaphorInputBindingReference;
|
|
264
|
+
|
|
265
|
+
declare type SemaphorInputSpec<TValue extends SemaphorInputValue = SemaphorInputValue> = SemaphorFilterInputSpec<TValue> | SemaphorControlInputSpec<TValue>;
|
|
266
|
+
|
|
267
|
+
declare type SemaphorInputValue = SemaphorScalar | SemaphorScalar[];
|
|
268
|
+
|
|
269
|
+
declare type SemaphorMatrixAxisExpansionOptions = {
|
|
270
|
+
defaultDepth?: number;
|
|
271
|
+
lazy?: boolean;
|
|
272
|
+
expandedPaths?: SemaphorMatrixMemberPathSegment[][];
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
declare type SemaphorMatrixAxisLevel = {
|
|
276
|
+
id?: string;
|
|
277
|
+
field: SemaphorFieldRef;
|
|
278
|
+
grain?: SemaphorTimeGrain;
|
|
279
|
+
label?: string;
|
|
280
|
+
subtotal?: boolean | SemaphorMatrixSubtotalOptions;
|
|
281
|
+
sortBy?: SemaphorMatrixAxisSortRule;
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
declare type SemaphorMatrixAxisLevelInput = SemaphorQueryField | SemaphorMatrixAxisLevel;
|
|
285
|
+
|
|
286
|
+
declare type SemaphorMatrixAxisSortRule = {
|
|
287
|
+
direction: 'asc' | 'desc';
|
|
288
|
+
by: {
|
|
289
|
+
kind: 'label';
|
|
290
|
+
} | {
|
|
291
|
+
kind: 'field';
|
|
292
|
+
field: SemaphorFieldRef;
|
|
293
|
+
aggregate?: SemaphorAggregateFunction;
|
|
294
|
+
};
|
|
295
|
+
nulls?: 'warehouseDefault' | 'first' | 'last';
|
|
296
|
+
scope?: 'global' | 'withinParent';
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
declare type SemaphorMatrixDisplayLimitOptions = {
|
|
300
|
+
rows?: SemaphorMatrixDisplayLimitRule;
|
|
301
|
+
columns?: SemaphorMatrixDisplayLimitRule;
|
|
302
|
+
};
|
|
303
|
+
|
|
304
|
+
declare type SemaphorMatrixDisplayLimitRule = {
|
|
305
|
+
limit: number;
|
|
306
|
+
by?: 'label' | 'value';
|
|
307
|
+
direction?: 'top' | 'bottom';
|
|
308
|
+
others?: boolean | {
|
|
309
|
+
label?: string;
|
|
310
|
+
};
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
declare type SemaphorMatrixExpansionOptions = {
|
|
314
|
+
rows?: SemaphorMatrixAxisExpansionOptions;
|
|
315
|
+
columns?: SemaphorMatrixAxisExpansionOptions;
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
declare type SemaphorMatrixIntent = {
|
|
319
|
+
kind: 'matrix';
|
|
320
|
+
version?: SemaphorProtocolVersion;
|
|
321
|
+
id?: string;
|
|
322
|
+
label?: string;
|
|
323
|
+
source: SemaphorMatrixSourceRef;
|
|
324
|
+
rows: SemaphorMatrixAxisLevel[];
|
|
325
|
+
columns?: SemaphorMatrixAxisLevel[];
|
|
326
|
+
values: SemaphorMatrixValueField[];
|
|
327
|
+
filters?: SemaphorAnalyticsFilter[];
|
|
328
|
+
inputs?: SemaphorInputBinding[];
|
|
329
|
+
relationshipHint?: SemaphorRelationshipHint;
|
|
330
|
+
totals?: SemaphorMatrixTotalOptions;
|
|
331
|
+
sort?: SemaphorMatrixSortRule[];
|
|
332
|
+
expansion?: SemaphorMatrixExpansionOptions;
|
|
333
|
+
layout?: SemaphorMatrixLayoutOptions;
|
|
334
|
+
displayLimits?: SemaphorMatrixDisplayLimitOptions;
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
declare type SemaphorMatrixLayoutOptions = {
|
|
338
|
+
hierarchy?: 'compact' | 'tabular' | 'outline';
|
|
339
|
+
valuesPlacement?: 'columns' | 'rows';
|
|
340
|
+
stickyRowHeaders?: boolean;
|
|
341
|
+
stickyColumnHeaders?: boolean;
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
declare type SemaphorMatrixMemberPathSegment = {
|
|
345
|
+
levelId: string;
|
|
346
|
+
value: unknown;
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
declare type SemaphorMatrixQuerySpec = Omit<SemaphorMatrixIntent, 'kind' | 'version' | 'rows' | 'columns' | 'values' | 'source' | 'inputs'> & {
|
|
350
|
+
source: SemaphorMatrixSourceRef;
|
|
351
|
+
rows: SemaphorNonEmptyArray<SemaphorMatrixAxisLevelInput>;
|
|
352
|
+
columns?: SemaphorMatrixAxisLevelInput[];
|
|
353
|
+
values: SemaphorNonEmptyArray<SemaphorMatrixValueFieldInput>;
|
|
354
|
+
inputs?: SemaphorInputReference[];
|
|
355
|
+
totals?: SemaphorMatrixTotalOptions;
|
|
356
|
+
sort?: SemaphorMatrixSortRule[];
|
|
357
|
+
expansion?: SemaphorMatrixExpansionOptions;
|
|
358
|
+
layout?: SemaphorMatrixIntent['layout'];
|
|
359
|
+
displayLimits?: SemaphorMatrixDisplayLimitOptions;
|
|
360
|
+
};
|
|
361
|
+
|
|
362
|
+
declare type SemaphorMatrixSortRule = {
|
|
363
|
+
axis: 'row' | 'column';
|
|
364
|
+
targetId?: string;
|
|
365
|
+
direction: 'asc' | 'desc';
|
|
366
|
+
by: {
|
|
367
|
+
kind: 'label';
|
|
368
|
+
} | {
|
|
369
|
+
kind: 'field';
|
|
370
|
+
field: SemaphorFieldRef;
|
|
371
|
+
aggregate?: SemaphorAggregateFunction;
|
|
372
|
+
} | {
|
|
373
|
+
kind: 'value';
|
|
374
|
+
valueId: string;
|
|
375
|
+
rowPath?: SemaphorMatrixMemberPathSegment[];
|
|
376
|
+
columnPath?: SemaphorMatrixMemberPathSegment[];
|
|
377
|
+
};
|
|
378
|
+
nulls?: 'warehouseDefault' | 'first' | 'last';
|
|
379
|
+
scope?: 'global' | 'withinParent';
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
declare type SemaphorMatrixSourceRef = SemaphorSemanticSourceRef | SemaphorExplorerSourceRef;
|
|
383
|
+
|
|
384
|
+
declare type SemaphorMatrixSubtotalOptions = {
|
|
385
|
+
enabled?: boolean;
|
|
386
|
+
position?: 'before' | 'after';
|
|
387
|
+
label?: string;
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
declare type SemaphorMatrixTotalCalculation = {
|
|
391
|
+
kind: 'defaultAggregate';
|
|
392
|
+
} | {
|
|
393
|
+
kind: 'blank';
|
|
394
|
+
} | {
|
|
395
|
+
kind: 'labelOnly';
|
|
396
|
+
label?: string;
|
|
397
|
+
} | {
|
|
398
|
+
kind: 'customAggregate';
|
|
399
|
+
aggregate: SemaphorAggregateFunction;
|
|
400
|
+
} | {
|
|
401
|
+
kind: 'percentOfParent';
|
|
402
|
+
} | {
|
|
403
|
+
kind: 'percentOfGrandTotal';
|
|
404
|
+
} | {
|
|
405
|
+
kind: 'customExpression';
|
|
406
|
+
expressionId: string;
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
declare type SemaphorMatrixTotalOptions = {
|
|
410
|
+
rows?: boolean | 'perLevel';
|
|
411
|
+
columns?: boolean | 'perLevel';
|
|
412
|
+
grandTotal?: boolean | {
|
|
413
|
+
rows?: boolean;
|
|
414
|
+
columns?: boolean;
|
|
415
|
+
};
|
|
416
|
+
rowPosition?: 'top' | 'bottom';
|
|
417
|
+
columnPosition?: 'left' | 'right';
|
|
418
|
+
};
|
|
419
|
+
|
|
420
|
+
declare type SemaphorMatrixValueField = {
|
|
421
|
+
id?: string;
|
|
422
|
+
field: SemaphorFieldRef;
|
|
423
|
+
aggregate?: SemaphorAggregateFunction;
|
|
424
|
+
label?: string;
|
|
425
|
+
format?: SemaphorValueFormat;
|
|
426
|
+
totalBehavior?: SemaphorMatrixTotalCalculation;
|
|
427
|
+
};
|
|
428
|
+
|
|
429
|
+
declare type SemaphorMatrixValueFieldInput = SemaphorQueryField | SemaphorMatrixValueField;
|
|
430
|
+
|
|
431
|
+
declare type SemaphorMetricAnalysis = {
|
|
432
|
+
kind: 'period_change';
|
|
433
|
+
orderBy?: 'absolute_change' | 'positive_change' | 'negative_change' | 'period';
|
|
434
|
+
direction?: 'increase' | 'decrease' | 'both';
|
|
435
|
+
timeWindow?: SemaphorTimeWindow;
|
|
436
|
+
};
|
|
437
|
+
|
|
438
|
+
declare type SemaphorMetricComparison = {
|
|
439
|
+
kind: 'previous_period' | 'previous_year' | 'target';
|
|
440
|
+
targetValue?: number;
|
|
441
|
+
};
|
|
442
|
+
|
|
443
|
+
declare type SemaphorMetricIntent = {
|
|
444
|
+
kind: 'metric';
|
|
445
|
+
version?: SemaphorProtocolVersion;
|
|
446
|
+
id?: string;
|
|
447
|
+
source: SemaphorSourceRef;
|
|
448
|
+
measures: SemaphorFieldRef[];
|
|
449
|
+
primaryMeasure?: SemaphorFieldRef;
|
|
450
|
+
label?: string;
|
|
451
|
+
dateField?: SemaphorFieldRef;
|
|
452
|
+
timeGrain?: SemaphorTimeGrain;
|
|
453
|
+
timeWindow?: SemaphorTimeWindow;
|
|
454
|
+
dimensions?: SemaphorFieldRef[];
|
|
455
|
+
filters?: SemaphorAnalyticsFilter[];
|
|
456
|
+
comparison?: {
|
|
457
|
+
kind: 'previous_period' | 'previous_year' | 'target';
|
|
458
|
+
targetValue?: number;
|
|
459
|
+
};
|
|
460
|
+
analysis?: SemaphorMetricAnalysis;
|
|
461
|
+
orderBy?: {
|
|
462
|
+
field: SemaphorFieldRef;
|
|
463
|
+
direction: 'asc' | 'desc';
|
|
464
|
+
};
|
|
465
|
+
inputs?: SemaphorInputBinding[];
|
|
466
|
+
relationshipHint?: SemaphorRelationshipHint;
|
|
467
|
+
limit?: number;
|
|
468
|
+
derivedFields?: SemaphorDerivedFieldDefinition[];
|
|
469
|
+
};
|
|
470
|
+
|
|
471
|
+
declare type SemaphorMetricQuerySpec = SemaphorQuerySourceSpec & SemaphorAppDerivedFieldsSpec & {
|
|
472
|
+
id?: string;
|
|
473
|
+
label?: string;
|
|
474
|
+
measures: SemaphorNonEmptyArray<SemaphorQueryField>;
|
|
475
|
+
primaryMeasure?: SemaphorQueryField;
|
|
476
|
+
dateField?: SemaphorQueryField;
|
|
477
|
+
timeGrain?: SemaphorTimeGrain;
|
|
478
|
+
dimensions?: SemaphorQueryField[];
|
|
479
|
+
comparison?: SemaphorMetricComparison;
|
|
480
|
+
orderBy?: SemaphorQueryOrderBy;
|
|
481
|
+
inputs?: SemaphorInputReference[];
|
|
482
|
+
relationshipHint?: SemaphorRelationshipHint;
|
|
483
|
+
limit?: number;
|
|
484
|
+
};
|
|
485
|
+
|
|
486
|
+
declare type SemaphorNonEmptyArray<T> = [T, ...T[]];
|
|
487
|
+
|
|
488
|
+
declare type SemaphorOptionDependencies = {
|
|
489
|
+
mode?: 'auto' | 'independent' | 'explicit';
|
|
490
|
+
includeInputIds?: string[];
|
|
491
|
+
excludeInputIds?: string[];
|
|
492
|
+
};
|
|
493
|
+
|
|
494
|
+
declare type SemaphorOptionPopulation = {
|
|
495
|
+
kind: 'option_source';
|
|
496
|
+
baseSource?: never;
|
|
497
|
+
} | {
|
|
498
|
+
kind: 'related_population';
|
|
499
|
+
baseSource: SemaphorSourceRef;
|
|
500
|
+
relationshipHint?: SemaphorRelationshipHint;
|
|
501
|
+
};
|
|
502
|
+
|
|
503
|
+
declare type SemaphorOptionValue = string | number | boolean;
|
|
504
|
+
|
|
505
|
+
declare type SemaphorPaginationRequest = {
|
|
506
|
+
page: number;
|
|
507
|
+
pageSize: number;
|
|
508
|
+
};
|
|
509
|
+
|
|
510
|
+
declare type SemaphorProtocolVersion = 1;
|
|
511
|
+
|
|
512
|
+
declare type SemaphorQueryField = SemaphorFieldRef;
|
|
513
|
+
|
|
514
|
+
declare type SemaphorQueryOrderBy = {
|
|
515
|
+
field: SemaphorQueryField;
|
|
516
|
+
direction: 'asc' | 'desc';
|
|
517
|
+
};
|
|
518
|
+
|
|
519
|
+
declare type SemaphorQuerySourceSpec = {
|
|
520
|
+
source: SemaphorSourceRef;
|
|
521
|
+
};
|
|
522
|
+
|
|
523
|
+
declare type SemaphorRecordsBaseQuerySpec = SemaphorQuerySourceSpec & SemaphorAppDerivedFieldsSpec & {
|
|
524
|
+
id?: string;
|
|
525
|
+
label?: string;
|
|
526
|
+
dateField?: SemaphorQueryField;
|
|
527
|
+
timeGrain?: SemaphorTimeGrain;
|
|
528
|
+
timeWindow?: SemaphorTimeWindow;
|
|
529
|
+
filters?: SemaphorAnalyticsFilter[];
|
|
530
|
+
orderBy?: SemaphorRecordsOrderBy;
|
|
531
|
+
inputs?: SemaphorInputReference[];
|
|
532
|
+
relationshipHint?: SemaphorRelationshipHint;
|
|
533
|
+
limit?: number;
|
|
534
|
+
pagination?: SemaphorPaginationRequest;
|
|
535
|
+
};
|
|
536
|
+
|
|
537
|
+
declare type SemaphorRecordsField = SemaphorFieldRef & {
|
|
538
|
+
role: NonNullable<SemaphorFieldRef['role']>;
|
|
539
|
+
};
|
|
540
|
+
|
|
541
|
+
declare type SemaphorRecordsIntent = {
|
|
542
|
+
kind: 'records';
|
|
543
|
+
version?: SemaphorProtocolVersion;
|
|
544
|
+
source: SemaphorSourceRef;
|
|
545
|
+
id?: string;
|
|
546
|
+
label?: string;
|
|
547
|
+
fields: SemaphorFieldRef[];
|
|
548
|
+
dateField?: SemaphorFieldRef;
|
|
549
|
+
timeGrain?: SemaphorTimeGrain;
|
|
550
|
+
timeWindow?: SemaphorTimeWindow;
|
|
551
|
+
filters?: SemaphorAnalyticsFilter[];
|
|
552
|
+
limit?: number;
|
|
553
|
+
pagination?: SemaphorPaginationRequest;
|
|
554
|
+
orderBy?: {
|
|
555
|
+
field: SemaphorFieldRef;
|
|
556
|
+
direction: 'asc' | 'desc';
|
|
557
|
+
};
|
|
558
|
+
inputs?: SemaphorInputBinding[];
|
|
559
|
+
relationshipHint?: SemaphorRelationshipHint;
|
|
560
|
+
derivedFields?: SemaphorDerivedFieldDefinition[];
|
|
561
|
+
};
|
|
562
|
+
|
|
563
|
+
declare type SemaphorRecordsOrderBy = SemaphorQueryOrderBy;
|
|
564
|
+
|
|
565
|
+
declare type SemaphorRecordsQuerySpec = SemaphorRecordsBaseQuerySpec & SemaphorRecordsSelectorSpec;
|
|
566
|
+
|
|
567
|
+
declare type SemaphorRecordsSelectorSpec = {
|
|
568
|
+
fields: SemaphorNonEmptyArray<SemaphorRecordsField>;
|
|
569
|
+
};
|
|
570
|
+
|
|
571
|
+
declare type SemaphorRelationshipHint = {
|
|
572
|
+
relationshipIds?: string[];
|
|
573
|
+
};
|
|
574
|
+
|
|
575
|
+
declare type SemaphorRelativeTimeWindow = {
|
|
576
|
+
kind?: 'relative';
|
|
577
|
+
unit: 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
|
|
578
|
+
value: number;
|
|
579
|
+
anchor?: 'now' | 'latest_available';
|
|
580
|
+
completeness?: 'include_partial' | 'complete_periods';
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
declare type SemaphorScalar = string | number | boolean | null;
|
|
584
|
+
|
|
585
|
+
declare type SemaphorSemanticSourceRef = Extract<SemaphorSourceRef, {
|
|
586
|
+
kind: 'semantic';
|
|
587
|
+
}>;
|
|
588
|
+
|
|
589
|
+
declare type SemaphorSourceRef = {
|
|
590
|
+
kind: 'semantic';
|
|
591
|
+
domainId: string;
|
|
592
|
+
datasetName: string;
|
|
593
|
+
datasetId?: string;
|
|
594
|
+
label?: string;
|
|
595
|
+
connectionId?: string;
|
|
596
|
+
} | {
|
|
597
|
+
kind: 'physical';
|
|
598
|
+
connectionId: string;
|
|
599
|
+
connectionType?: string;
|
|
600
|
+
tableName: string;
|
|
601
|
+
databaseName?: string;
|
|
602
|
+
schemaName?: string;
|
|
603
|
+
label?: string;
|
|
604
|
+
dialect?: SemaphorDialect;
|
|
605
|
+
} | {
|
|
606
|
+
kind: 'sql';
|
|
607
|
+
connectionId: string;
|
|
608
|
+
dialect?: SemaphorDialect;
|
|
609
|
+
label?: string;
|
|
610
|
+
};
|
|
611
|
+
|
|
612
|
+
declare type SemaphorSqlIntent = {
|
|
613
|
+
kind: 'sql';
|
|
614
|
+
version?: SemaphorProtocolVersion;
|
|
615
|
+
id?: string;
|
|
616
|
+
label?: string;
|
|
617
|
+
source: Extract<SemaphorSourceRef, {
|
|
618
|
+
kind: 'sql';
|
|
619
|
+
}>;
|
|
620
|
+
sql: string;
|
|
621
|
+
defaultParameters?: Record<string, unknown>;
|
|
622
|
+
pythonCode?: string;
|
|
623
|
+
limit?: number;
|
|
624
|
+
pagination?: SemaphorPaginationRequest;
|
|
625
|
+
rationale?: string;
|
|
626
|
+
fields?: SemaphorFieldRef[];
|
|
627
|
+
inputs?: SemaphorInputBinding[];
|
|
628
|
+
};
|
|
629
|
+
|
|
630
|
+
declare type SemaphorSqlParameterValue = SemaphorScalar | SemaphorScalar[];
|
|
631
|
+
|
|
632
|
+
declare type SemaphorSqlQuerySpec = SemaphorSqlSourceSpec & {
|
|
633
|
+
id?: string;
|
|
634
|
+
label?: string;
|
|
635
|
+
sql: string;
|
|
636
|
+
defaultParameters?: Record<string, SemaphorSqlParameterValue>;
|
|
637
|
+
pythonCode?: string;
|
|
638
|
+
fields?: SemaphorFieldRef[];
|
|
639
|
+
inputs?: SemaphorInputReference[];
|
|
640
|
+
limit?: number;
|
|
641
|
+
pagination?: SemaphorPaginationRequest;
|
|
642
|
+
rationale?: string;
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
declare type SemaphorSqlSourceSpec = {
|
|
646
|
+
source: Extract<SemaphorSourceRef, {
|
|
647
|
+
kind: 'sql';
|
|
648
|
+
}>;
|
|
649
|
+
};
|
|
650
|
+
|
|
651
|
+
declare type SemaphorTimeGrain = 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
|
|
652
|
+
|
|
653
|
+
declare type SemaphorTimeWindow = SemaphorRelativeTimeWindow | SemaphorAbsoluteTimeWindow;
|
|
654
|
+
|
|
655
|
+
declare type SemaphorValueFormat = {
|
|
656
|
+
type: 'number' | 'currency' | 'percent' | 'percentage' | 'scientific';
|
|
657
|
+
locale?: string;
|
|
658
|
+
minimumFractionDigits?: number;
|
|
659
|
+
maximumFractionDigits?: number;
|
|
660
|
+
useGrouping?: boolean;
|
|
661
|
+
prefix?: string;
|
|
662
|
+
suffix?: string;
|
|
663
|
+
negativeStyle?: 'minus' | 'parentheses';
|
|
664
|
+
compact?: boolean;
|
|
665
|
+
scale?: number;
|
|
666
|
+
currency?: string;
|
|
667
|
+
percentValueMode?: 'fraction' | 'whole';
|
|
668
|
+
} | {
|
|
669
|
+
type: 'date' | 'datetime';
|
|
670
|
+
locale?: string;
|
|
671
|
+
pattern?: string;
|
|
672
|
+
relative?: boolean;
|
|
673
|
+
timezone?: string;
|
|
674
|
+
sourceTimezone?: string;
|
|
675
|
+
prefix?: string;
|
|
676
|
+
suffix?: string;
|
|
677
|
+
} | {
|
|
678
|
+
type: 'duration';
|
|
679
|
+
inputUnit?: 'millisecond' | 'second' | 'minute' | 'hour' | 'day';
|
|
680
|
+
outputStyle?: 'compact' | 'digital' | 'long';
|
|
681
|
+
largestUnit?: 'millisecond' | 'second' | 'minute' | 'hour' | 'day';
|
|
682
|
+
smallestUnit?: 'millisecond' | 'second' | 'minute' | 'hour' | 'day';
|
|
683
|
+
maxUnits?: number;
|
|
684
|
+
prefix?: string;
|
|
685
|
+
suffix?: string;
|
|
686
|
+
negativeStyle?: 'minus' | 'parentheses';
|
|
687
|
+
} | {
|
|
688
|
+
type: 'string';
|
|
689
|
+
prefix?: string;
|
|
690
|
+
suffix?: string;
|
|
691
|
+
};
|
|
692
|
+
|
|
693
|
+
export declare function toSemaphorActiveInputSnapshots(inputs: SemaphorInputReference[] | undefined): SemaphorActiveInput[];
|
|
694
|
+
|
|
695
|
+
export declare function toSemaphorAnalysisIntent(spec: SemaphorAnalysisQuerySpec): SemaphorMetricIntent;
|
|
696
|
+
|
|
697
|
+
export declare function toSemaphorAnalysisQueryOptions(spec: SemaphorAnalysisQuerySpec): SemaphorAnalysisQueryOptions;
|
|
698
|
+
|
|
699
|
+
export declare function toSemaphorInputBinding(input: SemaphorInputReference): SemaphorInputBinding;
|
|
700
|
+
|
|
701
|
+
export declare function toSemaphorInputBindings(inputs: SemaphorInputReference[] | undefined): SemaphorInputBinding[] | undefined;
|
|
702
|
+
|
|
703
|
+
export declare function toSemaphorInputOptionsIntent(spec: SemaphorInputOptionsQuerySpec): Extract<SemaphorAnalyticsIntent, {
|
|
704
|
+
kind: 'inputOptions';
|
|
705
|
+
}>;
|
|
706
|
+
|
|
707
|
+
export declare function toSemaphorInputSnapshots(inputs: SemaphorInputReference[] | undefined): SemaphorActiveInput[];
|
|
708
|
+
|
|
709
|
+
export declare function toSemaphorInputSpec<TValue extends SemaphorInputValue = SemaphorInputValue>(spec: SemaphorInputSpec<TValue>): SemaphorInputBinding & {
|
|
710
|
+
kind: SemaphorInputSpec['kind'];
|
|
711
|
+
label?: string;
|
|
712
|
+
field?: SemaphorFieldRef;
|
|
713
|
+
operator?: SemaphorInputOperator;
|
|
714
|
+
controlRole?: SemaphorControlRole;
|
|
715
|
+
};
|
|
716
|
+
|
|
717
|
+
export declare function toSemaphorMatrixIntent(spec: SemaphorMatrixQuerySpec): SemaphorMatrixIntent;
|
|
718
|
+
|
|
719
|
+
export declare function toSemaphorMetricIntent(spec: SemaphorMetricQuerySpec): SemaphorMetricIntent;
|
|
720
|
+
|
|
721
|
+
export declare function toSemaphorRecordsIntent(spec: SemaphorRecordsQuerySpec): SemaphorRecordsIntent;
|
|
722
|
+
|
|
723
|
+
export declare function toSemaphorSqlIntent(spec: SemaphorSqlQuerySpec): SemaphorSqlIntent;
|
|
724
|
+
|
|
725
|
+
/**
|
|
726
|
+
* Week start day type.
|
|
727
|
+
* 0 = Sunday (US, Canada, Japan)
|
|
728
|
+
* 1 = Monday (ISO standard, most of Europe)
|
|
729
|
+
* 6 = Saturday (Middle East)
|
|
730
|
+
*/
|
|
731
|
+
declare type WeekStart = 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
732
|
+
|
|
733
|
+
export { }
|