@lightdash/common 0.1951.1 → 0.1953.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/cjs/compiler/parameters.d.ts.map +1 -1
  2. package/dist/cjs/compiler/parameters.js +4 -1
  3. package/dist/cjs/compiler/parameters.js.map +1 -1
  4. package/dist/cjs/schemas/json/lightdash-dbt-2.0.json +17 -3
  5. package/dist/cjs/schemas/json/lightdash-project-config-1.0.json +17 -11
  6. package/dist/cjs/types/lightdashProjectConfig.d.ts +4 -2
  7. package/dist/cjs/types/lightdashProjectConfig.d.ts.map +1 -1
  8. package/dist/cjs/types/lightdashProjectConfig.js.map +1 -1
  9. package/dist/cjs/types/parameters.d.ts +3 -2
  10. package/dist/cjs/types/parameters.d.ts.map +1 -1
  11. package/dist/cjs/utils/loadLightdashProjectConfig.d.ts.map +1 -1
  12. package/dist/cjs/utils/loadLightdashProjectConfig.js +5 -1
  13. package/dist/cjs/utils/loadLightdashProjectConfig.js.map +1 -1
  14. package/dist/cjs/utils/loadLightdashProjectConfig.mock.d.ts +4 -0
  15. package/dist/cjs/utils/loadLightdashProjectConfig.mock.d.ts.map +1 -1
  16. package/dist/cjs/utils/loadLightdashProjectConfig.mock.js +63 -1
  17. package/dist/cjs/utils/loadLightdashProjectConfig.mock.js.map +1 -1
  18. package/dist/cjs/utils/loadLightdashProjectConfig.test.js +66 -0
  19. package/dist/cjs/utils/loadLightdashProjectConfig.test.js.map +1 -1
  20. package/dist/esm/compiler/parameters.d.ts.map +1 -1
  21. package/dist/esm/compiler/parameters.js +4 -1
  22. package/dist/esm/compiler/parameters.js.map +1 -1
  23. package/dist/esm/schemas/json/lightdash-dbt-2.0.json +17 -3
  24. package/dist/esm/schemas/json/lightdash-project-config-1.0.json +17 -11
  25. package/dist/esm/types/lightdashProjectConfig.d.ts +4 -2
  26. package/dist/esm/types/lightdashProjectConfig.d.ts.map +1 -1
  27. package/dist/esm/types/lightdashProjectConfig.js.map +1 -1
  28. package/dist/esm/types/parameters.d.ts +3 -2
  29. package/dist/esm/types/parameters.d.ts.map +1 -1
  30. package/dist/esm/utils/loadLightdashProjectConfig.d.ts.map +1 -1
  31. package/dist/esm/utils/loadLightdashProjectConfig.js +5 -1
  32. package/dist/esm/utils/loadLightdashProjectConfig.js.map +1 -1
  33. package/dist/esm/utils/loadLightdashProjectConfig.mock.d.ts +4 -0
  34. package/dist/esm/utils/loadLightdashProjectConfig.mock.d.ts.map +1 -1
  35. package/dist/esm/utils/loadLightdashProjectConfig.mock.js +62 -0
  36. package/dist/esm/utils/loadLightdashProjectConfig.mock.js.map +1 -1
  37. package/dist/esm/utils/loadLightdashProjectConfig.test.js +67 -1
  38. package/dist/esm/utils/loadLightdashProjectConfig.test.js.map +1 -1
  39. package/dist/tsconfig.types.tsbuildinfo +1 -1
  40. package/dist/types/compiler/parameters.d.ts.map +1 -1
  41. package/dist/types/types/lightdashProjectConfig.d.ts +4 -2
  42. package/dist/types/types/lightdashProjectConfig.d.ts.map +1 -1
  43. package/dist/types/types/parameters.d.ts +3 -2
  44. package/dist/types/types/parameters.d.ts.map +1 -1
  45. package/dist/types/utils/loadLightdashProjectConfig.d.ts.map +1 -1
  46. package/dist/types/utils/loadLightdashProjectConfig.mock.d.ts +4 -0
  47. package/dist/types/utils/loadLightdashProjectConfig.mock.d.ts.map +1 -1
  48. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/compiler/parameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,eAAO,MAAM,cAAc,QAC+B,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAS,MAAM,KAAG,MAAM,EAc1D,CAAC;AAEF,eAAO,MAAM,2BAA2B,cACzB,MAAM,uBACI,MAAM,EAAE,uBACR,MAAM,EAAE,SAchC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,sBAChB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,qBACrD,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,KACzE,MAAM,EAGJ,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,mBACzB,CAAC,KAAK,GAAG,aAAa,CAAC,EAAE,KAC1C,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAwBjC,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,eACnB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS;;;CAUpE,CAAC"}
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/compiler/parameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,eAAO,MAAM,cAAc,QAC+B,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAS,MAAM,KAAG,MAAM,EAc1D,CAAC;AAEF,eAAO,MAAM,2BAA2B,cACzB,MAAM,uBACI,MAAM,EAAE,uBACR,MAAM,EAAE,SAchC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,sBAChB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,qBACrD,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,KACzE,MAAM,EAGJ,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,mBACzB,CAAC,KAAK,GAAG,aAAa,CAAC,EAAE,KAC1C,MAAM,CAAC,MAAM,EAAE,yBAAyB,CA2BjC,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,eACnB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS;;;CAUpE,CAAC"}
@@ -54,7 +54,10 @@ const getAvailableParametersFromTables = (includedTables) => includedTables.redu
54
54
  const parameterKey = `${tableName}.${p}`;
