testeranto 0.173.0 → 0.189.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 (819) hide show
  1. package/CNAME +1 -0
  2. package/README.html +302 -0
  3. package/README.md +24 -4
  4. package/dist/common/src/App.js +43 -0
  5. package/dist/common/src/Node.js +4 -8
  6. package/dist/common/src/PM/PM_WithEslintAndTsc.js +2 -33
  7. package/dist/common/src/PM/base.js +4 -5
  8. package/dist/common/src/PM/layers/base/PM_Base.js +1 -0
  9. package/dist/common/src/PM/layers/base/components/PageOperations.js +1 -0
  10. package/dist/common/src/PM/layers/base/components/PageOperations.testeranto.js +1 -0
  11. package/dist/common/src/PM/layers/linting/components/Linter.js +1 -0
  12. package/dist/common/src/PM/layers/linting/components/TypeChecker.js +1 -0
  13. package/dist/common/src/PM/layers/main/components/SidecarManager.js +1 -0
  14. package/dist/common/src/PM/layers/main/components/TestRunner.js +1 -0
  15. package/dist/common/src/PM/main.js +248 -150
  16. package/dist/common/src/PM/node.js +4 -1
  17. package/dist/common/src/PM/nodeSidecar.js +1 -0
  18. package/dist/common/src/PM/pure.js +15 -7
  19. package/dist/common/src/PM/pureSidecar.js +1 -1
  20. package/dist/common/src/PM/types.js +1 -0
  21. package/dist/common/src/PM/web.js +6 -2
  22. package/dist/common/src/Pure.js +1 -5
  23. package/dist/common/src/Pure.test.js +22 -20
  24. package/dist/common/src/ReportServerLib.js +11 -5
  25. package/dist/common/src/build.js +30 -39
  26. package/dist/common/src/components/SunriseAnimation.js +291 -0
  27. package/dist/common/src/components/SunriseAnimation.test/interface.js +67 -0
  28. package/dist/common/src/components/SunriseAnimation.test/types.js +2 -0
  29. package/dist/common/src/components/TestStatusBadge.js +1 -21
  30. package/dist/common/src/components/pure/AppFrame.js +20 -0
  31. package/dist/common/src/components/pure/AppFrame.test/implementation.js +63 -0
  32. package/dist/common/src/components/pure/AppFrame.test/index.js +14 -0
  33. package/dist/common/src/components/pure/AppFrame.test/specification.js +25 -0
  34. package/dist/common/src/components/pure/AppFrame.test/types.js +3 -0
  35. package/dist/common/src/components/pure/FeaturesReporterView.js +23 -0
  36. package/dist/common/src/components/pure/FeaturesReporterView.test/implementation.js +84 -0
  37. package/dist/common/src/components/pure/FeaturesReporterView.test/index.js +14 -0
  38. package/dist/common/src/components/pure/FeaturesReporterView.test/specification.js +27 -0
  39. package/dist/common/src/components/pure/FeaturesReporterView.test/types.js +2 -0
  40. package/dist/common/src/components/pure/ModalContent.js +86 -0
  41. package/dist/common/src/components/pure/ModalContent.test/implementation.js +33 -0
  42. package/dist/common/src/components/pure/ModalContent.test/index.js +12 -0
  43. package/dist/common/src/components/pure/ModalContent.test/specification.js +19 -0
  44. package/dist/common/src/components/pure/ModalContent.test/types.js +4 -0
  45. package/dist/common/src/components/pure/ProjectPageView.js +53 -76
  46. package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +118 -33
  47. package/dist/common/src/components/pure/ProjectPageView.test/index.js +5 -1
  48. package/dist/common/src/components/pure/ProjectPageView.test/specification.js +15 -2
  49. package/dist/common/src/components/pure/ProjectPageView.test/types.js +2 -0
  50. package/dist/common/src/components/pure/ProjectsPageView.js +66 -0
  51. package/dist/common/src/components/pure/SettingsButton.js +83 -0
  52. package/dist/common/src/components/pure/TestPageView.js +134 -0
  53. package/dist/common/src/components/pure/TestPageView.test/implementation.js +202 -0
  54. package/dist/common/src/components/pure/TestPageView.test/index.js +15 -0
  55. package/dist/common/src/components/pure/TestPageView.test/specification.js +26 -0
  56. package/dist/common/src/components/pure/TestPageView.test/types.js +4 -0
  57. package/dist/common/src/components/pure/ThemeCard.js +15 -0
  58. package/dist/common/src/components/stateful/FeaturesReporter.js +59 -0
  59. package/dist/common/src/components/stateful/ProjectPage.js +100 -0
  60. package/dist/common/src/components/stateful/ProjectsPage.js +92 -0
  61. package/dist/common/src/components/stateful/TestPage.js +133 -0
  62. package/dist/common/src/defaultConfig.js +1 -0
  63. package/dist/common/src/esbuildConfigs/node.js +1 -3
  64. package/dist/common/src/esbuildConfigs/web.js +1 -1
  65. package/dist/common/src/lib/BaseSuite.js +14 -11
  66. package/dist/common/src/lib/BaseSuite.test/mock.js +0 -11
  67. package/dist/common/src/lib/BaseSuite.test/test.js +11 -22
  68. package/dist/common/src/lib/Sidecar.js +1 -0
  69. package/dist/common/src/lib/abstractBase.js +52 -48
  70. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.adapter.js +0 -6
  71. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +3 -1
  72. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.mock.js +28 -17
  73. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.pure.js +2 -2
  74. package/dist/common/src/lib/basebuilder.js +32 -25
  75. package/dist/common/src/lib/classBuilder.js +2 -0
  76. package/dist/common/src/lib/core.test/MockCore.js +0 -14
  77. package/dist/common/src/lib/core.test/core.test.adapter.js +2 -9
  78. package/dist/common/src/lib/core.test/core.test.implementation.js +3 -7
  79. package/dist/common/src/lib/index.js +2 -0
  80. package/dist/common/src/lib/pmProxy.js +208 -100
  81. package/dist/common/src/lib/pmProxy.test/adapter.js +8 -2
  82. package/dist/common/src/lib/pmProxy.test/implementation.js +34 -5
  83. package/dist/common/src/lib/pmProxy.test/mockPMBase.js +9 -0
  84. package/dist/common/src/mothership/index.js +5 -0
  85. package/dist/common/src/mothership/test.js +44 -25
  86. package/dist/common/src/types/features.js +34 -0
  87. package/dist/common/src/utils/api.js +42 -23
  88. package/dist/common/src/utils/featureUtils.js +29 -0
  89. package/dist/common/src/utils/logFiles.js +25 -0
  90. package/dist/common/src/utils/makePrompt.js +115 -0
  91. package/dist/common/src/web.html.js +2 -6
  92. package/dist/common/testeranto.config.js +64 -36
  93. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  94. package/dist/module/src/App.js +9 -17
  95. package/dist/module/src/Node.js +4 -8
  96. package/dist/module/src/PM/PM_WithEslintAndTsc.js +3 -34
  97. package/dist/module/src/PM/base.js +4 -5
  98. package/dist/module/src/PM/layers/base/PM_Base.js +1 -0
  99. package/dist/module/src/PM/layers/base/components/PageOperations.js +1 -0
  100. package/dist/module/src/PM/layers/base/components/PageOperations.testeranto.js +1 -0
  101. package/dist/module/src/PM/layers/linting/components/Linter.js +1 -0
  102. package/dist/module/src/PM/layers/linting/components/TypeChecker.js +1 -0
  103. package/dist/module/src/PM/layers/main/components/SidecarManager.js +1 -0
  104. package/dist/module/src/PM/layers/main/components/TestRunner.js +1 -0
  105. package/dist/module/src/PM/main.js +220 -122
  106. package/dist/module/src/PM/node.js +4 -1
  107. package/dist/module/src/PM/nodeSidecar.js +1 -0
  108. package/dist/module/src/PM/pure.js +15 -7
  109. package/dist/module/src/PM/pureSidecar.js +1 -1
  110. package/dist/module/src/PM/types.js +1 -0
  111. package/dist/module/src/PM/web.js +6 -2
  112. package/dist/module/src/Pure.js +1 -5
  113. package/dist/module/src/Pure.test.js +22 -20
  114. package/dist/module/src/ReportServerLib.js +11 -5
  115. package/dist/module/src/build.js +25 -37
  116. package/dist/module/src/components/SunriseAnimation.test/interface.js +32 -1
  117. package/dist/module/src/components/TestStatusBadge.js +1 -21
  118. package/dist/module/src/components/pure/AppFrame.js +13 -0
  119. package/dist/module/src/components/pure/AppFrame.test/implementation.js +57 -0
  120. package/dist/module/src/components/pure/AppFrame.test/index.js +9 -0
  121. package/dist/module/src/components/pure/AppFrame.test/specification.js +21 -0
  122. package/dist/module/src/components/pure/AppFrame.test/types.js +2 -0
  123. package/dist/module/src/components/pure/FeaturesReporterView.js +16 -0
  124. package/dist/module/src/components/pure/FeaturesReporterView.test/implementation.js +81 -0
  125. package/dist/module/src/components/pure/FeaturesReporterView.test/index.js +9 -0
  126. package/dist/module/src/components/pure/FeaturesReporterView.test/specification.js +23 -0
  127. package/dist/module/src/components/pure/ModalContent.js +79 -0
  128. package/dist/module/src/components/pure/ModalContent.test/implementation.js +30 -0
  129. package/dist/module/src/components/pure/ModalContent.test/index.js +7 -0
  130. package/dist/module/src/components/pure/ModalContent.test/specification.js +15 -0
  131. package/dist/module/src/components/pure/ModalContent.test/types.js +3 -0
  132. package/dist/module/src/components/pure/ProjectPageView.js +54 -77
  133. package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +118 -33
  134. package/dist/module/src/components/pure/ProjectPageView.test/index.js +5 -1
  135. package/dist/module/src/components/pure/ProjectPageView.test/specification.js +15 -2
  136. package/dist/module/src/components/pure/ProjectPageView.test/types.js +2 -0
  137. package/dist/module/src/components/pure/ProjectsPageView.js +5 -4
  138. package/dist/module/src/components/pure/SettingsButton.js +43 -0
  139. package/dist/module/src/components/pure/TestPageView.js +100 -121
  140. package/dist/module/src/components/pure/TestPageView.test/implementation.js +166 -0
  141. package/dist/module/src/components/pure/TestPageView.test/index.js +10 -0
  142. package/dist/module/src/components/pure/TestPageView.test/specification.js +22 -0
  143. package/dist/module/src/components/pure/TestPageView.test/types.js +3 -0
  144. package/dist/module/src/components/pure/ThemeCard.js +8 -0
  145. package/dist/module/src/components/stateful/FeaturesReporter.js +22 -0
  146. package/dist/module/src/components/stateful/ProjectPage.js +1 -1
  147. package/dist/module/src/components/stateful/TestPage.js +25 -11
  148. package/dist/module/src/defaultConfig.js +1 -0
  149. package/dist/module/src/esbuildConfigs/node.js +1 -3
  150. package/dist/module/src/esbuildConfigs/web.js +1 -1
  151. package/dist/module/src/lib/BaseSuite.js +14 -11
  152. package/dist/module/src/lib/BaseSuite.test/mock.js +0 -11
  153. package/dist/module/src/lib/BaseSuite.test/test.js +11 -22
  154. package/dist/module/src/lib/Sidecar.js +1 -0
  155. package/dist/module/src/lib/abstractBase.js +52 -48
  156. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.adapter.js +0 -6
  157. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +3 -1
  158. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.mock.js +28 -17
  159. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.pure.js +1 -1
  160. package/dist/module/src/lib/basebuilder.js +32 -25
  161. package/dist/module/src/lib/classBuilder.js +2 -0
  162. package/dist/module/src/lib/core.test/MockCore.js +0 -14
  163. package/dist/module/src/lib/core.test/core.test.adapter.js +2 -9
  164. package/dist/module/src/lib/core.test/core.test.implementation.js +3 -7
  165. package/dist/module/src/lib/index.js +2 -0
  166. package/dist/module/src/lib/pmProxy.js +208 -100
  167. package/dist/module/src/lib/pmProxy.test/adapter.js +8 -2
  168. package/dist/module/src/lib/pmProxy.test/implementation.js +34 -5
  169. package/dist/module/src/lib/pmProxy.test/mockPMBase.js +9 -0
  170. package/dist/module/src/mothership/index.js +5 -0
  171. package/dist/module/src/mothership/test.js +44 -25
  172. package/dist/module/src/types/features.js +31 -0
  173. package/dist/module/src/utils/api.js +41 -21
  174. package/dist/module/src/utils/featureUtils.js +24 -0
  175. package/dist/module/src/utils/logFiles.js +21 -0
  176. package/dist/module/src/utils/makePrompt.js +108 -0
  177. package/dist/module/src/web.html.js +2 -6
  178. package/dist/module/testeranto.config.js +64 -36
  179. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  180. package/dist/prebuild/App.css +444 -12
  181. package/dist/prebuild/App.js +1318 -1053
  182. package/dist/prebuild/ReportServer.mjs +10 -4
  183. package/dist/prebuild/build.mjs +88 -104
  184. package/dist/prebuild/mothership/index.mjs +5 -0
  185. package/dist/prebuild/run.mjs +360 -232
  186. package/dist/tsconfig.tsbuildinfo +1 -0
  187. package/dist/types/App.d.ts +1 -0
  188. package/dist/types/{src/PM → PM}/base.d.ts +1 -1
  189. package/dist/types/PM/layers/main/components/SidecarManager.d.ts +0 -0
  190. package/dist/types/PM/layers/main/components/TestRunner.d.ts +0 -0
  191. package/dist/types/{src/PM → PM}/main.d.ts +18 -3
  192. package/dist/types/{src/PM → PM}/node.d.ts +1 -1
  193. package/dist/types/{src/PM → PM}/pure.d.ts +7 -4
  194. package/dist/types/PM/types.d.ts +0 -0
  195. package/dist/types/{src/PM → PM}/web.d.ts +2 -2
  196. package/dist/types/ReportServerLib.d.ts +1 -0
  197. package/dist/types/{src/Types.d.ts → Types.d.ts} +1 -0
  198. package/dist/types/components/SunriseAnimation.d.ts +5 -0
  199. package/dist/types/components/SunriseAnimation.test/implementation.d.ts +0 -0
  200. package/dist/types/components/SunriseAnimation.test/index.d.ts +0 -0
  201. package/dist/types/components/SunriseAnimation.test/interface.d.ts +11 -0
  202. package/dist/types/components/SunriseAnimation.test/specification.d.ts +0 -0
  203. package/dist/types/components/SunriseAnimation.test/types.d.ts +39 -0
  204. package/dist/types/components/pure/AppFrame.d.ts +9 -0
  205. package/dist/types/components/pure/AppFrame.test/implementation.d.ts +3 -0
  206. package/dist/types/components/pure/AppFrame.test/index.d.ts +5 -0
  207. package/dist/types/components/pure/AppFrame.test/types.d.ts +33 -0
  208. package/dist/types/components/pure/FeaturesReporterView.d.ts +7 -0
  209. package/dist/types/{src/components/pure/ProjectPageView.test → components/pure/FeaturesReporterView.test}/index.d.ts +1 -2
  210. package/dist/types/components/pure/FeaturesReporterView.test/specification.d.ts +3 -0
  211. package/dist/types/components/pure/FeaturesReporterView.test/types.d.ts +54 -0
  212. package/dist/types/components/pure/ModalContent.d.ts +7 -0
  213. package/dist/types/components/pure/ModalContent.test/implementation.d.ts +3 -0
  214. package/dist/types/components/pure/ModalContent.test/index.d.ts +2 -0
  215. package/dist/types/components/pure/ModalContent.test/specification.d.ts +3 -0
  216. package/dist/types/components/pure/ModalContent.test/types.d.ts +45 -0
  217. package/dist/types/components/pure/ProjectPageView.d.ts +14 -0
  218. package/dist/types/components/pure/ProjectPageView.test/implementation.d.ts +3 -0
  219. package/dist/types/components/pure/ProjectPageView.test/index.d.ts +2 -0
  220. package/dist/types/components/pure/ProjectPageView.test/specification.d.ts +3 -0
  221. package/dist/types/components/pure/ProjectPageView.test/types.d.ts +57 -0
  222. package/dist/types/components/pure/ProjectsPageView.d.ts +29 -0
  223. package/dist/types/components/pure/SettingsButton.d.ts +3 -0
  224. package/dist/types/components/pure/TestPageView.d.ts +15 -0
  225. package/dist/types/components/pure/TestPageView.test/implementation.d.ts +11 -0
  226. package/dist/types/components/pure/TestPageView.test/index.d.ts +32 -0
  227. package/dist/types/components/pure/TestPageView.test/specification.d.ts +11 -0
  228. package/dist/types/components/pure/TestPageView.test/types.d.ts +65 -0
  229. package/dist/types/components/pure/ThemeCard.d.ts +9 -0
  230. package/dist/types/components/stateful/FeaturesReporter.d.ts +2 -0
  231. package/dist/types/components/stateful/ProjectPage.d.ts +1 -0
  232. package/dist/types/components/stateful/ProjectsPage.d.ts +1 -0
  233. package/dist/types/components/stateful/TestPage.d.ts +1 -0
  234. package/dist/types/init-docs.d.ts +1 -0
  235. package/dist/types/{src/lib → lib}/BaseSuite.d.ts +2 -0
  236. package/dist/types/{src/lib → lib}/abstractBase.d.ts +5 -7
  237. package/dist/types/{src/lib → lib}/abstractBase.test/MockGiven.d.ts +1 -1
  238. package/dist/types/lib/baseBuilder.test/baseBuilder.test.pure.d.ts +3 -0
  239. package/dist/types/{src/lib → lib}/index.d.ts +7 -7
  240. package/dist/types/{src/lib → lib}/pmProxy.d.ts +3 -3
  241. package/dist/types/run.d.ts +1 -0
  242. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  243. package/dist/types/types/features.d.ts +7 -0
  244. package/dist/types/{src/utils → utils}/api.d.ts +1 -5
  245. package/dist/types/utils/featureUtils.d.ts +6 -0
  246. package/dist/types/utils/logFiles.d.ts +7 -0
  247. package/dist/types/utils/makePrompt.d.ts +2 -0
  248. package/dist/types/{src/web.html.d.ts → web.html.d.ts} +1 -1
  249. package/docs/index.md +17 -0
  250. package/docs/testing.prompt.txt +1 -3
  251. package/docs.html +28 -10
  252. package/index.d.ts +38 -13
  253. package/index.html +59 -205
  254. package/marketing.md +166 -0
  255. package/package.json +16 -8
  256. package/scripts/compile-docs.js +24 -14
  257. package/smil30/SMIL-anim.mod.xsd +163 -0
  258. package/smil30/SMIL-control.mod.xsd +73 -0
  259. package/smil30/SMIL-layout.mod.xsd +149 -0
  260. package/smil30/SMIL-link.mod.xsd +145 -0
  261. package/smil30/SMIL-media.mod.xsd +1646 -0
  262. package/smil30/SMIL-metainformation.mod.xsd +45 -0
  263. package/smil30/SMIL-smiltext.mod.xsd +353 -0
  264. package/smil30/SMIL-state.mod.xsd +133 -0
  265. package/smil30/SMIL-struct.mod.xsd +70 -0
  266. package/smil30/SMIL-timing.mod.xsd +105 -0
  267. package/smil30/SMIL-transition.mod.xsd +229 -0
  268. package/smil30/SMIL.xsd +63 -0
  269. package/smil30/its.xsd +42 -0
  270. package/smil30/smil-attribs-1.mod.xsd +610 -0
  271. package/smil30/smil-datatypes-1.mod.xsd +72 -0
  272. package/smil30/smil-framework-1.mod.xsd +45 -0
  273. package/smil30/xml.xsd +16 -0
  274. package/src/App.scss +4 -13
  275. package/src/App.tsx +11 -25
  276. package/src/Node.ts +6 -9
  277. package/src/PM/PM_WithEslintAndTsc.ts +7 -93
  278. package/src/PM/__tests__/nodeSidecar.testeranto.ts +2 -0
  279. package/src/PM/base.ts +4 -10
  280. package/src/PM/layers/base/PM_Base.ts +0 -0
  281. package/src/PM/layers/base/components/PageOperations.testeranto.ts +0 -0
  282. package/src/PM/layers/base/components/PageOperations.ts +0 -0
  283. package/src/PM/layers/linting/components/Linter.ts +0 -0
  284. package/src/PM/layers/linting/components/TypeChecker.ts +0 -0
  285. package/src/PM/layers/main/components/SidecarManager.ts +0 -0
  286. package/src/PM/layers/main/components/TestRunner.ts +0 -0
  287. package/src/PM/main.ts +266 -140
  288. package/src/PM/node.ts +6 -1
  289. package/src/PM/nodeSidecar.ts +1 -0
  290. package/src/PM/pure.ts +15 -16
  291. package/src/PM/pureSidecar.ts +1 -1
  292. package/src/PM/types.ts +0 -0
  293. package/src/PM/web.ts +7 -2
  294. package/src/Pure.test.ts +27 -26
  295. package/src/Pure.ts +1 -9
  296. package/src/README.md +66 -0
  297. package/src/ReportServerLib.ts +10 -7
  298. package/src/Types.ts +1 -0
  299. package/src/build.ts +28 -54
  300. package/src/components/{pure/ProjectPageView.test/index.ts → SunriseAnimation.test/index.tsx} +7 -4
  301. package/src/components/SunriseAnimation.test/interface.ts +49 -0
  302. package/src/components/SunriseAnimation.test/types.ts +53 -0
  303. package/src/components/TestStatusBadge.tsx +2 -23
  304. package/src/components/pure/AppFrame.test/implementation.tsx +72 -0
  305. package/src/components/pure/AppFrame.test/index.tsx +22 -0
  306. package/src/components/pure/AppFrame.test/specification.ts +35 -0
  307. package/src/components/pure/AppFrame.test/types.ts +65 -0
  308. package/src/components/pure/AppFrame.tsx +29 -0
  309. package/src/components/pure/FeaturesReporterView.test/implementation.tsx +106 -0
  310. package/src/components/pure/FeaturesReporterView.test/index.tsx +18 -0
  311. package/src/components/pure/FeaturesReporterView.test/specification.ts +39 -0
  312. package/src/components/pure/FeaturesReporterView.test/types.ts +77 -0
  313. package/src/components/pure/FeaturesReporterView.tsx +37 -0
  314. package/src/components/pure/ModalContent.test/implementation.tsx +43 -0
  315. package/src/components/pure/ModalContent.test/index.tsx +15 -0
  316. package/src/components/pure/ModalContent.test/specification.ts +27 -0
  317. package/src/components/pure/ModalContent.test/types.ts +72 -0
  318. package/src/components/pure/ModalContent.tsx +182 -0
  319. package/src/components/pure/ProjectPageView.test/implementation.tsx +135 -36
  320. package/src/components/pure/ProjectPageView.test/index.tsx +20 -0
  321. package/src/components/pure/ProjectPageView.test/specification.ts +15 -2
  322. package/src/components/pure/ProjectPageView.test/types.ts +57 -13
  323. package/src/components/pure/ProjectPageView.tsx +155 -121
  324. package/src/components/pure/ProjectsPageView.tsx +36 -5
  325. package/src/components/pure/SettingsButton.md +1 -0
  326. package/src/components/pure/SettingsButton.tsx +66 -0
  327. package/src/components/pure/TestPageView.test/implementation.ts +194 -0
  328. package/src/components/pure/TestPageView.test/index.tsx +20 -0
  329. package/src/components/pure/TestPageView.test/specification.ts +59 -0
  330. package/src/components/pure/TestPageView.test/types.ts +92 -0
  331. package/src/components/pure/TestPageView.tsx +272 -283
  332. package/src/components/pure/ThemeCard.tsx +34 -0
  333. package/src/components/stateful/FeaturesReporter.tsx +24 -0
  334. package/src/components/stateful/ProjectPage.tsx +4 -3
  335. package/src/components/stateful/TestPage.tsx +27 -18
  336. package/src/defaultConfig.ts +1 -0
  337. package/src/esbuildConfigs/node.ts +1 -1
  338. package/src/esbuildConfigs/web.ts +2 -1
  339. package/src/lib/BaseSuite.test/mock.ts +1 -27
  340. package/src/lib/BaseSuite.test/test.ts +15 -37
  341. package/src/lib/BaseSuite.ts +19 -21
  342. package/src/lib/Sidecar.ts +2 -0
  343. package/src/lib/abstractBase.test/MockGiven.ts +1 -1
  344. package/src/lib/abstractBase.ts +72 -56
  345. package/src/lib/baseBuilder.test/baseBuilder.test.adapter.ts +0 -6
  346. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +3 -1
  347. package/src/lib/baseBuilder.test/baseBuilder.test.mock.ts +27 -17
  348. package/src/lib/baseBuilder.test/baseBuilder.test.pure.ts +1 -1
  349. package/src/lib/basebuilder.ts +46 -41
  350. package/src/lib/classBuilder.ts +3 -0
  351. package/src/lib/core.test/MockCore.ts +0 -23
  352. package/src/lib/core.test/core.test.adapter.ts +6 -12
  353. package/src/lib/core.test/core.test.implementation.ts +7 -10
  354. package/src/lib/core.ts +2 -0
  355. package/src/lib/index.ts +9 -8
  356. package/src/lib/pmProxy.test/adapter.ts +8 -2
  357. package/src/lib/pmProxy.test/implementation.ts +43 -10
  358. package/src/lib/pmProxy.test/mockPMBase.ts +11 -0
  359. package/src/lib/pmProxy.test/types.ts +0 -2
  360. package/src/lib/pmProxy.ts +224 -92
  361. package/src/lib/types.ts +2 -0
  362. package/src/mothership/index.ts +6 -0
  363. package/src/mothership/test.ts +53 -26
  364. package/src/style.md +2 -0
  365. package/src/style.scss +16 -0
  366. package/src/templates/frontpage.html +54 -0
  367. package/src/themes.scss +9 -9
  368. package/src/types/features.ts +38 -0
  369. package/src/utils/api.ts +59 -29
  370. package/src/utils/featureUtils.tsx +42 -0
  371. package/src/utils/logFiles.ts +26 -0
  372. package/src/utils/makePrompt.ts +148 -0
  373. package/src/web.html.ts +6 -6
  374. package/style.css +28 -9
  375. package/testeranto/App.css +444 -12
  376. package/testeranto/App.js +1318 -1053
  377. package/testeranto/bundles/node/core/chunk-JBB5E3XJ.mjs +258 -0
  378. package/testeranto/bundles/node/core/chunk-L67RWZ4W.mjs +899 -0
  379. package/testeranto/bundles/node/core/chunk-ZQRRQYS4.mjs +92 -0
  380. package/testeranto/bundles/node/core/metafile.json +5348 -99
  381. package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +307 -0
  382. package/testeranto/bundles/node/core/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +44 -979
  383. package/testeranto/bundles/node/core/src/lib/classBuilder.test/classBuilder.test.mjs +423 -0
  384. package/testeranto/bundles/node/core/src/lib/core.test/core.test.mjs +505 -0
  385. package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +4804 -0
  386. package/testeranto/bundles/node/core/src/mothership/test.mjs +24588 -0
  387. package/testeranto/bundles/pure/core/chunk-KHJ35R7C.mjs +997 -0
  388. package/testeranto/bundles/pure/core/metafile.json +401 -152
  389. package/testeranto/bundles/pure/core/src/Pure.test.mjs +428 -0
  390. package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +379 -0
  391. package/testeranto/bundles/pure/core/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +34 -893
  392. package/testeranto/bundles/web/core/MPLUSRounded1c-Black-O75GP5JI.ttf +0 -0
  393. package/testeranto/bundles/web/core/MPLUSRounded1c-Bold-R524Q5BH.ttf +0 -0
  394. package/testeranto/bundles/web/core/MPLUSRounded1c-ExtraBold-C6GRMYVT.ttf +0 -0
  395. package/testeranto/bundles/web/core/MPLUSRounded1c-Light-WKN65Y2C.ttf +0 -0
  396. package/testeranto/bundles/web/core/MPLUSRounded1c-Medium-ZC4DWL7C.ttf +0 -0
  397. package/testeranto/bundles/web/core/MPLUSRounded1c-Regular-DT6EKZ3S.ttf +0 -0
  398. package/testeranto/bundles/web/core/MPLUSRounded1c-Thin-YWDNVG6M.ttf +0 -0
  399. package/testeranto/bundles/web/core/chunk-BADF3AZF.mjs +108 -0
  400. package/testeranto/bundles/web/core/chunk-BXV27S2S.mjs +6252 -0
  401. package/testeranto/bundles/web/core/chunk-EIYZKF2C.mjs +223 -0
  402. package/testeranto/bundles/web/core/chunk-FNXFUNA7.mjs +28528 -0
  403. package/testeranto/bundles/web/core/chunk-LU364HVS.mjs +3311 -0
  404. package/testeranto/bundles/web/core/chunk-QWII7WIM.mjs +2281 -0
  405. package/testeranto/bundles/web/core/chunk-VAYOSMXI.mjs +21775 -0
  406. package/testeranto/bundles/web/core/metafile.json +17547 -100
  407. package/testeranto/bundles/web/core/src/components/pure/AppFrame.test/index.css +12105 -0
  408. package/testeranto/bundles/web/core/src/components/pure/AppFrame.test/index.html +15 -0
  409. package/testeranto/bundles/web/core/src/components/pure/AppFrame.test/index.mjs +517 -0
  410. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.html +15 -0
  411. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +166 -0
  412. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.css +12105 -0
  413. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.html +15 -0
  414. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.mjs +93 -0
  415. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +12105 -0
  416. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.html +15 -0
  417. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +343 -0
  418. package/testeranto/bundles/web/core/src/components/pure/TestPageView.test/index.css +12105 -0
  419. package/testeranto/bundles/web/core/src/components/pure/TestPageView.test/index.html +15 -0
  420. package/testeranto/bundles/web/core/src/components/pure/TestPageView.test/index.mjs +483 -0
  421. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.html +15 -0
  422. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +394 -0
  423. package/testeranto/bundles/web/core/src/lib/baseBuilder.test/baseBuilder.test.web.html +1 -5
  424. package/testeranto/bundles/web/core/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +54 -890
  425. package/testeranto/projects.json +0 -1
  426. package/testeranto/reports/core/config.json +130 -5
  427. package/testeranto/reports/core/src/Pure.test/pure/exit.log +0 -0
  428. package/testeranto/reports/core/src/Pure.test/pure/lint_errors.txt +0 -0
  429. package/testeranto/reports/core/src/Pure.test/pure/message.txt +17 -0
  430. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +14 -0
  431. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +106 -0
  432. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/debug.log +0 -0
  433. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/error.log +22 -0
  434. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/exit.log +1 -0
  435. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/info.log +4 -0
  436. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/lint_errors.txt +2 -0
  437. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/message.txt +17 -0
  438. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/prompt.txt +18 -0
  439. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/tests.json +57 -0
  440. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/type_errors.txt +55 -0
  441. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/warn.log +0 -0
  442. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log +0 -0
  443. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +56 -0
  444. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +1 -0
  445. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +2 -0
  446. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/lint_errors.txt +0 -0
  447. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/message.txt +17 -0
  448. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/prompt.txt +16 -0
  449. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/suite-0/given-basicRender/then-4/butThen/features-reporter.png +0 -0
  450. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/tests.json +76 -0
  451. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/type_errors.txt +80 -0
  452. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
  453. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/debug.log +0 -0
  454. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/error.log +0 -0
  455. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/exit.log +0 -0
  456. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/info.log +4 -0
  457. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/lint_errors.txt +0 -0
  458. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/message.txt +17 -0
  459. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/prompt.txt +15 -0
  460. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/suite-0/given-basicRender/then-2/butThen/modal-content.png +0 -0
  461. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/tests.json +42 -0
  462. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/type_errors.txt +65 -0
  463. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/warn.log +0 -0
  464. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
  465. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +33 -0
  466. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +1 -0
  467. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +4 -0
  468. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +2 -0
  469. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +17 -0
  470. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +16 -0
  471. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-basicRender/then-6/butThen/happy-state.png +0 -0
  472. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-errorHandling/then-1/butThen/error-state.png +0 -0
  473. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/tests.json +99 -0
  474. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +91 -0
  475. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
  476. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/debug.log +0 -0
  477. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/error.log +0 -0
  478. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/exit.log +1 -0
  479. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/info.log +2 -0
  480. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/lint_errors.txt +0 -0
  481. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/message.txt +17 -0
  482. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/prompt.txt +18 -0
  483. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/tests.json +69 -0
  484. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/type_errors.txt +111 -0
  485. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/warn.log +0 -0
  486. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/exit.log +1 -0
  487. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -0
  488. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/message.txt +17 -0
  489. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +14 -0
  490. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stderr.log +0 -0
  491. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +0 -0
  492. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +31 -0
  493. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +113 -0
  494. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/exit.log +0 -0
  495. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -0
  496. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/message.txt +17 -0
  497. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +15 -0
  498. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +113 -0
  499. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/debug.log +0 -0
  500. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/error.log +1 -0
  501. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/exit.log +1 -0
  502. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/info.log +0 -0
  503. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -0
  504. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/message.txt +17 -0
  505. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +15 -0
  506. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +31 -0
  507. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +113 -0
  508. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/warn.log +0 -0
  509. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/exit.log +1 -0
  510. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +0 -2
  511. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +16 -1
  512. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +4 -13
  513. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/stderr.log +0 -0
  514. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/stdout.log +2 -0
  515. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-1/butThen/artifact_test.txt +1 -0
  516. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +3 -1
  517. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +19 -28
  518. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/exit.log +0 -0
  519. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +0 -2
  520. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +16 -1
  521. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +2 -11
  522. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +19 -28
  523. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/debug.log +0 -0
  524. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/error.log +1 -0
  525. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/exit.log +1 -0
  526. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/info.log +0 -0
  527. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +0 -2
  528. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +16 -1
  529. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +4 -13
  530. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-1/butThen/artifact_test.txt +1 -0
  531. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +3 -1
  532. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +18 -27
  533. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/warn.log +0 -0
  534. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/exit.log +1 -0
  535. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.txt +0 -0
  536. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/message.txt +17 -0
  537. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +17 -0
  538. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/stderr.log +0 -0
  539. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/stdout.log +619 -0
  540. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/tests.json +165 -0
  541. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +140 -0
  542. package/testeranto/reports/core/src/lib/core.test/core.test/node/exit.log +1 -0
  543. package/testeranto/reports/core/src/lib/core.test/core.test/node/lint_errors.txt +21 -0
  544. package/testeranto/reports/core/src/lib/core.test/core.test/node/message.txt +17 -0
  545. package/testeranto/reports/core/src/lib/core.test/core.test/node/prompt.txt +19 -0
  546. package/testeranto/reports/core/src/lib/core.test/core.test/node/stderr.log +0 -0
  547. package/testeranto/reports/core/src/lib/core.test/core.test/node/stdout.log +0 -0
  548. package/testeranto/reports/core/src/lib/core.test/core.test/node/type_errors.txt +64 -0
  549. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +1 -0
  550. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +23 -0
  551. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +17 -0
  552. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +17 -0
  553. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +0 -0
  554. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +0 -0
  555. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/tests.json +162 -0
  556. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +78 -0
  557. package/testeranto/reports/core/src/mothership/test/node/exit.log +1 -0
  558. package/testeranto/reports/core/src/mothership/test/node/lint_errors.txt +0 -0
  559. package/testeranto/reports/core/src/mothership/test/node/message.txt +17 -0
  560. package/testeranto/reports/core/src/mothership/test/node/prompt.txt +14 -0
  561. package/testeranto/reports/core/src/mothership/test/node/stderr.log +27 -0
  562. package/testeranto/reports/core/src/mothership/test/node/stdout.log +8 -0
  563. package/testeranto/reports/core/src/mothership/test/node/tests.json +36 -0
  564. package/testeranto/reports/{staticSite/src/ReportServer.test.ts/index → core/src/mothership/test}/node/type_errors.txt +17 -31
  565. package/testeranto/reports/core/summary.json +98 -7
  566. package/testeranto.config.ts +66 -36
  567. package/tsc.log +392 -260
  568. package/tsconfig.common.json +4 -2
  569. package/tsconfig.json +9 -7
  570. package/tsconfig.module.json +3 -2
  571. package/tsconfig.types.json +3 -1
  572. package/videos/download-smil-xsd.sh +29 -0
  573. package/videos/project0/index.md +72 -0
  574. package/videos/project0/narration.json +7 -0
  575. package/videos/project0/narration.ssml +58 -0
  576. package/videos/project0/package.json +21 -0
  577. package/videos/project0/presentation.smil +25 -0
  578. package/videos/project0/smil30/SMIL-anim.mod.xsd +163 -0
  579. package/videos/project0/smil30/SMIL-anim.mod.xsd.1 +163 -0
  580. package/videos/project0/smil30/SMIL-anim.mod.xsd.2 +163 -0
  581. package/videos/project0/smil30/SMIL-control.mod.xsd +73 -0
  582. package/videos/project0/smil30/SMIL-control.mod.xsd.1 +73 -0
  583. package/videos/project0/smil30/SMIL-control.mod.xsd.2 +73 -0
  584. package/videos/project0/smil30/SMIL-layout.mod.xsd +149 -0
  585. package/videos/project0/smil30/SMIL-layout.mod.xsd.1 +149 -0
  586. package/videos/project0/smil30/SMIL-layout.mod.xsd.2 +149 -0
  587. package/videos/project0/smil30/SMIL-link.mod.xsd +145 -0
  588. package/videos/project0/smil30/SMIL-link.mod.xsd.1 +145 -0
  589. package/videos/project0/smil30/SMIL-link.mod.xsd.2 +145 -0
  590. package/videos/project0/smil30/SMIL-media.mod.xsd +1646 -0
  591. package/videos/project0/smil30/SMIL-media.mod.xsd.1 +1646 -0
  592. package/videos/project0/smil30/SMIL-media.mod.xsd.2 +1646 -0
  593. package/videos/project0/smil30/SMIL-metainformation.mod.xsd +45 -0
  594. package/videos/project0/smil30/SMIL-metainformation.mod.xsd.1 +45 -0
  595. package/videos/project0/smil30/SMIL-metainformation.mod.xsd.2 +45 -0
  596. package/videos/project0/smil30/SMIL-smiltext.mod.xsd +353 -0
  597. package/videos/project0/smil30/SMIL-smiltext.mod.xsd.1 +353 -0
  598. package/videos/project0/smil30/SMIL-smiltext.mod.xsd.2 +353 -0
  599. package/videos/project0/smil30/SMIL-state.mod.xsd +133 -0
  600. package/videos/project0/smil30/SMIL-state.mod.xsd.1 +133 -0
  601. package/videos/project0/smil30/SMIL-state.mod.xsd.2 +133 -0
  602. package/videos/project0/smil30/SMIL-struct.mod.xsd +70 -0
  603. package/videos/project0/smil30/SMIL-struct.mod.xsd.1 +70 -0
  604. package/videos/project0/smil30/SMIL-struct.mod.xsd.2 +70 -0
  605. package/videos/project0/smil30/SMIL-timing.mod.xsd +105 -0
  606. package/videos/project0/smil30/SMIL-timing.mod.xsd.1 +105 -0
  607. package/videos/project0/smil30/SMIL-timing.mod.xsd.2 +105 -0
  608. package/videos/project0/smil30/SMIL-transition.mod.xsd +229 -0
  609. package/videos/project0/smil30/SMIL-transition.mod.xsd.1 +229 -0
  610. package/videos/project0/smil30/SMIL-transition.mod.xsd.2 +229 -0
  611. package/videos/project0/smil30/SMIL.xsd +63 -0
  612. package/videos/project0/smil30/SMIL.xsd.1 +63 -0
  613. package/videos/project0/smil30/SMIL.xsd.2 +63 -0
  614. package/videos/project0/smil30/its.xsd +42 -0
  615. package/videos/project0/smil30/its.xsd.1 +42 -0
  616. package/videos/project0/smil30/its.xsd.2 +42 -0
  617. package/videos/project0/smil30/smil-attribs-1.mod.xsd +610 -0
  618. package/videos/project0/smil30/smil-attribs-1.mod.xsd.1 +610 -0
  619. package/videos/project0/smil30/smil-attribs-1.mod.xsd.2 +610 -0
  620. package/videos/project0/smil30/smil-datatypes-1.mod.xsd +72 -0
  621. package/videos/project0/smil30/smil-datatypes-1.mod.xsd.1 +72 -0
  622. package/videos/project0/smil30/smil-datatypes-1.mod.xsd.2 +72 -0
  623. package/videos/project0/smil30/smil-framework-1.mod.xsd +45 -0
  624. package/videos/project0/smil30/smil-framework-1.mod.xsd.1 +45 -0
  625. package/videos/project0/smil30/smil-framework-1.mod.xsd.2 +45 -0
  626. package/videos/project0/smil30/smil-profile-model-1.mod.xsd +1331 -0
  627. package/videos/project0/smil30/smil-profile-model-1.mod.xsd.1 +1331 -0
  628. package/videos/project0/smil30/smil-qname-1.mod.xsd +121 -0
  629. package/videos/project0/smil30/smil-qname-1.mod.xsd.1 +121 -0
  630. package/videos/project0/smil30/xml.xsd +16 -0
  631. package/videos/project0/smil30/xml.xsd.1 +16 -0
  632. package/videos/project0/smil30/xml.xsd.2 +16 -0
  633. package/videos/project0/smil30.xsd +137 -0
  634. package/videos/project0/src/audio/metadata.json +5 -0
  635. package/videos/project0/src/audio/narration.mp3 +0 -0
  636. package/videos/project0/src/motion-canvas.d.ts +1 -0
  637. package/videos/project0/src/project.meta +31 -0
  638. package/videos/project0/src/project.ts +13 -0
  639. package/videos/project0/src/scenes/example.meta +5 -0
  640. package/videos/project0/src/scenes/scene1.meta +3 -0
  641. package/videos/project0/src/scenes/scene1.tsx +129 -0
  642. package/videos/project0/src/scenes/scene2.tsx +132 -0
  643. package/videos/project0/src/scenes/scene3.meta +26 -0
  644. package/videos/project0/src/scenes/scene3.tsx +188 -0
  645. package/videos/project0/tsconfig.json +4 -0
  646. package/videos/project0/vite.config.ts +10 -0
  647. package/videos/trash/output/project.mp4 +0 -0
  648. package/videos/trash/text.mp4 +0 -0
  649. package/videos/trash/video/project.tsx +549 -0
  650. package/videos/trash/video/render.ts +15 -0
  651. package/videos/trash/vite.config.ts +10 -0
  652. package/videos/tts.js +109 -0
  653. package/dist/common/src/components/pure/ProjectPageView.test/adapter.js +0 -20
  654. package/dist/common/src/lib/dailyAnimation.js +0 -130
  655. package/dist/module/src/Footer.js +0 -5
  656. package/dist/module/src/ProjectPage.js +0 -319
  657. package/dist/module/src/ProjectsPage.js +0 -1
  658. package/dist/module/src/SettingsButton.js +0 -157
  659. package/dist/module/src/TestPage.js +0 -271
  660. package/dist/module/src/TestReport.js +0 -368
  661. package/dist/module/src/components/pure/ProjectPageView.test/adapter.js +0 -17
  662. package/dist/module/src/lib/dailyAnimation.js +0 -130
  663. package/dist/types/src/ReportServerLib.d.ts +0 -2
  664. package/dist/types/src/components/pure/ProjectPageView.d.ts +0 -14
  665. package/dist/types/src/components/pure/ProjectPageView.test/adapter.d.ts +0 -3
  666. package/dist/types/src/components/pure/ProjectPageView.test/types.d.ts +0 -39
  667. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.pure.d.ts +0 -3
  668. package/dist/types/testeranto.config.d.ts +0 -3
  669. package/docs/testing.ai.txt +0 -106
  670. package/src/Footer.tsx +0 -8
  671. package/src/Project.scss +0 -1
  672. package/src/ProjectPage.tsx +0 -459
  673. package/src/ProjectsPage.tsx +0 -1
  674. package/src/ReportApp.scss +0 -1
  675. package/src/SettingsButton.tsx +0 -268
  676. package/src/TestPage.tsx +0 -476
  677. package/src/TestReport.scss +0 -24
  678. package/src/TestReport.tsx +0 -411
  679. package/src/components/pure/ProjectPageView.test/adapter.ts +0 -21
  680. package/src/lib/dailyAnimation.ts +0 -147
  681. package/testeranto/bundles/node/allTests/metafile.json +0 -486
  682. package/testeranto/bundles/node/allTests/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +0 -1182
  683. package/testeranto/bundles/node/staticSite/metafile.json +0 -593
  684. package/testeranto/bundles/node/staticSite/src/ReportServer.test.ts/index.mjs +0 -1594
  685. package/testeranto/bundles/pure/allTests/metafile.json +0 -626
  686. package/testeranto/bundles/pure/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +0 -1094
  687. package/testeranto/bundles/pure/staticSite/metafile.json +0 -8
  688. package/testeranto/bundles/web/allTests/metafile.json +0 -780
  689. package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.html +0 -19
  690. package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +0 -1092
  691. package/testeranto/bundles/web/staticSite/metafile.json +0 -8
  692. package/testeranto/reports/allTests/config.json +0 -40
  693. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/bdd_errors.txt +0 -1
  694. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +0 -2
  695. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/logs.txt +0 -33
  696. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +0 -2
  697. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +0 -26
  698. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-0/butThen/hello.txt +0 -1
  699. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +0 -69
  700. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +0 -74
  701. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +0 -2
  702. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +0 -2
  703. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +0 -26
  704. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +0 -74
  705. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/bdd_errors.txt +0 -1
  706. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +0 -2
  707. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +0 -63
  708. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +0 -2
  709. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +0 -26
  710. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-0/butThen/hello.txt +0 -1
  711. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +0 -69
  712. package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +0 -74
  713. package/testeranto/reports/allTests/summary.json +0 -23
  714. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/bdd_errors.txt +0 -1
  715. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/logs.txt +0 -32
  716. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/bdd_errors.txt +0 -1
  717. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +0 -61
  718. package/testeranto/reports/staticSite/config.json +0 -24
  719. package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/lint_errors.txt +0 -5
  720. package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/logs.txt +0 -44
  721. package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/message.txt +0 -2
  722. package/testeranto/reports/staticSite/src/ReportServer.test.ts/index/node/prompt.txt +0 -23
  723. package/testeranto/reports/staticSite/summary.json +0 -9
  724. package/testeranto/reportsnode_build_errors +0 -17
  725. /package/dist/common/src/{NavBar.js → components/pure/NavBar.js} +0 -0
  726. /package/dist/{types/src/ReportServer.d.ts → module/src/components/SunriseAnimation.test/types.js} +0 -0
  727. /package/dist/{types/src/build.d.ts → module/src/components/pure/FeaturesReporterView.test/types.js} +0 -0
  728. /package/dist/module/src/{NavBar.js → components/pure/NavBar.js} +0 -0
  729. /package/dist/types/{src/CoreTypes.d.ts → CoreTypes.d.ts} +0 -0
  730. /package/dist/types/{src/Init.d.ts → Init.d.ts} +0 -0
  731. /package/dist/types/{src/Node.d.ts → Node.d.ts} +0 -0
  732. /package/dist/types/{src/NodeSidecar.d.ts → NodeSidecar.d.ts} +0 -0
  733. /package/dist/types/{src/PM → PM}/PM_WithEslintAndTsc.d.ts +0 -0
  734. /package/dist/types/{src/PM → PM}/__tests__/nodeSidecar.testeranto.d.ts +0 -0
  735. /package/dist/types/{src/PM → PM}/__tests__/pureSidecar.testeranto.d.ts +0 -0
  736. /package/dist/types/{src/PM → PM}/__tests__/webSidecar.testeranto.d.ts +0 -0
  737. /package/dist/types/{src/PM → PM}/index.d.ts +0 -0
  738. /package/dist/types/{src/components/SunriseAnimation.test/implementation.d.ts → PM/layers/base/PM_Base.d.ts} +0 -0
  739. /package/dist/types/{src/components/SunriseAnimation.test/index.d.ts → PM/layers/base/components/PageOperations.d.ts} +0 -0
  740. /package/dist/types/{src/components/SunriseAnimation.test/interface.d.ts → PM/layers/base/components/PageOperations.testeranto.d.ts} +0 -0
  741. /package/dist/types/{src/components/SunriseAnimation.test/specification.d.ts → PM/layers/linting/components/Linter.d.ts} +0 -0
  742. /package/dist/types/{src/lib/dailyAnimation.d.ts → PM/layers/linting/components/TypeChecker.d.ts} +0 -0
  743. /package/dist/types/{src/PM → PM}/nodeSidecar.d.ts +0 -0
  744. /package/dist/types/{src/PM → PM}/pureSidecar.d.ts +0 -0
  745. /package/dist/types/{src/PM → PM}/sidecar.d.ts +0 -0
  746. /package/dist/types/{src/PM → PM}/webSidecar.d.ts +0 -0
  747. /package/dist/types/{src/Pure.d.ts → Pure.d.ts} +0 -0
  748. /package/dist/types/{src/Pure.test.d.ts → Pure.test.d.ts} +0 -0
  749. /package/dist/types/{src/PureSidecar.d.ts → PureSidecar.d.ts} +0 -0
  750. /package/dist/types/{src/init-docs.d.ts → ReportServer.d.ts} +0 -0
  751. /package/dist/types/{src/ReportServer.test.ts → ReportServer.test.ts}/index.d.ts +0 -0
  752. /package/dist/types/{src/Web.d.ts → Web.d.ts} +0 -0
  753. /package/dist/types/{src/WebSidecar.d.ts → WebSidecar.d.ts} +0 -0
  754. /package/dist/types/{src/run.d.ts → build.d.ts} +0 -0
  755. /package/dist/types/{src/components → components}/TestStatusBadge.d.ts +0 -0
  756. /package/dist/types/{src/components/pure/ProjectPageView.test → components/pure/AppFrame.test}/specification.d.ts +0 -0
  757. /package/dist/types/{src/components/pure/ProjectPageView.test → components/pure/FeaturesReporterView.test}/implementation.d.ts +0 -0
  758. /package/dist/types/{src → components/pure}/NavBar.d.ts +0 -0
  759. /package/dist/types/{src/defaultConfig.d.ts → defaultConfig.d.ts} +0 -0
  760. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/consoleDetectorPlugin.d.ts +0 -0
  761. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/eslint-formatter-testeranto.d.ts +0 -0
  762. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/featuresPlugin.d.ts +0 -0
  763. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/index.d.ts +0 -0
  764. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/inputFilesPlugin.d.ts +0 -0
  765. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/nativeImportDetectorPlugin.d.ts +0 -0
  766. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/node.d.ts +0 -0
  767. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/pure.d.ts +0 -0
  768. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/rebuildPlugin.d.ts +0 -0
  769. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/web.d.ts +0 -0
  770. /package/dist/types/{src/lib → lib}/BaseSuite.test/mock.d.ts +0 -0
  771. /package/dist/types/{src/lib → lib}/BaseSuite.test/node.test.d.ts +0 -0
  772. /package/dist/types/{src/lib → lib}/BaseSuite.test/pure.test.d.ts +0 -0
  773. /package/dist/types/{src/lib → lib}/BaseSuite.test/test.d.ts +0 -0
  774. /package/dist/types/{src/lib → lib}/BaseSuite.test/web.test.d.ts +0 -0
  775. /package/dist/types/{src/lib → lib}/Sidecar.d.ts +0 -0
  776. /package/dist/types/{src/lib → lib}/abstractBase.test/MockThen.d.ts +0 -0
  777. /package/dist/types/{src/lib → lib}/abstractBase.test/MockWhen.d.ts +0 -0
  778. /package/dist/types/{src/lib → lib}/abstractBase.test/adapter.d.ts +0 -0
  779. /package/dist/types/{src/lib → lib}/abstractBase.test/implementation.d.ts +0 -0
  780. /package/dist/types/{src/lib → lib}/abstractBase.test/index.d.ts +0 -0
  781. /package/dist/types/{src/lib → lib}/abstractBase.test/specification.d.ts +0 -0
  782. /package/dist/types/{src/lib → lib}/abstractBase.test/types.d.ts +0 -0
  783. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.adapter.d.ts +0 -0
  784. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.implementation.d.ts +0 -0
  785. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.mock.d.ts +0 -0
  786. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.node.d.ts +0 -0
  787. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.specification.d.ts +0 -0
  788. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.types.d.ts +0 -0
  789. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.web.d.ts +0 -0
  790. /package/dist/types/{src/lib → lib}/basebuilder.d.ts +0 -0
  791. /package/dist/types/{src/lib → lib}/classBuilder.d.ts +0 -0
  792. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.adapter.d.ts +0 -0
  793. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.d.ts +0 -0
  794. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.implementation.d.ts +0 -0
  795. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.specification.d.ts +0 -0
  796. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.types.d.ts +0 -0
  797. /package/dist/types/{src/lib → lib}/classBuilder.test/mock.d.ts +0 -0
  798. /package/dist/types/{src/lib → lib}/core.d.ts +0 -0
  799. /package/dist/types/{src/lib → lib}/core.test/MockCore.d.ts +0 -0
  800. /package/dist/types/{src/lib → lib}/core.test/core.test.adapter.d.ts +0 -0
  801. /package/dist/types/{src/lib → lib}/core.test/core.test.d.ts +0 -0
  802. /package/dist/types/{src/lib → lib}/core.test/core.test.implementation.d.ts +0 -0
  803. /package/dist/types/{src/lib → lib}/core.test/core.test.specification.d.ts +0 -0
  804. /package/dist/types/{src/lib → lib}/core.test/core.test.types.d.ts +0 -0
  805. /package/dist/types/{src/lib → lib}/mocks.test.d.ts +0 -0
  806. /package/dist/types/{src/lib → lib}/pmProxy.test/adapter.d.ts +0 -0
  807. /package/dist/types/{src/lib → lib}/pmProxy.test/implementation.d.ts +0 -0
  808. /package/dist/types/{src/lib → lib}/pmProxy.test/index.d.ts +0 -0
  809. /package/dist/types/{src/lib → lib}/pmProxy.test/mockPM.d.ts +0 -0
  810. /package/dist/types/{src/lib → lib}/pmProxy.test/mockPMBase.d.ts +0 -0
  811. /package/dist/types/{src/lib → lib}/pmProxy.test/specification.d.ts +0 -0
  812. /package/dist/types/{src/lib → lib}/pmProxy.test/types.d.ts +0 -0
  813. /package/dist/types/{src/lib → lib}/types.d.ts +0 -0
  814. /package/dist/types/{src/mothership → mothership}/index.d.ts +0 -0
  815. /package/dist/types/{src/mothership → mothership}/test.d.ts +0 -0
  816. /package/dist/types/{src/utils → utils}/buildTemplates.d.ts +0 -0
  817. /package/dist/types/{src/utils → utils}/queue.d.ts +0 -0
  818. /package/dist/types/{src/utils.d.ts → utils.d.ts} +0 -0
  819. /package/src/{NavBar.tsx → components/pure/NavBar.tsx} +0 -0
