testeranto 0.100.0 → 0.110.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 (285) hide show
  1. package/README.md +1 -0
  2. package/bundle.js +80 -30
  3. package/dist/common/{dist/module/src/Init.js → Init.js} +28 -0
  4. package/dist/common/{src/PM → PM}/main.js +138 -95
  5. package/dist/common/ReportServer.js +22 -0
  6. package/dist/common/{src/SubPackages → SubPackages}/react/jsx/index.js +0 -12
  7. package/dist/common/{src/SubPackages → SubPackages}/react-dom/component/node.js +3 -16
  8. package/dist/common/{src/SubPackages → SubPackages}/react-dom/component/web.js +3 -3
  9. package/dist/common/{src/SubPackages → SubPackages}/react-dom/jsx/node.js +1 -1
  10. package/dist/common/{src/SubPackages → SubPackages}/react-dom/jsx/web.js +41 -30
  11. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/MemoExoticComponent/node.js +17 -7
  12. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/component/interface.js +17 -7
  13. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/fc/node.js +17 -7
  14. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/fc/web.js +17 -7
  15. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx/index.js +18 -14
  16. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/index.js +17 -7
  17. package/dist/common/build.js +222 -0
  18. package/dist/common/{src/defaultConfig.js → defaultConfig.js} +1 -0
  19. package/dist/common/esbuildConfigs/eslint-formatter-testeranto.js +6 -0
  20. package/dist/common/esbuildConfigs/inputFilesPlugin.js +27 -0
  21. package/dist/common/{src/esbuildConfigs → esbuildConfigs}/node.js +2 -10
  22. package/dist/common/{src/esbuildConfigs → esbuildConfigs}/web.js +2 -13
  23. package/dist/common/{src/init-docs.js → init-docs.js} +20 -10
  24. package/dist/common/{src/lib → lib}/abstractBase.js +6 -1
  25. package/dist/common/{src/lib → lib}/basebuilder.js +23 -10
  26. package/dist/common/{src/lib → lib}/classBuilder.js +1 -3
  27. package/dist/common/{src/lib → lib}/core.js +26 -10
  28. package/dist/common/{src/lib → lib}/index.js +0 -1
  29. package/dist/common/{src/lib → lib}/types.js +0 -1
  30. package/dist/common/run.js +297 -0
  31. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  32. package/dist/common/utils.js +43 -0
  33. package/dist/module/Footer.js +4 -0
  34. package/dist/module/Init.js +63 -0
  35. package/dist/module/{src/PM → PM}/main.js +119 -86
  36. package/dist/module/ReportClient.js +97 -0
  37. package/dist/module/ReportServer.js +17 -0
  38. package/dist/module/SubPackages/react/jsx/index.js +15 -0
  39. package/dist/module/{src/SubPackages → SubPackages}/react-dom/component/node.js +3 -16
  40. package/dist/module/{src/SubPackages → SubPackages}/react-dom/component/web.js +3 -3
  41. package/dist/module/{src/SubPackages → SubPackages}/react-dom/jsx/node.js +3 -3
  42. package/dist/module/{src/SubPackages → SubPackages}/react-dom/jsx/web.js +24 -23
  43. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx/index.js +1 -7
  44. package/dist/module/TestReport.js +91 -0
  45. package/dist/module/build.js +184 -0
  46. package/dist/module/{src/defaultConfig.js → defaultConfig.js} +1 -0
  47. package/dist/module/esbuildConfigs/eslint-formatter-testeranto.js +3 -0
  48. package/dist/module/esbuildConfigs/inputFilesPlugin.js +22 -0
  49. package/dist/module/{src/esbuildConfigs → esbuildConfigs}/node.js +2 -10
  50. package/dist/module/{src/esbuildConfigs → esbuildConfigs}/web.js +2 -13
  51. package/dist/module/{src/init-docs.js → init-docs.js} +1 -1
  52. package/dist/module/{src/lib → lib}/abstractBase.js +6 -1
  53. package/dist/module/{src/lib → lib}/basebuilder.js +23 -10
  54. package/dist/module/{src/lib → lib}/classBuilder.js +1 -3
  55. package/dist/module/{src/lib → lib}/core.js +26 -10
  56. package/dist/module/{src/lib → lib}/index.js +0 -1
  57. package/dist/module/run.js +259 -0
  58. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  59. package/dist/module/utils.js +29 -0
  60. package/dist/prebuild/ReportClient.css +11367 -0
  61. package/dist/prebuild/ReportClient.js +23641 -0
  62. package/dist/prebuild/ReportServer.mjs +16 -0
  63. package/dist/prebuild/TestReport.css +11367 -0
  64. package/dist/prebuild/TestReport.js +27484 -0
  65. package/dist/prebuild/build.mjs +376 -0
  66. package/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs +9 -0
  67. package/dist/prebuild/init-docs.mjs +64 -8
  68. package/dist/prebuild/{cli2.mjs → run.mjs} +353 -81
  69. package/dist/tsconfig.tsbuildinfo +1 -0
  70. package/dist/types/Node.d.ts +12 -0
  71. package/dist/types/{src/PM → PM}/index.d.ts +1 -1
  72. package/dist/types/{src/PM → PM}/main.d.ts +12 -9
  73. package/dist/types/{src/PM → PM}/node.d.ts +2 -4
  74. package/dist/types/{src/PM → PM}/web.d.ts +2 -4
  75. package/dist/types/SubPackages/react/component/node.d.ts +7 -0
  76. package/dist/types/SubPackages/react/component/web.d.ts +7 -0
  77. package/dist/types/SubPackages/react/jsx/index.d.ts +12 -0
  78. package/dist/types/SubPackages/react/jsx/node.d.ts +4 -0
  79. package/dist/types/SubPackages/react/jsx/web.d.ts +4 -0
  80. package/dist/types/SubPackages/react-dom/component/node.d.ts +11 -0
  81. package/dist/types/SubPackages/react-dom/component/web.d.ts +20 -0
  82. package/dist/types/SubPackages/react-dom/jsx/index.d.ts +6 -0
  83. package/dist/types/SubPackages/react-dom/jsx/node.d.ts +7 -0
  84. package/dist/types/SubPackages/react-dom/jsx/web.d.ts +5 -0
  85. package/dist/types/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +6 -0
  86. package/dist/types/SubPackages/react-test-renderer/component/index.d.ts +13 -0
  87. package/dist/types/SubPackages/react-test-renderer/component/node.d.ts +4 -0
  88. package/dist/types/SubPackages/react-test-renderer/component/web.d.ts +4 -0
  89. package/dist/types/SubPackages/react-test-renderer/fc/node.d.ts +8 -0
  90. package/dist/types/SubPackages/react-test-renderer/fc/web.d.ts +9 -0
  91. package/dist/types/SubPackages/react-test-renderer/jsx/index.d.ts +16 -0
  92. package/dist/types/SubPackages/react-test-renderer/jsx/node.d.ts +9 -0
  93. package/dist/types/SubPackages/react-test-renderer/jsx/web.d.ts +9 -0
  94. package/dist/types/SubPackages/react-test-renderer/jsx-promised/index.d.ts +15 -0
  95. package/dist/types/SubPackages/react-test-renderer/jsx-promised/node.d.ts +5 -0
  96. package/dist/types/SubPackages/react-test-renderer/jsx-promised/web.d.ts +5 -0
  97. package/dist/types/Types.d.ts +61 -0
  98. package/dist/types/Web.d.ts +9 -0
  99. package/dist/types/defaultConfig.d.ts +3 -0
  100. package/dist/types/esbuildConfigs/eslint-formatter-testeranto.d.ts +2 -0
  101. package/dist/types/{src/esbuildConfigs → esbuildConfigs}/index.d.ts +1 -1
  102. package/dist/types/{src/esbuildConfigs → esbuildConfigs}/inputFilesPlugin.d.ts +0 -1
  103. package/dist/types/{src/esbuildConfigs → esbuildConfigs}/node.d.ts +1 -1
  104. package/dist/types/{src/esbuildConfigs → esbuildConfigs}/web.d.ts +1 -1
  105. package/dist/types/init-docs.d.ts +1 -0
  106. package/dist/types/lib/abstractBase.d.ts +110 -0
  107. package/dist/types/lib/basebuilder.d.ts +27 -0
  108. package/dist/types/lib/classBuilder.d.ts +7 -0
  109. package/dist/types/lib/core.d.ts +7 -0
  110. package/dist/types/lib/index.d.ts +83 -0
  111. package/dist/types/lib/types.d.ts +14 -0
  112. package/dist/types/run.d.ts +1 -0
  113. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  114. package/dist/types/utils.d.ts +9 -0
  115. package/package.json +40 -32
  116. package/src/Footer.tsx +4 -0
  117. package/src/Init.ts +48 -0
  118. package/src/Node.ts +23 -17
  119. package/src/PM/index.ts +1 -1
  120. package/src/PM/main.ts +143 -101
  121. package/src/PM/node.ts +2 -2
  122. package/src/PM/web.ts +1 -1
  123. package/src/ReportClient.tsx +155 -0
  124. package/src/ReportServer.ts +21 -0
  125. package/src/SubPackages/react/component/node.ts +68 -24
  126. package/src/SubPackages/react/component/web.ts +68 -25
  127. package/src/SubPackages/react/jsx/index.ts +39 -18
  128. package/src/SubPackages/react/jsx/node.ts +12 -10
  129. package/src/SubPackages/react/jsx/web.ts +27 -14
  130. package/src/SubPackages/react-dom/component/node.ts +42 -50
  131. package/src/SubPackages/react-dom/component/web.ts +28 -10
  132. package/src/SubPackages/react-dom/jsx/node.ts +54 -56
  133. package/src/SubPackages/react-dom/jsx/web.ts +55 -42
  134. package/src/SubPackages/react-test-renderer/MemoExoticComponent/node.ts +23 -7
  135. package/src/SubPackages/react-test-renderer/component/index.ts +38 -5
  136. package/src/SubPackages/react-test-renderer/component/node.ts +24 -5
  137. package/src/SubPackages/react-test-renderer/component/web.ts +22 -5
  138. package/src/SubPackages/react-test-renderer/fc/node.ts +41 -7
  139. package/src/SubPackages/react-test-renderer/fc/web.ts +43 -11
  140. package/src/SubPackages/react-test-renderer/jsx/index.ts +39 -16
  141. package/src/SubPackages/react-test-renderer/jsx/node.ts +8 -6
  142. package/src/SubPackages/react-test-renderer/jsx/web.ts +22 -5
  143. package/src/SubPackages/react-test-renderer/jsx-promised/index.ts +39 -6
  144. package/src/SubPackages/react-test-renderer/jsx-promised/node.ts +27 -10
  145. package/src/SubPackages/react-test-renderer/jsx-promised/web.ts +26 -12
  146. package/src/TestReport.tsx +176 -0
  147. package/src/Types.ts +63 -309
  148. package/src/Web.ts +24 -18
  149. package/src/build.ts +240 -0
  150. package/src/defaultConfig.ts +2 -1
  151. package/src/esbuildConfigs/eslint-formatter-testeranto.ts +5 -0
  152. package/src/esbuildConfigs/featuresPlugin.ts +0 -1
  153. package/src/esbuildConfigs/index.ts +1 -1
  154. package/src/esbuildConfigs/inputFilesPlugin.ts +2 -135
  155. package/src/esbuildConfigs/node.ts +4 -13
  156. package/src/esbuildConfigs/web.ts +3 -19
  157. package/src/init-docs.ts +2 -1
  158. package/src/lib/abstractBase.ts +82 -80
  159. package/src/lib/basebuilder.ts +57 -45
  160. package/src/lib/classBuilder.ts +15 -15
  161. package/src/lib/core.ts +44 -35
  162. package/src/lib/index.ts +47 -98
  163. package/src/lib/readme.md +12 -0
  164. package/src/lib/types.ts +53 -70
  165. package/src/run.ts +398 -0
  166. package/src/style.css +8 -0
  167. package/src/utils.ts +74 -2
  168. package/tsc.log +106 -0
  169. package/Bundle.Dockerfile +0 -52
  170. package/bin/init-docs.js +0 -24
  171. package/dist/common/src/Init.js +0 -40
  172. package/dist/common/src/SubPackages/puppeteer.js +0 -21
  173. package/dist/common/src/cli.js +0 -439
  174. package/dist/common/src/cli2.js +0 -144
  175. package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -99
  176. package/dist/common/src/utils.js +0 -16
  177. package/dist/common/testeranto.js +0 -15
  178. package/dist/module/src/Init.js +0 -35
  179. package/dist/module/src/SubPackages/puppeteer.js +0 -16
  180. package/dist/module/src/SubPackages/react/jsx/index.js +0 -27
  181. package/dist/module/src/cli.js +0 -411
  182. package/dist/module/src/cli2.js +0 -116
  183. package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -94
  184. package/dist/module/src/lib/types.js +0 -2
  185. package/dist/module/src/utils.js +0 -9
  186. package/dist/module/testeranto.js +0 -13
  187. package/dist/prebuild/cli.mjs +0 -1491
  188. package/dist/types/dist/module/src/Init.d.ts +0 -2
  189. package/dist/types/src/Node.d.ts +0 -13
  190. package/dist/types/src/SubPackages/puppeteer.d.ts +0 -6
  191. package/dist/types/src/SubPackages/react/component/node.d.ts +0 -7
  192. package/dist/types/src/SubPackages/react/component/web.d.ts +0 -7
  193. package/dist/types/src/SubPackages/react/jsx/index.d.ts +0 -12
  194. package/dist/types/src/SubPackages/react/jsx/node.d.ts +0 -4
  195. package/dist/types/src/SubPackages/react/jsx/web.d.ts +0 -4
  196. package/dist/types/src/SubPackages/react-dom/component/node.d.ts +0 -12
  197. package/dist/types/src/SubPackages/react-dom/component/web.d.ts +0 -11
  198. package/dist/types/src/SubPackages/react-dom/jsx/index.d.ts +0 -7
  199. package/dist/types/src/SubPackages/react-dom/jsx/node.d.ts +0 -6
  200. package/dist/types/src/SubPackages/react-dom/jsx/web.d.ts +0 -5
  201. package/dist/types/src/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +0 -5
  202. package/dist/types/src/SubPackages/react-test-renderer/component/index.d.ts +0 -13
  203. package/dist/types/src/SubPackages/react-test-renderer/component/node.d.ts +0 -8
  204. package/dist/types/src/SubPackages/react-test-renderer/component/web.d.ts +0 -3
  205. package/dist/types/src/SubPackages/react-test-renderer/fc/node.d.ts +0 -8
  206. package/dist/types/src/SubPackages/react-test-renderer/fc/web.d.ts +0 -8
  207. package/dist/types/src/SubPackages/react-test-renderer/jsx/index.d.ts +0 -17
  208. package/dist/types/src/SubPackages/react-test-renderer/jsx/node.d.ts +0 -9
  209. package/dist/types/src/SubPackages/react-test-renderer/jsx/web.d.ts +0 -8
  210. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/index.d.ts +0 -16
  211. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/node.d.ts +0 -4
  212. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/web.d.ts +0 -4
  213. package/dist/types/src/Types.d.ts +0 -90
  214. package/dist/types/src/Web.d.ts +0 -10
  215. package/dist/types/src/defaultConfig.d.ts +0 -3
  216. package/dist/types/src/lib/abstractBase.d.ts +0 -110
  217. package/dist/types/src/lib/basebuilder.d.ts +0 -27
  218. package/dist/types/src/lib/classBuilder.d.ts +0 -7
  219. package/dist/types/src/lib/core.d.ts +0 -8
  220. package/dist/types/src/lib/index.d.ts +0 -60
  221. package/dist/types/src/lib/types.d.ts +0 -40
  222. package/dist/types/src/utils.d.ts +0 -2
  223. package/dist/types/testeranto.d.ts +0 -16
  224. package/docker-compose.yml +0 -37
  225. package/src/SubPackages/puppeteer.ts +0 -51
  226. package/src/cli.ts +0 -535
  227. package/src/cli2.ts +0 -157
  228. package/testeranto.ts +0 -13
  229. package/dist/common/{src/Node.js → Node.js} +0 -0
  230. package/dist/common/{src/PM → PM}/index.js +0 -0
  231. package/dist/common/{src/PM → PM}/node.js +0 -0
  232. package/dist/common/{src/PM → PM}/web.js +0 -0
  233. package/dist/common/{src/SubPackages → SubPackages}/react/component/node.js +0 -0
  234. package/dist/common/{src/SubPackages → SubPackages}/react/component/web.js +0 -0
  235. package/dist/common/{src/SubPackages → SubPackages}/react/jsx/node.js +0 -0
  236. package/dist/common/{src/SubPackages → SubPackages}/react/jsx/web.js +0 -0
  237. package/dist/common/{src/SubPackages → SubPackages}/react-dom/jsx/index.js +0 -0
  238. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/component/index.js +0 -0
  239. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/component/node.js +0 -0
  240. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/component/web.js +0 -0
  241. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx/node.js +0 -0
  242. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx/web.js +0 -0
  243. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/node.js +1 -1
  244. package/dist/common/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
  245. package/dist/common/{src/Types.js → Types.js} +0 -0
  246. package/dist/common/{src/Web.js → Web.js} +0 -0
  247. package/dist/common/{src/esbuildConfigs → esbuildConfigs}/featuresPlugin.js +0 -0
  248. package/dist/common/{src/esbuildConfigs → esbuildConfigs}/index.js +0 -0
  249. package/dist/common/{src/puppeteerConfiger.js → puppeteerConfiger.js} +0 -0
  250. package/dist/common/{src/web.html.js → web.html.js} +0 -0
  251. package/dist/module/{src/Node.js → Node.js} +0 -0
  252. package/dist/module/{src/PM → PM}/index.js +0 -0
  253. package/dist/module/{src/PM → PM}/node.js +0 -0
  254. package/dist/module/{src/PM → PM}/web.js +0 -0
  255. package/dist/module/{src/SubPackages → SubPackages}/react/component/node.js +0 -0
  256. package/dist/module/{src/SubPackages → SubPackages}/react/component/web.js +0 -0
  257. package/dist/module/{src/SubPackages → SubPackages}/react/jsx/node.js +0 -0
  258. package/dist/module/{src/SubPackages → SubPackages}/react/jsx/web.js +0 -0
  259. package/dist/module/{src/SubPackages → SubPackages}/react-dom/jsx/index.js +0 -0
  260. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/MemoExoticComponent/node.js +0 -0
  261. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/component/index.js +0 -0
  262. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/component/interface.js +0 -0
  263. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/component/node.js +0 -0
  264. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/component/web.js +0 -0
  265. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/fc/node.js +0 -0
  266. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/fc/web.js +0 -0
  267. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx/node.js +0 -0
  268. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx/web.js +0 -0
  269. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/index.js +0 -0
  270. package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/node.js +1 -1
  271. /package/dist/module/{src/SubPackages → SubPackages}/react-test-renderer/jsx-promised/web.js +0 -0
  272. /package/dist/module/{src/Types.js → Types.js} +0 -0
  273. /package/dist/module/{src/Web.js → Web.js} +0 -0
  274. /package/dist/module/{src/esbuildConfigs → esbuildConfigs}/featuresPlugin.js +0 -0
  275. /package/dist/module/{src/esbuildConfigs → esbuildConfigs}/index.js +0 -0
  276. /package/dist/{types/src/cli.d.ts → module/lib/types.js} +0 -0
  277. /package/dist/module/{src/puppeteerConfiger.js → puppeteerConfiger.js} +0 -0
  278. /package/dist/module/{src/web.html.js → web.html.js} +0 -0
  279. /package/dist/types/{src/Init.d.ts → Init.d.ts} +0 -0
  280. /package/dist/types/{src/cli2.d.ts → ReportServer.d.ts} +0 -0
  281. /package/dist/types/{src/SubPackages → SubPackages}/react-test-renderer/component/interface.d.ts +0 -0
  282. /package/dist/types/{src/init-docs.d.ts → build.d.ts} +0 -0
  283. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/featuresPlugin.d.ts +0 -0
  284. /package/dist/types/{src/puppeteerConfiger.d.ts → puppeteerConfiger.d.ts} +0 -0
  285. /package/dist/types/{src/web.html.d.ts → web.html.d.ts} +0 -0
