testeranto 0.172.0 → 0.177.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +2 -4
  2. package/dist/common/src/PM/base.js +5 -1
  3. package/dist/common/src/PM/main.js +57 -54
  4. package/dist/common/src/PM/node.js +4 -1
  5. package/dist/common/src/PM/pure.js +4 -1
  6. package/dist/common/src/PM/web.js +6 -3
  7. package/dist/common/src/Pure.js +0 -4
  8. package/dist/common/src/Pure.test.js +1 -1
  9. package/dist/common/src/ReportServer.js +2 -126
  10. package/dist/common/src/ReportServer.test.ts/index.js +78 -0
  11. package/dist/common/src/ReportServerLib.js +141 -0
  12. package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +1 -1
  13. package/dist/common/src/esbuildConfigs/node.js +1 -3
  14. package/dist/common/src/lib/BaseSuite.js +13 -11
  15. package/dist/common/src/lib/abstractBase.js +39 -40
  16. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +10 -9
  17. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.specification.js +7 -7
  18. package/dist/common/src/lib/basebuilder.js +13 -2
  19. package/dist/common/src/lib/core.js +1 -0
  20. package/dist/common/src/lib/pmProxy.js +215 -201
  21. package/dist/common/src/lib/pmProxy.test/adapter.js +2 -2
  22. package/dist/common/src/lib/pmProxy.test/implementation.js +1 -1
  23. package/dist/common/testeranto.config.js +47 -32
  24. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  25. package/dist/module/src/PM/base.js +5 -1
  26. package/dist/module/src/PM/main.js +22 -19
  27. package/dist/module/src/PM/node.js +4 -1
  28. package/dist/module/src/PM/pure.js +4 -1
  29. package/dist/module/src/PM/web.js +6 -3
  30. package/dist/module/src/Pure.js +0 -4
  31. package/dist/module/src/Pure.test.js +1 -1
  32. package/dist/module/src/ReportServer.js +2 -123
  33. package/dist/module/src/ReportServer.test.ts/index.js +73 -0
  34. package/dist/module/src/ReportServerLib.js +134 -0
  35. package/dist/module/src/TestPage.js +29 -17
  36. package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +1 -1
  37. package/dist/module/src/components/pure/TestPageView.js +29 -17
  38. package/dist/module/src/esbuildConfigs/node.js +1 -3
  39. package/dist/module/src/lib/BaseSuite.js +13 -11
  40. package/dist/module/src/lib/abstractBase.js +39 -40
  41. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +10 -9
  42. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.specification.js +7 -7
  43. package/dist/module/src/lib/basebuilder.js +13 -2
  44. package/dist/module/src/lib/core.js +1 -0
  45. package/dist/module/src/lib/pmProxy.js +215 -201
  46. package/dist/module/src/lib/pmProxy.test/adapter.js +2 -2
  47. package/dist/module/src/lib/pmProxy.test/implementation.js +1 -1
  48. package/dist/module/testeranto.config.js +47 -32
  49. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  50. package/dist/prebuild/App.js +3 -3
  51. package/dist/prebuild/ReportServer.mjs +21 -9
  52. package/dist/prebuild/build.mjs +1 -1
  53. package/dist/prebuild/run.mjs +27 -20
  54. package/dist/types/src/PM/base.d.ts +1 -1
  55. package/dist/types/src/PM/node.d.ts +1 -1
  56. package/dist/types/src/PM/pure.d.ts +1 -1
  57. package/dist/types/src/PM/web.d.ts +1 -1
  58. package/dist/types/src/ReportServer.test.ts/index.d.ts +29 -0
  59. package/dist/types/src/ReportServerLib.d.ts +1 -0
  60. package/dist/types/src/Types.d.ts +0 -1
  61. package/dist/types/src/components/pure/ProjectPageView.test/index.d.ts +2 -1
  62. package/dist/types/src/lib/BaseSuite.d.ts +2 -0
  63. package/dist/types/src/lib/abstractBase.d.ts +5 -7
  64. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.types.d.ts +7 -4
  65. package/dist/types/src/lib/pmProxy.d.ts +3 -3
  66. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  67. package/package.json +3 -3
  68. package/src/PM/base.ts +7 -5
  69. package/src/PM/main.ts +26 -21
  70. package/src/PM/node.ts +6 -1
  71. package/src/PM/pure.ts +6 -1
  72. package/src/PM/web.ts +7 -3
  73. package/src/Pure.test.ts +6 -6
  74. package/src/Pure.ts +0 -8
  75. package/src/ReportServer.test.ts/index.ts +194 -0
  76. package/src/ReportServer.ts +2 -132
  77. package/src/ReportServerLib.ts +147 -0
  78. package/src/TestPage.tsx +65 -5
  79. package/src/Types.ts +0 -1
  80. package/src/components/pure/ProjectPageView.test/implementation.tsx +1 -1
  81. package/src/components/pure/TestPageView.tsx +65 -5
  82. package/src/esbuildConfigs/node.ts +1 -1
  83. package/src/lib/BaseSuite.ts +16 -21
  84. package/src/lib/abstractBase.ts +59 -48
  85. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +22 -10
  86. package/src/lib/baseBuilder.test/baseBuilder.test.specification.ts +9 -9
  87. package/src/lib/baseBuilder.test/baseBuilder.test.types.ts +7 -4
  88. package/src/lib/basebuilder.ts +13 -4
  89. package/src/lib/core.ts +1 -0
  90. package/src/lib/pmProxy.test/adapter.ts +2 -2
  91. package/src/lib/pmProxy.test/implementation.ts +3 -3
  92. package/src/lib/pmProxy.test/types.ts +0 -2
  93. package/src/lib/pmProxy.ts +135 -80
  94. package/testeranto/App.js +3 -3
  95. package/testeranto/bundles/node/core/metafile.json +8 -0
  96. package/testeranto/bundles/pure/core/metafile.json +8 -0
  97. package/testeranto/bundles/web/core/metafile.json +15086 -0
  98. package/testeranto/bundles/web/{allTests → core}/src/components/pure/ProjectPageView.test/index.html +1 -1
  99. package/testeranto/bundles/web/{allTests → core}/src/components/pure/ProjectPageView.test/index.mjs +4109 -1642
  100. package/testeranto/projects.json +1 -1
  101. package/testeranto/reports/core/config.json +24 -0
  102. package/testeranto/reports/{allTests → core}/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +6 -1
  103. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/logs.txt +59 -0
  104. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +2 -0
  105. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +27 -0
  106. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-basicRender/then-0/butThen/happyPath.png +0 -0
  107. package/testeranto/reports/{allTests → core}/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +15 -33
  108. package/testeranto/reports/core/summary.json +9 -0
  109. package/testeranto.config.ts +49 -32
  110. package/tsc.log +78 -92
  111. package/testeranto/bundles/node/allTests/chunk-3EUGBAOM.mjs +0 -113
  112. package/testeranto/bundles/node/allTests/chunk-E75CSRER.mjs +0 -800
  113. package/testeranto/bundles/node/allTests/chunk-M6DO7VMB.mjs +0 -252
  114. package/testeranto/bundles/node/allTests/metafile.json +0 -1229
  115. package/testeranto/bundles/node/allTests/src/lib/BaseSuite.test/node.test.mjs +0 -323
  116. package/testeranto/bundles/node/allTests/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +0 -223
  117. package/testeranto/bundles/node/allTests/src/lib/classBuilder.test/classBuilder.test.mjs +0 -411
  118. package/testeranto/bundles/node/allTests/src/lib/core.test/core.test.mjs +0 -528
  119. package/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs +0 -4752
  120. package/testeranto/bundles/pure/allTests/chunk-KHDVEHF7.mjs +0 -185
  121. package/testeranto/bundles/pure/allTests/chunk-VMUSFSZM.mjs +0 -797
  122. package/testeranto/bundles/pure/allTests/metafile.json +0 -1054
  123. package/testeranto/bundles/pure/allTests/src/Pure.test.mjs +0 -429
  124. package/testeranto/bundles/pure/allTests/src/lib/BaseSuite.test/pure.test.mjs +0 -425
  125. package/testeranto/bundles/pure/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +0 -381
  126. package/testeranto/bundles/web/allTests/chunk-HPYA4YZC.mjs +0 -2283
  127. package/testeranto/bundles/web/allTests/chunk-U7AW26HL.mjs +0 -997
  128. package/testeranto/bundles/web/allTests/metafile.json +0 -25
  129. package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.html +0 -19
  130. package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.mjs +0 -440
  131. package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.html +0 -19
  132. package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +0 -244
  133. package/testeranto/reports/allTests/config.json +0 -104
  134. package/testeranto/reports/allTests/src/Pure.test/pure/lint_errors.txt +0 -0
  135. package/testeranto/reports/allTests/src/Pure.test/pure/message.txt +0 -2
  136. package/testeranto/reports/allTests/src/Pure.test/pure/prompt.txt +0 -13
  137. package/testeranto/reports/allTests/src/Pure.test/pure/type_errors.txt +0 -101
  138. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/bdd_errors.txt +0 -1
  139. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/logs.txt +0 -50
  140. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/message.txt +0 -2
  141. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/prompt.txt +0 -17
  142. package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/tests.json +0 -32
  143. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/bdd_errors.txt +0 -1
  144. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -0
  145. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/logs.txt +0 -52
  146. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/message.txt +0 -2
  147. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/prompt.txt +0 -13
  148. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/tests.json +0 -31
  149. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/type_errors.txt +0 -111
  150. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/bdd_errors.txt +0 -1
  151. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -0
  152. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/message.txt +0 -2
  153. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +0 -14
  154. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/tests.json +0 -31
  155. package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +0 -111
  156. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/bdd_errors.txt +0 -1
  157. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -0
  158. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/logs.txt +0 -108
  159. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/message.txt +0 -2
  160. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -14
  161. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/tests.json +0 -31
  162. package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -111
  163. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/bdd_errors.txt +0 -1
  164. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +0 -0
  165. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/logs.txt +0 -35
  166. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +0 -2
  167. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +0 -16
  168. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +0 -77
  169. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +0 -62
  170. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +0 -0
  171. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +0 -2
  172. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +0 -18
  173. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +0 -62
  174. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/bdd_errors.txt +0 -1
  175. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +0 -0
  176. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +0 -69
  177. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +0 -2
  178. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +0 -16
  179. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +0 -77
  180. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +0 -62
  181. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/bdd_errors.txt +0 -1
  182. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.txt +0 -0
  183. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/logs.txt +0 -700
  184. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/message.txt +0 -2
  185. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +0 -16
  186. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/tests.json +0 -164
  187. package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +0 -138
  188. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/lint_errors.txt +0 -21
  189. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/logs.txt +0 -7
  190. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/message.txt +0 -2
  191. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/prompt.txt +0 -18
  192. package/testeranto/reports/allTests/src/lib/core.test/core.test/node/type_errors.txt +0 -63
  193. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/bdd_errors.txt +0 -1
  194. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/lint_errors.txt +0 -20
  195. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/logs.txt +0 -31
  196. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/message.txt +0 -2
  197. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/prompt.txt +0 -16
  198. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/tests.json +0 -134
  199. package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/type_errors.txt +0 -76
  200. package/testeranto/reports/allTests/summary.json +0 -79
  201. package/testeranto/reportsnode_build_errors +0 -20
  202. package/testeranto/reportspure_build_errors +0 -343
  203. package/testeranto/reportsweb_build_errors +0 -25
