testeranto 0.219.13 → 0.219.15

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 (237) hide show
  1. package/package.json +1 -1
  2. package/src/testeranto.ts +1 -1
  3. package/dist/common/allTestsUtils.js +0 -17
  4. package/dist/common/package.json +0 -3
  5. package/dist/common/scripts/build-example.js +0 -105
  6. package/dist/common/src/Init.js +0 -38
  7. package/dist/common/src/Types.js +0 -63
  8. package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +0 -38
  9. package/dist/common/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -21
  10. package/dist/common/src/esbuildConfigs/featuresPlugin.js +0 -39
  11. package/dist/common/src/esbuildConfigs/index.js +0 -22
  12. package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -30
  13. package/dist/common/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -24
  14. package/dist/common/src/esbuildConfigs/rebuildPlugin.js +0 -19
  15. package/dist/common/src/init-docs.js +0 -9
  16. package/dist/common/src/lib/tiposkripto/BaseGiven.js +0 -96
  17. package/dist/common/src/lib/tiposkripto/BaseSuite.js +0 -134
  18. package/dist/common/src/lib/tiposkripto/BaseThen.js +0 -65
  19. package/dist/common/src/lib/tiposkripto/BaseTiposkripto.js +0 -193
  20. package/dist/common/src/lib/tiposkripto/BaseWhen.js +0 -46
  21. package/dist/common/src/lib/tiposkripto/CoreTypes.js +0 -2
  22. package/dist/common/src/lib/tiposkripto/Node.js +0 -40
  23. package/dist/common/src/lib/tiposkripto/Tiposkripto.js +0 -49
  24. package/dist/common/src/lib/tiposkripto/Types.js +0 -2
  25. package/dist/common/src/lib/tiposkripto/Web.js +0 -70
  26. package/dist/common/src/lib/tiposkripto/abstractBase.test/MockGiven.js +0 -22
  27. package/dist/common/src/lib/tiposkripto/abstractBase.test/MockThen.js +0 -16
  28. package/dist/common/src/lib/tiposkripto/abstractBase.test/MockWhen.js +0 -18
  29. package/dist/common/src/lib/tiposkripto/abstractBase.test/adapter.js +0 -24
  30. package/dist/common/src/lib/tiposkripto/abstractBase.test/implementation.js +0 -38
  31. package/dist/common/src/lib/tiposkripto/abstractBase.test/index.js +0 -17
  32. package/dist/common/src/lib/tiposkripto/abstractBase.test/specification.js +0 -19
  33. package/dist/common/src/lib/tiposkripto/abstractBase.test/types.js +0 -2
  34. package/dist/common/src/lib/tiposkripto/index.js +0 -29
  35. package/dist/common/src/runtimes.js +0 -4
  36. package/dist/common/src/server/aider/configParser.js +0 -124
  37. package/dist/common/src/server/aider/docker.js +0 -30
  38. package/dist/common/src/server/getRunnables.js +0 -36
  39. package/dist/common/src/server/htmlTemplate.js +0 -44
  40. package/dist/common/src/server/nodeVersion.js +0 -5
  41. package/dist/common/src/server/runtimes/common.js +0 -136
  42. package/dist/common/src/server/runtimes/golang/docker.js +0 -62
  43. package/dist/common/src/server/runtimes/java/docker.js +0 -46
  44. package/dist/common/src/server/runtimes/node/docker.js +0 -42
  45. package/dist/common/src/server/runtimes/node/esbuild.js +0 -40
  46. package/dist/common/src/server/runtimes/node/node.js +0 -75
  47. package/dist/common/src/server/runtimes/python/docker.js +0 -31
  48. package/dist/common/src/server/runtimes/ruby/docker.js +0 -34
  49. package/dist/common/src/server/runtimes/rust/docker.js +0 -35
  50. package/dist/common/src/server/runtimes/web/docker.js +0 -42
  51. package/dist/common/src/server/runtimes/web/esbuild.js +0 -29
  52. package/dist/common/src/server/runtimes/web/hoist.js +0 -16
  53. package/dist/common/src/server/runtimes/web/web.js +0 -157
  54. package/dist/common/src/server/serverClasees/Server.js +0 -47
  55. package/dist/common/src/server/serverClasees/Server_Base.js +0 -18
  56. package/dist/common/src/server/serverClasees/Server_Docker.js +0 -904
  57. package/dist/common/src/server/serverClasees/Server_FS.js +0 -119
  58. package/dist/common/src/server/serverClasees/Server_HTTP.js +0 -189
  59. package/dist/common/src/server/serverClasees/Server_WS.js +0 -262
  60. package/dist/common/src/server/serverManagers/DockerManager.js +0 -28
  61. package/dist/common/src/server/serverManagers/HttpManager.js +0 -114
  62. package/dist/common/src/server/serverManagers/WsManager.js +0 -230
  63. package/dist/common/src/server/serverManagers/fs.js +0 -32
  64. package/dist/common/src/server/serverManagers/tcp.js +0 -51
  65. package/dist/common/src/server/types.js +0 -2
  66. package/dist/common/src/testeranto.js +0 -75
  67. package/dist/common/src/vscode/TerminalManager.js +0 -129
  68. package/dist/common/src/vscode/TestTreeItem.js +0 -77
  69. package/dist/common/src/vscode/extension.js +0 -185
  70. package/dist/common/src/vscode/providers/FeaturesTreeDataProvider.js +0 -445
  71. package/dist/common/src/vscode/providers/FileTreeDataProvider.js +0 -190
  72. package/dist/common/src/vscode/providers/ProcessesTreeDataProvider.js +0 -270
  73. package/dist/common/src/vscode/providers/ResultsTreeDataProvider.js +0 -87
  74. package/dist/common/src/vscode/providers/TestTreeDataProvider.js +0 -309
  75. package/dist/common/src/vscode/types.js +0 -9
  76. package/dist/common/testeranto/runtimes/node/node.js +0 -7
  77. package/dist/common/testeranto/runtimes/web/web.js +0 -6
  78. package/dist/common/testeranto/testeranto.js +0 -70
  79. package/dist/common/tsconfig.common.tsbuildinfo +0 -1
  80. package/dist/module/allTestsUtils.js +0 -13
  81. package/dist/module/package.json +0 -3
  82. package/dist/module/scripts/build-example.js +0 -100
  83. package/dist/module/src/Init.js +0 -33
  84. package/dist/module/src/Types.js +0 -62
  85. package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +0 -32
  86. package/dist/module/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -18
  87. package/dist/module/src/esbuildConfigs/featuresPlugin.js +0 -34
  88. package/dist/module/src/esbuildConfigs/index.js +0 -20
  89. package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -25
  90. package/dist/module/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -21
  91. package/dist/module/src/esbuildConfigs/rebuildPlugin.js +0 -14
  92. package/dist/module/src/init-docs.js +0 -4
  93. package/dist/module/src/lib/tiposkripto/BaseGiven.js +0 -92
  94. package/dist/module/src/lib/tiposkripto/BaseSuite.js +0 -130
  95. package/dist/module/src/lib/tiposkripto/BaseThen.js +0 -61
  96. package/dist/module/src/lib/tiposkripto/BaseTiposkripto.js +0 -190
  97. package/dist/module/src/lib/tiposkripto/BaseWhen.js +0 -42
  98. package/dist/module/src/lib/tiposkripto/CoreTypes.js +0 -1
  99. package/dist/module/src/lib/tiposkripto/Node.js +0 -33
  100. package/dist/module/src/lib/tiposkripto/Tiposkripto.js +0 -14
  101. package/dist/module/src/lib/tiposkripto/Types.js +0 -1
  102. package/dist/module/src/lib/tiposkripto/Web.js +0 -63
  103. package/dist/module/src/lib/tiposkripto/abstractBase.test/MockGiven.js +0 -18
  104. package/dist/module/src/lib/tiposkripto/abstractBase.test/MockThen.js +0 -12
  105. package/dist/module/src/lib/tiposkripto/abstractBase.test/MockWhen.js +0 -14
  106. package/dist/module/src/lib/tiposkripto/abstractBase.test/adapter.js +0 -21
  107. package/dist/module/src/lib/tiposkripto/abstractBase.test/implementation.js +0 -35
  108. package/dist/module/src/lib/tiposkripto/abstractBase.test/index.js +0 -12
  109. package/dist/module/src/lib/tiposkripto/abstractBase.test/specification.js +0 -15
  110. package/dist/module/src/lib/tiposkripto/abstractBase.test/types.js +0 -1
  111. package/dist/module/src/lib/tiposkripto/index.js +0 -24
  112. package/dist/module/src/runtimes.js +0 -1
  113. package/dist/module/src/server/aider/configParser.js +0 -116
  114. package/dist/module/src/server/aider/docker.js +0 -28
  115. package/dist/module/src/server/getRunnables.js +0 -29
  116. package/dist/module/src/server/htmlTemplate.js +0 -40
  117. package/dist/module/src/server/nodeVersion.js +0 -2
  118. package/dist/module/src/server/runtimes/common.js +0 -127
  119. package/dist/module/src/server/runtimes/golang/docker.js +0 -55
  120. package/dist/module/src/server/runtimes/java/docker.js +0 -40
  121. package/dist/module/src/server/runtimes/node/docker.js +0 -36
  122. package/dist/module/src/server/runtimes/node/esbuild.js +0 -35
  123. package/dist/module/src/server/runtimes/node/node.js +0 -37
  124. package/dist/module/src/server/runtimes/python/docker.js +0 -25
  125. package/dist/module/src/server/runtimes/ruby/docker.js +0 -28
  126. package/dist/module/src/server/runtimes/rust/docker.js +0 -29
  127. package/dist/module/src/server/runtimes/web/docker.js +0 -36
  128. package/dist/module/src/server/runtimes/web/esbuild.js +0 -24
  129. package/dist/module/src/server/runtimes/web/hoist.js +0 -11
  130. package/dist/module/src/server/runtimes/web/web.js +0 -119
  131. package/dist/module/src/server/serverClasees/Server.js +0 -40
  132. package/dist/module/src/server/serverClasees/Server_Base.js +0 -14
  133. package/dist/module/src/server/serverClasees/Server_Docker.js +0 -897
  134. package/dist/module/src/server/serverClasees/Server_FS.js +0 -119
  135. package/dist/module/src/server/serverClasees/Server_HTTP.js +0 -182
  136. package/dist/module/src/server/serverClasees/Server_WS.js +0 -258
  137. package/dist/module/src/server/serverManagers/DockerManager.js +0 -28
  138. package/dist/module/src/server/serverManagers/HttpManager.js +0 -110
  139. package/dist/module/src/server/serverManagers/WsManager.js +0 -226
  140. package/dist/module/src/server/serverManagers/fs.js +0 -32
  141. package/dist/module/src/server/serverManagers/tcp.js +0 -47
  142. package/dist/module/src/server/types.js +0 -1
  143. package/dist/module/src/testeranto.js +0 -40
  144. package/dist/module/src/vscode/TerminalManager.js +0 -92
  145. package/dist/module/src/vscode/TestTreeItem.js +0 -40
  146. package/dist/module/src/vscode/extension.js +0 -148
  147. package/dist/module/src/vscode/providers/FeaturesTreeDataProvider.js +0 -408
  148. package/dist/module/src/vscode/providers/FileTreeDataProvider.js +0 -153
  149. package/dist/module/src/vscode/providers/ProcessesTreeDataProvider.js +0 -233
  150. package/dist/module/src/vscode/providers/ResultsTreeDataProvider.js +0 -50
  151. package/dist/module/src/vscode/providers/TestTreeDataProvider.js +0 -272
  152. package/dist/module/src/vscode/types.js +0 -6
  153. package/dist/module/testeranto/runtimes/node/node.js +0 -5
  154. package/dist/module/testeranto/runtimes/web/web.js +0 -4
  155. package/dist/module/testeranto/testeranto.js +0 -68
  156. package/dist/module/tsconfig.module.tsbuildinfo +0 -1
  157. package/dist/prebuild/chunk-QLT7PNPK.mjs +0 -162
  158. package/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs +0 -20
  159. package/dist/prebuild/init-docs.mjs +0 -56
  160. package/dist/prebuild/server/runtimes/node/node.mjs +0 -80
  161. package/dist/prebuild/server/runtimes/web/hoist.mjs +0 -12
  162. package/dist/prebuild/server/runtimes/web/web.mjs +0 -162
  163. package/dist/prebuild/testeranto-6SAYRVSE.mjs +0 -72
  164. package/dist/prebuild/testeranto.mjs +0 -1692
  165. package/dist/types/src/Init.d.ts +0 -2
  166. package/dist/types/src/Types.d.ts +0 -87
  167. package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +0 -2
  168. package/dist/types/src/esbuildConfigs/eslint-formatter-testeranto.d.ts +0 -2
  169. package/dist/types/src/esbuildConfigs/featuresPlugin.d.ts +0 -5
  170. package/dist/types/src/esbuildConfigs/index.d.ts +0 -3
  171. package/dist/types/src/esbuildConfigs/inputFilesPlugin.d.ts +0 -7
  172. package/dist/types/src/esbuildConfigs/nativeImportDetectorPlugin.d.ts +0 -2
  173. package/dist/types/src/esbuildConfigs/rebuildPlugin.d.ts +0 -6
  174. package/dist/types/src/init-docs.d.ts +0 -1
  175. package/dist/types/src/lib/tiposkripto/BaseGiven.d.ts +0 -42
  176. package/dist/types/src/lib/tiposkripto/BaseSuite.d.ts +0 -46
  177. package/dist/types/src/lib/tiposkripto/BaseThen.d.ts +0 -28
  178. package/dist/types/src/lib/tiposkripto/BaseTiposkripto.d.ts +0 -35
  179. package/dist/types/src/lib/tiposkripto/BaseWhen.d.ts +0 -27
  180. package/dist/types/src/lib/tiposkripto/CoreTypes.d.ts +0 -51
  181. package/dist/types/src/lib/tiposkripto/Node.d.ts +0 -9
  182. package/dist/types/src/lib/tiposkripto/Tiposkripto.d.ts +0 -5
  183. package/dist/types/src/lib/tiposkripto/Types.d.ts +0 -9
  184. package/dist/types/src/lib/tiposkripto/Web.d.ts +0 -9
  185. package/dist/types/src/lib/tiposkripto/abstractBase.test/MockGiven.d.ts +0 -9
  186. package/dist/types/src/lib/tiposkripto/abstractBase.test/MockThen.d.ts +0 -6
  187. package/dist/types/src/lib/tiposkripto/abstractBase.test/MockWhen.d.ts +0 -6
  188. package/dist/types/src/lib/tiposkripto/abstractBase.test/adapter.d.ts +0 -3
  189. package/dist/types/src/lib/tiposkripto/abstractBase.test/implementation.d.ts +0 -3
  190. package/dist/types/src/lib/tiposkripto/abstractBase.test/index.d.ts +0 -28
  191. package/dist/types/src/lib/tiposkripto/abstractBase.test/specification.d.ts +0 -3
  192. package/dist/types/src/lib/tiposkripto/abstractBase.test/types.d.ts +0 -39
  193. package/dist/types/src/lib/tiposkripto/index.d.ts +0 -56
  194. package/dist/types/src/runtimes.d.ts +0 -2
  195. package/dist/types/src/server/aider/configParser.d.ts +0 -11
  196. package/dist/types/src/server/aider/docker.d.ts +0 -2
  197. package/dist/types/src/server/getRunnables.d.ts +0 -3
  198. package/dist/types/src/server/htmlTemplate.d.ts +0 -2
  199. package/dist/types/src/server/nodeVersion.d.ts +0 -2
  200. package/dist/types/src/server/runtimes/common.d.ts +0 -12
  201. package/dist/types/src/server/runtimes/golang/docker.d.ts +0 -5
  202. package/dist/types/src/server/runtimes/java/docker.d.ts +0 -14
  203. package/dist/types/src/server/runtimes/node/docker.d.ts +0 -14
  204. package/dist/types/src/server/runtimes/node/esbuild.d.ts +0 -4
  205. package/dist/types/src/server/runtimes/node/node.d.ts +0 -1
  206. package/dist/types/src/server/runtimes/python/docker.d.ts +0 -14
  207. package/dist/types/src/server/runtimes/ruby/docker.d.ts +0 -14
  208. package/dist/types/src/server/runtimes/rust/docker.d.ts +0 -14
  209. package/dist/types/src/server/runtimes/web/docker.d.ts +0 -15
  210. package/dist/types/src/server/runtimes/web/esbuild.d.ts +0 -4
  211. package/dist/types/src/server/runtimes/web/hoist.d.ts +0 -1
  212. package/dist/types/src/server/runtimes/web/web.d.ts +0 -1
  213. package/dist/types/src/server/serverClasees/Server.d.ts +0 -8
  214. package/dist/types/src/server/serverClasees/Server_Base.d.ts +0 -9
  215. package/dist/types/src/server/serverClasees/Server_Docker.d.ts +0 -81
  216. package/dist/types/src/server/serverClasees/Server_FS.d.ts +0 -0
  217. package/dist/types/src/server/serverClasees/Server_HTTP.d.ts +0 -20
  218. package/dist/types/src/server/serverClasees/Server_WS.d.ts +0 -23
  219. package/dist/types/src/server/serverManagers/DockerManager.d.ts +0 -0
  220. package/dist/types/src/server/serverManagers/HttpManager.d.ts +0 -9
  221. package/dist/types/src/server/serverManagers/WsManager.d.ts +0 -10
  222. package/dist/types/src/server/serverManagers/fs.d.ts +0 -0
  223. package/dist/types/src/server/serverManagers/tcp.d.ts +0 -27
  224. package/dist/types/src/server/types.d.ts +0 -68
  225. package/dist/types/src/testeranto.d.ts +0 -1
  226. package/dist/types/src/vscode/TerminalManager.d.ts +0 -18
  227. package/dist/types/src/vscode/TestTreeItem.d.ts +0 -13
  228. package/dist/types/src/vscode/extension.d.ts +0 -3
  229. package/dist/types/src/vscode/providers/FeaturesTreeDataProvider.d.ts +0 -17
  230. package/dist/types/src/vscode/providers/FileTreeDataProvider.d.ts +0 -13
  231. package/dist/types/src/vscode/providers/ProcessesTreeDataProvider.d.ts +0 -23
  232. package/dist/types/src/vscode/providers/ResultsTreeDataProvider.d.ts +0 -10
  233. package/dist/types/src/vscode/providers/TestTreeDataProvider.d.ts +0 -16
  234. package/dist/types/src/vscode/types.d.ts +0 -14
  235. package/dist/types/testeranto/testeranto.d.ts +0 -3
  236. package/dist/types/tsconfig.types.tsbuildinfo +0 -1
  237. package/dist/vscode/extension.mjs +0 -5116
