@lightdash/common 0.2673.0 → 0.2674.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 (133) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/ee/index.d.ts +2 -0
  3. package/dist/cjs/ee/index.d.ts.map +1 -1
  4. package/dist/cjs/ee/index.js +3 -1
  5. package/dist/cjs/ee/index.js.map +1 -1
  6. package/dist/cjs/ee/preAggregates/additivity.d.ts +9 -0
  7. package/dist/cjs/ee/preAggregates/additivity.d.ts.map +1 -0
  8. package/dist/cjs/ee/preAggregates/additivity.js +54 -0
  9. package/dist/cjs/ee/preAggregates/additivity.js.map +1 -0
  10. package/dist/cjs/ee/preAggregates/matcher.d.ts +15 -0
  11. package/dist/cjs/ee/preAggregates/matcher.d.ts.map +1 -0
  12. package/dist/cjs/ee/preAggregates/matcher.js +234 -0
  13. package/dist/cjs/ee/preAggregates/matcher.js.map +1 -0
  14. package/dist/cjs/ee/preAggregates/metricRepresentation.d.ts +21 -0
  15. package/dist/cjs/ee/preAggregates/metricRepresentation.d.ts.map +1 -0
  16. package/dist/cjs/ee/preAggregates/metricRepresentation.js +68 -0
  17. package/dist/cjs/ee/preAggregates/metricRepresentation.js.map +1 -0
  18. package/dist/cjs/ee/preAggregates/naming.d.ts +8 -0
  19. package/dist/cjs/ee/preAggregates/naming.d.ts.map +1 -0
  20. package/dist/cjs/ee/preAggregates/naming.js +15 -0
  21. package/dist/cjs/ee/preAggregates/naming.js.map +1 -0
  22. package/dist/cjs/ee/preAggregates/references.d.ts +21 -0
  23. package/dist/cjs/ee/preAggregates/references.d.ts.map +1 -0
  24. package/dist/cjs/ee/preAggregates/references.js +40 -0
  25. package/dist/cjs/ee/preAggregates/references.js.map +1 -0
  26. package/dist/cjs/ee/preAggregates/types.d.ts +6 -0
  27. package/dist/cjs/ee/preAggregates/types.d.ts.map +1 -0
  28. package/dist/cjs/ee/preAggregates/types.js +15 -0
  29. package/dist/cjs/ee/preAggregates/types.js.map +1 -0
  30. package/dist/cjs/ee/preAggregates/utils.d.ts +5 -0
  31. package/dist/cjs/ee/preAggregates/utils.d.ts.map +1 -0
  32. package/dist/cjs/ee/preAggregates/utils.js +19 -0
  33. package/dist/cjs/ee/preAggregates/utils.js.map +1 -0
  34. package/dist/cjs/types/api/paginatedQuery.d.ts +1 -0
  35. package/dist/cjs/types/api/paginatedQuery.d.ts.map +1 -1
  36. package/dist/cjs/types/api/paginatedQuery.js.map +1 -1
  37. package/dist/cjs/types/coder.d.ts +12 -1
  38. package/dist/cjs/types/coder.d.ts.map +1 -1
  39. package/dist/cjs/types/coder.js +1 -0
  40. package/dist/cjs/types/coder.js.map +1 -1
  41. package/dist/cjs/types/preAggregate.d.ts +5 -1
  42. package/dist/cjs/types/preAggregate.d.ts.map +1 -1
  43. package/dist/cjs/types/preAggregate.js +2 -0
  44. package/dist/cjs/types/preAggregate.js.map +1 -1
  45. package/dist/esm/.tsbuildinfo +1 -1
  46. package/dist/esm/ee/index.d.ts +2 -0
  47. package/dist/esm/ee/index.d.ts.map +1 -1
  48. package/dist/esm/ee/index.js +2 -0
  49. package/dist/esm/ee/index.js.map +1 -1
  50. package/dist/esm/ee/preAggregates/additivity.d.ts +9 -0
  51. package/dist/esm/ee/preAggregates/additivity.d.ts.map +1 -0
  52. package/dist/esm/ee/preAggregates/additivity.js +48 -0
  53. package/dist/esm/ee/preAggregates/additivity.js.map +1 -0
  54. package/dist/esm/ee/preAggregates/matcher.d.ts +15 -0
  55. package/dist/esm/ee/preAggregates/matcher.d.ts.map +1 -0
  56. package/dist/esm/ee/preAggregates/matcher.js +229 -0
  57. package/dist/esm/ee/preAggregates/matcher.js.map +1 -0
  58. package/dist/esm/ee/preAggregates/metricRepresentation.d.ts +21 -0
  59. package/dist/esm/ee/preAggregates/metricRepresentation.d.ts.map +1 -0
  60. package/dist/esm/ee/preAggregates/metricRepresentation.js +62 -0
  61. package/dist/esm/ee/preAggregates/metricRepresentation.js.map +1 -0
  62. package/dist/esm/ee/preAggregates/naming.d.ts +8 -0
  63. package/dist/esm/ee/preAggregates/naming.d.ts.map +1 -0
  64. package/dist/esm/ee/preAggregates/naming.js +7 -0
  65. package/dist/esm/ee/preAggregates/naming.js.map +1 -0
  66. package/dist/esm/ee/preAggregates/references.d.ts +21 -0
  67. package/dist/esm/ee/preAggregates/references.d.ts.map +1 -0
  68. package/dist/esm/ee/preAggregates/references.js +33 -0
  69. package/dist/esm/ee/preAggregates/references.js.map +1 -0
  70. package/dist/esm/ee/preAggregates/types.d.ts +6 -0
  71. package/dist/esm/ee/preAggregates/types.d.ts.map +1 -0
  72. package/dist/esm/ee/preAggregates/types.js +4 -0
  73. package/dist/esm/ee/preAggregates/types.js.map +1 -0
  74. package/dist/esm/ee/preAggregates/utils.d.ts +5 -0
  75. package/dist/esm/ee/preAggregates/utils.d.ts.map +1 -0
  76. package/dist/esm/ee/preAggregates/utils.js +5 -0
  77. package/dist/esm/ee/preAggregates/utils.js.map +1 -0
  78. package/dist/esm/types/api/paginatedQuery.d.ts +1 -0
  79. package/dist/esm/types/api/paginatedQuery.d.ts.map +1 -1
  80. package/dist/esm/types/api/paginatedQuery.js.map +1 -1
  81. package/dist/esm/types/coder.d.ts +12 -1
  82. package/dist/esm/types/coder.d.ts.map +1 -1
  83. package/dist/esm/types/coder.js +1 -0
  84. package/dist/esm/types/coder.js.map +1 -1
  85. package/dist/esm/types/preAggregate.d.ts +5 -1
  86. package/dist/esm/types/preAggregate.d.ts.map +1 -1
  87. package/dist/esm/types/preAggregate.js +2 -0
  88. package/dist/esm/types/preAggregate.js.map +1 -1
  89. package/dist/types/.tsbuildinfo +1 -1
  90. package/dist/types/ee/index.d.ts +2 -0
  91. package/dist/types/ee/index.d.ts.map +1 -1
  92. package/dist/types/ee/index.js +2 -0
  93. package/dist/types/ee/index.js.map +1 -1
  94. package/dist/types/ee/preAggregates/additivity.d.ts +9 -0
  95. package/dist/types/ee/preAggregates/additivity.d.ts.map +1 -0
  96. package/dist/types/ee/preAggregates/additivity.js +48 -0
  97. package/dist/types/ee/preAggregates/additivity.js.map +1 -0
  98. package/dist/types/ee/preAggregates/matcher.d.ts +15 -0
  99. package/dist/types/ee/preAggregates/matcher.d.ts.map +1 -0
  100. package/dist/types/ee/preAggregates/matcher.js +229 -0
  101. package/dist/types/ee/preAggregates/matcher.js.map +1 -0
  102. package/dist/types/ee/preAggregates/metricRepresentation.d.ts +21 -0
  103. package/dist/types/ee/preAggregates/metricRepresentation.d.ts.map +1 -0
  104. package/dist/types/ee/preAggregates/metricRepresentation.js +62 -0
  105. package/dist/types/ee/preAggregates/metricRepresentation.js.map +1 -0
  106. package/dist/types/ee/preAggregates/naming.d.ts +8 -0
  107. package/dist/types/ee/preAggregates/naming.d.ts.map +1 -0
  108. package/dist/types/ee/preAggregates/naming.js +7 -0
  109. package/dist/types/ee/preAggregates/naming.js.map +1 -0
  110. package/dist/types/ee/preAggregates/references.d.ts +21 -0
  111. package/dist/types/ee/preAggregates/references.d.ts.map +1 -0
  112. package/dist/types/ee/preAggregates/references.js +33 -0
  113. package/dist/types/ee/preAggregates/references.js.map +1 -0
  114. package/dist/types/ee/preAggregates/types.d.ts +6 -0
  115. package/dist/types/ee/preAggregates/types.d.ts.map +1 -0
  116. package/dist/types/ee/preAggregates/types.js +4 -0
  117. package/dist/types/ee/preAggregates/types.js.map +1 -0
  118. package/dist/types/ee/preAggregates/utils.d.ts +5 -0
  119. package/dist/types/ee/preAggregates/utils.d.ts.map +1 -0
  120. package/dist/types/ee/preAggregates/utils.js +5 -0
  121. package/dist/types/ee/preAggregates/utils.js.map +1 -0
  122. package/dist/types/types/api/paginatedQuery.d.ts +1 -0
  123. package/dist/types/types/api/paginatedQuery.d.ts.map +1 -1
  124. package/dist/types/types/api/paginatedQuery.js.map +1 -1
  125. package/dist/types/types/coder.d.ts +12 -1
  126. package/dist/types/types/coder.d.ts.map +1 -1
  127. package/dist/types/types/coder.js +1 -0
  128. package/dist/types/types/coder.js.map +1 -1
  129. package/dist/types/types/preAggregate.d.ts +5 -1
  130. package/dist/types/types/preAggregate.d.ts.map +1 -1
  131. package/dist/types/types/preAggregate.js +2 -0
  132. package/dist/types/types/preAggregate.js.map +1 -1
  133. package/package.json +1 -1