package/README.md CHANGED
@@ -34,6 +34,8 @@
34
34
 
35
35
  ## Quick Start
36
36
 
37
+ 0. Install Aider and signup for a LLM service.
38
+
37
39
  1. Install testeranto:
38
40
 
39
41
  ```bash
@@ -92,7 +94,6 @@ yarn t-build rectangle.test.ts yourProject once && yarn t-run rectangle.test.ts
92
94
  | `yarn t-build <YOUR_TESTS> dev\|once` | Build test bundles (watch or single-run mode) |
93
95
  | `yarn t-run <YOUR_TESTS> dev\|once` | Run tests (watch or single-run mode) |
94
96
  | `yarn t-report` | Launch test report server |
95
- | `yarn t-aider` | Fix failing tests with AI |
96
97
 
97
98
  ## Example workflow:
98
99
 
@@ -111,9 +112,6 @@ yarn t-run test/rectangle.test.ts dev
111
112
  # Or for single-run mode:
112
113
  yarn t-build test/rectangle.test.ts once
113
114
  yarn t-run test/rectangle.test.ts once
114
-
115
- # Get AI help with failures
116
- yarn t-aider
117
115
  ```
118
116
 
119
117
  ## Aider
@@ -118,7 +118,11 @@ class PM_Base {
118
118
  }
