@intuitionrobotics/thunderstorm 0.41.69 → 0.41.70

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 (167) hide show
  1. package/app-backend/api/v1/utils/version/_assert.js +1 -1
  2. package/app-backend/api/v1/utils/version/_assert.js.map +1 -1
  3. package/app-backend/api/v1/utils/version/assert.js +13 -58
  4. package/app-backend/api/v1/utils/version/assert.js.map +1 -1
  5. package/app-backend/core/BaseStorm.js +34 -87
  6. package/app-backend/core/BaseStorm.js.map +1 -1
  7. package/app-backend/core/Storm.js +42 -112
  8. package/app-backend/core/Storm.js.map +1 -1
  9. package/app-backend/exceptions.js +11 -27
  10. package/app-backend/exceptions.js.map +1 -1
  11. package/app-backend/modules/CleanupScheduler.js +24 -92
  12. package/app-backend/modules/CleanupScheduler.js.map +1 -1
  13. package/app-backend/modules/FirestoreBackupScheduler.js +47 -138
  14. package/app-backend/modules/FirestoreBackupScheduler.js.map +1 -1
  15. package/app-backend/modules/ForceUpgrade.js +31 -82
  16. package/app-backend/modules/ForceUpgrade.js.map +1 -1
  17. package/app-backend/modules/http/AxiosHttpModule.js +116 -184
  18. package/app-backend/modules/http/AxiosHttpModule.js.map +1 -1
  19. package/app-backend/modules/proxy/RemoteProxy.js +40 -90
  20. package/app-backend/modules/proxy/RemoteProxy.js.map +1 -1
  21. package/app-backend/modules/proxy/RemoteProxyCaller.js +49 -122
  22. package/app-backend/modules/proxy/RemoteProxyCaller.js.map +1 -1
  23. package/app-backend/modules/server/HttpServer.js +153 -216
  24. package/app-backend/modules/server/HttpServer.js.map +1 -1
  25. package/app-backend/modules/server/server-api.js +236 -361
  26. package/app-backend/modules/server/server-api.js.map +1 -1
  27. package/app-backend/modules/server/server-errors.js +51 -91
  28. package/app-backend/modules/server/server-errors.js.map +1 -1
  29. package/app-backend/utils/LogClient_File.js +23 -42
  30. package/app-backend/utils/LogClient_File.js.map +1 -1
  31. package/app-backend/utils/file.js +7 -50
  32. package/app-backend/utils/file.js.map +1 -1
  33. package/app-backend/utils/promisify-request.js +13 -43
  34. package/app-backend/utils/promisify-request.js.map +1 -1
  35. package/app-backend/utils/to-be-removed.js +7 -8
  36. package/app-backend/utils/to-be-removed.js.map +1 -1
  37. package/app-backend/utils/types.js +1 -1
  38. package/app-backend/utils/types.js.map +1 -1
  39. package/app-frontend/components/ActionButton.js +5 -5
  40. package/app-frontend/components/ActionButton.js.map +1 -1
  41. package/app-frontend/components/DropDown.js +91 -119
  42. package/app-frontend/components/DropDown.js.map +1 -1
  43. package/app-frontend/components/FilterInput.js +31 -48
  44. package/app-frontend/components/FilterInput.js.map +1 -1
  45. package/app-frontend/components/GenericSelect.js +30 -59
  46. package/app-frontend/components/GenericSelect.js.map +1 -1
  47. package/app-frontend/components/GenericTabs.js +5 -23
  48. package/app-frontend/components/GenericTabs.js.map +1 -1
  49. package/app-frontend/components/Overlay.js +15 -34
  50. package/app-frontend/components/Overlay.js.map +1 -1
  51. package/app-frontend/components/TS_Input.js +43 -60
  52. package/app-frontend/components/TS_Input.js.map +1 -1
  53. package/app-frontend/components/TS_Table.js +31 -48
  54. package/app-frontend/components/TS_Table.js.map +1 -1
  55. package/app-frontend/components/TS_TextArea.js +21 -48
  56. package/app-frontend/components/TS_TextArea.js.map +1 -1
  57. package/app-frontend/components/Tabs.js +16 -33
  58. package/app-frontend/components/Tabs.js.map +1 -1
  59. package/app-frontend/components/adapter/Adapter.js +103 -154
  60. package/app-frontend/components/adapter/Adapter.js.map +1 -1
  61. package/app-frontend/components/adapter/BaseRenderer.js +9 -32
  62. package/app-frontend/components/adapter/BaseRenderer.js.map +1 -1
  63. package/app-frontend/components/checkbox/TS_Checkbox.js +12 -29
  64. package/app-frontend/components/checkbox/TS_Checkbox.js.map +1 -1
  65. package/app-frontend/components/checkbox/TS_CheckboxField.js +16 -34
  66. package/app-frontend/components/checkbox/TS_CheckboxField.js.map +1 -1
  67. package/app-frontend/components/form/Form.js +21 -39
  68. package/app-frontend/components/form/Form.js.map +1 -1
  69. package/app-frontend/components/playground/Example_NewProps.js +25 -53
  70. package/app-frontend/components/playground/Example_NewProps.js.map +1 -1
  71. package/app-frontend/components/playground/Playground.js +21 -49
  72. package/app-frontend/components/playground/Playground.js.map +1 -1
  73. package/app-frontend/components/tree/MenuComponent.js +11 -27
  74. package/app-frontend/components/tree/MenuComponent.js.map +1 -1
  75. package/app-frontend/components/tree/MultiTypeAdaptor.js +16 -32
  76. package/app-frontend/components/tree/MultiTypeAdaptor.js.map +1 -1
  77. package/app-frontend/components/tree/SimpleTreeNodeRenderer.js +18 -52
  78. package/app-frontend/components/tree/SimpleTreeNodeRenderer.js.map +1 -1
  79. package/app-frontend/components/tree/Tree.js +142 -178
  80. package/app-frontend/components/tree/Tree.js.map +1 -1
  81. package/app-frontend/components/treeicons.js +5 -5
  82. package/app-frontend/components/treeicons.js.map +1 -1
  83. package/app-frontend/core/AbstractThunder.js +27 -43
  84. package/app-frontend/core/AbstractThunder.js.map +1 -1
  85. package/app-frontend/core/AppPage.js +16 -32
  86. package/app-frontend/core/AppPage.js.map +1 -1
  87. package/app-frontend/core/AppWrapper.js +9 -10
  88. package/app-frontend/core/AppWrapper.js.map +1 -1
  89. package/app-frontend/core/BaseComponent.js +62 -106
  90. package/app-frontend/core/BaseComponent.js.map +1 -1
  91. package/app-frontend/core/SimpleScriptInjector.js +12 -31
  92. package/app-frontend/core/SimpleScriptInjector.js.map +1 -1
  93. package/app-frontend/core/Thunder.js +32 -48
  94. package/app-frontend/core/Thunder.js.map +1 -1
  95. package/app-frontend/core/thunder-dispatcher.js +18 -67
  96. package/app-frontend/core/thunder-dispatcher.js.map +1 -1
  97. package/app-frontend/modules/ConnectivityModule.js +16 -32
  98. package/app-frontend/modules/ConnectivityModule.js.map +1 -1
  99. package/app-frontend/modules/ForceUpgrade.js +17 -33
  100. package/app-frontend/modules/ForceUpgrade.js.map +1 -1
  101. package/app-frontend/modules/HistoryModule.js +51 -79
  102. package/app-frontend/modules/HistoryModule.js.map +1 -1
  103. package/app-frontend/modules/ResourcesModule.js +12 -28
  104. package/app-frontend/modules/ResourcesModule.js.map +1 -1
  105. package/app-frontend/modules/StorageModule.js +47 -68
  106. package/app-frontend/modules/StorageModule.js.map +1 -1
  107. package/app-frontend/modules/ThunderstormModule.js +15 -31
  108. package/app-frontend/modules/ThunderstormModule.js.map +1 -1
  109. package/app-frontend/modules/component-loader/ReactEntryComponentInjector.js +24 -41
  110. package/app-frontend/modules/component-loader/ReactEntryComponentInjector.js.map +1 -1
  111. package/app-frontend/modules/component-loader/entry-component-loading-module.js +19 -36
  112. package/app-frontend/modules/component-loader/entry-component-loading-module.js.map +1 -1
  113. package/app-frontend/modules/dialog/Dialog.js +55 -96
  114. package/app-frontend/modules/dialog/Dialog.js.map +1 -1
  115. package/app-frontend/modules/dialog/DialogModule.js +48 -84
  116. package/app-frontend/modules/dialog/DialogModule.js.map +1 -1
  117. package/app-frontend/modules/http/HttpClient.js +46 -93
  118. package/app-frontend/modules/http/HttpClient.js.map +1 -1
  119. package/app-frontend/modules/http/XhrHttpModule.js +66 -88
  120. package/app-frontend/modules/http/XhrHttpModule.js.map +1 -1
  121. package/app-frontend/modules/locale/LocaleModule.js +23 -50
  122. package/app-frontend/modules/locale/LocaleModule.js.map +1 -1
  123. package/app-frontend/modules/menu/MenuAndButton.js +23 -40
  124. package/app-frontend/modules/menu/MenuAndButton.js.map +1 -1
  125. package/app-frontend/modules/menu/MenuModule.js +25 -42
  126. package/app-frontend/modules/menu/MenuModule.js.map +1 -1
  127. package/app-frontend/modules/menu/PopupMenu.js +37 -64
  128. package/app-frontend/modules/menu/PopupMenu.js.map +1 -1
  129. package/app-frontend/modules/routing/RoutingModule.js +47 -66
  130. package/app-frontend/modules/routing/RoutingModule.js.map +1 -1
  131. package/app-frontend/modules/routing/route.js +31 -33
  132. package/app-frontend/modules/routing/route.js.map +1 -1
  133. package/app-frontend/modules/toaster/BaseToaster.js +18 -36
  134. package/app-frontend/modules/toaster/BaseToaster.js.map +1 -1
  135. package/app-frontend/modules/toaster/Toaster.js +12 -38
  136. package/app-frontend/modules/toaster/Toaster.js.map +1 -1
  137. package/app-frontend/modules/toaster/ToasterModule.js +61 -88
  138. package/app-frontend/modules/toaster/ToasterModule.js.map +1 -1
  139. package/app-frontend/modules/tooltip/Tooltip.js +25 -52
  140. package/app-frontend/modules/tooltip/Tooltip.js.map +1 -1
  141. package/app-frontend/modules/tooltip/TooltipModule.js +32 -51
  142. package/app-frontend/modules/tooltip/TooltipModule.js.map +1 -1
  143. package/app-frontend/tools/KeyboardListener.js +24 -41
  144. package/app-frontend/tools/KeyboardListener.js.map +1 -1
  145. package/app-frontend/tools/Stylable.js +14 -28
  146. package/app-frontend/tools/Stylable.js.map +1 -1
  147. package/app-frontend/utils/tools.js +8 -8
  148. package/app-frontend/utils/tools.js.map +1 -1
  149. package/app-frontend/widgets/FieldEditor.js +16 -32
  150. package/app-frontend/widgets/FieldEditor.js.map +1 -1
  151. package/app-frontend/widgets/FieldEditorClick.js +32 -49
  152. package/app-frontend/widgets/FieldEditorClick.js.map +1 -1
  153. package/app-frontend/widgets/FieldEditorWithButtons.js +33 -49
  154. package/app-frontend/widgets/FieldEditorWithButtons.js.map +1 -1
  155. package/app-frontend/widgets/click-to-drag/ClickToDrag.js +25 -41
  156. package/app-frontend/widgets/click-to-drag/ClickToDrag.js.map +1 -1
  157. package/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js +22 -38
  158. package/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js.map +1 -1
  159. package/package.json +4 -4
  160. package/shared/BaseHttpModule.js +44 -64
  161. package/shared/BaseHttpModule.js.map +1 -1
  162. package/shared/BaseHttpRequest.js +122 -176
  163. package/shared/BaseHttpRequest.js.map +1 -1
  164. package/shared/request-types.js +4 -19
  165. package/shared/request-types.js.map +1 -1
  166. package/test-backend/StormTester.js +37 -90
  167. package/test-backend/StormTester.js.map +1 -1