package/src/PM/main.ts CHANGED
@@ -2,8 +2,9 @@
2
2
  /* eslint-disable no-async-promise-executor */
3
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
4
  /* eslint-disable @typescript-eslint/no-unused-vars */
5
- import { ChildProcess, spawn } from "node:child_process";
6
5
 
6
+ import { ChildProcess, spawn } from "node:child_process";
7
+ import ansiColors from "ansi-colors";
7
8
  import net from "net";
8
9
  import { Page } from "puppeteer-core/lib/esm/puppeteer";
9
10
  import fs, { watch } from "fs";
@@ -21,8 +22,8 @@ import { getRunnables } from "../utils";
21
22
  import { IBuiltConfig, IRunTime, ITestTypes } from "../Types.js";
22
23
  import { Sidecar } from "../lib/Sidecar.js";
23
24
  import { Queue } from "../utils/queue.js";
25
+
24
26
  import { PM_WithEslintAndTsc } from "./PM_WithEslintAndTsc.js";
25
- import ansiColors from "ansi-colors";
26
27
 
27
28
  type IOutputs = Record<
28
29
  string,
@@ -37,6 +38,113 @@ const fileHashes = {};
37
38
  const files: Record<string, Set<string>> = {};
38
39
  const screenshots: Record<string, Promise<Uint8Array>[]> = {};