119
119
  return false;
120
120
  }
121
- async writeFileSync(filepath, contents, testName) {
121
+ async writeFileSync(...x) {
122
+ const filepath = x[0];
123
+ const contents = x[1];
124
+ const testName = x[2];
125
+ console.log("writing file", filepath);
122
126
  return new Promise(async (res) => {
123
127
  fs_1.default.mkdirSync(path_1.default.dirname(filepath), {
124
128
  recursive: true,
@@ -42,16 +42,16 @@ exports.PM_Main = void 0;
42
42
  /* eslint-disable @typescript-eslint/no-explicit-any */
43
43
  /* eslint-disable @typescript-eslint/no-unused-vars */
44
44
  const node_child_process_1 = require("node:child_process");
45
+ const ansi_colors_1 = __importDefault(require("ansi-colors"));
45
46
  const net_1 = __importDefault(require("net"));
46
47
  const fs_1 = __importStar(require("fs"));
47
48
  const path_1 = __importDefault(require("path"));
48
49
  const puppeteer_core_1 = __importDefault(require("puppeteer-core"));
49
- const ansi_colors_1 = __importDefault(require("ansi-colors"));
50
+ const ansi_colors_2 = __importDefault(require("ansi-colors"));
50
51
  const node_crypto_1 = __importDefault(require("node:crypto"));
51
52
  const utils_1 = require("../utils");
52
53
  const queue_js_1 = require("../utils/queue.js");
53
54
  const PM_WithEslintAndTsc_js_1 = require("./PM_WithEslintAndTsc.js");
54
- const ansi_colors_2 = __importDefault(require("ansi-colors"));
55
55
  const changes = {};
56
56
  const fileHashes = {};
57
57
  const files = {};
@@ -74,10 +74,10 @@ async function fileHash(filePath, algorithm = "md5") {
74
74
  }
75
75
  const statusMessagePretty = (failures, test, runtime) => {
76
76
  if (failures === 0) {
77
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`${runtime} > ${test} completed successfully`)));
77
+ console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`${runtime} > ${test} completed successfully`)));
78
78
  }
79
79
  else {
80
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${runtime} > ${test} failed ${failures} times`)));
80
+ console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`${runtime} > ${test} failed ${failures} times`)));
81
81
  }
82
82
  };
83
83
  async function writeFileAndCreateDir(filePath, data) {
@@ -130,7 +130,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
130
130
  return (0, utils_1.getRunnables)(tests, testName, payload);
131
131
  };
132
132
  this.launchPure = async (src, dest) => {
133
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`pure < ${src}`)));
133
+ console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`pure < ${src}`)));
134
134
  this.bddTestIsRunning(src);
135
135
  const reportDest = `testeranto/reports/${this.name}/${src
136
136
  .split(".")
@@ -145,7 +145,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
145
145
  return t[0] === src;
146
146
  });
147
147
  if (!testConfig) {
148
- console.log(ansi_colors_1.default.inverse("missing test config! Exiting ungracefully!"));
148
+ console.log(ansi_colors_2.default.inverse("missing test config! Exiting ungracefully!"));
149
149
  process.exit(-1);
150
150
  }
151
151
  const testConfigResource = testConfig[2];
@@ -222,7 +222,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
222
222
  this.bddTestIsNowDone(src, results.fails);
223
223
  })
