testeranto 0.177.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 (768) 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 +0 -1
  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 +211 -109
  16. package/dist/common/src/PM/nodeSidecar.js +1 -0
  17. package/dist/common/src/PM/pure.js +15 -10
  18. package/dist/common/src/PM/pureSidecar.js +1 -1
  19. package/dist/common/src/PM/types.js +1 -0
  20. package/dist/common/src/PM/web.js +2 -1
  21. package/dist/common/src/Pure.js +1 -1
  22. package/dist/common/src/Pure.test.js +21 -19
  23. package/dist/common/src/build.js +30 -39
  24. package/dist/common/src/components/SunriseAnimation.js +291 -0
  25. package/dist/common/src/components/SunriseAnimation.test/interface.js +67 -0
  26. package/dist/common/src/components/SunriseAnimation.test/types.js +2 -0
  27. package/dist/common/src/components/TestStatusBadge.js +1 -21
  28. package/dist/common/src/components/pure/AppFrame.js +20 -0
  29. package/dist/common/src/components/pure/AppFrame.test/implementation.js +63 -0
  30. package/dist/common/src/components/pure/AppFrame.test/index.js +14 -0
  31. package/dist/common/src/components/pure/AppFrame.test/specification.js +25 -0
  32. package/dist/common/src/components/pure/AppFrame.test/types.js +3 -0
  33. package/dist/common/src/components/pure/FeaturesReporterView.js +23 -0
  34. package/dist/common/src/components/pure/FeaturesReporterView.test/implementation.js +84 -0
  35. package/dist/common/src/components/pure/FeaturesReporterView.test/index.js +14 -0
  36. package/dist/common/src/components/pure/FeaturesReporterView.test/specification.js +27 -0
  37. package/dist/common/src/components/pure/FeaturesReporterView.test/types.js +2 -0
  38. package/dist/common/src/components/pure/ModalContent.js +86 -0
  39. package/dist/common/src/components/pure/ModalContent.test/implementation.js +33 -0
  40. package/dist/common/src/components/pure/ModalContent.test/index.js +12 -0
  41. package/dist/common/src/components/pure/ModalContent.test/specification.js +19 -0
  42. package/dist/common/src/components/pure/ModalContent.test/types.js +4 -0
  43. package/dist/common/src/components/pure/ProjectPageView.js +53 -76
  44. package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +118 -33
  45. package/dist/common/src/components/pure/ProjectPageView.test/index.js +5 -1
  46. package/dist/common/src/components/pure/ProjectPageView.test/specification.js +15 -2
  47. package/dist/common/src/components/pure/ProjectPageView.test/types.js +2 -0
  48. package/dist/common/src/components/pure/ProjectsPageView.js +66 -0
  49. package/dist/common/src/components/pure/SettingsButton.js +83 -0
  50. package/dist/common/src/components/pure/TestPageView.js +134 -0
  51. package/dist/common/src/components/pure/TestPageView.test/implementation.js +202 -0
  52. package/dist/common/src/components/pure/TestPageView.test/index.js +15 -0
  53. package/dist/common/src/components/pure/TestPageView.test/specification.js +26 -0
  54. package/dist/common/src/components/pure/TestPageView.test/types.js +4 -0
  55. package/dist/common/src/components/pure/ThemeCard.js +15 -0
  56. package/dist/common/src/components/stateful/FeaturesReporter.js +59 -0
  57. package/dist/common/src/components/stateful/ProjectPage.js +100 -0
  58. package/dist/common/src/components/stateful/ProjectsPage.js +92 -0
  59. package/dist/common/src/components/stateful/TestPage.js +133 -0
  60. package/dist/common/src/defaultConfig.js +1 -0
  61. package/dist/common/src/esbuildConfigs/web.js +1 -1
  62. package/dist/common/src/lib/BaseSuite.js +1 -0
  63. package/dist/common/src/lib/BaseSuite.test/mock.js +0 -11
  64. package/dist/common/src/lib/BaseSuite.test/test.js +11 -22
  65. package/dist/common/src/lib/Sidecar.js +1 -0
  66. package/dist/common/src/lib/abstractBase.js +13 -6
  67. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.adapter.js +0 -6
  68. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +3 -1
  69. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.mock.js +28 -17
  70. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.pure.js +2 -2
  71. package/dist/common/src/lib/basebuilder.js +32 -30
  72. package/dist/common/src/lib/classBuilder.js +2 -0
  73. package/dist/common/src/lib/core.js +0 -1
  74. package/dist/common/src/lib/core.test/MockCore.js +0 -14
  75. package/dist/common/src/lib/core.test/core.test.adapter.js +2 -9
  76. package/dist/common/src/lib/core.test/core.test.implementation.js +3 -7
  77. package/dist/common/src/lib/index.js +2 -0
  78. package/dist/common/src/lib/pmProxy.js +0 -2
  79. package/dist/common/src/lib/pmProxy.test/adapter.js +8 -2
  80. package/dist/common/src/lib/pmProxy.test/implementation.js +33 -4
  81. package/dist/common/src/lib/pmProxy.test/mockPMBase.js +9 -0
  82. package/dist/common/src/mothership/index.js +5 -0
  83. package/dist/common/src/mothership/test.js +44 -25
  84. package/dist/common/src/types/features.js +34 -0
  85. package/dist/common/src/utils/api.js +42 -23
  86. package/dist/common/src/utils/featureUtils.js +29 -0
  87. package/dist/common/src/utils/logFiles.js +25 -0
  88. package/dist/common/src/utils/makePrompt.js +115 -0
  89. package/dist/common/src/web.html.js +2 -6
  90. package/dist/common/testeranto.config.js +62 -34
  91. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  92. package/dist/module/src/App.js +9 -17
  93. package/dist/module/src/Node.js +4 -8
  94. package/dist/module/src/PM/PM_WithEslintAndTsc.js +3 -34
  95. package/dist/module/src/PM/base.js +0 -1
  96. package/dist/module/src/PM/layers/base/PM_Base.js +1 -0
  97. package/dist/module/src/PM/layers/base/components/PageOperations.js +1 -0
  98. package/dist/module/src/PM/layers/base/components/PageOperations.testeranto.js +1 -0
  99. package/dist/module/src/PM/layers/linting/components/Linter.js +1 -0
  100. package/dist/module/src/PM/layers/linting/components/TypeChecker.js +1 -0
  101. package/dist/module/src/PM/layers/main/components/SidecarManager.js +1 -0
  102. package/dist/module/src/PM/layers/main/components/TestRunner.js +1 -0
  103. package/dist/module/src/PM/main.js +207 -105
  104. package/dist/module/src/PM/nodeSidecar.js +1 -0
  105. package/dist/module/src/PM/pure.js +15 -10
  106. package/dist/module/src/PM/pureSidecar.js +1 -1
  107. package/dist/module/src/PM/types.js +1 -0
  108. package/dist/module/src/PM/web.js +2 -1
  109. package/dist/module/src/Pure.js +1 -1
  110. package/dist/module/src/Pure.test.js +21 -19
  111. package/dist/module/src/build.js +25 -37
  112. package/dist/module/src/components/SunriseAnimation.test/interface.js +32 -1
  113. package/dist/module/src/components/TestStatusBadge.js +1 -21
  114. package/dist/module/src/components/pure/AppFrame.js +13 -0
  115. package/dist/module/src/components/pure/AppFrame.test/implementation.js +57 -0
  116. package/dist/module/src/components/pure/AppFrame.test/index.js +9 -0
  117. package/dist/module/src/components/pure/AppFrame.test/specification.js +21 -0
  118. package/dist/module/src/components/pure/AppFrame.test/types.js +2 -0
  119. package/dist/module/src/components/pure/FeaturesReporterView.js +16 -0
  120. package/dist/module/src/components/pure/FeaturesReporterView.test/implementation.js +81 -0
  121. package/dist/module/src/components/pure/FeaturesReporterView.test/index.js +9 -0
  122. package/dist/module/src/components/pure/FeaturesReporterView.test/specification.js +23 -0
  123. package/dist/module/src/components/pure/ModalContent.js +79 -0
  124. package/dist/module/src/components/pure/ModalContent.test/implementation.js +30 -0
  125. package/dist/module/src/components/pure/ModalContent.test/index.js +7 -0
  126. package/dist/module/src/components/pure/ModalContent.test/specification.js +15 -0
  127. package/dist/module/src/components/pure/ModalContent.test/types.js +3 -0
  128. package/dist/module/src/components/pure/ProjectPageView.js +54 -77
  129. package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +118 -33
  130. package/dist/module/src/components/pure/ProjectPageView.test/index.js +5 -1
  131. package/dist/module/src/components/pure/ProjectPageView.test/specification.js +15 -2
  132. package/dist/module/src/components/pure/ProjectPageView.test/types.js +2 -0
  133. package/dist/module/src/components/pure/ProjectsPageView.js +5 -4
  134. package/dist/module/src/components/pure/SettingsButton.js +43 -0
  135. package/dist/module/src/components/pure/TestPageView.js +100 -121
  136. package/dist/module/src/components/pure/TestPageView.test/implementation.js +166 -0
  137. package/dist/module/src/components/pure/TestPageView.test/index.js +10 -0
  138. package/dist/module/src/components/pure/TestPageView.test/specification.js +22 -0
  139. package/dist/module/src/components/pure/TestPageView.test/types.js +3 -0
  140. package/dist/module/src/components/pure/ThemeCard.js +8 -0
  141. package/dist/module/src/components/stateful/FeaturesReporter.js +22 -0
  142. package/dist/module/src/components/stateful/ProjectPage.js +1 -1
  143. package/dist/module/src/components/stateful/TestPage.js +25 -11
  144. package/dist/module/src/defaultConfig.js +1 -0
  145. package/dist/module/src/esbuildConfigs/web.js +1 -1
  146. package/dist/module/src/lib/BaseSuite.js +1 -0
  147. package/dist/module/src/lib/BaseSuite.test/mock.js +0 -11
  148. package/dist/module/src/lib/BaseSuite.test/test.js +11 -22
  149. package/dist/module/src/lib/Sidecar.js +1 -0
  150. package/dist/module/src/lib/abstractBase.js +13 -6
  151. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.adapter.js +0 -6
  152. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +3 -1
  153. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.mock.js +28 -17
  154. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.pure.js +1 -1
  155. package/dist/module/src/lib/basebuilder.js +32 -30
  156. package/dist/module/src/lib/classBuilder.js +2 -0
  157. package/dist/module/src/lib/core.js +0 -1
  158. package/dist/module/src/lib/core.test/MockCore.js +0 -14
  159. package/dist/module/src/lib/core.test/core.test.adapter.js +2 -9
  160. package/dist/module/src/lib/core.test/core.test.implementation.js +3 -7
  161. package/dist/module/src/lib/index.js +2 -0
  162. package/dist/module/src/lib/pmProxy.js +0 -2
  163. package/dist/module/src/lib/pmProxy.test/adapter.js +8 -2
  164. package/dist/module/src/lib/pmProxy.test/implementation.js +33 -4
  165. package/dist/module/src/lib/pmProxy.test/mockPMBase.js +9 -0
  166. package/dist/module/src/mothership/index.js +5 -0
  167. package/dist/module/src/mothership/test.js +44 -25
  168. package/dist/module/src/types/features.js +31 -0
  169. package/dist/module/src/utils/api.js +41 -21
  170. package/dist/module/src/utils/featureUtils.js +24 -0
  171. package/dist/module/src/utils/logFiles.js +21 -0
  172. package/dist/module/src/utils/makePrompt.js +108 -0
  173. package/dist/module/src/web.html.js +2 -6
  174. package/dist/module/testeranto.config.js +62 -34
  175. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  176. package/dist/prebuild/App.css +444 -12
  177. package/dist/prebuild/App.js +1318 -1053
  178. package/dist/prebuild/build.mjs +87 -103
  179. package/dist/prebuild/mothership/index.mjs +5 -0
  180. package/dist/prebuild/run.mjs +342 -211
  181. package/dist/tsconfig.tsbuildinfo +1 -0
  182. package/dist/types/App.d.ts +1 -0
  183. package/dist/types/PM/layers/main/components/SidecarManager.d.ts +0 -0
  184. package/dist/types/PM/layers/main/components/TestRunner.d.ts +0 -0
  185. package/dist/types/{src/PM → PM}/main.d.ts +18 -3
  186. package/dist/types/{src/PM → PM}/pure.d.ts +7 -4
  187. package/dist/types/PM/types.d.ts +0 -0
  188. package/dist/types/{src/PM → PM}/web.d.ts +1 -1
  189. package/dist/types/{src/Types.d.ts → Types.d.ts} +1 -0
  190. package/dist/types/components/SunriseAnimation.d.ts +5 -0
  191. package/dist/types/components/SunriseAnimation.test/implementation.d.ts +0 -0
  192. package/dist/types/components/SunriseAnimation.test/index.d.ts +0 -0
  193. package/dist/types/components/SunriseAnimation.test/interface.d.ts +11 -0
  194. package/dist/types/components/SunriseAnimation.test/specification.d.ts +0 -0
  195. package/dist/types/components/SunriseAnimation.test/types.d.ts +39 -0
  196. package/dist/types/components/pure/AppFrame.d.ts +9 -0
  197. package/dist/types/components/pure/AppFrame.test/implementation.d.ts +3 -0
  198. package/dist/types/components/pure/AppFrame.test/index.d.ts +5 -0
  199. package/dist/types/components/pure/AppFrame.test/types.d.ts +33 -0
  200. package/dist/types/components/pure/FeaturesReporterView.d.ts +7 -0
  201. package/dist/types/{src/components/pure/ProjectPageView.test → components/pure/FeaturesReporterView.test}/index.d.ts +1 -2
  202. package/dist/types/components/pure/FeaturesReporterView.test/specification.d.ts +3 -0
  203. package/dist/types/components/pure/FeaturesReporterView.test/types.d.ts +54 -0
  204. package/dist/types/components/pure/ModalContent.d.ts +7 -0
  205. package/dist/types/components/pure/ModalContent.test/implementation.d.ts +3 -0
  206. package/dist/types/components/pure/ModalContent.test/index.d.ts +2 -0
  207. package/dist/types/components/pure/ModalContent.test/specification.d.ts +3 -0
  208. package/dist/types/components/pure/ModalContent.test/types.d.ts +45 -0
  209. package/dist/types/components/pure/ProjectPageView.d.ts +14 -0
  210. package/dist/types/components/pure/ProjectPageView.test/implementation.d.ts +3 -0
  211. package/dist/types/components/pure/ProjectPageView.test/index.d.ts +2 -0
  212. package/dist/types/components/pure/ProjectPageView.test/specification.d.ts +3 -0
  213. package/dist/types/components/pure/ProjectPageView.test/types.d.ts +57 -0
  214. package/dist/types/components/pure/ProjectsPageView.d.ts +29 -0
  215. package/dist/types/components/pure/SettingsButton.d.ts +3 -0
  216. package/dist/types/components/pure/TestPageView.d.ts +15 -0
  217. package/dist/types/components/pure/TestPageView.test/implementation.d.ts +11 -0
  218. package/dist/types/components/pure/TestPageView.test/index.d.ts +32 -0
  219. package/dist/types/components/pure/TestPageView.test/specification.d.ts +11 -0
  220. package/dist/types/components/pure/TestPageView.test/types.d.ts +65 -0
  221. package/dist/types/components/pure/ThemeCard.d.ts +9 -0
  222. package/dist/types/components/stateful/FeaturesReporter.d.ts +2 -0
  223. package/dist/types/components/stateful/ProjectPage.d.ts +1 -0
  224. package/dist/types/components/stateful/ProjectsPage.d.ts +1 -0
  225. package/dist/types/components/stateful/TestPage.d.ts +1 -0
  226. package/dist/types/init-docs.d.ts +1 -0
  227. package/dist/types/{src/lib → lib}/abstractBase.d.ts +1 -1
  228. package/dist/types/{src/lib → lib}/abstractBase.test/MockGiven.d.ts +1 -1
  229. package/dist/types/lib/baseBuilder.test/baseBuilder.test.pure.d.ts +3 -0
  230. package/dist/types/{src/lib → lib}/index.d.ts +7 -7
  231. package/dist/types/run.d.ts +1 -0
  232. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  233. package/dist/types/types/features.d.ts +7 -0
  234. package/dist/types/{src/utils → utils}/api.d.ts +1 -5
  235. package/dist/types/utils/featureUtils.d.ts +6 -0
  236. package/dist/types/utils/logFiles.d.ts +7 -0
  237. package/dist/types/utils/makePrompt.d.ts +2 -0
  238. package/dist/types/{src/web.html.d.ts → web.html.d.ts} +1 -1
  239. package/docs/index.md +17 -0
  240. package/docs/testing.prompt.txt +1 -3
  241. package/docs.html +28 -10
  242. package/index.d.ts +38 -13
  243. package/index.html +59 -205
  244. package/marketing.md +166 -0
  245. package/package.json +15 -7
  246. package/scripts/compile-docs.js +24 -14
  247. package/smil30/SMIL-anim.mod.xsd +163 -0
  248. package/smil30/SMIL-control.mod.xsd +73 -0
  249. package/smil30/SMIL-layout.mod.xsd +149 -0
  250. package/smil30/SMIL-link.mod.xsd +145 -0
  251. package/smil30/SMIL-media.mod.xsd +1646 -0
  252. package/smil30/SMIL-metainformation.mod.xsd +45 -0
  253. package/smil30/SMIL-smiltext.mod.xsd +353 -0
  254. package/smil30/SMIL-state.mod.xsd +133 -0
  255. package/smil30/SMIL-struct.mod.xsd +70 -0
  256. package/smil30/SMIL-timing.mod.xsd +105 -0
  257. package/smil30/SMIL-transition.mod.xsd +229 -0
  258. package/smil30/SMIL.xsd +63 -0
  259. package/smil30/its.xsd +42 -0
  260. package/smil30/smil-attribs-1.mod.xsd +610 -0
  261. package/smil30/smil-datatypes-1.mod.xsd +72 -0
  262. package/smil30/smil-framework-1.mod.xsd +45 -0
  263. package/smil30/xml.xsd +16 -0
  264. package/src/App.scss +4 -13
  265. package/src/App.tsx +11 -25
  266. package/src/Node.ts +6 -9
  267. package/src/PM/PM_WithEslintAndTsc.ts +7 -93
  268. package/src/PM/__tests__/nodeSidecar.testeranto.ts +2 -0
  269. package/src/PM/base.ts +0 -3
  270. package/src/PM/layers/base/PM_Base.ts +0 -0
  271. package/src/PM/layers/base/components/PageOperations.testeranto.ts +0 -0
  272. package/src/PM/layers/base/components/PageOperations.ts +0 -0
  273. package/src/PM/layers/linting/components/Linter.ts +0 -0
  274. package/src/PM/layers/linting/components/TypeChecker.ts +0 -0
  275. package/src/PM/layers/main/components/SidecarManager.ts +0 -0
  276. package/src/PM/layers/main/components/TestRunner.ts +0 -0
  277. package/src/PM/main.ts +249 -120
  278. package/src/PM/nodeSidecar.ts +1 -0
  279. package/src/PM/pure.ts +15 -21
  280. package/src/PM/pureSidecar.ts +1 -1
  281. package/src/PM/types.ts +0 -0
  282. package/src/PM/web.ts +2 -1
  283. package/src/Pure.test.ts +21 -20
  284. package/src/Pure.ts +1 -1
  285. package/src/README.md +66 -0
  286. package/src/Types.ts +1 -0
  287. package/src/build.ts +28 -54
  288. package/src/components/{pure/ProjectPageView.test/index.ts → SunriseAnimation.test/index.tsx} +7 -4
  289. package/src/components/SunriseAnimation.test/interface.ts +49 -0
  290. package/src/components/SunriseAnimation.test/types.ts +53 -0
  291. package/src/components/TestStatusBadge.tsx +2 -23
  292. package/src/components/pure/AppFrame.test/implementation.tsx +72 -0
  293. package/src/components/pure/AppFrame.test/index.tsx +22 -0
  294. package/src/components/pure/AppFrame.test/specification.ts +35 -0
  295. package/src/components/pure/AppFrame.test/types.ts +65 -0
  296. package/src/components/pure/AppFrame.tsx +29 -0
  297. package/src/components/pure/FeaturesReporterView.test/implementation.tsx +106 -0
  298. package/src/components/pure/FeaturesReporterView.test/index.tsx +18 -0
  299. package/src/components/pure/FeaturesReporterView.test/specification.ts +39 -0
  300. package/src/components/pure/FeaturesReporterView.test/types.ts +77 -0
  301. package/src/components/pure/FeaturesReporterView.tsx +37 -0
  302. package/src/components/pure/ModalContent.test/implementation.tsx +43 -0
  303. package/src/components/pure/ModalContent.test/index.tsx +15 -0
  304. package/src/components/pure/ModalContent.test/specification.ts +27 -0
  305. package/src/components/pure/ModalContent.test/types.ts +72 -0
  306. package/src/components/pure/ModalContent.tsx +182 -0
  307. package/src/components/pure/ProjectPageView.test/implementation.tsx +135 -36
  308. package/src/components/pure/ProjectPageView.test/index.tsx +20 -0
  309. package/src/components/pure/ProjectPageView.test/specification.ts +15 -2
  310. package/src/components/pure/ProjectPageView.test/types.ts +57 -13
  311. package/src/components/pure/ProjectPageView.tsx +155 -121
  312. package/src/components/pure/ProjectsPageView.tsx +36 -5
  313. package/src/components/pure/SettingsButton.md +1 -0
  314. package/src/components/pure/SettingsButton.tsx +66 -0
  315. package/src/components/pure/TestPageView.test/implementation.ts +194 -0
  316. package/src/components/pure/TestPageView.test/index.tsx +20 -0
  317. package/src/components/pure/TestPageView.test/specification.ts +59 -0
  318. package/src/components/pure/TestPageView.test/types.ts +92 -0
  319. package/src/components/pure/TestPageView.tsx +272 -283
  320. package/src/components/pure/ThemeCard.tsx +34 -0
  321. package/src/components/stateful/FeaturesReporter.tsx +24 -0
  322. package/src/components/stateful/ProjectPage.tsx +4 -3
  323. package/src/components/stateful/TestPage.tsx +27 -18
  324. package/src/defaultConfig.ts +1 -0
  325. package/src/esbuildConfigs/web.ts +2 -1
  326. package/src/lib/BaseSuite.test/mock.ts +1 -27
  327. package/src/lib/BaseSuite.test/test.ts +15 -37
  328. package/src/lib/BaseSuite.ts +3 -0
  329. package/src/lib/Sidecar.ts +2 -0
  330. package/src/lib/abstractBase.test/MockGiven.ts +1 -1
  331. package/src/lib/abstractBase.ts +15 -7
  332. package/src/lib/baseBuilder.test/baseBuilder.test.adapter.ts +0 -6
  333. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +3 -1
  334. package/src/lib/baseBuilder.test/baseBuilder.test.mock.ts +27 -17
  335. package/src/lib/baseBuilder.test/baseBuilder.test.pure.ts +1 -1
  336. package/src/lib/basebuilder.ts +46 -47
  337. package/src/lib/classBuilder.ts +3 -0
  338. package/src/lib/core.test/MockCore.ts +0 -23
  339. package/src/lib/core.test/core.test.adapter.ts +6 -12
  340. package/src/lib/core.test/core.test.implementation.ts +7 -10
  341. package/src/lib/core.ts +2 -1
  342. package/src/lib/index.ts +9 -8
  343. package/src/lib/pmProxy.test/adapter.ts +8 -2
  344. package/src/lib/pmProxy.test/implementation.ts +40 -7
  345. package/src/lib/pmProxy.test/mockPMBase.ts +11 -0
  346. package/src/lib/pmProxy.ts +2 -2
  347. package/src/lib/types.ts +2 -0
  348. package/src/mothership/index.ts +6 -0
  349. package/src/mothership/test.ts +53 -26
  350. package/src/style.md +2 -0
  351. package/src/style.scss +16 -0
  352. package/src/templates/frontpage.html +54 -0
  353. package/src/themes.scss +9 -9
  354. package/src/types/features.ts +38 -0
  355. package/src/utils/api.ts +59 -29
  356. package/src/utils/featureUtils.tsx +42 -0
  357. package/src/utils/logFiles.ts +26 -0
  358. package/src/utils/makePrompt.ts +148 -0
  359. package/src/web.html.ts +6 -6
  360. package/style.css +28 -9
  361. package/testeranto/App.css +444 -12
  362. package/testeranto/App.js +1318 -1053
  363. package/testeranto/bundles/node/core/chunk-JBB5E3XJ.mjs +258 -0
  364. package/testeranto/bundles/node/core/chunk-L67RWZ4W.mjs +899 -0
  365. package/testeranto/bundles/node/core/chunk-ZQRRQYS4.mjs +92 -0
  366. package/testeranto/bundles/node/core/metafile.json +5729 -2
  367. package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +307 -0
  368. package/testeranto/bundles/node/core/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +247 -0
  369. package/testeranto/bundles/node/core/src/lib/classBuilder.test/classBuilder.test.mjs +423 -0
  370. package/testeranto/bundles/node/core/src/lib/core.test/core.test.mjs +505 -0
  371. package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +4804 -0
  372. package/testeranto/bundles/node/core/src/mothership/test.mjs +24588 -0
  373. package/testeranto/bundles/pure/core/chunk-KHJ35R7C.mjs +997 -0
  374. package/testeranto/bundles/pure/core/metafile.json +870 -3
  375. package/testeranto/bundles/pure/core/src/Pure.test.mjs +428 -0
  376. package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +379 -0
  377. package/testeranto/bundles/pure/core/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +235 -0
  378. package/testeranto/bundles/web/core/MPLUSRounded1c-Black-O75GP5JI.ttf +0 -0
  379. package/testeranto/bundles/web/core/MPLUSRounded1c-Bold-R524Q5BH.ttf +0 -0
  380. package/testeranto/bundles/web/core/MPLUSRounded1c-ExtraBold-C6GRMYVT.ttf +0 -0
  381. package/testeranto/bundles/web/core/MPLUSRounded1c-Light-WKN65Y2C.ttf +0 -0
  382. package/testeranto/bundles/web/core/MPLUSRounded1c-Medium-ZC4DWL7C.ttf +0 -0
  383. package/testeranto/bundles/web/core/MPLUSRounded1c-Regular-DT6EKZ3S.ttf +0 -0
  384. package/testeranto/bundles/web/core/MPLUSRounded1c-Thin-YWDNVG6M.ttf +0 -0
  385. package/testeranto/bundles/web/core/chunk-BADF3AZF.mjs +108 -0
  386. package/testeranto/bundles/web/core/chunk-BXV27S2S.mjs +6252 -0
  387. package/testeranto/bundles/web/core/chunk-EIYZKF2C.mjs +223 -0
  388. package/testeranto/bundles/web/core/chunk-FNXFUNA7.mjs +28528 -0
  389. package/testeranto/bundles/web/core/chunk-LU364HVS.mjs +3311 -0
  390. package/testeranto/bundles/web/core/chunk-QWII7WIM.mjs +2281 -0
  391. package/testeranto/bundles/web/core/chunk-VAYOSMXI.mjs +21775 -0
  392. package/testeranto/bundles/web/core/metafile.json +7883 -4742
  393. package/testeranto/bundles/web/core/src/components/pure/AppFrame.test/index.css +12105 -0
  394. package/testeranto/bundles/web/core/src/components/pure/AppFrame.test/index.html +15 -0
  395. package/testeranto/bundles/web/core/src/components/pure/AppFrame.test/index.mjs +517 -0
  396. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.html +15 -0
  397. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +166 -0
  398. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.css +12105 -0
  399. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.html +15 -0
  400. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.mjs +93 -0
  401. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +12105 -0
  402. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.html +1 -5
  403. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +280 -39928
  404. package/testeranto/bundles/web/core/src/components/pure/TestPageView.test/index.css +12105 -0
  405. package/testeranto/bundles/web/core/src/components/pure/TestPageView.test/index.html +15 -0
  406. package/testeranto/bundles/web/core/src/components/pure/TestPageView.test/index.mjs +483 -0
  407. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.html +15 -0
  408. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +394 -0
  409. package/testeranto/bundles/web/core/src/lib/baseBuilder.test/baseBuilder.test.web.html +15 -0
  410. package/testeranto/bundles/web/core/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +256 -0
  411. package/testeranto/reports/core/config.json +127 -2
  412. package/testeranto/reports/core/src/Pure.test/pure/exit.log +0 -0
  413. package/testeranto/reports/core/src/Pure.test/pure/lint_errors.txt +0 -0
  414. package/testeranto/reports/core/src/Pure.test/pure/message.txt +17 -0
  415. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +14 -0
  416. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +106 -0
  417. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/debug.log +0 -0
  418. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/error.log +22 -0
  419. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/exit.log +1 -0
  420. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/info.log +4 -0
  421. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/lint_errors.txt +2 -0
  422. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/message.txt +17 -0
  423. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/prompt.txt +18 -0
  424. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/tests.json +57 -0
  425. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/type_errors.txt +55 -0
  426. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/warn.log +0 -0
  427. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log +0 -0
  428. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +56 -0
  429. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +1 -0
  430. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +2 -0
  431. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/lint_errors.txt +0 -0
  432. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/message.txt +17 -0
  433. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/prompt.txt +16 -0
  434. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/suite-0/given-basicRender/then-4/butThen/features-reporter.png +0 -0
  435. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/tests.json +76 -0
  436. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/type_errors.txt +80 -0
  437. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
  438. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/debug.log +0 -0
  439. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/error.log +0 -0
  440. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/exit.log +0 -0
  441. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/info.log +4 -0
  442. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/lint_errors.txt +0 -0
  443. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/message.txt +17 -0
  444. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/prompt.txt +15 -0
  445. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/suite-0/given-basicRender/then-2/butThen/modal-content.png +0 -0
  446. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/tests.json +42 -0
  447. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/type_errors.txt +65 -0
  448. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/warn.log +0 -0
  449. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
  450. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +33 -0
  451. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +1 -0
  452. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +4 -0
  453. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +2 -18
  454. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +16 -1
  455. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +3 -14
  456. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-basicRender/then-6/butThen/happy-state.png +0 -0
  457. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-errorHandling/then-1/butThen/error-state.png +0 -0
  458. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/tests.json +99 -0
  459. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +69 -28
  460. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
  461. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/debug.log +0 -0
  462. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/error.log +0 -0
  463. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/exit.log +1 -0
  464. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/info.log +2 -0
  465. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/lint_errors.txt +0 -0
  466. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/message.txt +17 -0
  467. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/prompt.txt +18 -0
  468. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/tests.json +69 -0
  469. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/type_errors.txt +111 -0
  470. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/warn.log +0 -0
  471. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/exit.log +1 -0
  472. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -0
  473. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/message.txt +17 -0
  474. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +14 -0
  475. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stderr.log +0 -0
  476. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +0 -0
  477. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +31 -0
  478. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +113 -0
  479. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/exit.log +0 -0
  480. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -0
  481. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/message.txt +17 -0
  482. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +15 -0
  483. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +113 -0
  484. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/debug.log +0 -0
  485. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/error.log +1 -0
  486. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/exit.log +1 -0
  487. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/info.log +0 -0
  488. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -0
  489. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/message.txt +17 -0
  490. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +15 -0
  491. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +31 -0
  492. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +113 -0
  493. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/warn.log +0 -0
  494. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/exit.log +1 -0
  495. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +0 -0
  496. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +17 -0
  497. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +17 -0
  498. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/stderr.log +0 -0
  499. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/stdout.log +2 -0
  500. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-0/butThen/hello.txt +1 -0
  501. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/suite-0/given-testInitialization/then-1/butThen/artifact_test.txt +1 -0
  502. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +71 -0
  503. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +65 -0
  504. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/exit.log +0 -0
  505. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +0 -0
  506. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +17 -0
  507. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +17 -0
  508. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +65 -0
  509. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/debug.log +0 -0
  510. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/error.log +1 -0
  511. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/exit.log +1 -0
  512. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/info.log +0 -0
  513. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +0 -0
  514. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +17 -0
  515. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +17 -0
  516. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-0/butThen/hello.txt +1 -0
  517. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-1/butThen/artifact_test.txt +1 -0
  518. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +71 -0
  519. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +65 -0
  520. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/warn.log +0 -0
  521. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/exit.log +1 -0
  522. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.txt +0 -0
  523. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/message.txt +17 -0
  524. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +17 -0
  525. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/stderr.log +0 -0
  526. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/stdout.log +619 -0
  527. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/tests.json +165 -0
  528. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +140 -0
  529. package/testeranto/reports/core/src/lib/core.test/core.test/node/exit.log +1 -0
  530. package/testeranto/reports/core/src/lib/core.test/core.test/node/lint_errors.txt +21 -0
  531. package/testeranto/reports/core/src/lib/core.test/core.test/node/message.txt +17 -0
  532. package/testeranto/reports/core/src/lib/core.test/core.test/node/prompt.txt +19 -0
  533. package/testeranto/reports/core/src/lib/core.test/core.test/node/stderr.log +0 -0
  534. package/testeranto/reports/core/src/lib/core.test/core.test/node/stdout.log +0 -0
  535. package/testeranto/reports/core/src/lib/core.test/core.test/node/type_errors.txt +64 -0
  536. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +1 -0
  537. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +23 -0
  538. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +17 -0
  539. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +17 -0
  540. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +0 -0
  541. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +0 -0
  542. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/tests.json +162 -0
  543. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +78 -0
  544. package/testeranto/reports/core/src/mothership/test/node/exit.log +1 -0
  545. package/testeranto/reports/core/src/mothership/test/node/lint_errors.txt +0 -0
  546. package/testeranto/reports/core/src/mothership/test/node/message.txt +17 -0
  547. package/testeranto/reports/core/src/mothership/test/node/prompt.txt +14 -0
  548. package/testeranto/reports/core/src/mothership/test/node/stderr.log +27 -0
  549. package/testeranto/reports/core/src/mothership/test/node/stdout.log +8 -0
  550. package/testeranto/reports/core/src/mothership/test/node/tests.json +36 -0
  551. package/testeranto/reports/core/src/mothership/test/node/type_errors.txt +38 -0
  552. package/testeranto/reports/core/summary.json +109 -4
  553. package/testeranto.config.ts +64 -34
  554. package/tsc.log +356 -210
  555. package/tsconfig.common.json +4 -2
  556. package/tsconfig.json +9 -7
  557. package/tsconfig.module.json +3 -2
  558. package/tsconfig.types.json +3 -1
  559. package/videos/download-smil-xsd.sh +29 -0
  560. package/videos/project0/index.md +72 -0
  561. package/videos/project0/narration.json +7 -0
  562. package/videos/project0/narration.ssml +58 -0
  563. package/videos/project0/package.json +21 -0
  564. package/videos/project0/presentation.smil +25 -0
  565. package/videos/project0/smil30/SMIL-anim.mod.xsd +163 -0
  566. package/videos/project0/smil30/SMIL-anim.mod.xsd.1 +163 -0
  567. package/videos/project0/smil30/SMIL-anim.mod.xsd.2 +163 -0
  568. package/videos/project0/smil30/SMIL-control.mod.xsd +73 -0
  569. package/videos/project0/smil30/SMIL-control.mod.xsd.1 +73 -0
  570. package/videos/project0/smil30/SMIL-control.mod.xsd.2 +73 -0
  571. package/videos/project0/smil30/SMIL-layout.mod.xsd +149 -0
  572. package/videos/project0/smil30/SMIL-layout.mod.xsd.1 +149 -0
  573. package/videos/project0/smil30/SMIL-layout.mod.xsd.2 +149 -0
  574. package/videos/project0/smil30/SMIL-link.mod.xsd +145 -0
  575. package/videos/project0/smil30/SMIL-link.mod.xsd.1 +145 -0
  576. package/videos/project0/smil30/SMIL-link.mod.xsd.2 +145 -0
  577. package/videos/project0/smil30/SMIL-media.mod.xsd +1646 -0
  578. package/videos/project0/smil30/SMIL-media.mod.xsd.1 +1646 -0
  579. package/videos/project0/smil30/SMIL-media.mod.xsd.2 +1646 -0
  580. package/videos/project0/smil30/SMIL-metainformation.mod.xsd +45 -0
  581. package/videos/project0/smil30/SMIL-metainformation.mod.xsd.1 +45 -0
  582. package/videos/project0/smil30/SMIL-metainformation.mod.xsd.2 +45 -0
  583. package/videos/project0/smil30/SMIL-smiltext.mod.xsd +353 -0
  584. package/videos/project0/smil30/SMIL-smiltext.mod.xsd.1 +353 -0
  585. package/videos/project0/smil30/SMIL-smiltext.mod.xsd.2 +353 -0
  586. package/videos/project0/smil30/SMIL-state.mod.xsd +133 -0
  587. package/videos/project0/smil30/SMIL-state.mod.xsd.1 +133 -0
  588. package/videos/project0/smil30/SMIL-state.mod.xsd.2 +133 -0
  589. package/videos/project0/smil30/SMIL-struct.mod.xsd +70 -0
  590. package/videos/project0/smil30/SMIL-struct.mod.xsd.1 +70 -0
  591. package/videos/project0/smil30/SMIL-struct.mod.xsd.2 +70 -0
  592. package/videos/project0/smil30/SMIL-timing.mod.xsd +105 -0
  593. package/videos/project0/smil30/SMIL-timing.mod.xsd.1 +105 -0
  594. package/videos/project0/smil30/SMIL-timing.mod.xsd.2 +105 -0
  595. package/videos/project0/smil30/SMIL-transition.mod.xsd +229 -0
  596. package/videos/project0/smil30/SMIL-transition.mod.xsd.1 +229 -0
  597. package/videos/project0/smil30/SMIL-transition.mod.xsd.2 +229 -0
  598. package/videos/project0/smil30/SMIL.xsd +63 -0
  599. package/videos/project0/smil30/SMIL.xsd.1 +63 -0
  600. package/videos/project0/smil30/SMIL.xsd.2 +63 -0
  601. package/videos/project0/smil30/its.xsd +42 -0
  602. package/videos/project0/smil30/its.xsd.1 +42 -0
  603. package/videos/project0/smil30/its.xsd.2 +42 -0
  604. package/videos/project0/smil30/smil-attribs-1.mod.xsd +610 -0
  605. package/videos/project0/smil30/smil-attribs-1.mod.xsd.1 +610 -0
  606. package/videos/project0/smil30/smil-attribs-1.mod.xsd.2 +610 -0
  607. package/videos/project0/smil30/smil-datatypes-1.mod.xsd +72 -0
  608. package/videos/project0/smil30/smil-datatypes-1.mod.xsd.1 +72 -0
  609. package/videos/project0/smil30/smil-datatypes-1.mod.xsd.2 +72 -0
  610. package/videos/project0/smil30/smil-framework-1.mod.xsd +45 -0
  611. package/videos/project0/smil30/smil-framework-1.mod.xsd.1 +45 -0
  612. package/videos/project0/smil30/smil-framework-1.mod.xsd.2 +45 -0
  613. package/videos/project0/smil30/smil-profile-model-1.mod.xsd +1331 -0
  614. package/videos/project0/smil30/smil-profile-model-1.mod.xsd.1 +1331 -0
  615. package/videos/project0/smil30/smil-qname-1.mod.xsd +121 -0
  616. package/videos/project0/smil30/smil-qname-1.mod.xsd.1 +121 -0
  617. package/videos/project0/smil30/xml.xsd +16 -0
  618. package/videos/project0/smil30/xml.xsd.1 +16 -0
  619. package/videos/project0/smil30/xml.xsd.2 +16 -0
  620. package/videos/project0/smil30.xsd +137 -0
  621. package/videos/project0/src/audio/metadata.json +5 -0
  622. package/videos/project0/src/audio/narration.mp3 +0 -0
  623. package/videos/project0/src/motion-canvas.d.ts +1 -0
  624. package/videos/project0/src/project.meta +31 -0
  625. package/videos/project0/src/project.ts +13 -0
  626. package/videos/project0/src/scenes/example.meta +5 -0
  627. package/videos/project0/src/scenes/scene1.meta +3 -0
  628. package/videos/project0/src/scenes/scene1.tsx +129 -0
  629. package/videos/project0/src/scenes/scene2.tsx +132 -0
  630. package/videos/project0/src/scenes/scene3.meta +26 -0
  631. package/videos/project0/src/scenes/scene3.tsx +188 -0
  632. package/videos/project0/tsconfig.json +4 -0
  633. package/videos/project0/vite.config.ts +10 -0
  634. package/videos/trash/output/project.mp4 +0 -0
  635. package/videos/trash/text.mp4 +0 -0
  636. package/videos/trash/video/project.tsx +549 -0
  637. package/videos/trash/video/render.ts +15 -0
  638. package/videos/trash/vite.config.ts +10 -0
  639. package/videos/tts.js +109 -0
  640. package/dist/common/src/components/pure/ProjectPageView.test/adapter.js +0 -20
  641. package/dist/common/src/lib/dailyAnimation.js +0 -130
  642. package/dist/module/src/Footer.js +0 -5
  643. package/dist/module/src/ProjectPage.js +0 -319
  644. package/dist/module/src/ProjectsPage.js +0 -1
  645. package/dist/module/src/SettingsButton.js +0 -157
  646. package/dist/module/src/TestPage.js +0 -271
  647. package/dist/module/src/TestReport.js +0 -368
  648. package/dist/module/src/components/pure/ProjectPageView.test/adapter.js +0 -17
  649. package/dist/module/src/lib/dailyAnimation.js +0 -130
  650. package/dist/types/src/components/pure/ProjectPageView.d.ts +0 -14
  651. package/dist/types/src/components/pure/ProjectPageView.test/adapter.d.ts +0 -3
  652. package/dist/types/src/components/pure/ProjectPageView.test/types.d.ts +0 -39
  653. package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.pure.d.ts +0 -3
  654. package/dist/types/testeranto.config.d.ts +0 -3
  655. package/docs/testing.ai.txt +0 -106
  656. package/src/Footer.tsx +0 -8
  657. package/src/Project.scss +0 -1
  658. package/src/ProjectPage.tsx +0 -459
  659. package/src/ProjectsPage.tsx +0 -1
  660. package/src/ReportApp.scss +0 -1
  661. package/src/SettingsButton.tsx +0 -268
  662. package/src/TestPage.tsx +0 -476
  663. package/src/TestReport.scss +0 -24
  664. package/src/TestReport.tsx +0 -411
  665. package/src/components/pure/ProjectPageView.test/adapter.ts +0 -21
  666. package/src/lib/dailyAnimation.ts +0 -147
  667. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/logs.txt +0 -59
  668. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-basicRender/then-0/butThen/happyPath.png +0 -0
  669. /package/dist/common/src/{NavBar.js → components/pure/NavBar.js} +0 -0
  670. /package/dist/{types/src/ReportServer.d.ts → module/src/components/SunriseAnimation.test/types.js} +0 -0
  671. /package/dist/{types/src/build.d.ts → module/src/components/pure/FeaturesReporterView.test/types.js} +0 -0
  672. /package/dist/module/src/{NavBar.js → components/pure/NavBar.js} +0 -0
  673. /package/dist/types/{src/CoreTypes.d.ts → CoreTypes.d.ts} +0 -0
  674. /package/dist/types/{src/Init.d.ts → Init.d.ts} +0 -0
  675. /package/dist/types/{src/Node.d.ts → Node.d.ts} +0 -0
  676. /package/dist/types/{src/NodeSidecar.d.ts → NodeSidecar.d.ts} +0 -0
  677. /package/dist/types/{src/PM → PM}/PM_WithEslintAndTsc.d.ts +0 -0
  678. /package/dist/types/{src/PM → PM}/__tests__/nodeSidecar.testeranto.d.ts +0 -0
  679. /package/dist/types/{src/PM → PM}/__tests__/pureSidecar.testeranto.d.ts +0 -0
  680. /package/dist/types/{src/PM → PM}/__tests__/webSidecar.testeranto.d.ts +0 -0
  681. /package/dist/types/{src/PM → PM}/base.d.ts +0 -0
  682. /package/dist/types/{src/PM → PM}/index.d.ts +0 -0
  683. /package/dist/types/{src/components/SunriseAnimation.test/implementation.d.ts → PM/layers/base/PM_Base.d.ts} +0 -0
  684. /package/dist/types/{src/components/SunriseAnimation.test/index.d.ts → PM/layers/base/components/PageOperations.d.ts} +0 -0
  685. /package/dist/types/{src/components/SunriseAnimation.test/interface.d.ts → PM/layers/base/components/PageOperations.testeranto.d.ts} +0 -0
  686. /package/dist/types/{src/components/SunriseAnimation.test/specification.d.ts → PM/layers/linting/components/Linter.d.ts} +0 -0
  687. /package/dist/types/{src/lib/dailyAnimation.d.ts → PM/layers/linting/components/TypeChecker.d.ts} +0 -0
  688. /package/dist/types/{src/PM → PM}/node.d.ts +0 -0
  689. /package/dist/types/{src/PM → PM}/nodeSidecar.d.ts +0 -0
  690. /package/dist/types/{src/PM → PM}/pureSidecar.d.ts +0 -0
  691. /package/dist/types/{src/PM → PM}/sidecar.d.ts +0 -0
  692. /package/dist/types/{src/PM → PM}/webSidecar.d.ts +0 -0
  693. /package/dist/types/{src/Pure.d.ts → Pure.d.ts} +0 -0
  694. /package/dist/types/{src/Pure.test.d.ts → Pure.test.d.ts} +0 -0
  695. /package/dist/types/{src/PureSidecar.d.ts → PureSidecar.d.ts} +0 -0
  696. /package/dist/types/{src/init-docs.d.ts → ReportServer.d.ts} +0 -0
  697. /package/dist/types/{src/ReportServer.test.ts → ReportServer.test.ts}/index.d.ts +0 -0
  698. /package/dist/types/{src/ReportServerLib.d.ts → ReportServerLib.d.ts} +0 -0
  699. /package/dist/types/{src/Web.d.ts → Web.d.ts} +0 -0
  700. /package/dist/types/{src/WebSidecar.d.ts → WebSidecar.d.ts} +0 -0
  701. /package/dist/types/{src/run.d.ts → build.d.ts} +0 -0
  702. /package/dist/types/{src/components → components}/TestStatusBadge.d.ts +0 -0
  703. /package/dist/types/{src/components/pure/ProjectPageView.test → components/pure/AppFrame.test}/specification.d.ts +0 -0
  704. /package/dist/types/{src/components/pure/ProjectPageView.test → components/pure/FeaturesReporterView.test}/implementation.d.ts +0 -0
  705. /package/dist/types/{src → components/pure}/NavBar.d.ts +0 -0
  706. /package/dist/types/{src/defaultConfig.d.ts → defaultConfig.d.ts} +0 -0
  707. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/consoleDetectorPlugin.d.ts +0 -0
  708. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/eslint-formatter-testeranto.d.ts +0 -0
  709. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/featuresPlugin.d.ts +0 -0
  710. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/index.d.ts +0 -0
  711. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/inputFilesPlugin.d.ts +0 -0
  712. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/nativeImportDetectorPlugin.d.ts +0 -0
  713. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/node.d.ts +0 -0
  714. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/pure.d.ts +0 -0
  715. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/rebuildPlugin.d.ts +0 -0
  716. /package/dist/types/{src/esbuildConfigs → esbuildConfigs}/web.d.ts +0 -0
  717. /package/dist/types/{src/lib → lib}/BaseSuite.d.ts +0 -0
  718. /package/dist/types/{src/lib → lib}/BaseSuite.test/mock.d.ts +0 -0
  719. /package/dist/types/{src/lib → lib}/BaseSuite.test/node.test.d.ts +0 -0
  720. /package/dist/types/{src/lib → lib}/BaseSuite.test/pure.test.d.ts +0 -0
  721. /package/dist/types/{src/lib → lib}/BaseSuite.test/test.d.ts +0 -0
  722. /package/dist/types/{src/lib → lib}/BaseSuite.test/web.test.d.ts +0 -0
  723. /package/dist/types/{src/lib → lib}/Sidecar.d.ts +0 -0
  724. /package/dist/types/{src/lib → lib}/abstractBase.test/MockThen.d.ts +0 -0
  725. /package/dist/types/{src/lib → lib}/abstractBase.test/MockWhen.d.ts +0 -0
  726. /package/dist/types/{src/lib → lib}/abstractBase.test/adapter.d.ts +0 -0
  727. /package/dist/types/{src/lib → lib}/abstractBase.test/implementation.d.ts +0 -0
  728. /package/dist/types/{src/lib → lib}/abstractBase.test/index.d.ts +0 -0
  729. /package/dist/types/{src/lib → lib}/abstractBase.test/specification.d.ts +0 -0
  730. /package/dist/types/{src/lib → lib}/abstractBase.test/types.d.ts +0 -0
  731. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.adapter.d.ts +0 -0
  732. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.implementation.d.ts +0 -0
  733. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.mock.d.ts +0 -0
  734. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.node.d.ts +0 -0
  735. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.specification.d.ts +0 -0
  736. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.types.d.ts +0 -0
  737. /package/dist/types/{src/lib → lib}/baseBuilder.test/baseBuilder.test.web.d.ts +0 -0
  738. /package/dist/types/{src/lib → lib}/basebuilder.d.ts +0 -0
  739. /package/dist/types/{src/lib → lib}/classBuilder.d.ts +0 -0
  740. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.adapter.d.ts +0 -0
  741. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.d.ts +0 -0
  742. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.implementation.d.ts +0 -0
  743. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.specification.d.ts +0 -0
  744. /package/dist/types/{src/lib → lib}/classBuilder.test/classBuilder.test.types.d.ts +0 -0
  745. /package/dist/types/{src/lib → lib}/classBuilder.test/mock.d.ts +0 -0
  746. /package/dist/types/{src/lib → lib}/core.d.ts +0 -0
  747. /package/dist/types/{src/lib → lib}/core.test/MockCore.d.ts +0 -0
  748. /package/dist/types/{src/lib → lib}/core.test/core.test.adapter.d.ts +0 -0
  749. /package/dist/types/{src/lib → lib}/core.test/core.test.d.ts +0 -0
  750. /package/dist/types/{src/lib → lib}/core.test/core.test.implementation.d.ts +0 -0
  751. /package/dist/types/{src/lib → lib}/core.test/core.test.specification.d.ts +0 -0
  752. /package/dist/types/{src/lib → lib}/core.test/core.test.types.d.ts +0 -0
  753. /package/dist/types/{src/lib → lib}/mocks.test.d.ts +0 -0
  754. /package/dist/types/{src/lib → lib}/pmProxy.d.ts +0 -0
  755. /package/dist/types/{src/lib → lib}/pmProxy.test/adapter.d.ts +0 -0
  756. /package/dist/types/{src/lib → lib}/pmProxy.test/implementation.d.ts +0 -0
  757. /package/dist/types/{src/lib → lib}/pmProxy.test/index.d.ts +0 -0
  758. /package/dist/types/{src/lib → lib}/pmProxy.test/mockPM.d.ts +0 -0
  759. /package/dist/types/{src/lib → lib}/pmProxy.test/mockPMBase.d.ts +0 -0
  760. /package/dist/types/{src/lib → lib}/pmProxy.test/specification.d.ts +0 -0
  761. /package/dist/types/{src/lib → lib}/pmProxy.test/types.d.ts +0 -0
  762. /package/dist/types/{src/lib → lib}/types.d.ts +0 -0
  763. /package/dist/types/{src/mothership → mothership}/index.d.ts +0 -0
  764. /package/dist/types/{src/mothership → mothership}/test.d.ts +0 -0
  765. /package/dist/types/{src/utils → utils}/buildTemplates.d.ts +0 -0
  766. /package/dist/types/{src/utils → utils}/queue.d.ts +0 -0
  767. /package/dist/types/{src/utils.d.ts → utils.d.ts} +0 -0
  768. /package/src/{NavBar.tsx → components/pure/NavBar.tsx} +0 -0