@@ -1,13 +1,64 @@
1
1
  import { createRequire } from 'module';const require = createRequire(import.meta.url);
2
2
 
3
- // src/cli2.ts
3
+ // src/run.ts
4
+ import ansiC2 from "ansi-colors";
4
5
  import { watch } from "fs";
6
+ import path3 from "path";
7
+ import crypto from "node:crypto";
8
+ import fs2 from "fs";
9
+ import tsc from "tsc-prog";
10
+ import { ESLint } from "eslint";
11
+ import ts from "typescript";
12
+ import readline from "readline";
5
13
 
6
14
  // src/PM/main.ts
7
15
  import fs from "fs";
8
- import path from "path";
16
+ import path2 from "path";
9
17
  import puppeteer from "puppeteer-core";
10
- import crypto from "crypto";
18
+ import ansiC from "ansi-colors";
19
+
20
+ // src/utils.ts
21
+ import path from "path";
22
+ var tscPather = (entryPoint, platform) => {
23
+ return path.join(
24
+ "./docs/",
25
+ platform,
26
+ entryPoint.split(".").slice(0, -1).join("."),
27
+ `type_errors.txt`
28
+ );
29
+ };
30
+ var tscExitCodePather = (entryPoint, platform) => {
31
+ return path.join(
32
+ "./docs/",
33
+ platform,
34
+ entryPoint.split(".").slice(0, -1).join("."),
35
+ `type_errors.txt`
36
+ );
37
+ };
38
+ var lintPather = (entryPoint, platform) => {
39
+ return path.join(
40
+ "./docs/",
41
+ platform,
42
+ entryPoint.split(".").slice(0, -1).join("."),
43
+ `lint_errors.json`
44
+ );
45
+ };
46
+ var lintExitCodePather = (entryPoint, platform) => {
47
+ return path.join(
48
+ "./docs/",
49
+ platform,
50
+ entryPoint.split(".").slice(0, -1).join("."),
51
+ `lint_errors.txt`
52
+ );
53
+ };
54
+ var bddExitCodePather = (entryPoint, platform) => {
55
+ return path.join(
56
+ "./docs/",
57
+ platform,
58
+ entryPoint.split(".").slice(0, -1).join("."),
59
+ `bdd_errors.txt`
60
+ );
61
+ };
11
62
 