55
55
  return {
56
56
  ...acc2,
57
- [parameterKey]: parameter,
57
+ [parameterKey]: {
58
+ ...parameter,
59
+ type: parameter.type || 'string',
60
+ },
58
61
  };
59
62
  }, {});
60
63
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/compiler/parameters.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,4CAA+C;AAIlC,QAAA,cAAc,GACvB,sDAAsD,CAAC;AAE3D;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAY,EAAE;IAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAc,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,KAAK,CAAC,OAAO,CAAC,sBAAc,EAAE,IAAI,CAAC,CACtC,CAAC;IAEF,gCAAgC;IAChC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC;AAdW,QAAA,sBAAsB,0BAcjC;AAEK,MAAM,2BAA2B,GAAG,CACvC,SAAiB,EACjB,mBAA6B,EAC7B,mBAA6B,EAC/B,EAAE;IACA,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC1C,CAAC;IAEF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,qBAAY,CAClB,8BAA8B,SAAS,0BAA0B,iBAAiB,CAAC,IAAI,CACnF,IAAI,CACP,EAAE,EACH,EAAE,CACL,CAAC;IACN,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,2BAA2B,+BAiBtC;AAEF;;;;;GAKG;AACI,MAAM,0BAA0B,GAAG,CACtC,iBAAwE,EACxE,iBAAwE,EAChE,EAAE,CACV,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,MAAM,CACvC,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CACvC,CAAC;AANO,QAAA,0BAA0B,8BAMjC;AAEN;;;;;GAKG;AACI,MAAM,gCAAgC,GAAG,CAC5C,cAAyC,EACA,EAAE,CAC3C,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACjC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAEhE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,0FAA0F;QAC1F,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;QACnD,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,CAAC,EAAE,CAAC;QAEzC,OAAO;YACH,GAAG,IAAI;YACP,CAAC,YAAY,CAAC,EAAE,SAAS;SAC5B,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACH,GAAG,GAAG;QACN,GAAG,eAAe;KACrB,CAAC;AACN,CAAC,EAAE,EAAE,CAAC,CAAC;AA1BE,QAAA,gCAAgC,oCA0BlC;AAEX;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,CAClC,UAAiE,EACnE,EAAE;IACA,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;IAC5C,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAC1D,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CACnD,CAAC;IACF,OAAO;QACH,SAAS,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC;QACvC,iBAAiB;KACpB,CAAC;AACN,CAAC,CAAC;AAXW,QAAA,sBAAsB,0BAWjC"}
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/compiler/parameters.ts"],"names":[],"mappings":"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"}
@@ -416,6 +416,12 @@
416
416
  "description": "The label of the parameter as it will be displayed in the UI",
417
417
  "type": "string"
418
418
  },
419
+ "type": {
420
+ "description": "The data type of the parameter (defaults to 'string' for backwards compatibility)",
421
+ "type": "string",
422
+ "enum": ["string", "number"],
423
+ "default": "string"
424
+ },
419
425
  "description": {
420
426
  "description": "A description of the parameter",
421
427
  "type": "string"
@@ -424,17 +430,25 @@
424
430
  "description": "A list of possible values for the parameter",
425
431
  "type": "array",
426
432
  "items": {
427
- "type": "string"
433
+ "type": ["string", "number"]
428
434
  }
429
435
  },
430
436
  "default": {
431
437
  "description": "The default value(s) for the parameter",
432
438
  "oneOf": [
433
- { "type": "string" },
439
+ {
440
+ "type": [
441
+ "string",
442
+ "number"
443
+ ]
444
+ },
434
445
  {
435
446
  "type": "array",
436
447
  "items": {
437
- "type": "string"
448
+ "type": [
449
+ "string",
450
+ "number"
451
+ ]
438
452
  }
439
453
  }
440
454
  ]
@@ -57,38 +57,44 @@
57
57
  "description": "The label of the parameter as it will be displayed in the UI",
58
58
  "type": "string"
59
59
  },
60
+ "type": {
61
+ "description": "The data type of the parameter (defaults to 'string' for backwards compatibility)",
62
+ "type": "string",
63
+ "enum": ["string", "number"],
64
+ "default": "string"
65
+ },
60
66
  "description": {
61
67
  "description": "A description of the parameter",
62
68
  "type": "string"
63
69
  },
70
+ "multiple": {
71
+ "description": "Whether the parameter input will be a multi select",
72
+ "type": "boolean"
73
+ },
74
+ "allow_custom_values": {
75
+ "description": "Whether users can input custom values beyond predefined options",
76
+ "type": "boolean"
77
+ },
64
78
  "options": {
65
79
  "description": "A list of possible values for the parameter",
66
80
  "type": "array",
67
81
  "minItems": 1,
68
82
  "items": {
69
- "type": "string"
83
+ "type": ["string", "number"]
70
84
  }
71
85
  },
72
86
  "default": {
73
87
  "description": "The default value(s) for the parameter",
74
88
  "oneOf": [
75
- { "type": "string" },
89
+ { "type": ["string", "number"] },
76
90
  {
77
91
  "type": "array",
78
92
  "items": {
79
- "type": "string"
93
+ "type": ["string", "number"]
80
94
  }
81
95
  }
82
96
  ]
83
97
  },