224
224
  .catch((e1) => {
225
- console.log(ansi_colors_1.default.red(`launchPure - ${src} errored with: ${e1}`));
225
+ console.log(ansi_colors_2.default.red(`launchPure - ${src} errored with: ${e1}`));
226
226
  this.bddTestIsNowDone(src, -1);
227
227
  statusMessagePretty(-1, src, "pure");
228
228
  });
@@ -231,7 +231,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
231
231
  // });
232
232
  })
233
233
  .catch((e2) => {
234
- console.log(ansi_colors_2.default.red(`pure ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
234
+ console.log(ansi_colors_1.default.red(`pure ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
235
235
  this.writeFileSync(`${reportDest}/logs.txt`, e2.stack, src);
236
236
  this.bddTestIsNowDone(src, -1);
237
237
  statusMessagePretty(-1, src, "pure");
@@ -247,7 +247,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
247
247
  });
248
248
  }
249
249
  catch (e3) {
250
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${src} 1 errored with: ${e3}. Check ${reportDest}/logs.txt for more info`)));
250
+ console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`${src} 1 errored with: ${e3}. Check ${reportDest}/logs.txt for more info`)));
251
251
  this.writeFileSync(`${reportDest}/logs.txt`, e3.stack, src);
252
252
  this.bddTestIsNowDone(src, -1);
253
253
  statusMessagePretty(-1, src, "pure");
@@ -260,7 +260,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
260
260
  }
261
261
  };
262
262
  this.launchNode = async (src, dest) => {
263
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`node < ${src}`)));
263
+ console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`node < ${src}`)));
264
264
  this.bddTestIsRunning(src);
265
265
  const reportDest = `testeranto/reports/${this.name}/${src
266
266
  .split(".")
@@ -275,7 +275,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
275
275
  return t[0] === src;
276
276
  });
277
277
  if (!testConfig) {
278
- console.log(ansi_colors_1.default.inverse(`missing test config! Exiting ungracefully for '${src}'`));
278
+ console.log(ansi_colors_2.default.inverse(`missing test config! Exiting ungracefully for '${src}'`));
279
279
  process.exit(-1);
280
280
  }
281
281
  const testConfigResource = testConfig[2];
@@ -306,7 +306,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
306
306
  });
307
307
  }
308
308
  else {
309
- console.log(ansi_colors_1.default.red(`node: cannot run ${src} because there are no open ports ATM. This job will be enqueued and run again run a port is available`));
309
+ console.log(ansi_colors_2.default.red(`node: cannot run ${src} because there are no open ports ATM. This job will be enqueued and run again run a port is available`));
310
310
  this.queue.push(src);
311
311
  return;
312
312
  }
@@ -320,7 +320,12 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
320
320
  const ipcfile = "/tmp/tpipe_" + Math.random();
