@lightdash/common 0.1463.0 → 0.1464.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.
- package/dist/compiler/exploreCompiler.d.ts +1 -1
- package/dist/dbt/schemas/lightdashMetadata.json +1 -1
- package/dist/dbt/validation.d.ts +2 -1
- package/dist/index.d.ts +10 -8
- package/dist/index.js +4 -3
- package/dist/schemas/json/lightdash-dbt-2.0.json +4 -0
- package/dist/types/any.d.ts +7 -0
- package/dist/types/any.js +2 -0
- package/dist/types/api/errors.d.ts +2 -1
- package/dist/types/dbt.d.ts +11 -10
- package/dist/types/dbt.js +3 -1
- package/dist/types/errors.d.ts +18 -17
- package/dist/types/field.d.ts +7 -5
- package/dist/types/field.js +3 -1
- package/dist/types/field.test.js +1 -0
- package/dist/types/filter.d.ts +4 -3
- package/dist/types/filterGrammar.d.ts +3 -2
- package/dist/types/metricQuery.d.ts +8 -7
- package/dist/types/scheduler.d.ts +3 -2
- package/dist/types/user.d.ts +3 -2
- package/dist/types/warehouse.d.ts +5 -4
- package/dist/utils/filters.d.ts +6 -5
- package/dist/utils/formatting.js +2 -1
- package/dist/utils/formatting.test.js +5 -1
- package/dist/utils/loadLightdashProjectConfig.js +2 -2
- package/dist/utils/metricsExplorer.d.ts +3 -2
- package/dist/visualizations/CartesianChartDataModel.d.ts +4 -3
- package/dist/visualizations/PieChartDataModel.d.ts +2 -1
- package/dist/visualizations/TableDataModel.d.ts +2 -1
- package/package.json +1 -1
@@ -2,8 +2,8 @@ import { type DbtRawModelNode, type SupportedDbtAdapter } from '../types/dbt';
|
|
2
2
|
import { type CompiledExploreJoin, type CompiledTable, type Explore, type ExploreJoin, type Table } from '../types/explore';
|
3
3
|
import { type CompiledCustomDimension, type CompiledCustomSqlDimension, type CompiledDimension, type CompiledMetric, type CustomDimension, type CustomSqlDimension, type Dimension, type Metric } from '../types/field';
|
4
4
|
import { type WarehouseClient } from '../types/warehouse';
|
5
|
-
import { type DateGranularity } from '../types/timeFrames';
|
6
5
|
import { type LightdashProjectConfig } from '../types/lightdashProjectConfig';
|
6
|
+
import { type DateGranularity } from '../types/timeFrames';
|
7
7
|
export declare const lightdashVariablePattern: RegExp;
|
8
8
|
type Reference = {
|
9
9
|
refTable: string;
|
package/dist/dbt/validation.d.ts
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
import { type ValidateFunction } from 'ajv';
|
2
2
|
import { type AnyValidateFunction } from 'ajv/dist/types';
|
3
|
+
import { type AnyType } from '../types/any';
|
3
4
|
import { type DbtManifestVersion, type DbtMetric, type DbtRawModelNode } from '../types/dbt';
|
4
5
|
export declare class ManifestValidator {
|
5
6
|
private readonly lightdashSchemaId;
|
6
7
|
private readonly dbtSchemaId;
|
7
8
|
constructor(manifestVersion: DbtManifestVersion);
|
8
|
-
static isValid: (validator: ValidateFunction<
|
9
|
+
static isValid: (validator: ValidateFunction<AnyType>, data: AnyType) => [true, undefined] | [false, string];
|
9
10
|
static formatAjvErrors: (validator: AnyValidateFunction) => string;
|
10
11
|
static getValidator: <T>(schemaRef: string) => AnyValidateFunction<T>;
|
11
12
|
isModelValid: (model: DbtRawModelNode) => [true, undefined] | [false, string];
|
package/dist/index.d.ts
CHANGED
@@ -36,6 +36,8 @@ import { type TableBase } from './types/table';
|
|
36
36
|
import { type LightdashUser, type LoginOptions, type UserAllowedOrganization } from './types/user';
|
37
37
|
import { type UserWarehouseCredentials } from './types/userWarehouseCredentials';
|
38
38
|
import { type ValidationResponse } from './types/validation';
|
39
|
+
import { type AnyType } from './types/any';
|
40
|
+
import { type ApiGetSpotlightTableConfig } from './types/api/spotlight';
|
39
41
|
import { type ApiCatalogAnalyticsResults, type ApiCatalogMetadataResults, type ApiGetMetricsTree, type ApiMetricsCatalog } from './types/catalog';
|
40
42
|
import { type ApiChartAsCodeListResponse, type ApiChartAsCodeUpsertResponse, type ApiDashboardAsCodeListResponse } from './types/coder';
|
41
43
|
import { type ApiChartContentResponse, type ApiContentResponse } from './types/content';
|
@@ -45,7 +47,6 @@ import { type ApiPromotionChangesResponse } from './types/promotion';
|
|
45
47
|
import { type ApiSemanticLayerClientInfo, type ApiSemanticViewerChartCreate, type ApiSemanticViewerChartGet, type ApiSemanticViewerChartUpdate } from './types/semanticLayer';
|
46
48
|
import { type ApiCreateSqlChart, type ApiCreateVirtualView, type ApiGithubDbtWritePreview, type ApiSqlChart, type ApiSqlRunnerJobStatusResponse, type ApiUpdateSqlChart } from './types/sqlRunner';
|
47
49
|
import { type ApiWarehouseTableFields } from './types/warehouse';
|
48
|
-
import { type ApiGetSpotlightTableConfig } from './types/api/spotlight';
|
49
50
|
export * from './authorization/index';
|
50
51
|
export * from './authorization/types';
|
51
52
|
export * from './compiler/exploreCompiler';
|
@@ -57,15 +58,16 @@ export { default as lightdashDbtYamlSchema } from './schemas/json/lightdash-dbt-
|
|
57
58
|
export { default as lightdashProjectConfigSchema } from './schemas/json/lightdash-project-config-1.0.json';
|
58
59
|
export * from './templating/template';
|
59
60
|
export * from './types/analytics';
|
61
|
+
export * from './types/any';
|
60
62
|
export * from './types/api';
|
61
63
|
export * from './types/api/comments';
|
62
64
|
export * from './types/api/errors';
|
63
65
|
export * from './types/api/notifications';
|
64
66
|
export * from './types/api/share';
|
65
67
|
export * from './types/api/sort';
|
68
|
+
export * from './types/api/spotlight';
|
66
69
|
export * from './types/api/success';
|
67
70
|
export * from './types/api/uuid';
|
68
|
-
export * from './types/api/spotlight';
|
69
71
|
export * from './types/catalog';
|
70
72
|
export * from './types/coder';
|
71
73
|
export * from './types/comments';
|
@@ -114,6 +116,7 @@ export * from './types/share';
|
|
114
116
|
export * from './types/slack';
|
115
117
|
export * from './types/slackSettings';
|
116
118
|
export * from './types/space';
|
119
|
+
export * from './types/spotlightTableConfig';
|
117
120
|
export * from './types/sqlRunner';
|
118
121
|
export * from './types/SshKeyPair';
|
119
122
|
export * from './types/table';
|
@@ -138,6 +141,7 @@ export * from './utils/filters';
|
|
138
141
|
export * from './utils/formatting';
|
139
142
|
export * from './utils/github';
|
140
143
|
export * from './utils/item';
|
144
|
+
export * from './utils/loadLightdashProjectConfig';
|
141
145
|
export * from './utils/metricsExplorer';
|
142
146
|
export * from './utils/projectMemberRole';
|
143
147
|
export * from './utils/sanitizeHtml';
|
@@ -153,8 +157,6 @@ export * from './visualizations/PieChartDataModel';
|
|
153
157
|
export * from './visualizations/TableDataModel';
|
154
158
|
export * from './visualizations/types';
|
155
159
|
export * from './visualizations/types/IResultsRunner';
|
156
|
-
export * from './types/spotlightTableConfig';
|
157
|
-
export * from './utils/loadLightdashProjectConfig';
|
158
160
|
export declare const validateEmail: (email: string) => boolean;
|
159
161
|
export declare const getEmailSchema: () => z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
160
162
|
export declare const getPasswordSchema: () => z.ZodString;
|
@@ -229,7 +231,7 @@ export declare const SEED_GROUP: {
|
|
229
231
|
groupUuid: string;
|
230
232
|
name: string;
|
231
233
|
};
|
232
|
-
export type ArgumentsOf<F extends Function> = F extends (...args: infer A) =>
|
234
|
+
export type ArgumentsOf<F extends Function> = F extends (...args: infer A) => AnyType ? A : never;
|
233
235
|
export declare const getVisibleFields: (explore: Explore) => CompiledField[];
|
234
236
|
export declare const findFieldByIdInExplore: (explore: Explore, id: FieldId) => Field | undefined;
|
235
237
|
export declare const snakeCaseName: (text: string) => string;
|
@@ -552,8 +554,8 @@ export declare const getMetricsFromItemsMap: (itemsMap: ItemsMap, filter?: (valu
|
|
552
554
|
export declare const getTableCalculationsFromItemsMap: (itemsMap?: ItemsMap) => Record<string, TableCalculation>;
|
553
555
|
export declare function itemsInMetricQuery(metricQuery: MetricQuery | undefined): string[];
|
554
556
|
export declare function formatRows(rows: {
|
555
|
-
[col: string]:
|
557
|
+
[col: string]: AnyType;
|
556
558
|
}[], itemsMap: ItemsMap): ResultRow[];
|
557
|
-
export declare const removeEmptyProperties: (object: Record<string,
|
558
|
-
export declare const deepEqual: (object1: Record<string,
|
559
|
+
export declare const removeEmptyProperties: (object: Record<string, AnyType>) => Record<string, any>;
|
560
|
+
export declare const deepEqual: (object1: Record<string, AnyType>, object2: Record<string, AnyType>) => boolean;
|
559
561
|
export declare const getProjectDirectory: (dbtConnection?: DbtProjectConfig) => string | undefined;
|
package/dist/index.js
CHANGED
@@ -26,15 +26,16 @@ var lightdash_project_config_1_0_json_1 = require("./schemas/json/lightdash-proj
|
|
26
26
|
Object.defineProperty(exports, "lightdashProjectConfigSchema", { enumerable: true, get: function () { return tslib_1.__importDefault(lightdash_project_config_1_0_json_1).default; } });
|
27
27
|
tslib_1.__exportStar(require("./templating/template"), exports);
|
28
28
|
tslib_1.__exportStar(require("./types/analytics"), exports);
|
29
|
+
tslib_1.__exportStar(require("./types/any"), exports);
|
29
30
|
tslib_1.__exportStar(require("./types/api"), exports);
|
30
31
|
tslib_1.__exportStar(require("./types/api/comments"), exports);
|
31
32
|
tslib_1.__exportStar(require("./types/api/errors"), exports);
|
32
33
|
tslib_1.__exportStar(require("./types/api/notifications"), exports);
|
33
34
|
tslib_1.__exportStar(require("./types/api/share"), exports);
|
34
35
|
tslib_1.__exportStar(require("./types/api/sort"), exports);
|
36
|
+
tslib_1.__exportStar(require("./types/api/spotlight"), exports);
|
35
37
|
tslib_1.__exportStar(require("./types/api/success"), exports);
|
36
38
|
tslib_1.__exportStar(require("./types/api/uuid"), exports);
|
37
|
-
tslib_1.__exportStar(require("./types/api/spotlight"), exports);
|
38
39
|
tslib_1.__exportStar(require("./types/catalog"), exports);
|
39
40
|
tslib_1.__exportStar(require("./types/coder"), exports);
|
40
41
|
tslib_1.__exportStar(require("./types/comments"), exports);
|
@@ -83,6 +84,7 @@ tslib_1.__exportStar(require("./types/share"), exports);
|
|
83
84
|
tslib_1.__exportStar(require("./types/slack"), exports);
|
84
85
|
tslib_1.__exportStar(require("./types/slackSettings"), exports);
|
85
86
|
tslib_1.__exportStar(require("./types/space"), exports);
|
87
|
+
tslib_1.__exportStar(require("./types/spotlightTableConfig"), exports);
|
86
88
|
tslib_1.__exportStar(require("./types/sqlRunner"), exports);
|
87
89
|
tslib_1.__exportStar(require("./types/SshKeyPair"), exports);
|
88
90
|
tslib_1.__exportStar(require("./types/table"), exports);
|
@@ -108,6 +110,7 @@ tslib_1.__exportStar(require("./utils/filters"), exports);
|
|
108
110
|
tslib_1.__exportStar(require("./utils/formatting"), exports);
|
109
111
|
tslib_1.__exportStar(require("./utils/github"), exports);
|
110
112
|
tslib_1.__exportStar(require("./utils/item"), exports);
|
113
|
+
tslib_1.__exportStar(require("./utils/loadLightdashProjectConfig"), exports);
|
111
114
|
tslib_1.__exportStar(require("./utils/metricsExplorer"), exports);
|
112
115
|
tslib_1.__exportStar(require("./utils/projectMemberRole"), exports);
|
113
116
|
tslib_1.__exportStar(require("./utils/sanitizeHtml"), exports);
|
@@ -123,8 +126,6 @@ tslib_1.__exportStar(require("./visualizations/PieChartDataModel"), exports);
|
|
123
126
|
tslib_1.__exportStar(require("./visualizations/TableDataModel"), exports);
|
124
127
|
tslib_1.__exportStar(require("./visualizations/types"), exports);
|
125
128
|
tslib_1.__exportStar(require("./visualizations/types/IResultsRunner"), exports);
|
126
|
-
tslib_1.__exportStar(require("./types/spotlightTableConfig"), exports);
|
127
|
-
tslib_1.__exportStar(require("./utils/loadLightdashProjectConfig"), exports);
|
128
129
|
const validateEmail = (email) => {
|
129
130
|
if (/\s/.test(email)) {
|
130
131
|
return false;
|
@@ -146,6 +146,7 @@
|
|
146
146
|
"usd",
|
147
147
|
"gbp",
|
148
148
|
"jpy",
|
149
|
+
"dkk",
|
149
150
|
"eur",
|
150
151
|
"percent",
|
151
152
|
"id"
|
@@ -341,6 +342,7 @@
|
|
341
342
|
"mi",
|
342
343
|
"usd",
|
343
344
|
"jpy",
|
345
|
+
"dkk",
|
344
346
|
"gbp",
|
345
347
|
"eur",
|
346
348
|
"percent",
|
@@ -447,6 +449,7 @@
|
|
447
449
|
"mi",
|
448
450
|
"usd",
|
449
451
|
"jpy",
|
452
|
+
"dkk",
|
450
453
|
"gbp",
|
451
454
|
"eur",
|
452
455
|
"percent",
|
@@ -648,6 +651,7 @@
|
|
648
651
|
"mi",
|
649
652
|
"usd",
|
650
653
|
"jpy",
|
654
|
+
"dkk",
|
651
655
|
"gbp",
|
652
656
|
"eur",
|
653
657
|
"percent",
|
@@ -0,0 +1,7 @@
|
|
1
|
+
/** This AnyType is an alias for any
|
2
|
+
* The goal is to make it easier to identify any type in the codebase
|
3
|
+
* without having to eslint-disable all the time
|
4
|
+
* These are only used on legacy `any` types, don't use it for new types.
|
5
|
+
* This is added on a separate file to avoid circular dependencies.
|
6
|
+
*/
|
7
|
+
export type AnyType = any;
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type AnyType } from '../any';
|
1
2
|
/**
|
2
3
|
* The Error object is returned from the api any time there is an error.
|
3
4
|
* The message contains
|
@@ -21,6 +22,6 @@ export type ApiErrorPayload = {
|
|
21
22
|
/**
|
22
23
|
* Optional data containing details of the error
|
23
24
|
*/
|
24
|
-
data?:
|
25
|
+
data?: AnyType;
|
25
26
|
};
|
26
27
|
};
|
package/dist/types/dbt.d.ts
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
import { DepGraph } from 'dependency-graph';
|
2
|
+
import { type AnyType } from './any';
|
2
3
|
import { type ColumnInfo, type CompiledModelNode, type ParsedMetric } from './dbtFromSchema';
|
3
4
|
import { type CompactOrAlias, type DimensionType, type FieldUrl, type Format, type Metric, type MetricType, type Source } from './field';
|
5
|
+
import { type LightdashProjectConfig } from './lightdashProjectConfig';
|
4
6
|
import { type OrderFieldsByStrategy } from './table';
|
5
7
|
import { type DefaultTimeDimension, type TimeFrames } from './timeFrames';
|
6
|
-
import { type LightdashProjectConfig } from './lightdashProjectConfig';
|
7
8
|
export declare enum SupportedDbtAdapter {
|
8
9
|
BIGQUERY = "bigquery",
|
9
10
|
DATABRICKS = "databricks",
|
@@ -57,7 +58,7 @@ type DbtModelLightdashConfig = {
|
|
57
58
|
sql_filter?: string;
|
58
59
|
sql_where?: string;
|
59
60
|
required_filters?: {
|
60
|
-
[key: string]:
|
61
|
+
[key: string]: AnyType;
|
61
62
|
}[];
|
62
63
|
required_attributes?: Record<string, string | string[]>;
|
63
64
|
group_details?: Record<string, DbtModelGroup>;
|
@@ -126,7 +127,7 @@ export type DbtColumnLightdashMetric = {
|
|
126
127
|
urls?: FieldUrl[];
|
127
128
|
show_underlying_values?: string[];
|
128
129
|
filters?: {
|
129
|
-
[key: string]:
|
130
|
+
[key: string]: AnyType;
|
130
131
|
}[];
|
131
132
|
percentile?: number;
|
132
133
|
default_time_dimension?: DefaultTimeDimension;
|
@@ -171,7 +172,7 @@ export interface DbtRpcDocsGenerateResults {
|
|
171
172
|
[k: string]: DbtCatalogNode;
|
172
173
|
};
|
173
174
|
}
|
174
|
-
export declare const isDbtRpcDocsGenerateResults: (results: Record<string,
|
175
|
+
export declare const isDbtRpcDocsGenerateResults: (results: Record<string, AnyType>) => results is DbtRpcDocsGenerateResults;
|
175
176
|
export interface DbtPackage {
|
176
177
|
package: string;
|
177
178
|
version: string;
|
@@ -179,7 +180,7 @@ export interface DbtPackage {
|
|
179
180
|
export interface DbtPackages {
|
180
181
|
packages: DbtPackage[];
|
181
182
|
}
|
182
|
-
export declare const isDbtPackages: (results: Record<string,
|
183
|
+
export declare const isDbtPackages: (results: Record<string, AnyType>) => results is DbtPackages;
|
183
184
|
export type V9MetricRef = {
|
184
185
|
name: string;
|
185
186
|
package?: string | null;
|
@@ -187,7 +188,7 @@ export type V9MetricRef = {
|
|
187
188
|
};
|
188
189
|
export declare const isV9MetricRef: (x: string[] | V9MetricRef) => x is V9MetricRef;
|
189
190
|
export type DbtMetric = Omit<ParsedMetric, 'refs'> & {
|
190
|
-
meta?: Record<string,
|
191
|
+
meta?: Record<string, AnyType> & DbtMetricLightdashMetadata;
|
191
192
|
refs?: string[][] | V9MetricRef[];
|
192
193
|
};
|
193
194
|
export type DbtMetricLightdashMetadata = {
|
@@ -195,7 +196,7 @@ export type DbtMetricLightdashMetadata = {
|
|
195
196
|
group_label?: string;
|
196
197
|
groups?: string[];
|
197
198
|
show_underlying_values?: string[];
|
198
|
-
filters: Record<string,
|
199
|
+
filters: Record<string, AnyType>[];
|
199
200
|
};
|
200
201
|
export type DbtDoc = {
|
201
202
|
unique_id: string;
|
@@ -221,18 +222,18 @@ export declare const isSupportedDbtAdapterType: (x: string) => x is SupportedDbt
|
|
221
222
|
export interface DbtRpcGetManifestResults {
|
222
223
|
manifest: DbtManifest;
|
223
224
|
}
|
224
|
-
export declare const isDbtRpcManifestResults: (results: Record<string,
|
225
|
+
export declare const isDbtRpcManifestResults: (results: Record<string, AnyType>) => results is DbtRpcGetManifestResults;
|
225
226
|
export interface DbtRpcCompileResults {
|
226
227
|
results: {
|
227
228
|
node: DbtNode;
|
228
229
|
}[];
|
229
230
|
}
|
230
|
-
export declare const isDbtRpcCompileResults: (results: Record<string,
|
231
|
+
export declare const isDbtRpcCompileResults: (results: Record<string, AnyType>) => results is DbtRpcCompileResults;
|
231
232
|
export interface DbtRpcRunSqlResults {
|
232
233
|
results: {
|
233
234
|
table: {
|
234
235
|
column_names: string[];
|
235
|
-
rows:
|
236
|
+
rows: AnyType[][];
|
236
237
|
};
|
237
238
|
}[];
|
238
239
|
}
|
package/dist/types/dbt.js
CHANGED
@@ -122,7 +122,9 @@ const convertToGroups = (dbtGroups, dbtGroupLabel) => {
|
|
122
122
|
return groups;
|
123
123
|
};
|
124
124
|
exports.convertToGroups = convertToGroups;
|
125
|
-
const isDbtRpcRunSqlResults = (
|
125
|
+
const isDbtRpcRunSqlResults = (
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
127
|
+
results) => 'results' in results &&
|
126
128
|
Array.isArray(results.results) &&
|
127
129
|
results.results.every((result) => typeof result === 'object' &&
|
128
130
|
result !== null &&
|
package/dist/types/errors.d.ts
CHANGED
@@ -1,32 +1,33 @@
|
|
1
|
+
import { type AnyType } from './any';
|
1
2
|
import { type DbtLog } from './job';
|
2
3
|
type LightdashErrorParams = {
|
3
4
|
message: string;
|
4
5
|
name: string;
|
5
6
|
statusCode: number;
|
6
7
|
data: {
|
7
|
-
[key: string]:
|
8
|
+
[key: string]: AnyType;
|
8
9
|
};
|
9
10
|
};
|
10
11
|
export declare class LightdashError extends Error {
|
11
12
|
statusCode: number;
|
12
13
|
data: {
|
13
|
-
[key: string]:
|
14
|
+
[key: string]: AnyType;
|
14
15
|
};
|
15
16
|
constructor({ message, name, statusCode, data }: LightdashErrorParams);
|
16
17
|
}
|
17
18
|
export declare class ForbiddenError extends LightdashError {
|
18
19
|
constructor(message?: string, data?: {
|
19
|
-
[key: string]:
|
20
|
+
[key: string]: AnyType;
|
20
21
|
});
|
21
22
|
}
|
22
23
|
export declare class DeactivatedAccountError extends LightdashError {
|
23
24
|
constructor(message?: string, data?: {
|
24
|
-
[key: string]:
|
25
|
+
[key: string]: AnyType;
|
25
26
|
});
|
26
27
|
}
|
27
28
|
export declare class AuthorizationError extends LightdashError {
|
28
29
|
constructor(message?: string, data?: {
|
29
|
-
[key: string]:
|
30
|
+
[key: string]: AnyType;
|
30
31
|
});
|
31
32
|
}
|
32
33
|
export declare class NotExistsError extends LightdashError {
|
@@ -36,16 +37,16 @@ export declare class ExpiredError extends LightdashError {
|
|
36
37
|
constructor(message: string);
|
37
38
|
}
|
38
39
|
export declare class ParameterError extends LightdashError {
|
39
|
-
constructor(message?: string, data?: Record<string,
|
40
|
+
constructor(message?: string, data?: Record<string, AnyType>);
|
40
41
|
}
|
41
42
|
export declare class NonCompiledModelError extends LightdashError {
|
42
43
|
constructor(message: string, data?: {
|
43
|
-
[key: string]:
|
44
|
+
[key: string]: AnyType;
|
44
45
|
});
|
45
46
|
}
|
46
47
|
export declare class MissingCatalogEntryError extends LightdashError {
|
47
48
|
constructor(message: string, data: {
|
48
|
-
[key: string]:
|
49
|
+
[key: string]: AnyType;
|
49
50
|
});
|
50
51
|
}
|
51
52
|
export declare class MissingWarehouseCredentialsError extends LightdashError {
|
@@ -53,29 +54,29 @@ export declare class MissingWarehouseCredentialsError extends LightdashError {
|
|
53
54
|
}
|
54
55
|
export declare class UnexpectedServerError extends LightdashError {
|
55
56
|
constructor(message?: string, data?: {
|
56
|
-
[key: string]:
|
57
|
+
[key: string]: AnyType;
|
57
58
|
});
|
58
59
|
}
|
59
60
|
export declare class UnexpectedGitError extends LightdashError {
|
60
61
|
constructor(message?: string, data?: {
|
61
|
-
[key: string]:
|
62
|
+
[key: string]: AnyType;
|
62
63
|
});
|
63
64
|
}
|
64
65
|
export declare class UnexpectedDatabaseError extends LightdashError {
|
65
66
|
constructor(message?: string, data?: {
|
66
|
-
[key: string]:
|
67
|
+
[key: string]: AnyType;
|
67
68
|
});
|
68
69
|
}
|
69
70
|
export declare class ParseError extends LightdashError {
|
70
71
|
constructor(message?: string, data?: {
|
71
|
-
[key: string]:
|
72
|
+
[key: string]: AnyType;
|
72
73
|
});
|
73
74
|
}
|
74
75
|
export declare class CompileError extends LightdashError {
|
75
|
-
constructor(message?: string, data?: Record<string,
|
76
|
+
constructor(message?: string, data?: Record<string, AnyType>);
|
76
77
|
}
|
77
78
|
export declare class FieldReferenceError extends LightdashError {
|
78
|
-
constructor(message?: string, data?: Record<string,
|
79
|
+
constructor(message?: string, data?: Record<string, AnyType>);
|
79
80
|
}
|
80
81
|
export declare class DbtError extends LightdashError {
|
81
82
|
logs: DbtLog[] | undefined;
|
@@ -92,12 +93,12 @@ export declare class WarehouseConnectionError extends LightdashError {
|
|
92
93
|
}
|
93
94
|
export declare class WarehouseQueryError extends LightdashError {
|
94
95
|
constructor(message: string, data?: {
|
95
|
-
[key: string]:
|
96
|
+
[key: string]: AnyType;
|
96
97
|
});
|
97
98
|
}
|
98
99
|
export declare class SmptError extends LightdashError {
|
99
100
|
constructor(message: string, data?: {
|
100
|
-
[key: string]:
|
101
|
+
[key: string]: AnyType;
|
101
102
|
});
|
102
103
|
}
|
103
104
|
export declare class AlreadyProcessingError extends LightdashError {
|
@@ -120,7 +121,7 @@ export declare class SlackInstallationNotFoundError extends LightdashError {
|
|
120
121
|
}
|
121
122
|
export declare class UnexpectedGoogleSheetsError extends LightdashError {
|
122
123
|
constructor(message?: string, data?: {
|
123
|
-
[key: string]:
|
124
|
+
[key: string]: AnyType;
|
124
125
|
});
|
125
126
|
}
|
126
127
|
export declare const getErrorMessage: (e: unknown) => string;
|
package/dist/types/field.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import type { AdditionalMetric, currencies, DefaultTimeDimension, LightdashProjectConfig } from '..';
|
2
|
+
import { type AnyType } from './any';
|
2
3
|
import { type MetricFilterRule } from './filter';
|
3
4
|
import { type TimeFrames } from './timeFrames';
|
4
5
|
export declare enum Compact {
|
@@ -58,15 +59,15 @@ export interface CustomSqlDimension extends BaseCustomDimension {
|
|
58
59
|
dimensionType: DimensionType;
|
59
60
|
}
|
60
61
|
export type CustomDimension = CustomBinDimension | CustomSqlDimension;
|
61
|
-
export declare const isCustomDimension: (value:
|
62
|
-
export declare const isCustomBinDimension: (value:
|
63
|
-
export declare const isCustomSqlDimension: (value:
|
62
|
+
export declare const isCustomDimension: (value: AnyType) => value is CustomDimension;
|
63
|
+
export declare const isCustomBinDimension: (value: AnyType) => value is CustomBinDimension;
|
64
|
+
export declare const isCustomSqlDimension: (value: AnyType) => value is CustomSqlDimension;
|
64
65
|
export type CompiledCustomSqlDimension = CustomSqlDimension & {
|
65
66
|
compiledSql: string;
|
66
67
|
tablesReferences: Array<string>;
|
67
68
|
};
|
68
69
|
export type CompiledCustomDimension = CustomBinDimension | CompiledCustomSqlDimension;
|
69
|
-
export declare const isCompiledCustomSqlDimension: (value:
|
70
|
+
export declare const isCompiledCustomSqlDimension: (value: AnyType) => value is CompiledCustomSqlDimension;
|
70
71
|
export type ItemsMap = Record<string, Field | TableCalculation | CustomDimension | Metric>;
|
71
72
|
export type Item = ItemsMap[string];
|
72
73
|
export interface CustomFormat {
|
@@ -142,7 +143,7 @@ export interface Field {
|
|
142
143
|
index?: number;
|
143
144
|
tags?: string[];
|
144
145
|
}
|
145
|
-
export declare const isField: (field:
|
146
|
+
export declare const isField: (field: AnyType) => field is Field;
|
146
147
|
export type FieldId = string;
|
147
148
|
export declare const convertFieldRefToFieldId: (fieldRef: string, fallbackTableName?: string) => string;
|
148
149
|
export type Source = {
|
@@ -222,6 +223,7 @@ export declare enum Format {
|
|
222
223
|
GBP = "gbp",
|
223
224
|
EUR = "eur",
|
224
225
|
JPY = "jpy",
|
226
|
+
DKK = "dkk",
|
225
227
|
ID = "id",
|
226
228
|
PERCENT = "percent"
|
227
229
|
}
|
package/dist/types/field.js
CHANGED
@@ -58,7 +58,8 @@ exports.CompactConfigMap = {
|
|
58
58
|
},
|
59
59
|
};
|
60
60
|
function findCompactConfig(compactOrAlias) {
|
61
|
-
return Object.values(exports.CompactConfigMap).find(({ compact, alias }) => compact === compactOrAlias ||
|
61
|
+
return Object.values(exports.CompactConfigMap).find(({ compact, alias }) => compact === compactOrAlias ||
|
62
|
+
alias.includes(compactOrAlias));
|
62
63
|
}
|
63
64
|
exports.findCompactConfig = findCompactConfig;
|
64
65
|
var BinType;
|
@@ -170,6 +171,7 @@ var Format;
|
|
170
171
|
Format["GBP"] = "gbp";
|
171
172
|
Format["EUR"] = "eur";
|
172
173
|
Format["JPY"] = "jpy";
|
174
|
+
Format["DKK"] = "dkk";
|
173
175
|
Format["ID"] = "id";
|
174
176
|
Format["PERCENT"] = "percent";
|
175
177
|
})(Format = exports.Format || (exports.Format = {}));
|
package/dist/types/field.test.js
CHANGED
@@ -78,6 +78,7 @@ describe('field util functions', () => {
|
|
78
78
|
expect((0, field_1.isFormat)('gbp')).toBe(true);
|
79
79
|
expect((0, field_1.isFormat)('eur')).toBe(true);
|
80
80
|
expect((0, field_1.isFormat)('jpy')).toBe(true);
|
81
|
+
expect((0, field_1.isFormat)('dkk')).toBe(true);
|
81
82
|
expect((0, field_1.isFormat)('id')).toBe(true);
|
82
83
|
expect((0, field_1.isFormat)('percent')).toBe(true);
|
83
84
|
});
|
package/dist/types/filter.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type AnyType } from './any';
|
1
2
|
import { ConditionalOperator, type ConditionalRule } from './conditionalRule';
|
2
3
|
import type { SchedulerFilterRule } from './scheduler';
|
3
4
|
export declare enum FilterType {
|
@@ -22,7 +23,7 @@ export declare const getUnitsOfTimeGreaterOrEqual: (unit: UnitOfTime) => UnitOfT
|
|
22
23
|
export type FieldTarget = {
|
23
24
|
fieldId: string;
|
24
25
|
};
|
25
|
-
export interface FilterRule<O = ConditionalOperator, T = FieldTarget, V =
|
26
|
+
export interface FilterRule<O = ConditionalOperator, T = FieldTarget, V = AnyType, S = AnyType> extends ConditionalRule<O, V> {
|
26
27
|
id: string;
|
27
28
|
target: T;
|
28
29
|
settings?: S;
|
@@ -38,7 +39,7 @@ export type DashboardFieldTarget = {
|
|
38
39
|
tableName: string;
|
39
40
|
};
|
40
41
|
export type DashboardTileTarget = DashboardFieldTarget | false;
|
41
|
-
export type DashboardFilterRule<O = ConditionalOperator, T extends DashboardFieldTarget = DashboardFieldTarget, V =
|
42
|
+
export type DashboardFilterRule<O = ConditionalOperator, T extends DashboardFieldTarget = DashboardFieldTarget, V = AnyType, S = AnyType> = FilterRule<O, T, V, S> & {
|
42
43
|
tileTargets?: Record<string, DashboardTileTarget>;
|
43
44
|
label: undefined | string;
|
44
45
|
};
|
@@ -52,7 +53,7 @@ export type DateFilterSettings = {
|
|
52
53
|
unitOfTime?: UnitOfTime;
|
53
54
|
completed?: boolean;
|
54
55
|
};
|
55
|
-
export type DateFilterRule = FilterRule<ConditionalOperator, unknown,
|
56
|
+
export type DateFilterRule = FilterRule<ConditionalOperator, unknown, AnyType, DateFilterSettings>;
|
56
57
|
export type FilterGroupItem = FilterGroup | FilterRule;
|
57
58
|
export type OrFilterGroup = {
|
58
59
|
id: string;
|
@@ -1,11 +1,12 @@
|
|
1
|
+
import { type AnyType } from './any';
|
1
2
|
import { FilterOperator, type MetricFilterRule } from './filter';
|
2
3
|
export type ParsedFilter = {
|
3
4
|
type: string;
|
4
|
-
values:
|
5
|
+
values: AnyType[];
|
5
6
|
is?: boolean;
|
6
7
|
date_interval?: string;
|
7
8
|
};
|
8
9
|
declare const filterGrammar: string;
|
9
10
|
export declare const parseOperator: (operator: string, isTrue: boolean) => FilterOperator;
|
10
|
-
export declare const parseFilters: (rawFilters: Record<string,
|
11
|
+
export declare const parseFilters: (rawFilters: Record<string, AnyType>[] | undefined) => MetricFilterRule[];
|
11
12
|
export default filterGrammar;
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type AnyType } from './any';
|
1
2
|
import { type CompactOrAlias, type CompiledCustomDimension, type CompiledDimension, type CompiledMetric, type CompiledTableCalculation, type CustomDimension, type CustomFormat, type FieldId, type Format, type Metric, type MetricType, type TableCalculation } from './field';
|
2
3
|
import { type Filters, type MetricFilterRule } from './filter';
|
3
4
|
import { type DateGranularity } from './timeFrames';
|
@@ -19,8 +20,8 @@ export interface AdditionalMetric {
|
|
19
20
|
percentile?: number;
|
20
21
|
formatOptions?: CustomFormat;
|
21
22
|
}
|
22
|
-
export declare const isAdditionalMetric: (value:
|
23
|
-
export declare const hasFormatOptions: (value:
|
23
|
+
export declare const isAdditionalMetric: (value: AnyType) => value is AdditionalMetric;
|
24
|
+
export declare const hasFormatOptions: (value: AnyType) => value is {
|
24
25
|
formatOptions: CustomFormat;
|
25
26
|
};
|
26
27
|
export declare const getCustomMetricDimensionId: (metric: AdditionalMetric) => string;
|
@@ -55,10 +56,10 @@ export type SortField = {
|
|
55
56
|
export declare const getAdditionalMetricLabel: (item: AdditionalMetric) => string;
|
56
57
|
type FilterGroupResponse = {
|
57
58
|
id: string;
|
58
|
-
or:
|
59
|
+
or: AnyType[];
|
59
60
|
} | {
|
60
61
|
id: string;
|
61
|
-
and:
|
62
|
+
and: AnyType[];
|
62
63
|
};
|
63
64
|
export type FiltersResponse = {
|
64
65
|
dimensions?: FilterGroupResponse;
|
@@ -91,9 +92,9 @@ export type MetricQueryRequest = {
|
|
91
92
|
dimensions: FieldId[];
|
92
93
|
metrics: FieldId[];
|
93
94
|
filters: {
|
94
|
-
dimensions?:
|
95
|
-
metrics?:
|
96
|
-
tableCalculations?:
|
95
|
+
dimensions?: AnyType;
|
96
|
+
metrics?: AnyType;
|
97
|
+
tableCalculations?: AnyType;
|
97
98
|
};
|
98
99
|
sorts: SortField[];
|
99
100
|
limit: number;
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type AnyType } from './any';
|
1
2
|
import { type Explore, type ExploreError } from './explore';
|
2
3
|
import { type DashboardFilterRule } from './filter';
|
3
4
|
import { type MetricQuery } from './metricQuery';
|
@@ -43,7 +44,7 @@ export type SchedulerLog = {
|
|
43
44
|
status: SchedulerJobStatus;
|
44
45
|
target?: string;
|
45
46
|
targetType?: 'email' | 'slack' | 'gsheets';
|
46
|
-
details?: Record<string,
|
47
|
+
details?: Record<string, AnyType>;
|
47
48
|
};
|
48
49
|
export type CreateSchedulerLog = Omit<SchedulerLog, 'createdAt'>;
|
49
50
|
export declare enum ThresholdOperator {
|
@@ -283,7 +284,7 @@ export type ApiJobStatusResponse = {
|
|
283
284
|
status: 'ok';
|
284
285
|
results: {
|
285
286
|
status: SchedulerJobStatus;
|
286
|
-
details: Record<string,
|
287
|
+
details: Record<string, AnyType> | null;
|
287
288
|
};
|
288
289
|
};
|
289
290
|
export type SchedulerCronUpdate = {
|
package/dist/types/user.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
import { type AbilityBuilder } from '@casl/ability';
|
2
2
|
import { type MemberAbility } from '../authorization/types';
|
3
|
+
import { type AnyType } from './any';
|
3
4
|
import { type OpenIdIdentityIssuerType } from './openIdIdentity';
|
4
5
|
import { type OrganizationMemberRole } from './organizationMemberProfile';
|
5
6
|
export interface LightdashUser {
|
@@ -39,7 +40,7 @@ export interface UpdatedByUser {
|
|
39
40
|
firstName: string;
|
40
41
|
lastName: string;
|
41
42
|
}
|
42
|
-
export declare const isSessionUser: (user:
|
43
|
+
export declare const isSessionUser: (user: AnyType) => user is SessionUser;
|
43
44
|
export interface OpenIdUser {
|
44
45
|
openId: {
|
45
46
|
subject: string;
|
@@ -51,7 +52,7 @@ export interface OpenIdUser {
|
|
51
52
|
groups?: string[] | undefined;
|
52
53
|
};
|
53
54
|
}
|
54
|
-
export declare const isOpenIdUser: (user:
|
55
|
+
export declare const isOpenIdUser: (user: AnyType) => user is OpenIdUser;
|
55
56
|
export type UserAllowedOrganization = {
|
56
57
|
organizationUuid: string;
|
57
58
|
name: string;
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { type WeekDay } from '../utils/timeFrames';
|
2
|
+
import { type AnyType } from './any';
|
2
3
|
import { type SupportedDbtAdapter } from './dbt';
|
3
4
|
import { type DimensionType, type Metric } from './field';
|
4
5
|
import { type CreateWarehouseCredentials } from './projects';
|
@@ -31,7 +32,7 @@ export type WarehouseResults = {
|
|
31
32
|
fields: Record<string, {
|
32
33
|
type: DimensionType;
|
33
34
|
}>;
|
34
|
-
rows: Record<string,
|
35
|
+
rows: Record<string, AnyType>[];
|
35
36
|
};
|
36
37
|
export interface WarehouseClient {
|
37
38
|
credentials: CreateWarehouseCredentials;
|
@@ -41,7 +42,7 @@ export interface WarehouseClient {
|
|
41
42
|
table: string;
|
42
43
|
}[]) => Promise<WarehouseCatalog>;
|
43
44
|
streamQuery(query: string, streamCallback: (data: WarehouseResults) => void, options: {
|
44
|
-
values?:
|
45
|
+
values?: AnyType[];
|
45
46
|
tags: Record<string, string>;
|
46
47
|
timezone?: string;
|
47
48
|
}): Promise<void>;
|
@@ -53,7 +54,7 @@ export interface WarehouseClient {
|
|
53
54
|
* @param values
|
54
55
|
* @deprecated Use streamQuery() instead to avoid loading all results into memory
|
55
56
|
*/
|
56
|
-
runQuery(sql: string, tags: Record<string, string>, timezone?: string, values?:
|
57
|
+
runQuery(sql: string, tags: Record<string, string>, timezone?: string, values?: AnyType[]): Promise<WarehouseResults>;
|
57
58
|
test(): Promise<void>;
|
58
59
|
getStartOfWeek(): WeekDay | null | undefined;
|
59
60
|
getAdapterType(): SupportedDbtAdapter;
|
@@ -63,7 +64,7 @@ export interface WarehouseClient {
|
|
63
64
|
concatString(...args: string[]): string;
|
64
65
|
getAllTables(schema?: string, tags?: Record<string, string>): Promise<WarehouseTables>;
|
65
66
|
getFields(tableName: string, schema?: string, database?: string, tags?: Record<string, string>): Promise<WarehouseCatalog>;
|
66
|
-
parseWarehouseCatalog(rows: Record<string,
|
67
|
+
parseWarehouseCatalog(rows: Record<string, AnyType>[], mapFieldType: (type: string) => DimensionType): WarehouseCatalog;
|
67
68
|
parseError(error: Error): Error;
|
68
69
|
}
|
69
70
|
export type ApiWarehouseCatalog = {
|
package/dist/utils/filters.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type AnyType } from '../types/any';
|
1
2
|
import { type DashboardTile } from '../types/dashboard';
|
2
3
|
import { type Table } from '../types/explore';
|
3
4
|
import { type CompiledField, type CustomSqlDimension, type Dimension, type Field, type FilterableDimension, type FilterableField, type FilterableItem, type ItemsMap, type TableCalculation } from '../types/field';
|
@@ -12,13 +13,13 @@ export declare const getItemsFromFilterGroup: (filterGroup: FilterGroup | undefi
|
|
12
13
|
export declare const getFilterGroupItemsPropertyName: (filterGroup: FilterGroup | undefined) => 'and' | 'or';
|
13
14
|
export declare const getFilterTypeFromItem: (item: FilterableField) => FilterType;
|
14
15
|
export declare const timeframeToUnitOfTime: (timeframe: TimeFrames) => UnitOfTime | undefined;
|
15
|
-
export declare const getFilterRuleWithDefaultValue: <T extends FilterRule<FilterOperator, import("../types/filter").FieldTarget, any, any>>(field: FilterableField, filterRule: T, values?:
|
16
|
-
export declare const createFilterRuleFromField: (field: FilterableField, value?:
|
16
|
+
export declare const getFilterRuleWithDefaultValue: <T extends FilterRule<FilterOperator, import("../types/filter").FieldTarget, any, any>>(field: FilterableField, filterRule: T, values?: AnyType[] | null) => T;
|
17
|
+
export declare const createFilterRuleFromField: (field: FilterableField, value?: AnyType) => FilterRule;
|
17
18
|
export declare const matchFieldExact: (a: Field) => (b: Field) => boolean;
|
18
19
|
export declare const matchFieldByTypeAndName: (a: Field) => (b: Field) => boolean;
|
19
20
|
export declare const matchFieldByType: (a: Field) => (b: Field) => boolean;
|
20
21
|
export declare const isTileFilterable: (tile: DashboardTile) => boolean;
|
21
|
-
export declare const applyDefaultTileTargets: (filterRule: DashboardFilterRule<FilterOperator, DashboardFieldTarget,
|
22
|
+
export declare const applyDefaultTileTargets: (filterRule: DashboardFilterRule<FilterOperator, DashboardFieldTarget, AnyType, AnyType>, field: FilterableDimension, availableTileFilters: Record<string, FilterableDimension[] | undefined>) => DashboardFilterRule<FilterOperator, DashboardFieldTarget, any, any>;
|
22
23
|
export declare const createDashboardFilterRuleFromField: ({ field, availableTileFilters, isTemporary, value, }: {
|
23
24
|
field: Exclude<FilterableItem, TableCalculation | CustomSqlDimension> | CompiledField;
|
24
25
|
availableTileFilters: Record<string, FilterableDimension[] | undefined>;
|
@@ -28,7 +29,7 @@ export declare const createDashboardFilterRuleFromField: ({ field, availableTile
|
|
28
29
|
type AddFilterRuleArgs = {
|
29
30
|
filters: Filters;
|
30
31
|
field: FilterableField;
|
31
|
-
value?:
|
32
|
+
value?: AnyType;
|
32
33
|
};
|
33
34
|
export declare const addFilterRule: ({ filters, field, value, }: AddFilterRuleArgs) => Filters;
|
34
35
|
/**
|
@@ -37,7 +38,7 @@ export declare const addFilterRule: ({ filters, field, value, }: AddFilterRuleAr
|
|
37
38
|
* @param value - The value to check
|
38
39
|
* @returns True if the value is an invalid date, false otherwise
|
39
40
|
*/
|
40
|
-
export declare const isDimensionValueInvalidDate: (item: FilterableField, value:
|
41
|
+
export declare const isDimensionValueInvalidDate: (item: FilterableField, value: AnyType) => boolean;
|
41
42
|
/**
|
42
43
|
* Takes a filter group and build a filters object from it based on the field type
|
43
44
|
* @param filterGroup - The filter group to extract filters from
|
package/dist/utils/formatting.js
CHANGED
@@ -16,6 +16,7 @@ exports.currencies = [
|
|
16
16
|
'EUR',
|
17
17
|
'GBP',
|
18
18
|
'JPY',
|
19
|
+
'DKK',
|
19
20
|
'CHF',
|
20
21
|
'CAD',
|
21
22
|
'AUD',
|
@@ -25,7 +26,6 @@ exports.currencies = [
|
|
25
26
|
'CLP',
|
26
27
|
'COP',
|
27
28
|
'CZK',
|
28
|
-
'DKK',
|
29
29
|
'HKD',
|
30
30
|
'HUF',
|
31
31
|
'INR',
|
@@ -188,6 +188,7 @@ function getCustomFormatFromLegacy({ format, compact, round, }) {
|
|
188
188
|
case field_1.Format.GBP:
|
189
189
|
case field_1.Format.USD:
|
190
190
|
case field_1.Format.JPY:
|
191
|
+
case field_1.Format.DKK:
|
191
192
|
return {
|
192
193
|
type: field_1.CustomFormatType.CURRENCY,
|
193
194
|
currency: format.toUpperCase(),
|
@@ -67,6 +67,10 @@ describe('Formatting', () => {
|
|
67
67
|
type: field_1.CustomFormatType.CURRENCY,
|
68
68
|
currency: field_1.Format.JPY,
|
69
69
|
})).toEqual('¥5');
|
70
|
+
expect((0, formatting_1.applyCustomFormat)(5, {
|
71
|
+
type: field_1.CustomFormatType.CURRENCY,
|
72
|
+
currency: field_1.Format.DKK,
|
73
|
+
})).toEqual('DKK 5.00');
|
70
74
|
});
|
71
75
|
test('if Format is percent it should return the right format', () => {
|
72
76
|
const percentFormat = {
|
@@ -653,6 +657,7 @@ describe('Formatting', () => {
|
|
653
657
|
'€1.00',
|
654
658
|
'£1.00',
|
655
659
|
'¥1',
|
660
|
+
'DKK 1.00',
|
656
661
|
'CHF 1.00',
|
657
662
|
'CA$1.00',
|
658
663
|
'A$1.00',
|
@@ -662,7 +667,6 @@ describe('Formatting', () => {
|
|
662
667
|
'CLP 1',
|
663
668
|
'COP 1.00',
|
664
669
|
'CZK 1.00',
|
665
|
-
'DKK 1.00',
|
666
670
|
'HK$1.00',
|
667
671
|
'HUF 1.00',
|
668
672
|
'₹1.00',
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.loadLightdashProjectConfig = void 0;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const ajv_1 = tslib_1.__importDefault(require("ajv"));
|
6
|
-
const yaml = tslib_1.__importStar(require("js-yaml"));
|
7
6
|
const better_ajv_errors_1 = tslib_1.__importDefault(require("better-ajv-errors"));
|
8
|
-
const
|
7
|
+
const yaml = tslib_1.__importStar(require("js-yaml"));
|
9
8
|
const lightdash_project_config_1_0_json_1 = tslib_1.__importDefault(require("../schemas/json/lightdash-project-config-1.0.json"));
|
10
9
|
const errors_1 = require("../types/errors");
|
10
|
+
const lightdashProjectConfig_1 = require("../types/lightdashProjectConfig");
|
11
11
|
const loadLightdashProjectConfig = async (yamlFileContents) => {
|
12
12
|
if (yamlFileContents.trim() === '') {
|
13
13
|
return {
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type AnyType } from '../types/any';
|
1
2
|
import type { MetricWithAssociatedTimeDimension } from '../types/catalog';
|
2
3
|
import { ConditionalOperator } from '../types/conditionalRule';
|
3
4
|
import { type CompiledTable } from '../types/explore';
|
@@ -21,11 +22,11 @@ export declare const getMetricsExplorerSegmentFilters: (segmentDimension: string
|
|
21
22
|
export declare const getMetricExplorerDateRangeFilters: (timeDimensionConfig: TimeDimensionConfig, dateRange: MetricExplorerDateRange) => DateFilter[];
|
22
23
|
export declare const parseMetricValue: (value: unknown) => number | null;
|
23
24
|
export declare const MAX_SEGMENT_DIMENSION_UNIQUE_VALUES = 10;
|
24
|
-
export declare const getMetricExplorerDataPoints: (dimension: Dimension, metric: MetricWithAssociatedTimeDimension, metricRows: Record<string,
|
25
|
+
export declare const getMetricExplorerDataPoints: (dimension: Dimension, metric: MetricWithAssociatedTimeDimension, metricRows: Record<string, AnyType>[], segmentDimensionId: string | null) => {
|
25
26
|
dataPoints: Array<MetricExploreDataPoint>;
|
26
27
|
isSegmentDimensionFiltered: boolean;
|
27
28
|
};
|
28
|
-
export declare const getMetricExplorerDataPointsWithCompare: (dimension: Dimension, compareDimension: Dimension, metric: MetricWithAssociatedTimeDimension, metricRows: Record<string,
|
29
|
+
export declare const getMetricExplorerDataPointsWithCompare: (dimension: Dimension, compareDimension: Dimension, metric: MetricWithAssociatedTimeDimension, metricRows: Record<string, AnyType>[], compareMetricRows: Record<string, AnyType>[], query: MetricExplorerQuery, timeFrame: TimeFrames) => {
|
29
30
|
dataPoints: Array<MetricExploreDataPoint>;
|
30
31
|
};
|
31
32
|
/**
|
@@ -1,9 +1,10 @@
|
|
1
|
+
import { type AnyType } from '../types/any';
|
1
2
|
import { Format } from '../types/field';
|
2
3
|
import { type Organization } from '../types/organization';
|
3
4
|
import { type RawResultRow } from '../types/results';
|
4
5
|
import { ChartKind, type CartesianSeriesType } from '../types/savedCharts';
|
5
6
|
import { type SemanticLayerQuery } from '../types/semanticLayer';
|
6
|
-
import { type AxisSide,
|
7
|
+
import { VizIndexType, type AxisSide, type PivotChartData, type PivotChartLayout, type VizCartesianChartConfig, type VizCartesianChartOptions } from './types';
|
7
8
|
import { type IResultsRunner } from './types/IResultsRunner';
|
8
9
|
type CartesianChartKind = Extract<ChartKind, ChartKind.LINE | ChartKind.VERTICAL_BAR>;
|
9
10
|
export declare class CartesianChartDataModel {
|
@@ -17,7 +18,7 @@ export declare class CartesianChartDataModel {
|
|
17
18
|
type?: CartesianChartKind;
|
18
19
|
});
|
19
20
|
static getTooltipFormatter(format: Format | undefined): ((value: number) => string) | undefined;
|
20
|
-
static getValueFormatter(format: Format | undefined): ((params:
|
21
|
+
static getValueFormatter(format: Format | undefined): ((params: AnyType) => string) | undefined;
|
21
22
|
mergeConfig(chartKind: CartesianChartKind, existingConfig: VizCartesianChartConfig | undefined): VizCartesianChartConfig;
|
22
23
|
getChartOptions(): VizCartesianChartOptions;
|
23
24
|
getDefaultLayout(): PivotChartLayout | undefined;
|
@@ -43,7 +44,7 @@ export declare class CartesianChartDataModel {
|
|
43
44
|
rows: RawResultRow[];
|
44
45
|
} | undefined;
|
45
46
|
getDataDownloadUrl(): string | undefined;
|
46
|
-
getSpec(display?: CartesianChartDisplay, colors?: Organization['chartColors']): Record<string,
|
47
|
+
getSpec(display?: CartesianChartDisplay, colors?: Organization['chartColors']): Record<string, AnyType>;
|
47
48
|
}
|
48
49
|
export declare enum ValueLabelPositionOptions {
|
49
50
|
HIDDEN = "hidden",
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type AnyType } from '../types/any';
|
1
2
|
import { type RawResultRow } from '../types/results';
|
2
3
|
import { type ChartKind } from '../types/savedCharts';
|
3
4
|
import { type SemanticLayerQuery } from '../types/semanticLayer';
|
@@ -36,5 +37,5 @@ export declare class PieChartDataModel {
|
|
36
37
|
rows: RawResultRow[];
|
37
38
|
} | undefined;
|
38
39
|
getDataDownloadUrl(): string | undefined;
|
39
|
-
getSpec(display?: VizPieChartDisplay): Record<string,
|
40
|
+
getSpec(display?: VizPieChartDisplay): Record<string, AnyType>;
|
40
41
|
}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { type AnyType } from '../types/any';
|
1
2
|
import { type RawResultRow } from '../types/results';
|
2
3
|
import { type ChartKind } from '../types/savedCharts';
|
3
4
|
import { type SemanticLayerQuery } from '../types/semanticLayer';
|
@@ -29,7 +30,7 @@ export declare class TableDataModel {
|
|
29
30
|
rows: RawResultRow[];
|
30
31
|
} | undefined;
|
31
32
|
getSpec(_display?: VizTableDisplay): {
|
32
|
-
spec: Record<string,
|
33
|
+
spec: Record<string, AnyType>;
|
33
34
|
tableData: {
|
34
35
|
columns: string[];
|
35
36
|
rows: RawResultRow[];
|