39
40
 
41
+ type LogStreams = {
42
+ closeAll: () => void;
43
+ writeExitCode: (code: number, error?: Error) => void;
44
+ stdout?: fs.WriteStream;
45
+ stderr?: fs.WriteStream;
46
+ info?: fs.WriteStream;
47
+ warn?: fs.WriteStream;
48
+ error?: fs.WriteStream;
49
+ debug?: fs.WriteStream;
50
+ exit: fs.WriteStream;
51
+ };
52
+
53
+ function runtimeLogs(
54
+ runtime: IRunTime,
55
+ reportDest: string
56
+ ): Record<string, fs.WriteStream> {
57
+ const safeDest = reportDest || `testeranto/reports/default_${Date.now()}`;
58
+
59
+ try {
60
+ if (!fs.existsSync(safeDest)) {
61
+ fs.mkdirSync(safeDest, { recursive: true });
62
+ }
63
+
64
+ if (runtime === "node") {
65
+ return {
66
+ stdout: fs.createWriteStream(`${safeDest}/stdout.log`),
67
+ stderr: fs.createWriteStream(`${safeDest}/stderr.log`),
68
+ exit: fs.createWriteStream(`${safeDest}/exit.log`),
69
+ };
70
+ } else if (runtime === "web") {
71
+ return {
72
+ info: fs.createWriteStream(`${safeDest}/info.log`),
73
+ warn: fs.createWriteStream(`${safeDest}/warn.log`),
74
+ error: fs.createWriteStream(`${safeDest}/error.log`),
75
+ debug: fs.createWriteStream(`${safeDest}/debug.log`),
76
+ exit: fs.createWriteStream(`${safeDest}/exit.log`),
77
+ };
78
+ } else if (runtime === "pure") {
79
+ return {
80
+ exit: fs.createWriteStream(`${safeDest}/exit.log`),
81
+ };
82
+ } else {
83
+ throw `unknown runtime: ${runtime}`;
84
+ }
85
+ } catch (e) {
86
+ console.error(`Failed to create log streams in ${safeDest}:`, e);
87
+ throw e;
88
+ }
89
+ }
90
+
91
+ function createLogStreams(reportDest: string, runtime: IRunTime): LogStreams {
92
+ // Create directory if it doesn't exist
93
+ if (!fs.existsSync(reportDest)) {
94
+ fs.mkdirSync(reportDest, { recursive: true });
95
+ }
96
+
97
+ const streams = runtimeLogs(runtime, reportDest);
98
+
99
+ // const streams = {
100
+ // exit: fs.createWriteStream(`${reportDest}/exit.log`),
101
+ const safeDest = reportDest || `testeranto/reports/default_${Date.now()}`;
102
+
103
+ try {
104
+ if (!fs.existsSync(safeDest)) {
105
+ fs.mkdirSync(safeDest, { recursive: true });
106
+ }
107
+
108
+ const streams = runtimeLogs(runtime, safeDest);
109
+ // const streams = {
110
+ // exit: fs.createWriteStream(`${safeDest}/exit.log`),
111
+ // ...(runtime === "node" || runtime === "pure"
112
+ // ? {
113
+ // stdout: fs.createWriteStream(`${safeDest}/stdout.log`),
114
+ // stderr: fs.createWriteStream(`${safeDest}/stderr.log`),
115
+ // }
116
+ // : {
117
+ // info: fs.createWriteStream(`${safeDest}/info.log`),
118
+ // warn: fs.createWriteStream(`${safeDest}/warn.log`),
119
+ // error: fs.createWriteStream(`${safeDest}/error.log`),
120
+ // debug: fs.createWriteStream(`${safeDest}/debug.log`),
121
+ // }),
122
+ // };
123
+
124
+ return {
125
+ ...streams,
126
+ closeAll: () => {
127
+ Object.values(streams).forEach(
128
+ (stream) => !stream.closed && stream.close()
129
+ );
130
+ },
131
+ writeExitCode: (code: number, error?: Error) => {
132
+ if (error) {
133
+ streams.exit.write(`Error: ${error.message}\n`);
134
+ if (error.stack) {
135
+ streams.exit.write(`Stack Trace:\n${error.stack}\n`);
136
+ }
137
+ }
138
+ streams.exit.write(`${code}\n`);
139
+ },
140
+ exit: streams.exit,
141
+ };
142
+ } catch (e) {
143
+ console.error(`Failed to create log streams in ${safeDest}:`, e);
144
+ throw e;
145
+ }
146
+ }
147
+
40
148
  async function fileHash(filePath, algorithm = "md5") {
41
149
  return new Promise<string>((resolve, reject) => {
42
150
  const hash = crypto.createHash(algorithm);
@@ -63,12 +171,18 @@ const statusMessagePretty = (
63
171
  runtime: IRunTime
64
172
  ) => {
65
173
  if (failures === 0) {
174
+ console.log(ansiC.green(ansiC.inverse(`${runtime} > ${test}`)));
175
+ } else if (failures > 0) {
66
176
  console.log(
67
- ansiC.green(ansiC.inverse(`${runtime} > ${test} completed successfully`))
177
+ ansiC.red(
178
+ ansiC.inverse(
179
+ `${runtime} > ${test} failed ${failures} times (exit code: ${failures})`
180
+ )
181
+ )
68
182
  );
69
183
  } else {
70
184
  console.log(
71
- ansiC.red(ansiC.inverse(`${runtime} > ${test} failed ${failures} times`))
185
+ ansiC.red(ansiC.inverse(`${runtime} > ${test} crashed (exit code: -1)`))
72
186
  );
73
187
  }
74
188
  };
@@ -105,13 +219,10 @@ function isValidUrl(string) {
105
219
 
106
220
  // Wait for file to exist, checks every 2 seconds by default
107
221
  async function pollForFile(path, timeout = 2000) {
108
- console.log(`pollForFile: ${path}...`);
109
-
110
222
  const intervalObj = setInterval(function () {
111
223
  const file = path;
112
224
  const fileExists = fs.existsSync(file);
113
225
  if (fileExists) {
114
- console.log(`metafile found: ${path}!`);
115
226
  clearInterval(intervalObj);
116
227
  }
117
228
  }, timeout);
@@ -120,12 +231,14 @@ async function pollForFile(path, timeout = 2000) {
120
231
  export class PM_Main extends PM_WithEslintAndTsc {
121
232
  ports: Record<number, string>;
122
233
  queue: string[];
234
+ logStreams: Record<string, ReturnType<typeof createLogStreams>> = {};
123
235
  webMetafileWatcher: fs.FSWatcher;
124
236
  nodeMetafileWatcher: fs.FSWatcher;
125
237
  importMetafileWatcher: fs.FSWatcher;
126
238
  pureSidecars: Record<number, Sidecar>;
127
239
  nodeSidecars: Record<number, ChildProcess>;
128
240
  webSidecars: Record<number, Page>;
241
+ sidecars: Record<number, any> = {};
129
242
  launchers: Record<string, () => void>;
130
243
 
131
244
  constructor(configs: IBuiltConfig, name: string, mode: "once" | "dev") {
@@ -246,17 +359,18 @@ export class PM_Main extends PM_WithEslintAndTsc {
246
359
  waitForInitialPage: false,
247
360
  executablePath,
248
361
  headless: true,
362
+ defaultViewport: null, // Disable default 800x600 viewport
249
363
  dumpio: false,
250
364
  devtools: false,
251
365
 
252
366
  args: [
253
- "--disable-features=site-per-process",
254
367
  "--allow-file-access-from-files",
255
368
  "--allow-insecure-localhost",
256
369
  "--allow-running-insecure-content",
257
370
  "--auto-open-devtools-for-tabs",
258
371
  "--disable-dev-shm-usage",
259
372
  "--disable-extensions",
373
+ "--disable-features=site-per-process",
260
374
  "--disable-gpu",
261
375
  "--disable-setuid-sandbox",
262
376
  "--disable-site-isolation-trials",
@@ -266,6 +380,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
266
380
  "--no-startup-window",
267
381
  "--reduce-security-for-testing",
268
382
  "--remote-allow-origins=*",
383
+ "--start-maximized",
269
384
  "--unsafely-treat-insecure-origin-as-secure=*",
270
385
  `--remote-debugging-port=3234`,
271
386
  // "--disable-features=IsolateOrigins,site-per-process",
@@ -407,6 +522,10 @@ export class PM_Main extends PM_WithEslintAndTsc {
407
522
  this.nodeMetafileWatcher.close();
408
523
  this.webMetafileWatcher.close();
409
524
  this.importMetafileWatcher.close();
525
+
526
+ // Close any remaining log streams
527
+ Object.values(this.logStreams || {}).forEach((logs) => logs.closeAll());
528
+
410
529
  this.checkForShutdown();
411
530
  }
412
531
 
@@ -536,7 +655,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
536
655
  });
537
656
  } else {
538
657
  this.queue.push(src);
539
- return;
658
+ return [Math.random(), argz];
540
659
  }
541
660
  } else {
542
661
  console.error("negative port makes no sense", src);
@@ -574,8 +693,24 @@ export class PM_Main extends PM_WithEslintAndTsc {
574
693
  // })
575
694
  // );
576
695
 
696
+ const logs = createLogStreams(reportDest, "pure");
697
+
577
698
  try {
578
699
  await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
700
+ // Override console methods to redirect logs
701
+ // Only override stdout/stderr methods for pure runtime
702
+ const originalConsole = { ...console };
703
+
704
+ // console.log = (...args) => {
705
+ // logs.stdout.write(args.join(" ") + "\n");
706
+ // originalConsole.log(...args);
707
+ // };
708
+
709
+ // console.error = (...args) => {
710
+ // logs.stderr.write(args.join(" ") + "\n");
711
+ // originalConsole.error(...args);
712
+ // };
713
+
579
714
  return module.default
580
715
  .then((defaultModule) => {
581
716
  defaultModule
@@ -589,7 +724,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
589
724
  })
590
725
  .catch((e1) => {
591
726
  console.log(
592
- ansiC.red(`launchPure - ${src} errored with: ${e1}`)
727
+ ansiC.red(`launchPure - ${src} errored with: ${e1.stack}`)
593
728
  );
594
729
  this.bddTestIsNowDone(src, -1);
595
730
  statusMessagePretty(-1, src, "pure");
@@ -601,11 +736,12 @@ export class PM_Main extends PM_WithEslintAndTsc {
601
736
  .catch((e2) => {
602
737
  console.log(
603
738
  ansiColors.red(
604
- `pure ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`
739
+ `pure ! ${src} failed to execute. No "tests.json" file was generated. Check the logs for more info`
605
740
  )
606
741
  );
607
742
 
608
- this.writeFileSync(`${reportDest}/logs.txt`, e2.stack, src);
743
+ logs.exit.write(e2.stack);
744
+ logs.exit.write(-1);
609
745
  this.bddTestIsNowDone(src, -1);
610
746
  statusMessagePretty(-1, src, "pure");
611
747
  // console.error(e);
@@ -619,17 +755,19 @@ export class PM_Main extends PM_WithEslintAndTsc {
619
755
  });
620
756
  });
621
757
  } catch (e3) {
758
+ logs.writeExitCode(-1, e3);
622
759
  console.log(
623
760
  ansiC.red(
624
761
  ansiC.inverse(
625
- `${src} 1 errored with: ${e3}. Check ${reportDest}/logs.txt for more info`
762
+ `${src} 1 errored with: ${e3}. Check logs for more info`
626
763
  )
627
764
  )
628
765
  );
629
- this.writeFileSync(`${reportDest}/logs.txt`, e3.stack, src);
766
+
767
+ logs.exit.write(e3.stack);
768
+ logs.exit.write(-1);
630
769
  this.bddTestIsNowDone(src, -1);
631
770
  statusMessagePretty(-1, src, "pure");
632
- console.log("III) PURE IS EXITING BADLY WITH error", e3);
633
771
  }
634
772
 
635
773
  for (let i = 0; i <= portsToUse.length; i++) {
@@ -647,7 +785,6 @@ export class PM_Main extends PM_WithEslintAndTsc {
647
785
  .split(".")
648
786
  .slice(0, -1)
649
787
  .join(".")}/node`;
650
-
651
788
  if (!fs.existsSync(reportDest)) {
652
789
  fs.mkdirSync(reportDest, { recursive: true });
653
790
  }
@@ -686,7 +823,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
686
823
 
687
824
  if (openPorts.length >= testConfigResource.ports) {
688
825
  for (let i = 0; i < testConfigResource.ports; i++) {
689
- portsToUse.push(openPorts[i][0]);
826
+ portsToUse.push(openPorts[i][0]); // Convert string port to number
690
827
 
691
828
  this.ports[openPorts[i][0]] = src; // port is now claimed
692
829
  }
@@ -705,7 +842,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
705
842
  )
706
843
  );
707
844
  this.queue.push(src);
708
- return;
845
+ return [Math.random(), argz]; // Add this return
709
846
  }
710
847
  } else {
711
848
  console.error("negative port makes no sense", src);
@@ -778,52 +915,50 @@ export class PM_Main extends PM_WithEslintAndTsc {
778
915
  });
779
916
  });
780
917
 
781
- const oStream = fs.createWriteStream(`${reportDest}/logs.txt`);
782
-
783
- const errFile = `${reportDest}/logs.txt`;
784
-
785
- if (fs.existsSync(errFile)) {
786
- fs.rmSync(errFile);
787
- }
918
+ const logs = createLogStreams(reportDest, "node");
788
919
 
789
920
  server.listen(ipcfile, () => {
790
- child.stderr?.on("data", (data) => {
791
- oStream.write(`stderr > ${data}`);
792
- });
921
+ // Only handle stdout/stderr for node runtime
793
922
  child.stdout?.on("data", (data) => {
794
- oStream.write(`stdout > ${data}`);
923
+ logs.stdout?.write(data); // Add null check
924
+ });
925
+
926
+ child.stderr?.on("data", (data) => {
927
+ logs.stderr?.write(data); // Add null check
795
928
  });
796
929
  child.on("error", (err) => {});
797
930
  child.on("close", (code) => {
798
- // oStream.close();
931
+ const exitCode = code === null ? -1 : code;
932
+ if (exitCode < 0) {
933
+ logs.writeExitCode(
934
+ exitCode,
935
+ new Error("Process crashed or was terminated")
936
+ );
937
+ } else {
938
+ logs.writeExitCode(exitCode);
939
+ }
940
+ logs.closeAll();
799
941
  server.close();
800
942
 
801
943
  if (!files[src]) {
802
944
  files[src] = new Set();
803
945
  }
804
- // files[src].add(filepath);
805
946
 
806
- // fs.writeFileSync(
807
- // reportDest + "/manifest.json",
808
- // JSON.stringify(Array.from(files[src]))
809
- // );
810
-
811
- if (code === 255) {
947
+ if (exitCode === 255) {
812
948
  console.log(
813
949
  ansiColors.red(
814
- `node ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`
950
+ `node ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/stderr.log for more info`
815
951
  )
816
952
  );
817
953
  this.bddTestIsNowDone(src, -1);
818
954
  statusMessagePretty(-1, src, "node");
819
- oStream.close();
820
955
  return;
821
- } else if (code === 0) {
956
+ } else if (exitCode === 0) {
822
957
  this.bddTestIsNowDone(src, 0);
823
958
  statusMessagePretty(0, src, "node");
824
959
  } else {
825
- this.bddTestIsNowDone(src, code);
826
- statusMessagePretty(code, src, "node");
960
+ this.bddTestIsNowDone(src, exitCode);
961
+ statusMessagePretty(exitCode, src, "node");
827
962
  }
828
963
 
829
964
  haltReturns = true;
@@ -845,11 +980,10 @@ export class PM_Main extends PM_WithEslintAndTsc {
845
980
  console.log(
846
981
  ansiC.red(
847
982
  ansiC.inverse(
848
- `${src} errored with: ${e.name}. Check ${errFile} for more info`
983
+ `${src} errored with: ${e.name}. Check error logs for more info`
849
984
  )
850
985
  )
851
986
  );
852
- this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
853
987
  this.bddTestIsNowDone(src, -1);
854
988
  statusMessagePretty(-1, src, "node");
855
989
  });
@@ -858,7 +992,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
858
992
 
859
993
  launchWebSideCar = async (
860
994
  testConfig: ITestTypes
861
- ): Promise<[number, ITTestResourceConfiguration]> => {
995
+ ): Promise<[number, Page]> => {
862
996
  const src = testConfig[0];
863
997
  const dest = src.split(".").slice(0, -1).join(".");
864
998
  // const d = dest + ".mjs";
@@ -867,10 +1001,10 @@ export class PM_Main extends PM_WithEslintAndTsc {
867
1001
 
868
1002
  console.log(ansiC.green(ansiC.inverse(`launchWebSideCar ${src}`)));
869
1003
 
870
- const fileStreams2: fs.WriteStream[] = [];
871
- const doneFileStream2: Promise<any>[] = [];
1004
+ // const fileStreams2: fs.WriteStream[] = [];
1005
+ // const doneFileStream2: Promise<any>[] = [];
872
1006
 
873
- const oStream = fs.createWriteStream(`${destFolder}/logs.txt`);
1007
+ const logs = createLogStreams(dest, "web");
874
1008
 
875
1009
  return new Promise((res, rej) => {
876
1010
  this.browser
@@ -896,40 +1030,43 @@ export class PM_Main extends PM_WithEslintAndTsc {
896
1030
  Promise.all(screenshots[src] || []).then(() => {
897
1031
  delete screenshots[src];
898
1032
  page.close();
899
- oStream.close();
900
1033
  });
901
1034
  };
902
1035
 
903
1036
  page.on("pageerror", (err: Error) => {
904
1037
  console.debug(`Error from ${src}: [${err.name}] `);
905
- oStream.write(err.name);
906
- oStream.write("\n");
907
-
1038
+ console.debug(`Error from ${src}: [${err.name}] `);
908
1039
  if (err.cause) {
909
1040
  console.debug(`Error from ${src} cause: [${err.cause}] `);
910
- oStream.write(err.cause);
911
- oStream.write("\n");
912
1041
  }
913
-
914
1042
  if (err.stack) {
915
1043
  console.debug(`Error from stack ${src}: [${err.stack}] `);
916
- oStream.write(err.stack);
917
- oStream.write("\n");
918
1044
  }
919
-
920
1045
  console.debug(`Error from message ${src}: [${err.message}] `);
921
- oStream.write(err.message);
922
- oStream.write("\n");
923
-
924
1046
  this.bddTestIsNowDone(src, -1);
925
1047
  close();
926
1048
  });
927
1049
 
928
1050
  page.on("console", (log: ConsoleMessage) => {
929
- oStream.write(log.text());
930
- oStream.write(JSON.stringify(log.location()));
931
- oStream.write(JSON.stringify(log.stackTrace()));
932
- oStream.write("\n");
1051
+ const msg = `${log.text()}\n${JSON.stringify(
1052
+ log.location()
1053
+ )}\n${JSON.stringify(log.stackTrace())}\n`;
1054
+ switch (log.type()) {
1055
+ case "info":
1056
+ logs.info?.write(msg);
1057
+ break;
1058
+ case "warn":
1059
+ logs.warn?.write(msg);
1060
+ break;
1061
+ case "error":
1062
+ logs.error?.write(msg);
1063
+ break;
1064
+ case "debug":
1065
+ logs.debug?.write(msg);
1066
+ break;
1067
+ default:
1068
+ break;
1069
+ }
933
1070
  });
934
1071
 
935
1072
  await page.goto(`file://${`${destFolder}.html`}`, {});
@@ -981,7 +1118,6 @@ export class PM_Main extends PM_WithEslintAndTsc {
981
1118
  .then(async (page) => {
982
1119
  await page.goto(`file://${`${dest}.html`}`, {});
983
1120
 
984
- /* @ts-ignore:next-line */
985
1121
  res([Math.random(), page]);
986
1122
  });
987
1123
  });
@@ -1012,6 +1148,8 @@ export class PM_Main extends PM_WithEslintAndTsc {
1012
1148
 
1013
1149
  const testReq: { ports: number } = sidecar[2];
1014
1150
 
1151
+ const logs = createLogStreams(dest, "node");
1152
+
1015
1153
  const portsToUse: number[] = [];
1016
1154
  if (testReq.ports === 0) {
1017
1155
  // argz = {
@@ -1027,7 +1165,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
1027
1165
 
1028
1166
  if (openPorts.length >= testReq.ports) {
1029
1167
  for (let i = 0; i < testReq.ports; i++) {
1030
- portsToUse.push(openPorts[i][0]);
1168
+ portsToUse.push(Number(openPorts[i][0])); // Convert string port to number
1031
1169
 
1032
1170
  this.ports[openPorts[i][0]] = src; // port is now closed
1033
1171
  }
@@ -1079,8 +1217,6 @@ export class PM_Main extends PM_WithEslintAndTsc {
1079
1217
  });
1080
1218
  });
1081
1219
 
1082
- const oStream = fs.createWriteStream(`${reportDest}/logs.txt`);
1083
-
1084
1220
  const child = spawn("node", [builtfile, JSON.stringify(argz)], {
1085
1221
  stdio: ["pipe", "pipe", "pipe", "ipc"],
1086
1222
  // silent: true
@@ -1088,19 +1224,9 @@ export class PM_Main extends PM_WithEslintAndTsc {
1088
1224
 
1089
1225
  const p = "/tmp/tpipe" + Math.random();
1090
1226
 
1091
- const errFile = `${reportDest}/logs.txt`;
1092
-
1093
1227
  server.listen(p, () => {
1094
- child.stderr?.on("data", (data) => {
1095
- oStream.write(`stderr > ${data}`);
1096
- });
1097
- child.stdout?.on("data", (data) => {
1098
- oStream.write(`stdout > ${data}`);
1099
- });
1100
1228
  child.on("close", (code) => {
1101
- oStream.close();
1102
1229
  server.close();
1103
-
1104
1230
  haltReturns = true;
1105
1231
  });
1106
1232
  child.on("exit", (code) => {
@@ -1122,11 +1248,11 @@ export class PM_Main extends PM_WithEslintAndTsc {
1122
1248
  console.log(
1123
1249
  ansiC.red(
1124
1250
  ansiC.inverse(
1125
- `launchNodeSideCar - ${src} errored with: ${e.name}. Check ${errFile}for more info`
1251
+ `launchNodeSideCar - ${src} errored with: ${e.name}. Check logs for more info`
1126
1252
  )
1127
1253
  )
1128
1254
  );
1129
- this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
1255
+ logs.error?.write(e.toString() + "\n");
1130
1256
  // this.bddTestIsNowDone(src, -1);
1131
1257
  // statusMessagePretty(-1, src);
1132
1258
  });
@@ -1193,7 +1319,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
1193
1319
  );
1194
1320
  if (openPorts.length >= testConfigResource.ports) {
1195
1321
  for (let i = 0; i < testConfigResource.ports; i++) {
1196
- portsToUse.push(openPorts[i][0]);
1322
+ portsToUse.push(Number(openPorts[i][0]));
1197
1323
 
1198
1324
  this.ports[openPorts[i][0]] = src; // port is now claimed
1199
1325
  }
@@ -1208,7 +1334,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
1208
1334
  };
1209
1335
  } else {
1210
1336
  this.queue.push(src);
1211
- return;
1337
+ // return;
1212
1338
  }
1213
1339
  } else {
1214
1340
  console.error("negative port makes no sense", src);
@@ -1218,6 +1344,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
1218
1344
  // const builtfile = dest + ".mjs";
1219
1345
 
1220
1346
  await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
1347
+ if (!this.pureSidecars) this.pureSidecars = {};
1221
1348
  this.pureSidecars[r] = module.default;
1222
1349
  this.pureSidecars[r].start(argz);
1223
1350
  });
@@ -1253,23 +1380,37 @@ export class PM_Main extends PM_WithEslintAndTsc {
1253
1380
 
1254
1381
  const d = `${dest}?cacheBust=${Date.now()}`;
1255
1382
 
1256
- const evaluation = `
1257
-
1258
- import('${d}').then(async (x) => {
1259
-
1260
- try {
1261
- return await (await x.default).receiveTestResourceConfig(${webArgz})
1262
- } catch (e) {
1263
- console.log("web run failure", e.toString())
1264
- }
1265
- })`;
1266
-
1267
- const ofile = `${reportDest}/logs.txt`;
1268
- const oStream = fs.createWriteStream(ofile);
1383
+ const logs = createLogStreams(reportDest, "web");
1269
1384
 
1270
1385
  this.browser
1271
1386
  .newPage()
1272
1387
  .then((page) => {
1388
+ page.on("console", (log: ConsoleMessage) => {
1389
+ const msg = `${log.text()}\n`;
1390
+
1391
+ switch (log.type()) {
1392
+ case "info":
1393
+ logs.info?.write(msg);
1394
+ break;
1395
+ case "warn":
1396
+ logs.warn?.write(msg);
1397
+ break;
1398
+ case "error":
1399
+ logs.error?.write(msg);
1400
+ break;
1401
+ case "debug":
1402
+ logs.debug?.write(msg);
1403
+ break;
1404
+ default:
1405
+ break;
1406
+ }
1407
+ });
1408
+
1409
+ page.on("close", () => {
1410
+ logs.writeExitCode(0); // Web tests exit with 0 unless there's an error
1411
+ logs.closeAll();
1412
+ logs.closeAll();
1413
+ });
1273
1414
  this.mapping().forEach(async ([command, func]) => {
1274
1415
  if (command === "page") {
1275
1416
  page.exposeFunction(command, (x?) => {
@@ -1302,72 +1443,50 @@ export class PM_Main extends PM_WithEslintAndTsc {
1302
1443
  Promise.all(screenshots[src] || []).then(() => {
1303
1444
  delete screenshots[src];
1304
1445
  page.close();
1305
- oStream.close();
1306
1446
  });
1307
- console.log("ostream is closed");
1447
+
1308
1448
  return;
1309
1449
  };
1310
1450
 
1311
1451
  page.on("pageerror", (err: Error) => {
1452
+ logs.writeExitCode(-1, err);
1312
1453
  console.log(
1313
1454
  ansiColors.red(
1314
- `web ! ${src} failed to execute No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`
1455
+ `web ! ${src} failed to execute No "tests.json" file was generated. Check ${reportDest}/error.log for more info`
1315
1456
  )
1316
1457
  );
1317
-
1318
- oStream.write(err.name);
1319
- oStream.write("\n");
1320
-
1321
- if (err.cause) {
1322
- oStream.write(err.cause);
1323
- oStream.write("\n");
1324
- }
1325
-
1326
- if (err.stack) {
1327
- oStream.write(err.stack);
1328
- oStream.write("\n");
1329
- }
1330
-
1331
- if (err.message) {
1332
- oStream.write(err.message);
1333
- oStream.write("\n");
1334
- }
1335
-
1336
1458
  this.bddTestIsNowDone(src, -1);
1337
1459
  close();
1338
1460
  });
1339
1461
 
1340
- page.on("console", (log: ConsoleMessage) => {
1341
- // console.log("console message: ", log.text());
1342
- if (oStream.closed) {
1343
- console.log("missed console message: ", log.text());
1344
- return;
1345
- } else {
1346
- oStream.write(log.text());
1347
- oStream.write("\n");
1348
- oStream.write(JSON.stringify(log.location()));
1349
- oStream.write("\n");
1350
- oStream.write(JSON.stringify(log.stackTrace()));
1351
- oStream.write("\n");
1352
- }
1353
- });
1462
+ // page.on("console", (log: ConsoleMessage) => {});
1354
1463
 
1355
1464
  await page.goto(`file://${`${destFolder}.html`}`, {});
1356
1465
 
1357
1466
  await page
1358
- .evaluate(evaluation)
1467
+ .evaluate(
1468
+ `
1469
+ import('${d}').then(async (x) => {
1470
+ try {
1471
+ return await (await x.default).receiveTestResourceConfig(${webArgz})
1472
+ } catch (e) {
1473
+ console.log("web run failure", e.toString())
1474
+ }
1475
+ })
1476
+ `
1477
+ )
1359
1478
  .then(async ({ fails, failed, features }: IFinalResults) => {
1360
1479
  statusMessagePretty(fails, src, "web");
1361
1480
  this.bddTestIsNowDone(src, fails);
1362
- close();
1481
+ // close();
1363
1482
  })
1364
1483
  .catch((e) => {
1365
- console.log(ansiC.red(ansiC.inverse(e)));
1484
+ console.log(ansiC.red(ansiC.inverse(e.stack)));
1366
1485
 
1367
1486
  console.log(
1368
1487
  ansiC.red(
1369
1488
  ansiC.inverse(
1370
- `web ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`
1489
+ `web ! ${src} failed to execute. No "tests.json" file was generated. Check logs for more info`
1371
1490
  )
1372
1491
  )
1373
1492
  );
@@ -1375,6 +1494,7 @@ export class PM_Main extends PM_WithEslintAndTsc {
1375
1494
  })
1376
1495
  .finally(() => {
1377
1496
  // process.exit(-1);
1497
+ close();
1378
1498
  });
1379
1499
 
1380
1500
  return page;
@@ -1547,10 +1667,16 @@ export class PM_Main extends PM_WithEslintAndTsc {
1547
1667
  this.writeBigBoard();
1548
1668
 
1549
1669
  if (!inflight) {
1550
- this.browser.disconnect().then(() => {
1551
- console.log(ansiC.inverse(`${this.name} has been tested. Goodbye.`));
1552
- process.exit();
1553
- });
1670
+ if (this.browser) {
1671
+ if (this.browser) {
1672
+ this.browser.disconnect().then(() => {
1673
+ console.log(
1674
+ ansiC.inverse(`${this.name} has been tested. Goodbye.`)
1675
+ );
1676
+ process.exit();
1677
+ });
1678
+ }
1679
+ }
1554
1680
  }
1555
1681
  };
1556
1682
  }