@@ -8,7 +8,7 @@ import readline from "readline";
8
8
  import { spawn } from "node:child_process";
9
9
  import ansiColors from "ansi-colors";
10
10
  import net from "net";
11
- import fs3, { watch } from "fs";
11
+ import fs4, { watch } from "fs";
12
12
  import path4 from "path";
13
13
  import puppeteer from "puppeteer-core";
14
14
  import ansiC2 from "ansi-colors";
@@ -123,8 +123,7 @@ var Queue = class {
123
123
 
124
124
  // src/PM/PM_WithEslintAndTsc.ts
125
125
  import ts from "typescript";
126
- import fs2 from "fs";
127
- import path3 from "path";
126
+ import fs3 from "fs";
128
127
  import ansiC from "ansi-colors";
129
128
  import { ESLint } from "eslint";
130
129
  import tsc from "tsc-prog";
@@ -250,7 +249,6 @@ var PM_Base = class {
250
249
  const filepath = x[0];
251
250
  const contents = x[1];
252
251
  const testName = x[2];
253
- console.log("writing file", filepath);
254
252
  return new Promise(async (res) => {
255
253
  fs.mkdirSync(path2.dirname(filepath), {
256
254
  recursive: true
@@ -390,6 +388,113 @@ var PM_Base = class {
390
388
  }
391
389
  };
392
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
+
393
498
  // src/PM/PM_WithEslintAndTsc.ts
394
499
  var eslint = new ESLint();
395
500
  var formatter = await eslint.loadFormatter(
@@ -452,7 +557,7 @@ var PM_WithEslintAndTsc = class extends PM_Base {
452
557
  );
453
558
  }
454
559
  });
455
- fs2.writeFileSync(tscPath, results.join("\n"));
560
+ fs3.writeFileSync(tscPath, results.join("\n"));
456
561
  this.typeCheckIsNowDone(entrypoint, results.length);
457
562
  };
458
563
  this.eslintCheck = async (entrypoint, platform, addableFiles) => {
@@ -467,93 +572,25 @@ var PM_WithEslintAndTsc = class extends PM_Base {
467
572
  process.exit(-1);
468
573
  }
469
574
  const filepath = lintPather(entrypoint, platform, this.name);
470
- if (fs2.existsSync(filepath))
471
- fs2.rmSync(filepath);
575
+ if (fs3.existsSync(filepath))
576
+ fs3.rmSync(filepath);
472
577
  const results = (await eslint.lintFiles(addableFiles)).filter((r) => r.messages.length).filter((r) => {
473
578
  return r.messages[0].ruleId !== null;
474
579
  }).map((r) => {
475
580
  delete r.source;
476
581
  return r;
477
582
  });
478
- fs2.writeFileSync(filepath, await formatter.format(results));
583
+ fs3.writeFileSync(filepath, await formatter.format(results));
479
584
  this.lintIsNowDone(entrypoint, results.length);
480
585
  };
481
586
  this.makePrompt = async (entryPoint, addableFiles, platform) => {
482
- this.summary[entryPoint].prompt = "?";
483
- const promptPath = promptPather(entryPoint, platform, this.name);
484
- const testPaths = path3.join(
485
- "testeranto",
486
- "reports",
587
+ await makePromptInternal(
588
+ this.summary,
487
589
  this.name,
488
- entryPoint.split(".").slice(0, -1).join("."),
489
- platform,
490
- `tests.json`
491
- );
492
- const featuresPath = path3.join(
493
- "testeranto",
494
- "reports",
495
- this.name,
496
- platform,
497
- entryPoint.split(".").slice(0, -1).join("."),
498
- `featurePrompt.txt`
499
- );
500
- const logPath = path3.join(
501
- "testeranto",
502
- "reports",
503
- this.name,
504
- entryPoint.split(".").slice(0, -1).join("."),
505
- platform,
506
- `logs.txt`
507
- );
508
- const lintPath = path3.join(
509
- "testeranto",
510
- "reports",
511
- this.name,
512
- entryPoint.split(".").slice(0, -1).join("."),
513
- platform,
514
- `lint_errors.txt`
515
- );
516
- const typePath = path3.join(
517
- "testeranto",
518
- "reports",
519
- this.name,
520
- entryPoint.split(".").slice(0, -1).join("."),
521
- platform,
522
- `type_errors.txt`
523
- );
524
- const messagePath = path3.join(
525
- "testeranto",
526
- "reports",
527
- this.name,
528
- entryPoint.split(".").slice(0, -1).join("."),
529
- platform,
530
- `message.txt`
531
- );
532
- fs2.writeFileSync(
533
- promptPath,
534
- `
535
- ${addableFiles.map((x) => {
536
- return `/add ${x}`;
537
- }).join("\n")}
538
-
539
- /read node_modules/testeranto/docs/index.md
540
- /read node_modules/testeranto/docs/style.md
541
- /read node_modules/testeranto/docs/testing.ai.txt
542
- /read node_modules/testeranto/src/CoreTypes.ts
543
-
544
- /read ${testPaths}
545
- /read ${logPath}
546
- /read ${typePath}
547
- /read ${lintPath}
548
- `
549
- );
550
- fs2.writeFileSync(
551
- messagePath,
552
- `
553
- 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.
554
- `
590
+ entryPoint,
591
+ addableFiles,
592
+ platform
555
593
  );
556
- this.summary[entryPoint].prompt = `aider --model deepseek/deepseek-chat --load testeranto/${this.name}/reports/${platform}/${entryPoint.split(".").slice(0, -1).join(".")}/prompt.txt`;
557
594
  this.checkForShutdown();
558
595
  };
559
596
  this.typeCheckIsRunning = (src) => {
@@ -615,7 +652,7 @@ Fix the failing tests described in ${testPaths} and ${logPath}. Focus on the bdd
615
652
  this.checkForShutdown();
616
653
  };
617
654
  this.writeBigBoard = () => {
618
- fs2.writeFileSync(
655
+ fs3.writeFileSync(
619
656
  `./testeranto/reports/${this.name}/summary.json`,
620
657
  JSON.stringify(this.summary, null, 2)
621
658
  );
@@ -651,10 +688,80 @@ 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
  }
@@ -707,7 +820,7 @@ function isValidUrl(string) {
707
820
  async function pollForFile(path5, timeout = 2e3) {
708
821
  const intervalObj = setInterval(function() {
709
822
  const file = path5;
710
- const fileExists = fs3.existsSync(file);
823
+ const fileExists = fs4.existsSync(file);
711
824
  if (fileExists) {
712
825
  clearInterval(intervalObj);
713
826
  }
@@ -716,6 +829,8 @@ async function pollForFile(path5, timeout = 2e3) {
716
829
  var PM_Main = class extends PM_WithEslintAndTsc {
717
830
  constructor(configs, name, mode2) {
718
831
  super(configs, name, mode2);
832
+ this.logStreams = {};
833
+ this.sidecars = {};
719
834
  this.getRunnables = (tests, testName, payload = {
720
835
  nodeEntryPoints: {},
721
836
  nodeEntryPointSidecars: {},
@@ -730,11 +845,11 @@ var PM_Main = class extends PM_WithEslintAndTsc {
730
845
  console.log(ansiC2.green(ansiC2.inverse(`pure < ${src}`)));
731
846
  this.bddTestIsRunning(src);
732
847
  const reportDest = `testeranto/reports/${this.name}/${src.split(".").slice(0, -1).join(".")}/pure`;
733
- if (!fs3.existsSync(reportDest)) {
734
- fs3.mkdirSync(reportDest, { recursive: true });
848
+ if (!fs4.existsSync(reportDest)) {
849
+ fs4.mkdirSync(reportDest, { recursive: true });
735
850
  }
736
851
  const destFolder = dest.replace(".mjs", "");
737
- let argz = "";
852
+ let argz2 = "";
738
853
  const testConfig = this.configs.tests.find((t) => {
739
854
  return t[0] === src;
740
855
  });
@@ -745,7 +860,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
745
860
  const testConfigResource = testConfig[2];
746
861
  const portsToUse = [];
747
862
  if (testConfigResource.ports === 0) {
748
- argz = JSON.stringify({
863
+ argz2 = JSON.stringify({
749
864
  scheduled: true,
750
865
  name: src,
751
866
  ports: portsToUse,
@@ -761,7 +876,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
761
876
  portsToUse.push(openPorts[i][0]);
762
877
  this.ports[openPorts[i][0]] = src;
763
878
  }
764
- argz = JSON.stringify({
879
+ argz2 = JSON.stringify({
765
880
  scheduled: true,
766
881
  name: src,
767
882
  ports: portsToUse,
@@ -770,22 +885,24 @@ var PM_Main = class extends PM_WithEslintAndTsc {
770
885
  });
771
886
  } else {
772
887
  this.queue.push(src);
773
- return;
888
+ return [Math.random(), argz2];
774
889
  }
775
890
  } else {
776
891
  console.error("negative port makes no sense", src);
777
892
  process.exit(-1);
778
893
  }
779
894
  const builtfile = dest;
895
+ const logs = createLogStreams(reportDest, "pure");
780
896
  try {
781
897
  await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
898
+ const originalConsole = { ...console };
782
899
  return module.default.then((defaultModule) => {
783
- defaultModule.receiveTestResourceConfig(argz).then(async (results) => {
900
+ defaultModule.receiveTestResourceConfig(argz2).then(async (results) => {
784
901
  statusMessagePretty(results.fails, src, "pure");
785
902
  this.bddTestIsNowDone(src, results.fails);
786
903
  }).catch((e1) => {
787
904
  console.log(
788
- ansiC2.red(`launchPure - ${src} errored with: ${e1}`)
905
+ ansiC2.red(`launchPure - ${src} errored with: ${e1.stack}`)
789
906
  );
790
907
  this.bddTestIsNowDone(src, -1);
791
908
  statusMessagePretty(-1, src, "pure");
@@ -793,27 +910,29 @@ var PM_Main = class extends PM_WithEslintAndTsc {
793
910
  }).catch((e2) => {
794
911
  console.log(
795
912
  ansiColors.red(
796
- `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`
797
914
  )
798
915
  );
799
- this.writeFileSync(`${reportDest}/logs.txt`, e2.stack, src);
916
+ logs.exit.write(e2.stack);
917
+ logs.exit.write(-1);
800
918
  this.bddTestIsNowDone(src, -1);
801
919
  statusMessagePretty(-1, src, "pure");
802
920
  }).finally((x) => {
803
921
  });
804
922
  });
805
923
  } catch (e3) {
924
+ logs.writeExitCode(-1, e3);
806
925
  console.log(
807
926
  ansiC2.red(
808
927
  ansiC2.inverse(
809
- `${src} 1 errored with: ${e3}. Check ${reportDest}/logs.txt for more info`
928
+ `${src} 1 errored with: ${e3}. Check logs for more info`
810
929
  )
811
930
  )
812
931
  );
813
- this.writeFileSync(`${reportDest}/logs.txt`, e3.stack, src);
932
+ logs.exit.write(e3.stack);
933
+ logs.exit.write(-1);
814
934
  this.bddTestIsNowDone(src, -1);
815
935
  statusMessagePretty(-1, src, "pure");
816
- console.log("III) PURE IS EXITING BADLY WITH error", e3);
817
936
  }
818
937
  for (let i = 0; i <= portsToUse.length; i++) {
819
938
  if (portsToUse[i]) {
@@ -825,8 +944,8 @@ var PM_Main = class extends PM_WithEslintAndTsc {
825
944
  console.log(ansiC2.green(ansiC2.inverse(`node < ${src}`)));
826
945
  this.bddTestIsRunning(src);
827
946
  const reportDest = `testeranto/reports/${this.name}/${src.split(".").slice(0, -1).join(".")}/node`;
828
- if (!fs3.existsSync(reportDest)) {
829
- fs3.mkdirSync(reportDest, { recursive: true });
947
+ if (!fs4.existsSync(reportDest)) {
948
+ fs4.mkdirSync(reportDest, { recursive: true });
830
949
  }
831
950
  let testResources = "";
832
951
  const testConfig = this.configs.tests.find((t) => {
@@ -872,7 +991,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
872
991
  )
873
992
  );
874
993
  this.queue.push(src);
875
- return;
994
+ return [Math.random(), argz];
876
995
  }
877
996
  } else {
878
997
  console.error("negative port makes no sense", src);
@@ -931,41 +1050,46 @@ var PM_Main = class extends PM_WithEslintAndTsc {
931
1050
  }
932
1051
  });
933
1052
  });
934
- const oStream = fs3.createWriteStream(`${reportDest}/logs.txt`);
935
- const errFile = `${reportDest}/logs.txt`;
936
- if (fs3.existsSync(errFile)) {
937
- fs3.rmSync(errFile);
938
- }
1053
+ const logs = createLogStreams(reportDest, "node");
939
1054
  server.listen(ipcfile, () => {
940
- child.stderr?.on("data", (data) => {
941
- oStream.write(`stderr > ${data}`);
942
- });
943
1055
  child.stdout?.on("data", (data) => {
944
- oStream.write(`stdout > ${data}`);
1056
+ logs.stdout?.write(data);
1057
+ });
1058
+ child.stderr?.on("data", (data) => {
1059
+ logs.stderr?.write(data);
945
1060
  });
946
1061
  child.on("error", (err) => {
947
1062
  });
948
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();
949
1074
  server.close();
950
1075
  if (!files2[src]) {
951
1076
  files2[src] = /* @__PURE__ */ new Set();
952
1077
  }
953
- if (code === 255) {
1078
+ if (exitCode === 255) {
954
1079
  console.log(
955
1080
  ansiColors.red(
956
- `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`
957
1082
  )
958
1083
  );
959
1084
  this.bddTestIsNowDone(src, -1);
960
1085
  statusMessagePretty(-1, src, "node");
961
- oStream.close();
962
1086
  return;
963
- } else if (code === 0) {
1087
+ } else if (exitCode === 0) {
964
1088
  this.bddTestIsNowDone(src, 0);
965
1089
  statusMessagePretty(0, src, "node");
966
1090
  } else {
967
- this.bddTestIsNowDone(src, code);
968
- statusMessagePretty(code, src, "node");
1091
+ this.bddTestIsNowDone(src, exitCode);
1092
+ statusMessagePretty(exitCode, src, "node");
969
1093
  }
970
1094
  haltReturns = true;
971
1095
  });
@@ -983,11 +1107,10 @@ var PM_Main = class extends PM_WithEslintAndTsc {
983
1107
  console.log(
984
1108
  ansiC2.red(
985
1109
  ansiC2.inverse(
986
- `${src} errored with: ${e.name}. Check ${errFile} for more info`
1110
+ `${src} errored with: ${e.name}. Check error logs for more info`
987
1111
  )
988
1112
  )
989
1113
  );
990
- this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
991
1114
  this.bddTestIsNowDone(src, -1);
992
1115
  statusMessagePretty(-1, src, "node");
993
1116
  });
@@ -998,9 +1121,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
998
1121
  const dest = src.split(".").slice(0, -1).join(".");
999
1122
  const destFolder = dest.replace(".mjs", "");
1000
1123
  console.log(ansiC2.green(ansiC2.inverse(`launchWebSideCar ${src}`)));
1001
- const fileStreams2 = [];
1002
- const doneFileStream2 = [];
1003
- const oStream = fs3.createWriteStream(`${destFolder}/logs.txt`);
1124
+ const logs = createLogStreams(dest, "web");
1004
1125
  return new Promise((res, rej) => {
1005
1126
  this.browser.newPage().then(async (page) => {
1006
1127
  this.mapping().forEach(async ([command, func]) => {
@@ -1014,34 +1135,44 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1014
1135
  Promise.all(screenshots2[src] || []).then(() => {
1015
1136
  delete screenshots2[src];
1016
1137
  page.close();
1017
- oStream.close();
1018
1138
  });
1019
1139
  };
1020
1140
  page.on("pageerror", (err) => {
1021
1141
  console.debug(`Error from ${src}: [${err.name}] `);
1022
- oStream.write(err.name);
1023
- oStream.write("\n");
1142
+ console.debug(`Error from ${src}: [${err.name}] `);
1024
1143
  if (err.cause) {
1025
1144
  console.debug(`Error from ${src} cause: [${err.cause}] `);
1026
- oStream.write(err.cause);
1027
- oStream.write("\n");
1028
1145
  }
1029
1146
  if (err.stack) {
1030
1147
  console.debug(`Error from stack ${src}: [${err.stack}] `);
1031
- oStream.write(err.stack);
1032
- oStream.write("\n");
1033
1148
  }
1034
1149
  console.debug(`Error from message ${src}: [${err.message}] `);
1035
- oStream.write(err.message);
1036
- oStream.write("\n");
1037
1150
  this.bddTestIsNowDone(src, -1);
1038
1151
  close();
1039
1152
  });
1040
1153
  page.on("console", (log) => {
1041
- oStream.write(log.text());
1042
- oStream.write(JSON.stringify(log.location()));
1043
- oStream.write(JSON.stringify(log.stackTrace()));
1044
- 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
+ }
1045
1176
  });
1046
1177
  await page.goto(`file://${`${destFolder}.html`}`, {});
1047
1178
  const webArgz = JSON.stringify({
@@ -1087,13 +1218,14 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1087
1218
  console.log(ansiC2.green(ansiC2.inverse(`launchNodeSideCar ${sidecar[0]}`)));
1088
1219
  const destFolder = dest.replace(".ts", "");
1089
1220
  const reportDest = `testeranto/reports/${this.name}/${src.split(".").slice(0, -1).join(".")}/node`;
1090
- const argz = {
1221
+ const argz2 = {
1091
1222
  name: sidecar[0],
1092
1223
  ports: [],
1093
1224
  fs: destFolder,
1094
1225
  browserWSEndpoint: this.browser.wsEndpoint()
1095
1226
  };
1096
1227
  const testReq = sidecar[2];
1228
+ const logs = createLogStreams(dest, "node");
1097
1229
  const portsToUse = [];
1098
1230
  if (testReq.ports === 0) {
1099
1231
  } else if (testReq.ports > 0) {
@@ -1102,10 +1234,10 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1102
1234
  );
1103
1235
  if (openPorts.length >= testReq.ports) {
1104
1236
  for (let i = 0; i < testReq.ports; i++) {
1105
- portsToUse.push(openPorts[i][0]);
1237
+ portsToUse.push(Number(openPorts[i][0]));
1106
1238
  this.ports[openPorts[i][0]] = src;
1107
1239
  }
1108
- argz.ports = portsToUse;
1240
+ argz2.ports = portsToUse;
1109
1241
  const builtfile = destFolder + ".mjs";
1110
1242
  let haltReturns = false;
1111
1243
  let buffer = new Buffer("");
@@ -1142,22 +1274,13 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1142
1274
  });
1143
1275
  });
1144
1276
  });
1145
- const oStream = fs3.createWriteStream(`${reportDest}/logs.txt`);
1146
- const child = spawn("node", [builtfile, JSON.stringify(argz)], {
1277
+ const child = spawn("node", [builtfile, JSON.stringify(argz2)], {
1147
1278
  stdio: ["pipe", "pipe", "pipe", "ipc"]
1148
1279
  // silent: true
1149
1280
  });
1150
1281
  const p = "/tmp/tpipe" + Math.random();
1151
- const errFile = `${reportDest}/logs.txt`;
1152
1282
  server.listen(p, () => {
1153
- child.stderr?.on("data", (data) => {
1154
- oStream.write(`stderr > ${data}`);
1155
- });
1156
- child.stdout?.on("data", (data) => {
1157
- oStream.write(`stdout > ${data}`);
1158
- });
1159
1283
  child.on("close", (code) => {
1160
- oStream.close();
1161
1284
  server.close();
1162
1285
  haltReturns = true;
1163
1286
  });
@@ -1170,24 +1293,24 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1170
1293
  }
1171
1294
  });
1172
1295
  child.on("error", (e) => {
1173
- if (fs3.existsSync(p)) {
1174
- fs3.rmSync(p);
1296
+ if (fs4.existsSync(p)) {
1297
+ fs4.rmSync(p);
1175
1298
  }
1176
1299
  haltReturns = true;
1177
1300
  console.log(
1178
1301
  ansiC2.red(
1179
1302
  ansiC2.inverse(
1180
- `launchNodeSideCar - ${src} errored with: ${e.name}. Check ${errFile}for more info`
1303
+ `launchNodeSideCar - ${src} errored with: ${e.name}. Check logs for more info`
1181
1304
  )
1182
1305
  )
1183
1306
  );
1184
- this.writeFileSync(`${reportDest}/logs.txt`, e.toString(), src);
1307
+ logs.error?.write(e.toString() + "\n");
1185
1308
  });
1186
1309
  });
1187
1310
  child.send({ path: p });
1188
1311
  const r = Math.random();
1189
1312
  this.nodeSidecars[r] = child;
1190
- return [r, argz];
1313
+ return [r, argz2];
1191
1314
  } else {
1192
1315
  console.log(
1193
1316
  ansiC2.red(
@@ -1195,7 +1318,7 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1195
1318
  )
1196
1319
  );
1197
1320
  this.queue.push(sidecar[0]);
1198
- return [Math.random(), argz];
1321
+ return [Math.random(), argz2];
1199
1322
  }
1200
1323
  } else {
1201
1324
  console.error("negative port makes no sense", sidecar[0]);
@@ -1213,13 +1336,13 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1213
1336
  const dest = process.cwd() + `/testeranto/bundles/pure/${this.name}/${sidecar[0]}`;
1214
1337
  const builtfile = dest.split(".").slice(0, -1).concat("mjs").join(".");
1215
1338
  const destFolder = dest.replace(".mjs", "");
1216
- let argz;
1339
+ let argz2;
1217
1340
  const z = sidecar[2];
1218
1341
  const testConfigResource = sidecar[2];
1219
1342
  const src = sidecar[0];
1220
1343
  const portsToUse = [];
1221
1344
  if (testConfigResource.ports === 0) {
1222
- argz = {
1345
+ argz2 = {
1223
1346
  // scheduled: true,
1224
1347
  name: src,
1225
1348
  ports: portsToUse,
@@ -1232,10 +1355,10 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1232
1355
  );
1233
1356
  if (openPorts.length >= testConfigResource.ports) {
1234
1357
  for (let i = 0; i < testConfigResource.ports; i++) {
1235
- portsToUse.push(openPorts[i][0]);
1358
+ portsToUse.push(Number(openPorts[i][0]));
1236
1359
  this.ports[openPorts[i][0]] = src;
1237
1360
  }
1238
- argz = {
1361
+ argz2 = {
1239
1362
  // scheduled: true,
1240
1363
  name: src,
1241
1364
  // ports: [3333],
@@ -1245,24 +1368,25 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1245
1368
  };
1246
1369
  } else {
1247
1370
  this.queue.push(src);
1248
- return;
1249
1371
  }
1250
1372
  } else {
1251
1373
  console.error("negative port makes no sense", src);
1252
1374
  process.exit(-1);
1253
1375
  }
1254
1376
  await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
1377
+ if (!this.pureSidecars)
1378
+ this.pureSidecars = {};
1255
1379
  this.pureSidecars[r] = module.default;
1256
- this.pureSidecars[r].start(argz);
1380
+ this.pureSidecars[r].start(argz2);
1257
1381
  });
1258
- return [r, argz];
1382
+ return [r, argz2];
1259
1383
  };
1260
1384
  this.launchWeb = async (src, dest) => {
1261
1385
  console.log(ansiC2.green(ansiC2.inverse(`web < ${src}`)));
1262
1386
  this.bddTestIsRunning(src);
1263
1387
  const reportDest = `testeranto/reports/${this.name}/${src.split(".").slice(0, -1).join(".")}/web`;
1264
- if (!fs3.existsSync(reportDest)) {
1265
- fs3.mkdirSync(reportDest, { recursive: true });
1388
+ if (!fs4.existsSync(reportDest)) {
1389
+ fs4.mkdirSync(reportDest, { recursive: true });
1266
1390
  }
1267
1391
  const destFolder = dest.replace(".mjs", "");
1268
1392
  const webArgz = JSON.stringify({
@@ -1272,9 +1396,33 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1272
1396
  browserWSEndpoint: this.browser.wsEndpoint()
1273
1397
  });
1274
1398
  const d = `${dest}?cacheBust=${Date.now()}`;
1275
- const ofile = `${reportDest}/logs.txt`;
1276
- const oStream = fs3.createWriteStream(ofile);
1399
+ const logs = createLogStreams(reportDest, "web");
1277
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
+ });
1278
1426
  this.mapping().forEach(async ([command, func]) => {
1279
1427
  if (command === "page") {
1280
1428
  page.exposeFunction(command, (x) => {
@@ -1298,46 +1446,19 @@ var PM_Main = class extends PM_WithEslintAndTsc {
1298
1446
  Promise.all(screenshots2[src] || []).then(() => {
1299
1447
  delete screenshots2[src];
1300
1448
  page.close();
1301
- oStream.close();
1302
1449
  });
1303
1450
  return;
1304
1451
  };
1305
1452
  page.on("pageerror", (err) => {
1453
+ logs.writeExitCode(-1, err);
1306
1454
  console.log(
1307
1455
  ansiColors.red(
1308
- `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`
1309
1457
  )
1310
1458
  );
1311
- oStream.write(err.name);
1312
- oStream.write("\n");
1313
- if (err.cause) {
1314
- oStream.write(err.cause);
1315
- oStream.write("\n");
1316
- }
1317
- if (err.stack) {
1318
- oStream.write(err.stack);
1319
- oStream.write("\n");
1320
- }
1321
- if (err.message) {
1322
- oStream.write(err.message);
1323
- oStream.write("\n");
1324
- }
1325
1459
  this.bddTestIsNowDone(src, -1);
1326
1460
  close();
1327
1461
  });
1328
- page.on("console", (log) => {
1329
- if (oStream.closed) {
1330
- console.log("missed console message: ", log.text());
1331
- return;
1332
- } else {
1333
- oStream.write(log.text());
1334
- oStream.write("\n");
1335
- oStream.write(JSON.stringify(log.location()));
1336
- oStream.write("\n");
1337
- oStream.write(JSON.stringify(log.stackTrace()));
1338
- oStream.write("\n");
1339
- }
1340
- });
1341
1462
  await page.goto(`file://${`${destFolder}.html`}`, {});
1342
1463
  await page.evaluate(
1343
1464
  `
@@ -1357,7 +1478,7 @@ import('${d}').then(async (x) => {
1357
1478
  console.log(
1358
1479
  ansiC2.red(
1359
1480
  ansiC2.inverse(
1360
- `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`
1361
1482
  )
1362
1483
  )
1363
1484
  );
@@ -1377,7 +1498,7 @@ import('${d}').then(async (x) => {
1377
1498
  srcTest.split(".").slice(0, -1).join(".") + ".features.txt"
1378
1499
  );
1379
1500
  const testReport = JSON.parse(
1380
- fs3.readFileSync(`${reportDest}/tests.json`).toString()
1501
+ fs4.readFileSync(`${reportDest}/tests.json`).toString()
1381
1502
  );
1382
1503
  testReport.features.reduce(async (mm, featureStringKey) => {
1383
1504
  const accum = await mm;
@@ -1397,14 +1518,14 @@ import('${d}').then(async (x) => {
1397
1518
  accum.files.push(newPath);
1398
1519
  }
1399
1520
  } else {
1400
- await fs3.promises.mkdir(path4.dirname(featureDestination), {
1521
+ await fs4.promises.mkdir(path4.dirname(featureDestination), {
1401
1522
  recursive: true
1402
1523
  });
1403
1524
  accum.strings.push(featureStringKey);
1404
1525
  }
1405
1526
  return accum;
1406
1527
  }, Promise.resolve({ files: [], strings: [] })).then(({ files: files3, strings }) => {
1407
- fs3.writeFileSync(
1528
+ fs4.writeFileSync(
1408
1529
  `testeranto/reports/${this.name}/${srcTest.split(".").slice(0, -1).join(".")}/${platform}/featurePrompt.txt`,
1409
1530
  files3.map((f) => {
1410
1531
  return `/read ${f}`;
@@ -1460,10 +1581,16 @@ import('${d}').then(async (x) => {
1460
1581
  });
1461
1582
  this.writeBigBoard();
1462
1583
  if (!inflight) {
1463
- this.browser.disconnect().then(() => {
1464
- console.log(ansiC2.inverse(`${this.name} has been tested. Goodbye.`));
1465
- process.exit();
1466
- });
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
+ }
1467
1594
  }
1468
1595
  };
1469
1596
  this.launchers = {};
@@ -1552,8 +1679,8 @@ import('${d}').then(async (x) => {
1552
1679
  this.mapping().forEach(async ([command, func]) => {
1553
1680
  globalThis[command] = func;
1554
1681
  });
1555
- if (!fs3.existsSync(`testeranto/reports/${this.name}`)) {
1556
- fs3.mkdirSync(`testeranto/reports/${this.name}`);
1682
+ if (!fs4.existsSync(`testeranto/reports/${this.name}`)) {
1683
+ fs4.mkdirSync(`testeranto/reports/${this.name}`);
1557
1684
  }
1558
1685
  const executablePath = "/opt/homebrew/bin/chromium";
1559
1686
  try {
@@ -1562,16 +1689,18 @@ import('${d}').then(async (x) => {
1562
1689
  waitForInitialPage: false,
1563
1690
  executablePath,
1564
1691
  headless: true,
1692
+ defaultViewport: null,
1693
+ // Disable default 800x600 viewport
1565
1694
  dumpio: false,
1566
1695
  devtools: false,
1567
1696
  args: [
1568
- "--disable-features=site-per-process",
1569
1697
  "--allow-file-access-from-files",
1570
1698
  "--allow-insecure-localhost",
1571
1699
  "--allow-running-insecure-content",
1572
1700
  "--auto-open-devtools-for-tabs",
1573
1701
  "--disable-dev-shm-usage",
1574
1702
  "--disable-extensions",
1703
+ "--disable-features=site-per-process",
1575
1704
  "--disable-gpu",
1576
1705
  "--disable-setuid-sandbox",
1577
1706
  "--disable-site-isolation-trials",
@@ -1581,6 +1710,7 @@ import('${d}').then(async (x) => {
1581
1710
  "--no-startup-window",
1582
1711
  "--reduce-security-for-testing",
1583
1712
  "--remote-allow-origins=*",
1713
+ "--start-maximized",
1584
1714
  "--unsafely-treat-insecure-origin-as-secure=*",
1585
1715
  `--remote-debugging-port=3234`
1586
1716
  // "--disable-features=IsolateOrigins,site-per-process",
@@ -1700,11 +1830,12 @@ import('${d}').then(async (x) => {
1700
1830
  this.nodeMetafileWatcher.close();
1701
1831
  this.webMetafileWatcher.close();
1702
1832
  this.importMetafileWatcher.close();
1833
+ Object.values(this.logStreams || {}).forEach((logs) => logs.closeAll());
1703
1834
  this.checkForShutdown();
1704
1835
  }
1705
1836
  async metafileOutputs(platform) {
1706
1837
  const metafile = JSON.parse(
1707
- fs3.readFileSync(
1838
+ fs4.readFileSync(
1708
1839
  `./testeranto/bundles/${platform}/${this.name}/metafile.json`
1709
1840
  ).toString()
1710
1841
  ).metafile;
@@ -1717,7 +1848,7 @@ import('${d}').then(async (x) => {
1717
1848
  return false;
1718
1849
  }
1719
1850
  const addableFiles = Object.keys(outputs[k].inputs).filter((i) => {
1720
- if (!fs3.existsSync(i))
1851
+ if (!fs4.existsSync(i))
1721
1852
  return false;
1722
1853
  if (i.startsWith("node_modules"))
1723
1854
  return false;
@@ -1726,8 +1857,8 @@ import('${d}').then(async (x) => {
1726
1857
  return true;
1727
1858
  });
1728
1859
  const f = `${k.split(".").slice(0, -1).join(".")}/`;
1729
- if (!fs3.existsSync(f)) {
1730
- fs3.mkdirSync(f);
1860
+ if (!fs4.existsSync(f)) {
1861
+ fs4.mkdirSync(f);
1731
1862
  }
1732
1863
  const entrypoint = outputs[k].entryPoint;
1733
1864
  if (entrypoint) {