321
321
  const child = (0, node_child_process_1.spawn)("node",
322
322
  // "node",
323
- ["--inspect-brk", builtfile, testResources, ipcfile], {
323
+ [
324
+ // "--inspect-brk",
325
+ builtfile,
326
+ testResources,
327
+ ipcfile,
328
+ ], {
324
329
  stdio: ["pipe", "pipe", "pipe", "ipc"],
325
330
  });
326
331
  let buffer = new Buffer("");
@@ -387,7 +392,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
387
392
  // JSON.stringify(Array.from(files[src]))
388
393
  // );
389
394
  if (code === 255) {
390
- console.log(ansi_colors_2.default.red(`node ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
395
+ console.log(ansi_colors_1.default.red(`node ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
391
396
  this.bddTestIsNowDone(src, -1);
392
397
  statusMessagePretty(-1, src, "node");
393
398
  oStream.close();
@@ -414,7 +419,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
414
419
  child.on("error", (e) => {
415
420
  console.log("error");
416
421
  haltReturns = true;
417
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${src} errored with: ${e.name}. Check ${errFile} for more info`)));
422
+ console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`${src} errored with: ${e.name}. Check ${errFile} for more info`)));
418
423
  this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
419
424
  this.bddTestIsNowDone(src, -1);
420
425
  statusMessagePretty(-1, src, "node");
@@ -426,7 +431,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
426
431
  const dest = src.split(".").slice(0, -1).join(".");
427
432
  // const d = dest + ".mjs";
428
433
  const destFolder = dest.replace(".mjs", "");
429
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`launchWebSideCar ${src}`)));
434
+ console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`launchWebSideCar ${src}`)));
430
435
  const fileStreams2 = [];
431
436
  const doneFileStream2 = [];
432
437
  const oStream = fs_1.default.createWriteStream(`${destFolder}/logs.txt`);
@@ -505,7 +510,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
505
510
  this.bddTestIsNowDone(src, fails);
506
511
  })
507
512
  .catch((e) => {
508
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`launchWebSidecar - ${src} errored with: ${e}`)));
513
+ console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`launchWebSidecar - ${src} errored with: ${e}`)));
509
514
  })
510
515
  .finally(() => {
511
516
  this.bddTestIsNowDone(src, -1);
@@ -525,7 +530,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
525
530
  const src = sidecar[0];
526
531
  const dest = process.cwd() + `/testeranto/bundles/node/${this.name}/${sidecar[0]}`;
527
532
  const d = dest + ".mjs";
528
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`launchNodeSideCar ${sidecar[0]}`)));
533
+ console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`launchNodeSideCar ${sidecar[0]}`)));
529
534
  const destFolder = dest.replace(".ts", "");
530
535
  const reportDest = `testeranto/reports/${this.name}/${src
531
536
  .split(".")
@@ -624,7 +629,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
624
629
  fs_1.default.rmSync(p);
625
630
  }
626
631
  haltReturns = true;
627
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`launchNodeSideCar - ${src} errored with: ${e.name}. Check ${errFile}for more info`)));
632
+ console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`launchNodeSideCar - ${src} errored with: ${e.name}. Check ${errFile}for more info`)));
628
633
  this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
629
634
  // this.bddTestIsNowDone(src, -1);
630
635
  // statusMessagePretty(-1, src);
@@ -636,7 +641,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
636
641
  return [r, argz];
637
642
  }
638
643
  else {
639
- console.log(ansi_colors_1.default.red(`cannot ${src} because there are no open ports. the job will be unqueued`));
644
+ console.log(ansi_colors_2.default.red(`cannot ${src} because there are no open ports. the job will be unqueued`));
640
645
  this.queue.push(sidecar[0]);
641
646
  return [Math.random(), argz];
642
647
  }
@@ -647,12 +652,12 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
647
652
  }
648
653
  };
649
654
  this.stopPureSideCar = async (uid) => {
650
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`stopPureSideCar ${uid}`)));
655
+ console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`stopPureSideCar ${uid}`)));
651
656
  await this.sidecars[uid].shutdown();
652
657
  return;
653
658
  };
654
659
  this.launchPureSideCar = async (sidecar) => {
655
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`launchPureSideCar ${sidecar[0]}`)));
660
+ console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`launchPureSideCar ${sidecar[0]}`)));
656
661
  const r = Math.random();
657
662
  const dest = process.cwd() + `/testeranto/bundles/pure/${this.name}/${sidecar[0]}`;
658
663
  const builtfile = dest.split(".").slice(0, -1).concat("mjs").join(".");
@@ -709,7 +714,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
709
714
  // }
710
715
  };
711
716
  this.launchWeb = async (src, dest) => {
712
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`web < ${src}`)));
717
+ console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`web < ${src}`)));
713
718
  this.bddTestIsRunning(src);
714
719
  const reportDest = `testeranto/reports/${this.name}/${src
715
720
  .split(".")
@@ -726,16 +731,6 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
726
731
  browserWSEndpoint: this.browser.wsEndpoint(),
727
732
  });
728
733
  const d = `${dest}?cacheBust=${Date.now()}`;
729
- const evaluation = `
730
-
731
- import('${d}').then(async (x) => {
732
-
733
- try {
734
- return await (await x.default).receiveTestResourceConfig(${webArgz})
735
- } catch (e) {
736
- console.log("web run failure", e.toString())
737
- }
738
- })`;
739
734
  const ofile = `${reportDest}/logs.txt`;
740
735
  const oStream = fs_1.default.createWriteStream(ofile);
741
736
  this.browser
@@ -774,11 +769,10 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
774
769
  page.close();
775
770
  oStream.close();
776
771
  });
777
- console.log("ostream is closed");
778
772
  return;
779
773
  };
780
774
  page.on("pageerror", (err) => {
781
- console.log(ansi_colors_2.default.red(`web ! ${src} failed to execute No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
775
+ console.log(ansi_colors_1.default.red(`web ! ${src} failed to execute No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`));
782
776
  oStream.write(err.name);
783
777
  oStream.write("\n");
784
778
  if (err.cause) {
@@ -797,7 +791,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
797
791
  close();
798
792
  });