84
- "multiple": {
85
- "description": "Whether the parameter input will be a multi select",
86
- "type": "boolean"
87
- },
88
- "allow_custom_values": {
89
- "description": "Whether users can input custom values beyond predefined options",
90
- "type": "boolean"
91
- },
92
98
  "options_from_dimension": {
93
99
  "description": "Get parameter options from a dimension in a model",
94
100
  "type": "object",
@@ -1,3 +1,4 @@
1
+ import type { ParameterValue } from './parameters';
1
2
  type SpotlightCategory = {
2
3
  label: string;
3
4
  color?: string;
@@ -11,10 +12,11 @@ type SpotlightConfig = {
11
12
  export type LightdashProjectParameter = {
12
13
  label: string;
13
14
  description?: string;
14
- default?: string | string[];
15
+ type?: 'string' | 'number';
16
+ default?: ParameterValue;
15
17
  multiple?: boolean;
16
18
  allow_custom_values?: boolean;
17
- options?: string[];
19
+ options?: string[] | number[];
18
20
  options_from_dimension?: {
19
21
  model: string;
20
22
  dimension: string;
@@ -1 +1 @@
1
- {"version":3,"file":"lightdashProjectConfig.d.ts","sourceRoot":"","sources":["../../../src/types/lightdashProjectConfig.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,eAAe,GAAG;IACnB,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE;QACT,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,CAAC;KAC/C,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,sBAAsB,CAAC,EAAE;QAErB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC1D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,eAEtC,CAAC"}
1
+ {"version":3,"file":"lightdashProjectConfig.d.ts","sourceRoot":"","sources":["../../../src/types/lightdashProjectConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,KAAK,iBAAiB,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,eAAe,GAAG;IACnB,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE;QACT,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,CAAC;KAC/C,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9B,sBAAsB,CAAC,EAAE;QAErB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC1D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,eAEtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lightdashProjectConfig.js","sourceRoot":"","sources":["../../../src/types/lightdashProjectConfig.ts"],"names":[],"mappings":";;;AA+Ba,QAAA,wBAAwB,GAAoB;IACrD,kBAAkB,EAAE,MAAM;CAC7B,CAAC"}
1
+ {"version":3,"file":"lightdashProjectConfig.js","sourceRoot":"","sources":["../../../src/types/lightdashProjectConfig.ts"],"names":[],"mappings":";;;AAkCa,QAAA,wBAAwB,GAAoB;IACrD,kBAAkB,EAAE,MAAM;CAC7B,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { LightdashProjectParameter } from './lightdashProjectConfig';
2
- export type ParametersValuesMap = Record<string, string | string[]>;
2
+ export type ParameterValue = string | number | string[] | number[];
3
+ export type ParametersValuesMap = Record<string, ParameterValue>;
3
4
  export type ParameterDefinitions = Record<string, LightdashProjectParameter>;
4
5
  export type DashboardParameterValue = {
5
6
  parameterName: string;
6
- value: string | string[];
7
+ value: ParameterValue;
7
8
  };
8
9
  export type DashboardParameters = Record<string, DashboardParameterValue>;
9
10
  //# sourceMappingURL=parameters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/types/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAG1E,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;AAI7E,MAAM,MAAM,uBAAuB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/types/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAG1E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AAGnE,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;AAI7E,MAAM,MAAM,uBAAuB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"loadLightdashProjectConfig.d.ts","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,sBAAsB,EAC9B,MAAM,iCAAiC,CAAC;AAKzC,eAAO,MAAM,0BAA0B,qBACjB,MAAM,aACb,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,KAC7D,OAAO,CAAC,sBAAsB,CAuDhC,CAAC"}
1
+ {"version":3,"file":"loadLightdashProjectConfig.d.ts","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,sBAAsB,EAC9B,MAAM,iCAAiC,CAAC;AAKzC,eAAO,MAAM,0BAA0B,qBACjB,MAAM,aACb,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,KAC7D,OAAO,CAAC,sBAAsB,CA2DhC,CAAC"}
@@ -24,7 +24,11 @@ const loadLightdashProjectConfig = async (yamlFileContents, onLoaded) => {
24
24
  ...defaultConfig,
25
25
  ...loadedConfig,
26
26
  };
27
- const ajv = new ajv_1.default({ coerceTypes: true, allErrors: true });
27
+ const ajv = new ajv_1.default({
28
+ coerceTypes: true,
29
+ allErrors: true,
30
+ allowUnionTypes: true,
31
+ });
28
32
  // This method call extends JSON schema to utilize AJV Errors
29
33
  (0, ajv_errors_1.default)(ajv);
30
34
  const validate = ajv.compile(lightdash_project_config_1_0_json_1.default);
@@ -1 +1 @@
1
- {"version":3,"file":"loadLightdashProjectConfig.js","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.ts"],"names":[],"mappings":";;;;AAAA,sDAAsB;AACtB,oEAAmC;AACnC,kFAAgD;AAChD,sDAAgC;AAChC,uDAAgE;AAChE,kIAA6F;AAC7F,4CAA0E;AAC1E,4EAGyC;AAEzC,MAAM,aAAa,GAA2B;IAC1C,SAAS,EAAE,iDAAwB;CACtC,CAAC;AACK,MAAM,0BAA0B,GAAG,KAAK,EAC3C,gBAAwB,EACxB,QAA4D,EAC7B,EAAE;IACjC,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjC,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,4CAA4C;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC1B,gBAAgB,CACgB,CAAC;IACrC,kDAAkD;IAClD,MAAM,UAAU,GAA2B;QACvC,GAAG,aAAa;QAChB,GAAG,YAAY;KAClB,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,6DAA6D;IAC7D,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;IACf,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CACxB,2CAA4B,CAC/B,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,IAAA,2BAAe,EAC1B,2CAA4B,EAC5B,UAAU,EACV,QAAQ,CAAC,MAAM,IAAI,EAAE,EACrB,EAAE,MAAM,EAAE,CAAC,EAAE,CAChB,CAAC;QACF,MAAM,IAAI,mBAAU,CAChB,8CAA8C,MAAM,EAAE,CACzD,CAAC;IACN,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAChC,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,GAC5D,IAAA,mCAAsB,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,wBAAwB,EAAE,CAAC;QAC3B,MAAM,IAAI,oCAA2B,CACjC,8DAA8D,iBAAiB,CAAC,IAAI,CAChF,IAAI,CACP,EAAE,EACH;YACI,iBAAiB;SACpB,CACJ,CAAC;IACN,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AA1DW,QAAA,0BAA0B,8BA0DrC"}
1
+ {"version":3,"file":"loadLightdashProjectConfig.js","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.ts"],"names":[],"mappings":";;;;AAAA,sDAAsB;AACtB,oEAAmC;AACnC,kFAAgD;AAChD,sDAAgC;AAChC,uDAAgE;AAChE,kIAA6F;AAC7F,4CAA0E;AAC1E,4EAGyC;AAEzC,MAAM,aAAa,GAA2B;IAC1C,SAAS,EAAE,iDAAwB;CACtC,CAAC;AACK,MAAM,0BAA0B,GAAG,KAAK,EAC3C,gBAAwB,EACxB,QAA4D,EAC7B,EAAE;IACjC,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjC,OAAO,aAAa,CAAC;IACzB,CAAC;IACD,4CAA4C;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC1B,gBAAgB,CACgB,CAAC;IACrC,kDAAkD;IAClD,MAAM,UAAU,GAA2B;QACvC,GAAG,aAAa;QAChB,GAAG,YAAY;KAClB,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,aAAG,CAAC;QAChB,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;IACH,6DAA6D;IAC7D,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;IACf,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CACxB,2CAA4B,CAC/B,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,IAAA,2BAAe,EAC1B,2CAA4B,EAC5B,UAAU,EACV,QAAQ,CAAC,MAAM,IAAI,EAAE,EACrB,EAAE,MAAM,EAAE,CAAC,EAAE,CAChB,CAAC;QACF,MAAM,IAAI,mBAAU,CAChB,8CAA8C,MAAM,EAAE,CACzD,CAAC;IACN,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAChC,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;IACtC,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,GAC5D,IAAA,mCAAsB,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAElD,IAAI,wBAAwB,EAAE,CAAC;QAC3B,MAAM,IAAI,oCAA2B,CACjC,8DAA8D,iBAAiB,CAAC,IAAI,CAChF,IAAI,CACP,EAAE,EACH;YACI,iBAAiB;SACpB,CACJ,CAAC;IACN,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AA9DW,QAAA,0BAA0B,8BA8DrC"}
@@ -9,4 +9,8 @@ export declare const invalidConfigWithNoOptions = "\nspotlight:\n default_visib
9
9
  export declare const invalidConfigWithAllowCustomValuesFalse = "\nspotlight:\n default_visibility: show\nparameters:\n test_param:\n label: Test Parameter\n allow_custom_values: false\n";
10
10
  export declare const configWithEmptyOptionsArray = "\nspotlight:\n default_visibility: show\nparameters:\n test_param:\n label: Test Parameter\n options: []\n";
11
11
  export declare const invalidConfigWithIncompleteOptionsFromDimension = "\nspotlight:\n default_visibility: show\nparameters:\n test_param:\n label: Test Parameter\n options_from_dimension:\n model: test_model\n";
12
+ export declare const validConfigWithNumberParameter = "\nspotlight:\n default_visibility: show\nparameters:\n customer_id:\n label: Customer ID\n type: number\n default: 100\n options:\n - 100\n - 200\n - 300\n";
13
+ export declare const validConfigWithNumberArrayParameter = "\nspotlight:\n default_visibility: show\nparameters:\n product_ids:\n label: Product IDs\n type: number\n multiple: true\n default:\n - 1\n - 2\n - 3\n options:\n - 1\n - 2\n - 3\n - 4\n - 5\n";
14
+ export declare const validConfigWithStringTypeExplicit = "\nspotlight:\n default_visibility: show\nparameters:\n status:\n label: Status\n type: string\n default: active\n options:\n - active\n - inactive\n - pending\n";
15
+ export declare const validConfigWithMixedArrayTypes = "\nspotlight:\n default_visibility: show\nparameters:\n customer_name:\n label: Customer Name\n type: string\n multiple: true\n default:\n - John\n - Jane\n options:\n - John\n - Jane\n - Bob\n - Alice\n";
12
16
  //# sourceMappingURL=loadLightdashProjectConfig.mock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadLightdashProjectConfig.mock.d.ts","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.mock.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,eAAO,MAAM,yBAAyB,sJASrC,CAAC;AAEF,eAAO,MAAM,mCAAmC,6LAS/C,CAAC;AAEF,eAAO,MAAM,gCAAgC,qIAO5C,CAAC;AAEF,eAAO,MAAM,0BAA0B,sGAMtC,CAAC;AAEF,eAAO,MAAM,uCAAuC,sIAOnD,CAAC;AAEF,eAAO,MAAM,2BAA2B,uHAOvC,CAAC;AAEF,eAAO,MAAM,+CAA+C,4JAQ3D,CAAC"}
1
+ {"version":3,"file":"loadLightdashProjectConfig.mock.d.ts","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.mock.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,eAAO,MAAM,yBAAyB,sJASrC,CAAC;AAEF,eAAO,MAAM,mCAAmC,6LAS/C,CAAC;AAEF,eAAO,MAAM,gCAAgC,qIAO5C,CAAC;AAEF,eAAO,MAAM,0BAA0B,sGAMtC,CAAC;AAEF,eAAO,MAAM,uCAAuC,sIAOnD,CAAC;AAEF,eAAO,MAAM,2BAA2B,uHAOvC,CAAC;AAEF,eAAO,MAAM,+CAA+C,4JAQ3D,CAAC;AAEF,eAAO,MAAM,8BAA8B,6LAY1C,CAAC;AAEF,eAAO,MAAM,mCAAmC,8PAkB/C,CAAC;AAEF,eAAO,MAAM,iCAAiC,kMAY7C,CAAC;AAEF,eAAO,MAAM,8BAA8B,8PAgB1C,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Mock YAML content for lightdash project config tests
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.invalidConfigWithIncompleteOptionsFromDimension = exports.configWithEmptyOptionsArray = exports.invalidConfigWithAllowCustomValuesFalse = exports.invalidConfigWithNoOptions = exports.validConfigWithAllowCustomValues = exports.validConfigWithOptionsFromDimension = exports.validConfigWithParameters = exports.emptyConfig = void 0;
6
+ exports.validConfigWithMixedArrayTypes = exports.validConfigWithStringTypeExplicit = exports.validConfigWithNumberArrayParameter = exports.validConfigWithNumberParameter = exports.invalidConfigWithIncompleteOptionsFromDimension = exports.configWithEmptyOptionsArray = exports.invalidConfigWithAllowCustomValuesFalse = exports.invalidConfigWithNoOptions = exports.validConfigWithAllowCustomValues = exports.validConfigWithOptionsFromDimension = exports.validConfigWithParameters = exports.emptyConfig = void 0;
7
7
  exports.emptyConfig = '';
8
8
  exports.validConfigWithParameters = `
9
9
  spotlight:
@@ -65,4 +65,66 @@ parameters:
65
65
  options_from_dimension:
66
66
  model: test_model
67
67
  `;
68
+ exports.validConfigWithNumberParameter = `
69
+ spotlight:
70
+ default_visibility: show
71
+ parameters:
72
+ customer_id:
73
+ label: Customer ID
74
+ type: number
75
+ default: 100
76
+ options:
77
+ - 100
78
+ - 200
79
+ - 300
80
+ `;
81
+ exports.validConfigWithNumberArrayParameter = `
82
+ spotlight:
83
+ default_visibility: show
84
+ parameters:
85
+ product_ids:
86
+ label: Product IDs
87
+ type: number
88
+ multiple: true
89
+ default:
90
+ - 1
91
+ - 2
92
+ - 3
93
+ options:
94
+ - 1
95
+ - 2
96
+ - 3
97
+ - 4
98
+ - 5
99
+ `;
100
+ exports.validConfigWithStringTypeExplicit = `
101
+ spotlight:
102
+ default_visibility: show
103
+ parameters:
104
+ status:
105
+ label: Status
106
+ type: string
107
+ default: active
108
+ options:
109
+ - active
110
+ - inactive
111
+ - pending
112
+ `;
113
+ exports.validConfigWithMixedArrayTypes = `
114
+ spotlight:
115
+ default_visibility: show
116
+ parameters:
117
+ customer_name:
118
+ label: Customer Name
119
+ type: string
120
+ multiple: true
121
+ default:
122
+ - John
123
+ - Jane
124
+ options:
125
+ - John
126
+ - Jane
127
+ - Bob
128
+ - Alice
129
+ `;
68
130
  //# sourceMappingURL=loadLightdashProjectConfig.mock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadLightdashProjectConfig.mock.js","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.mock.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,WAAW,GAAG,EAAE,CAAC;AAEjB,QAAA,yBAAyB,GAAG;;;;;;;;;CASxC,CAAC;AAEW,QAAA,mCAAmC,GAAG;;;;;;;;;CASlD,CAAC;AAEW,QAAA,gCAAgC,GAAG;;;;;;;CAO/C,CAAC;AAEW,QAAA,0BAA0B,GAAG;;;;;;CAMzC,CAAC;AAEW,QAAA,uCAAuC,GAAG;;;;;;;CAOtD,CAAC;AAEW,QAAA,2BAA2B,GAAG;;;;;;;CAO1C,CAAC;AAEW,QAAA,+CAA+C,GAAG;;;;;;;;CAQ9D,CAAC"}
1
+ {"version":3,"file":"loadLightdashProjectConfig.mock.js","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.mock.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,WAAW,GAAG,EAAE,CAAC;AAEjB,QAAA,yBAAyB,GAAG;;;;;;;;;CASxC,CAAC;AAEW,QAAA,mCAAmC,GAAG;;;;;;;;;CASlD,CAAC;AAEW,QAAA,gCAAgC,GAAG;;;;;;;CAO/C,CAAC;AAEW,QAAA,0BAA0B,GAAG;;;;;;CAMzC,CAAC;AAEW,QAAA,uCAAuC,GAAG;;;;;;;CAOtD,CAAC;AAEW,QAAA,2BAA2B,GAAG;;;;;;;CAO1C,CAAC;AAEW,QAAA,+CAA+C,GAAG;;;;;;;;CAQ9D,CAAC;AAEW,QAAA,8BAA8B,GAAG;;;;;;;;;;;;CAY7C,CAAC;AAEW,QAAA,mCAAmC,GAAG;;;;;;;;;;;;;;;;;;CAkBlD,CAAC;AAEW,QAAA,iCAAiC,GAAG;;;;;;;;;;;;CAYhD,CAAC;AAEW,QAAA,8BAA8B,GAAG;;;;;;;;;;;;;;;;CAgB7C,CAAC"}
@@ -69,5 +69,71 @@ describe('loadLightdashProjectConfig', () => {
69
69
  it('should throw an error for invalid parameter with incomplete options_from_dimension', async () => {
70
70
  await expect((0, loadLightdashProjectConfig_1.loadLightdashProjectConfig)(loadLightdashProjectConfig_mock_1.invalidConfigWithIncompleteOptionsFromDimension)).rejects.toThrow(errors_1.ParseError);
71
71
  });
72
+ it('should load a valid config with number parameter', async () => {
73
+ const config = await (0, loadLightdashProjectConfig_1.loadLightdashProjectConfig)(loadLightdashProjectConfig_mock_1.validConfigWithNumberParameter);
74
+ expect(config).toEqual({
75
+ spotlight: {
76
+ default_visibility: 'show',
77
+ },
78
+ parameters: {
79
+ customer_id: {
80
+ label: 'Customer ID',
81
+ type: 'number',
82
+ default: 100,
83
+ options: [100, 200, 300],
84
+ },
85
+ },
86
+ });
87
+ });
88
+ it('should load a valid config with number array parameter', async () => {
89
+ const config = await (0, loadLightdashProjectConfig_1.loadLightdashProjectConfig)(loadLightdashProjectConfig_mock_1.validConfigWithNumberArrayParameter);
90
+ expect(config).toEqual({
91
+ spotlight: {
92
+ default_visibility: 'show',
93
+ },
94
+ parameters: {
95
+ product_ids: {
96
+ label: 'Product IDs',
97
+ type: 'number',
98
+ multiple: true,
99
+ default: [1, 2, 3],
100
+ options: [1, 2, 3, 4, 5],
101
+ },
102
+ },
103
+ });
104
+ });
105
+ it('should load a valid config with explicit string type', async () => {
106
+ const config = await (0, loadLightdashProjectConfig_1.loadLightdashProjectConfig)(loadLightdashProjectConfig_mock_1.validConfigWithStringTypeExplicit);
107
+ expect(config).toEqual({
108
+ spotlight: {
109
+ default_visibility: 'show',
110
+ },
111
+ parameters: {
112
+ status: {
113
+ label: 'Status',
114
+ type: 'string',
115
+ default: 'active',
116
+ options: ['active', 'inactive', 'pending'],
117
+ },
118
+ },
119
+ });
120
+ });
121
+ it('should load a valid config with string array parameter', async () => {
122
+ const config = await (0, loadLightdashProjectConfig_1.loadLightdashProjectConfig)(loadLightdashProjectConfig_mock_1.validConfigWithMixedArrayTypes);
123
+ expect(config).toEqual({
124
+ spotlight: {
125
+ default_visibility: 'show',
126
+ },
127
+ parameters: {
128
+ customer_name: {
129
+ label: 'Customer Name',
130
+ type: 'string',
131
+ multiple: true,
132
+ default: ['John', 'Jane'],
133
+ options: ['John', 'Jane', 'Bob', 'Alice'],
134
+ },
135
+ },
136
+ });
137
+ });
72
138
  });
73
139
  //# sourceMappingURL=loadLightdashProjectConfig.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadLightdashProjectConfig.test.js","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.test.ts"],"names":[],"mappings":";;AAAA,4CAA6C;AAC7C,6EAA0E;AAC1E,uFAS2C;AAE3C,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,IAAA,uDAA0B,EAAC,6CAAW,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,SAAS,EAAE;gBACP,kBAAkB,EAAE,MAAM;aAC7B;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,IAAA,uDAA0B,EAC3C,2DAAyB,CAC5B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,SAAS,EAAE;gBACP,kBAAkB,EAAE,MAAM;aAC7B;YACD,UAAU,EAAE;gBACR,UAAU,EAAE;oBACR,KAAK,EAAE,gBAAgB;oBACvB,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;iBAClC;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,MAAM,GAAG,MAAM,IAAA,uDAA0B,EAC3C,qEAAmC,CACtC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,SAAS,EAAE;gBACP,kBAAkB,EAAE,MAAM;aAC7B;YACD,UAAU,EAAE;gBACR,UAAU,EAAE;oBACR,KAAK,EAAE,gBAAgB;oBACvB,sBAAsB,EAAE;wBACpB,KAAK,EAAE,YAAY;wBACnB,SAAS,EAAE,gBAAgB;qBAC9B;iBACJ;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,MAAM,GAAG,MAAM,IAAA,uDAA0B,EAC3C,kEAAgC,CACnC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,SAAS,EAAE;gBACP,kBAAkB,EAAE,MAAM;aAC7B;YACD,UAAU,EAAE;gBACR,UAAU,EAAE;oBACR,KAAK,EAAE,gBAAgB;oBACvB,mBAAmB,EAAE,IAAI;iBAC5B;aACJ;SACJ,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,MAAM,CACR,IAAA,uDAA0B,EAAC,4DAA0B,CAAC,CACzD,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAU,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,MAAM,CACR,IAAA,uDAA0B,EAAC,yEAAuC,CAAC,CACtE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAU,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,MAAM,CACR,IAAA,uDAA0B,EAAC,6DAA2B,CAAC,CAC1D,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAU,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,MAAM,CACR,IAAA,uDAA0B,EACtB,iFAA+C,CAClD,CACJ,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAU,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"loadLightdashProjectConfig.test.js","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/compiler/parameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,eAAO,MAAM,cAAc,QAC+B,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAS,MAAM,KAAG,MAAM,EAc1D,CAAC;AAEF,eAAO,MAAM,2BAA2B,cACzB,MAAM,uBACI,MAAM,EAAE,uBACR,MAAM,EAAE,SAchC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,sBAChB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,qBACrD,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,KACzE,MAAM,EAGJ,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,mBACzB,CAAC,KAAK,GAAG,aAAa,CAAC,EAAE,KAC1C,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAwBjC,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,eACnB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS;;;CAUpE,CAAC"}
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/compiler/parameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,eAAO,MAAM,cAAc,QAC+B,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,QAAS,MAAM,KAAG,MAAM,EAc1D,CAAC;AAEF,eAAO,MAAM,2BAA2B,cACzB,MAAM,uBACI,MAAM,EAAE,uBACR,MAAM,EAAE,SAchC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,sBAChB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,qBACrD,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,KACzE,MAAM,EAGJ,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,mBACzB,CAAC,KAAK,GAAG,aAAa,CAAC,EAAE,KAC1C,MAAM,CAAC,MAAM,EAAE,yBAAyB,CA2BjC,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,eACnB,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS;;;CAUpE,CAAC"}
@@ -48,7 +48,10 @@ export const getAvailableParametersFromTables = (includedTables) => includedTabl
48
48
  const parameterKey = `${tableName}.${p}`;
49
49
  return {
50
50
  ...acc2,
51
- [parameterKey]: parameter,
51
+ [parameterKey]: {
52
+ ...parameter,
53
+ type: parameter.type || 'string',
54
+ },
52
55
  };
53
56
  }, {});
54
57
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/compiler/parameters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,MAAM,CAAC,MAAM,cAAc,GACvB,sDAAsD,CAAC;AAE3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAY,EAAE;IAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CACtC,CAAC;IAEF,gCAAgC;IAChC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,SAAiB,EACjB,mBAA6B,EAC7B,mBAA6B,EAC/B,EAAE;IACA,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,MAAM,CAChD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC1C,CAAC;IAEF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,YAAY,CAClB,8BAA8B,SAAS,0BAA0B,iBAAiB,CAAC,IAAI,CACnF,IAAI,CACP,EAAE,EACH,EAAE,CACL,CAAC;IACN,CAAC;AACL,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,iBAAwE,EACxE,iBAAwE,EAChE,EAAE,CACV,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,MAAM,CACvC,MAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CACvC,CAAC;AAEN;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC5C,cAAyC,EACA,EAAE,CAC3C,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACjC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAEhE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACV,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,0FAA0F;QAC1F,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC;QACnD,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,CAAC,EAAE,CAAC;QAEzC,OAAO;YACH,GAAG,IAAI;YACP,CAAC,YAAY,CAAC,EAAE,SAAS;SAC5B,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACH,GAAG,GAAG;QACN,GAAG,eAAe;KACrB,CAAC;AACN,CAAC,EAAE,EAAE,CAAC,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,UAAiE,EACnE,EAAE;IACA,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;IAC5C,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,CAC1D,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CACnD,CAAC;IACF,OAAO;QACH,SAAS,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC;QACvC,iBAAiB;KACpB,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/compiler/parameters.ts"],"names":[],"mappings":"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"}
@@ -416,6 +416,12 @@
416
416
  "description": "The label of the parameter as it will be displayed in the UI",
417
417
  "type": "string"
418
418
  },
419
+ "type": {
420
+ "description": "The data type of the parameter (defaults to 'string' for backwards compatibility)",
421
+ "type": "string",
422
+ "enum": ["string", "number"],
423
+ "default": "string"
424
+ },
419
425
  "description": {
420
426
  "description": "A description of the parameter",
421
427
  "type": "string"
@@ -424,17 +430,25 @@
424
430
  "description": "A list of possible values for the parameter",
425
431
  "type": "array",
426
432
  "items": {
427
- "type": "string"
433
+ "type": ["string", "number"]
428
434
  }
429
435
  },
430
436
  "default": {
431
437
  "description": "The default value(s) for the parameter",
432
438
  "oneOf": [
433
- { "type": "string" },
439
+ {
440
+ "type": [
441
+ "string",
442
+ "number"
443
+ ]
444
+ },
434
445
  {
435
446
  "type": "array",
436
447
  "items": {
437
- "type": "string"
448
+ "type": [
449
+ "string",
450
+ "number"
451
+ ]
438
452
  }
439
453
  }
440
454
  ]
@@ -57,38 +57,44 @@
57
57
  "description": "The label of the parameter as it will be displayed in the UI",
58
58
  "type": "string"
59
59
  },
60
+ "type": {
61
+ "description": "The data type of the parameter (defaults to 'string' for backwards compatibility)",
62
+ "type": "string",
63
+ "enum": ["string", "number"],
64
+ "default": "string"
65
+ },
60
66
  "description": {
61
67
  "description": "A description of the parameter",
62
68
  "type": "string"
63
69
  },
70
+ "multiple": {
71
+ "description": "Whether the parameter input will be a multi select",
72
+ "type": "boolean"
73
+ },
74
+ "allow_custom_values": {
75
+ "description": "Whether users can input custom values beyond predefined options",
76
+ "type": "boolean"
77
+ },
64
78
  "options": {
65
79
  "description": "A list of possible values for the parameter",
66
80
  "type": "array",
67
81
  "minItems": 1,
68
82
  "items": {
69
- "type": "string"
83
+ "type": ["string", "number"]
70
84
  }
71
85
  },
72
86
  "default": {
73
87
  "description": "The default value(s) for the parameter",
74
88
  "oneOf": [
75
- { "type": "string" },
89
+ { "type": ["string", "number"] },
76
90
  {
77
91
  "type": "array",
78
92
  "items": {
79
- "type": "string"
93
+ "type": ["string", "number"]
80
94
  }
81
95
  }
82
96
  ]
83
97
  },
84
- "multiple": {
85
- "description": "Whether the parameter input will be a multi select",
86
- "type": "boolean"
87
- },
88
- "allow_custom_values": {
89
- "description": "Whether users can input custom values beyond predefined options",
90
- "type": "boolean"
91
- },
92
98
  "options_from_dimension": {
93
99
  "description": "Get parameter options from a dimension in a model",
94
100
  "type": "object",
@@ -1,3 +1,4 @@
1
+ import type { ParameterValue } from './parameters';
1
2
  type SpotlightCategory = {
2
3
  label: string;
3
4
  color?: string;
@@ -11,10 +12,11 @@ type SpotlightConfig = {
11
12
  export type LightdashProjectParameter = {
12
13
  label: string;
13
14
  description?: string;
14
- default?: string | string[];
15
+ type?: 'string' | 'number';
16
+ default?: ParameterValue;
15
17
  multiple?: boolean;
16
18
  allow_custom_values?: boolean;
17
- options?: string[];
19
+ options?: string[] | number[];
18
20
  options_from_dimension?: {
19
21
  model: string;
20
22
  dimension: string;
@@ -1 +1 @@
1
- {"version":3,"file":"lightdashProjectConfig.d.ts","sourceRoot":"","sources":["../../../src/types/lightdashProjectConfig.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,eAAe,GAAG;IACnB,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE;QACT,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,CAAC;KAC/C,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,sBAAsB,CAAC,EAAE;QAErB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC1D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,eAEtC,CAAC"}
1
+ {"version":3,"file":"lightdashProjectConfig.d.ts","sourceRoot":"","sources":["../../../src/types/lightdashProjectConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,KAAK,iBAAiB,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,eAAe,GAAG;IACnB,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,UAAU,CAAC,EAAE;QACT,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,CAAC;KAC/C,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9B,sBAAsB,CAAC,EAAE;QAErB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC1D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,eAEtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lightdashProjectConfig.js","sourceRoot":"","sources":["../../../src/types/lightdashProjectConfig.ts"],"names":[],"mappings":"AA+BA,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACrD,kBAAkB,EAAE,MAAM;CAC7B,CAAC"}
1
+ {"version":3,"file":"lightdashProjectConfig.js","sourceRoot":"","sources":["../../../src/types/lightdashProjectConfig.ts"],"names":[],"mappings":"AAkCA,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACrD,kBAAkB,EAAE,MAAM;CAC7B,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { LightdashProjectParameter } from './lightdashProjectConfig';
2
- export type ParametersValuesMap = Record<string, string | string[]>;
2
+ export type ParameterValue = string | number | string[] | number[];
3
+ export type ParametersValuesMap = Record<string, ParameterValue>;
3
4
  export type ParameterDefinitions = Record<string, LightdashProjectParameter>;
4
5
  export type DashboardParameterValue = {
5
6
  parameterName: string;
6
- value: string | string[];
7
+ value: ParameterValue;
7
8
  };
8
9
  export type DashboardParameters = Record<string, DashboardParameterValue>;
9
10
  //# sourceMappingURL=parameters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/types/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAG1E,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAEpE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;AAI7E,MAAM,MAAM,uBAAuB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/types/parameters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAG1E,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;AAGnE,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;AAI7E,MAAM,MAAM,uBAAuB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"loadLightdashProjectConfig.d.ts","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,sBAAsB,EAC9B,MAAM,iCAAiC,CAAC;AAKzC,eAAO,MAAM,0BAA0B,qBACjB,MAAM,aACb,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,KAC7D,OAAO,CAAC,sBAAsB,CAuDhC,CAAC"}
1
+ {"version":3,"file":"loadLightdashProjectConfig.d.ts","sourceRoot":"","sources":["../../../src/utils/loadLightdashProjectConfig.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,sBAAsB,EAC9B,MAAM,iCAAiC,CAAC;AAKzC,eAAO,MAAM,0BAA0B,qBACjB,MAAM,aACb,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,KAC7D,OAAO,CAAC,sBAAsB,CA2DhC,CAAC"}
@@ -20,7 +20,11 @@ export const loadLightdashProjectConfig = async (yamlFileContents, onLoaded) =>
20
20
  ...defaultConfig,
21
21
  ...loadedConfig,
22
22
  };
23
- const ajv = new Ajv({ coerceTypes: true, allErrors: true });
23
+ const ajv = new Ajv({
24
+ coerceTypes: true,
25
+ allErrors: true,
26
+ allowUnionTypes: true,
27
+ });
24
28
  // This method call extends JSON schema to utilize AJV Errors
25
29
  AjvErrors(ajv);
26
30
  const validate = ajv.compile(lightdashProjectConfigSchema);