@gooddata/sdk-backend-base 8.13.0-alpha.2 → 8.13.0-alpha.21

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 (159) hide show
  1. package/dist/cachingBackend/index.js +304 -380
  2. package/dist/cachingBackend/index.js.map +1 -1
  3. package/dist/convertors/fromBackend/afm/result.js +3 -3
  4. package/dist/convertors/fromBackend/afm/result.js.map +1 -1
  5. package/dist/customBackend/execution.js +77 -92
  6. package/dist/customBackend/execution.js.map +1 -1
  7. package/dist/customBackend/index.js +78 -114
  8. package/dist/customBackend/index.js.map +1 -1
  9. package/dist/customBackend/workspace.js +39 -40
  10. package/dist/customBackend/workspace.js.map +1 -1
  11. package/dist/decoratedBackend/attributes.js +21 -22
  12. package/dist/decoratedBackend/attributes.js.map +1 -1
  13. package/dist/decoratedBackend/catalog.js +38 -50
  14. package/dist/decoratedBackend/catalog.js.map +1 -1
  15. package/dist/decoratedBackend/dashboards.js +61 -62
  16. package/dist/decoratedBackend/dashboards.js.map +1 -1
  17. package/dist/decoratedBackend/elements.js +47 -70
  18. package/dist/decoratedBackend/elements.js.map +1 -1
  19. package/dist/decoratedBackend/execution.js +62 -79
  20. package/dist/decoratedBackend/execution.js.map +1 -1
  21. package/dist/decoratedBackend/index.js +90 -104
  22. package/dist/decoratedBackend/index.js.map +1 -1
  23. package/dist/decoratedBackend/securitySettings.js +7 -8
  24. package/dist/decoratedBackend/securitySettings.js.map +1 -1
  25. package/dist/decoratedBackend/workspaceSettings.js +12 -26
  26. package/dist/decoratedBackend/workspaceSettings.js.map +1 -1
  27. package/dist/dummyBackend/index.js +347 -391
  28. package/dist/dummyBackend/index.js.map +1 -1
  29. package/dist/eventingBackend/index.js +42 -49
  30. package/dist/eventingBackend/index.js.map +1 -1
  31. package/dist/ldmFactories/builder.js +14 -16
  32. package/dist/ldmFactories/builder.js.map +1 -1
  33. package/dist/ldmFactories/catalog/attributeFactory.js +22 -32
  34. package/dist/ldmFactories/catalog/attributeFactory.js.map +1 -1
  35. package/dist/ldmFactories/catalog/dateDatasetFactory.js +25 -41
  36. package/dist/ldmFactories/catalog/dateDatasetFactory.js.map +1 -1
  37. package/dist/ldmFactories/catalog/factFactory.js +11 -19
  38. package/dist/ldmFactories/catalog/factFactory.js.map +1 -1
  39. package/dist/ldmFactories/catalog/groupFactory.js +14 -27
  40. package/dist/ldmFactories/catalog/groupFactory.js.map +1 -1
  41. package/dist/ldmFactories/catalog/measureFactory.js +15 -25
  42. package/dist/ldmFactories/catalog/measureFactory.js.map +1 -1
  43. package/dist/ldmFactories/dashboard/insightWidgetFactory.js +20 -27
  44. package/dist/ldmFactories/dashboard/insightWidgetFactory.js.map +1 -1
  45. package/dist/ldmFactories/dashboard/kpiWidgetFactory.js +24 -34
  46. package/dist/ldmFactories/dashboard/kpiWidgetFactory.js.map +1 -1
  47. package/dist/ldmFactories/dashboard/widgetFactory.js +20 -39
  48. package/dist/ldmFactories/dashboard/widgetFactory.js.map +1 -1
  49. package/dist/ldmFactories/metadata/attributeFactory.js +13 -21
  50. package/dist/ldmFactories/metadata/attributeFactory.js.map +1 -1
  51. package/dist/ldmFactories/metadata/dashboardFactory.js +7 -15
  52. package/dist/ldmFactories/metadata/dashboardFactory.js.map +1 -1
  53. package/dist/ldmFactories/metadata/dataSetFactory.js +7 -15
  54. package/dist/ldmFactories/metadata/dataSetFactory.js.map +1 -1
  55. package/dist/ldmFactories/metadata/displayFormFactory.js +13 -21
  56. package/dist/ldmFactories/metadata/displayFormFactory.js.map +1 -1
  57. package/dist/ldmFactories/metadata/factFactory.js +7 -15
  58. package/dist/ldmFactories/metadata/factFactory.js.map +1 -1
  59. package/dist/ldmFactories/metadata/factory.js +17 -23
  60. package/dist/ldmFactories/metadata/factory.js.map +1 -1
  61. package/dist/ldmFactories/metadata/measureFactory.js +13 -21
  62. package/dist/ldmFactories/metadata/measureFactory.js.map +1 -1
  63. package/dist/ldmFactories/metadata/variableFactory.js +7 -15
  64. package/dist/ldmFactories/metadata/variableFactory.js.map +1 -1
  65. package/dist/normalizingBackend/index.js +71 -96
  66. package/dist/normalizingBackend/index.js.map +1 -1
  67. package/dist/normalizingBackend/normalizer.d.ts.map +1 -1
  68. package/dist/normalizingBackend/normalizer.js +130 -138
  69. package/dist/normalizingBackend/normalizer.js.map +1 -1
  70. package/dist/toolkit/auth.js +47 -60
  71. package/dist/toolkit/auth.js.map +1 -1
  72. package/dist/toolkit/execution.js +40 -52
  73. package/dist/toolkit/execution.js.map +1 -1
  74. package/dist/toolkit/paging.js +77 -146
  75. package/dist/toolkit/paging.js.map +1 -1
  76. package/dist/toolkit/pluginUrlValidation.js +9 -9
  77. package/dist/toolkit/pluginUrlValidation.js.map +1 -1
  78. package/dist/workspaceSettingsBackend/index.js +23 -46
  79. package/dist/workspaceSettingsBackend/index.js.map +1 -1
  80. package/esm/cachingBackend/index.js +281 -358
  81. package/esm/cachingBackend/index.js.map +1 -1
  82. package/esm/convertors/fromBackend/afm/result.js +3 -3
  83. package/esm/convertors/fromBackend/afm/result.js.map +1 -1
  84. package/esm/customBackend/execution.js +72 -89
  85. package/esm/customBackend/execution.js.map +1 -1
  86. package/esm/customBackend/index.js +75 -112
  87. package/esm/customBackend/index.js.map +1 -1
  88. package/esm/customBackend/workspace.js +37 -39
  89. package/esm/customBackend/workspace.js.map +1 -1
  90. package/esm/decoratedBackend/attributes.js +21 -23
  91. package/esm/decoratedBackend/attributes.js.map +1 -1
  92. package/esm/decoratedBackend/catalog.js +36 -51
  93. package/esm/decoratedBackend/catalog.js.map +1 -1
  94. package/esm/decoratedBackend/dashboards.js +61 -63
  95. package/esm/decoratedBackend/dashboards.js.map +1 -1
  96. package/esm/decoratedBackend/elements.js +47 -73
  97. package/esm/decoratedBackend/elements.js.map +1 -1
  98. package/esm/decoratedBackend/execution.js +60 -81
  99. package/esm/decoratedBackend/execution.js.map +1 -1
  100. package/esm/decoratedBackend/index.js +88 -103
  101. package/esm/decoratedBackend/index.js.map +1 -1
  102. package/esm/decoratedBackend/securitySettings.js +7 -9
  103. package/esm/decoratedBackend/securitySettings.js.map +1 -1
  104. package/esm/decoratedBackend/workspaceSettings.js +12 -27
  105. package/esm/decoratedBackend/workspaceSettings.js.map +1 -1
  106. package/esm/dummyBackend/index.js +342 -387
  107. package/esm/dummyBackend/index.js.map +1 -1
  108. package/esm/eventingBackend/index.js +37 -45
  109. package/esm/eventingBackend/index.js.map +1 -1
  110. package/esm/ldmFactories/builder.js +14 -17
  111. package/esm/ldmFactories/builder.js.map +1 -1
  112. package/esm/ldmFactories/catalog/attributeFactory.js +15 -27
  113. package/esm/ldmFactories/catalog/attributeFactory.js.map +1 -1
  114. package/esm/ldmFactories/catalog/dateDatasetFactory.js +18 -37
  115. package/esm/ldmFactories/catalog/dateDatasetFactory.js.map +1 -1
  116. package/esm/ldmFactories/catalog/factFactory.js +5 -15
  117. package/esm/ldmFactories/catalog/factFactory.js.map +1 -1
  118. package/esm/ldmFactories/catalog/groupFactory.js +11 -27
  119. package/esm/ldmFactories/catalog/groupFactory.js.map +1 -1
  120. package/esm/ldmFactories/catalog/measureFactory.js +9 -21
  121. package/esm/ldmFactories/catalog/measureFactory.js.map +1 -1
  122. package/esm/ldmFactories/dashboard/insightWidgetFactory.js +16 -25
  123. package/esm/ldmFactories/dashboard/insightWidgetFactory.js.map +1 -1
  124. package/esm/ldmFactories/dashboard/kpiWidgetFactory.js +19 -31
  125. package/esm/ldmFactories/dashboard/kpiWidgetFactory.js.map +1 -1
  126. package/esm/ldmFactories/dashboard/widgetFactory.js +19 -39
  127. package/esm/ldmFactories/dashboard/widgetFactory.js.map +1 -1
  128. package/esm/ldmFactories/metadata/attributeFactory.js +9 -19
  129. package/esm/ldmFactories/metadata/attributeFactory.js.map +1 -1
  130. package/esm/ldmFactories/metadata/dashboardFactory.js +3 -13
  131. package/esm/ldmFactories/metadata/dashboardFactory.js.map +1 -1
  132. package/esm/ldmFactories/metadata/dataSetFactory.js +3 -13
  133. package/esm/ldmFactories/metadata/dataSetFactory.js.map +1 -1
  134. package/esm/ldmFactories/metadata/displayFormFactory.js +9 -19
  135. package/esm/ldmFactories/metadata/displayFormFactory.js.map +1 -1
  136. package/esm/ldmFactories/metadata/factFactory.js +3 -13
  137. package/esm/ldmFactories/metadata/factFactory.js.map +1 -1
  138. package/esm/ldmFactories/metadata/factory.js +16 -23
  139. package/esm/ldmFactories/metadata/factory.js.map +1 -1
  140. package/esm/ldmFactories/metadata/measureFactory.js +9 -19
  141. package/esm/ldmFactories/metadata/measureFactory.js.map +1 -1
  142. package/esm/ldmFactories/metadata/variableFactory.js +3 -13
  143. package/esm/ldmFactories/metadata/variableFactory.js.map +1 -1
  144. package/esm/normalizingBackend/index.js +64 -90
  145. package/esm/normalizingBackend/index.js.map +1 -1
  146. package/esm/normalizingBackend/normalizer.d.ts.map +1 -1
  147. package/esm/normalizingBackend/normalizer.js +125 -136
  148. package/esm/normalizingBackend/normalizer.js.map +1 -1
  149. package/esm/toolkit/auth.js +47 -63
  150. package/esm/toolkit/auth.js.map +1 -1
  151. package/esm/toolkit/execution.js +38 -53
  152. package/esm/toolkit/execution.js.map +1 -1
  153. package/esm/toolkit/paging.js +72 -144
  154. package/esm/toolkit/paging.js.map +1 -1
  155. package/esm/toolkit/pluginUrlValidation.js +8 -8
  156. package/esm/toolkit/pluginUrlValidation.js.map +1 -1
  157. package/esm/workspaceSettingsBackend/index.js +19 -43
  158. package/esm/workspaceSettingsBackend/index.js.map +1 -1
  159. package/package.json +7 -6
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AnonymousAuthProvider = exports.AnonymousUser = exports.NoopAuthProvider = exports.AuthProviderCallGuard = void 0;
4
- var tslib_1 = require("tslib");
5
4
  // (C) 2019-2021 GoodData Corporation
