hotstaq 0.5.24

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 (299) hide show
  1. package/.eslintignore +17 -0
  2. package/.eslintrc.js +11 -0
  3. package/.vscode/launch.json +199 -0
  4. package/.vscode/settings.json +2 -0
  5. package/.vscode/tasks.json +78 -0
  6. package/CONTRIBUTING.md +157 -0
  7. package/README.md +126 -0
  8. package/bin/hotstaq +3 -0
  9. package/bin/hotstaq.cmd +1 -0
  10. package/build/src/Hot.d.ts +167 -0
  11. package/build/src/Hot.d.ts.map +1 -0
  12. package/build/src/Hot.js +365 -0
  13. package/build/src/Hot.js.map +1 -0
  14. package/build/src/HotAPI.d.ts +130 -0
  15. package/build/src/HotAPI.d.ts.map +1 -0
  16. package/build/src/HotAPI.js +353 -0
  17. package/build/src/HotAPI.js.map +1 -0
  18. package/build/src/HotAgentAPI.d.ts +22 -0
  19. package/build/src/HotAgentAPI.d.ts.map +1 -0
  20. package/build/src/HotAgentAPI.js +85 -0
  21. package/build/src/HotAgentAPI.js.map +1 -0
  22. package/build/src/HotAgentRoute.d.ts +17 -0
  23. package/build/src/HotAgentRoute.d.ts.map +1 -0
  24. package/build/src/HotAgentRoute.js +109 -0
  25. package/build/src/HotAgentRoute.js.map +1 -0
  26. package/build/src/HotBuilder.d.ts +52 -0
  27. package/build/src/HotBuilder.d.ts.map +1 -0
  28. package/build/src/HotBuilder.js +239 -0
  29. package/build/src/HotBuilder.js.map +1 -0
  30. package/build/src/HotClient.d.ts +31 -0
  31. package/build/src/HotClient.d.ts.map +1 -0
  32. package/build/src/HotClient.js +19 -0
  33. package/build/src/HotClient.js.map +1 -0
  34. package/build/src/HotComponent.d.ts +118 -0
  35. package/build/src/HotComponent.d.ts.map +1 -0
  36. package/build/src/HotComponent.js +89 -0
  37. package/build/src/HotComponent.js.map +1 -0
  38. package/build/src/HotCreator.d.ts +92 -0
  39. package/build/src/HotCreator.d.ts.map +1 -0
  40. package/build/src/HotCreator.js +465 -0
  41. package/build/src/HotCreator.js.map +1 -0
  42. package/build/src/HotDB.d.ts +69 -0
  43. package/build/src/HotDB.d.ts.map +1 -0
  44. package/build/src/HotDB.js +29 -0
  45. package/build/src/HotDB.js.map +1 -0
  46. package/build/src/HotDBConnectionInterface.d.ts +40 -0
  47. package/build/src/HotDBConnectionInterface.d.ts.map +1 -0
  48. package/build/src/HotDBConnectionInterface.js +3 -0
  49. package/build/src/HotDBConnectionInterface.js.map +1 -0
  50. package/build/src/HotFile.d.ts +134 -0
  51. package/build/src/HotFile.d.ts.map +1 -0
  52. package/build/src/HotFile.js +454 -0
  53. package/build/src/HotFile.js.map +1 -0
  54. package/build/src/HotHTTPServer.d.ts +162 -0
  55. package/build/src/HotHTTPServer.d.ts.map +1 -0
  56. package/build/src/HotHTTPServer.js +863 -0
  57. package/build/src/HotHTTPServer.js.map +1 -0
  58. package/build/src/HotIO.d.ts +39 -0
  59. package/build/src/HotIO.d.ts.map +1 -0
  60. package/build/src/HotIO.js +195 -0
  61. package/build/src/HotIO.js.map +1 -0
  62. package/build/src/HotLog.d.ts +60 -0
  63. package/build/src/HotLog.d.ts.map +1 -0
  64. package/build/src/HotLog.js +126 -0
  65. package/build/src/HotLog.js.map +1 -0
  66. package/build/src/HotPage.d.ts +125 -0
  67. package/build/src/HotPage.d.ts.map +1 -0
  68. package/build/src/HotPage.js +178 -0
  69. package/build/src/HotPage.js.map +1 -0
  70. package/build/src/HotRoute.d.ts +82 -0
  71. package/build/src/HotRoute.d.ts.map +1 -0
  72. package/build/src/HotRoute.js +83 -0
  73. package/build/src/HotRoute.js.map +1 -0
  74. package/build/src/HotRouteMethod.d.ts +129 -0
  75. package/build/src/HotRouteMethod.d.ts.map +1 -0
  76. package/build/src/HotRouteMethod.js +84 -0
  77. package/build/src/HotRouteMethod.js.map +1 -0
  78. package/build/src/HotServer.d.ts +152 -0
  79. package/build/src/HotServer.d.ts.map +1 -0
  80. package/build/src/HotServer.js +109 -0
  81. package/build/src/HotServer.js.map +1 -0
  82. package/build/src/HotSetAsWeb.d.ts +2 -0
  83. package/build/src/HotSetAsWeb.d.ts.map +1 -0
  84. package/build/src/HotSetAsWeb.js +5 -0
  85. package/build/src/HotSetAsWeb.js.map +1 -0
  86. package/build/src/HotStaq.d.ts +601 -0
  87. package/build/src/HotStaq.d.ts.map +1 -0
  88. package/build/src/HotStaq.js +1258 -0
  89. package/build/src/HotStaq.js.map +1 -0
  90. package/build/src/HotStaqWeb.d.ts +18 -0
  91. package/build/src/HotStaqWeb.d.ts.map +1 -0
  92. package/build/src/HotStaqWeb.js +44 -0
  93. package/build/src/HotStaqWeb.js.map +1 -0
  94. package/build/src/HotTestDriver.d.ts +63 -0
  95. package/build/src/HotTestDriver.d.ts.map +1 -0
  96. package/build/src/HotTestDriver.js +187 -0
  97. package/build/src/HotTestDriver.js.map +1 -0
  98. package/build/src/HotTestElement.d.ts +71 -0
  99. package/build/src/HotTestElement.d.ts.map +1 -0
  100. package/build/src/HotTestElement.js +37 -0
  101. package/build/src/HotTestElement.js.map +1 -0
  102. package/build/src/HotTestMap.d.ts +83 -0
  103. package/build/src/HotTestMap.d.ts.map +1 -0
  104. package/build/src/HotTestMap.js +58 -0
  105. package/build/src/HotTestMap.js.map +1 -0
  106. package/build/src/HotTestSeleniumDriver.d.ts +82 -0
  107. package/build/src/HotTestSeleniumDriver.d.ts.map +1 -0
  108. package/build/src/HotTestSeleniumDriver.js +398 -0
  109. package/build/src/HotTestSeleniumDriver.js.map +1 -0
  110. package/build/src/HotTester.d.ts +188 -0
  111. package/build/src/HotTester.d.ts.map +1 -0
  112. package/build/src/HotTester.js +623 -0
  113. package/build/src/HotTester.js.map +1 -0
  114. package/build/src/HotTesterAPI.d.ts +15 -0
  115. package/build/src/HotTesterAPI.d.ts.map +1 -0
  116. package/build/src/HotTesterAPI.js +161 -0
  117. package/build/src/HotTesterAPI.js.map +1 -0
  118. package/build/src/HotTesterMocha.d.ts +50 -0
  119. package/build/src/HotTesterMocha.d.ts.map +1 -0
  120. package/build/src/HotTesterMocha.js +205 -0
  121. package/build/src/HotTesterMocha.js.map +1 -0
  122. package/build/src/HotTesterMochaSelenium.d.ts +70 -0
  123. package/build/src/HotTesterMochaSelenium.d.ts.map +1 -0
  124. package/build/src/HotTesterMochaSelenium.js +257 -0
  125. package/build/src/HotTesterMochaSelenium.js.map +1 -0
  126. package/build/src/HotTesterServer.d.ts +114 -0
  127. package/build/src/HotTesterServer.d.ts.map +1 -0
  128. package/build/src/HotTesterServer.js +575 -0
  129. package/build/src/HotTesterServer.js.map +1 -0
  130. package/build/src/api.d.ts +33 -0
  131. package/build/src/api.d.ts.map +1 -0
  132. package/build/src/api.js +78 -0
  133. package/build/src/api.js.map +1 -0
  134. package/build/src/cli.d.ts +2 -0
  135. package/build/src/cli.d.ts.map +1 -0
  136. package/build/src/cli.js +935 -0
  137. package/build/src/cli.js.map +1 -0
  138. package/build/src/schemas/HotDBInflux.d.ts +63 -0
  139. package/build/src/schemas/HotDBInflux.d.ts.map +1 -0
  140. package/build/src/schemas/HotDBInflux.js +239 -0
  141. package/build/src/schemas/HotDBInflux.js.map +1 -0
  142. package/build/src/schemas/HotDBMigration.d.ts +19 -0
  143. package/build/src/schemas/HotDBMigration.d.ts.map +1 -0
  144. package/build/src/schemas/HotDBMigration.js +15 -0
  145. package/build/src/schemas/HotDBMigration.js.map +1 -0
  146. package/build/src/schemas/HotDBMySQL.d.ts +65 -0
  147. package/build/src/schemas/HotDBMySQL.d.ts.map +1 -0
  148. package/build/src/schemas/HotDBMySQL.js +387 -0
  149. package/build/src/schemas/HotDBMySQL.js.map +1 -0
  150. package/build/src/schemas/HotDBSchema.d.ts +15 -0
  151. package/build/src/schemas/HotDBSchema.d.ts.map +1 -0
  152. package/build/src/schemas/HotDBSchema.js +19 -0
  153. package/build/src/schemas/HotDBSchema.js.map +1 -0
  154. package/build/src/schemas/influx/InfluxSchema.d.ts +14 -0
  155. package/build/src/schemas/influx/InfluxSchema.d.ts.map +1 -0
  156. package/build/src/schemas/influx/InfluxSchema.js +33 -0
  157. package/build/src/schemas/influx/InfluxSchema.js.map +1 -0
  158. package/build/src/schemas/mysql/MySQLSchema.d.ts +39 -0
  159. package/build/src/schemas/mysql/MySQLSchema.d.ts.map +1 -0
  160. package/build/src/schemas/mysql/MySQLSchema.js +151 -0
  161. package/build/src/schemas/mysql/MySQLSchema.js.map +1 -0
  162. package/build/src/schemas/mysql/MySQLSchemaField.d.ts +168 -0
  163. package/build/src/schemas/mysql/MySQLSchemaField.d.ts.map +1 -0
  164. package/build/src/schemas/mysql/MySQLSchemaField.js +260 -0
  165. package/build/src/schemas/mysql/MySQLSchemaField.js.map +1 -0
  166. package/build/src/schemas/mysql/MySQLSchemaTable.d.ts +49 -0
  167. package/build/src/schemas/mysql/MySQLSchemaTable.d.ts.map +1 -0
  168. package/build/src/schemas/mysql/MySQLSchemaTable.js +310 -0
  169. package/build/src/schemas/mysql/MySQLSchemaTable.js.map +1 -0
  170. package/build-web/HotStaq.js +2 -0
  171. package/build-web/HotStaq.min.js +125 -0
  172. package/builder/docker/Dockerfile.linux.gen +42 -0
  173. package/builder/docker/README.md +36 -0
  174. package/builder/docker/app/start.sh +8 -0
  175. package/builder/docker/dockerignore +3 -0
  176. package/builder/docker/scripts/build.bat +11 -0
  177. package/builder/docker/scripts/build.sh +11 -0
  178. package/builder/docker/scripts/start-app.bat +7 -0
  179. package/builder/docker/scripts/start-app.sh +7 -0
  180. package/builder/docker/scripts/stop-app.bat +5 -0
  181. package/builder/docker/scripts/stop-app.sh +5 -0
  182. package/builder/docker-compose/docker-compose.gen.yaml +41 -0
  183. package/builder/docker-compose/env-skeleton +4 -0
  184. package/creator/project/.vscode/launch.json +59 -0
  185. package/creator/project/README.md +20 -0
  186. package/creator/project/gitignore +118 -0
  187. package/creator/project/npmignore +118 -0
  188. package/creator/public/api-test.hott +28 -0
  189. package/creator/public/index.hott +12 -0
  190. package/creator/ts/src/AppAPI.ts +30 -0
  191. package/creator/ts/src/HelloWorld.ts +39 -0
  192. package/creator/ts/src/WebExport.ts +7 -0
  193. package/creator/ts/tsconfig-web.json +73 -0
  194. package/creator/ts/tsconfig.json +73 -0
  195. package/creator/ts/webpack-api.config.js +57 -0
  196. package/dbstart.sh +19 -0
  197. package/dbstop.sh +4 -0
  198. package/docs/.nojekyll +1 -0
  199. package/docs/README.md +128 -0
  200. package/docs/classes/Hot.md +477 -0
  201. package/docs/classes/HotAPI.md +369 -0
  202. package/docs/classes/HotClient.md +95 -0
  203. package/docs/classes/HotComponent.md +279 -0
  204. package/docs/classes/HotDB.md +247 -0
  205. package/docs/classes/HotDBInflux.md +404 -0
  206. package/docs/classes/HotDBMigration.md +80 -0
  207. package/docs/classes/HotDBMySQL.md +310 -0
  208. package/docs/classes/HotDBSchema.md +51 -0
  209. package/docs/classes/HotFile.md +353 -0
  210. package/docs/classes/HotHTTPServer.md +700 -0
  211. package/docs/classes/HotLog.md +162 -0
  212. package/docs/classes/HotPage.md +357 -0
  213. package/docs/classes/HotRoute.md +312 -0
  214. package/docs/classes/HotRouteMethod.md +271 -0
  215. package/docs/classes/HotServer.md +311 -0
  216. package/docs/classes/HotStaq.md +1153 -0
  217. package/docs/classes/HotTestDestination.md +58 -0
  218. package/docs/classes/HotTestDriver.md +332 -0
  219. package/docs/classes/HotTestElement.md +88 -0
  220. package/docs/classes/HotTestElementOptions.md +71 -0
  221. package/docs/classes/HotTestMap.md +92 -0
  222. package/docs/classes/HotTestSeleniumDriver.md +529 -0
  223. package/docs/classes/HotTester.md +653 -0
  224. package/docs/classes/HotTesterAPI.md +493 -0
  225. package/docs/classes/HotTesterMocha.md +843 -0
  226. package/docs/classes/HotTesterMochaSelenium.md +896 -0
  227. package/docs/classes/HotTesterServer.md +633 -0
  228. package/docs/classes/InfluxSchema.md +74 -0
  229. package/docs/classes/MySQLSchema.md +199 -0
  230. package/docs/classes/MySQLSchemaField.md +330 -0
  231. package/docs/classes/MySQLSchemaTable.md +176 -0
  232. package/docs/enums/ConnectionStatus.md +43 -0
  233. package/docs/enums/DeveloperMode.md +38 -0
  234. package/docs/enums/EventExecutionType.md +43 -0
  235. package/docs/enums/HTTPMethod.md +32 -0
  236. package/docs/enums/HotDBGenerationType.md +30 -0
  237. package/docs/enums/HotLogLevel.md +88 -0
  238. package/docs/interfaces/HotDBConnectionInterface.md +116 -0
  239. package/docs/interfaces/HotDestination.md +62 -0
  240. package/docs/interfaces/HotSite.md +187 -0
  241. package/docs/interfaces/HotSiteMapPath.md +37 -0
  242. package/docs/interfaces/HotSiteRoute.md +79 -0
  243. package/docs/interfaces/HotStartOptions.md +115 -0
  244. package/docs/interfaces/HotTestPage.md +44 -0
  245. package/docs/interfaces/HotTestStop.md +62 -0
  246. package/docs/interfaces/IHotComponent.md +135 -0
  247. package/docs/interfaces/IHotStaq.md +118 -0
  248. package/docs/interfaces/IHotTestElement.md +54 -0
  249. package/docs/interfaces/IHotTestElementOptions.md +43 -0
  250. package/docs/interfaces/MySQLResults.md +43 -0
  251. package/docs/interfaces/MySQLSchemaFieldResult.md +75 -0
  252. package/docs/modules.md +162 -0
  253. package/package.json +65 -0
  254. package/selenium-start.sh +7 -0
  255. package/selenium-stop.sh +3 -0
  256. package/src/Hot.ts +319 -0
  257. package/src/HotAPI.ts +378 -0
  258. package/src/HotAgentAPI.ts +43 -0
  259. package/src/HotAgentRoute.ts +44 -0
  260. package/src/HotBuilder.ts +221 -0
  261. package/src/HotClient.ts +40 -0
  262. package/src/HotComponent.ts +158 -0
  263. package/src/HotCreator.ts +482 -0
  264. package/src/HotDB.ts +79 -0
  265. package/src/HotDBConnectionInterface.ts +40 -0
  266. package/src/HotFile.ts +617 -0
  267. package/src/HotHTTPServer.ts +954 -0
  268. package/src/HotIO.ts +128 -0
  269. package/src/HotLog.ts +158 -0
  270. package/src/HotPage.ts +206 -0
  271. package/src/HotRoute.ts +137 -0
  272. package/src/HotRouteMethod.ts +216 -0
  273. package/src/HotServer.ts +211 -0
  274. package/src/HotSetAsWeb.ts +3 -0
  275. package/src/HotStaq.ts +1877 -0
  276. package/src/HotStaqWeb.ts +59 -0
  277. package/src/HotTestDriver.ts +172 -0
  278. package/src/HotTestElement.ts +97 -0
  279. package/src/HotTestMap.ts +130 -0
  280. package/src/HotTestSeleniumDriver.ts +374 -0
  281. package/src/HotTester.ts +697 -0
  282. package/src/HotTesterAPI.ts +126 -0
  283. package/src/HotTesterMocha.ts +133 -0
  284. package/src/HotTesterMochaSelenium.ts +189 -0
  285. package/src/HotTesterServer.ts +551 -0
  286. package/src/api.ts +102 -0
  287. package/src/cli.ts +1147 -0
  288. package/src/schemas/HotDBInflux.ts +211 -0
  289. package/src/schemas/HotDBMigration.ts +24 -0
  290. package/src/schemas/HotDBMySQL.ts +312 -0
  291. package/src/schemas/HotDBSchema.ts +21 -0
  292. package/src/schemas/influx/InfluxSchema.ts +19 -0
  293. package/src/schemas/mysql/MySQLSchema.ts +90 -0
  294. package/src/schemas/mysql/MySQLSchemaField.ts +408 -0
  295. package/src/schemas/mysql/MySQLSchemaTable.ts +353 -0
  296. package/tsconfig-web.json +74 -0
  297. package/tsconfig.json +73 -0
  298. package/webpack.config.js +51 -0
  299. package/webpack.config.tests.js +56 -0