@@ -2,6 +2,8 @@ export * from './AiAgent';
2
2
  export * from './ambientAi';
3
3
  export * from './commercialFeatureFlags';
4
4
  export * from './embed';
5
+ export * from './preAggregates/types';
6
+ export * as preAggregateUtils from './preAggregates/utils';
5
7
  export * from './scim/errors';
6
8
  export * from './scim/types';
7
9
  export * from './serviceAccounts/types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ee/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AAExC,oBAAY,cAAc;IACtB,KAAK,gDAAgD;IACrD,IAAI,+CAA+C;IACnD,KAAK,gDAAgD;IACrD,IAAI,oDAAoD;IACxD,aAAa,uDAAuD;IACpE,MAAM,iDAAiD;IACvD,KAAK,kDAAkD;IACvD,wBAAwB,yDAAyD;IACjF,uBAAuB,gEAAgE;IACvF,aAAa,uDAAuD;CACvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ee/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAC3D,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AAExC,oBAAY,cAAc;IACtB,KAAK,gDAAgD;IACrD,IAAI,+CAA+C;IACnD,KAAK,gDAAgD;IACrD,IAAI,oDAAoD;IACxD,aAAa,uDAAuD;IACpE,MAAM,iDAAiD;IACvD,KAAK,kDAAkD;IACvD,wBAAwB,yDAAyD;IACjF,uBAAuB,gEAAgE;IACvF,aAAa,uDAAuD;CACvE"}
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScimSchemaType = void 0;
3
+ exports.ScimSchemaType = exports.preAggregateUtils = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  tslib_1.__exportStar(require("./AiAgent"), exports);
6
6
  tslib_1.__exportStar(require("./ambientAi"), exports);
7
7
  tslib_1.__exportStar(require("./commercialFeatureFlags"), exports);
8
8
  tslib_1.__exportStar(require("./embed"), exports);
9
+ tslib_1.__exportStar(require("./preAggregates/types"), exports);
10
+ exports.preAggregateUtils = tslib_1.__importStar(require("./preAggregates/utils"));
9
11
  tslib_1.__exportStar(require("./scim/errors"), exports);
10
12
  tslib_1.__exportStar(require("./scim/types"), exports);