799
793
  page.on("console", (log) => {
800
- console.log("console message: ", log.text());
794
+ // console.log("console message: ", log.text());
801
795
  if (oStream.closed) {
802
796
  console.log("missed console message: ", log.text());
803
797
  return;
@@ -813,19 +807,28 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
813
807
  });
814
808
  await page.goto(`file://${`${destFolder}.html`}`, {});
815
809
  await page
816
- .evaluate(evaluation)
810
+ .evaluate(`
811
+ import('${d}').then(async (x) => {
812
+ try {
813
+ return await (await x.default).receiveTestResourceConfig(${webArgz})
814
+ } catch (e) {
815
+ console.log("web run failure", e.toString())
816
+ }
817
+ })
818
+ `)
817
819
  .then(async ({ fails, failed, features }) => {
818
820
  statusMessagePretty(fails, src, "web");
819
821
  this.bddTestIsNowDone(src, fails);
820
- close();
822
+ // close();
821
823
  })
822
824
  .catch((e) => {
823
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(e)));
824
- console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`web ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`)));
825
+ console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(e.stack)));
826
+ console.log(ansi_colors_2.default.red(ansi_colors_2.default.inverse(`web ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`)));
825
827
  this.bddTestIsNowDone(src, -1);
826
828
  })
827
829
  .finally(() => {
828
830
  // process.exit(-1);
831
+ close();
829
832
  });
830
833
  return page;
831
834
  });
@@ -897,40 +900,40 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
897
900
  this.checkForShutdown = () => {
898
901
  // console.log(ansiC.inverse(JSON.stringify(this.summary, null, 2)));
899
902
  this.checkQueue();
900
- console.log(ansi_colors_1.default.inverse(`The following jobs are awaiting resources: ${JSON.stringify(this.queue)}`));
901
- console.log(ansi_colors_1.default.inverse(`The status of ports: ${JSON.stringify(this.ports)}`));
903
+ console.log(ansi_colors_2.default.inverse(`The following jobs are awaiting resources: ${JSON.stringify(this.queue)}`));
904
+ console.log(ansi_colors_2.default.inverse(`The status of ports: ${JSON.stringify(this.ports)}`));
902
905
  this.writeBigBoard();
903
906
  if (this.mode === "dev")
904
907
  return;
905
908
  let inflight = false;
906
909
  Object.keys(this.summary).forEach((k) => {
907
910
  if (this.summary[k].prompt === "?") {
908
- console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 prompt ${k}`)));
911
+ console.log(ansi_colors_2.default.blue(ansi_colors_2.default.inverse(`🕕 prompt ${k}`)));
909
912
  inflight = true;
910
913
  }
911
914
  });
912
915
  Object.keys(this.summary).forEach((k) => {
913
916
  if (this.summary[k].runTimeErrors === "?") {
914
- console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 runTimeError ${k}`)));
917
+ console.log(ansi_colors_2.default.blue(ansi_colors_2.default.inverse(`🕕 runTimeError ${k}`)));
915
918
  inflight = true;
916
919
  }
917
920
  });
