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
@@ -6,8 +6,9 @@ import readline from "readline";
6
6
 
7
7
  // src/PM/main.ts
8
8
  import { spawn } from "node:child_process";
9
+ import ansiColors from "ansi-colors";
9
10
  import net from "net";
10
- import fs3, { watch } from "fs";
11
+ import fs4, { watch } from "fs";
11
12
  import path4 from "path";
12
13
  import puppeteer from "puppeteer-core";
13
14
  import ansiC2 from "ansi-colors";
@@ -122,8 +123,7 @@ var Queue = class {
122
123
 
123
124
  // src/PM/PM_WithEslintAndTsc.ts
124
125
  import ts from "typescript";
125
- import fs2 from "fs";
126
- import path3 from "path";
126
+ import fs3 from "fs";
127
127
  import ansiC from "ansi-colors";
128
128
  import { ESLint } from "eslint";
129
129
  import tsc from "tsc-prog";
@@ -245,11 +245,10 @@ var PM_Base = class {
245
245
  }
246
246
  return false;
247
247
  }
248
- async writeFileSync(filepath, contents, testName) {
249
- console.log("writeFileSync");
250
- console.log("filepath", filepath);
251
- console.log("contents", contents);
252
- console.log("testName", testName);
248
+ async writeFileSync(...x) {
249
+ const filepath = x[0];
250
+ const contents = x[1];
251
+ const testName = x[2];
253
252
  return new Promise(async (res) => {
254
253
  fs.mkdirSync(path2.dirname(filepath), {
255
254
  recursive: true
@@ -389,6 +388,113 @@ var PM_Base = class {
389
388
  }
390
389
  };
391
390
 
391
+ // src/utils/makePrompt.ts
392
+ import fs2 from "fs";
393
+ import path3 from "path";
394
+
395
+ // src/utils/logFiles.ts
396
+ var NODE_LOG_FILES = ["stdout.log", "stderr.log", "exit.log"];
397
+ var WEB_LOG_FILES = [
398
+ "info.log",
399
+ "debug.log",
400
+ "error.log",
401
+ "warn.log",
402
+ "exit.log"
403
+ ];
404
+ var PURE_LOG_FILES = ["exit.log"];
405
+ var getLogFilesForRuntime = (runtime) => {
406
+ switch (runtime) {
407
+ case "node":
408
+ return NODE_LOG_FILES;
409
+ case "web":
410
+ return WEB_LOG_FILES;
411
+ case "pure":
412
+ return PURE_LOG_FILES;
413
+ default:
414
+ throw new Error(`Unknown runtime: ${runtime}`);
415
+ }
416
+ };
417
+
418
+ // src/utils/makePrompt.ts
419
+ var makePrompt = async (summary, name, entryPoint, addableFiles, runtime) => {
420
+ summary[entryPoint].prompt = "?";
421
+ const promptPath = promptPather(entryPoint, runtime, name);
422
+ const testDir = path3.join(
423
+ "testeranto",
424
+ "reports",
425
+ name,
426
+ entryPoint.split(".").slice(0, -1).join("."),
427
+ runtime
428
+ );
429
+ if (!fs2.existsSync(testDir)) {
430
+ fs2.mkdirSync(testDir, { recursive: true });
431
+ }
432
+ const testPaths = path3.join(testDir, "tests.json");
433
+ const lintPath = path3.join(testDir, "lint_errors.txt");
434
+ const typePath = path3.join(testDir, "type_errors.txt");
435
+ const messagePath = path3.join(testDir, "message.txt");
436
+ try {
437
+ await Promise.all([
438
+ fs2.promises.writeFile(
439
+ promptPath,
440
+ `
441
+ ${addableFiles.map((x) => {
442
+ return `/add ${x}`;
443
+ }).join("\n")}
444
+
445
+ /read node_modules/testeranto/docs/index.md
446
+ /read node_modules/testeranto/docs/style.md
447
+ /read node_modules/testeranto/docs/testing.ai.txt
448
+ /read node_modules/testeranto/src/CoreTypes.ts
449
+
450
+ /read ${testPaths}
451
+ /read ${typePath}
452
+ /read ${lintPath}
453
+
454
+ /read ${getLogFilesForRuntime(runtime).map((p) => `${testDir}/${p}`).join(" ")}
455
+ `
456
+ ),
457
+ fs2.promises.writeFile(
458
+ messagePath,
459
+ `
460
+ There are 3 types of test reports.
461
+ 1) bdd (highest priority)
462
+ 2) type checker
463
+ 3) static analysis (lowest priority)
464
+
465
+ "tests.json" is the detailed result of the bdd tests.
466
+ if these files do not exist, then something has gone badly wrong and needs to be addressed.
467
+
468
+ "type_errors.txt" is the result of the type checker.
469
+ if this file does not exist, then type check passed without errors;
470
+
471
+ "lint_errors.txt" is the result of the static analysis.
472
+ if this file does not exist, then static analysis passed without errors;
473
+
474
+ BDD failures are the highest priority. Focus on passing BDD tests before addressing other concerns.
475
+ Do not add error throwing/catching to the tests themselves.
476
+ `
477
+ )
478
+ ]);
479
+ } catch (e) {
480
+ console.error(`Failed to write prompt files at ${testDir}`);
481
+ console.error(e);
482
+ throw e;
483
+ }
484
+ summary[entryPoint].prompt = `aider --model deepseek/deepseek-chat --load testeranto/${name}/reports/${runtime}/${entryPoint.split(".").slice(0, -1).join(".")}/prompt.txt`;
485
+ };
486
+ var makePromptInternal = (summary, name, entryPoint, addableFiles, runTime) => {
487
+ if (runTime === "node") {
488
+ return makePrompt(summary, name, entryPoint, addableFiles, "node");
489
+ }
490
+ if (runTime === "web") {
491
+ return makePrompt(summary, name, entryPoint, addableFiles, "web");
492
+ }
493
+ if (runTime === "pure") {
494
+ return makePrompt(summary, name, entryPoint, addableFiles, "pure");
495
+ }
496
+ };
497
+
392
498
  // src/PM/PM_WithEslintAndTsc.ts
393
499
  var eslint = new ESLint();
394
500
  var formatter = await eslint.loadFormatter(
@@ -451,7 +557,7 @@ var PM_WithEslintAndTsc = class extends PM_Base {
451
557
  );
452
558
  }
453
559
  });
454
- fs2.writeFileSync(tscPath, results.join("\n"));
560
+ fs3.writeFileSync(tscPath, results.join("\n"));
455
561
  this.typeCheckIsNowDone(entrypoint, results.length);
456
562
  };
457
563
  this.eslintCheck = async (entrypoint, platform, addableFiles) => {
@@ -466,93 +572,25 @@ var PM_WithEslintAndTsc = class extends PM_Base {
466
572
  process.exit(-1);
467
573
  }
468
574
  const filepath = lintPather(entrypoint, platform, this.name);
469
- if (fs2.existsSync(filepath))
470
- fs2.rmSync(filepath);
575
+ if (fs3.existsSync(filepath))
576
+ fs3.rmSync(filepath);
471
577
  const results = (await eslint.lintFiles(addableFiles)).filter((r) => r.messages.length).filter((r) => {
472
578
  return r.messages[0].ruleId !== null;
473
579
  }).map((r) => {
474
580
  delete r.source;
475
581
  return r;
476
582
  });
477
- fs2.writeFileSync(filepath, await formatter.format(results));
583
+ fs3.writeFileSync(filepath, await formatter.format(results));
478
584
  this.lintIsNowDone(entrypoint, results.length);
479
585
  };
480
586
  this.makePrompt = async (entryPoint, addableFiles, platform) => {
481
- this.summary[entryPoint].prompt = "?";
482
- const promptPath = promptPather(entryPoint, platform, this.name);
483
- const testPaths = path3.join(
484
- "testeranto",
485
- "reports",
486
- this.name,
487
- entryPoint.split(".").slice(0, -1).join("."),
488
- platform,
489
- `tests.json`
490
- );
491
- const featuresPath = path3.join(
492
- "testeranto",
493
- "reports",
494
- this.name,
495
- platform,
496
- entryPoint.split(".").slice(0, -1).join("."),
497
- `featurePrompt.txt`
498
- );
499
- const logPath = path3.join(
500
- "testeranto",
501
- "reports",
502
- this.name,
503
- entryPoint.split(".").slice(0, -1).join("."),
504
- platform,
505
- `logs.txt`
506
- );
507
- const lintPath = path3.join(
508
- "testeranto",
509
- "reports",
510
- this.name,
511
- entryPoint.split(".").slice(0, -1).join("."),
512
- platform,
513
- `lint_errors.txt`
514
- );
515
- const typePath = path3.join(
516
- "testeranto",
517
- "reports",
587
+ await makePromptInternal(
588
+ this.summary,
518
589
  this.name,
519
- entryPoint.split(".").slice(0, -1).join("."),
520
- platform,
521
- `type_errors.txt`
522
- );
523
- const messagePath = path3.join(
524
- "testeranto",
525
- "reports",
526
- this.name,
527
- entryPoint.split(".").slice(0, -1).join("."),
528
- platform,
529
- `message.txt`
530
- );
531
- fs2.writeFileSync(
532
- promptPath,
533
- `
534
- ${addableFiles.map((x) => {
535
- return `/add ${x}`;
536
- }).join("\n")}
537
-
538
- /read node_modules/testeranto/docs/index.md
539
- /read node_modules/testeranto/docs/style.md
540
- /read node_modules/testeranto/docs/testing.ai.txt
541
- /read node_modules/testeranto/src/CoreTypes.ts
542
-
543
- /read ${testPaths}
544
- /read ${logPath}
545
- /read ${typePath}
546
- /read ${lintPath}
547
- `
590
+ entryPoint,
591
+ addableFiles,
592
+ platform
548
593
  );
549
- fs2.writeFileSync(
550
- messagePath,
551
- `
552
- Fix the failing tests described in ${testPaths} and ${logPath}. Focus on the bdd tests before all other concerns. You may add any debugging you think is necessary.
553
- `
554
- );
555
- this.summary[entryPoint].prompt = `aider --model deepseek/deepseek-chat --load testeranto/${this.name}/reports/${platform}/${entryPoint.split(".").slice(0, -1).join(".")}/prompt.txt`;
556
594
  this.checkForShutdown();
557
595
  };
558
596
  this.typeCheckIsRunning = (src) => {
@@ -614,7 +652,7 @@ Fix the failing tests described in ${testPaths} and ${logPath}. Focus on the bdd
614
652
  this.checkForShutdown();
615
653
  };
616
654
  this.writeBigBoard = () => {
617
- fs2.writeFileSync(
655
+ fs3.writeFileSync(
618
656
  `./testeranto/reports/${this.name}/summary.json`,
619
657
  JSON.stringify(this.summary, null, 2)
620
658
  );
@@ -646,15 +684,84 @@ Fix the failing tests described in ${testPaths} and ${logPath}. Focus on the bdd
646
684
  };
647
685
 
648
686
  // src/PM/main.ts
649
- import ansiColors from "ansi-colors";
650
687
  var changes = {};
651
688
  var fileHashes = {};
652
689
  var files2 = {};
653
690
  var screenshots2 = {};
691
+ function runtimeLogs(runtime, reportDest) {
692
+ const safeDest = reportDest || `testeranto/reports/default_${Date.now()}`;
693
+ try {
694
+ if (!fs4.existsSync(safeDest)) {
695
+ fs4.mkdirSync(safeDest, { recursive: true });
696
+ }
697
+ if (runtime === "node") {
698
+ return {
699
+ stdout: fs4.createWriteStream(`${safeDest}/stdout.log`),
700
+ stderr: fs4.createWriteStream(`${safeDest}/stderr.log`),
701
+ exit: fs4.createWriteStream(`${safeDest}/exit.log`)
702
+ };
703
+ } else if (runtime === "web") {
704
+ return {
705
+ info: fs4.createWriteStream(`${safeDest}/info.log`),
706
+ warn: fs4.createWriteStream(`${safeDest}/warn.log`),
707
+ error: fs4.createWriteStream(`${safeDest}/error.log`),
708
+ debug: fs4.createWriteStream(`${safeDest}/debug.log`),
709
+ exit: fs4.createWriteStream(`${safeDest}/exit.log`)
710
+ };
711
+ } else if (runtime === "pure") {
712
+ return {
713
+ exit: fs4.createWriteStream(`${safeDest}/exit.log`)
714
+ };
715
+ } else {
716
+ throw `unknown runtime: ${runtime}`;
717
+ }
718
+ } catch (e) {
719
+ console.error(`Failed to create log streams in ${safeDest}:`, e);
720
+ throw e;
721
+ }
722
+ }
723
+ function createLogStreams(reportDest, runtime) {
724
+ if (!fs4.existsSync(reportDest)) {
725
+ fs4.mkdirSync(reportDest, { recursive: true });
726
+ }
727
+ const streams = runtimeLogs(runtime, reportDest);
728
+ const safeDest = reportDest || `testeranto/reports/default_${Date.now()}`;
729
+ try {
730
+ if (!fs4.existsSync(safeDest)) {
731
+ fs4.mkdirSync(safeDest, { recursive: true });
732
+ }
733
+ const streams2 = runtimeLogs(runtime, safeDest);
734
+ return {
735
+ ...streams2,
736
+ closeAll: () => {
737
+ Object.values(streams2).forEach(
738
+ (stream) => !stream.closed && stream.close()
739
+ );
740
+ },
741
+ writeExitCode: (code, error) => {
742
+ if (error) {
743
+ streams2.exit.write(`Error: ${error.message}
744
+ `);
745
+ if (error.stack) {
746
+ streams2.exit.write(`Stack Trace:
747
+ ${error.stack}
748
+ `);
749
+ }
750
+ }
751
+ streams2.exit.write(`${code}
752
+ `);
753
+ },
754
+ exit: streams2.exit
755
+ };
756
+ } catch (e) {
757
+ console.error(`Failed to create log streams in ${safeDest}:`, e);
758
+ throw e;
759
+ }
760
+ }
654
761
  async function fileHash(filePath, algorithm = "md5") {
655
762
  return new Promise((resolve, reject) => {
656
763
  const hash = crypto.createHash(algorithm);
657
- const fileStream = fs3.createReadStream(filePath);
764
+ const fileStream = fs4.createReadStream(filePath);
658
765
  fileStream.on("data", (data) => {
659
766
  hash.update(data);
660
767
  });
@@ -669,20 +776,26 @@ async function fileHash(filePath, algorithm = "md5") {
669
776
  }
670
777
  var statusMessagePretty = (failures, test, runtime) => {
671
778
  if (failures === 0) {
779
+ console.log(ansiC2.green(ansiC2.inverse(`${runtime} > ${test}`)));
780
+ } else if (failures > 0) {
672
781
  console.log(
673
- ansiC2.green(ansiC2.inverse(`${runtime} > ${test} completed successfully`))
782
+ ansiC2.red(
783
+ ansiC2.inverse(
784
+ `${runtime} > ${test} failed ${failures} times (exit code: ${failures})`
785
+ )
786
+ )
674
787
  );
675
788
  } else {
676
789
  console.log(
677
- ansiC2.red(ansiC2.inverse(`${runtime} > ${test} failed ${failures} times`))
790
+ ansiC2.red(ansiC2.inverse(`${runtime} > ${test} crashed (exit code: -1)`))
678
791
  );
679
792
  }
680
793
  };
681
794
  async function writeFileAndCreateDir(filePath, data) {
682
795
  const dirPath = path4.dirname(filePath);
683
796
  try {
684
- await fs3.promises.mkdir(dirPath, { recursive: true });
685
- await fs3.writeFileSync(filePath, data);
797
+ await fs4.promises.mkdir(dirPath, { recursive: true });
798
+ await fs4.writeFileSync(filePath, data);
686
799
  } catch (error) {
687
800
  console.error(`Error writing file: ${error}`);
688
801
  }
@@ -705,12 +818,10 @@ function isValidUrl(string) {
705
818
  }
706
819
  }
707
820
  async function pollForFile(path5, timeout = 2e3) {
708
- console.log(`pollForFile: ${path5}...`);
709
821
  const intervalObj = setInterval(function() {
710
822
  const file = path5;
711
- const fileExists = fs3.existsSync(file);
823
+ const fileExists = fs4.existsSync(file);
712
824
  if (fileExists) {
713
- console.log(`metafile found: ${path5}!`);
714
825
  clearInterval(intervalObj);
715
826
  }
716
827
  }, timeout);
@@ -718,6 +829,8 @@ async function pollForFile(path5, timeout = 2e3) {
718
829
  var PM_Main = class extends PM_WithEslintAndTsc {
719
830
  constructor(configs, name, mode2) {
720
831
  super(configs, name, mode2);
832
+ this.logStreams = {};
833
+ this.sidecars = {};
721
834
  this.getRunnables = (tests, testName, payload = {
722
835
  nodeEntryPoints: {},
723
836
  nodeEntryPointSidecars: {},
@@ -732,11 +845,11 @@ var PM_Main = class extends PM_WithEslintAndTsc {
732
845
  console.log(ansiC2.green(ansiC2.inverse(`pure < ${src}`)));
733
846
  this.bddTestIsRunning(src);
734
847
  const reportDest = `testeranto/reports/${this.name}/${src.split(".").slice(0, -1).join(".")}/pure`;
735
- if (!fs3.existsSync(reportDest)) {
736
- fs3.mkdirSync(reportDest, { recursive: true });
848
+ if (!fs4.existsSync(reportDest)) {
849
+ fs4.mkdirSync(reportDest, { recursive: true });
737
850
  }
738
851
  const destFolder = dest.replace(".mjs", "");
739
- let argz = "";
852
+ let argz2 = "";
740
853
  const testConfig = this.configs.tests.find((t) => {
741
854
  return t[0] === src;
742
855
  });
@@ -747,7 +860,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
747
860
  const testConfigResource = testConfig[2];
748
861
  const portsToUse = [];
749
862
  if (testConfigResource.ports === 0) {
750
- argz = JSON.stringify({
863
+ argz2 = JSON.stringify({
751
864
  scheduled: true,
752
865
  name: src,
753
866
  ports: portsToUse,
@@ -763,7 +876,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
763
876
  portsToUse.push(openPorts[i][0]);
764
877
  this.ports[openPorts[i][0]] = src;
765
878
  }
766
- argz = JSON.stringify({
879
+ argz2 = JSON.stringify({
767
880
  scheduled: true,
768
881
  name: src,
769
882
  ports: portsToUse,
@@ -772,22 +885,24 @@ var PM_Main = class extends PM_WithEslintAndTsc {
772
885
  });
773
886
  } else {
774
887
  this.queue.push(src);
775
- return;
888
+ return [Math.random(), argz2];
776
889
  }
777
890
  } else {
778
891
  console.error("negative port makes no sense", src);
779
892
  process.exit(-1);
780
893
  }
781
894
  const builtfile = dest;
895
+ const logs = createLogStreams(reportDest, "pure");
782
896
  try {
783
897
  await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
898
+ const originalConsole = { ...console };
784
899
  return module.default.then((defaultModule) => {
785
- defaultModule.receiveTestResourceConfig(argz).then(async (results) => {
900
+ defaultModule.receiveTestResourceConfig(argz2).then(async (results) => {
786
901
  statusMessagePretty(results.fails, src, "pure");
787
902
  this.bddTestIsNowDone(src, results.fails);
788
903
  }).catch((e1) => {
789
904
  console.log(
790
- ansiC2.red(`launchPure - ${src} errored with: ${e1}`)
905
+ ansiC2.red(`launchPure - ${src} errored with: ${e1.stack}`)
791
906
  );
792
907
  this.bddTestIsNowDone(src, -1);
793
908
  statusMessagePretty(-1, src, "pure");
@@ -795,27 +910,29 @@ var PM_Main = class extends PM_WithEslintAndTsc {
795
910
  }).catch((e2) => {
796
911
  console.log(
797
912
  ansiColors.red(
798
- `pure ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`
913
+ `pure ! ${src} failed to execute. No "tests.json" file was generated. Check the logs for more info`
799
914
  )
800
915
  );
801
- this.writeFileSync(`${reportDest}/logs.txt`, e2.stack, src);
916
+ logs.exit.write(e2.stack);
917
+ logs.exit.write(-1);
802
918
  this.bddTestIsNowDone(src, -1);
803
919
  statusMessagePretty(-1, src, "pure");
804
920
  }).finally((x) => {
805
921
  });
806
922
  });
807
923
  } catch (e3) {
924
+ logs.writeExitCode(-1, e3);
808
925
  console.log(
809
926
  ansiC2.red(
810
927
  ansiC2.inverse(
811
- `${src} 1 errored with: ${e3}. Check ${reportDest}/logs.txt for more info`
928
+ `${src} 1 errored with: ${e3}. Check logs for more info`
812
929
  )
813
930
  )
814
931
  );
815
- this.writeFileSync(`${reportDest}/logs.txt`, e3.stack, src);
932
+ logs.exit.write(e3.stack);
933
+ logs.exit.write(-1);
816
934
  this.bddTestIsNowDone(src, -1);
817
935
  statusMessagePretty(-1, src, "pure");
818
- console.log("III) PURE IS EXITING BADLY WITH error", e3);
819
936
  }
820
937
  for (let i = 0; i <= portsToUse.length; i++) {
821
938
  if (portsToUse[i]) {
@@ -827,8 +944,8 @@ var PM_Main = class extends PM_WithEslintAndTsc {
827
944
  console.log(ansiC2.green(ansiC2.inverse(`node < ${src}`)));
828
945
  this.bddTestIsRunning(src);
829
946
  const reportDest = `testeranto/reports/${this.name}/${src.split(".").slice(0, -1).join(".")}/node`;
830
- if (!fs3.existsSync(reportDest)) {
831
- fs3.mkdirSync(reportDest, { recursive: true });
947
+ if (!fs4.existsSync(reportDest)) {
948
+ fs4.mkdirSync(reportDest, { recursive: true });
832
949
  }
833
950
  let testResources = "";
834
951
  const testConfig = this.configs.tests.find((t) => {
@@ -874,7 +991,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
874
991
  )
875
992
  );
876
993
  this.queue.push(src);
877
- return;
994
+ return [Math.random(), argz];
878
995
  }
879
996
  } else {
880
997
  console.error("negative port makes no sense", src);
@@ -933,41 +1050,46 @@ var PM_Main = class extends PM_WithEslintAndTsc {
933
1050
  }
934
1051
  });
935
1052
  });
936
- const oStream = fs3.createWriteStream(`${reportDest}/logs.txt`);
937
- const errFile = `${reportDest}/logs.txt`;
938
- if (fs3.existsSync(errFile)) {
939
- fs3.rmSync(errFile);
940
- }
1053
+ const logs = createLogStreams(reportDest, "node");
941
1054
  server.listen(ipcfile, () => {
942
- child.stderr?.on("data", (data) => {
943
- oStream.write(`stderr > ${data}`);
944
- });
945
1055
  child.stdout?.on("data", (data) => {
946
- oStream.write(`stdout > ${data}`);
1056
+ logs.stdout?.write(data);
1057
+ });
1058
+ child.stderr?.on("data", (data) => {
1059
+ logs.stderr?.write(data);
947
1060
  });
948
1061
  child.on("error", (err) => {
949
1062
  });
950
1063
  child.on("close", (code) => {
1064
+ const exitCode = code === null ? -1 : code;
1065
+ if (exitCode < 0) {
1066
+ logs.writeExitCode(
1067
+ exitCode,
1068
+ new Error("Process crashed or was terminated")
1069
+ );
1070
+ } else {
1071
+ logs.writeExitCode(exitCode);
1072
+ }
1073
+ logs.closeAll();
951
1074
  server.close();
952
1075
  if (!files2[src]) {
953
1076
  files2[src] = /* @__PURE__ */ new Set();
954
1077
  }
955
- if (code === 255) {
1078
+ if (exitCode === 255) {
956
1079
  console.log(
957
1080
  ansiColors.red(
958
- `node ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`
1081
+ `node ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/stderr.log for more info`
959
1082
  )
960
1083
  );
961
1084
  this.bddTestIsNowDone(src, -1);
962
1085
  statusMessagePretty(-1, src, "node");
963
- oStream.close();
964
1086
  return;
965
- } else if (code === 0) {
1087
+ } else if (exitCode === 0) {
966
1088
  this.bddTestIsNowDone(src, 0);
967
1089
  statusMessagePretty(0, src, "node");
968
1090
  } else {
969
- this.bddTestIsNowDone(src, code);
970
- statusMessagePretty(code, src, "node");
1091
+ this.bddTestIsNowDone(src, exitCode);
1092
+ statusMessagePretty(exitCode, src, "node");
971
1093
  }
972
1094
  haltReturns = true;
973
1095
  });
@@ -985,11 +1107,10 @@ var PM_Main = class extends PM_WithEslintAndTsc {
985
1107
  console.log(
986
1108
  ansiC2.red(
987
1109
  ansiC2.inverse(
988
- `${src} errored with: ${e.name}. Check ${errFile} for more info`
1110
+ `${src} errored with: ${e.name}. Check error logs for more info`
989
1111
  )
990
1112
  )
991
1113
  );
992
- this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
993
1114
  this.bddTestIsNowDone(src, -1);
994
1115
  statusMessagePretty(-1, src, "node");
995
1116
  });
@@ -1000,9 +1121,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1000
1121
  const dest = src.split(".").slice(0, -1).join(".");
1001
1122
  const destFolder = dest.replace(".mjs", "");
1002
1123
  console.log(ansiC2.green(ansiC2.inverse(`launchWebSideCar ${src}`)));
1003
- const fileStreams2 = [];
1004
- const doneFileStream2 = [];
1005
- const oStream = fs3.createWriteStream(`${destFolder}/logs.txt`);
1124
+ const logs = createLogStreams(dest, "web");
1006
1125
  return new Promise((res, rej) => {
1007
1126
  this.browser.newPage().then(async (page) => {
1008
1127
  this.mapping().forEach(async ([command, func]) => {
@@ -1016,34 +1135,44 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1016
1135
  Promise.all(screenshots2[src] || []).then(() => {
1017
1136
  delete screenshots2[src];
1018
1137
  page.close();
1019
- oStream.close();
1020
1138
  });
1021
1139
  };
1022
1140
  page.on("pageerror", (err) => {
1023
1141
  console.debug(`Error from ${src}: [${err.name}] `);
1024
- oStream.write(err.name);
1025
- oStream.write("\n");
1142
+ console.debug(`Error from ${src}: [${err.name}] `);
1026
1143
  if (err.cause) {
1027
1144
  console.debug(`Error from ${src} cause: [${err.cause}] `);
1028
- oStream.write(err.cause);
1029
- oStream.write("\n");
1030
1145
  }
1031
1146
  if (err.stack) {
1032
1147
  console.debug(`Error from stack ${src}: [${err.stack}] `);
1033
- oStream.write(err.stack);
1034
- oStream.write("\n");
1035
1148
  }
1036
1149
  console.debug(`Error from message ${src}: [${err.message}] `);
1037
- oStream.write(err.message);
1038
- oStream.write("\n");
1039
1150
  this.bddTestIsNowDone(src, -1);
1040
1151
  close();
1041
1152
  });
1042
1153
  page.on("console", (log) => {
1043
- oStream.write(log.text());
1044
- oStream.write(JSON.stringify(log.location()));
1045
- oStream.write(JSON.stringify(log.stackTrace()));
1046
- oStream.write("\n");
1154
+ const msg = `${log.text()}
1155
+ ${JSON.stringify(
1156
+ log.location()
1157
+ )}
1158
+ ${JSON.stringify(log.stackTrace())}
1159
+ `;
1160
+ switch (log.type()) {
1161
+ case "info":
1162
+ logs.info?.write(msg);
1163
+ break;
1164
+ case "warn":
1165
+ logs.warn?.write(msg);
1166
+ break;
1167
+ case "error":
1168
+ logs.error?.write(msg);
1169
+ break;
1170
+ case "debug":
1171
+ logs.debug?.write(msg);
1172
+ break;
1173
+ default:
1174
+ break;
1175
+ }
1047
1176
  });
1048
1177
  await page.goto(`file://${`${destFolder}.html`}`, {});
1049
1178
  const webArgz = JSON.stringify({
@@ -1089,13 +1218,14 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1089
1218
  console.log(ansiC2.green(ansiC2.inverse(`launchNodeSideCar ${sidecar[0]}`)));
1090
1219
  const destFolder = dest.replace(".ts", "");
1091
1220
  const reportDest = `testeranto/reports/${this.name}/${src.split(".").slice(0, -1).join(".")}/node`;
1092
- const argz = {
1221
+ const argz2 = {
1093
1222
  name: sidecar[0],
1094
1223
  ports: [],
1095
1224
  fs: destFolder,
1096
1225
  browserWSEndpoint: this.browser.wsEndpoint()
1097
1226
  };
1098
1227
  const testReq = sidecar[2];
1228
+ const logs = createLogStreams(dest, "node");
1099
1229
  const portsToUse = [];
1100
1230
  if (testReq.ports === 0) {
1101
1231
  } else if (testReq.ports > 0) {
@@ -1104,10 +1234,10 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1104
1234
  );
1105
1235
  if (openPorts.length >= testReq.ports) {
1106
1236
  for (let i = 0; i < testReq.ports; i++) {
1107
- portsToUse.push(openPorts[i][0]);
1237
+ portsToUse.push(Number(openPorts[i][0]));
1108
1238
  this.ports[openPorts[i][0]] = src;
1109
1239
  }
1110
- argz.ports = portsToUse;
1240
+ argz2.ports = portsToUse;
1111
1241
  const builtfile = destFolder + ".mjs";
1112
1242
  let haltReturns = false;
1113
1243
  let buffer = new Buffer("");
@@ -1144,22 +1274,13 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1144
1274
  });
1145
1275
  });
1146
1276
  });
1147
- const oStream = fs3.createWriteStream(`${reportDest}/logs.txt`);
1148
- const child = spawn("node", [builtfile, JSON.stringify(argz)], {
1277
+ const child = spawn("node", [builtfile, JSON.stringify(argz2)], {
1149
1278
  stdio: ["pipe", "pipe", "pipe", "ipc"]
1150
1279
  // silent: true
1151
1280
  });
1152
1281
  const p = "/tmp/tpipe" + Math.random();
1153
- const errFile = `${reportDest}/logs.txt`;
1154
1282
  server.listen(p, () => {
1155
- child.stderr?.on("data", (data) => {
1156
- oStream.write(`stderr > ${data}`);
1157
- });
1158
- child.stdout?.on("data", (data) => {
1159
- oStream.write(`stdout > ${data}`);
1160
- });
1161
1283
  child.on("close", (code) => {
1162
- oStream.close();
1163
1284
  server.close();
1164
1285
  haltReturns = true;
1165
1286
  });
@@ -1172,24 +1293,24 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1172
1293
  }
1173
1294
  });
1174
1295
  child.on("error", (e) => {
1175
- if (fs3.existsSync(p)) {
1176
- fs3.rmSync(p);
1296
+ if (fs4.existsSync(p)) {
1297
+ fs4.rmSync(p);
1177
1298
  }
1178
1299
  haltReturns = true;
1179
1300
  console.log(
1180
1301
  ansiC2.red(
1181
1302
  ansiC2.inverse(
1182
- `launchNodeSideCar - ${src} errored with: ${e.name}. Check ${errFile}for more info`
1303
+ `launchNodeSideCar - ${src} errored with: ${e.name}. Check logs for more info`
1183
1304
  )
1184
1305
  )
1185
1306
  );
1186
- this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
1307
+ logs.error?.write(e.toString() + "\n");
1187
1308
  });
1188
1309
  });
1189
1310
  child.send({ path: p });
1190
1311
  const r = Math.random();
1191
1312
  this.nodeSidecars[r] = child;
1192
- return [r, argz];
1313
+ return [r, argz2];
1193
1314
  } else {
1194
1315
  console.log(
1195
1316
  ansiC2.red(
@@ -1197,7 +1318,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1197
1318
  )
1198
1319
  );
1199
1320
  this.queue.push(sidecar[0]);
1200
- return [Math.random(), argz];
1321
+ return [Math.random(), argz2];
1201
1322
  }
1202
1323
  } else {
1203
1324
  console.error("negative port makes no sense", sidecar[0]);
@@ -1215,13 +1336,13 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1215
1336
  const dest = process.cwd() + `/testeranto/bundles/pure/${this.name}/${sidecar[0]}`;
1216
1337
  const builtfile = dest.split(".").slice(0, -1).concat("mjs").join(".");
1217
1338
  const destFolder = dest.replace(".mjs", "");
1218
- let argz;
1339
+ let argz2;
1219
1340
  const z = sidecar[2];
1220
1341
  const testConfigResource = sidecar[2];
1221
1342
  const src = sidecar[0];
1222
1343
  const portsToUse = [];
1223
1344
  if (testConfigResource.ports === 0) {
1224
- argz = {
1345
+ argz2 = {
1225
1346
  // scheduled: true,
1226
1347
  name: src,
1227
1348
  ports: portsToUse,
@@ -1234,10 +1355,10 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1234
1355
  );
1235
1356
  if (openPorts.length >= testConfigResource.ports) {
1236
1357
  for (let i = 0; i < testConfigResource.ports; i++) {
1237
- portsToUse.push(openPorts[i][0]);
1358
+ portsToUse.push(Number(openPorts[i][0]));
1238
1359
  this.ports[openPorts[i][0]] = src;
1239
1360
  }
1240
- argz = {
1361
+ argz2 = {
1241
1362
  // scheduled: true,
1242
1363
  name: src,
1243
1364
  // ports: [3333],
@@ -1247,24 +1368,25 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1247
1368
  };
1248
1369
  } else {
1249
1370
  this.queue.push(src);
1250
- return;
1251
1371
  }
1252
1372
  } else {
1253
1373
  console.error("negative port makes no sense", src);
1254
1374
  process.exit(-1);
1255
1375
  }
1256
1376
  await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
1377
+ if (!this.pureSidecars)
1378
+ this.pureSidecars = {};
1257
1379
  this.pureSidecars[r] = module.default;
1258
- this.pureSidecars[r].start(argz);
1380
+ this.pureSidecars[r].start(argz2);
1259
1381
  });
1260
- return [r, argz];
1382
+ return [r, argz2];
1261
1383
  };
1262
1384
  this.launchWeb = async (src, dest) => {
1263
1385
  console.log(ansiC2.green(ansiC2.inverse(`web < ${src}`)));
1264
1386
  this.bddTestIsRunning(src);
1265
1387
  const reportDest = `testeranto/reports/${this.name}/${src.split(".").slice(0, -1).join(".")}/web`;
1266
- if (!fs3.existsSync(reportDest)) {
1267
- fs3.mkdirSync(reportDest, { recursive: true });
1388
+ if (!fs4.existsSync(reportDest)) {
1389
+ fs4.mkdirSync(reportDest, { recursive: true });
1268
1390
  }
1269
1391
  const destFolder = dest.replace(".mjs", "");
1270
1392
  const webArgz = JSON.stringify({
@@ -1274,19 +1396,33 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1274
1396
  browserWSEndpoint: this.browser.wsEndpoint()
1275
1397
  });
1276
1398
  const d = `${dest}?cacheBust=${Date.now()}`;
1277
- const evaluation = `
1278
-
1279
- import('${d}').then(async (x) => {
1280
-
1281
- try {
1282
- return await (await x.default).receiveTestResourceConfig(${webArgz})
1283
- } catch (e) {
1284
- console.log("web run failure", e.toString())
1285
- }
1286
- })`;
1287
- const ofile = `${reportDest}/logs.txt`;
1288
- const oStream = fs3.createWriteStream(ofile);
1399
+ const logs = createLogStreams(reportDest, "web");
1289
1400
  this.browser.newPage().then((page) => {
1401
+ page.on("console", (log) => {
1402
+ const msg = `${log.text()}
1403
+ `;
1404
+ switch (log.type()) {
1405
+ case "info":
1406
+ logs.info?.write(msg);
1407
+ break;
1408
+ case "warn":
1409
+ logs.warn?.write(msg);
1410
+ break;
1411
+ case "error":
1412
+ logs.error?.write(msg);
1413
+ break;
1414
+ case "debug":
1415
+ logs.debug?.write(msg);
1416
+ break;
1417
+ default:
1418
+ break;
1419
+ }
1420
+ });
1421
+ page.on("close", () => {
1422
+ logs.writeExitCode(0);
1423
+ logs.closeAll();
1424
+ logs.closeAll();
1425
+ });
1290
1426
  this.mapping().forEach(async ([command, func]) => {
1291
1427
  if (command === "page") {
1292
1428
  page.exposeFunction(command, (x) => {
@@ -1310,63 +1446,45 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1310
1446
  Promise.all(screenshots2[src] || []).then(() => {
1311
1447
  delete screenshots2[src];
1312
1448
  page.close();
1313
- oStream.close();
1314
1449
  });
1315
- console.log("ostream is closed");
1316
1450
  return;
1317
1451
  };
1318
1452
  page.on("pageerror", (err) => {
1453
+ logs.writeExitCode(-1, err);
1319
1454
  console.log(
1320
1455
  ansiColors.red(
1321
- `web ! ${src} failed to execute No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`
1456
+ `web ! ${src} failed to execute No "tests.json" file was generated. Check ${reportDest}/error.log for more info`
1322
1457
  )
1323
1458
  );
1324
- oStream.write(err.name);
1325
- oStream.write("\n");
1326
- if (err.cause) {
1327
- oStream.write(err.cause);
1328
- oStream.write("\n");
1329
- }
1330
- if (err.stack) {
1331
- oStream.write(err.stack);
1332
- oStream.write("\n");
1333
- }
1334
- if (err.message) {
1335
- oStream.write(err.message);
1336
- oStream.write("\n");
1337
- }
1338
1459
  this.bddTestIsNowDone(src, -1);
1339
1460
  close();
1340
1461
  });
1341
- page.on("console", (log) => {
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
- });
1354
1462
  await page.goto(`file://${`${destFolder}.html`}`, {});
1355
- await page.evaluate(evaluation).then(async ({ fails, failed, features }) => {
1463
+ await page.evaluate(
1464
+ `
1465
+ import('${d}').then(async (x) => {
1466
+ try {
1467
+ return await (await x.default).receiveTestResourceConfig(${webArgz})
1468
+ } catch (e) {
1469
+ console.log("web run failure", e.toString())
1470
+ }
1471
+ })
1472
+ `
1473
+ ).then(async ({ fails, failed, features }) => {
1356
1474
  statusMessagePretty(fails, src, "web");
1357
1475
  this.bddTestIsNowDone(src, fails);
1358
- close();
1359
1476
  }).catch((e) => {
1360
- console.log(ansiC2.red(ansiC2.inverse(e)));
1477
+ console.log(ansiC2.red(ansiC2.inverse(e.stack)));
1361
1478
  console.log(
1362
1479
  ansiC2.red(
1363
1480
  ansiC2.inverse(
1364
- `web ! ${src} failed to execute. No "tests.json" file was generated. Check ${reportDest}/logs.txt for more info`
1481
+ `web ! ${src} failed to execute. No "tests.json" file was generated. Check logs for more info`
1365
1482
  )
1366
1483
  )
1367
1484
  );
1368
1485
  this.bddTestIsNowDone(src, -1);
1369
1486
  }).finally(() => {
1487
+ close();
1370
1488
  });
1371
1489
  return page;
1372
1490
  });
@@ -1380,7 +1498,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1380
1498
  srcTest.split(".").slice(0, -1).join(".") + ".features.txt"
1381
1499
  );
1382
1500
  const testReport = JSON.parse(
1383
- fs3.readFileSync(`${reportDest}/tests.json`).toString()
1501
+ fs4.readFileSync(`${reportDest}/tests.json`).toString()
1384
1502
  );
1385
1503
  testReport.features.reduce(async (mm, featureStringKey) => {
1386
1504
  const accum = await mm;
@@ -1400,14 +1518,14 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1400
1518
  accum.files.push(newPath);
1401
1519
  }
1402
1520
  } else {
1403
- await fs3.promises.mkdir(path4.dirname(featureDestination), {
1521
+ await fs4.promises.mkdir(path4.dirname(featureDestination), {
1404
1522
  recursive: true
1405
1523
  });
1406
1524
  accum.strings.push(featureStringKey);
1407
1525
  }
1408
1526
  return accum;
1409
1527
  }, Promise.resolve({ files: [], strings: [] })).then(({ files: files3, strings }) => {
1410
- fs3.writeFileSync(
1528
+ fs4.writeFileSync(
1411
1529
  `testeranto/reports/${this.name}/${srcTest.split(".").slice(0, -1).join(".")}/${platform}/featurePrompt.txt`,
1412
1530
  files3.map((f) => {
1413
1531
  return `/read ${f}`;
@@ -1463,10 +1581,16 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1463
1581
  });
1464
1582
  this.writeBigBoard();
1465
1583
  if (!inflight) {
1466
- this.browser.disconnect().then(() => {
1467
- console.log(ansiC2.inverse(`${this.name} has been tested. Goodbye.`));
1468
- process.exit();
1469
- });
1584
+ if (this.browser) {
1585
+ if (this.browser) {
1586
+ this.browser.disconnect().then(() => {
1587
+ console.log(
1588
+ ansiC2.inverse(`${this.name} has been tested. Goodbye.`)
1589
+ );
1590
+ process.exit();
1591
+ });
1592
+ }
1593
+ }
1470
1594
  }
1471
1595
  };
1472
1596
  this.launchers = {};
@@ -1555,8 +1679,8 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1555
1679
  this.mapping().forEach(async ([command, func]) => {
1556
1680
  globalThis[command] = func;
1557
1681
  });
1558
- if (!fs3.existsSync(`testeranto/reports/${this.name}`)) {
1559
- fs3.mkdirSync(`testeranto/reports/${this.name}`);
1682
+ if (!fs4.existsSync(`testeranto/reports/${this.name}`)) {
1683
+ fs4.mkdirSync(`testeranto/reports/${this.name}`);
1560
1684
  }
1561
1685
  const executablePath = "/opt/homebrew/bin/chromium";
1562
1686
  try {
@@ -1565,16 +1689,18 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1565
1689
  waitForInitialPage: false,
1566
1690
  executablePath,
1567
1691
  headless: true,
1692
+ defaultViewport: null,
1693
+ // Disable default 800x600 viewport
1568
1694
  dumpio: false,
1569
1695
  devtools: false,
1570
1696
  args: [
1571
- "--disable-features=site-per-process",
1572
1697
  "--allow-file-access-from-files",
1573
1698
  "--allow-insecure-localhost",
1574
1699
  "--allow-running-insecure-content",
1575
1700
  "--auto-open-devtools-for-tabs",
1576
1701
  "--disable-dev-shm-usage",
1577
1702
  "--disable-extensions",
1703
+ "--disable-features=site-per-process",
1578
1704
  "--disable-gpu",
1579
1705
  "--disable-setuid-sandbox",
1580
1706
  "--disable-site-isolation-trials",
@@ -1584,6 +1710,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1584
1710
  "--no-startup-window",
1585
1711
  "--reduce-security-for-testing",
1586
1712
  "--remote-allow-origins=*",
1713
+ "--start-maximized",
1587
1714
  "--unsafely-treat-insecure-origin-as-secure=*",
1588
1715
  `--remote-debugging-port=3234`
1589
1716
  // "--disable-features=IsolateOrigins,site-per-process",
@@ -1703,11 +1830,12 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1703
1830
  this.nodeMetafileWatcher.close();
1704
1831
  this.webMetafileWatcher.close();
1705
1832
  this.importMetafileWatcher.close();
1833
+ Object.values(this.logStreams || {}).forEach((logs) => logs.closeAll());
1706
1834
  this.checkForShutdown();
1707
1835
  }
1708
1836
  async metafileOutputs(platform) {
1709
1837
  const metafile = JSON.parse(
1710
- fs3.readFileSync(
1838
+ fs4.readFileSync(
1711
1839
  `./testeranto/bundles/${platform}/${this.name}/metafile.json`
1712
1840
  ).toString()
1713
1841
  ).metafile;
@@ -1720,7 +1848,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1720
1848
  return false;
1721
1849
  }
1722
1850
  const addableFiles = Object.keys(outputs[k].inputs).filter((i) => {
1723
- if (!fs3.existsSync(i))
1851
+ if (!fs4.existsSync(i))
1724
1852
  return false;
1725
1853
  if (i.startsWith("node_modules"))
1726
1854
  return false;
@@ -1729,8 +1857,8 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1729
1857
  return true;
1730
1858
  });
1731
1859
  const f = `${k.split(".").slice(0, -1).join(".")}/`;
1732
- if (!fs3.existsSync(f)) {
1733
- fs3.mkdirSync(f);
1860
+ if (!fs4.existsSync(f)) {
1861
+ fs4.mkdirSync(f);
1734
1862
  }
1735
1863
  const entrypoint = outputs[k].entryPoint;
1736
1864
  if (entrypoint) {