@@ -0,0 +1,575 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (_) try {
52
+ 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;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
72
+ var __importDefault = (this && this.__importDefault) || function (mod) {
73
+ return (mod && mod.__esModule) ? mod : { "default": mod };
74
+ };
75
+ Object.defineProperty(exports, "__esModule", { value: true });
76
+ exports.HotTesterServer = void 0;
77
+ var http = __importStar(require("http"));
78
+ var https = __importStar(require("https"));
79
+ var fs = __importStar(require("fs"));
80
+ var constants_1 = require("constants");
81
+ var express_1 = __importDefault(require("express"));
82
+ var HotServer_1 = require("./HotServer");
83
+ var HotStaq_1 = require("./HotStaq");
84
+ var HotRouteMethod_1 = require("./HotRouteMethod");
85
+ var HotTesterAPI_1 = require("./HotTesterAPI");
86
+ var Hot_1 = require("./Hot");
87
+ var HotLog_1 = require("./HotLog");
88
+ var HotAPI_1 = require("./HotAPI");
89
+ /**
90
+ * An API server for use during testing.
91
+ */
92
+ var HotTesterServer = /** @class */ (function (_super) {
93
+ __extends(HotTesterServer, _super);
94
+ function HotTesterServer(processor, httpPort, httpsPort) {
95
+ if (httpPort === void 0) { httpPort = null; }
96
+ if (httpsPort === void 0) { httpsPort = null; }
97
+ var _this = _super.call(this, processor) || this;
98
+ _this.listenAddress = "127.0.0.1";
99
+ _this.expressApp = (0, express_1.default)();
100
+ _this.httpListener = null;
101
+ _this.httpsListener = null;
102
+ _this.routes = [];
103
+ if (process.env.TESTER_LISTEN_ADDR != null) {
104
+ if (process.env.TESTER_LISTEN_ADDR !== "")
105
+ _this.listenAddress = process.env.TESTER_LISTEN_ADDR;
106
+ }
107
+ if (process.env.TESTER_USE_HTTP != null) {
108
+ _this.ssl = {
109
+ cert: "",
110
+ key: "",
111
+ ca: ""
112
+ };
113
+ }
114
+ if (httpPort != null)
115
+ _this.ports.http = httpPort;
116
+ if (httpsPort != null)
117
+ _this.ports.https = httpsPort;
118
+ if (process.env.TESTER_HTTP_PORT != null) {
119
+ if (process.env.TESTER_HTTP_PORT !== "")
120
+ _this.ports.http = parseInt(process.env.TESTER_HTTP_PORT);
121
+ }
122
+ if (process.env.TESTER_HTTPS_PORT != null) {
123
+ if (process.env.TESTER_HTTPS_PORT !== "")
124
+ _this.ports.https = parseInt(process.env.TESTER_HTTPS_PORT);
125
+ }
126
+ if (process.env.TESTER_HTTPS_SSL_CERT != null) {
127
+ if (process.env.TESTER_HTTPS_SSL_CERT !== "")
128
+ _this.ssl.cert = process.env.TESTER_HTTPS_SSL_CERT;
129
+ if (process.env.TESTER_HTTPS_SSL_KEY !== "")
130
+ _this.ssl.key = process.env.TESTER_HTTPS_SSL_KEY;
131
+ if (process.env.TESTER_HTTPS_SSL_CA !== "")
132
+ _this.ssl.ca = process.env.TESTER_HTTPS_SSL_CA;
133
+ }
134
+ var testerJSONLimit = "1mb";
135
+ if (process.env.TESTER_JSON_LIMIT != null) {
136
+ if (process.env.TESTER_JSON_LIMIT !== "")
137
+ testerJSONLimit = process.env.TESTER_JSON_LIMIT;
138
+ }
139
+ _this.expressApp.options("*", function (req, res, next) {
140
+ res.header("Access-Control-Allow-Origin", "*");
141
+ res.header("Access-Control-Allow-Methods", "GET,HEAD,PUT,PATCH,POST,DELETE");
142
+ res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
143
+ res.statusCode = 204;
144
+ res.setHeader("Content-Length", "0");
145
+ res.end();
146
+ });
147
+ _this.expressApp.use(function (req, res, next) {
148
+ res.header("Access-Control-Allow-Origin", "*");
149
+ res.header("Access-Control-Allow-Methods", "GET,HEAD,PUT,PATCH,POST,DELETE");
150
+ res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
151
+ next();
152
+ });
153
+ _this.expressApp.use(express_1.default.urlencoded({ "extended": true }));
154
+ _this.expressApp.use(express_1.default.json({ "limit": testerJSONLimit }));
155
+ return _this;
156
+ }
157
+ /**
158
+ * Add a tester for use later.
159
+ */
160
+ HotTesterServer.prototype.addTester = function (tester) {
161
+ this.processor.logger.verbose("Added tester ".concat(tester.name));
162
+ this.processor.addTester(tester);
163
+ };
164
+ /**
165
+ * Execute tests.
166
+ */
167
+ HotTesterServer.prototype.executeTests = function (testerName, mapName) {
168
+ return __awaiter(this, void 0, void 0, function () {
169
+ return __generator(this, function (_a) {
170
+ this.processor.logger.verbose("Executing tests ".concat(testerName, " using map name ").concat(mapName));
171
+ return [2 /*return*/, (this.processor.executeTests(testerName, mapName))];
172
+ });
173
+ });
174
+ };
175
+ /**
176
+ * Execute all web tests for all maps in the HotSite testing web object.
177
+ */
178
+ HotTesterServer.prototype.executeAllWebTests = function (testerName) {
179
+ return __awaiter(this, void 0, void 0, function () {
180
+ return __generator(this, function (_a) {
181
+ return [2 /*return*/, (this.processor.executeAllWebTests(testerName))];
182
+ });
183
+ });
184
+ };
185
+ /**
186
+ * Execute all api tests for all maps in the HotSite testing api object.
187
+ */
188
+ HotTesterServer.prototype.executeAllAPITests = function (testerName) {
189
+ return __awaiter(this, void 0, void 0, function () {
190
+ return __generator(this, function (_a) {
191
+ return [2 /*return*/, (this.processor.executeAllAPITests(testerName))];
192
+ });
193
+ });
194
+ };
195
+ /**
196
+ * Add a route. This will be registered before any APIs are registered.
197
+ */
198
+ HotTesterServer.prototype.addRoute = function (route, method, type) {
199
+ if (type === void 0) { type = HotRouteMethod_1.HTTPMethod.GET; }
200
+ var newRoute = {
201
+ type: type,
202
+ route: route,
203
+ method: method
204
+ };
205
+ this.processor.logger.verbose("Added route ".concat(route));
206
+ this.routes.push(newRoute);
207
+ };
208
+ /**
209
+ * Register a route.
210
+ */
211
+ HotTesterServer.prototype.registerRoute = function (route) {
212
+ return __awaiter(this, void 0, void 0, function () {
213
+ var _loop_1, this_1, iIdx;
214
+ var _this = this;
215
+ return __generator(this, function (_a) {
216
+ switch (_a.label) {
217
+ case 0:
218
+ if (!(route.onRegister != null)) return [3 /*break*/, 2];
219
+ return [4 /*yield*/, route.onRegister()];
220
+ case 1:
221
+ if ((_a.sent()) === false)
222
+ return [2 /*return*/];
223
+ _a.label = 2;
224
+ case 2:
225
+ this.clearErrorHandlingRoutes();
226
+ this.preregisterRoute();
227
+ _loop_1 = function (iIdx) {
228
+ var method, methodName;
229
+ return __generator(this, function (_b) {
230
+ switch (_b.label) {
231
+ case 0:
232
+ method = route.methods[iIdx];
233
+ if (method.isRegistered === true)
234
+ return [2 /*return*/, "continue"];
235
+ if (!(method.onRegister != null)) return [3 /*break*/, 2];
236
+ return [4 /*yield*/, method.onRegister()];
237
+ case 1:
238
+ if ((_b.sent()) === false)
239
+ return [2 /*return*/, "continue"];
240
+ _b.label = 2;
241
+ case 2:
242
+ methodName = "/";
243
+ if (route.version !== "")
244
+ methodName += "".concat(route.version, "/");
245
+ if (route.prefix !== "")
246
+ methodName += "".concat(route.prefix, "/");
247
+ if (route.route !== "")
248
+ methodName += "".concat(route.route, "/");
249
+ methodName += method.name;
250
+ method.isRegistered = true;
251
+ this_1.expressApp[method.type](methodName, function (req, res) { return __awaiter(_this, void 0, void 0, function () {
252
+ var hasAuthorization, authorizationValue, jsonObj, queryObj, api, thisObj, ex_1, result, ex_2;
253
+ return __generator(this, function (_a) {
254
+ switch (_a.label) {
255
+ case 0:
256
+ hasAuthorization = true;
257
+ authorizationValue = null;
258
+ jsonObj = req.body;
259
+ queryObj = req.query;
260
+ api = route.connection.api;
261
+ thisObj = route;
262
+ if (api.executeEventsUsing === HotAPI_1.EventExecutionType.HotAPI)
263
+ thisObj = api;
264
+ if (api.executeEventsUsing === HotAPI_1.EventExecutionType.HotMethod)
265
+ thisObj = method;
266
+ this.logger.verbose("".concat(req.method, " ").concat(methodName, ", JSON: ").concat(JSON.stringify(jsonObj), ", Query: ").concat(JSON.stringify(queryObj)));
267
+ if (!(method.onServerAuthorize != null)) return [3 /*break*/, 5];
268
+ _a.label = 1;
269
+ case 1:
270
+ _a.trys.push([1, 3, , 4]);
271
+ return [4 /*yield*/, method.onServerAuthorize.call(thisObj, req, res, jsonObj, queryObj)];
272
+ case 2:
273
+ authorizationValue =
274
+ _a.sent();
275
+ return [3 /*break*/, 4];
276
+ case 3:
277
+ ex_1 = _a.sent();
278
+ this.logger.verbose("Authorization error: ".concat(ex_1.message));
279
+ res.json({ error: ex_1.message });
280
+ hasAuthorization = false;
281
+ return [2 /*return*/];
282
+ case 4:
283
+ if (authorizationValue === undefined)
284
+ hasAuthorization = false;
285
+ return [3 /*break*/, 7];
286
+ case 5:
287
+ if (!(route.onAuthorizeUser != null)) return [3 /*break*/, 7];
288
+ return [4 /*yield*/, route.onAuthorizeUser(req, res)];
289
+ case 6:
290
+ authorizationValue = _a.sent();
291
+ if (authorizationValue === undefined)
292
+ hasAuthorization = false;
293
+ _a.label = 7;
294
+ case 7:
295
+ this.logger.verbose("".concat(req.method, " ").concat(methodName, ", Authorized: ").concat(hasAuthorization, ", Authorization Value: ").concat(authorizationValue));
296
+ if (!(hasAuthorization === true)) return [3 /*break*/, 12];
297
+ if (!(method.onServerExecute != null)) return [3 /*break*/, 11];
298
+ _a.label = 8;
299
+ case 8:
300
+ _a.trys.push([8, 10, , 11]);
301
+ return [4 /*yield*/, method.onServerExecute.call(thisObj, req, res, authorizationValue, jsonObj, queryObj)];
302
+ case 9:
303
+ result = _a.sent();
304
+ this.logger.verbose("".concat(req.method, " ").concat(methodName, ", Response: ").concat(result));
305
+ if (result !== undefined)
306
+ res.json(result);
307
+ return [3 /*break*/, 11];
308
+ case 10:
309
+ ex_2 = _a.sent();
310
+ this.logger.verbose("Execution error: ".concat(ex_2.message));
311
+ res.json({ error: ex_2.message });
312
+ return [3 /*break*/, 11];
313
+ case 11: return [3 /*break*/, 13];
314
+ case 12:
315
+ res.json(route.errors["not_authorized"]);
316
+ this.logger.verbose("".concat(req.method, " ").concat(methodName, ", not_authorized"));
317
+ _a.label = 13;
318
+ case 13: return [2 /*return*/];
319
+ }
320
+ });
321
+ }); });
322
+ return [2 /*return*/];
323
+ }
324
+ });
325
+ };
326
+ this_1 = this;
327
+ iIdx = 0;
328
+ _a.label = 3;
329
+ case 3:
330
+ if (!(iIdx < route.methods.length)) return [3 /*break*/, 6];
331
+ return [5 /*yield**/, _loop_1(iIdx)];
332
+ case 4:
333
+ _a.sent();
334
+ _a.label = 5;
335
+ case 5:
336
+ iIdx++;
337
+ return [3 /*break*/, 3];
338
+ case 6:
339
+ this.setErrorHandlingRoutes();
340
+ return [2 /*return*/];
341
+ }
342
+ });
343
+ });
344
+ };
345
+ /**
346
+ * Check if a file exists.
347
+ */
348
+ HotTesterServer.checkIfFileExists = function (filepath) {
349
+ return __awaiter(this, void 0, void 0, function () {
350
+ return __generator(this, function (_a) {
351
+ switch (_a.label) {
352
+ case 0: return [4 /*yield*/, new Promise(function (resolve, reject) {
353
+ fs.access(filepath, constants_1.F_OK, function (err) {
354
+ if (err != null)
355
+ resolve(false);
356
+ resolve(true);
357
+ });
358
+ })];
359
+ case 1: return [2 /*return*/, (_a.sent())];
360
+ }
361
+ });
362
+ });
363
+ };
364
+ /**
365
+ * The routes to add before registering a route.
366
+ */
367
+ HotTesterServer.prototype.preregisterRoute = function () {
368
+ var _this = this;
369
+ this.expressApp.use(function (req, res, next) {
370
+ var url = "".concat(req.protocol, "://").concat(req.hostname).concat(req.originalUrl);
371
+ _this.logger.verbose("Requested: ".concat(url));
372
+ next();
373
+ });
374
+ for (var iIdx = 0; iIdx < this.routes.length; iIdx++) {
375
+ var route = this.routes[iIdx];
376
+ this.expressApp[route.type](route.route, route.method);
377
+ }
378
+ };
379
+ /**
380
+ * Set the error handlers. This will create two express routes at the bottom of the
381
+ * route stack. The first will be to capture any 404 errors, the second would be to
382
+ * catch any remaining errors.
383
+ */
384
+ HotTesterServer.prototype.setErrorHandlingRoutes = function (handle404, handleOther) {
385
+ var _this = this;
386
+ if (handle404 === void 0) { handle404 = null; }
387
+ if (handleOther === void 0) { handleOther = null; }
388
+ if (handle404 == null) {
389
+ handle404 = function (req, res, next) {
390
+ _this.logger.verbose("404 ".concat(JSON.stringify(req.url), " Method: ").concat(req.method));
391
+ res.status(404).send({ error: "404" });
392
+ };
393
+ }
394
+ if (handleOther == null) {
395
+ handleOther = function (err, req, res, next) {
396
+ var stack = "";
397
+ var msg = "";
398
+ if (err != null) {
399
+ stack = err.stack;
400
+ msg = err.message;
401
+ }
402
+ _this.logger.verbose("500 Server error ".concat(JSON.stringify(stack)));
403
+ res.status(500).send({ error: "Server error: ".concat(msg) });
404
+ };
405
+ }
406
+ this.expressApp.use(handle404);
407
+ this.expressApp.use(handleOther);
408
+ };
409
+ /**
410
+ * Clear the last two express routes, which are reserved for the
411
+ * error handlers.
412
+ */
413
+ HotTesterServer.prototype.clearErrorHandlingRoutes = function () {
414
+ if (this.expressApp._router == null)
415
+ return;
416
+ var stackCount = this.expressApp._router.stack.length;
417
+ for (var iIdx = 0; iIdx < stackCount; iIdx++) {
418
+ var elm = this.expressApp._router.stack[iIdx];
419
+ if (elm != null) {
420
+ var name_1 = elm.name;
421
+ if ((name_1 === "handle404") || (name_1 === "handleOther")) {
422
+ this.expressApp._router.stack.splice(iIdx, 1);
423
+ iIdx--;
424
+ stackCount = this.expressApp._router.stack.length;
425
+ }
426
+ }
427
+ }
428
+ };
429
+ /**
430
+ * Start listening for requests.
431
+ */
432
+ HotTesterServer.prototype.listen = function () {
433
+ return __awaiter(this, void 0, void 0, function () {
434
+ var promise;
435
+ var _this = this;
436
+ return __generator(this, function (_a) {
437
+ promise = new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {
438
+ var completedSetup, continueRegistering, continueOn;
439
+ var _this = this;
440
+ return __generator(this, function (_a) {
441
+ switch (_a.label) {
442
+ case 0:
443
+ completedSetup = function () {
444
+ var protocol = "http";
445
+ var port = _this.ports.http;
446
+ if (_this.ssl.cert !== "") {
447
+ protocol = "https";
448
+ port = _this.ports.https;
449
+ }
450
+ _this.logger.info("Tester server running at ".concat(protocol, "://").concat(_this.listenAddress, ":").concat(port, "/"));
451
+ resolve();
452
+ };
453
+ if (!(this.api != null)) return [3 /*break*/, 5];
454
+ if (!(this.api.onPreRegister != null)) return [3 /*break*/, 2];
455
+ return [4 /*yield*/, this.api.onPreRegister()];
456
+ case 1:
457
+ continueRegistering = _a.sent();
458
+ if (continueRegistering === false)
459
+ return [2 /*return*/];
460
+ _a.label = 2;
461
+ case 2: return [4 /*yield*/, this.api.registerRoutes()];
462
+ case 3:
463
+ _a.sent();
464
+ if (!(this.api.onPostRegister != null)) return [3 /*break*/, 5];
465
+ return [4 /*yield*/, this.api.onPostRegister()];
466
+ case 4:
467
+ continueOn = _a.sent();
468
+ if (continueOn === false)
469
+ return [2 /*return*/];
470
+ _a.label = 5;
471
+ case 5:
472
+ if (this.ssl.cert === "") {
473
+ this.httpListener = http.createServer(this.expressApp);
474
+ this.httpListener.listen(this.ports.http, this.listenAddress, completedSetup);
475
+ }
476
+ else {
477
+ if (this.redirectHTTPtoHTTPS === true) {
478
+ this.httpListener = http.createServer(function (req, res) {
479
+ var host = req.headers["host"];
480
+ res.writeHead(301, {
481
+ "Location": "https://".concat(host).concat(req.url)
482
+ });
483
+ res.end();
484
+ });
485
+ this.httpListener.listen(this.ports.http, this.listenAddress, function () {
486
+ _this.logger.info("Redirecting HTTP(".concat(_this.ports.http, ") traffic to HTTPS(").concat(_this.ports.https, ")"));
487
+ });
488
+ }
489
+ this.httpsListener = https.createServer({
490
+ cert: this.ssl.cert,
491
+ key: this.ssl.key,
492
+ ca: this.ssl.ca
493
+ }, this.expressApp);
494
+ this.httpsListener.listen(this.ports.https, this.listenAddress, completedSetup);
495
+ }
496
+ return [2 /*return*/];
497
+ }
498
+ });
499
+ }); });
500
+ return [2 /*return*/, (promise)];
501
+ });
502
+ });
503
+ };
504
+ /**
505
+ * Setup the tester api.
506
+ */
507
+ HotTesterServer.prototype.setupTesterAPI = function (baseUrl) {
508
+ return __awaiter(this, void 0, void 0, function () {
509
+ var api;
510
+ return __generator(this, function (_a) {
511
+ switch (_a.label) {
512
+ case 0:
513
+ api = new HotTesterAPI_1.HotTesterAPI(baseUrl, this);
514
+ this.processor.testerAPI = api;
515
+ this.api = api;
516
+ return [4 /*yield*/, this.api.registerRoutes()];
517
+ case 1:
518
+ _a.sent();
519
+ return [2 /*return*/];
520
+ }
521
+ });
522
+ });
523
+ };
524
+ /**
525
+ * Start the server.
526
+ *
527
+ * @param httpPort The HTTP port to listen on.
528
+ * @param httpsPort The HTTPS port to listen on.
529
+ * @param processor The HotStaq or parent server being used for communication.
530
+ */
531
+ HotTesterServer.startServer = function (baseUrl, httpPort, httpsPort, processor, logLevel) {
532
+ if (baseUrl === void 0) { baseUrl = "http://127.0.0.1:8182"; }
533
+ if (httpPort === void 0) { httpPort = 8182; }
534
+ if (httpsPort === void 0) { httpsPort = 4142; }
535
+ if (processor === void 0) { processor = null; }
536
+ if (logLevel === void 0) { logLevel = HotLog_1.HotLogLevel.Info; }
537
+ return __awaiter(this, void 0, void 0, function () {
538
+ var webServer;
539
+ return __generator(this, function (_a) {
540
+ switch (_a.label) {
541
+ case 0:
542
+ if (processor == null) {
543
+ processor = new HotStaq_1.HotStaq();
544
+ processor.mode = Hot_1.DeveloperMode.Development;
545
+ }
546
+ webServer = new HotTesterServer(processor, httpPort, httpsPort);
547
+ webServer.logger.logLevel = logLevel;
548
+ processor.logger.verbose("Starting tester server...");
549
+ return [4 /*yield*/, webServer.setupTesterAPI(baseUrl)];
550
+ case 1:
551
+ _a.sent();
552
+ return [4 /*yield*/, webServer.listen()];
553
+ case 2:
554
+ _a.sent();
555
+ return [2 /*return*/, ({ processor: processor, server: webServer })];
556
+ }
557
+ });
558
+ });
559
+ };
560
+ /**
561
+ * Shutdown the server.
562
+ */
563
+ HotTesterServer.prototype.shutdown = function () {
564
+ return __awaiter(this, void 0, void 0, function () {
565
+ return __generator(this, function (_a) {
566
+ this.httpListener.close();
567
+ this.expressApp = null;
568
+ return [2 /*return*/];
569
+ });
570
+ });
571
+ };
572
+ return HotTesterServer;
573
+ }(HotServer_1.HotServer));
574
+ exports.HotTesterServer = HotTesterServer;
575
+ //# sourceMappingURL=HotTesterServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HotTesterServer.js","sourceRoot":"","sources":["../../src/HotTesterServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { HotStaq, HotStartOptions, IHotStaq, HotSite, HotSiteRoute, HotSiteMapPath } from "./HotStaq";
2
+ import { Hot, DeveloperMode } from "./Hot";
3
+ import { HotComponent, IHotComponent } from "./HotComponent";
4
+ import { HotFile } from "./HotFile";
5
+ import { HotLog, HotLogLevel } from "./HotLog";
6
+ import { HotPage } from "./HotPage";
7
+ import { HotAPI, EventExecutionType } from "./HotAPI";
8
+ import { HotRoute } from "./HotRoute";
9
+ import { HotRouteMethod, HTTPMethod, ServerAuthorizationFunction, ServerExecutionFunction } from "./HotRouteMethod";
10
+ import { HotServer } from "./HotServer";
11
+ import { HotHTTPServer } from "./HotHTTPServer";
12
+ import { HotClient } from "./HotClient";
13
+ import { HotTestDriver } from "./HotTestDriver";
14
+ import { IHotTestElement, HotTestElement, HotTestElementOptions, IHotTestElementOptions } from "./HotTestElement";
15
+ import { HotTester, HotTestStop, HotDestination } from "./HotTester";
16
+ import { HotTesterAPI } from "./HotTesterAPI";
17
+ import { HotTesterMocha } from "./HotTesterMocha";
18
+ import { HotTesterMochaSelenium } from "./HotTesterMochaSelenium";
19
+ import { HotTesterServer } from "./HotTesterServer";
20
+ import { HotTestMap, HotTestDestination, HotTestPath, HotTestPage } from "./HotTestMap";
21
+ import { HotTestSeleniumDriver } from "./HotTestSeleniumDriver";
22
+ import { HotDB, ConnectionStatus } from "./HotDB";
23
+ import { HotDBConnectionInterface } from "./HotDBConnectionInterface";
24
+ import { HotDBGenerationType, HotDBSchema } from "./schemas/HotDBSchema";
25
+ import { HotDBMySQL, MySQLResults } from "./schemas/HotDBMySQL";
26
+ import { HotDBMigration } from "./schemas/HotDBMigration";
27
+ import { MySQLSchema } from "./schemas/mysql/MySQLSchema";
28
+ import { MySQLSchemaFieldResult, MySQLSchemaField } from "./schemas/mysql/MySQLSchemaField";
29
+ import { MySQLSchemaTable } from "./schemas/mysql/MySQLSchemaTable";
30
+ import { HotDBInflux } from "./schemas/HotDBInflux";
31
+ import { InfluxSchema } from "./schemas/influx/InfluxSchema";
32
+ export { HotStaq, HotStartOptions, IHotStaq, HotSite, HotSiteRoute, HotSiteMapPath, Hot, DeveloperMode, HotComponent, IHotComponent, HotAPI, EventExecutionType, HotFile, HotLog, HotLogLevel, HotPage, HotDB, ConnectionStatus, HotRoute, HotRouteMethod, HTTPMethod, ServerAuthorizationFunction, ServerExecutionFunction, HotServer, HotHTTPServer, HotClient, HotTesterServer, HotTester, HotTestStop, HotDestination, HotTesterAPI, HotTesterMocha, HotTesterMochaSelenium, HotTestMap, HotTestDestination, HotTestPath, HotTestPage, HotTestSeleniumDriver, HotTestElement, IHotTestElement, HotTestElementOptions, IHotTestElementOptions, HotTestDriver, HotDBGenerationType, HotDBConnectionInterface, HotDBSchema, HotDBMySQL, HotDBMigration, MySQLResults, MySQLSchema, MySQLSchemaFieldResult, MySQLSchemaField, MySQLSchemaTable, HotDBInflux, InfluxSchema };
33
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}