918
921
  Object.keys(this.summary).forEach((k) => {
919
922
  if (this.summary[k].staticErrors === "?") {
920
- console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 staticErrors ${k}`)));
923
+ console.log(ansi_colors_2.default.blue(ansi_colors_2.default.inverse(`🕕 staticErrors ${k}`)));
921
924
  inflight = true;
922
925
  }
923
926
  });
924
927
  Object.keys(this.summary).forEach((k) => {
925
928
  if (this.summary[k].typeErrors === "?") {
926
- console.log(ansi_colors_1.default.blue(ansi_colors_1.default.inverse(`🕕 typeErrors ${k}`)));
929
+ console.log(ansi_colors_2.default.blue(ansi_colors_2.default.inverse(`🕕 typeErrors ${k}`)));
927
930
  inflight = true;
928
931
  }
929
932
  });
930
933
  this.writeBigBoard();
931
934
  if (!inflight) {
932
935
  this.browser.disconnect().then(() => {
933
- console.log(ansi_colors_1.default.inverse(`${this.name} has been tested. Goodbye.`));
936
+ console.log(ansi_colors_2.default.inverse(`${this.name} has been tested. Goodbye.`));
934
937
  process.exit();
935
938
  });
936
939
  }
@@ -946,7 +949,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
946
949
  });
947
950
  }
948
951
  async stopSideCar(uid) {
949
- console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`stopSideCar ${uid}`)));
952
+ console.log(ansi_colors_2.default.green(ansi_colors_2.default.inverse(`stopSideCar ${uid}`)));
950
953
  Object.entries(this.pureSidecars).forEach(async ([k, v]) => {
951
954
  if (Number(k) === uid) {
952
955
  await this.pureSidecars[Number(k)].stop();
@@ -1034,9 +1037,9 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
1034
1037
  slowMo: 1,
1035
1038
  waitForInitialPage: false,
1036
1039
  executablePath,
1037
- headless: false,
1040
+ headless: true,
1038
1041
  dumpio: false,
1039
- devtools: true,
1042
+ devtools: false,
1040
1043
  args: [
1041
1044
  "--disable-features=site-per-process",
1042
1045
  "--allow-file-access-from-files",
@@ -1111,7 +1114,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
1111
1114
  const hash = await fileHash(outputFile);
1112
1115
  if (fileHashes[inputFile] !== hash) {
1113
1116
  fileHashes[inputFile] = hash;
1114
- console.log(ansi_colors_1.default.yellow(ansi_colors_1.default.inverse(`< ${e} ${filename}`)));
1117
+ console.log(ansi_colors_2.default.yellow(ansi_colors_2.default.inverse(`< ${e} ${filename}`)));
1115
1118
  // launcher(inputFile, outputFile);
1116
1119
  this.launchers[inputFile]();
1117
1120
  }
@@ -1123,7 +1126,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
1123
1126
  });
1124
1127
  this.metafileOutputs(runtime);
1125
1128
  watcher((0, fs_1.watch)(metafile, async (e, filename) => {
1126
- console.log(ansi_colors_1.default.yellow(ansi_colors_1.default.inverse(`< ${e} ${filename} (${runtime})`)));
1129
+ console.log(ansi_colors_2.default.yellow(ansi_colors_2.default.inverse(`< ${e} ${filename} (${runtime})`)));
1127
1130
  this.metafileOutputs(runtime);
1128
1131
  }));
1129
1132
  });
@@ -1162,7 +1165,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
1162
1165
  // // });
1163
1166
  // }
1164
1167
  async stop() {
1165
- console.log(ansi_colors_1.default.inverse("Testeranto-Run is shutting down gracefully..."));
1168
+ console.log(ansi_colors_2.default.inverse("Testeranto-Run is shutting down gracefully..."));
1166
1169
  this.mode = "once";
1167
1170
  this.nodeMetafileWatcher.close();
1168
1171
  this.webMetafileWatcher.close();
@@ -1216,7 +1219,7 @@ class PM_Main extends PM_WithEslintAndTsc_js_1.PM_WithEslintAndTsc {
1216
1219
  checkQueue() {
1217
1220
  const x = this.queue.pop();
1218
1221
  if (!x) {
1219
- ansi_colors_1.default.inverse(`The following queue is empty`);
1222
+ ansi_colors_2.default.inverse(`The following queue is empty`);
1220
1223
  return;
1221
1224
  }
1222
1225
  const test = this.configs.tests.find((t) => t[0] === x);
@@ -114,7 +114,10 @@ class PM_Node extends _1.PM {
114
114
  async write(uid, contents) {
115
115
  return await this.send("write", ...arguments);
116
116
  }
117
- async writeFileSync(filepath, contents) {
117
+ async writeFileSync(x) {
118
+ const z = arguments["0"];
119
+ const filepath = z[0];
120
+ const contents = z[1];
118
121
  return await this.send("writeFileSync", this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
119
122
  }
120
123
  async createWriteStream(filepath) {
@@ -85,7 +85,10 @@ class PM_Pure extends _1.PM {
85
85
  write(uid, contents) {
86
86
  return globalThis["write"](uid, contents);
87
87
  }
88
- writeFileSync(filepath, contents) {
88
+ writeFileSync(x) {
89
+ const z = arguments["0"];
90
+ const filepath = z[0];
91
+ const contents = z[1];
89
92
  return globalThis["writeFileSync"](this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
90
93
  }
91
94
  createWriteStream(filepath) {
@@ -70,8 +70,8 @@ class PM_Web extends _1.PM {
70
70
  customScreenShot(x, y) {
71
71
  const opts = x[0];
72
72
  const page = x[1];
73
- console.log("customScreenShot 2 opts", opts);
74
- console.log("customScreenShot 2 page", page);
73
+ // console.log("customScreenShot 2 opts", opts);
74
+ // console.log("customScreenShot 2 page", page);
75
75
  return window["customScreenShot"](Object.assign(Object.assign({}, opts), { path: this.testResourceConfiguration.fs + "/" + opts.path }), this.testResourceConfiguration.name, page);
76
76
  }
77
77
  existsSync(destFolder) {
@@ -83,7 +83,10 @@ class PM_Web extends _1.PM {
83
83
  write(uid, contents) {
84
84
  return window["write"](uid, contents);
85
85
  }
86
- writeFileSync(filepath, contents) {
86
+ writeFileSync(x) {
87
+ const z = arguments["0"];
88
+ const filepath = z[0];
89
+ const contents = z[1];
87
90
  return window["writeFileSync"](this.testResourceConfiguration.fs + "/" + filepath, contents, this.testResourceConfiguration.name);
88
91
  }
89
92
  createWriteStream(filepath) {
@@ -14,10 +14,8 @@ class PureTesteranto extends core_js_1.default {
14
14
  });
15
15
  }
16
16
  async receiveTestResourceConfig(partialTestResource) {
17
- console.log("[DEBUG] receiveTestResourceConfig called with:", partialTestResource);
18
17
  const t = JSON.parse(partialTestResource);
19
18
  const pm = new pure_js_1.PM_Pure(t);
20
- // console.log("[DEBUG] Current test jobs:", this.testJobs?.length);
21
19
  // if (!this.testJobs || this.testJobs.length === 0) {
22
20
  // console.error(
23
21
  // "[ERROR] No test jobs available - checking specs:",
@@ -33,9 +31,7 @@ class PureTesteranto extends core_js_1.default {
33
31
  // };
34
32
  // }
35
33
  try {
36
- console.log("[DEBUG] Executing test job with PM:", pm);
37
34
  const result = await this.testJobs[0].receiveTestResourceConfig(pm);
38
- console.log("[DEBUG] Test job completed with result:", result);
39
35
  return result;
40
36
  }
41
37
  catch (e) {
@@ -53,7 +53,7 @@ const implementation = {
53
53
  modifySpecs: (modifier) => (store) => {
54
54
  console.debug("[DEBUG] Modifying specs");
55
55
  return Object.assign(Object.assign({}, store), { specs: modifier(store.specs || []) });
56
- }
56
+ },
57
57
  },
58
58
  thens: {
59
59
  initializedProperly: () => (store) => {
@@ -1,129 +1,5 @@
1
1
  "use strict";
2
2
  // simple http server to preview reports
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
- const node_static_1 = __importDefault(require("node-static"));
8
- const http_1 = __importDefault(require("http"));
9
- const path_1 = __importDefault(require("path"));
10
- const fs_1 = __importDefault(require("fs"));
11
- const fileServer = new node_static_1.default.Server("./", {
12
- cache: false,
13
- headers: {
14
- "Cache-Control": "no-cache, no-store, must-revalidate",
15
- "Pragma": "no-cache",
16
- "Expires": "0"
17
- }
18
- });
19
- const server = http_1.default.createServer((req, res) => {
20
- // Handle potential double responses
21
- let responded = false;
22
- const safeResponse = (handler) => {
23
- if (responded)
24
- return;
25
- responded = true;
26
- try {
27
- handler();
28
- }
29
- catch (err) {
30
- console.error('Error handling request:', err);
31
- if (!res.headersSent) {
32
- res.writeHead(500);
33
- }
34
- res.end('Internal Server Error');
35
- }
36
- };
37
- req.on('error', (err) => {
38
- console.error('Request error:', err);
39
- safeResponse(() => {
40
- if (!res.headersSent) {
41
- res.writeHead(400);
42
- }
43
- res.end('Bad Request');
44
- });
45
- });
46
- req.on('end', () => {
47
- safeResponse(() => {
48
- const filePath = path_1.default.join(process.cwd(), req.url || '');
49
- // First check if file exists
50
- fs_1.default.stat(filePath, (err, stats) => {
51
- if (err || !stats.isFile()) {
52
- // Check if directory exists
53
- fs_1.default.stat(filePath, (dirErr, dirStats) => {
54
- if (!dirErr && dirStats.isDirectory()) {
55
- // Serve directory listing
56
- fs_1.default.readdir(filePath, (readErr, files) => {
57
- if (readErr) {
58
- res.writeHead(500);
59
- return res.end('Error reading directory');
60
- }
61
- res.writeHead(200, { 'Content-Type': 'text/html' });
62
- res.write(`
63
- <html>
64
- <head>
65
- <title>Directory Listing: ${req.url}</title>
66
- <style>
67
- body { font-family: sans-serif; margin: 2rem; }
68
- h1 { color: #333; }
69
- ul { list-style: none; padding: 0; }
70
- li { padding: 0.5rem; }
71
- li a { color: #0366d6; text-decoration: none; }
72
- li a:hover { text-decoration: underline; }
73
- </style>
74
- </head>
75
- <body>
76
- <h1>Directory: ${req.url}</h1>
77
- <ul>
78
- ${files.map(file => `
79
- <li>
80
- <a href="${path_1.default.join(req.url || '', file)}">
81
- ${file}${file.endsWith('/') ? '/' : ''}
82
- </a>
83
- </li>
84
- `).join('')}
85
- </ul>
86
- </body>
87
- </html>
88
- `);
89
- res.end();
90
- });
91
- }
92
- else {
93
- // Neither file nor directory exists - send 404
94
- if (!res.headersSent) {
95
- res.writeHead(404, { 'Content-Type': 'text/plain' });
96
- res.end('File not found');
97
- }
98
- }
99
- });
100
- return;
101
- }
102
- // File exists - serve it through node-static
103
- const serve = () => {
104
- fileServer.serve(req, res, (err) => {
105
- if (err && !res.headersSent) {
106
- res.writeHead(err.status || 500);
107
- res.end(err.message);
108
- }
109
- });
110
- };
111
- // Ensure we don't double-serve
112
- if (!res.headersSent) {
113
- serve();
114
- }
115
- });
116
- });
117
- });
118
- req.resume();
119
- });
120
- server.listen(8080, () => {
121
- console.log('Server running on http://localhost:8080');
122
- console.log('Serving files from:', process.cwd());
123
- });
124
- server.on('error', (err) => {
125
- console.error('Server error:', err);
126
- });
127
- process.on('uncaughtException', (err) => {
128
- console.error('Uncaught exception:', err);
129
- });
4
+ const ReportServerLib_1 = require("./ReportServerLib");
5
+ (0, ReportServerLib_1.ReportServerOfPort)(process.argv[2]);