12
63
  // src/PM/index.ts
13
64
  var PM = class {
@@ -19,49 +70,80 @@ var fPaths = [];
19
70
  var files = {};
20
71
  var recorders = {};
21
72
  var screenshots = {};
22
- var red = "\x1B[31m";
23
- var green = "\x1B[32m";
24
- var reset = "\x1B[0m";
25
73
  var statusMessagePretty = (failures, test) => {
26
74
  if (failures === 0) {
27
- console.log(green + `${test} completed successfully` + reset);
75
+ console.log(ansiC.green(ansiC.inverse(`> ${test} completed successfully`)));
28
76
  } else {
29
- console.log(red + `${test} failed ${failures} times` + reset);
77
+ console.log(ansiC.red(ansiC.inverse(`> ${test} failed ${failures} times`)));
30
78
  }
31
79
  };
80
+ async function writeFileAndCreateDir(filePath, data) {
81
+ const dirPath = path2.dirname(filePath);
82
+ try {
83
+ await fs.promises.mkdir(dirPath, { recursive: true });
84
+ await fs.appendFileSync(filePath, data);
85
+ } catch (error) {
86
+ console.error(`Error writing file: ${error}`);
87
+ }
88
+ }
89
+ function isValidUrl(string) {
90
+ try {
91
+ new URL(string);
92
+ return true;
93
+ } catch (err) {
94
+ return false;
95
+ }
96
+ }
32
97
  var PM_Main = class extends PM {
33
98
  constructor(configs) {
34
99
  super();
35
100
  this.shutdownMode = false;
101
+ this.bigBoard = {};
36
102
  this.checkForShutdown = () => {
37
- const anyRunning = Object.values(this.registry).filter((x) => x === false).length > 0;
103
+ const anyRunning = Object.values(this.bigBoard).filter((x) => x.status === "running").length > 0;
38
104
  if (anyRunning) {
39
105
  } else {
40
106
  this.browser.disconnect().then(() => {
41
- console.log("Goodbye");
107
+ const final = {
108
+ timestamp: Date.now(),
109
+ tests: this.configs.tests.reduce((mm, t) => {
110
+ const bddErrors = fs.readFileSync(bddExitCodePather(t[0], t[1])).toString();
111
+ const lintErrors = fs.readFileSync(lintExitCodePather(t[0], t[1])).toString();
112
+ const typeErrors = fs.readFileSync(tscExitCodePather(t[0], t[1])).toString();
113
+ mm[t[0]] = {
114
+ bddErrors,
115
+ lintErrors,
116
+ typeErrors
117
+ };
118
+ return mm;
119
+ }, {})
120
+ };
121
+ const s = JSON.stringify(final, null, 2);
122
+ fs.writeFileSync("docs/summary.json", s);
123
+ console.log(ansiC.inverse("Goodbye"));
42
124
  process.exit();
43
125
  });
44
126
  }
45
127
  };
46
- this.register = (src) => {
47
- this.registry[src] = false;
128
+ this.testIsNowRunning = (src) => {
129
+ this.bigBoard[src].status = "running";
48
130
  };
49
- this.deregister = (src) => {
50
- this.registry[src] = true;
131
+ this.testIsNowDone = (src) => {
132
+ this.bigBoard[src].status = "waiting";
51
133
  if (this.shutdownMode) {
52
134
  this.checkForShutdown();
53
135
  }
54
136
  };
55
137
  this.launchNode = async (src, dest) => {
56
- console.log("! node", src);
57
- this.register(src);
138
+ console.log(ansiC.green(ansiC.inverse(`! node, ${src}`)));
139
+ this.testIsNowRunning(src);
58
140
  const destFolder = dest.replace(".mjs", "");
59
141
  let argz = "";
60
142
  const testConfig = this.configs.tests.find((t) => {
61
143
  return t[0] === src;
62
144
  });
63
145
  if (!testConfig) {
64
- console.error("missing test config");
146
+ console.log(ansiC.inverse("missing test config! Exiting ungracefully!"));
65
147
  process.exit(-1);
66
148
  }
67
149
  const testConfigResource = testConfig[2];
@@ -106,11 +188,12 @@ var PM_Main = class extends PM {
106
188
  defaultModule.receiveTestResourceConfig(argz).then(async ({ features, failed }) => {
107
189
  this.receiveFeatures(features, destFolder, src);
108
190
  statusMessagePretty(failed, src);
191
+ this.receiveExitCode(src, failed);
109
192
  }).catch((e) => {
110
- console.log(`${src} errored with`, e);
193
+ console.log(ansiC.red(ansiC.inverse(`${src} errored with: ${e}`)));
111
194
  }).finally(() => {
112
195
  webSideCares.forEach((webSideCar) => webSideCar.close());
113
- this.deregister(src);
196
+ this.testIsNowDone(src);
114
197
  });
115
198
  });
116
199
  });
@@ -122,7 +205,7 @@ var PM_Main = class extends PM {
122
205
  };
123
206
  this.launchWebSideCar = async (src, dest, testConfig) => {
124
207
  const d = dest + ".mjs";
125
- console.log("launchWebSideCar", src, dest, d);
208
+ console.log(ansiC.green(ansiC.inverse(`launchWebSideCar ${src}`)));
126
209
  const destFolder = dest.replace(".mjs", "");
127
210
  const fileStreams2 = [];
128
211
  const doneFileStream2 = [];
@@ -132,7 +215,7 @@ var PM_Main = class extends PM {
132
215
  "custom-screenshot",
133
216
  async (ssOpts, testName) => {
134
217
  const p = ssOpts.path;
135
- const dir = path.dirname(p);
218
+ const dir = path2.dirname(p);
136
219
  fs.mkdirSync(dir, {
137
220
  recursive: true
138
221
  });
@@ -152,7 +235,7 @@ var PM_Main = class extends PM {
152
235
  page.exposeFunction(
153
236
  "writeFileSync",
154
237
  (fp, contents, testName) => {
155
- const dir = path.dirname(fp);
238
+ const dir = path2.dirname(fp);
156
239
  fs.mkdirSync(dir, {
157
240
  recursive: true
158
241
  });
@@ -216,7 +299,7 @@ var PM_Main = class extends PM {
216
299
  };
217
300
  this.launchNodeSideCar = async (src, dest, testConfig) => {
218
301
  const d = dest + ".mjs";
219
- console.log("launchNodeSideCar", src, dest, d);
302
+ console.log(ansiC.green(ansiC.inverse(`launchNodeSideCar ${src}`)));
220
303
  const destFolder = dest.replace(".mjs", "");
221
304
  let argz = "";
222
305
  const testConfigResource = testConfig[2];
@@ -268,8 +351,8 @@ var PM_Main = class extends PM {
268
351
  }
269
352
  };
270
353
  this.launchWeb = (t, dest) => {
271
- console.log("! web", t);
272
- this.register(t);
354
+ console.log(ansiC.green(ansiC.inverse(`! web ${t}`)));
355
+ this.testIsNowRunning(t);
273
356
  const destFolder = dest.replace(".mjs", "");
274
357
  const webArgz = JSON.stringify({
275
358
  name: dest,
@@ -279,9 +362,9 @@ var PM_Main = class extends PM {
279
362
  });
280
363
  const d = `${dest}?cacheBust=${Date.now()}`;
281
364
  const evaluation = `
282
- console.log("importing ${d}");
365
+
283
366
  import('${d}').then(async (x) => {
284
- console.log("imported", (await x.default));
367
+
285
368
  try {
286
369
  return await (await x.default).receiveTestResourceConfig(${webArgz})
287
370
  } catch (e) {
@@ -297,7 +380,7 @@ var PM_Main = class extends PM {
297
380
  "screencast",
298
381
  async (ssOpts, testName) => {
299
382
  const p = ssOpts.path;
300
- const dir = path.dirname(p);
383
+ const dir = path2.dirname(p);
301
384
  fs.mkdirSync(dir, {
302
385
  recursive: true
303
386
  });
@@ -321,7 +404,7 @@ var PM_Main = class extends PM {
321
404
  "customScreenShot",
322
405
  async (ssOpts, testName) => {
323
406
  const p = ssOpts.path;
324
- const dir = path.dirname(p);
407
+ const dir = path2.dirname(p);
325
408
  fs.mkdirSync(dir, {
326
409
  recursive: true
327
410
  });
@@ -440,7 +523,7 @@ var PM_Main = class extends PM {
440
523
  Promise.all(screenshots[t] || []).then(() => {
441
524
  delete screenshots[t];
442
525
  page.close();
443
- this.deregister(t);
526
+ this.testIsNowDone(t);
444
527
  stderrStream.close();
445
528
  stdoutStream.close();
446
529
  });
@@ -458,6 +541,7 @@ var PM_Main = class extends PM {
458
541
  }
459
542
  console.debug(`Error from message ${t}: [${err.message}] `);
460
543
  stderrStream.write(err.message);
544
+ close();
461
545
  });
462
546
  page.on("console", (log) => {
463
547
  stdoutStream.write(log.text());
@@ -468,8 +552,9 @@ var PM_Main = class extends PM {
468
552
  await page.evaluate(evaluation).then(async ({ failed, features }) => {
469
553
  this.receiveFeatures(features, destFolder, t);
470
554
  statusMessagePretty(failed, t);
555
+ this.receiveExitCode(t, failed);
471
556
  }).catch((e) => {
472
- console.log(`${t} errored with`, e);
557
+ console.log(ansiC.red(ansiC.inverse(`${t} errored with: ${e}`)));
473
558
  }).finally(() => {
474
559
  close();
475
560
  });
@@ -477,7 +562,7 @@ var PM_Main = class extends PM {
477
562
  });
478
563
  };
479
564
  this.receiveFeatures = (features, destFolder, srcTest) => {
480
- const featureDestination = path.resolve(
565
+ const featureDestination = path2.resolve(
481
566
  process.cwd(),
482
567
  "docs",
483
568
  "features",
@@ -490,22 +575,17 @@ var PM_Main = class extends PM {
490
575
  if (isUrl) {
491
576
  const u = new URL(featureStringKey);
492
577
  if (u.protocol === "file:") {
493
- const newPath = `${process.cwd()}/docs/features/internal/${path.relative(
578
+ const newPath = `${process.cwd()}/docs/features/internal/${path2.relative(
494
579
  process.cwd(),
495
580
  u.pathname
496
581
  )}`;
497
- await fs.promises.mkdir(path.dirname(newPath), { recursive: true });
582
+ await fs.promises.mkdir(path2.dirname(newPath), { recursive: true });
498
583
  try {
499
584
  await fs.unlinkSync(newPath);
500
585
  } catch (error) {
501
586
  if (error.code !== "ENOENT") {
502
587
  }
503
588
  }
504
- fs.symlink(u.pathname, newPath, (err) => {
505
- if (err) {
506
- } else {
507
- }
508
- });
509
589
  accum.files.push(newPath);
510
590
  } else if (u.protocol === "http:" || u.protocol === "https:") {
511
591
  const newPath = `${process.cwd()}/docs/features/external${u.hostname}${u.pathname}`;
@@ -514,7 +594,7 @@ var PM_Main = class extends PM {
514
594
  accum.files.push(newPath);
515
595
  }
516
596
  } else {
517
- await fs.promises.mkdir(path.dirname(featureDestination), {
597
+ await fs.promises.mkdir(path2.dirname(featureDestination), {
518
598
  recursive: true
519
599
  });
520
600
  accum.strings.push(featureStringKey);
@@ -528,32 +608,49 @@ var PM_Main = class extends PM {
528
608
  }).join("\n")
529
609
  );
530
610
  });
611
+ this.writeBigBoard();
612
+ };
613
+ this.receiveExitCode = (srcTest, failures) => {
614
+ this.bigBoard[srcTest].runTimeError = failures;
615
+ this.writeBigBoard();
616
+ };
617
+ this.writeBigBoard = () => {
618
+ fs.writeFileSync(
619
+ "./docs/bigBoard.json",
620
+ JSON.stringify(this.bigBoard, null, 2)
621
+ );
531
622
  };
532
623
  this.server = {};
533
624
  this.configs = configs;
534
625
  this.ports = {};
535
- this.registry = {};
626
+ this.configs.tests.forEach(([t]) => {
627
+ this.bigBoard[t] = {
628
+ status: "?"
629
+ };
630
+ });
536
631
  this.configs.ports.forEach((element) => {
537
632
  this.ports[element] = "true";
538
633
  });
539
634
  globalThis["waitForSelector"] = async (pageKey, sel) => {
540
- console.log("waitForSelector", pageKey, sel);
541
635
  const page = (await this.browser.pages()).find(
636
+ /* @ts-ignore:next-line */
542
637
  (p) => p.mainFrame()._id === pageKey
543
638
  );
544
639
  await page?.waitForSelector(sel);
545
640
  };
546
- globalThis["screencastStop"] = async (path3) => {
547
- return recorders[path3].stop();
641
+ globalThis["screencastStop"] = async (path4) => {
642
+ return recorders[path4].stop();
548
643
  };
549
644
  globalThis["closePage"] = async (pageKey) => {
550
645
  const page = (await this.browser.pages()).find(
646
+ /* @ts-ignore:next-line */
551
647
  (p) => p.mainFrame()._id === pageKey
552
648
  );
553
649
  return page.close();
554
650
  };
555
651
  globalThis["goto"] = async (pageKey, url) => {
556
652
  const page = (await this.browser.pages()).find(
653
+ /* @ts-ignore:next-line */
557
654
  (p) => p.mainFrame()._id === pageKey
558
655
  );
559
656
  await page?.goto(url);
@@ -574,8 +671,7 @@ var PM_Main = class extends PM {
574
671
  return false;
575
672
  };
576
673
  globalThis["writeFileSync"] = (filepath, contents, testName) => {
577
- const dir = path.dirname(filepath);
578
- fs.mkdirSync(dir, {
674
+ fs.mkdirSync(path2.dirname(filepath), {
579
675
  recursive: true
580
676
  });
581
677
  if (!files[testName]) {
@@ -604,10 +700,11 @@ var PM_Main = class extends PM {
604
700
  };
605
701
  globalThis["customScreenShot"] = async (opts, pageKey, testName) => {
606
702
  const page = (await this.browser.pages()).find(
703
+ /* @ts-ignore:next-line */
607
704
  (p2) => p2.mainFrame()._id === pageKey
608
705
  );
609
706
  const p = opts.path;
610
- const dir = path.dirname(p);
707
+ const dir = path2.dirname(p);
611
708
  fs.mkdirSync(dir, {
612
709
  recursive: true
613
710
  });
@@ -628,10 +725,11 @@ var PM_Main = class extends PM {
628
725
  };
629
726
  globalThis["screencast"] = async (opts, pageKey) => {
630
727
  const page = (await this.browser.pages()).find(
728
+ /* @ts-ignore:next-line */
631
729
  (p2) => p2.mainFrame()._id === pageKey
632
730
  );
633
731
  const p = opts.path;
634
- const dir = path.dirname(p);
732
+ const dir = path2.dirname(p);
635
733
  fs.mkdirSync(dir, {
636
734
  recursive: true
637
735
  });
@@ -692,7 +790,7 @@ var PM_Main = class extends PM {
692
790
  callback(
693
791
  new Promise((res, rej) => {
694
792
  tLog("testArtiFactory =>", fPath);
695
- const cleanPath = path.resolve(fPath);
793
+ const cleanPath = path2.resolve(fPath);
696
794
  fPaths.push(cleanPath.replace(process.cwd(), ``));
697
795
  const targetDir = cleanPath.split("/").slice(0, -1).join("/");
698
796
  fs.mkdir(targetDir, { recursive: true }, async (error) => {
@@ -700,7 +798,7 @@ var PM_Main = class extends PM {
700
798
  console.error(`\u2757\uFE0FtestArtiFactory failed`, targetDir, error);
701
799
  }
702
800
  fs.writeFileSync(
703
- path.resolve(
801
+ path2.resolve(
704
802
  targetDir.split("/").slice(0, -1).join("/"),
705
803
  "manifest"
706
804
  ),
@@ -763,39 +861,32 @@ var PM_Main = class extends PM {
763
861
  async startPuppeteer(options, destfolder) {
764
862
  this.browser = await puppeteer.launch(options);
765
863
  }
766
- ////////////////////////////////////////////////////////////////////////////////
864
+ // goodbye = () => {
865
+ // this.browser.disconnect().then(() => {
866
+ // console.log("Goodbye");
867
+ // process.exit();
868
+ // });
869
+ // };
767
870
  shutDown() {
768
- console.log("shutting down...");
769
871
  this.shutdownMode = true;
770
872
  this.checkForShutdown();
771
873
  }
772
874
  };
773
- async function writeFileAndCreateDir(filePath, data) {
774
- const dirPath = path.dirname(filePath);
775
- try {
776
- await fs.promises.mkdir(dirPath, { recursive: true });
777
- await fs.appendFileSync(filePath, data);
778
- } catch (error) {
779
- console.error(`Error writing file: ${error}`);
780
- }
781
- }
782
- function isValidUrl(string) {
783
- try {
784
- new URL(string);
785
- return true;
786
- } catch (err) {
787
- return false;
788
- }
789
- }
790
875
 
791
- // src/cli2.ts
792
- import path2 from "path";
793
- import crypto2 from "node:crypto";
794
- import fs2 from "fs";
795
- var fileHashes = {};
876
+ // src/run.ts
877
+ console.log(ansiC2.inverse("Press 'x' to shutdown forcefully."));
878
+ readline.emitKeypressEvents(process.stdin);
879
+ if (process.stdin.isTTY)
880
+ process.stdin.setRawMode(true);
881
+ process.stdin.on("keypress", (str, key) => {
882
+ if (key.name === "x") {
883
+ console.log(ansiC2.inverse("Shutting down forcefully..."));
884
+ process.exit(-1);
885
+ }
886
+ });
796
887
  async function fileHash(filePath, algorithm = "md5") {
797
888
  return new Promise((resolve, reject) => {
798
- const hash = crypto2.createHash(algorithm);
889
+ const hash = crypto.createHash(algorithm);
799
890
  const fileStream = fs2.createReadStream(filePath);
800
891
  fileStream.on("data", (data) => {
801
892
  hash.update(data);
@@ -809,17 +900,26 @@ async function fileHash(filePath, algorithm = "md5") {
809
900
  });
810
901
  });
811
902
  }
903
+ async function filesHash(files2, algorithm = "md5") {
904
+ return new Promise((resolve, reject) => {
905
+ resolve(
906
+ files2.reduce(async (mm, f) => {
907
+ return await mm + await fileHash(f);
908
+ }, Promise.resolve(""))
909
+ );
910
+ });
911
+ }
812
912
  var getRunnables = (tests, payload = {
813
913
  nodeEntryPoints: {},
814
914
  webEntryPoints: {}
815
915
  }) => {
816
916
  return tests.reduce((pt, cv, cndx, cry) => {
817
917
  if (cv[1] === "node") {
818
- pt.nodeEntryPoints[cv[0]] = path2.resolve(
918
+ pt.nodeEntryPoints[cv[0]] = path3.resolve(
819
919
  `./docs/node/${cv[0].split(".").slice(0, -1).concat("mjs").join(".")}`
820
920
  );
821
921
  } else if (cv[1] === "web") {
822
- pt.webEntryPoints[cv[0]] = path2.resolve(
922
+ pt.webEntryPoints[cv[0]] = path3.resolve(
823
923
  `./docs/web/${cv[0].split(".").slice(0, -1).concat("mjs").join(".")}`
824
924
  );
825
925
  }
@@ -829,13 +929,187 @@ var getRunnables = (tests, payload = {
829
929
  return pt;
830
930
  }, payload);
831
931
  };
932
+ var changes = {};
933
+ var tscCheck = async ({
934
+ entrypoint,
935
+ addableFiles,
936
+ platform
937
+ }) => {
938
+ console.log(ansiC2.green(ansiC2.inverse(`tsc < ${entrypoint}`)));
939
+ const program = tsc.createProgramFromConfig({
940
+ basePath: process.cwd(),
941
+ // always required, used for relative paths
942
+ configFilePath: "tsconfig.json",
943
+ // config to inherit from (optional)
944
+ compilerOptions: {
945
+ rootDir: "src",
946
+ outDir: tscPather(entrypoint, platform),
947
+ // declaration: true,
948
+ // skipLibCheck: true,
949
+ noEmit: true
950
+ },
951
+ include: addableFiles
952
+ //["src/**/*"],
953
+ // exclude: ["**/*.test.ts", "**/*.spec.ts"],
954
+ });
955
+ const tscPath = tscPather(entrypoint, platform);
956
+ let allDiagnostics = program.getSemanticDiagnostics();
957
+ const d = [];
958
+ allDiagnostics.forEach((diagnostic) => {
959
+ if (diagnostic.file) {
960
+ let { line, character } = ts.getLineAndCharacterOfPosition(
961
+ diagnostic.file,
962
+ diagnostic.start
963
+ );
964
+ let message = ts.flattenDiagnosticMessageText(
965
+ diagnostic.messageText,
966
+ "\n"
967
+ );
968
+ d.push(
969
+ `${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`
970
+ );
971
+ } else {
972
+ d.push(ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n"));
973
+ }
974
+ });
975
+ fs2.writeFileSync(tscPath, d.join("\n"));
976
+ fs2.writeFileSync(
977
+ tscExitCodePather(entrypoint, platform),
978
+ d.length.toString()
979
+ );
980
+ };
981
+ var eslint = new ESLint();
982
+ var formatter = await eslint.loadFormatter(
983
+ "./node_modules/testeranto/dist/prebuild/esbuildConfigs/eslint-formatter-testeranto.mjs"
984
+ );
985
+ var eslintCheck = async (entrypoint, platform, addableFiles) => {
986
+ console.log(ansiC2.green(ansiC2.inverse(`eslint < ${entrypoint}`)));
987
+ const results = (await eslint.lintFiles(addableFiles)).filter((r) => r.messages.length).filter((r) => {
988
+ return r.messages[0].ruleId !== null;
989
+ }).map((r) => {
990
+ delete r.source;
991
+ return r;
992
+ });
993
+ fs2.writeFileSync(
994
+ lintPather(entrypoint, platform),
995
+ await formatter.format(results)
996
+ );
997
+ fs2.writeFileSync(
998
+ lintExitCodePather(entrypoint, platform),
999
+ results.length.toString()
1000
+ );
1001
+ };
1002
+ var makePrompt = async (entryPoint, addableFiles, platform) => {
1003
+ const promptPath = path3.join(
1004
+ "./docs/",
1005
+ platform,
1006
+ entryPoint.split(".").slice(0, -1).join("."),
1007
+ `prompt.txt`
1008
+ );
1009
+ const testPaths = path3.join(
1010
+ "./docs/",
1011
+ platform,
1012
+ entryPoint.split(".").slice(0, -1).join("."),
1013
+ `tests.json`
1014
+ );
1015
+ const featuresPath = path3.join(
1016
+ "./docs/",
1017
+ platform,
1018
+ entryPoint.split(".").slice(0, -1).join("."),
1019
+ `featurePrompt.txt`
1020
+ );
1021
+ fs2.writeFileSync(
1022
+ promptPath,
1023
+ `
1024
+ ${addableFiles.map((x) => {
1025
+ return `/add ${x}`;
1026
+ }).join("\n")}
1027
+
1028
+ /read ${lintPather(entryPoint, platform)}
1029
+ /read ${tscPather(entryPoint, platform)}
1030
+ /read ${testPaths}
1031
+
1032
+ /load ${featuresPath}
1033
+
1034
+ /code Fix the failing tests described in ${testPaths}. Correct any type signature errors described in the files ${tscPather(
1035
+ entryPoint,
1036
+ platform
1037
+ )}. Implement any method which throws "Function not implemented. Resolve the lint errors described in ${lintPather(
1038
+ entryPoint,
1039
+ platform
1040
+ )}"
1041
+ `
1042
+ );
1043
+ };
1044
+ var metafileOutputs = async (platform) => {
1045
+ const metafile = JSON.parse(
1046
+ fs2.readFileSync(`docs/${platform}/metafile.json`).toString()
1047
+ ).metafile;
1048
+ if (!metafile)
1049
+ return;
1050
+ const outputs = metafile.outputs;
1051
+ Object.keys(outputs).forEach(async (k) => {
1052
+ const addableFiles = Object.keys(outputs[k].inputs).filter((i) => {
1053
+ if (!fs2.existsSync(i))
1054
+ return false;
1055
+ if (i.startsWith("node_modules"))
1056
+ return false;
1057
+ return true;
1058
+ });
1059
+ const f = `${k.split(".").slice(0, -1).join(".")}/`;
1060
+ if (!fs2.existsSync(f)) {
1061
+ fs2.mkdirSync(f);
1062
+ }
1063
+ const entrypoint = outputs[k].entryPoint;
1064
+ if (entrypoint) {
1065
+ const changeDigest = await filesHash(addableFiles);
1066
+ if (changeDigest === changes[entrypoint]) {
1067
+ } else {
1068
+ changes[entrypoint] = changeDigest;
1069
+ tscCheck({ platform, addableFiles, entrypoint });
1070
+ eslintCheck(entrypoint, platform, addableFiles);
1071
+ makePrompt(entrypoint, addableFiles, platform);
1072
+ }
1073
+ }
1074
+ });
1075
+ };
832
1076
  import(process.cwd() + "/" + process.argv[2]).then(async (module) => {
833
1077
  const rawConfig = module.default;
834
1078
  const config = {
835
1079
  ...rawConfig,
836
1080
  buildDir: process.cwd() + "/" + rawConfig.outdir
837
1081
  };
1082
+ let mode = config.devMode ? "DEV" : "PROD";
1083
+ const fileHashes = {};
838
1084
  let pm = new PM_Main(config);
1085
+ console.log(ansiC2.inverse(`Press 'q' to shutdown gracefully`));
1086
+ process.stdin.on("keypress", (str, key) => {
1087
+ if (key.name === "q") {
1088
+ console.log(
1089
+ ansiC2.inverse("Testeranto-Run is shutting down gracefully...")
1090
+ );
1091
+ mode = "PROD";
1092
+ nodeMetafileWatcher.close();
1093
+ webMetafileWatcher.close();
1094
+ pm.shutDown();
1095
+ }
1096
+ });
1097
+ metafileOutputs("node");
1098
+ const nodeMetafileWatcher = watch(
1099
+ "docs/node/metafile.json",
1100
+ async (e, filename) => {
1101
+ console.log(ansiC2.green(ansiC2.inverse(`< ${e} ${filename} (node)`)));
1102
+ metafileOutputs("node");
1103
+ }
1104
+ );
1105
+ metafileOutputs("web");
1106
+ const webMetafileWatcher = watch(
1107
+ "docs/web/metafile.json",
1108
+ async (e, filename) => {
1109
+ console.log(ansiC2.green(ansiC2.inverse(`< ${e} ${filename} (web)`)));
1110
+ metafileOutputs("web");
1111
+ }
1112
+ );
839
1113
  await pm.startPuppeteer(
840
1114
  {
841
1115
  slowMo: 1,
@@ -885,14 +1159,13 @@ import(process.cwd() + "/" + process.argv[2]).then(async (module) => {
885
1159
  const { nodeEntryPoints, webEntryPoints } = getRunnables(config.tests);
886
1160
  Object.entries(nodeEntryPoints).forEach(
887
1161
  ([k, outputFile]) => {
888
- console.log("watching and running", outputFile);
889
1162
  pm.launchNode(k, outputFile);
890
1163
  try {
891
1164
  watch(outputFile, async (e, filename) => {
892
1165
  const hash = await fileHash(outputFile);
893
1166
  if (fileHashes[k] !== hash) {
894
1167
  fileHashes[k] = hash;
895
- console.log(`< ${e} ${filename} ${hash}`);
1168
+ console.log(ansiC2.green(ansiC2.inverse(`< ${e} ${filename}`)));
896
1169
  pm.launchNode(k, outputFile);
897
1170
  }
898
1171
  });
@@ -903,13 +1176,12 @@ import(process.cwd() + "/" + process.argv[2]).then(async (module) => {
903
1176
  );
904
1177
  Object.entries(webEntryPoints).forEach(
905
1178
  ([k, outputFile]) => {
906
- console.log("watching and running", outputFile);
907
1179
  pm.launchWeb(k, outputFile);
908
1180
  watch(outputFile, async (e, filename) => {
909
1181
  const hash = await fileHash(outputFile);
910
- console.log(`< ${e} ${filename} ${hash}`);
911
1182
  if (fileHashes[k] !== hash) {
912
1183
  fileHashes[k] = hash;
1184
+ console.log(ansiC2.green(ansiC2.inverse(`< ${e} ${filename}`)));
913
1185
  pm.launchWeb(k, outputFile);
914
1186
  }
915
1187
  });