@@ -1,119 +0,0 @@
1
- "use strict";
2
- // import fs from "fs";
3
- // import path from "path";
4
- // import { IMode } from "../types";
5
- // import { IBuiltConfig, IRunTime, ISummary } from "../../Types";
6
- // import { makeHtmlTestFiles } from "../../makeHtmlTestFiles";
7
- // import { makeHtmlReportFile } from "../../makeHtmlReportFile";
8
- // import { Server_WS } from "./Server_WS";
9
- // import { getRunnables } from "../getRunnables";
10
- // import { IndexHtml } from "../serverManagers/fs";
11
- // export class Server_FS extends Server_WS {
12
- // summary: ISummary = {};
13
- // currentBuildResolve: (() => void) | null = null;
14
- // currentBuildReject: ((error: any) => void) | null = null;
15
- // constructor(configs: IBuiltConfig, testName: string, mode: IMode, routes) {
16
- // super(configs, testName, mode, routes);
17
- // fs.writeFileSync(
18
- // path.join(process.cwd(), "testeranto", `${testName}.json`),
19
- // JSON.stringify(configs, null, 2)
20
- // );
21
- // if (!fs.existsSync(`testeranto/reports/${testName}`)) {
22
- // fs.mkdirSync(`testeranto/reports/${testName}`);
23
- // }
24
- // fs.writeFileSync(
25
- // `testeranto/reports/${testName}/config.json`,
26
- // JSON.stringify(configs, null, 2)
27
- // );
28
- // makeHtmlTestFiles(testName);
29
- // makeHtmlReportFile(testName, configs);
30
- // const {
31
- // nodeEntryPoints,
32
- // webEntryPoints,
33
- // pythonEntryPoints,
34
- // golangEntryPoints,
35
- // } = getRunnables(configs, testName);
36
- // // create the necessary folders for all tests
37
- // [
38
- // ["node", Object.keys(nodeEntryPoints)],
39
- // ["web", Object.keys(webEntryPoints)],
40
- // ["python", Object.keys(pythonEntryPoints)],
41
- // ["golang", Object.keys(golangEntryPoints)],
42
- // ].forEach(async ([runtime, keys]: [IRunTime, string[]]) => {
43
- // keys.forEach(async (k) => {
44
- // fs.mkdirSync(
45
- // `testeranto/reports/${testName}/${k
46
- // .split(".")
47
- // .slice(0, -1)
48
- // .join(".")}/${runtime}`,
49
- // { recursive: true }
50
- // );
51
- // });
52
- // });
53
- // setupFileSystem(configs, testName);
54
- // if (!fs.existsSync(`testeranto/reports/${this.projectName}`)) {
55
- // fs.mkdirSync(`testeranto/reports/${this.projectName}`);
56
- // }
57
- // }
58
- // ensureSummaryEntry(src: string, isSidecar = false) {
59
- // if (!this.summary[src]) {
60
- // this.summary[src] = {
61
- // runTimeTests: undefined,
62
- // runTimeErrors: undefined,
63
- // typeErrors: undefined,
64
- // staticErrors: undefined,
65
- // prompt: undefined,
66
- // failingFeatures: undefined,
67
- // };
68
- // }
69
- // return this.summary[src];
70
- // }
71
- // getSummary() {
72
- // return this.summary;
73
- // }
74
- // setSummary(summary: ISummary) {
75
- // this.summary = summary;
76
- // }
77
- // updateSummaryEntry(
78
- // src: string,
79
- // updates: Partial<{
80
- // typeErrors: number | "?" | undefined;
81
- // staticErrors: number | "?" | undefined;
82
- // runTimeErrors: number | "?" | undefined;
83
- // prompt: string | "?" | undefined;
84
- // failingFeatures: object | undefined;
85
- // }>
86
- // ) {
87
- // if (!this.summary[src]) {
88
- // this.ensureSummaryEntry(src);
89
- // }
90
- // this.summary[src] = { ...this.summary[src], ...updates };
91
- // }
92
- // writeBigBoard = () => {
93
- // const summaryPath = `./testeranto/reports/${this.projectName}/summary.json`;
94
- // const summaryData = JSON.stringify(this.summary, null, 2);
95
- // fs.writeFileSync(summaryPath, summaryData);
96
- // // Broadcast the update if WebSocket is available
97
- // // if (this.webSocketBroadcastMessage) {
98
- // // this.webSocketBroadcastMessage({
99
- // // type: "summaryUpdate",
100
- // // data: this.summary,
101
- // // });
102
- // // }
103
- // };
104
- // async stop() {
105
- // await super.stop();
106
- // }
107
- // }
108
- // function setupFileSystem(config: IBuiltConfig, testsName: string) {
109
- // fs.writeFileSync(`${process.cwd()}/testeranto/index.html`, IndexHtml());
110
- // // Create reports directory
111
- // if (!fs.existsSync(`testeranto/reports/${testsName}`)) {
112
- // fs.mkdirSync(`testeranto/reports/${testsName}`, { recursive: true });
113
- // }
114
- // // Write config to reports
115
- // fs.writeFileSync(
116
- // `testeranto/reports/${testsName}/config.json`,
117
- // JSON.stringify(config, null, 2)
118
- // );
119
- // }
@@ -1,182 +0,0 @@
1
- // Gives the server HTTP capabilities
2
- // 1) serve static files from the project directory
3
- // 2) handle HTTP requests which are defined by child classes.
4
- //// for instance, Server_Process_Manager will define the react component.
5
- //// So we want the Server_Process_Manager class to handle the react component and logic defined by that child class
6
- //// These extra pages are routed under the ~ (tilde) to seperate the file server from the extra commands
7
- import fs from "fs";
8
- import http from "http";
9
- import path from "path";
10
- import { CONTENT_TYPES, getContentType } from "../serverManagers/tcp";
11
- import { Server_Base } from "./Server_Base";
12
- export class Server_HTTP extends Server_Base {
13
- constructor(configs, mode) {
14
- super(configs, mode);
15
- // this.http = new HttpManager();
16
- this.httpServer = http.createServer();
17
- this.httpServer.on("error", (error) => {
18
- console.error(`[HTTP] error:`, error);
19
- });
20
- this.httpServer.on("request", this.handleHttpRequest.bind(this));
21
- // Note: WebSocket upgrade handling will be set up by child classes if needed
22
- // Do not call setupWebSocketUpgrade() here
23
- }
24
- async start() {
25
- console.log(`[Server_HTTP] start()`);
26
- super.start();
27
- return new Promise((resolve) => {
28
- this.httpServer.on("listening", () => {
29
- const addr = this.httpServer.address();
30
- console.log(`[HTTP] HTTP server is now listening on ${addr}`);
31
- resolve();
32
- });
33
- });
34
- }
35
- async stop() {
36
- console.log(`[Server_HTTP] stop()`);
37
- this.httpServer.close(() => {
38
- console.log("[HTTP] HTTP server closed");
39
- });
40
- await super.stop();
41
- }
42
- handleHttpRequest(req, res) {
43
- console.log(`[Server_HTTP] handleHttpRequest(${req.url})`);
44
- // Check if this is a route request (starts with /~/)
45
- if (req.url && req.url.startsWith("/~/")) {
46
- this.handleRouteRequest(req, res);
47
- }
48
- else {
49
- // Otherwise serve static files
50
- this.serveStaticFile(req, res);
51
- }
52
- }
53
- handleRouteRequest(req, res) {
54
- console.log(`[Server_HTTP] handleRouteRequest(${req.url})`);
55
- const routeName = this.http.routeName(req);
56
- console.log(`[HTTP] Handling route: /~/${routeName}`);
57
- // Use HttpManager to match the route
58
- const match = this.http.matchRoute(routeName, this.routes);
59
- if (match) {
60
- // Add params to request object for handler to use
61
- req.params = match.params;
62
- try {
63
- match.handler(req, res);
64
- }
65
- catch (error) {
66
- console.error(`[HTTP] Error in route handler for /~/${routeName}:`, error);
67
- res.writeHead(500, { "Content-Type": "text/plain" });
68
- res.end(`Internal Server Error: ${error}`);
69
- }
70
- return;
71
- }
72
- // No route found
73
- res.writeHead(404, { "Content-Type": "text/plain" });
74
- res.end(`Route not found: /~/${routeName}`);
75
- }
76
- serveStaticFile(req, res) {
77
- console.log(`[Server_HTTP] serveStaticFile(${req.url})`);
78
- if (!req.url) {
79
- res.writeHead(400);
80
- res.end("Bad Request");
81
- return;
82
- }
83
- const normalizedPath = this.http.decodedPath(req);
84
- // Check for any remaining '..' components
85
- if (normalizedPath.includes("..")) {
86
- res.writeHead(403);
87
- res.end("Forbidden: Directory traversal not allowed");
88
- return;
89
- }
90
- // Start from the project root (current working directory)
91
- const projectRoot = process.cwd();
92
- const filePath = path.join(projectRoot, normalizedPath);
93
- // Ensure the file is within the project root
94
- if (!filePath.startsWith(path.resolve(projectRoot))) {
95
- res.writeHead(403);
96
- res.end("Forbidden");
97
- return;
98
- }
99
- // Check if it's a directory
100
- fs.stat(filePath, (err, stats) => {
101
- if (err) {
102
- if (err.code === "ENOENT") {
103
- res.writeHead(404);
104
- res.end(`File not found: ${normalizedPath}`);
105
- return;
106
- }
107
- else {
108
- res.writeHead(500);
109
- res.end(`Server Error: ${err.message}`);
110
- return;
111
- }
112
- }
113
- if (stats.isDirectory()) {
114
- // List directory contents
115
- fs.readdir(filePath, (readErr, files) => {
116
- if (readErr) {
117
- res.writeHead(500);
118
- res.end(`Server Error: ${readErr.message}`);
119
- return;
120
- }
121
- // Generate directory listing
122
- const items = files
123
- .map((file) => {
124
- try {
125
- const stat = fs.statSync(path.join(filePath, file));
126
- const isDir = stat.isDirectory();
127
- const slash = isDir ? "/" : "";
128
- return `<li><a href="${path.join(normalizedPath, file)}${slash}">${file}${slash}</a></li>`;
129
- }
130
- catch (_a) {
131
- // If we can't stat the file, still show it as a link without slash
132
- return `<li><a href="${path.join(normalizedPath, file)}">${file}</a></li>`;
133
- }
134
- })
135
- .join("");
136
- res.writeHead(200, { "Content-Type": "text/html" });
137
- res.end(`
138
- <!DOCTYPE html>
139
- <html>
140
- <head><title>Directory listing for ${normalizedPath}</title></head>
141
- <body>
142
- <h1>Directory listing for ${normalizedPath}</h1>
143
- <ul>
144
- ${items}
145
- </ul>
146
- </body>
147
- </html>
148
- `);
149
- });
150
- }
151
- else {
152
- this.serveFile(filePath, res);
153
- }
154
- });
155
- }
156
- serveFile(filePath, res) {
157
- console.log(`[Server_HTTP] serveFile(${filePath})`);
158
- const contentType = getContentType(filePath) || CONTENT_TYPES.OCTET_STREAM;
159
- fs.readFile(filePath, (err, data) => {
160
- if (err) {
161
- if (err.code === "ENOENT") {
162
- res.writeHead(404);
163
- res.end(`File not found: ${filePath}`);
164
- }
165
- else {
166
- res.writeHead(500);
167
- res.end(`Server Error: ${err.message}`);
168
- }
169
- return;
170
- }
171
- res.writeHead(200, { "Content-Type": contentType });
172
- res.end(data);
173
- });
174
- }
175
- // The route method is no longer abstract since we're using the routes() method
176
- // This is kept for backward compatibility
177
- router(a) {
178
- // Default implementation does nothing
179
- // Inheriting classes can override if needed
180
- return a;
181
- }
182
- }
@@ -1,258 +0,0 @@
1
- // Gives the server websocket capabilities
2
- import { WebSocket, WebSocketServer } from "ws";
3
- import { WsManager } from "../serverManagers/WsManager";
4
- import { Server_HTTP } from "./Server_HTTP";
5
- export class Server_WS extends Server_HTTP {
6
- constructor(configs, mode) {
7
- super(configs, mode);
8
- this.wsClients = new Set();
9
- this.ws = new WebSocketServer({
10
- noServer: true,
11
- });
12
- this.wsManager = new WsManager();
13
- this.setupWebSocketHandlers();
14
- }
15
- async start() {
16
- console.log(`[Server_WS] start()`);
17
- await super.start();
18
- this.attachWebSocketToHttpServer(this.httpServer);
19
- }
20
- async stop() {
21
- console.log(`[Server_WS] stop()`);
22
- this.wsClients.forEach((client) => {
23
- client.close();
24
- });
25
- this.wsClients.clear();
26
- // Close the WebSocket server
27
- this.ws.close(() => {
28
- console.log("[WebSocket] Server closed");
29
- });
30
- await super.stop();
31
- }
32
- escapeXml(unsafe) {
33
- return this.wsManager.escapeXml(unsafe);
34
- }
35
- attachWebSocketToHttpServer(httpServer) {
36
- httpServer.on("upgrade", (request, socket, head) => {
37
- const pathname = new URL(request.url || "", `http://${request.headers.host}`).pathname;
38
- // Handle WebSocket connections at /ws
39
- if (pathname === "/ws") {
40
- console.log("[WebSocket] Upgrade request for /ws");
41
- this.ws.handleUpgrade(request, socket, head, (ws) => {
42
- this.ws.emit("connection", ws, request);
43
- });
44
- }
45
- else {
46
- // Close connection for non-WebSocket paths
47
- socket.destroy();
48
- }
49
- });
50
- }
51
- broadcast(message) {
52
- const data = typeof message === "string" ? message : JSON.stringify(message);
53
- console.log(`[WebSocket] Broadcasting to ${this.wsClients.size} clients:`, message.type || message);
54
- let sentCount = 0;
55
- this.wsClients.forEach((client) => {
56
- if (client.readyState === WebSocket.OPEN) {
57
- client.send(data);
58
- sentCount++;
59
- }
60
- else {
61
- console.log(`[WebSocket] Client not open, state: ${client.readyState}`);
62
- }
63
- });
64
- console.log(`[WebSocket] Sent to ${sentCount} clients`);
65
- }
66
- setupWebSocketHandlers() {
67
- this.ws.on("connection", (ws, request) => {
68
- console.log(`[WebSocket] New connection from ${request.socket.remoteAddress}`);
69
- this.wsClients.add(ws);
70
- // Send initial connection message
71
- ws.send(JSON.stringify({
72
- type: "connected",
73
- message: "Connected to Process Manager WebSocket",
74
- timestamp: new Date().toISOString()
75
- }));
76
- // Immediately send current processes
77
- // Note: handleGetProcesses needs to be implemented or handled differently
78
- // For now, we'll send a placeholder
79
- ws.send(JSON.stringify({
80
- type: "processes",
81
- data: this.getProcessSummary ? this.getProcessSummary() : { processes: [] },
82
- timestamp: new Date().toISOString()
83
- }));
84
- // Handle messages from clients
85
- ws.on("message", (data) => {
86
- try {
87
- const message = JSON.parse(data.toString());
88
- this.handleWebSocketMessage(ws, message);
89
- }
90
- catch (error) {
91
- console.error("[WebSocket] Error parsing message:", error);
92
- ws.send(JSON.stringify({
93
- type: "error",
94
- message: "Invalid JSON message",
95
- timestamp: new Date().toISOString()
96
- }));
97
- }
98
- });
99
- // Handle client disconnection
100
- ws.on("close", () => {
101
- console.log("[WebSocket] Client disconnected");
102
- this.wsClients.delete(ws);
103
- });
104
- // Handle errors
105
- ws.on("error", (error) => {
106
- console.error("[WebSocket] Error:", error);
107
- this.wsClients.delete(ws);
108
- });
109
- });
110
- this.ws.on("error", (error) => {
111
- console.error("[WebSocket] Server error:", error);
112
- });
113
- this.ws.on("close", () => {
114
- console.log("[WebSocket] Server closing...");
115
- this.wsClients.clear();
116
- });
117
- }
118
- handleWebSocketMessage(ws, message) {
119
- console.log("[WebSocket] Received message:", message.type);
120
- // Use WsManager to process the message
121
- const response = this.wsManager.processMessage(message.type, message.data, () => this.getProcessSummary(), (processId) => {
122
- const processManager = this;
123
- if (typeof processManager.getProcessLogs === "function") {
124
- return processManager.getProcessLogs(processId);
125
- }
126
- return [];
127
- });
128
- // Send the response
129
- ws.send(JSON.stringify(response));
130
- // For certain message types, we need to perform additional server-side actions
131
- // These are side effects that can't be handled by WsManager alone
132
- switch (message.type) {
133
- case "sourceFilesUpdated":
134
- this.handleSourceFilesUpdatedSideEffects(ws, message.data, response);
135
- break;
136
- case "getBuildListenerState":
137
- this.handleGetBuildListenerStateSideEffects(ws);
138
- break;
139
- case "getBuildEvents":
140
- this.handleGetBuildEventsSideEffects(ws);
141
- break;
142
- }
143
- }
144
- handleSourceFilesUpdatedSideEffects(ws, data, response) {
145
- const { testName, hash, files, runtime } = data || {};
146
- if (!testName || !hash || !files || !runtime) {
147
- return;
148
- }
149
- console.log(`[WebSocket] Forwarding source files update to build listener for test: ${testName} (runtime: ${runtime})`);
150
- // Check if this instance has sourceFilesUpdated method (inherited from Server_BuildListener)
151
- if (typeof this.sourceFilesUpdated === 'function') {
152
- console.log(`[WebSocket] sourceFilesUpdated method found, calling it`);
153
- try {
154
- this.sourceFilesUpdated(testName, hash, files, runtime);
155
- console.log(`[WebSocket] sourceFilesUpdated called successfully`);
156
- // Broadcast to all clients
157
- this.broadcast({
158
- type: "sourceFilesUpdated",
159
- testName,
160
- hash,
161
- files,
162
- runtime,
163
- status: "processed",
164
- timestamp: new Date().toISOString(),
165
- message: "Source files update processed successfully"
166
- });
167
- // Update the response if successful
168
- if (response.status === "success") {
169
- // Response is already sent, but we can send an additional update
170
- ws.send(JSON.stringify({
171
- type: "sourceFilesUpdated",
172
- status: "processed",
173
- testName,
174
- runtime,
175
- message: "Build update processed and broadcasted successfully",
176
- timestamp: new Date().toISOString()
177
- }));
178
- }
179
- }
180
- catch (error) {
181
- console.error("[WebSocket] Error processing source files update:", error);
182
- // Send error update
183
- ws.send(JSON.stringify({
184
- type: "sourceFilesUpdated",
185
- status: "error",
186
- testName,
187
- runtime,
188
- message: `Error processing build update: ${error}`,
189
- timestamp: new Date().toISOString()
190
- }));
191
- }
192
- }
193
- else {
194
- console.warn("[WebSocket] sourceFilesUpdated method not available on this instance");
195
- }
196
- }
197
- handleGetBuildListenerStateSideEffects(ws) {
198
- console.log("[WebSocket] Handling getBuildListenerState request");
199
- if (typeof this.getBuildListenerState === 'function') {
200
- try {
201
- const state = this.getBuildListenerState();
202
- ws.send(JSON.stringify({
203
- type: "buildListenerState",
204
- data: state,
205
- timestamp: new Date().toISOString()
206
- }));
207
- }
208
- catch (error) {
209
- console.error("[WebSocket] Error getting build listener state:", error);
210
- ws.send(JSON.stringify({
211
- type: "buildListenerState",
212
- status: "error",
213
- message: `Error getting build listener state: ${error}`,
214
- timestamp: new Date().toISOString()
215
- }));
216
- }
217
- }
218
- }
219
- handleGetBuildEventsSideEffects(ws) {
220
- console.log("[WebSocket] Handling getBuildEvents request");
221
- if (typeof this.getBuildEvents === 'function') {
222
- try {
223
- const events = this.getBuildEvents();
224
- ws.send(JSON.stringify({
225
- type: "buildEvents",
226
- events: events,
227
- timestamp: new Date().toISOString()
228
- }));
229
- }
230
- catch (error) {
231
- console.error("[WebSocket] Error getting build events:", error);
232
- ws.send(JSON.stringify({
233
- type: "buildEvents",
234
- status: "error",
235
- message: `Error getting build events: ${error}`,
236
- timestamp: new Date().toISOString()
237
- }));
238
- }
239
- }
240
- }
241
- handleGetProcesses(ws) {
242
- if (typeof this.getProcessSummary === 'function') {
243
- const summary = this.getProcessSummary();
244
- ws.send(JSON.stringify({
245
- type: "processes",
246
- data: summary,
247
- timestamp: new Date().toISOString()
248
- }));
249
- }
250
- else {
251
- ws.send(JSON.stringify({
252
- type: "processes",
253
- data: { processes: [], message: "getProcessSummary not available" },
254
- timestamp: new Date().toISOString()
255
- }));
256
- }
257
- }
258
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- // // Do not allow imports from outside the project (fs, exec, ws, etc)
3
- // import { RUN_TIMES } from "../../runtimes";
4
- // import { IBuiltConfig, IRunTime } from "../../Types";
5
- // import { golangBddCommand, golangDockerComposeFile } from "../runtimes/golang/docker";
6
- // import { javaBddCommand, javaDockerComposeFile } from "../runtimes/java/docker";
7
- // import { nodeDockerComposeFile, nodeBddCommand } from "../runtimes/node/docker";
8
- // import { pythonBDDCommand, pythonDockerComposeFile } from "../runtimes/python/docker";
9
- // import { rubyBddCommand, rubyDockerComposeFile } from "../runtimes/ruby/docker";
10
- // import { rustBddCommand, rustDockerComposeFile } from "../runtimes/rust/docker";
11
- // import { webBddCommand, webDockerComposeFile } from "../runtimes/web/docker";
12
- // export type IService = any;
13
- // export interface IDockerComposeResult {
14
- // exitCode: number;
15
- // out: string;
16
- // err: string;
17
- // data: any;
18
- // }
19
- // export class DockerManager {
20
- // cwd: string;
21
- // composeFile: string;
22
- // projectName: string
23
- // constructor(composeFile: string, projectName: string) {
24
- // this.cwd = process.cwd();
25
- // this.composeFile = composeFile
26
- // this.projectName = projectName
27
- // }
28
- // }