11
13
  tslib_1.__exportStar(require("./serviceAccounts/types"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ee/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA0B;AAC1B,sDAA4B;AAC5B,mEAAyC;AACzC,kDAAwB;AACxB,wDAA8B;AAC9B,uDAA6B;AAC7B,kEAAwC;AAExC,IAAY,cAWX;AAXD,WAAY,cAAc;IACtB,uEAAqD,CAAA;IACrD,qEAAmD,CAAA;IACnD,uEAAqD,CAAA;IACrD,0EAAwD,CAAA;IACxD,sFAAoE,CAAA;IACpE,yEAAuD,CAAA;IACvD,yEAAuD,CAAA;IACvD,mGAAiF,CAAA;IACjF,yGAAuF,CAAA;IACvF,sFAAoE,CAAA;AACxE,CAAC,EAXW,cAAc,8BAAd,cAAc,QAWzB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ee/index.ts"],"names":[],"mappings":";;;;AAAA,oDAA0B;AAC1B,sDAA4B;AAC5B,mEAAyC;AACzC,kDAAwB;AACxB,gEAAsC;AACtC,mFAA2D;AAC3D,wDAA8B;AAC9B,uDAA6B;AAC7B,kEAAwC;AAExC,IAAY,cAWX;AAXD,WAAY,cAAc;IACtB,uEAAqD,CAAA;IACrD,qEAAmD,CAAA;IACnD,uEAAqD,CAAA;IACrD,0EAAwD,CAAA;IACxD,sFAAoE,CAAA;IACpE,yEAAuD,CAAA;IACvD,yEAAuD,CAAA;IACvD,mGAAiF,CAAA;IACjF,yGAAuF,CAAA;IACvF,sFAAoE,CAAA;AACxE,CAAC,EAXW,cAAc,8BAAd,cAAc,QAWzB"}
@@ -0,0 +1,9 @@
1
+ import { MetricType } from '../../types/field';
2
+ export declare enum PreAggregateAdditivityType {
3
+ ADDITIVE = "additive",
4
+ DECOMPOSABLE = "decomposable",
5
+ NON_ADDITIVE = "non_additive"
6
+ }
7
+ export declare const getAdditivityType: (metricType: MetricType) => PreAggregateAdditivityType;
8
+ export declare const isCompatible: (metricType: MetricType) => boolean;
9
+ //# sourceMappingURL=additivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"additivity.d.ts","sourceRoot":"","sources":["../../../../src/ee/preAggregates/additivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,oBAAY,0BAA0B;IAClC,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;CAChC;AAED,eAAO,MAAM,iBAAiB,GAC1B,YAAY,UAAU,KACvB,0BA0BF,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,YAAY,UAAU,KAAG,OAYrD,CAAC"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isCompatible = exports.getAdditivityType = exports.PreAggregateAdditivityType = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const field_1 = require("../../types/field");
6
+ const assertUnreachable_1 = tslib_1.__importDefault(require("../../utils/assertUnreachable"));
7
+ var PreAggregateAdditivityType;
8
+ (function (PreAggregateAdditivityType) {
9
+ PreAggregateAdditivityType["ADDITIVE"] = "additive";
10
+ PreAggregateAdditivityType["DECOMPOSABLE"] = "decomposable";
11
+ PreAggregateAdditivityType["NON_ADDITIVE"] = "non_additive";
12
+ })(PreAggregateAdditivityType || (exports.PreAggregateAdditivityType = PreAggregateAdditivityType = {}));
13
+ const getAdditivityType = (metricType) => {
14
+ switch (metricType) {
15
+ case field_1.MetricType.SUM:
16
+ case field_1.MetricType.COUNT:
17
+ case field_1.MetricType.MIN:
18
+ case field_1.MetricType.MAX:
19
+ return PreAggregateAdditivityType.ADDITIVE;
20
+ case field_1.MetricType.AVERAGE:
21
+ return PreAggregateAdditivityType.DECOMPOSABLE;
22
+ case field_1.MetricType.COUNT_DISTINCT:
23
+ case field_1.MetricType.SUM_DISTINCT:
24
+ case field_1.MetricType.AVERAGE_DISTINCT:
25
+ case field_1.MetricType.MEDIAN:
26
+ case field_1.MetricType.PERCENTILE:
27
+ case field_1.MetricType.NUMBER:
28
+ case field_1.MetricType.STRING:
29
+ case field_1.MetricType.DATE:
30
+ case field_1.MetricType.TIMESTAMP:
31
+ case field_1.MetricType.BOOLEAN:
32
+ case field_1.MetricType.PERCENT_OF_PREVIOUS:
33
+ case field_1.MetricType.PERCENT_OF_TOTAL:
34
+ case field_1.MetricType.RUNNING_TOTAL:
35
+ return PreAggregateAdditivityType.NON_ADDITIVE;
36
+ default:
37
+ return (0, assertUnreachable_1.default)(metricType, `Unknown metric type`);
38
+ }
39
+ };
40
+ exports.getAdditivityType = getAdditivityType;
41
+ const isCompatible = (metricType) => {
42
+ const additivityType = (0, exports.getAdditivityType)(metricType);
43
+ switch (additivityType) {
44
+ case PreAggregateAdditivityType.ADDITIVE:
45
+ case PreAggregateAdditivityType.DECOMPOSABLE:
46
+ return true;
47
+ case PreAggregateAdditivityType.NON_ADDITIVE:
48
+ return false;
49
+ default:
50
+ return (0, assertUnreachable_1.default)(additivityType, `Unknown additivity type`);
51
+ }
52
+ };
53
+ exports.isCompatible = isCompatible;
54
+ //# sourceMappingURL=additivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"additivity.js","sourceRoot":"","sources":["../../../../src/ee/preAggregates/additivity.ts"],"names":[],"mappings":";;;;AAAA,6CAA+C;AAC/C,8FAA8D;AAE9D,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IAClC,mDAAqB,CAAA;IACrB,2DAA6B,CAAA;IAC7B,2DAA6B,CAAA;AACjC,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAEM,MAAM,iBAAiB,GAAG,CAC7B,UAAsB,EACI,EAAE;IAC5B,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,kBAAU,CAAC,GAAG,CAAC;QACpB,KAAK,kBAAU,CAAC,KAAK,CAAC;QACtB,KAAK,kBAAU,CAAC,GAAG,CAAC;QACpB,KAAK,kBAAU,CAAC,GAAG;YACf,OAAO,0BAA0B,CAAC,QAAQ,CAAC;QAC/C,KAAK,kBAAU,CAAC,OAAO;YACnB,OAAO,0BAA0B,CAAC,YAAY,CAAC;QACnD,KAAK,kBAAU,CAAC,cAAc,CAAC;QAC/B,KAAK,kBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,kBAAU,CAAC,gBAAgB,CAAC;QACjC,KAAK,kBAAU,CAAC,MAAM,CAAC;QACvB,KAAK,kBAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,kBAAU,CAAC,MAAM,CAAC;QACvB,KAAK,kBAAU,CAAC,MAAM,CAAC;QACvB,KAAK,kBAAU,CAAC,IAAI,CAAC;QACrB,KAAK,kBAAU,CAAC,SAAS,CAAC;QAC1B,KAAK,kBAAU,CAAC,OAAO,CAAC;QACxB,KAAK,kBAAU,CAAC,mBAAmB,CAAC;QACpC,KAAK,kBAAU,CAAC,gBAAgB,CAAC;QACjC,KAAK,kBAAU,CAAC,aAAa;YACzB,OAAO,0BAA0B,CAAC,YAAY,CAAC;QACnD;YACI,OAAO,IAAA,2BAAiB,EAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACpE,CAAC;AACL,CAAC,CAAC;AA5BW,QAAA,iBAAiB,qBA4B5B;AAEK,MAAM,YAAY,GAAG,CAAC,UAAsB,EAAW,EAAE;IAC5D,MAAM,cAAc,GAAG,IAAA,yBAAiB,EAAC,UAAU,CAAC,CAAC;IAErD,QAAQ,cAAc,EAAE,CAAC;QACrB,KAAK,0BAA0B,CAAC,QAAQ,CAAC;QACzC,KAAK,0BAA0B,CAAC,YAAY;YACxC,OAAO,IAAI,CAAC;QAChB,KAAK,0BAA0B,CAAC,YAAY;YACxC,OAAO,KAAK,CAAC;QACjB;YACI,OAAO,IAAA,2BAAiB,EAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;IAC5E,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,YAAY,gBAYvB"}
@@ -0,0 +1,15 @@
1
+ import type { Explore } from '../../types/explore';
2
+ import type { MetricQuery } from '../../types/metricQuery';
3
+ import { type PreAggregateMatchMiss } from '../../types/preAggregate';
4
+ export type PreAggregateMatchResult = {
5
+ hit: true;
6
+ preAggregateName: string;
7
+ miss: null;
8
+ } | {
9
+ hit: false;
10
+ preAggregateName: null;
11
+ miss: PreAggregateMatchMiss;
12
+ };
13
+ export declare const findMatch: (metricQuery: MetricQuery, explore: Explore) => PreAggregateMatchResult;
14
+ export declare const applyUserBypass: (matchResult: PreAggregateMatchResult, cacheEnabled: boolean) => PreAggregateMatchResult;
15
+ //# sourceMappingURL=matcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher.d.ts","sourceRoot":"","sources":["../../../../src/ee/preAggregates/matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAGH,KAAK,qBAAqB,EAC7B,MAAM,0BAA0B,CAAC;AAQlC,MAAM,MAAM,uBAAuB,GAC7B;IAAE,GAAG,EAAE,IAAI,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GACnD;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,gBAAgB,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC;AA8N1E,eAAO,MAAM,SAAS,GAClB,aAAa,WAAW,EACxB,SAAS,OAAO,KACjB,uBA+FF,CAAC;AAEF,eAAO,MAAM,eAAe,GACxB,aAAa,uBAAuB,EACpC,cAAc,OAAO,KACtB,uBAUF,CAAC"}
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyUserBypass = exports.findMatch = void 0;
4
+ const field_1 = require("../../types/field");
5
+ const filter_1 = require("../../types/filter");
6
+ const preAggregate_1 = require("../../types/preAggregate");
7
+ const fields_1 = require("../../utils/fields");
8
+ const item_1 = require("../../utils/item");
9
+ const timeFrames_1 = require("../../utils/timeFrames");
10
+ const additivity_1 = require("./additivity");
11
+ const references_1 = require("./references");
12
+ const isGranularityCoarserOrEqual = (queryGranularity, preAggregateGranularity) => {
13
+ const queryIndex = timeFrames_1.timeFrameOrder.indexOf(queryGranularity);
14
+ const preAggregateIndex = timeFrames_1.timeFrameOrder.indexOf(preAggregateGranularity);
15
+ if (queryIndex === -1 || preAggregateIndex === -1) {
16
+ return false;
17
+ }
18
+ return queryIndex >= preAggregateIndex;
19
+ };
20
+ const getDimensionsByFieldId = (explore) => {
21
+ const dimensionsByFieldId = new Map();
22
+ Object.values(explore.tables).forEach((table) => {
23
+ Object.values(table.dimensions).forEach((dimension) => {
24
+ dimensionsByFieldId.set((0, item_1.getItemId)(dimension), dimension);
25
+ });
26
+ });
27
+ return dimensionsByFieldId;
28
+ };
29
+ const dimensionFieldIdMatchesDef = (fieldId, explore, defDimensions, dimensionsByFieldId) => {
30
+ const dimension = dimensionsByFieldId.get(fieldId);
31
+ if (!dimension) {
32
+ return false;
33
+ }
34
+ return (0, references_1.getDimensionReferences)({
35
+ dimension,
36
+ baseTable: explore.baseTable,
37
+ }).some((reference) => defDimensions.has(reference));
38
+ };
39
+ const extractDimensionFilterFieldIds = (metricQuery) => {
40
+ if (!metricQuery.filters.dimensions) {
41
+ return [];
42
+ }
43
+ return (0, filter_1.flattenFilterGroup)(metricQuery.filters.dimensions)
44
+ .filter((rule) => !rule.disabled)
45
+ .map((rule) => rule.target)
46
+ .filter((target) => !!target &&
47
+ typeof target === 'object' &&
48
+ 'fieldId' in target &&
49
+ typeof target.fieldId === 'string')
50
+ .map((target) => target.fieldId);
51
+ };
52
+ const getGranularityMissForDef = (metricQuery, explore, preAggregateDef, dimensionsByFieldId) => {
53
+ if (!preAggregateDef.timeDimension || !preAggregateDef.granularity) {
54
+ return null;
55
+ }
56
+ for (const dimensionFieldId of metricQuery.dimensions) {
57
+ const dimension = dimensionsByFieldId.get(dimensionFieldId);
58
+ const queryGranularity = dimension?.timeInterval;
59
+ const matchesRollupTimeDimension = !!dimension &&
60
+ !!queryGranularity &&
61
+ (dimension.timeIntervalBaseDimensionName ?? dimension.name) ===
62
+ preAggregateDef.timeDimension;
63
+ if (matchesRollupTimeDimension &&
64
+ !isGranularityCoarserOrEqual(queryGranularity, preAggregateDef.granularity)) {
65
+ return {
66
+ reason: preAggregate_1.PreAggregateMissReason.GRANULARITY_TOO_FINE,
67
+ fieldId: dimensionFieldId,
68
+ queryGranularity,
69
+ preAggregateGranularity: preAggregateDef.granularity,
70
+ preAggregateTimeDimension: preAggregateDef.timeDimension,
71
+ };
72
+ }
73
+ }
74
+ return null;
75
+ };
76
+ const getMissForDef = ({ metricQuery, explore, preAggregateDef, dimensionsByFieldId, metricsByFieldId, }) => {
77
+ const defMetrics = new Set(preAggregateDef.metrics);
78
+ for (const metricFieldId of metricQuery.metrics) {
79
+ const metric = metricsByFieldId[metricFieldId];
80
+ if (!metric) {
81
+ return {
82
+ reason: preAggregate_1.PreAggregateMissReason.METRIC_NOT_IN_PRE_AGGREGATE,
83
+ fieldId: metricFieldId,
84
+ };
85
+ }
86
+ const isMetricInDef = (0, references_1.getMetricReferences)({
87
+ metric,
88
+ baseTable: explore.baseTable,
89
+ }).some((reference) => defMetrics.has(reference));
90
+ if (!isMetricInDef) {
91
+ return {
92
+ reason: preAggregate_1.PreAggregateMissReason.METRIC_NOT_IN_PRE_AGGREGATE,
93
+ fieldId: metricFieldId,
94
+ };
95
+ }
96
+ if (metric.type === field_1.MetricType.NUMBER) {
97
+ return {
98
+ reason: preAggregate_1.PreAggregateMissReason.CUSTOM_SQL_METRIC,
99
+ fieldId: metricFieldId,
100
+ };
101
+ }
102
+ if (!(0, additivity_1.isCompatible)(metric.type)) {
103
+ return {
104
+ reason: preAggregate_1.PreAggregateMissReason.NON_ADDITIVE_METRIC,
105
+ fieldId: metricFieldId,
106
+ };
107
+ }
108
+ }
109
+ const defDimensions = new Set(preAggregateDef.dimensions);
110
+ if (preAggregateDef.timeDimension &&
111
+ preAggregateDef.granularity &&
112
+ !defDimensions.has(preAggregateDef.timeDimension)) {
113
+ defDimensions.add(preAggregateDef.timeDimension);
114
+ }
115
+ const missingQueryDimensionFieldId = metricQuery.dimensions.find((dimensionFieldId) => !dimensionFieldIdMatchesDef(dimensionFieldId, explore, defDimensions, dimensionsByFieldId));
116
+ if (missingQueryDimensionFieldId) {
117
+ return {
118
+ reason: preAggregate_1.PreAggregateMissReason.DIMENSION_NOT_IN_PRE_AGGREGATE,
119
+ fieldId: missingQueryDimensionFieldId,
120
+ };
121
+ }
122
+ const filterDimensionFieldIds = extractDimensionFilterFieldIds(metricQuery);
123
+ const missingFilterDimensionFieldId = filterDimensionFieldIds.find((dimensionFieldId) => !dimensionFieldIdMatchesDef(dimensionFieldId, explore, defDimensions, dimensionsByFieldId));
124
+ if (missingFilterDimensionFieldId) {
125
+ return {
126
+ reason: preAggregate_1.PreAggregateMissReason.FILTER_DIMENSION_NOT_IN_PRE_AGGREGATE,
127
+ fieldId: missingFilterDimensionFieldId,
128
+ };
129
+ }
130
+ const granularityMiss = getGranularityMissForDef(metricQuery, explore, preAggregateDef, dimensionsByFieldId);
131
+ if (granularityMiss) {
132
+ return granularityMiss;
133
+ }
134
+ return null;
135
+ };
136
+ const findMatch = (metricQuery, explore) => {
137
+ if (!explore.preAggregates || explore.preAggregates.length === 0) {
138
+ return {
139
+ hit: false,
140
+ preAggregateName: null,
141
+ miss: {
142
+ reason: preAggregate_1.PreAggregateMissReason.NO_PRE_AGGREGATES_DEFINED,
143
+ },
144
+ };
145
+ }
146
+ if ((metricQuery.customDimensions || []).length > 0) {
147
+ return {
148
+ hit: false,
149
+ preAggregateName: null,
150
+ miss: {
151
+ reason: preAggregate_1.PreAggregateMissReason.CUSTOM_DIMENSION_PRESENT,
152
+ },
153
+ };
154
+ }
155
+ if ((metricQuery.tableCalculations || []).length > 0) {
156
+ return {
157
+ hit: false,
158
+ preAggregateName: null,
159
+ miss: {
160
+ reason: preAggregate_1.PreAggregateMissReason.TABLE_CALCULATION_PRESENT,
161
+ },
162
+ };
163
+ }
164
+ if ((metricQuery.additionalMetrics || []).length > 0) {
165
+ return {
166
+ hit: false,
167
+ preAggregateName: null,
168
+ miss: {
169
+ reason: preAggregate_1.PreAggregateMissReason.CUSTOM_METRIC_PRESENT,
170
+ },
171
+ };
172
+ }
173
+ const dimensionsByFieldId = getDimensionsByFieldId(explore);
174
+ const metricsByFieldId = (0, fields_1.getMetricsMapFromTables)(explore.tables);
175
+ const matchedDefs = [];
176
+ let firstMiss = null;
177
+ explore.preAggregates.forEach((preAggregateDef) => {
178
+ const miss = getMissForDef({
179
+ metricQuery,
180
+ explore,
181
+ preAggregateDef,
182
+ dimensionsByFieldId,
183
+ metricsByFieldId,
184
+ });
185
+ if (!miss) {
186
+ matchedDefs.push(preAggregateDef);
187
+ return;
188
+ }
189
+ if (!firstMiss) {
190
+ firstMiss = miss;
191
+ }
192
+ });
193
+ if (matchedDefs.length === 0) {
194
+ return {
195
+ hit: false,
196
+ preAggregateName: null,
197
+ miss: firstMiss ?? {
198
+ reason: preAggregate_1.PreAggregateMissReason.DIMENSION_NOT_IN_PRE_AGGREGATE,
199
+ fieldId: metricQuery.dimensions[0] ??
200
+ metricQuery.metrics[0] ??
201
+ 'unknown',
202
+ },
203
+ };
204
+ }
205
+ // TODO: Prefer using materialized row count once available.
206
+ const smallestMatchingDef = matchedDefs.reduce((best, current) => {
207
+ if (current.dimensions.length !== best.dimensions.length) {
208
+ return current.dimensions.length < best.dimensions.length
209
+ ? current
210
+ : best;
211
+ }
212
+ return current.metrics.length < best.metrics.length ? current : best;
213
+ });
214
+ return {
215
+ hit: true,
216
+ preAggregateName: smallestMatchingDef.name,
217
+ miss: null,
218
+ };
219
+ };
220
+ exports.findMatch = findMatch;
221
+ const applyUserBypass = (matchResult, cacheEnabled) => {
222
+ if (cacheEnabled || !matchResult.hit)
223
+ return matchResult;
224
+ return {
225
+ hit: false,
226
+ preAggregateName: null,
227
+ miss: {
228
+ reason: preAggregate_1.PreAggregateMissReason.USER_BYPASS,
229
+ preAggregateName: matchResult.preAggregateName,
230
+ },
231
+ };
232
+ };
233
+ exports.applyUserBypass = applyUserBypass;
234
+ //# sourceMappingURL=matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matcher.js","sourceRoot":"","sources":["../../../../src/ee/preAggregates/matcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { MetricType } from '../../types/field';
2
+ export type PreAggregateSupportedMetricType = MetricType.SUM | MetricType.COUNT | MetricType.MIN | MetricType.MAX | MetricType.AVERAGE;
3
+ export declare enum PreAggregateMetricRepresentationKind {
4
+ DIRECT = "direct",
5
+ DECOMPOSED = "decomposed",
6
+ UNSUPPORTED = "unsupported"
7
+ }
8
+ export type PreAggregateMetricRepresentation = {
9
+ kind: PreAggregateMetricRepresentationKind.DIRECT;
10
+ metricType: MetricType.SUM | MetricType.MIN | MetricType.MAX;
11
+ } | {
12
+ kind: PreAggregateMetricRepresentationKind.DECOMPOSED;
13
+ metricType: MetricType.AVERAGE;
14
+ components: readonly ['sum', 'count'];
15
+ } | {
16
+ kind: PreAggregateMetricRepresentationKind.UNSUPPORTED;
17
+ };
18
+ export declare const supportedMetricTypes: PreAggregateSupportedMetricType[];
19
+ export declare const getMetricRepresentation: (metricType: MetricType) => PreAggregateMetricRepresentation;
20
+ export declare const isSupportedMetricType: (metricType: MetricType) => metricType is PreAggregateSupportedMetricType;
21
+ //# sourceMappingURL=metricRepresentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metricRepresentation.d.ts","sourceRoot":"","sources":["../../../../src/ee/preAggregates/metricRepresentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,MAAM,MAAM,+BAA+B,GACrC,UAAU,CAAC,GAAG,GACd,UAAU,CAAC,KAAK,GAChB,UAAU,CAAC,GAAG,GACd,UAAU,CAAC,GAAG,GACd,UAAU,CAAC,OAAO,CAAC;AAEzB,oBAAY,oCAAoC;IAC5C,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC9B;AAED,MAAM,MAAM,gCAAgC,GACtC;IACI,IAAI,EAAE,oCAAoC,CAAC,MAAM,CAAC;IAClD,UAAU,EAAE,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;CAChE,GACD;IACI,IAAI,EAAE,oCAAoC,CAAC,UAAU,CAAC;IACtD,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC;IAC/B,UAAU,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;CACzC,GACD;IACI,IAAI,EAAE,oCAAoC,CAAC,WAAW,CAAC;CAC1D,CAAC;AAER,eAAO,MAAM,oBAAoB,EAAE,+BAA+B,EAMjE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAChC,YAAY,UAAU,KACvB,gCA2CF,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAC9B,YAAY,UAAU,KACvB,UAAU,IAAI,+BAEmC,CAAC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSupportedMetricType = exports.getMetricRepresentation = exports.supportedMetricTypes = exports.PreAggregateMetricRepresentationKind = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const field_1 = require("../../types/field");
6
+ const assertUnreachable_1 = tslib_1.__importDefault(require("../../utils/assertUnreachable"));
7
+ var PreAggregateMetricRepresentationKind;
8
+ (function (PreAggregateMetricRepresentationKind) {
9
+ PreAggregateMetricRepresentationKind["DIRECT"] = "direct";
10
+ PreAggregateMetricRepresentationKind["DECOMPOSED"] = "decomposed";
11
+ PreAggregateMetricRepresentationKind["UNSUPPORTED"] = "unsupported";
12
+ })(PreAggregateMetricRepresentationKind || (exports.PreAggregateMetricRepresentationKind = PreAggregateMetricRepresentationKind = {}));
13
+ exports.supportedMetricTypes = [
14
+ field_1.MetricType.SUM,
15
+ field_1.MetricType.COUNT,
16
+ field_1.MetricType.MIN,
17
+ field_1.MetricType.MAX,
18
+ field_1.MetricType.AVERAGE,
19
+ ];
20
+ const getMetricRepresentation = (metricType) => {
21
+ switch (metricType) {
22
+ case field_1.MetricType.SUM:
23
+ case field_1.MetricType.COUNT:
24
+ return {
25
+ kind: PreAggregateMetricRepresentationKind.DIRECT,
26
+ metricType: field_1.MetricType.SUM,
27
+ };
28
+ case field_1.MetricType.MIN:
29
+ return {
30
+ kind: PreAggregateMetricRepresentationKind.DIRECT,
31
+ metricType: field_1.MetricType.MIN,
32
+ };
33
+ case field_1.MetricType.MAX:
34
+ return {
35
+ kind: PreAggregateMetricRepresentationKind.DIRECT,
36
+ metricType: field_1.MetricType.MAX,
37
+ };
38
+ case field_1.MetricType.AVERAGE:
39
+ return {
40
+ kind: PreAggregateMetricRepresentationKind.DECOMPOSED,
41
+ metricType: field_1.MetricType.AVERAGE,
42
+ components: ['sum', 'count'],
43
+ };
44
+ case field_1.MetricType.COUNT_DISTINCT:
45
+ case field_1.MetricType.SUM_DISTINCT:
46
+ case field_1.MetricType.AVERAGE_DISTINCT:
47
+ case field_1.MetricType.MEDIAN:
48
+ case field_1.MetricType.PERCENTILE:
49
+ case field_1.MetricType.NUMBER:
50
+ case field_1.MetricType.STRING:
51
+ case field_1.MetricType.DATE:
52
+ case field_1.MetricType.TIMESTAMP:
53
+ case field_1.MetricType.BOOLEAN:
54
+ case field_1.MetricType.PERCENT_OF_PREVIOUS:
55
+ case field_1.MetricType.PERCENT_OF_TOTAL:
56
+ case field_1.MetricType.RUNNING_TOTAL:
57
+ return {
58
+ kind: PreAggregateMetricRepresentationKind.UNSUPPORTED,
59
+ };
60
+ default:
61
+ return (0, assertUnreachable_1.default)(metricType, `Unknown metric type`);
62
+ }
63
+ };
64
+ exports.getMetricRepresentation = getMetricRepresentation;
65
+ const isSupportedMetricType = (metricType) => (0, exports.getMetricRepresentation)(metricType).kind !==
66
+ PreAggregateMetricRepresentationKind.UNSUPPORTED;
67
+ exports.isSupportedMetricType = isSupportedMetricType;
68
+ //# sourceMappingURL=metricRepresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metricRepresentation.js","sourceRoot":"","sources":["../../../../src/ee/preAggregates/metricRepresentation.ts"],"names":[],"mappings":";;;;AAAA,6CAA+C;AAC/C,8FAA8D;AAS9D,IAAY,oCAIX;AAJD,WAAY,oCAAoC;IAC5C,yDAAiB,CAAA;IACjB,iEAAyB,CAAA;IACzB,mEAA2B,CAAA;AAC/B,CAAC,EAJW,oCAAoC,oDAApC,oCAAoC,QAI/C;AAgBY,QAAA,oBAAoB,GAAsC;IACnE,kBAAU,CAAC,GAAG;IACd,kBAAU,CAAC,KAAK;IAChB,kBAAU,CAAC,GAAG;IACd,kBAAU,CAAC,GAAG;IACd,kBAAU,CAAC,OAAO;CACrB,CAAC;AAEK,MAAM,uBAAuB,GAAG,CACnC,UAAsB,EACU,EAAE;IAClC,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,kBAAU,CAAC,GAAG,CAAC;QACpB,KAAK,kBAAU,CAAC,KAAK;YACjB,OAAO;gBACH,IAAI,EAAE,oCAAoC,CAAC,MAAM;gBACjD,UAAU,EAAE,kBAAU,CAAC,GAAG;aAC7B,CAAC;QACN,KAAK,kBAAU,CAAC,GAAG;YACf,OAAO;gBACH,IAAI,EAAE,oCAAoC,CAAC,MAAM;gBACjD,UAAU,EAAE,kBAAU,CAAC,GAAG;aAC7B,CAAC;QACN,KAAK,kBAAU,CAAC,GAAG;YACf,OAAO;gBACH,IAAI,EAAE,oCAAoC,CAAC,MAAM;gBACjD,UAAU,EAAE,kBAAU,CAAC,GAAG;aAC7B,CAAC;QACN,KAAK,kBAAU,CAAC,OAAO;YACnB,OAAO;gBACH,IAAI,EAAE,oCAAoC,CAAC,UAAU;gBACrD,UAAU,EAAE,kBAAU,CAAC,OAAO;gBAC9B,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;aAC/B,CAAC;QACN,KAAK,kBAAU,CAAC,cAAc,CAAC;QAC/B,KAAK,kBAAU,CAAC,YAAY,CAAC;QAC7B,KAAK,kBAAU,CAAC,gBAAgB,CAAC;QACjC,KAAK,kBAAU,CAAC,MAAM,CAAC;QACvB,KAAK,kBAAU,CAAC,UAAU,CAAC;QAC3B,KAAK,kBAAU,CAAC,MAAM,CAAC;QACvB,KAAK,kBAAU,CAAC,MAAM,CAAC;QACvB,KAAK,kBAAU,CAAC,IAAI,CAAC;QACrB,KAAK,kBAAU,CAAC,SAAS,CAAC;QAC1B,KAAK,kBAAU,CAAC,OAAO,CAAC;QACxB,KAAK,kBAAU,CAAC,mBAAmB,CAAC;QACpC,KAAK,kBAAU,CAAC,gBAAgB,CAAC;QACjC,KAAK,kBAAU,CAAC,aAAa;YACzB,OAAO;gBACH,IAAI,EAAE,oCAAoC,CAAC,WAAW;aACzD,CAAC;QACN;YACI,OAAO,IAAA,2BAAiB,EAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IACpE,CAAC;AACL,CAAC,CAAC;AA7CW,QAAA,uBAAuB,2BA6ClC;AAEK,MAAM,qBAAqB,GAAG,CACjC,UAAsB,EACuB,EAAE,CAC/C,IAAA,+BAAuB,EAAC,UAAU,CAAC,CAAC,IAAI;IACxC,oCAAoC,CAAC,WAAW,CAAC;AAJxC,QAAA,qBAAqB,yBAImB"}
@@ -0,0 +1,8 @@
1
+ import type { TimeFrames } from '../../types/timeFrames';
2
+ export declare const PRE_AGGREGATE_EXPLORE_PREFIX = "__preagg__";
3
+ export declare const getPreAggregateExploreName: (exploreName: string, preAggregateName: string) => string;
4
+ export declare const getPreAggregateJoinedDimensionColumnName: (tableName: string, dimensionName: string) => string;
5
+ export declare const getPreAggregateMetricColumnName: (fieldId: string) => string;
6
+ export declare const getPreAggregateMetricComponentColumnName: (fieldId: string, component: "sum" | "count") => string;
7
+ export declare const getPreAggregateTimeDimensionColumnName: (dimensionName: string, granularity: TimeFrames) => string;
8
+ //# sourceMappingURL=naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../../../../src/ee/preAggregates/naming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,eAAe,CAAC;AAEzD,eAAO,MAAM,0BAA0B,GACnC,aAAa,MAAM,EACnB,kBAAkB,MAAM,KACzB,MACqE,CAAC;AAEzE,eAAO,MAAM,wCAAwC,GACjD,WAAW,MAAM,EACjB,eAAe,MAAM,KACtB,MAA+C,CAAC;AAEnD,eAAO,MAAM,+BAA+B,GAAI,SAAS,MAAM,KAAG,MACvD,CAAC;AAEZ,eAAO,MAAM,wCAAwC,GACjD,SAAS,MAAM,EACf,WAAW,KAAK,GAAG,OAAO,KAC3B,MAAoC,CAAC;AAExC,eAAO,MAAM,sCAAsC,GAC/C,eAAe,MAAM,EACrB,aAAa,UAAU,KACxB,MAAyD,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPreAggregateTimeDimensionColumnName = exports.getPreAggregateMetricComponentColumnName = exports.getPreAggregateMetricColumnName = exports.getPreAggregateJoinedDimensionColumnName = exports.getPreAggregateExploreName = exports.PRE_AGGREGATE_EXPLORE_PREFIX = void 0;
4
+ exports.PRE_AGGREGATE_EXPLORE_PREFIX = '__preagg__';
5
+ const getPreAggregateExploreName = (exploreName, preAggregateName) => `${exports.PRE_AGGREGATE_EXPLORE_PREFIX}${exploreName}__${preAggregateName}`;
6
+ exports.getPreAggregateExploreName = getPreAggregateExploreName;
7
+ const getPreAggregateJoinedDimensionColumnName = (tableName, dimensionName) => `ldj__${tableName}__${dimensionName}`;
8
+ exports.getPreAggregateJoinedDimensionColumnName = getPreAggregateJoinedDimensionColumnName;
9
+ const getPreAggregateMetricColumnName = (fieldId) => fieldId;
10
+ exports.getPreAggregateMetricColumnName = getPreAggregateMetricColumnName;
11
+ const getPreAggregateMetricComponentColumnName = (fieldId, component) => `${fieldId}__${component}`;
12
+ exports.getPreAggregateMetricComponentColumnName = getPreAggregateMetricComponentColumnName;
13
+ const getPreAggregateTimeDimensionColumnName = (dimensionName, granularity) => `${dimensionName}_${granularity.toLowerCase()}`;
14
+ exports.getPreAggregateTimeDimensionColumnName = getPreAggregateTimeDimensionColumnName;
15
+ //# sourceMappingURL=naming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming.js","sourceRoot":"","sources":["../../../../src/ee/preAggregates/naming.ts"],"names":[],"mappings":";;;AAEa,QAAA,4BAA4B,GAAG,YAAY,CAAC;AAElD,MAAM,0BAA0B,GAAG,CACtC,WAAmB,EACnB,gBAAwB,EAClB,EAAE,CACR,GAAG,oCAA4B,GAAG,WAAW,KAAK,gBAAgB,EAAE,CAAC;AAJ5D,QAAA,0BAA0B,8BAIkC;AAElE,MAAM,wCAAwC,GAAG,CACpD,SAAiB,EACjB,aAAqB,EACf,EAAE,CAAC,QAAQ,SAAS,KAAK,aAAa,EAAE,CAAC;AAHtC,QAAA,wCAAwC,4CAGF;AAE5C,MAAM,+BAA+B,GAAG,CAAC,OAAe,EAAU,EAAE,CACvE,OAAO,CAAC;AADC,QAAA,+BAA+B,mCAChC;AAEL,MAAM,wCAAwC,GAAG,CACpD,OAAe,EACf,SAA0B,EACpB,EAAE,CAAC,GAAG,OAAO,KAAK,SAAS,EAAE,CAAC;AAH3B,QAAA,wCAAwC,4CAGb;AAEjC,MAAM,sCAAsC,GAAG,CAClD,aAAqB,EACrB,WAAuB,EACjB,EAAE,CAAC,GAAG,aAAa,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;AAHhD,QAAA,sCAAsC,0CAGU"}
@@ -0,0 +1,21 @@
1
+ import type { CompiledDimension, CompiledMetric, FieldId } from '../../types/field';
2
+ export declare const getDimensionBaseName: (dimension: Pick<CompiledDimension, "name" | "timeIntervalBaseDimensionName">) => string;
3
+ export declare const getDimensionReferences: ({ dimension, baseTable, }: {
4
+ dimension: Pick<CompiledDimension, "table" | "name" | "timeIntervalBaseDimensionName">;
5
+ baseTable: string;
6
+ }) => string[];
7
+ export declare const getMetricReferences: ({ metric, baseTable, }: {
8
+ metric: Pick<CompiledMetric, "table" | "name">;
9
+ baseTable: string;
10
+ }) => string[];
11
+ export type PreAggregateMetricReferenceLookup = {
12
+ fieldId: FieldId;
13
+ metric: CompiledMetric;
14
+ };
15
+ export declare const getMetricsByReference: ({ tables, baseTable, }: {
16
+ tables: Record<string, {
17
+ metrics: Record<string, CompiledMetric>;
18
+ }>;
19
+ baseTable: string;
20
+ }) => Map<string, PreAggregateMetricReferenceLookup>;
21
+ //# sourceMappingURL=references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../../src/ee/preAggregates/references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,iBAAiB,EACjB,cAAc,EACd,OAAO,EACV,MAAM,mBAAmB,CAAC;AAG3B,eAAO,MAAM,oBAAoB,GAC7B,WAAW,IAAI,CACX,iBAAiB,EACjB,MAAM,GAAG,+BAA+B,CAC3C,KACF,MAAmE,CAAC;AAEvE,eAAO,MAAM,sBAAsB,GAAI,2BAGpC;IACC,SAAS,EAAE,IAAI,CACX,iBAAiB,EACjB,OAAO,GAAG,MAAM,GAAG,+BAA+B,CACrD,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACrB,KAAG,MAAM,EAST,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,wBAGjC;IACC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;CACrB,KAAG,MAAM,EAQT,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,wBAGnC;IACC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;KAAE,CAAC,CAAC;IACpE,SAAS,EAAE,MAAM,CAAC;CACrB,KAAG,GAAG,CAAC,MAAM,EAAE,iCAAiC,CAiBW,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMetricsByReference = exports.getMetricReferences = exports.getDimensionReferences = exports.getDimensionBaseName = void 0;
4
+ const item_1 = require("../../utils/item");
5
+ const getDimensionBaseName = (dimension) => dimension.timeIntervalBaseDimensionName ?? dimension.name;
6
+ exports.getDimensionBaseName = getDimensionBaseName;
7
+ const getDimensionReferences = ({ dimension, baseTable, }) => {
8
+ const baseName = (0, exports.getDimensionBaseName)(dimension);
9
+ const tableQualifiedReference = `${dimension.table}.${baseName}`;
10
+ if (dimension.table === baseTable) {
11
+ return [baseName, tableQualifiedReference];
12
+ }
13
+ return [tableQualifiedReference];
14
+ };
15
+ exports.getDimensionReferences = getDimensionReferences;
16
+ const getMetricReferences = ({ metric, baseTable, }) => {
17
+ const references = [`${metric.table}.${metric.name}`];
18
+ if (metric.table === baseTable) {
19
+ references.push(metric.name);
20
+ }
21
+ return references;
22
+ };
23
+ exports.getMetricReferences = getMetricReferences;
24
+ const getMetricsByReference = ({ tables, baseTable, }) => Object.values(tables).reduce((acc, table) => {
25
+ Object.values(table.metrics).forEach((metric) => {
26
+ const fieldId = (0, item_1.getItemId)(metric);
27
+ new Set([
28
+ fieldId,
29
+ ...(0, exports.getMetricReferences)({
30
+ metric,
31
+ baseTable,
32
+ }),
33
+ ]).forEach((reference) => {
34
+ acc.set(reference, { fieldId, metric });
35
+ });
36
+ });
37
+ return acc;
38
+ }, new Map());
39
+ exports.getMetricsByReference = getMetricsByReference;
40
+ //# sourceMappingURL=references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../../../src/ee/preAggregates/references.ts"],"names":[],"mappings":";;;AAKA,2CAA6C;AAEtC,MAAM,oBAAoB,GAAG,CAChC,SAGC,EACK,EAAE,CAAC,SAAS,CAAC,6BAA6B,IAAI,SAAS,CAAC,IAAI,CAAC;AAL1D,QAAA,oBAAoB,wBAKsC;AAEhE,MAAM,sBAAsB,GAAG,CAAC,EACnC,SAAS,EACT,SAAS,GAOZ,EAAY,EAAE;IACX,MAAM,QAAQ,GAAG,IAAA,4BAAoB,EAAC,SAAS,CAAC,CAAC;IACjD,MAAM,uBAAuB,GAAG,GAAG,SAAS,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;IAEjE,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,uBAAuB,CAAC,CAAC;AACrC,CAAC,CAAC;AAlBW,QAAA,sBAAsB,0BAkBjC;AAEK,MAAM,mBAAmB,GAAG,CAAC,EAChC,MAAM,EACN,SAAS,GAIZ,EAAY,EAAE;IACX,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B;AAOK,MAAM,qBAAqB,GAAG,CAAC,EAClC,MAAM,EACN,SAAS,GAIZ,EAAkD,EAAE,CACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAE1B,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACb,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,MAAM,CAAC,CAAC;QAClC,IAAI,GAAG,CAAC;YACJ,OAAO;YACP,GAAG,IAAA,2BAAmB,EAAC;gBACnB,MAAM;gBACN,SAAS;aACZ,CAAC;SACL,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YACrB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACf,CAAC,EAAE,IAAI,GAAG,EAA6C,CAAC,CAAC;AAvBhD,QAAA,qBAAqB,yBAuB2B"}
@@ -0,0 +1,6 @@
1
+ export { PreAggregateAdditivityType } from './additivity';
2
+ export { getPreAggregateExploreName, getPreAggregateJoinedDimensionColumnName, getPreAggregateMetricColumnName, getPreAggregateMetricComponentColumnName, getPreAggregateTimeDimensionColumnName, PRE_AGGREGATE_EXPLORE_PREFIX, } from './naming';
3
+ export { type PreAggregateMatchResult } from './matcher';
4
+ export { PreAggregateMetricRepresentationKind, type PreAggregateMetricRepresentation, type PreAggregateSupportedMetricType, } from './metricRepresentation';
5
+ export { type PreAggregateMetricReferenceLookup } from './references';
6
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ee/preAggregates/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACH,0BAA0B,EAC1B,wCAAwC,EACxC,+BAA+B,EAC/B,wCAAwC,EACxC,sCAAsC,EACtC,4BAA4B,GAC/B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACH,oCAAoC,EACpC,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,GACvC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PreAggregateMetricRepresentationKind = exports.PRE_AGGREGATE_EXPLORE_PREFIX = exports.getPreAggregateTimeDimensionColumnName = exports.getPreAggregateMetricComponentColumnName = exports.getPreAggregateMetricColumnName = exports.getPreAggregateJoinedDimensionColumnName = exports.getPreAggregateExploreName = exports.PreAggregateAdditivityType = void 0;
4
+ var additivity_1 = require("./additivity");
5
+ Object.defineProperty(exports, "PreAggregateAdditivityType", { enumerable: true, get: function () { return additivity_1.PreAggregateAdditivityType; } });
6
+ var naming_1 = require("./naming");
7
+ Object.defineProperty(exports, "getPreAggregateExploreName", { enumerable: true, get: function () { return naming_1.getPreAggregateExploreName; } });
8
+ Object.defineProperty(exports, "getPreAggregateJoinedDimensionColumnName", { enumerable: true, get: function () { return naming_1.getPreAggregateJoinedDimensionColumnName; } });
9
+ Object.defineProperty(exports, "getPreAggregateMetricColumnName", { enumerable: true, get: function () { return naming_1.getPreAggregateMetricColumnName; } });
10
+ Object.defineProperty(exports, "getPreAggregateMetricComponentColumnName", { enumerable: true, get: function () { return naming_1.getPreAggregateMetricComponentColumnName; } });
11
+ Object.defineProperty(exports, "getPreAggregateTimeDimensionColumnName", { enumerable: true, get: function () { return naming_1.getPreAggregateTimeDimensionColumnName; } });
12
+ Object.defineProperty(exports, "PRE_AGGREGATE_EXPLORE_PREFIX", { enumerable: true, get: function () { return naming_1.PRE_AGGREGATE_EXPLORE_PREFIX; } });
13
+ var metricRepresentation_1 = require("./metricRepresentation");
14
+ Object.defineProperty(exports, "PreAggregateMetricRepresentationKind", { enumerable: true, get: function () { return metricRepresentation_1.PreAggregateMetricRepresentationKind; } });
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ee/preAggregates/types.ts"],"names":[],"mappings":";;;AAAA,2CAA0D;AAAjD,wHAAA,0BAA0B,OAAA;AACnC,mCAOkB;AANd,oHAAA,0BAA0B,OAAA;AAC1B,kIAAA,wCAAwC,OAAA;AACxC,yHAAA,+BAA+B,OAAA;AAC/B,kIAAA,wCAAwC,OAAA;AACxC,gIAAA,sCAAsC,OAAA;AACtC,sHAAA,4BAA4B,OAAA;AAGhC,+DAIgC;AAH5B,4IAAA,oCAAoC,OAAA"}
@@ -0,0 +1,5 @@
1
+ export { getAdditivityType, isCompatible } from './additivity';
2
+ export { applyUserBypass, findMatch } from './matcher';
3
+ export { getMetricRepresentation, isSupportedMetricType, supportedMetricTypes, } from './metricRepresentation';
4
+ export { getDimensionBaseName, getDimensionReferences, getMetricReferences, getMetricsByReference, } from './references';
5
+ //# sourceMappingURL=utils.d.ts.map