@@ -19,19 +19,6 @@
19
19
  * See the License for the specific language governing permissions and
20
20
  * limitations under the License.
21
21
  */
22
- var __extends = (this && this.__extends) || (function () {
23
- var extendStatics = function (d, b) {
24
- extendStatics = Object.setPrototypeOf ||
25
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
27
- return extendStatics(d, b);
28
- };
29
- return function (d, b) {
30
- extendStatics(d, b);
31
- function __() { this.constructor = d; }
32
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33
- };
34
- })();
35
22
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
23
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
24
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -41,427 +28,315 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
41
28
  step((generator = generator.apply(thisArg, _arguments || [])).next());
42
29
  });
43
30
  };
44
- var __generator = (this && this.__generator) || function (thisArg, body) {
45
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
46
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
- function verb(n) { return function (v) { return step([n, v]); }; }
48
- function step(op) {
49
- if (f) throw new TypeError("Generator is already executing.");
50
- while (_) try {
51
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
52
- if (y = 0, t) op = [op[0] & 2, t.value];
53
- switch (op[0]) {
54
- case 0: case 1: t = op; break;
55
- case 4: _.label++; return { value: op[1], done: false };
56
- case 5: _.label++; y = op[1]; op = [0]; continue;
57
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
- default:
59
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
- if (t[2]) _.ops.pop();
64
- _.trys.pop(); continue;
65
- }
66
- op = body.call(thisArg, _);
67
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
- }
70
- };
71
- var __spreadArrays = (this && this.__spreadArrays) || function () {
72
- for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
73
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
74
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
75
- r[k] = a[j];
76
- return r;
77
- };
78
31
  Object.defineProperty(exports, "__esModule", { value: true });
79
32
  exports.ApiResponse = exports.ServerApi_Redirect = exports.ServerApi_Proxy = exports.ServerApi_Post = exports.ServerApi_Get = exports.ServerApi = void 0;
80
33
  /**
81
34
  * Created by tacb0ss on 11/07/2018.
82
35
  */
83
- var ts_common_1 = require("@intuitionrobotics/ts-common");
84
- var url_1 = require("url");
85
- var HttpServer_1 = require("./HttpServer");
36
+ const ts_common_1 = require("@intuitionrobotics/ts-common");
37
+ const url_1 = require("url");
38
+ const HttpServer_1 = require("./HttpServer");
86
39
  // noinspection TypeScriptPreferShortImport
87
- var types_1 = require("../../../shared/types");
88
- var to_be_removed_1 = require("../../utils/to-be-removed");
89
- var exceptions_1 = require("../../exceptions");
90
- var RemoteProxy_1 = require("../proxy/RemoteProxy");
91
- var ServerApi = /** @class */ (function (_super) {
92
- __extends(ServerApi, _super);
93
- function ServerApi(method, relativePath, tag) {
94
- var _this = _super.call(this, tag || relativePath) || this;
95
- _this.printResponse = true;
96
- _this.headersToLog = [];
97
- _this.sideEffects = [];
98
- _this.assertProperty = to_be_removed_1.assertProperty;
99
- _this.callWrapper = function (req, res) { return __awaiter(_this, void 0, void 0, function () {
100
- return __generator(this, function (_a) {
101
- switch (_a.label) {
102
- case 0: return [4 /*yield*/, this.call(req, res)];
103
- case 1:
104
- _a.sent();
105
- return [4 /*yield*/, this.releaseSideEffects()];
106
- case 2:
107
- _a.sent();
108
- return [2 /*return*/];
40
+ const types_1 = require("../../../shared/types");
41
+ const to_be_removed_1 = require("../../utils/to-be-removed");
42
+ const exceptions_1 = require("../../exceptions");
43
+ const RemoteProxy_1 = require("../proxy/RemoteProxy");
44
+ class ServerApi extends ts_common_1.Logger {
45
+ constructor(method, relativePath, tag) {
46
+ super(tag || relativePath);
47
+ this.printResponse = true;
48
+ this.headersToLog = [];
49
+ this.sideEffects = [];
50
+ this.assertProperty = to_be_removed_1.assertProperty;
51
+ this.callWrapper = (req, res) => __awaiter(this, void 0, void 0, function* () {
52
+ yield this.call(req, res);
53
+ yield this.releaseSideEffects();
54
+ });
55
+ this.releaseSideEffects = () => __awaiter(this, void 0, void 0, function* () {
56
+ try {
57
+ yield Promise.all(this.sideEffects.map(sideEffect => sideEffect()));
58
+ }
59
+ catch (e) {
60
+ this.logError("Something went wrong while performing the side effects", e);
61
+ }
62
+ finally {
63
+ this.sideEffects = [];
64
+ }
65
+ });
66
+ this.call = (req, res) => __awaiter(this, void 0, void 0, function* () {
67
+ const response = new ApiResponse(this, res);
68
+ this.logInfo(`Intercepted Url: ${req.path}`);
69
+ if (this.headersToLog.length > 0) {
70
+ const headers = {};
71
+ for (const headerName of this.headersToLog) {
72
+ headers[headerName] = req.header(headerName);
73
+ }
74
+ this.logDebug(`-- Headers: `, headers);
75
+ }
76
+ const reqQuery = url_1.parse(req.url, true).query;
77
+ if (reqQuery && typeof reqQuery === "object" && Object.keys(reqQuery).length)
78
+ this.logVerbose(`-- Url Params: `, reqQuery);
79
+ else
80
+ this.logVerbose(`-- No Params`);
81
+ const body = req.body;
82
+ if (body && ((typeof body === "object")))
83
+ this.logVerbose(`-- Body (Object): `, body);
84
+ else if (body && body.length)
85
+ this.logVerbose(`-- Body (String): `, body);
86
+ else
87
+ this.logVerbose(`-- No Body`);
88
+ const requestData = {
89
+ method: this.method,
90
+ originalUrl: req.path,
91
+ headers: req.headers,
92
+ url: req.url,
93
+ query: reqQuery,
94
+ body: body
95
+ };
96
+ try {
97
+ this.bodyValidator && ts_common_1.validate(body, this.bodyValidator);
98
+ this.queryValidator && ts_common_1.validate(reqQuery, this.queryValidator);
99
+ if (this.middlewares)
100
+ yield Promise.all(this.middlewares.map(m => m(req, requestData)));
101
+ const toReturn = yield this.process(req, response, reqQuery, body);
102
+ if (response.isConsumed())
103
+ return;
104
+ if (!toReturn)
105
+ return yield response.end(200);
106
+ // TODO need to handle stream and buffers
107
+ // if (Buffer.isBuffer(toReturn))
108
+ // return response.stream(200, toReturn as Buffer);
109
+ const responseType = typeof toReturn;
110
+ if (responseType === "object")
111
+ return yield response.json(200, toReturn);
112
+ if (responseType === "string" && toReturn.toLowerCase().startsWith("<html"))
113
+ return yield response.html(200, toReturn);
114
+ return yield response.text(200, toReturn);
115
+ }
116
+ catch (err) {
117
+ let e = err;
118
+ let severity = ts_common_1.ServerErrorSeverity.Warning;
119
+ if (typeof e === "string")
120
+ e = new ts_common_1.BadImplementationException(`String was thrown: ${e}`);
121
+ if (!(e instanceof Error) && typeof e === "object")
122
+ e = new ts_common_1.BadImplementationException(`Object instance was thrown: ${JSON.stringify(e)}`);
123
+ try {
124
+ this.logErrorBold(e);
109
125
  }
110
- });
111
- }); };
112
- _this.releaseSideEffects = function () { return __awaiter(_this, void 0, void 0, function () {
113
- var e_1;
114
- return __generator(this, function (_a) {
115
- switch (_a.label) {
116
- case 0:
117
- _a.trys.push([0, 2, 3, 4]);
118
- return [4 /*yield*/, Promise.all(this.sideEffects.map(function (sideEffect) { return sideEffect(); }))];
119
- case 1:
120
- _a.sent();
121
- return [3 /*break*/, 4];
122
- case 2:
123
- e_1 = _a.sent();
124
- this.logError("Something went wrong while performing the side effects", e_1);
125
- return [3 /*break*/, 4];
126
- case 3:
127
- this.sideEffects = [];
128
- return [7 /*endfinally*/];
129
- case 4: return [2 /*return*/];
126
+ catch (e2) {
127
+ this.logErrorBold("Error while handling error on request...", e2);
128
+ this.logErrorBold(`Original error thrown: ${JSON.stringify(e)}`);
129
+ this.logErrorBold(`-- Someone was stupid... you MUST only throw an Error and not objects or strings!! --`);
130
130
  }
131
- });
132
- }); };
133
- _this.call = function (req, res) { return __awaiter(_this, void 0, void 0, function () {
134
- var response, headers, _i, _a, headerName, reqQuery, body, requestData, toReturn, responseType, err_1, e, severity, apiException, message, e_2;
135
- return __generator(this, function (_b) {
136
- switch (_b.label) {
137
- case 0:
138
- response = new ApiResponse(this, res);
139
- this.logInfo("Intercepted Url: " + req.path);
140
- if (this.headersToLog.length > 0) {
141
- headers = {};
142
- for (_i = 0, _a = this.headersToLog; _i < _a.length; _i++) {
143
- headerName = _a[_i];
144
- headers[headerName] = req.header(headerName);
145
- }
146
- this.logDebug("-- Headers: ", headers);
147
- }
148
- reqQuery = url_1.parse(req.url, true).query;
149
- if (reqQuery && typeof reqQuery === "object" && Object.keys(reqQuery).length)
150
- this.logVerbose("-- Url Params: ", reqQuery);
151
- else
152
- this.logVerbose("-- No Params");
153
- body = req.body;
154
- if (body && ((typeof body === "object")))
155
- this.logVerbose("-- Body (Object): ", body);
156
- else if (body && body.length)
157
- this.logVerbose("-- Body (String): ", body);
158
- else
159
- this.logVerbose("-- No Body");
160
- requestData = {
161
- method: this.method,
162
- originalUrl: req.path,
163
- headers: req.headers,
164
- url: req.url,
165
- query: reqQuery,
166
- body: body
167
- };
168
- _b.label = 1;
169
- case 1:
170
- _b.trys.push([1, 12, , 18]);
171
- this.bodyValidator && ts_common_1.validate(body, this.bodyValidator);
172
- this.queryValidator && ts_common_1.validate(reqQuery, this.queryValidator);
173
- if (!this.middlewares) return [3 /*break*/, 3];
174
- return [4 /*yield*/, Promise.all(this.middlewares.map(function (m) { return m(req, requestData); }))];
175
- case 2:
176
- _b.sent();
177
- _b.label = 3;
178
- case 3: return [4 /*yield*/, this.process(req, response, reqQuery, body)];
179
- case 4:
180
- toReturn = _b.sent();
181
- if (response.isConsumed())
182
- return [2 /*return*/];
183
- if (!!toReturn) return [3 /*break*/, 6];
184
- return [4 /*yield*/, response.end(200)];
185
- case 5: return [2 /*return*/, _b.sent()];
186
- case 6:
187
- responseType = typeof toReturn;
188
- if (!(responseType === "object")) return [3 /*break*/, 8];
189
- return [4 /*yield*/, response.json(200, toReturn)];
190
- case 7: return [2 /*return*/, _b.sent()];
191
- case 8:
192
- if (!(responseType === "string" && toReturn.toLowerCase().startsWith("<html"))) return [3 /*break*/, 10];
193
- return [4 /*yield*/, response.html(200, toReturn)];
194
- case 9: return [2 /*return*/, _b.sent()];
195
- case 10: return [4 /*yield*/, response.text(200, toReturn)];
196
- case 11: return [2 /*return*/, _b.sent()];
197
- case 12:
198
- err_1 = _b.sent();
199
- e = err_1;
131
+ if (ts_common_1.isErrorOfType(e, ts_common_1.ValidationException))
132
+ e = new exceptions_1.ApiException(400, "Validator exception", e);
133
+ if (!ts_common_1.isErrorOfType(e, exceptions_1.ApiException))
134
+ e = new exceptions_1.ApiException(500, "Unexpected server error", e);
135
+ const apiException = ts_common_1.isErrorOfType(e, exceptions_1.ApiException);
136
+ if (!apiException)
137
+ throw new ts_common_1.MUSTNeverHappenException("MUST NEVER REACH HERE!!!");
138
+ if (apiException.responseCode >= 500)
139
+ severity = ts_common_1.ServerErrorSeverity.Error;
140
+ else if (apiException.responseCode >= 400)
141
+ severity = ts_common_1.ServerErrorSeverity.Warning;
142
+ switch (apiException.responseCode) {
143
+ case 401:
144
+ severity = ts_common_1.ServerErrorSeverity.Debug;
145
+ break;
146
+ case 404:
147
+ severity = ts_common_1.ServerErrorSeverity.Info;
148
+ break;
149
+ case 403:
200
150
  severity = ts_common_1.ServerErrorSeverity.Warning;
201
- if (typeof e === "string")
202
- e = new ts_common_1.BadImplementationException("String was thrown: " + e);
203
- if (!(e instanceof Error) && typeof e === "object")
204
- e = new ts_common_1.BadImplementationException("Object instance was thrown: " + JSON.stringify(e));
205
- try {
206
- this.logErrorBold(e);
207
- }
208
- catch (e2) {
209
- this.logErrorBold("Error while handling error on request...", e2);
210
- this.logErrorBold("Original error thrown: " + JSON.stringify(e));
211
- this.logErrorBold("-- Someone was stupid... you MUST only throw an Error and not objects or strings!! --");
212
- }
213
- if (ts_common_1.isErrorOfType(e, ts_common_1.ValidationException))
214
- e = new exceptions_1.ApiException(400, "Validator exception", e);
215
- if (!ts_common_1.isErrorOfType(e, exceptions_1.ApiException))
216
- e = new exceptions_1.ApiException(500, "Unexpected server error", e);
217
- apiException = ts_common_1.isErrorOfType(e, exceptions_1.ApiException);
218
- if (!apiException)
219
- throw new ts_common_1.MUSTNeverHappenException("MUST NEVER REACH HERE!!!");
220
- if (apiException.responseCode >= 500)
221
- severity = ts_common_1.ServerErrorSeverity.Error;
222
- else if (apiException.responseCode >= 400)
223
- severity = ts_common_1.ServerErrorSeverity.Warning;
224
- switch (apiException.responseCode) {
225
- case 401:
226
- severity = ts_common_1.ServerErrorSeverity.Debug;
227
- break;
228
- case 404:
229
- severity = ts_common_1.ServerErrorSeverity.Info;
230
- break;
231
- case 403:
232
- severity = ts_common_1.ServerErrorSeverity.Warning;
233
- break;
234
- case 500:
235
- severity = ts_common_1.ServerErrorSeverity.Critical;
236
- break;
237
- }
238
- return [4 /*yield*/, HttpServer_1.HttpServer.errorMessageComposer(requestData, apiException)];
239
- case 13:
240
- message = _b.sent();
241
- _b.label = 14;
242
- case 14:
243
- _b.trys.push([14, 16, , 17]);
244
- return [4 /*yield*/, ts_common_1.dispatch_onServerError.dispatchModuleAsync([severity,
245
- HttpServer_1.HttpServer,
246
- message])];
247
- case 15:
248
- _b.sent();
249
- return [3 /*break*/, 17];
250
- case 16:
251
- e_2 = _b.sent();
252
- this.logError("Error while handing server error", e_2);
253
- return [3 /*break*/, 17];
254
- case 17:
255
- if (apiException.responseCode === 500)
256
- return [2 /*return*/, response.serverError(apiException)];
257
- return [2 /*return*/, response.exception(apiException)];
258
- case 18: return [2 /*return*/];
151
+ break;
152
+ case 500:
153
+ severity = ts_common_1.ServerErrorSeverity.Critical;
154
+ break;
155
+ }
156
+ const message = yield HttpServer_1.HttpServer.errorMessageComposer(requestData, apiException);
157
+ try {
158
+ yield ts_common_1.dispatch_onServerError.dispatchModuleAsync([severity,
159
+ HttpServer_1.HttpServer,
160
+ message]);
259
161
  }
260
- });
261
- }); };
262
- _this.setMinLevel(ServerApi.isDebug ? ts_common_1.LogLevel.Verbose : ts_common_1.LogLevel.Info);
263
- _this.method = method;
264
- _this.relativePath = "" + relativePath;
265
- return _this;
266
- }
267
- ServerApi.prototype.addSideEffect = function (sideEffect) {
162
+ catch (e) {
163
+ this.logError("Error while handing server error", e);
164
+ }
165
+ if (apiException.responseCode === 500)
166
+ return response.serverError(apiException);
167
+ return response.exception(apiException);
168
+ }
169
+ });
170
+ this.setMinLevel(ServerApi.isDebug ? ts_common_1.LogLevel.Verbose : ts_common_1.LogLevel.Info);
171
+ this.method = method;
172
+ this.relativePath = `${relativePath}`;
173
+ }
174
+ addSideEffect(sideEffect) {
268
175
  this.sideEffects.push(sideEffect);
269
176
  return this;
270
- };
271
- ServerApi.prototype.setMiddlewares = function () {
272
- var middlewares = [];
273
- for (var _i = 0; _i < arguments.length; _i++) {
274
- middlewares[_i] = arguments[_i];
275
- }
177
+ }
178
+ setMiddlewares(...middlewares) {
276
179
  this.middlewares = middlewares;
277
180
  return this;
278
- };
279
- ServerApi.prototype.addMiddlewares = function () {
280
- var middlewares = [];
281
- for (var _i = 0; _i < arguments.length; _i++) {
282
- middlewares[_i] = arguments[_i];
283
- }
284
- this.middlewares = __spreadArrays((this.middlewares || []), middlewares);
181
+ }
182
+ addMiddlewares(...middlewares) {
183
+ this.middlewares = [...(this.middlewares || []), ...middlewares];
285
184
  return this;
286
- };
287
- ServerApi.prototype.addHeaderToLog = function () {
288
- var _a;
289
- var headersToLog = [];
290
- for (var _i = 0; _i < arguments.length; _i++) {
291
- headersToLog[_i] = arguments[_i];
292
- }
293
- (_a = this.headersToLog).push.apply(_a, headersToLog);
294
- };
295
- ServerApi.prototype.setBodyValidator = function (bodyValidator) {
185
+ }
186
+ addHeaderToLog(...headersToLog) {
187
+ this.headersToLog.push(...headersToLog);
188
+ }
189
+ setBodyValidator(bodyValidator) {
296
190
  this.bodyValidator = bodyValidator;
297
- };
298
- ServerApi.prototype.setQueryValidator = function (queryValidator) {
191
+ }
192
+ setQueryValidator(queryValidator) {
299
193
  this.queryValidator = queryValidator;
300
- };
301
- ServerApi.prototype.asProxy = function () {
194
+ }
195
+ asProxy() {
302
196
  return new ServerApi_Proxy(this);
303
- };
304
- ServerApi.prototype.getUrl = function () {
197
+ }
198
+ getUrl() {
305
199
  return this.url;
306
- };
307
- ServerApi.prototype.dontPrintResponse = function () {
200
+ }
201
+ dontPrintResponse() {
308
202
  // @ts-ignore
309
203
  this.printResponse = false;
310
- };
311
- ServerApi.prototype.setMaxResponsePrintSize = function (printResponseMaxSizeBytes) {
204
+ }
205
+ setMaxResponsePrintSize(printResponseMaxSizeBytes) {
312
206
  // @ts-ignore
313
207
  this.printResponse = printResponseMaxSizeBytes > -1;
314
- };
315
- ServerApi.prototype.route = function (router, prefixUrl) {
316
- var fullPath = (prefixUrl ? prefixUrl : "") + "/" + this.relativePath;
208
+ }
209
+ route(router, prefixUrl) {
210
+ const fullPath = `${prefixUrl ? prefixUrl : ""}/${this.relativePath}`;
317
211
  this.setTag(fullPath);
318
212
  router[this.method](fullPath, this.callWrapper);
319
- this.url = "" + HttpServer_1.HttpServer.getBaseUrl() + fullPath;
320
- };
321
- return ServerApi;
322
- }(ts_common_1.Logger));
213
+ this.url = `${HttpServer_1.HttpServer.getBaseUrl()}${fullPath}`;
214
+ }
215
+ }
323
216
  exports.ServerApi = ServerApi;
324
- var ServerApi_Get = /** @class */ (function (_super) {
325
- __extends(ServerApi_Get, _super);
326
- function ServerApi_Get(apiName) {
327
- return _super.call(this, types_1.HttpMethod.GET, apiName) || this;
217
+ class ServerApi_Get extends ServerApi {
218
+ constructor(apiName) {
219
+ super(types_1.HttpMethod.GET, apiName);
328
220
  }
329
- return ServerApi_Get;
330
- }(ServerApi));
221
+ }
331
222
  exports.ServerApi_Get = ServerApi_Get;
332
- var ServerApi_Post = /** @class */ (function (_super) {
333
- __extends(ServerApi_Post, _super);
334
- function ServerApi_Post(apiName) {
335
- return _super.call(this, types_1.HttpMethod.POST, apiName) || this;
223
+ class ServerApi_Post extends ServerApi {
224
+ constructor(apiName) {
225
+ super(types_1.HttpMethod.POST, apiName);
336
226
  }
337
- return ServerApi_Post;
338
- }(ServerApi));
227
+ }
339
228
  exports.ServerApi_Post = ServerApi_Post;
340
- var ServerApi_Proxy = /** @class */ (function (_super) {
341
- __extends(ServerApi_Proxy, _super);
342
- function ServerApi_Proxy(api) {
343
- var _this = _super.call(this, api.method, api.relativePath + "/proxy") || this;
344
- _this.api = api;
345
- _this.setMiddlewares(RemoteProxy_1.RemoteProxy.Middleware);
346
- return _this;
347
- }
348
- ServerApi_Proxy.prototype.process = function (request, response, queryParams, body) {
349
- return __awaiter(this, void 0, void 0, function () {
350
- return __generator(this, function (_a) {
351
- // @ts-ignore
352
- return [2 /*return*/, this.api.process(request, response, queryParams, body)];
353
- });
229
+ class ServerApi_Proxy extends ServerApi {
230
+ constructor(api) {
231
+ super(api.method, `${api.relativePath}/proxy`);
232
+ this.api = api;
233
+ this.setMiddlewares(RemoteProxy_1.RemoteProxy.Middleware);
234
+ }
235
+ process(request, response, queryParams, body) {
236
+ return __awaiter(this, void 0, void 0, function* () {
237
+ // @ts-ignore
238
+ return this.api.process(request, response, queryParams, body);
354
239
  });
355
- };
356
- return ServerApi_Proxy;
357
- }(ServerApi));
240
+ }
241
+ }
358
242
  exports.ServerApi_Proxy = ServerApi_Proxy;
359
- var ServerApi_Redirect = /** @class */ (function (_super) {
360
- __extends(ServerApi_Redirect, _super);
361
- function ServerApi_Redirect(apiName, responseCode, redirectUrl) {
362
- var _this = _super.call(this, types_1.HttpMethod.ALL, apiName) || this;
363
- _this.responseCode = responseCode;
364
- _this.redirectUrl = redirectUrl;
365
- return _this;
366
- }
367
- ServerApi_Redirect.prototype.process = function (request, response, queryParams, body) {
368
- return __awaiter(this, void 0, void 0, function () {
369
- var query;
370
- return __generator(this, function (_a) {
371
- query = queryParams ? ts_common_1._keys(queryParams).reduce(function (c, k) { return c + '&' + k + '=' + queryParams[k]; }, '?') : '';
372
- response.redirect(this.responseCode, "" + HttpServer_1.HttpServer.getBaseUrl() + this.redirectUrl + query);
373
- return [2 /*return*/];
374
- });
243
+ class ServerApi_Redirect extends ServerApi {
244
+ constructor(apiName, responseCode, redirectUrl) {
245
+ super(types_1.HttpMethod.ALL, apiName);
246
+ this.responseCode = responseCode;
247
+ this.redirectUrl = redirectUrl;
248
+ }
249
+ process(request, response, queryParams, body) {
250
+ return __awaiter(this, void 0, void 0, function* () {
251
+ const query = queryParams ? ts_common_1._keys(queryParams).reduce((c, k) => c + '&' + k + '=' + queryParams[k], '?') : '';
252
+ response.redirect(this.responseCode, `${HttpServer_1.HttpServer.getBaseUrl()}${this.redirectUrl}${query}`);
375
253
  });
376
- };
377
- return ServerApi_Redirect;
378
- }(ServerApi));
254
+ }
255
+ }
379
256
  exports.ServerApi_Redirect = ServerApi_Redirect;
380
- var ApiResponse = /** @class */ (function () {
381
- function ApiResponse(api, res) {
257
+ class ApiResponse {
258
+ constructor(api, res) {
382
259
  this.consumed = false;
383
260
  this.api = api;
384
261
  this.res = res;
385
262
  }
386
- ApiResponse.prototype.isConsumed = function () {
263
+ isConsumed() {
387
264
  return this.consumed;
388
- };
389
- ApiResponse.prototype.consume = function () {
265
+ }
266
+ consume() {
390
267
  if (this.consumed) {
391
268
  this.api.logError("This API was already satisfied!!", new Error());
392
269
  return;
393
270
  }
394
271
  this.consumed = true;
395
- };
396
- ApiResponse.prototype.stream = function (responseCode, stream, headers) {
397
- var _this = this;
272
+ }
273
+ stream(responseCode, stream, headers) {
398
274
  this.consume();
399
275
  this.printHeaders(headers);
400
276
  this.res.set(headers);
401
277
  this.res.writeHead(responseCode);
402
278
  stream.pipe(this.res, { end: false });
403
- stream.on('end', function () {
404
- _this.res.end();
279
+ stream.on('end', () => {
280
+ this.res.end();
405
281
  });
406
- };
407
- ApiResponse.prototype.printHeaders = function (headers) {
282
+ }
283
+ printHeaders(headers) {
408
284
  if (!headers)
409
- return this.api.logVerbose(" -- No response headers");
410
- this.api.logVerbose(" -- Response with headers: ", headers);
411
- };
412
- ApiResponse.prototype.printResponse = function (response) {
285
+ return this.api.logVerbose(` -- No response headers`);
286
+ this.api.logVerbose(` -- Response with headers: `, headers);
287
+ }
288
+ printResponse(response) {
413
289
  if (!response)
414
- return this.api.logVerbose(" -- No response body");
290
+ return this.api.logVerbose(` -- No response body`);
415
291
  if (!this.api.printResponse)
416
- return this.api.logVerbose(" -- Response: -- Not Printing --");
417
- this.api.logVerbose(" -- Response:", response);
418
- };
419
- ApiResponse.prototype.code = function (responseCode, headers) {
292
+ return this.api.logVerbose(` -- Response: -- Not Printing --`);
293
+ this.api.logVerbose(` -- Response:`, response);
294
+ }
295
+ code(responseCode, headers) {
420
296
  this.printHeaders(headers);
421
297
  this.end(responseCode, "", headers);
422
- };
423
- ApiResponse.prototype.text = function (responseCode, response, _headers) {
424
- var headers = (_headers || {});
298
+ }
299
+ text(responseCode, response, _headers) {
300
+ const headers = (_headers || {});
425
301
  headers["content-type"] = "text/plain";
426
302
  this.end(responseCode, response, headers);
427
- };
428
- ApiResponse.prototype.html = function (responseCode, response, _headers) {
429
- var headers = (_headers || {});
303
+ }
304
+ html(responseCode, response, _headers) {
305
+ const headers = (_headers || {});
430
306
  headers["content-type"] = "text/html";
431
307
  this.end(responseCode, response, headers);
432
- };
433
- ApiResponse.prototype.json = function (responseCode, response, _headers) {
308
+ }
309
+ json(responseCode, response, _headers) {
434
310
  this._json(responseCode, response, _headers);
435
- };
436
- ApiResponse.prototype._json = function (responseCode, response, _headers) {
437
- var headers = (_headers || {});
311
+ }
312
+ _json(responseCode, response, _headers) {
313
+ const headers = (_headers || {});
438
314
  headers["content-type"] = "application/json";
439
315
  this.end(responseCode, response, headers);
440
- };
441
- ApiResponse.prototype.end = function (responseCode, response, headers) {
316
+ }
317
+ end(responseCode, response, headers) {
442
318
  this.consume();
443
319
  this.printHeaders(headers);
444
320
  this.printResponse(response);
445
321
  this.res.set(headers);
446
322
  this.res.writeHead(responseCode);
447
323
  this.res.end(typeof response !== "string" ? JSON.stringify(response, null, 2) : response);
448
- };
449
- ApiResponse.prototype.redirect = function (responseCode, url) {
324
+ }
325
+ redirect(responseCode, url) {
450
326
  this.consume();
451
327
  this.res.redirect(responseCode, url);
452
- };
453
- ApiResponse.prototype.exception = function (exception, headers) {
454
- var responseBody = exception.responseBody;
328
+ }
329
+ exception(exception, headers) {
330
+ const responseBody = exception.responseBody;
455
331
  if (!ServerApi.isDebug)
456
332
  delete responseBody.debugMessage;
457
333
  this._json(exception.responseCode, responseBody, headers);
458
- };
459
- ApiResponse.prototype.serverError = function (error, headers) {
460
- var stack = error.cause ? error.cause.stack : error.stack;
461
- var message = (error.cause ? error.cause.message : error.message) || "";
334
+ }
335
+ serverError(error, headers) {
336
+ const stack = error.cause ? error.cause.stack : error.stack;
337
+ const message = (error.cause ? error.cause.message : error.message) || "";
462
338
  this.text(500, ServerApi.isDebug && stack ? stack : message, headers);
463
- };
464
- return ApiResponse;
465
- }());
339
+ }
340
+ }
466
341
  exports.ApiResponse = ApiResponse;
467
342
  //# sourceMappingURL=server-api.js.map