6
- var sdk_backend_spi_1 = require("@gooddata/sdk-backend-spi");
5
+ const sdk_backend_spi_1 = require("@gooddata/sdk-backend-spi");
7
6
  /**
8
7
  * This implementation of auth provider ensures, that the auth provider is called exactly once in the happy path
9
8
  * execution where provider successfully authenticates a principal.
@@ -17,78 +16,69 @@ var sdk_backend_spi_1 = require("@gooddata/sdk-backend-spi");
17
16
  *
18
17
  * @internal
19
18
  */
20
- var AuthProviderCallGuard = /** @class */ (function () {
21
- function AuthProviderCallGuard(realProvider) {
22
- var _this = this;
19
+ class AuthProviderCallGuard {
20
+ constructor(realProvider) {
23
21
  this.realProvider = realProvider;
24
- this.reset = function () {
25
- _this.principal = undefined;
22
+ this.reset = () => {
23
+ this.principal = undefined;
26
24
  };
27
25
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
28
- this.initializeClient = function (client) {
26
+ this.initializeClient = (client) => {
29
27
  var _a, _b;
30
- (_b = (_a = _this.realProvider).initializeClient) === null || _b === void 0 ? void 0 : _b.call(_a, client);
28
+ (_b = (_a = this.realProvider).initializeClient) === null || _b === void 0 ? void 0 : _b.call(_a, client);
31
29
  };
32
- this.onNotAuthenticated = function (context, error) {
30
+ this.onNotAuthenticated = (context, error) => {
33
31
  var _a, _b;
34
- (_b = (_a = _this.realProvider).onNotAuthenticated) === null || _b === void 0 ? void 0 : _b.call(_a, context, error);
32
+ (_b = (_a = this.realProvider).onNotAuthenticated) === null || _b === void 0 ? void 0 : _b.call(_a, context, error);
35
33
  };
36
- this.authenticate = function (context) {
37
- if (_this.principal) {
38
- return Promise.resolve(_this.principal);
34
+ this.authenticate = (context) => {
35
+ if (this.principal) {
36
+ return Promise.resolve(this.principal);
39
37
  }
40
- if (_this.inflightRequest) {
41
- return _this.inflightRequest;
38
+ if (this.inflightRequest) {
39
+ return this.inflightRequest;
42
40
  }
43
- _this.inflightRequest = _this.realProvider
41
+ this.inflightRequest = this.realProvider
44
42
  .authenticate(context)
45
- .then(function (res) {
46
- _this.principal = res;
47
- _this.inflightRequest = undefined;
43
+ .then((res) => {
44
+ this.principal = res;
45
+ this.inflightRequest = undefined;
48
46
  return res;
49
47
  })
50
- .catch(function (err) {
51
- _this.inflightRequest = undefined;
48
+ .catch((err) => {
49
+ this.inflightRequest = undefined;
52
50
  throw err;
53
51
  });
54
- return _this.inflightRequest;
52
+ return this.inflightRequest;
55
53
  };
56
54
  }
57
- AuthProviderCallGuard.prototype.getCurrentPrincipal = function (context) {
55
+ getCurrentPrincipal(context) {
58
56
  return this.realProvider.getCurrentPrincipal(context);
59
- };
60
- AuthProviderCallGuard.prototype.deauthenticate = function (context) {
61
- return tslib_1.__awaiter(this, void 0, void 0, function () {
62
- return tslib_1.__generator(this, function (_a) {
63
- return [2 /*return*/, this.realProvider.deauthenticate(context)];
64
- });
65
- });
66
- };
67
- return AuthProviderCallGuard;
68
- }());
57
+ }
58
+ async deauthenticate(context) {
59
+ return this.realProvider.deauthenticate(context);
60
+ }
61
+ }
69
62
  exports.AuthProviderCallGuard = AuthProviderCallGuard;
70
63
  /**
71
64
  * This implementation serves as a Null object for IAuthProviderCallGuard.
72
65
  *
73
66
  * @internal
74
67
  */
75
- var NoopAuthProvider = /** @class */ (function () {
76
- function NoopAuthProvider() {
77
- }
78
- NoopAuthProvider.prototype.authenticate = function (_context) {
68
+ class NoopAuthProvider {
69
+ authenticate(_context) {
79
70
  throw new sdk_backend_spi_1.NotSupported("NoopAuthProvider does not support authenticate");
80
- };
81
- NoopAuthProvider.prototype.getCurrentPrincipal = function (_context) {
71
+ }
72
+ getCurrentPrincipal(_context) {
82
73
  throw new sdk_backend_spi_1.NotSupported("NoopAuthProvider does not support getCurrentPrincipal");
83
- };
84
- NoopAuthProvider.prototype.deauthenticate = function (_context) {
74
+ }
75
+ deauthenticate(_context) {
85
76
  throw new sdk_backend_spi_1.NotSupported("NoopAuthProvider does not support deauthenticate");
86
- };
87
- NoopAuthProvider.prototype.reset = function () {
77
+ }
78
+ reset() {
88
79
  throw new sdk_backend_spi_1.NotSupported("NoopAuthProvider does not support reset");
89
- };
90
- return NoopAuthProvider;
91
- }());
80
+ }
81
+ }
92
82
  exports.NoopAuthProvider = NoopAuthProvider;
93
83
  exports.AnonymousUser = {
94
84
  userId: "anonymous",
@@ -98,22 +88,19 @@ exports.AnonymousUser = {
98
88
  *
99
89
  * @public
100
90
  */
101
- var AnonymousAuthProvider = /** @class */ (function () {
102
- function AnonymousAuthProvider() {
103
- }
104
- AnonymousAuthProvider.prototype.authenticate = function (_context) {
91
+ class AnonymousAuthProvider {
92
+ authenticate(_context) {
105
93
  return Promise.resolve(exports.AnonymousUser);
106
- };
107
- AnonymousAuthProvider.prototype.getCurrentPrincipal = function (_context) {
94
+ }
95
+ getCurrentPrincipal(_context) {
108
96
  return Promise.resolve(exports.AnonymousUser);
109
- };
110
- AnonymousAuthProvider.prototype.deauthenticate = function (_context) {
97
+ }
98
+ deauthenticate(_context) {
111
99
  return Promise.resolve();
112
- };
113
- AnonymousAuthProvider.prototype.reset = function () {
100
+ }
101
+ reset() {
114
102
  return;
115
- };
116
- return AnonymousAuthProvider;
117
- }());
103
+ }
104
+ }
118
105
  exports.AnonymousAuthProvider = AnonymousAuthProvider;
119
106
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/toolkit/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/toolkit/auth.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,+DAOmC;AA6CnC;;;;;;;;;;;;GAYG;AACH,MAAa,qBAAqB;IAI9B,YAA6B,YAAqC;QAArC,iBAAY,GAAZ,YAAY,CAAyB;QAE3D,UAAK,GAAG,GAAS,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC,CAAC;QAEF,6EAA6E;QACtE,qBAAgB,GAAG,CAAC,MAAW,EAAQ,EAAE;;YAC5C,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,gBAAgB,mDAAG,MAAM,EAAE;QACjD,CAAC,CAAC;QAEK,uBAAkB,GAAG,CAAC,OAA+B,EAAE,KAAuB,EAAQ,EAAE;;YAC3F,MAAA,MAAA,IAAI,CAAC,YAAY,EAAC,kBAAkB,mDAAG,OAAO,EAAE,KAAK,EAAE;QAC3D,CAAC,CAAC;QAEK,iBAAY,GAAG,CAAC,OAA+B,EAAoC,EAAE;YACxF,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC1C;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,OAAO,IAAI,CAAC,eAAe,CAAC;aAC/B;YAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY;iBACnC,YAAY,CAAC,OAAO,CAAC;iBACrB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACV,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;gBACrB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;gBAEjC,OAAO,GAAG,CAAC;YACf,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;gBAEjC,MAAM,GAAG,CAAC;YACd,CAAC,CAAC,CAAC;YAEP,OAAO,IAAI,CAAC,eAAe,CAAC;QAChC,CAAC,CAAC;IAvCmE,CAAC;IAyC/D,mBAAmB,CAAC,OAA+B;QACtD,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,OAA+B;QACvD,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;CACJ;AApDD,sDAoDC;AAED;;;;GAIG;AACH,MAAa,gBAAgB;IAClB,YAAY,CAAC,QAAgC;QAChD,MAAM,IAAI,8BAAY,CAAC,gDAAgD,CAAC,CAAC;IAC7E,CAAC;IAEM,mBAAmB,CAAC,QAAgC;QACvD,MAAM,IAAI,8BAAY,CAAC,uDAAuD,CAAC,CAAC;IACpF,CAAC;IAEM,cAAc,CAAC,QAAgC;QAClD,MAAM,IAAI,8BAAY,CAAC,kDAAkD,CAAC,CAAC;IAC/E,CAAC;IAEM,KAAK;QACR,MAAM,IAAI,8BAAY,CAAC,yCAAyC,CAAC,CAAC;IACtE,CAAC;CACJ;AAhBD,4CAgBC;AAEY,QAAA,aAAa,GAA4B;IAClD,MAAM,EAAE,WAAW;CACtB,CAAC;AAEF;;;;GAIG;AACH,MAAa,qBAAqB;IACvB,YAAY,CAAC,QAAgC;QAChD,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAa,CAAC,CAAC;IAC1C,CAAC;IAEM,mBAAmB,CAAC,QAAgC;QACvD,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAa,CAAC,CAAC;IAC1C,CAAC;IAEM,cAAc,CAAC,QAAgC;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,KAAK;QACR,OAAO;IACX,CAAC;CACJ;AAhBD,sDAgBC"}
@@ -2,9 +2,8 @@
2
2
  // (C) 2019-2020 GoodData Corporation
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.ExecutionFactoryUpgradingToExecByReference = exports.ExecutionFactoryWithFixedFilters = exports.AbstractExecutionFactory = void 0;
5
- var tslib_1 = require("tslib");
6
- var sdk_model_1 = require("@gooddata/sdk-model");
7
- var execution_1 = require("../decoratedBackend/execution");
5
+ const sdk_model_1 = require("@gooddata/sdk-model");
6
+ const execution_1 = require("../decoratedBackend/execution");
8
7
  /**
9
8
  * Abstract base class that can be extended to implement concrete execution factories for different
10
9
  * backend implementations.
@@ -18,27 +17,26 @@ var execution_1 = require("../decoratedBackend/execution");
18
17
  *
19
18
  * @internal
20
19
  */
21
- var AbstractExecutionFactory = /** @class */ (function () {
22
- function AbstractExecutionFactory(workspace) {
20
+ class AbstractExecutionFactory {
21
+ constructor(workspace) {
23
22
  this.workspace = workspace;
24
23
  }
25
- AbstractExecutionFactory.prototype.forItems = function (items, filters) {
26
- var def = sdk_model_1.defWithDimensions(sdk_model_1.newDefForItems(this.workspace, items, filters), sdk_model_1.defaultDimensionsGenerator);
24
+ forItems(items, filters) {
25
+ const def = sdk_model_1.defWithDimensions(sdk_model_1.newDefForItems(this.workspace, items, filters), sdk_model_1.defaultDimensionsGenerator);
27
26
  return this.forDefinition(def);
28
- };
29
- AbstractExecutionFactory.prototype.forBuckets = function (buckets, filters) {
30
- var def = sdk_model_1.defWithDimensions(sdk_model_1.newDefForBuckets(this.workspace, buckets, filters), sdk_model_1.defaultDimensionsGenerator);
27
+ }
28
+ forBuckets(buckets, filters) {
29
+ const def = sdk_model_1.defWithDimensions(sdk_model_1.newDefForBuckets(this.workspace, buckets, filters), sdk_model_1.defaultDimensionsGenerator);
31
30
  return this.forDefinition(def);
32
- };
33
- AbstractExecutionFactory.prototype.forInsight = function (insight, filters) {
34
- var def = sdk_model_1.defWithDimensions(sdk_model_1.newDefForInsight(this.workspace, insight, filters), sdk_model_1.defaultDimensionsGenerator);
31
+ }
32
+ forInsight(insight, filters) {
33
+ const def = sdk_model_1.defWithDimensions(sdk_model_1.newDefForInsight(this.workspace, insight, filters), sdk_model_1.defaultDimensionsGenerator);
35
34
  return this.forDefinition(def);
36
- };
37
- AbstractExecutionFactory.prototype.forInsightByRef = function (insight, filters) {
35
+ }
36
+ forInsightByRef(insight, filters) {
38
37
  return this.forInsight(insight, filters);
39
- };
40
- return AbstractExecutionFactory;
41
- }());
38
+ }
39
+ }
42
40
  exports.AbstractExecutionFactory = AbstractExecutionFactory;
43
41
  /**
44
42
  * This implementation of execution factory allows transparent injection of fixed set of filters to all
@@ -49,32 +47,24 @@ exports.AbstractExecutionFactory = AbstractExecutionFactory;
49
47
  *
50
48
  * @internal
51
49
  */
52
- var ExecutionFactoryWithFixedFilters = /** @class */ (function (_super) {
53
- tslib_1.__extends(ExecutionFactoryWithFixedFilters, _super);
54
- function ExecutionFactoryWithFixedFilters(decorated, filters) {
55
- if (filters === void 0) { filters = []; }
56
- var _this = _super.call(this, decorated) || this;
57
- _this.filters = filters;
58
- return _this;
50
+ class ExecutionFactoryWithFixedFilters extends execution_1.DecoratedExecutionFactory {
51
+ constructor(decorated, filters = []) {
52
+ super(decorated);
53
+ this.filters = filters;
54
+ }
55
+ forItems(items, filters = []) {
56
+ return super.forItems(items, this.filters.concat(filters));
59
57
  }
60
- ExecutionFactoryWithFixedFilters.prototype.forItems = function (items, filters) {
61
- if (filters === void 0) { filters = []; }
62
- return _super.prototype.forItems.call(this, items, this.filters.concat(filters));
63
- };
64
- ExecutionFactoryWithFixedFilters.prototype.forBuckets = function (buckets, filters) {
65
- if (filters === void 0) { filters = []; }
66
- return _super.prototype.forBuckets.call(this, buckets, this.filters.concat(filters));
67
- };
68
- ExecutionFactoryWithFixedFilters.prototype.forInsight = function (insight, filters) {
69
- if (filters === void 0) { filters = []; }
70
- return _super.prototype.forInsight.call(this, insight, this.filters.concat(filters));
71
- };
72
- ExecutionFactoryWithFixedFilters.prototype.forInsightByRef = function (insight, filters) {
73
- if (filters === void 0) { filters = []; }
74
- return _super.prototype.forInsightByRef.call(this, insight, this.filters.concat(filters));
75
- };
76
- return ExecutionFactoryWithFixedFilters;
77
- }(execution_1.DecoratedExecutionFactory));
58
+ forBuckets(buckets, filters = []) {
59
+ return super.forBuckets(buckets, this.filters.concat(filters));
60
+ }
61
+ forInsight(insight, filters = []) {
62
+ return super.forInsight(insight, this.filters.concat(filters));
63
+ }
64
+ forInsightByRef(insight, filters = []) {
65
+ return super.forInsightByRef(insight, this.filters.concat(filters));
66
+ }
67
+ }
78
68
  exports.ExecutionFactoryWithFixedFilters = ExecutionFactoryWithFixedFilters;
79
69
  /**
80
70
  * This implementation of execution factory will transparently upgrade any `forInsight` execution
@@ -83,18 +73,16 @@ exports.ExecutionFactoryWithFixedFilters = ExecutionFactoryWithFixedFilters;
83
73
  *
84
74
  * @internal
85
75
  */
86
- var ExecutionFactoryUpgradingToExecByReference = /** @class */ (function (_super) {
87
- tslib_1.__extends(ExecutionFactoryUpgradingToExecByReference, _super);
88
- function ExecutionFactoryUpgradingToExecByReference(decorated) {
89
- return _super.call(this, decorated) || this;
76
+ class ExecutionFactoryUpgradingToExecByReference extends execution_1.DecoratedExecutionFactory {
77
+ constructor(decorated) {
78
+ super(decorated);
90
79
  }
91
- ExecutionFactoryUpgradingToExecByReference.prototype.forInsight = function (insight, filters) {
80
+ forInsight(insight, filters) {
92
81
  if (sdk_model_1.isInsight(insight)) {
93
82
  return this.forInsightByRef(insight, filters);
94
83
  }
95
- return _super.prototype.forInsight.call(this, insight, filters);
96
- };
97
- return ExecutionFactoryUpgradingToExecByReference;
98
- }(execution_1.DecoratedExecutionFactory));
84
+ return super.forInsight(insight, filters);
85
+ }
86
+ }
99
87
  exports.ExecutionFactoryUpgradingToExecByReference = ExecutionFactoryUpgradingToExecByReference;
100
88
  //# sourceMappingURL=execution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/toolkit/execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/toolkit/execution.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;AAErC,mDAa6B;AAG7B,6DAA0E;AAE1E;;;;;;;;;;;;GAYG;AACH,MAAsB,wBAAwB;IAC1C,YAA+B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAI7C,QAAQ,CAAC,KAA4B,EAAE,OAA2B;QACrE,MAAM,GAAG,GAAG,6BAAiB,CACzB,0BAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EAC9C,sCAA0B,CAC7B,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,UAAU,CAAC,OAAkB,EAAE,OAA2B;QAC7D,MAAM,GAAG,GAAG,6BAAiB,CACzB,4BAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAClD,sCAA0B,CAC7B,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,UAAU,CAAC,OAA2B,EAAE,OAA2B;QACtE,MAAM,GAAG,GAAG,6BAAiB,CACzB,4BAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAClD,sCAA0B,CAC7B,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAEM,eAAe,CAAC,OAAiB,EAAE,OAA2B;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACJ;AAnCD,4DAmCC;AAED;;;;;;;;GAQG;AACH,MAAa,gCAAiC,SAAQ,qCAAyB;IAC3E,YAAY,SAA4B,EAAmB,UAA6B,EAAE;QACtF,KAAK,CAAC,SAAS,CAAC,CAAC;QADsC,YAAO,GAAP,OAAO,CAAwB;IAE1F,CAAC;IAEM,QAAQ,CAAC,KAA4B,EAAE,UAA6B,EAAE;QACzE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,UAAU,CAAC,OAAkB,EAAE,UAA6B,EAAE;QACjE,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAEM,UAAU,CAAC,OAA2B,EAAE,UAA6B,EAAE;QAC1E,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAEM,eAAe,CAAC,OAAiB,EAAE,UAA6B,EAAE;QACrE,OAAO,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;CACJ;AApBD,4EAoBC;AAED;;;;;;GAMG;AACH,MAAa,0CAA2C,SAAQ,qCAAyB;IACrF,YAAY,SAA4B;QACpC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAEM,UAAU,CAAC,OAA2B,EAAE,OAA2B;QACtE,IAAI,qBAAS,CAAC,OAAO,CAAC,EAAE;YACpB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACjD;QAED,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACJ;AAZD,gGAYC"}
@@ -1,24 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServerPaging = exports.InMemoryPaging = void 0;
4
- var tslib_1 = require("tslib");
5
- var ts_invariant_1 = tslib_1.__importDefault(require("ts-invariant"));
6
- var range_1 = tslib_1.__importDefault(require("lodash/range"));
7
- var flatMap_1 = tslib_1.__importDefault(require("lodash/flatMap"));
8
- var isNil_1 = tslib_1.__importDefault(require("lodash/isNil"));
4
+ const tslib_1 = require("tslib");
5
+ const ts_invariant_1 = tslib_1.__importDefault(require("ts-invariant"));
6
+ const range_1 = tslib_1.__importDefault(require("lodash/range"));
7
+ const flatMap_1 = tslib_1.__importDefault(require("lodash/flatMap"));
8
+ const isNil_1 = tslib_1.__importDefault(require("lodash/isNil"));
9
9
  /**
10
10
  * This implementation of {@link @gooddata/sdk-backend-spi#IPagedResource} pages over a list of items
11
11
  * provided at construction time. The paging is done using pre-configured page limit and starts at particular offset.
12
12
  *
13
13
  * @internal
14
14
  */
15
- var InMemoryPaging = /** @class */ (function () {
16
- function InMemoryPaging(allItems, limit, offset) {
17
- if (limit === void 0) { limit = 50; }
18
- if (offset === void 0) { offset = 0; }
15
+ class InMemoryPaging {
16
+ constructor(allItems, limit = 50, offset = 0) {
19
17
  this.allItems = allItems;
20
- ts_invariant_1.default(offset >= 0, "paging offset must be non-negative, got: " + offset);
21
- ts_invariant_1.default(limit > 0, "limit must be a positive number, got: " + limit);
18
+ ts_invariant_1.default(offset >= 0, `paging offset must be non-negative, got: ${offset}`);
19
+ ts_invariant_1.default(limit > 0, `limit must be a positive number, got: ${limit}`);
22
20
  // this will naturally return empty items if at the end of data; limit will always be positive
23
21
  this.items = allItems.slice(offset, offset + limit);
24
22
  // offset is at most at the end of all available elements
@@ -27,152 +25,85 @@ var InMemoryPaging = /** @class */ (function () {
27
25
  this.limit = limit;
28
26
  this.totalCount = allItems.length;
29
27
  }
30
- InMemoryPaging.prototype.next = function () {
31
- return tslib_1.__awaiter(this, void 0, void 0, function () {
32
- return tslib_1.__generator(this, function (_a) {
33
- if (this.items.length === 0) {
34
- return [2 /*return*/, this];
35
- }
36
- return [2 /*return*/, new InMemoryPaging(this.allItems, this.limit, this.offset + this.items.length)];
37
- });
38
- });
39
- };
40
- InMemoryPaging.prototype.goTo = function (pageIndex) {
41
- return tslib_1.__awaiter(this, void 0, void 0, function () {
42
- return tslib_1.__generator(this, function (_a) {
43
- if (this.items.length === 0) {
44
- return [2 /*return*/, this];
45
- }
46
- return [2 /*return*/, new InMemoryPaging(this.allItems, this.limit, pageIndex * this.items.length)];
47
- });
48
- });
49
- };
50
- InMemoryPaging.prototype.all = function () {
51
- return tslib_1.__awaiter(this, void 0, void 0, function () {
52
- return tslib_1.__generator(this, function (_a) {
53
- return [2 /*return*/, tslib_1.__spreadArrays(this.allItems)];
54
- });
55
- });
56
- };
57
- InMemoryPaging.prototype.allSorted = function (compareFn) {
58
- return tslib_1.__awaiter(this, void 0, void 0, function () {
59
- return tslib_1.__generator(this, function (_a) {
60
- return [2 /*return*/, tslib_1.__spreadArrays(this.allItems).sort(compareFn)];
61
- });
62
- });
63
- };
64
- return InMemoryPaging;
65
- }());
28
+ async next() {
29
+ if (this.items.length === 0) {
30
+ return this;
31
+ }
32
+ return new InMemoryPaging(this.allItems, this.limit, this.offset + this.items.length);
33
+ }
34
+ async goTo(pageIndex) {
35
+ if (this.items.length === 0) {
36
+ return this;
37
+ }
38
+ return new InMemoryPaging(this.allItems, this.limit, pageIndex * this.items.length);
39
+ }
40
+ async all() {
41
+ return [...this.allItems];
42
+ }
43
+ async allSorted(compareFn) {
44
+ return [...this.allItems].sort(compareFn);
45
+ }
46
+ }
66
47
  exports.InMemoryPaging = InMemoryPaging;
67
48
  /**
68
49
  * Common implementation of the {@link @gooddata/sdk-backend-spi#IPagedResource} for the server-side paging.
69
50
  *
70
51
  * @internal
71
52
  */
72
- var ServerPaging = /** @class */ (function () {
73
- function ServerPaging(getData, limit, offset, totalCount, items) {
74
- var _this = this;
75
- if (limit === void 0) { limit = 50; }
76
- if (offset === void 0) { offset = 0; }
53
+ class ServerPaging {
54
+ constructor(getData, limit = 50, offset = 0, totalCount, items) {
77
55
  this.getData = getData;
78
56
  this.limit = limit;
79
57
  this.offset = offset;
80
58
  this.totalCount = totalCount;
81
59
  this.items = items;
82
- this.next = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
83
- var pageData;
84
- return tslib_1.__generator(this, function (_a) {
85
- switch (_a.label) {
86
- case 0:
87
- // No items = we are on the last page.
88
- if (this.items.length === 0) {
89
- return [2 /*return*/, this];
90
- }
91
- // We are on the last page with the items - return empty result for the next page immediately
92
- if (this.items.length < this.limit || this.offset + this.items.length === this.totalCount) {
93
- return [2 /*return*/, new ServerPaging(this.getData, this.limit, this.offset + this.limit, this.totalCount, [])];
94
- }
95
- return [4 /*yield*/, this.getData({ limit: this.limit, offset: this.offset + this.limit })];
96
- case 1:
97
- pageData = _a.sent();
98
- return [2 /*return*/, new ServerPaging(this.getData, this.limit, this.offset + this.limit, pageData.totalCount, pageData.items)];
99
- }
100
- });
101
- }); };
102
- this.goTo = function (pageIndex) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
103
- var offset, pageData;
104
- return tslib_1.__generator(this, function (_a) {
105
- switch (_a.label) {
106
- case 0:
107
- offset = pageIndex * this.limit;
108
- return [4 /*yield*/, this.getData({ limit: this.limit, offset: offset })];
109
- case 1:
110
- pageData = _a.sent();
111
- return [2 /*return*/, new ServerPaging(this.getData, this.limit, offset, pageData.totalCount, pageData.items)];
112
- }
113
- });
114
- }); };
115
- this.all = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
116
- var results, maxRequests, allPagesToLoad, pagesToLoad, loadedPages;
117
- var _this = this;
118
- return tslib_1.__generator(this, function (_a) {
119
- switch (_a.label) {
120
- case 0:
121
- results = [];
122
- maxRequests = 6;
123
- allPagesToLoad = range_1.default(0, this.totalCount / this.limit);
124
- // if the paged resource is already at the 0 offset, use it directly to save a duplicate request
125
- if (this.offset === 0) {
126
- results.push.apply(results, this.items);
127
- allPagesToLoad.shift();
128
- }
129
- _a.label = 1;
130
- case 1:
131
- if (!(allPagesToLoad.length > 0)) return [3 /*break*/, 3];
132
- pagesToLoad = allPagesToLoad.slice(0, maxRequests);
133
- allPagesToLoad.splice(0, maxRequests);
134
- return [4 /*yield*/, Promise.all(pagesToLoad.map(function (page) { return _this.goTo(page); }))];
135
- case 2:
136
- loadedPages = _a.sent();
137
- results.push.apply(results, flatMap_1.default(loadedPages, function (page) { return page.items; }));
138
- return [3 /*break*/, 1];
139
- case 3: return [2 /*return*/, results];
140
- }
141
- });
142
- }); };
143
- this.allSorted = function (compareFn) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
144
- var all;
145
- return tslib_1.__generator(this, function (_a) {
146
- switch (_a.label) {
147
- case 0: return [4 /*yield*/, this.all()];
148
- case 1:
149
- all = _a.sent();
150
- return [2 /*return*/, all.sort(compareFn)];
151
- }
152
- });
153
- }); };
60
+ this.next = async () => {
61
+ // No items = we are on the last page.
62
+ if (this.items.length === 0) {
63
+ return this;
64
+ }
65
+ // We are on the last page with the items - return empty result for the next page immediately
66
+ if (this.items.length < this.limit || this.offset + this.items.length === this.totalCount) {
67
+ return new ServerPaging(this.getData, this.limit, this.offset + this.limit, this.totalCount, []);
68
+ }
69
+ const pageData = await this.getData({ limit: this.limit, offset: this.offset + this.limit });
70
+ return new ServerPaging(this.getData, this.limit, this.offset + this.limit, pageData.totalCount, pageData.items);
71
+ };
72
+ this.goTo = async (pageIndex) => {
73
+ const offset = pageIndex * this.limit;
74
+ const pageData = await this.getData({ limit: this.limit, offset });
75
+ return new ServerPaging(this.getData, this.limit, offset, pageData.totalCount, pageData.items);
76
+ };
77
+ this.all = async () => {
78
+ const results = [];
79
+ const maxRequests = 6;
80
+ const allPagesToLoad = range_1.default(0, this.totalCount / this.limit);
81
+ // if the paged resource is already at the 0 offset, use it directly to save a duplicate request
82
+ if (this.offset === 0) {
83
+ results.push(...this.items);
84
+ allPagesToLoad.shift();
85
+ }
86
+ while (allPagesToLoad.length > 0) {
87
+ const pagesToLoad = allPagesToLoad.slice(0, maxRequests);
88
+ allPagesToLoad.splice(0, maxRequests);
89
+ const loadedPages = await Promise.all(pagesToLoad.map((page) => this.goTo(page)));
90
+ results.push(...flatMap_1.default(loadedPages, (page) => page.items));
91
+ }
92
+ return results;
93
+ };
94
+ this.allSorted = async (compareFn) => {
95
+ const all = await this.all();
96
+ return all.sort(compareFn);
97
+ };
98
+ }
99
+ static async for(getData, limit = 50, offset = 0) {
100
+ ts_invariant_1.default(offset >= 0, `paging offset must be non-negative, got: ${offset}`);
101
+ ts_invariant_1.default(limit > 0, `limit must be a positive number, got: ${limit}`);
102
+ const { totalCount, items } = await getData({ limit, offset });
103
+ // must use isNil, totalCount: 0 is a valid case (e.g. when searching for a nonsensical string)
104
+ ts_invariant_1.default(!isNil_1.default(totalCount), `total count must be specified, got: ${totalCount}`);
105
+ return new ServerPaging(getData, limit, offset, totalCount, items);
154
106
  }
155
- ServerPaging.for = function (getData, limit, offset) {
156
- if (limit === void 0) { limit = 50; }
157
- if (offset === void 0) { offset = 0; }
158
- return tslib_1.__awaiter(this, void 0, void 0, function () {
159
- var _a, totalCount, items;
160
- return tslib_1.__generator(this, function (_b) {
161
- switch (_b.label) {
162
- case 0:
163
- ts_invariant_1.default(offset >= 0, "paging offset must be non-negative, got: " + offset);
164
- ts_invariant_1.default(limit > 0, "limit must be a positive number, got: " + limit);
165
- return [4 /*yield*/, getData({ limit: limit, offset: offset })];
166
- case 1:
167
- _a = _b.sent(), totalCount = _a.totalCount, items = _a.items;
168
- // must use isNil, totalCount: 0 is a valid case (e.g. when searching for a nonsensical string)
169
- ts_invariant_1.default(!isNil_1.default(totalCount), "total count must be specified, got: " + totalCount);
170
- return [2 /*return*/, new ServerPaging(getData, limit, offset, totalCount, items)];
171
- }
172
- });
173
- });
174
- };
175
- return ServerPaging;
176
- }());
107
+ }
177
108
  exports.ServerPaging = ServerPaging;
178
109
  //# sourceMappingURL=paging.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paging.js","sourceRoot":"","sources":["../../src/toolkit/paging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paging.js","sourceRoot":"","sources":["../../src/toolkit/paging.ts"],"names":[],"mappings":"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"}