testeranto 0.200.1 → 0.203.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 (740) hide show
  1. package/README.md +49 -1
  2. package/UX/chache/index.md +11 -0
  3. package/design-editor/DesignEditor.tsx +40 -241
  4. package/dist/prebuild/App.css +171 -120
  5. package/dist/prebuild/App.js +47117 -11727
  6. package/dist/prebuild/testeranto.mjs +5048 -2578
  7. package/example/Calculator.go +63 -0
  8. package/example/Calculator.golingvu.adapter.go +81 -0
  9. package/example/Calculator.golingvu.go +67 -0
  10. package/example/Calculator.golingvu.implementation.go +95 -0
  11. package/example/Calculator.golingvu.specification.go +68 -0
  12. package/example/Calculator.pitono.adapter.py +68 -0
  13. package/example/Calculator.pitono.implementation.py +30 -0
  14. package/example/Calculator.pitono.specification.py +154 -0
  15. package/example/Calculator.pitono.test.py +47 -0
  16. package/example/Calculator.py +93 -0
  17. package/example/Calculator.test.adapter.ts +86 -0
  18. package/example/Calculator.test.implementation.ts +82 -0
  19. package/example/Calculator.test.specification.ts +213 -0
  20. package/example/Calculator.test.ts +13 -0
  21. package/example/Calculator.test.types.ts +50 -0
  22. package/example/Calculator.ts +130 -0
  23. package/example/README.md +1 -0
  24. package/example/base_suite_test.go +51 -0
  25. package/example/cmd/main.go +16 -0
  26. package/example/go.mod +9 -0
  27. package/example/main +0 -0
  28. package/example/test_example.py +143 -74
  29. package/example/testeranto/bundles/golang/core/Calculator.golingvu.go +53 -0
  30. package/example/testeranto/metafiles/golang/core.json +198 -0
  31. package/git-integration-plan.md +395 -0
  32. package/go.mod +3 -1
  33. package/golingvu.tmp.txt +68 -0
  34. package/log.txt +85 -0
  35. package/package.json +67 -46
  36. package/scripts/build-example.ts +245 -0
  37. package/src/App.tsx +226 -25
  38. package/src/Helpo.tsx +89 -0
  39. package/src/PM/PM_WithBuild.ts +183 -0
  40. package/src/PM/PM_WithEslintAndTsc.ts +109 -86
  41. package/src/PM/PM_WithGit.ts +632 -0
  42. package/src/PM/PM_WithHelpo.ts +341 -0
  43. package/src/PM/PM_WithProcesses.ts +900 -0
  44. package/src/PM/PM_WithWebSocket.ts +839 -0
  45. package/src/PM/base.ts +63 -1
  46. package/src/PM/golingvuBuild.ts +56 -0
  47. package/src/PM/index.ts +8 -5
  48. package/src/PM/main.ts +735 -1981
  49. package/src/PM/node.ts +18 -18
  50. package/src/PM/pitonoBuild.ts +56 -0
  51. package/src/PM/pure.ts +5 -13
  52. package/src/PM/types.ts +145 -0
  53. package/src/PM/utils.ts +262 -0
  54. package/src/PM/web.ts +8 -8
  55. package/src/README.md +122 -0
  56. package/src/ReportServer.ts +0 -12
  57. package/src/ReportServerLib.ts +0 -147
  58. package/src/Types.ts +1 -0
  59. package/src/app.scss +92 -140
  60. package/src/components/pure/AppFrame.tsx +354 -78
  61. package/src/components/pure/ArtifactTree.tsx +82 -0
  62. package/src/components/pure/BuildLogViewer.tsx +168 -0
  63. package/src/components/pure/DebugEnv.tsx +30 -0
  64. package/src/components/pure/FileTree.tsx +58 -0
  65. package/src/components/pure/FileTreeItem.tsx +49 -0
  66. package/src/components/pure/GitHubLoginButton.tsx +31 -0
  67. package/src/components/pure/GitIntegrationView.tsx +732 -0
  68. package/src/components/pure/HelpoChatDrawer.tsx +222 -0
  69. package/src/components/pure/MagicRobotModal.tsx +136 -0
  70. package/src/components/pure/ProcessDetails.tsx +99 -0
  71. package/src/components/pure/ProcessInput.tsx +67 -0
  72. package/src/components/pure/ProcessList.tsx +89 -0
  73. package/src/components/pure/ProcessLogs.tsx +54 -0
  74. package/src/components/pure/ProcessManager.tsx +38 -46
  75. package/src/components/pure/ProcessManagerView.tsx +44 -373
  76. package/src/components/pure/ProcessManagerViewTypes.ts +10 -0
  77. package/src/components/pure/ProcessSidebar.tsx +88 -0
  78. package/src/components/pure/ProcessTerminal.tsx +51 -0
  79. package/src/components/pure/ProjectPageView.tsx +6 -224
  80. package/src/components/pure/Settings.test.tsx +34 -0
  81. package/src/components/pure/Settings.tsx +163 -0
  82. package/src/components/pure/SignIn.tsx +33 -0
  83. package/src/components/pure/SingleProcessView.tsx +85 -180
  84. package/src/components/pure/TerminalInput.tsx +73 -0
  85. package/src/components/pure/TerminalLogs.tsx +80 -0
  86. package/src/components/pure/TestPageView.test/specification.ts +1 -0
  87. package/src/components/pure/TestPageView.tsx +308 -912
  88. package/src/components/pure/TestPageView_utils.tsx +287 -0
  89. package/src/components/pure/TestTable.tsx +88 -0
  90. package/src/components/pure/ToastNotification.tsx +19 -0
  91. package/src/components/pure/UserProfile.tsx +44 -0
  92. package/src/components/stateful/AuthCallbackPage.tsx +21 -0
  93. package/src/components/stateful/DratoPage.tsx +457 -0
  94. package/src/components/stateful/FeaturesReporter.tsx +3 -1
  95. package/src/components/stateful/FileTree.tsx +58 -58
  96. package/src/components/stateful/GenericXMLEditor/AttributeEditor.tsx +87 -0
  97. package/src/components/stateful/GenericXMLEditor/Drawer.tsx +174 -0
  98. package/src/components/stateful/GenericXMLEditor/GenericPreview.tsx +160 -0
  99. package/src/components/stateful/GenericXMLEditor/GenericTextEditor.tsx +104 -0
  100. package/src/components/stateful/GenericXMLEditor/GenericTree.tsx +104 -0
  101. package/src/components/stateful/GenericXMLEditorPage.tsx +346 -0
  102. package/src/components/stateful/GitIntegrationPage.tsx +263 -0
  103. package/src/components/stateful/GrafeoPage.tsx +563 -0
  104. package/src/components/stateful/ProcessManagerPage.tsx +13 -17
  105. package/src/components/stateful/ProjectPage.tsx +6 -5
  106. package/src/components/stateful/ProjectsPage.tsx +17 -19
  107. package/src/components/stateful/SVGEditor/CircleForm.tsx +68 -0
  108. package/src/components/stateful/SVGEditor/GroupForm.tsx +56 -0
  109. package/src/components/stateful/SVGEditor/RectForm.tsx +74 -0
  110. package/src/components/stateful/SVGEditor/SVGAttributeField.tsx +29 -0
  111. package/src/components/stateful/SVGEditor/SVGAttributesEditor.tsx +91 -0
  112. package/src/components/stateful/SVGEditor/SVGEditorControls.tsx +45 -0
  113. package/src/components/stateful/SVGEditor/SVGElementForm.tsx +45 -0
  114. package/src/components/stateful/SVGEditor/SVGPreview.tsx +227 -0
  115. package/src/components/stateful/SVGEditor/SVGTextEditor.tsx +166 -0
  116. package/src/components/stateful/SVGEditor/SVGTree.tsx +159 -0
  117. package/src/components/stateful/SVGEditor/SVGTypes.ts +36 -0
  118. package/src/components/stateful/SVGEditor/svg.xsd.xml +3038 -0
  119. package/src/components/stateful/SVGEditorPage.tsx +517 -0
  120. package/src/components/stateful/SingleProcessPage.tsx +133 -144
  121. package/src/components/stateful/SkriboPage.tsx +765 -0
  122. package/src/components/stateful/TestPage.tsx +27 -23
  123. package/src/esbuildConfigs/node.ts +1 -1
  124. package/src/example/go.mod +9 -0
  125. package/src/example/main.go +61 -0
  126. package/src/golingvu/PM/golang_test.go +103 -0
  127. package/src/golingvu/README.md +186 -2
  128. package/src/golingvu/base_given.go +89 -2
  129. package/src/golingvu/base_suite.go +48 -2
  130. package/src/golingvu/go.mod +6 -0
  131. package/src/golingvu/golingvu.go +724 -14
  132. package/src/golingvu/types.go +0 -14
  133. package/src/helpo/directives.md +5 -0
  134. package/src/helpo/prompt.txt +38 -0
  135. package/src/hooks/useGitMode.ts +20 -0
  136. package/src/hooks/useTerminalWebSocket.ts +49 -0
  137. package/src/lib/BaseGiven.ts +126 -28
  138. package/src/lib/BaseSuite.test/mock.ts +16 -10
  139. package/src/lib/BaseSuite.test/test.ts +165 -207
  140. package/src/lib/BaseSuite.ts +52 -10
  141. package/src/lib/BaseThen.ts +34 -38
  142. package/src/lib/BaseWhen.ts +9 -2
  143. package/src/lib/Tiposkripto.test/MockTiposkripto.ts +178 -14
  144. package/src/lib/Tiposkripto.test/Tiposkripto.adapter.ts +9 -14
  145. package/src/lib/Tiposkripto.test/Tiposkripto.implementation.ts +78 -38
  146. package/src/lib/Tiposkripto.test/Tiposkripto.specification.ts +51 -8
  147. package/src/lib/Tiposkripto.test/Tiposkripto.types.ts +5 -0
  148. package/src/lib/Tiposkripto.ts +64 -7
  149. package/src/lib/index.ts +7 -0
  150. package/src/lib/pmProxy.test/specification.ts +168 -166
  151. package/src/lib/pmProxy.ts +55 -18
  152. package/src/pitono/PM/python.py +165 -0
  153. package/src/pitono/Pitono.py +298 -0
  154. package/src/pitono/PitonoTest.py +25 -0
  155. package/src/pitono/README.md +21 -0
  156. package/src/pitono/__init__.py +6 -0
  157. package/{pitono → src/pitono}/base_given.py +42 -20
  158. package/{pitono → src/pitono}/base_suite.py +55 -2
  159. package/{pitono → src/pitono}/base_then.py +15 -1
  160. package/{pitono → src/pitono}/base_when.py +15 -1
  161. package/{pitono → src/pitono}/pitono.egg-info/PKG-INFO +25 -0
  162. package/{pitono → src/pitono}/pitono.egg-info/SOURCES.txt +1 -0
  163. package/src/pitono/types.py +87 -0
  164. package/src/services/FileService.ts +677 -0
  165. package/src/services/GitHubAuthService.ts +240 -0
  166. package/src/testeranto.ts +133 -245
  167. package/src/utils/api.ts +15 -13
  168. package/src/utils/gitTest.ts +29 -0
  169. package/src/utils/golingvuMetafile.ts +822 -118
  170. package/src/utils/golingvuWatcher.ts +285 -0
  171. package/src/utils/logFiles.ts +10 -2
  172. package/src/utils/makePrompt.ts +12 -1
  173. package/src/utils/pitonoMetafile.ts +326 -54
  174. package/src/utils/pitonoWatcher.ts +157 -0
  175. package/src/utils.ts +21 -12
  176. package/testeranto/App.css +171 -120
  177. package/testeranto/App.js +47117 -11727
  178. package/testeranto/bundles/node/core/chunk-MJTSYIAQ.mjs +1099 -0
  179. package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +58 -1147
  180. package/testeranto/bundles/node/core/src/lib/TipoSkripto.test/TipoSkripto.mjs +572 -0
  181. package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +4795 -0
  182. package/testeranto/bundles/pure/core/chunk-6HR24P27.mjs +1003 -0
  183. package/testeranto/bundles/pure/core/src/Pure.test.mjs +410 -0
  184. package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +57 -1062
  185. package/testeranto/bundles/web/core/MPLUSRounded1c-Black-O75GP5JI.ttf +0 -0
  186. package/testeranto/bundles/web/core/MPLUSRounded1c-Bold-R524Q5BH.ttf +0 -0
  187. package/testeranto/bundles/web/core/MPLUSRounded1c-ExtraBold-C6GRMYVT.ttf +0 -0
  188. package/testeranto/bundles/web/core/MPLUSRounded1c-Light-WKN65Y2C.ttf +0 -0
  189. package/testeranto/bundles/web/core/MPLUSRounded1c-Medium-ZC4DWL7C.ttf +0 -0
  190. package/testeranto/bundles/web/core/MPLUSRounded1c-Regular-DT6EKZ3S.ttf +0 -0
  191. package/testeranto/bundles/web/core/MPLUSRounded1c-Thin-YWDNVG6M.ttf +0 -0
  192. package/testeranto/bundles/web/core/chunk-AZZHJNSU.mjs +30278 -0
  193. package/testeranto/bundles/web/core/chunk-ME6I6FJZ.mjs +3005 -0
  194. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.html +15 -0
  195. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +162 -0
  196. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +11619 -0
  197. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.html +15 -0
  198. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +6924 -0
  199. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +71 -1050
  200. package/testeranto/helpo_chat_history.json +1 -0
  201. package/testeranto/metafiles/golang/core.json +42 -47
  202. package/testeranto/metafiles/node/core.json +584 -125
  203. package/testeranto/metafiles/pure/core.json +152 -51
  204. package/testeranto/metafiles/python/core.json +87 -0
  205. package/testeranto/metafiles/web/core.json +16365 -75
  206. package/testeranto/reports/core/config.json +66 -2
  207. package/testeranto/reports/core/example/Calculator.golingvu/golang/exit.log +1 -0
  208. package/testeranto/reports/core/example/Calculator.golingvu/golang/stderr.log +2 -0
  209. package/testeranto/reports/core/example/Calculator.golingvu/golang/stdout.log +1 -0
  210. package/testeranto/reports/core/example/Calculator.pitono.test/python/exit.log +1 -0
  211. package/testeranto/reports/core/example/Calculator.pitono.test/python/stderr.log +11 -0
  212. package/testeranto/reports/core/example/Calculator.pitono.test/python/stdout.log +1 -0
  213. package/testeranto/reports/core/example/Calculator.test/node/exit.log +1 -0
  214. package/testeranto/reports/core/example/Calculator.test/node/lint_errors.txt +2 -0
  215. package/testeranto/reports/core/example/Calculator.test/node/message.txt +16 -0
  216. package/testeranto/reports/core/example/Calculator.test/node/prompt.txt +13 -0
  217. package/testeranto/reports/core/example/Calculator.test/node/stderr.log +33 -0
  218. package/testeranto/reports/core/example/Calculator.test/node/stdout.log +1076 -0
  219. package/testeranto/reports/core/example/Calculator.test/node/tests.json +1109 -0
  220. package/testeranto/reports/core/example/Calculator.test/node/type_errors.txt +34 -0
  221. package/testeranto/reports/core/example/test_example/python/exit.log +1 -0
  222. package/testeranto/reports/core/example/test_example/python/stderr.log +24 -0
  223. package/testeranto/reports/core/src/Pure.test/pure/message.txt +16 -0
  224. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +13 -0
  225. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +86 -0
  226. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +0 -0
  227. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +0 -0
  228. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/lint_errors.txt +0 -0
  229. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/message.txt +17 -0
  230. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/prompt.txt +26 -0
  231. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/type_errors.txt +69 -0
  232. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
  233. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/debug.log +0 -0
  234. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/error.log +0 -0
  235. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/exit.log +0 -0
  236. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/info.log +0 -0
  237. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/lint_errors.txt +16 -0
  238. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/message.txt +17 -0
  239. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/prompt.txt +27 -0
  240. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/type_errors.txt +42 -0
  241. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/warn.log +0 -0
  242. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
  243. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +0 -0
  244. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +0 -0
  245. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +0 -0
  246. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +30 -0
  247. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +17 -0
  248. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +30 -0
  249. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +58 -0
  250. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
  251. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/exit.log +1 -1
  252. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -6
  253. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +9 -12
  254. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stderr.log +1 -0
  255. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +4 -0
  256. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +99 -8
  257. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +57 -44
  258. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -2
  259. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/message.txt +1 -2
  260. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +4 -16
  261. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +62 -44
  262. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/error.log +0 -1
  263. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/exit.log +0 -1
  264. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -2
  265. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +13 -13
  266. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +57 -44
  267. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/exit.log +1 -0
  268. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/lint_errors.txt +0 -0
  269. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/message.txt +16 -0
  270. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/prompt.txt +13 -0
  271. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stderr.log +88 -0
  272. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stdout.log +521 -0
  273. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/tests.json +166 -0
  274. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/type_errors.txt +78 -0
  275. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +1 -0
  276. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +15 -0
  277. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +17 -0
  278. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +25 -0
  279. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +0 -0
  280. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +2 -0
  281. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/tests.json +31 -0
  282. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +62 -0
  283. package/testeranto/reports/core/summary.json +66 -11
  284. package/testeranto.config.ts +38 -44
  285. package/tsc.log +141 -91
  286. package/tsconfig.json +6 -2
  287. package/dist/cjs-shim.js +0 -12
  288. package/dist/common/design-editor/DesignEditor.js +0 -242
  289. package/dist/common/design-editor/index.js +0 -18
  290. package/dist/common/design-editor/server.js +0 -98
  291. package/dist/common/design-editor/types.js +0 -2
  292. package/dist/common/package.json +0 -3
  293. package/dist/common/src/App.js +0 -77
  294. package/dist/common/src/CoreTypes.js +0 -2
  295. package/dist/common/src/Init.js +0 -48
  296. package/dist/common/src/Node.js +0 -40
  297. package/dist/common/src/NodeSidecar.js +0 -15
  298. package/dist/common/src/PM/PM_WithEslintAndTsc.js +0 -192
  299. package/dist/common/src/PM/__tests__/nodeSidecar.testeranto.js +0 -108
  300. package/dist/common/src/PM/__tests__/pureSidecar.testeranto.js +0 -93
  301. package/dist/common/src/PM/__tests__/webSidecar.testeranto.js +0 -93
  302. package/dist/common/src/PM/base.js +0 -257
  303. package/dist/common/src/PM/index.js +0 -6
  304. package/dist/common/src/PM/main.js +0 -1815
  305. package/dist/common/src/PM/node.js +0 -185
  306. package/dist/common/src/PM/nodeSidecar.js +0 -65
  307. package/dist/common/src/PM/pitonoRunner.js +0 -54
  308. package/dist/common/src/PM/pure.js +0 -111
  309. package/dist/common/src/PM/pureSidecar.js +0 -48
  310. package/dist/common/src/PM/sidecar.js +0 -11
  311. package/dist/common/src/PM/types.js +0 -1
  312. package/dist/common/src/PM/web.js +0 -112
  313. package/dist/common/src/PM/webSidecar.js +0 -47
  314. package/dist/common/src/Pure.js +0 -52
  315. package/dist/common/src/Pure.test.js +0 -180
  316. package/dist/common/src/PureSidecar.js +0 -13
  317. package/dist/common/src/ReportServer.js +0 -11
  318. package/dist/common/src/ReportServer.test.ts/index.js +0 -78
  319. package/dist/common/src/ReportServerLib.js +0 -141
  320. package/dist/common/src/Types.js +0 -2
  321. package/dist/common/src/Web.js +0 -61
  322. package/dist/common/src/WebSidecar.js +0 -14
  323. package/dist/common/src/components/DesignEditorPage.js +0 -205
  324. package/dist/common/src/components/SunriseAnimation.js +0 -291
  325. package/dist/common/src/components/SunriseAnimation.test/implementation.js +0 -1
  326. package/dist/common/src/components/SunriseAnimation.test/index.js +0 -1
  327. package/dist/common/src/components/SunriseAnimation.test/interface.js +0 -68
  328. package/dist/common/src/components/SunriseAnimation.test/specification.js +0 -1
  329. package/dist/common/src/components/SunriseAnimation.test/types.js +0 -2
  330. package/dist/common/src/components/TestStatusBadge.js +0 -35
  331. package/dist/common/src/components/pure/AppFrame.js +0 -69
  332. package/dist/common/src/components/pure/AppFrame.test/implementation.js +0 -63
  333. package/dist/common/src/components/pure/AppFrame.test/index.js +0 -14
  334. package/dist/common/src/components/pure/AppFrame.test/specification.js +0 -25
  335. package/dist/common/src/components/pure/AppFrame.test/types.js +0 -3
  336. package/dist/common/src/components/pure/FeaturesReporterView.js +0 -23
  337. package/dist/common/src/components/pure/FeaturesReporterView.test/implementation.js +0 -84
  338. package/dist/common/src/components/pure/FeaturesReporterView.test/index.js +0 -14
  339. package/dist/common/src/components/pure/FeaturesReporterView.test/specification.js +0 -27
  340. package/dist/common/src/components/pure/FeaturesReporterView.test/types.js +0 -2
  341. package/dist/common/src/components/pure/ModalContent.js +0 -86
  342. package/dist/common/src/components/pure/ModalContent.test/implementation.js +0 -35
  343. package/dist/common/src/components/pure/ModalContent.test/index.js +0 -58
  344. package/dist/common/src/components/pure/ModalContent.test/specification.js +0 -19
  345. package/dist/common/src/components/pure/ModalContent.test/types.js +0 -4
  346. package/dist/common/src/components/pure/NavBar.js +0 -44
  347. package/dist/common/src/components/pure/ProcessManager.js +0 -112
  348. package/dist/common/src/components/pure/ProcessManagerView.js +0 -237
  349. package/dist/common/src/components/pure/ProjectPageView.js +0 -181
  350. package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +0 -184
  351. package/dist/common/src/components/pure/ProjectPageView.test/index.js +0 -14
  352. package/dist/common/src/components/pure/ProjectPageView.test/specification.js +0 -32
  353. package/dist/common/src/components/pure/ProjectPageView.test/types.js +0 -4
  354. package/dist/common/src/components/pure/ProjectsPageView.js +0 -72
  355. package/dist/common/src/components/pure/SettingsButton.js +0 -13
  356. package/dist/common/src/components/pure/SingleProcessView.js +0 -214
  357. package/dist/common/src/components/pure/TestPageView.js +0 -628
  358. package/dist/common/src/components/pure/TestPageView.test/implementation.js +0 -157
  359. package/dist/common/src/components/pure/TestPageView.test/index.js +0 -15
  360. package/dist/common/src/components/pure/TestPageView.test/specification.js +0 -26
  361. package/dist/common/src/components/pure/TestPageView.test/types.js +0 -4
  362. package/dist/common/src/components/pure/ThemeCard.js +0 -15
  363. package/dist/common/src/components/stateful/FeaturesReporter.js +0 -59
  364. package/dist/common/src/components/stateful/FileTree.js +0 -40
  365. package/dist/common/src/components/stateful/ProcessManagerPage.js +0 -112
  366. package/dist/common/src/components/stateful/ProjectPage.js +0 -101
  367. package/dist/common/src/components/stateful/ProjectsPage.js +0 -118
  368. package/dist/common/src/components/stateful/SettingsPage.js +0 -72
  369. package/dist/common/src/components/stateful/SingleProcessPage.js +0 -147
  370. package/dist/common/src/components/stateful/TestPage.js +0 -268
  371. package/dist/common/src/components/stateful/TextEditorPage.js +0 -154
  372. package/dist/common/src/defaultConfig.js +0 -19
  373. package/dist/common/src/esbuildConfigs/consoleDetectorPlugin.js +0 -38
  374. package/dist/common/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -21
  375. package/dist/common/src/esbuildConfigs/featuresPlugin.js +0 -39
  376. package/dist/common/src/esbuildConfigs/index.js +0 -21
  377. package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -30
  378. package/dist/common/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -24
  379. package/dist/common/src/esbuildConfigs/node.js +0 -24
  380. package/dist/common/src/esbuildConfigs/pure.js +0 -42
  381. package/dist/common/src/esbuildConfigs/rebuildPlugin.js +0 -19
  382. package/dist/common/src/esbuildConfigs/web.js +0 -48
  383. package/dist/common/src/init-docs.js +0 -9
  384. package/dist/common/src/lib/BaseGiven.js +0 -99
  385. package/dist/common/src/lib/BaseSuite.js +0 -91
  386. package/dist/common/src/lib/BaseSuite.test/mock.js +0 -61
  387. package/dist/common/src/lib/BaseSuite.test/node.test.js +0 -10
  388. package/dist/common/src/lib/BaseSuite.test/pure.test.js +0 -10
  389. package/dist/common/src/lib/BaseSuite.test/test.js +0 -253
  390. package/dist/common/src/lib/BaseSuite.test/web.test.js +0 -10
  391. package/dist/common/src/lib/BaseThen.js +0 -64
  392. package/dist/common/src/lib/BaseWhen.js +0 -45
  393. package/dist/common/src/lib/Sidecar.js +0 -7
  394. package/dist/common/src/lib/Tiposkripto.js +0 -149
  395. package/dist/common/src/lib/Tiposkripto.test/MockTiposkripto.js +0 -36
  396. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +0 -35
  397. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +0 -173
  398. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.js +0 -11
  399. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.specification.js +0 -42
  400. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.types.js +0 -2
  401. package/dist/common/src/lib/abstractBase.test/MockGiven.js +0 -24
  402. package/dist/common/src/lib/abstractBase.test/MockThen.js +0 -16
  403. package/dist/common/src/lib/abstractBase.test/MockWhen.js +0 -20
  404. package/dist/common/src/lib/abstractBase.test/adapter.js +0 -24
  405. package/dist/common/src/lib/abstractBase.test/implementation.js +0 -38
  406. package/dist/common/src/lib/abstractBase.test/index.js +0 -18
  407. package/dist/common/src/lib/abstractBase.test/specification.js +0 -19
  408. package/dist/common/src/lib/abstractBase.test/types.js +0 -2
  409. package/dist/common/src/lib/index.js +0 -31
  410. package/dist/common/src/lib/pmProxy.js +0 -293
  411. package/dist/common/src/lib/pmProxy.test/adapter.js +0 -54
  412. package/dist/common/src/lib/pmProxy.test/implementation.js +0 -137
  413. package/dist/common/src/lib/pmProxy.test/index.js +0 -15
  414. package/dist/common/src/lib/pmProxy.test/mockPM.js +0 -34
  415. package/dist/common/src/lib/pmProxy.test/mockPMBase.js +0 -131
  416. package/dist/common/src/lib/pmProxy.test/specification.js +0 -64
  417. package/dist/common/src/lib/pmProxy.test/types.js +0 -2
  418. package/dist/common/src/lib/types.js +0 -3
  419. package/dist/common/src/mothership/index.js +0 -21
  420. package/dist/common/src/mothership/test.js +0 -83
  421. package/dist/common/src/run.js +0 -49
  422. package/dist/common/src/testeranto.js +0 -283
  423. package/dist/common/src/types/features.js +0 -34
  424. package/dist/common/src/utils/api.js +0 -89
  425. package/dist/common/src/utils/buildTemplates.js +0 -37
  426. package/dist/common/src/utils/featureUtils.js +0 -29
  427. package/dist/common/src/utils/golingvuMetafile.js +0 -116
  428. package/dist/common/src/utils/logFiles.js +0 -52
  429. package/dist/common/src/utils/makePrompt.js +0 -116
  430. package/dist/common/src/utils/pitonoMetafile.js +0 -67
  431. package/dist/common/src/utils/queue.js +0 -36
  432. package/dist/common/src/utils.js +0 -133
  433. package/dist/common/src/web.html.js +0 -18
  434. package/dist/common/testeranto.config.js +0 -98
  435. package/dist/common/tsconfig.common.tsbuildinfo +0 -1
  436. package/dist/module/design-editor/DesignEditor.js +0 -206
  437. package/dist/module/design-editor/index.js +0 -2
  438. package/dist/module/design-editor/server.js +0 -92
  439. package/dist/module/design-editor/types.js +0 -1
  440. package/dist/module/package.json +0 -3
  441. package/dist/module/src/App.js +0 -70
  442. package/dist/module/src/CoreTypes.js +0 -1
  443. package/dist/module/src/Init.js +0 -43
  444. package/dist/module/src/Node.js +0 -33
  445. package/dist/module/src/NodeSidecar.js +0 -11
  446. package/dist/module/src/PM/PM_WithEslintAndTsc.js +0 -185
  447. package/dist/module/src/PM/__tests__/nodeSidecar.testeranto.js +0 -103
  448. package/dist/module/src/PM/__tests__/pureSidecar.testeranto.js +0 -88
  449. package/dist/module/src/PM/__tests__/webSidecar.testeranto.js +0 -88
  450. package/dist/module/src/PM/base.js +0 -250
  451. package/dist/module/src/PM/index.js +0 -2
  452. package/dist/module/src/PM/main.js +0 -1775
  453. package/dist/module/src/PM/node.js +0 -178
  454. package/dist/module/src/PM/nodeSidecar.js +0 -58
  455. package/dist/module/src/PM/pitonoRunner.js +0 -47
  456. package/dist/module/src/PM/pure.js +0 -107
  457. package/dist/module/src/PM/pureSidecar.js +0 -41
  458. package/dist/module/src/PM/sidecar.js +0 -7
  459. package/dist/module/src/PM/types.js +0 -1
  460. package/dist/module/src/PM/web.js +0 -108
  461. package/dist/module/src/PM/webSidecar.js +0 -40
  462. package/dist/module/src/Pure.js +0 -45
  463. package/dist/module/src/Pure.test.js +0 -175
  464. package/dist/module/src/PureSidecar.js +0 -9
  465. package/dist/module/src/ReportServer.js +0 -9
  466. package/dist/module/src/ReportServer.test.ts/index.js +0 -73
  467. package/dist/module/src/ReportServerLib.js +0 -134
  468. package/dist/module/src/Types.js +0 -1
  469. package/dist/module/src/Web.js +0 -54
  470. package/dist/module/src/WebSidecar.js +0 -10
  471. package/dist/module/src/components/DesignEditorPage.js +0 -168
  472. package/dist/module/src/components/SunriseAnimation.js +0 -256
  473. package/dist/module/src/components/SunriseAnimation.test/implementation.js +0 -1
  474. package/dist/module/src/components/SunriseAnimation.test/index.js +0 -1
  475. package/dist/module/src/components/SunriseAnimation.test/interface.js +0 -32
  476. package/dist/module/src/components/SunriseAnimation.test/specification.js +0 -1
  477. package/dist/module/src/components/SunriseAnimation.test/types.js +0 -1
  478. package/dist/module/src/components/TestStatusBadge.js +0 -28
  479. package/dist/module/src/components/pure/AppFrame.js +0 -32
  480. package/dist/module/src/components/pure/AppFrame.test/implementation.js +0 -57
  481. package/dist/module/src/components/pure/AppFrame.test/index.js +0 -9
  482. package/dist/module/src/components/pure/AppFrame.test/specification.js +0 -21
  483. package/dist/module/src/components/pure/AppFrame.test/types.js +0 -2
  484. package/dist/module/src/components/pure/FeaturesReporterView.js +0 -16
  485. package/dist/module/src/components/pure/FeaturesReporterView.test/implementation.js +0 -81
  486. package/dist/module/src/components/pure/FeaturesReporterView.test/index.js +0 -9
  487. package/dist/module/src/components/pure/FeaturesReporterView.test/specification.js +0 -23
  488. package/dist/module/src/components/pure/FeaturesReporterView.test/types.js +0 -1
  489. package/dist/module/src/components/pure/ModalContent.js +0 -79
  490. package/dist/module/src/components/pure/ModalContent.test/implementation.js +0 -32
  491. package/dist/module/src/components/pure/ModalContent.test/index.js +0 -53
  492. package/dist/module/src/components/pure/ModalContent.test/specification.js +0 -15
  493. package/dist/module/src/components/pure/ModalContent.test/types.js +0 -3
  494. package/dist/module/src/components/pure/NavBar.js +0 -37
  495. package/dist/module/src/components/pure/ProcessManager.js +0 -75
  496. package/dist/module/src/components/pure/ProcessManagerView.js +0 -200
  497. package/dist/module/src/components/pure/ProjectPageView.js +0 -174
  498. package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +0 -181
  499. package/dist/module/src/components/pure/ProjectPageView.test/index.js +0 -9
  500. package/dist/module/src/components/pure/ProjectPageView.test/specification.js +0 -28
  501. package/dist/module/src/components/pure/ProjectPageView.test/types.js +0 -3
  502. package/dist/module/src/components/pure/ProjectsPageView.js +0 -65
  503. package/dist/module/src/components/pure/SettingsButton.js +0 -6
  504. package/dist/module/src/components/pure/SingleProcessView.js +0 -214
  505. package/dist/module/src/components/pure/TestPageView.js +0 -591
  506. package/dist/module/src/components/pure/TestPageView.test/implementation.js +0 -121
  507. package/dist/module/src/components/pure/TestPageView.test/index.js +0 -10
  508. package/dist/module/src/components/pure/TestPageView.test/specification.js +0 -22
  509. package/dist/module/src/components/pure/TestPageView.test/types.js +0 -3
  510. package/dist/module/src/components/pure/ThemeCard.js +0 -8
  511. package/dist/module/src/components/stateful/FeaturesReporter.js +0 -22
  512. package/dist/module/src/components/stateful/FileTree.js +0 -33
  513. package/dist/module/src/components/stateful/ProcessManagerPage.js +0 -75
  514. package/dist/module/src/components/stateful/ProjectPage.js +0 -64
  515. package/dist/module/src/components/stateful/ProjectsPage.js +0 -81
  516. package/dist/module/src/components/stateful/SettingsPage.js +0 -35
  517. package/dist/module/src/components/stateful/SingleProcessPage.js +0 -110
  518. package/dist/module/src/components/stateful/TestPage.js +0 -231
  519. package/dist/module/src/components/stateful/TextEditorPage.js +0 -117
  520. package/dist/module/src/defaultConfig.js +0 -17
  521. package/dist/module/src/esbuildConfigs/consoleDetectorPlugin.js +0 -32
  522. package/dist/module/src/esbuildConfigs/eslint-formatter-testeranto.js +0 -18
  523. package/dist/module/src/esbuildConfigs/featuresPlugin.js +0 -34
  524. package/dist/module/src/esbuildConfigs/index.js +0 -19
  525. package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -25
  526. package/dist/module/src/esbuildConfigs/nativeImportDetectorPlugin.js +0 -21
  527. package/dist/module/src/esbuildConfigs/node.js +0 -19
  528. package/dist/module/src/esbuildConfigs/pure.js +0 -37
  529. package/dist/module/src/esbuildConfigs/rebuildPlugin.js +0 -14
  530. package/dist/module/src/esbuildConfigs/web.js +0 -43
  531. package/dist/module/src/init-docs.js +0 -4
  532. package/dist/module/src/lib/BaseGiven.js +0 -95
  533. package/dist/module/src/lib/BaseSuite.js +0 -87
  534. package/dist/module/src/lib/BaseSuite.test/mock.js +0 -54
  535. package/dist/module/src/lib/BaseSuite.test/node.test.js +0 -5
  536. package/dist/module/src/lib/BaseSuite.test/pure.test.js +0 -5
  537. package/dist/module/src/lib/BaseSuite.test/test.js +0 -249
  538. package/dist/module/src/lib/BaseSuite.test/web.test.js +0 -5
  539. package/dist/module/src/lib/BaseThen.js +0 -60
  540. package/dist/module/src/lib/BaseWhen.js +0 -41
  541. package/dist/module/src/lib/Sidecar.js +0 -3
  542. package/dist/module/src/lib/Tiposkripto.js +0 -146
  543. package/dist/module/src/lib/Tiposkripto.test/MockTiposkripto.js +0 -29
  544. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +0 -32
  545. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +0 -170
  546. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.js +0 -6
  547. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.specification.js +0 -38
  548. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.types.js +0 -1
  549. package/dist/module/src/lib/abstractBase.test/MockGiven.js +0 -20
  550. package/dist/module/src/lib/abstractBase.test/MockThen.js +0 -12
  551. package/dist/module/src/lib/abstractBase.test/MockWhen.js +0 -16
  552. package/dist/module/src/lib/abstractBase.test/adapter.js +0 -21
  553. package/dist/module/src/lib/abstractBase.test/implementation.js +0 -35
  554. package/dist/module/src/lib/abstractBase.test/index.js +0 -13
  555. package/dist/module/src/lib/abstractBase.test/specification.js +0 -15
  556. package/dist/module/src/lib/abstractBase.test/types.js +0 -1
  557. package/dist/module/src/lib/index.js +0 -26
  558. package/dist/module/src/lib/pmProxy.js +0 -284
  559. package/dist/module/src/lib/pmProxy.test/adapter.js +0 -51
  560. package/dist/module/src/lib/pmProxy.test/implementation.js +0 -134
  561. package/dist/module/src/lib/pmProxy.test/index.js +0 -10
  562. package/dist/module/src/lib/pmProxy.test/mockPM.js +0 -30
  563. package/dist/module/src/lib/pmProxy.test/mockPMBase.js +0 -127
  564. package/dist/module/src/lib/pmProxy.test/specification.js +0 -60
  565. package/dist/module/src/lib/pmProxy.test/types.js +0 -1
  566. package/dist/module/src/lib/types.js +0 -2
  567. package/dist/module/src/mothership/index.js +0 -16
  568. package/dist/module/src/mothership/test.js +0 -78
  569. package/dist/module/src/run.js +0 -49
  570. package/dist/module/src/testeranto.js +0 -245
  571. package/dist/module/src/types/features.js +0 -31
  572. package/dist/module/src/utils/api.js +0 -84
  573. package/dist/module/src/utils/buildTemplates.js +0 -33
  574. package/dist/module/src/utils/featureUtils.js +0 -24
  575. package/dist/module/src/utils/golingvuMetafile.js +0 -109
  576. package/dist/module/src/utils/logFiles.js +0 -47
  577. package/dist/module/src/utils/makePrompt.js +0 -109
  578. package/dist/module/src/utils/pitonoMetafile.js +0 -60
  579. package/dist/module/src/utils/queue.js +0 -32
  580. package/dist/module/src/utils.js +0 -121
  581. package/dist/module/src/web.html.js +0 -16
  582. package/dist/module/testeranto.config.js +0 -96
  583. package/dist/module/tsconfig.module.tsbuildinfo +0 -1
  584. package/dist/types/design-editor/DesignEditor.d.ts +0 -18
  585. package/dist/types/design-editor/server.d.ts +0 -1
  586. package/dist/types/src/App.d.ts +0 -1
  587. package/dist/types/src/CoreTypes.d.ts +0 -52
  588. package/dist/types/src/Init.d.ts +0 -2
  589. package/dist/types/src/Node.d.ts +0 -9
  590. package/dist/types/src/NodeSidecar.d.ts +0 -6
  591. package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +0 -24
  592. package/dist/types/src/PM/__tests__/nodeSidecar.testeranto.d.ts +0 -2
  593. package/dist/types/src/PM/__tests__/pureSidecar.testeranto.d.ts +0 -2
  594. package/dist/types/src/PM/__tests__/webSidecar.testeranto.d.ts +0 -2
  595. package/dist/types/src/PM/base.d.ts +0 -35
  596. package/dist/types/src/PM/index.d.ts +0 -37
  597. package/dist/types/src/PM/main.d.ts +0 -79
  598. package/dist/types/src/PM/node.d.ts +0 -40
  599. package/dist/types/src/PM/nodeSidecar.d.ts +0 -13
  600. package/dist/types/src/PM/pitonoRunner.d.ts +0 -7
  601. package/dist/types/src/PM/pure.d.ts +0 -43
  602. package/dist/types/src/PM/pureSidecar.d.ts +0 -11
  603. package/dist/types/src/PM/sidecar.d.ts +0 -8
  604. package/dist/types/src/PM/web.d.ts +0 -43
  605. package/dist/types/src/PM/webSidecar.d.ts +0 -11
  606. package/dist/types/src/Pure.d.ts +0 -9
  607. package/dist/types/src/Pure.test.d.ts +0 -2
  608. package/dist/types/src/PureSidecar.d.ts +0 -8
  609. package/dist/types/src/ReportServer.d.ts +0 -1
  610. package/dist/types/src/ReportServer.test.ts/index.d.ts +0 -2
  611. package/dist/types/src/ReportServerLib.d.ts +0 -1
  612. package/dist/types/src/Types.d.ts +0 -118
  613. package/dist/types/src/Web.d.ts +0 -9
  614. package/dist/types/src/WebSidecar.d.ts +0 -8
  615. package/dist/types/src/components/DesignEditorPage.d.ts +0 -1
  616. package/dist/types/src/components/SunriseAnimation.d.ts +0 -5
  617. package/dist/types/src/components/SunriseAnimation.test/interface.d.ts +0 -11
  618. package/dist/types/src/components/SunriseAnimation.test/types.d.ts +0 -39
  619. package/dist/types/src/components/TestStatusBadge.d.ts +0 -15
  620. package/dist/types/src/components/pure/AppFrame.d.ts +0 -11
  621. package/dist/types/src/components/pure/AppFrame.test/implementation.d.ts +0 -3
  622. package/dist/types/src/components/pure/AppFrame.test/index.d.ts +0 -3
  623. package/dist/types/src/components/pure/AppFrame.test/specification.d.ts +0 -3
  624. package/dist/types/src/components/pure/AppFrame.test/types.d.ts +0 -33
  625. package/dist/types/src/components/pure/FeaturesReporterView.d.ts +0 -7
  626. package/dist/types/src/components/pure/FeaturesReporterView.test/implementation.d.ts +0 -3
  627. package/dist/types/src/components/pure/FeaturesReporterView.test/index.d.ts +0 -2
  628. package/dist/types/src/components/pure/FeaturesReporterView.test/specification.d.ts +0 -3
  629. package/dist/types/src/components/pure/FeaturesReporterView.test/types.d.ts +0 -54
  630. package/dist/types/src/components/pure/ModalContent.d.ts +0 -7
  631. package/dist/types/src/components/pure/ModalContent.test/implementation.d.ts +0 -3
  632. package/dist/types/src/components/pure/ModalContent.test/index.d.ts +0 -2
  633. package/dist/types/src/components/pure/ModalContent.test/specification.d.ts +0 -3
  634. package/dist/types/src/components/pure/ModalContent.test/types.d.ts +0 -45
  635. package/dist/types/src/components/pure/NavBar.d.ts +0 -23
  636. package/dist/types/src/components/pure/ProcessManager.d.ts +0 -8
  637. package/dist/types/src/components/pure/ProcessManagerView.d.ts +0 -20
  638. package/dist/types/src/components/pure/ProjectPageView.d.ts +0 -14
  639. package/dist/types/src/components/pure/ProjectPageView.test/implementation.d.ts +0 -3
  640. package/dist/types/src/components/pure/ProjectPageView.test/index.d.ts +0 -2
  641. package/dist/types/src/components/pure/ProjectPageView.test/specification.d.ts +0 -3
  642. package/dist/types/src/components/pure/ProjectPageView.test/types.d.ts +0 -57
  643. package/dist/types/src/components/pure/ProjectsPageView.d.ts +0 -29
  644. package/dist/types/src/components/pure/SettingsButton.d.ts +0 -2
  645. package/dist/types/src/components/pure/TestPageView.d.ts +0 -15
  646. package/dist/types/src/components/pure/TestPageView.test/implementation.d.ts +0 -12
  647. package/dist/types/src/components/pure/TestPageView.test/index.d.ts +0 -3
  648. package/dist/types/src/components/pure/TestPageView.test/specification.d.ts +0 -11
  649. package/dist/types/src/components/pure/TestPageView.test/types.d.ts +0 -65
  650. package/dist/types/src/components/pure/ThemeCard.d.ts +0 -9
  651. package/dist/types/src/components/stateful/FeaturesReporter.d.ts +0 -2
  652. package/dist/types/src/components/stateful/FileTree.d.ts +0 -8
  653. package/dist/types/src/components/stateful/ProcessManagerPage.d.ts +0 -2
  654. package/dist/types/src/components/stateful/ProjectPage.d.ts +0 -1
  655. package/dist/types/src/components/stateful/ProjectsPage.d.ts +0 -1
  656. package/dist/types/src/components/stateful/SettingsPage.d.ts +0 -2
  657. package/dist/types/src/components/stateful/SingleProcessPage.d.ts +0 -2
  658. package/dist/types/src/components/stateful/TestPage.d.ts +0 -1
  659. package/dist/types/src/components/stateful/TextEditorPage.d.ts +0 -1
  660. package/dist/types/src/defaultConfig.d.ts +0 -3
  661. package/dist/types/src/esbuildConfigs/consoleDetectorPlugin.d.ts +0 -2
  662. package/dist/types/src/esbuildConfigs/eslint-formatter-testeranto.d.ts +0 -2
  663. package/dist/types/src/esbuildConfigs/featuresPlugin.d.ts +0 -5
  664. package/dist/types/src/esbuildConfigs/index.d.ts +0 -4
  665. package/dist/types/src/esbuildConfigs/inputFilesPlugin.d.ts +0 -7
  666. package/dist/types/src/esbuildConfigs/nativeImportDetectorPlugin.d.ts +0 -2
  667. package/dist/types/src/esbuildConfigs/node.d.ts +0 -4
  668. package/dist/types/src/esbuildConfigs/pure.d.ts +0 -4
  669. package/dist/types/src/esbuildConfigs/rebuildPlugin.d.ts +0 -6
  670. package/dist/types/src/esbuildConfigs/web.d.ts +0 -4
  671. package/dist/types/src/init-docs.d.ts +0 -1
  672. package/dist/types/src/lib/BaseGiven.d.ts +0 -44
  673. package/dist/types/src/lib/BaseSuite.d.ts +0 -46
  674. package/dist/types/src/lib/BaseSuite.test/mock.d.ts +0 -21
  675. package/dist/types/src/lib/BaseSuite.test/node.test.d.ts +0 -2
  676. package/dist/types/src/lib/BaseSuite.test/pure.test.d.ts +0 -2
  677. package/dist/types/src/lib/BaseSuite.test/test.d.ts +0 -36
  678. package/dist/types/src/lib/BaseSuite.test/web.test.d.ts +0 -2
  679. package/dist/types/src/lib/BaseThen.d.ts +0 -27
  680. package/dist/types/src/lib/BaseWhen.d.ts +0 -27
  681. package/dist/types/src/lib/Sidecar.d.ts +0 -5
  682. package/dist/types/src/lib/Tiposkripto.d.ts +0 -35
  683. package/dist/types/src/lib/Tiposkripto.test/MockTiposkripto.d.ts +0 -15
  684. package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.adapter.d.ts +0 -3
  685. package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.d.ts +0 -2
  686. package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.implementation.d.ts +0 -3
  687. package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.specification.d.ts +0 -3
  688. package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.types.d.ts +0 -53
  689. package/dist/types/src/lib/abstractBase.test/MockGiven.d.ts +0 -9
  690. package/dist/types/src/lib/abstractBase.test/MockThen.d.ts +0 -6
  691. package/dist/types/src/lib/abstractBase.test/MockWhen.d.ts +0 -6
  692. package/dist/types/src/lib/abstractBase.test/adapter.d.ts +0 -3
  693. package/dist/types/src/lib/abstractBase.test/implementation.d.ts +0 -3
  694. package/dist/types/src/lib/abstractBase.test/index.d.ts +0 -2
  695. package/dist/types/src/lib/abstractBase.test/specification.d.ts +0 -3
  696. package/dist/types/src/lib/abstractBase.test/types.d.ts +0 -39
  697. package/dist/types/src/lib/index.d.ts +0 -67
  698. package/dist/types/src/lib/pmProxy.d.ts +0 -12
  699. package/dist/types/src/lib/pmProxy.test/adapter.d.ts +0 -3
  700. package/dist/types/src/lib/pmProxy.test/implementation.d.ts +0 -3
  701. package/dist/types/src/lib/pmProxy.test/index.d.ts +0 -6
  702. package/dist/types/src/lib/pmProxy.test/mockPM.d.ts +0 -10
  703. package/dist/types/src/lib/pmProxy.test/mockPMBase.d.ts +0 -40
  704. package/dist/types/src/lib/pmProxy.test/specification.d.ts +0 -3
  705. package/dist/types/src/lib/pmProxy.test/types.d.ts +0 -42
  706. package/dist/types/src/lib/types.d.ts +0 -24
  707. package/dist/types/src/mothership/index.d.ts +0 -2
  708. package/dist/types/src/mothership/test.d.ts +0 -2
  709. package/dist/types/src/testeranto.d.ts +0 -1
  710. package/dist/types/src/types/features.d.ts +0 -7
  711. package/dist/types/src/utils/api.d.ts +0 -9
  712. package/dist/types/src/utils/buildTemplates.d.ts +0 -1
  713. package/dist/types/src/utils/featureUtils.d.ts +0 -6
  714. package/dist/types/src/utils/golingvuMetafile.d.ts +0 -19
  715. package/dist/types/src/utils/logFiles.d.ts +0 -75
  716. package/dist/types/src/utils/makePrompt.d.ts +0 -2
  717. package/dist/types/src/utils/pitonoMetafile.d.ts +0 -7
  718. package/dist/types/src/utils/queue.d.ts +0 -11
  719. package/dist/types/src/utils.d.ts +0 -20
  720. package/dist/types/src/web.html.d.ts +0 -2
  721. package/dist/types/tsconfig.types.tsbuildinfo +0 -1
  722. package/pitono/__init__.py +0 -54
  723. package/pitono/types.py +0 -78
  724. package/src/golingvu/base_suite_test.go +0 -197
  725. package/src/templates/frontpage.html +0 -340
  726. package/src/templates/frontpage.md +0 -79
  727. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +0 -29
  728. /package/{pitono → src/pitono}/core_generator.py +0 -0
  729. /package/{pitono → src/pitono}/pitono.egg-info/dependency_links.txt +0 -0
  730. /package/{pitono → src/pitono}/pitono.egg-info/entry_points.txt +0 -0
  731. /package/{pitono → src/pitono}/pitono.egg-info/top_level.txt +0 -0
  732. /package/{pitono → src/pitono}/pyproject.toml +0 -0
  733. /package/{pitono → src/pitono}/setup.py +0 -0
  734. /package/{pitono → src/pitono}/simple_adapter.py +0 -0
  735. /package/{dist/types/src/PM/types.d.ts → testeranto/helpo_chat_message.txt} +0 -0
  736. /package/{dist/types/src/components/SunriseAnimation.test/implementation.d.ts → testeranto/reports/core/example/test_example/python/stdout.log} +0 -0
  737. /package/{dist/types/src/components/SunriseAnimation.test/index.d.ts → testeranto/reports/core/src/Pure.test/pure/exit.log} +0 -0
  738. /package/{dist/types/src/components/SunriseAnimation.test/specification.d.ts → testeranto/reports/core/src/Pure.test/pure/lint_errors.txt} +0 -0
  739. /package/{dist/types/src/components/pure/SingleProcessView.d.ts → testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log} +0 -0
  740. /package/{dist/types/src/run.d.ts → testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log} +0 -0
@@ -0,0 +1,900 @@
1
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
2
+ /* eslint-disable no-async-promise-executor */
3
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4
+ /* eslint-disable @typescript-eslint/no-unused-vars */
5
+
6
+ import fs, { watch } from "fs";
7
+ import path from "path";
8
+ import puppeteer, { executablePath } from "puppeteer-core";
9
+ import ansiC from "ansi-colors";
10
+
11
+ import { getRunnables } from "../utils.js";
12
+ import { IBuiltConfig, IRunTime } from "../Types.js";
13
+
14
+ import {
15
+ fileHash,
16
+ createLogStreams,
17
+ isValidUrl,
18
+ pollForFile,
19
+ writeFileAndCreateDir,
20
+ puppeteerConfigs,
21
+ filesHash,
22
+ IOutputs,
23
+ } from "./utils.js";
24
+
25
+ import { PM_WithGit } from "./PM_WithGit.js";
26
+
27
+ const fileHashes = {};
28
+ const changes: Record<string, string> = {};
29
+
30
+ export abstract class PM_WithProcesses extends PM_WithGit {
31
+ webMetafileWatcher: fs.FSWatcher;
32
+ nodeMetafileWatcher: fs.FSWatcher;
33
+ importMetafileWatcher: fs.FSWatcher;
34
+ pitonoMetafileWatcher: fs.FSWatcher;
35
+ golangMetafileWatcher: fs.FSWatcher;
36
+
37
+ ports: Record<number, string>;
38
+ queue: string[];
39
+ logStreams: Record<string, ReturnType<typeof createLogStreams>> = {};
40
+ launchers: Record<string, () => void>;
41
+
42
+ abstract launchNode(src: string, dest: string);
43
+ abstract launchWeb(src: string, dest: string);
44
+ abstract launchPure(src: string, dest: string);
45
+ abstract launchPython(src: string, dest: string);
46
+ abstract launchGolang(src: string, dest: string);
47
+
48
+ constructor(configs: IBuiltConfig, name: string, mode: "once" | "dev") {
49
+ super(configs, name, mode);
50
+
51
+ this.launchers = {};
52
+ this.ports = {};
53
+ this.queue = [];
54
+
55
+ this.configs.ports.forEach((element) => {
56
+ this.ports[element] = ""; // set ports as open
57
+ });
58
+ }
59
+
60
+ bddTestIsRunning(src: string) {
61
+ this.summary[src] = {
62
+ prompt: "?",
63
+ runTimeErrors: "?",
64
+ staticErrors: "?",
65
+ typeErrors: "?",
66
+ failingFeatures: {},
67
+ };
68
+ }
69
+
70
+ async metafileOutputs(platform: IRunTime) {
71
+ let metafilePath: string;
72
+ if (platform === "python") {
73
+ metafilePath = `./testeranto/metafiles/python/core.json`;
74
+ } else {
75
+ metafilePath = `./testeranto/metafiles/${platform}/${this.name}.json`;
76
+ }
77
+
78
+ let metafile;
79
+ try {
80
+ const fileContent = fs.readFileSync(metafilePath).toString();
81
+ const parsedData = JSON.parse(fileContent);
82
+ // Handle different metafile structures
83
+ if (platform === "python") {
84
+ // Pitono metafile might be the entire content or have a different structure
85
+ metafile = parsedData.metafile || parsedData;
86
+ } else {
87
+ metafile = parsedData.metafile;
88
+ }
89
+ if (!metafile) {
90
+ console.log(
91
+ ansiC.yellow(ansiC.inverse(`No metafile found in ${metafilePath}`))
92
+ );
93
+ return;
94
+ }
95
+ // console.log(
96
+ // ansiC.blue(
97
+ // `Found metafile for ${platform} with ${
98
+ // Object.keys(metafile.outputs || {}).length
99
+ // } outputs`
100
+ // )
101
+ // );
102
+ } catch (error) {
103
+ console.error(`Error reading metafile at ${metafilePath}:`, error);
104
+ return;
105
+ }
106
+
107
+ const outputs: IOutputs | undefined = metafile.outputs;
108
+
109
+ // Check if outputs exists and is an object
110
+ // if (!outputs || typeof outputs !== "object") {
111
+ // console.log(
112
+ // ansiC.yellow(
113
+ // ansiC.inverse(`No outputs found in metafile at ${metafilePath}`)
114
+ // )
115
+ // );
116
+ // return;
117
+ // }
118
+
119
+ Object.keys(outputs).forEach(async (k) => {
120
+ const pattern = `testeranto/bundles/${platform}/${this.name}/${this.configs.src}`;
121
+ if (!k.startsWith(pattern)) {
122
+ return;
123
+ }
124
+
125
+ const output = outputs[k];
126
+ // Check if the output entry exists and has inputs
127
+ if (!output || !output.inputs) {
128
+ return;
129
+ }
130
+
131
+ const addableFiles = Object.keys(output.inputs).filter((i) => {
132
+ if (!fs.existsSync(i)) return false;
133
+ if (i.startsWith("node_modules")) return false;
134
+ if (i.startsWith("./node_modules")) return false;
135
+
136
+ return true;
137
+ });
138
+
139
+ const f = `${k.split(".").slice(0, -1).join(".")}/`;
140
+
141
+ if (!fs.existsSync(f)) {
142
+ fs.mkdirSync(f, { recursive: true });
143
+ }
144
+
145
+ let entrypoint = output.entryPoint;
146
+
147
+ if (entrypoint) {
148
+ // Normalize the entrypoint path to ensure consistent comparison
149
+ entrypoint = path.normalize(entrypoint);
150
+
151
+ const changeDigest = await filesHash(addableFiles);
152
+
153
+ if (changeDigest === changes[entrypoint]) {
154
+ // skip
155
+ } else {
156
+ changes[entrypoint] = changeDigest;
157
+
158
+ // Run appropriate static analysis based on platform
159
+ if (
160
+ platform === "node" ||
161
+ platform === "web" ||
162
+ platform === "pure"
163
+ ) {
164
+ this.tscCheck({
165
+ platform,
166
+ addableFiles,
167
+ entrypoint: entrypoint,
168
+ });
169
+ this.eslintCheck(entrypoint, platform, addableFiles);
170
+ } else if (platform === "python") {
171
+ this.pythonLintCheck(entrypoint, addableFiles);
172
+ this.pythonTypeCheck(entrypoint, addableFiles);
173
+ }
174
+
175
+ this.makePrompt(entrypoint, addableFiles, platform);
176
+
177
+ const testName = this.findTestNameByEntrypoint(entrypoint, platform);
178
+ if (testName) {
179
+ console.log(
180
+ ansiC.green(
181
+ ansiC.inverse(
182
+ `Source files changed, re-queueing test: ${testName}`
183
+ )
184
+ )
185
+ );
186
+ this.addToQueue(testName, platform);
187
+ } else {
188
+ console.error(
189
+ `Could not find test for entrypoint: ${entrypoint} (${platform})`
190
+ );
191
+ process.exit(-1);
192
+ }
193
+ }
194
+ }
195
+ });
196
+ }
197
+
198
+ private findTestNameByEntrypoint(
199
+ entrypoint: string,
200
+ platform: IRunTime
201
+ ): string | null {
202
+ const runnables = getRunnables(this.configs.tests, this.name);
203
+
204
+ let entryPointsMap: Record<string, string>;
205
+
206
+ switch (platform) {
207
+ case "node":
208
+ entryPointsMap = runnables.nodeEntryPoints;
209
+ break;
210
+ case "web":
211
+ entryPointsMap = runnables.webEntryPoints;
212
+ break;
213
+ case "pure":
214
+ entryPointsMap = runnables.pureEntryPoints;
215
+ break;
216
+ case "python":
217
+ entryPointsMap = runnables.pythonEntryPoints;
218
+ break;
219
+ case "golang":
220
+ entryPointsMap = runnables.golangEntryPoints;
221
+ break;
222
+ default:
223
+ throw "wtf";
224
+ }
225
+
226
+ if (!entryPointsMap) {
227
+ console.error("idk");
228
+ }
229
+
230
+ if (!entryPointsMap[entrypoint]) {
231
+ console.error("idk2");
232
+ }
233
+
234
+ return entryPointsMap[entrypoint];
235
+ }
236
+
237
+ async pythonLintCheck(entrypoint: string, addableFiles: string[]) {
238
+ const reportDest = `testeranto/reports/${this.name}/${entrypoint
239
+ .split(".")
240
+ .slice(0, -1)
241
+ .join(".")}/python`;
242
+
243
+ if (!fs.existsSync(reportDest)) {
244
+ fs.mkdirSync(reportDest, { recursive: true });
245
+ }
246
+
247
+ const lintErrorsPath = `${reportDest}/lint_errors.txt`;
248
+
249
+ try {
250
+ // Use flake8 for Python linting
251
+ const { spawn } = await import("child_process");
252
+ const child = spawn("flake8", [entrypoint, "--max-line-length=88"], {
253
+ stdio: ["pipe", "pipe", "pipe"],
254
+ });
255
+
256
+ let stderr = "";
257
+ child.stderr.on("data", (data) => {
258
+ stderr += data.toString();
259
+ });
260
+
261
+ let stdout = "";
262
+ child.stdout.on("data", (data) => {
263
+ stdout += data.toString();
264
+ });
265
+
266
+ return new Promise<void>((resolve) => {
267
+ child.on("close", (code) => {
268
+ const output = stdout + stderr;
269
+ if (output.trim()) {
270
+ fs.writeFileSync(lintErrorsPath, output);
271
+ this.summary[entrypoint].staticErrors = output.split("\n").length;
272
+ } else {
273
+ if (fs.existsSync(lintErrorsPath)) {
274
+ fs.unlinkSync(lintErrorsPath);
275
+ }
276
+ this.summary[entrypoint].staticErrors = 0;
277
+ }
278
+ resolve();
279
+ });
280
+ });
281
+ } catch (error) {
282
+ console.error(`Error running flake8 on ${entrypoint}:`, error);
283
+ fs.writeFileSync(
284
+ lintErrorsPath,
285
+ `Error running flake8: ${error.message}`
286
+ );
287
+ this.summary[entrypoint].staticErrors = -1;
288
+ }
289
+ }
290
+
291
+ async pythonTypeCheck(entrypoint: string, addableFiles: string[]) {
292
+ const reportDest = `testeranto/reports/${this.name}/${entrypoint
293
+ .split(".")
294
+ .slice(0, -1)
295
+ .join(".")}/python`;
296
+
297
+ if (!fs.existsSync(reportDest)) {
298
+ fs.mkdirSync(reportDest, { recursive: true });
299
+ }
300
+
301
+ const typeErrorsPath = `${reportDest}/type_errors.txt`;
302
+
303
+ try {
304
+ // Use mypy for Python type checking
305
+ const { spawn } = await import("child_process");
306
+ const child = spawn("mypy", [entrypoint], {
307
+ stdio: ["pipe", "pipe", "pipe"],
308
+ });
309
+
310
+ let stderr = "";
311
+ child.stderr.on("data", (data) => {
312
+ stderr += data.toString();
313
+ });
314
+
315
+ let stdout = "";
316
+ child.stdout.on("data", (data) => {
317
+ stdout += data.toString();
318
+ });
319
+
320
+ return new Promise<void>((resolve) => {
321
+ child.on("close", (code) => {
322
+ const output = stdout + stderr;
323
+ if (output.trim()) {
324
+ fs.writeFileSync(typeErrorsPath, output);
325
+ this.summary[entrypoint].typeErrors = output.split("\n").length;
326
+ } else {
327
+ if (fs.existsSync(typeErrorsPath)) {
328
+ fs.unlinkSync(typeErrorsPath);
329
+ }
330
+ this.summary[entrypoint].typeErrors = 0;
331
+ }
332
+ resolve();
333
+ });
334
+ });
335
+ } catch (error) {
336
+ console.error(`Error running mypy on ${entrypoint}:`, error);
337
+ fs.writeFileSync(typeErrorsPath, `Error running mypy: ${error.message}`);
338
+ this.summary[entrypoint].typeErrors = -1;
339
+ }
340
+ }
341
+
342
+ async start() {
343
+ // Wait for build processes to complete first
344
+ try {
345
+ await this.startBuildProcesses();
346
+ this.onBuildDone();
347
+ } catch (error) {
348
+ console.error("Build processes failed:", error);
349
+ return;
350
+ }
351
+
352
+ // Continue with the rest of the setup after builds are done
353
+ this.mapping().forEach(async ([command, func]) => {
354
+ globalThis[command] = func;
355
+ });
356
+
357
+ if (!fs.existsSync(`testeranto/reports/${this.name}`)) {
358
+ fs.mkdirSync(`testeranto/reports/${this.name}`);
359
+ }
360
+
361
+ try {
362
+ this.browser = await puppeteer.launch(puppeteerConfigs);
363
+ } catch (e) {
364
+ console.error(e);
365
+ console.error(
366
+ "could not start chrome via puppeter. Check this path: ",
367
+ executablePath
368
+ );
369
+ }
370
+
371
+ const runnables = getRunnables(this.configs.tests, this.name);
372
+ const {
373
+ nodeEntryPoints,
374
+ webEntryPoints,
375
+ pureEntryPoints,
376
+ pythonEntryPoints,
377
+ golangEntryPoints,
378
+ } = runnables;
379
+
380
+ // Debug: log the runnables to see what we're working with
381
+ console.log(
382
+ ansiC.blue(
383
+ `Runnables for ${this.name}:\n` +
384
+ `Node: ${JSON.stringify(nodeEntryPoints, null, 2)}\n` +
385
+ `Web: ${JSON.stringify(webEntryPoints, null, 2)}\n` +
386
+ `Pure: ${JSON.stringify(pureEntryPoints, null, 2)}\n` +
387
+ `Python: ${JSON.stringify(pythonEntryPoints, null, 2)}\n` +
388
+ `Golang: ${JSON.stringify(golangEntryPoints, null, 2)}`
389
+ )
390
+ );
391
+
392
+ // Add all tests to the queue
393
+ [
394
+ ["node", nodeEntryPoints],
395
+ ["web", webEntryPoints],
396
+ ["pure", pureEntryPoints],
397
+ ["python", pythonEntryPoints],
398
+ ["golang", golangEntryPoints],
399
+ ].forEach(([runtime, entryPoints]: [IRunTime, Record<string, string>]) => {
400
+ Object.keys(entryPoints).forEach((entryPoint) => {
401
+ // Create the report directory
402
+ const reportDest = `testeranto/reports/${this.name}/${entryPoint
403
+ .split(".")
404
+ .slice(0, -1)
405
+ .join(".")}/${runtime}`;
406
+ if (!fs.existsSync(reportDest)) {
407
+ fs.mkdirSync(reportDest, { recursive: true });
408
+ }
409
+
410
+ // Add to the processing queue
411
+ this.addToQueue(entryPoint, runtime);
412
+ });
413
+ });
414
+
415
+ // Set up metafile watchers for each runtime
416
+ [
417
+ ["node", nodeEntryPoints],
418
+ ["web", webEntryPoints],
419
+ ["pure", pureEntryPoints],
420
+ ["python", pythonEntryPoints],
421
+ ["golang", golangEntryPoints],
422
+ ].forEach(
423
+ async ([runtime, entryPoints]: [IRunTime, Record<string, string>]) => {
424
+ if (Object.keys(entryPoints).length === 0) return;
425
+
426
+ const metafile = `./testeranto/metafiles/${runtime}/${this.name}.json`;
427
+ try {
428
+ await pollForFile(metafile);
429
+ // console.log("Found metafile for", runtime, metafile);
430
+
431
+ // Set up watcher for the metafile with debouncing
432
+ let timeoutId: NodeJS.Timeout;
433
+ const watcher = watch(metafile, async (e, filename) => {
434
+ // Debounce to avoid multiple rapid triggers
435
+ clearTimeout(timeoutId);
436
+ timeoutId = setTimeout(async () => {
437
+ console.log(
438
+ ansiC.yellow(ansiC.inverse(`< ${e} ${filename} (${runtime})`))
439
+ );
440
+ try {
441
+ await this.metafileOutputs(runtime as IRunTime);
442
+ // After processing metafile changes, check the queue to run tests
443
+ console.log(
444
+ ansiC.blue(
445
+ `Metafile processed, checking queue for tests to run`
446
+ )
447
+ );
448
+ this.checkQueue();
449
+ } catch (error) {
450
+ console.error(`Error processing metafile changes:`, error);
451
+ }
452
+ }, 300); // 300ms debounce
453
+ });
454
+
455
+ // Store the watcher based on runtime
456
+ switch (runtime) {
457
+ case "node":
458
+ this.nodeMetafileWatcher = watcher;
459
+ break;
460
+ case "web":
461
+ this.webMetafileWatcher = watcher;
462
+ break;
463
+ case "pure":
464
+ this.importMetafileWatcher = watcher;
465
+ break;
466
+ case "python":
467
+ this.pitonoMetafileWatcher = watcher;
468
+ break;
469
+ case "golang":
470
+ this.golangMetafileWatcher = watcher;
471
+ break;
472
+ }
473
+
474
+ // Read the metafile immediately
475
+ await this.metafileOutputs(runtime as IRunTime);
476
+ } catch (error) {
477
+ console.error(`Error setting up watcher for ${runtime}:`, error);
478
+ }
479
+ }
480
+ );
481
+ }
482
+
483
+ async stop() {
484
+ console.log(ansiC.inverse("Testeranto-Run is shutting down gracefully..."));
485
+ this.mode = "once";
486
+ this.nodeMetafileWatcher.close();
487
+ this.webMetafileWatcher.close();
488
+ this.importMetafileWatcher.close();
489
+ if (this.pitonoMetafileWatcher) {
490
+ this.pitonoMetafileWatcher.close();
491
+ }
492
+
493
+ if (this.gitWatcher) {
494
+ this.gitWatcher.close();
495
+ }
496
+
497
+ if (this.gitWatchTimeout) {
498
+ clearTimeout(this.gitWatchTimeout);
499
+ }
500
+
501
+ Object.values(this.logStreams || {}).forEach((logs) => logs.closeAll());
502
+
503
+ if (this.wss) {
504
+ this.wss.close(() => {
505
+ console.log("WebSocket server closed");
506
+ });
507
+ }
508
+
509
+ this.clients.forEach((client) => {
510
+ client.terminate();
511
+ });
512
+ this.clients.clear();
513
+
514
+ if (this.httpServer) {
515
+ this.httpServer.close(() => {
516
+ console.log("HTTP server closed");
517
+ });
518
+ }
519
+ this.checkForShutdown();
520
+ }
521
+
522
+ receiveFeaturesV2 = (
523
+ reportDest: string,
524
+ srcTest: string,
525
+ platform: IRunTime
526
+ ) => {
527
+ const featureDestination = path.resolve(
528
+ process.cwd(),
529
+ "reports",
530
+ "features",
531
+ "strings",
532
+ srcTest.split(".").slice(0, -1).join(".") + ".features.txt"
533
+ );
534
+
535
+ const testReportPath = `${reportDest}/tests.json`;
536
+ if (!fs.existsSync(testReportPath)) {
537
+ console.error(`tests.json not found at: ${testReportPath}`);
538
+ return;
539
+ }
540
+
541
+ const testReport = JSON.parse(fs.readFileSync(testReportPath, "utf8"));
542
+
543
+ // Add full path information to each test
544
+ if (testReport.tests) {
545
+ testReport.tests.forEach((test) => {
546
+ // Add the full path to each test
547
+ test.fullPath = path.resolve(process.cwd(), srcTest);
548
+ });
549
+ }
550
+
551
+ // Add full path to the report itself
552
+ testReport.fullPath = path.resolve(process.cwd(), srcTest);
553
+
554
+ // Write the modified report back
555
+ fs.writeFileSync(testReportPath, JSON.stringify(testReport, null, 2));
556
+
557
+ testReport.features
558
+ .reduce(async (mm, featureStringKey) => {
559
+ const accum = await mm;
560
+
561
+ const isUrl = isValidUrl(featureStringKey);
562
+
563
+ if (isUrl) {
564
+ const u = new URL(featureStringKey);
565
+
566
+ if (u.protocol === "file:") {
567
+ const newPath = `${process.cwd()}/testeranto/features/internal/${path.relative(
568
+ process.cwd(),
569
+ u.pathname
570
+ )}`;
571
+
572
+ accum.files.push(u.pathname);
573
+ } else if (u.protocol === "http:" || u.protocol === "https:") {
574
+ const newPath = `${process.cwd()}/testeranto/features/external/${
575
+ u.hostname
576
+ }${u.pathname}`;
577
+
578
+ const body = await this.configs.featureIngestor(featureStringKey);
579
+
580
+ writeFileAndCreateDir(newPath, body);
581
+ accum.files.push(newPath);
582
+ }
583
+ } else {
584
+ await fs.promises.mkdir(path.dirname(featureDestination), {
585
+ recursive: true,
586
+ });
587
+
588
+ accum.strings.push(featureStringKey);
589
+ }
590
+
591
+ return accum;
592
+ }, Promise.resolve({ files: [] as string[], strings: [] as string[] }))
593
+
594
+ .then(({ files, strings }: { files: string[]; strings: string[] }) => {
595
+ // Markdown files must be referenced in the prompt but string style features are already present in the tests.json file
596
+
597
+ fs.writeFileSync(
598
+ `testeranto/reports/${this.name}/${srcTest
599
+ .split(".")
600
+ .slice(0, -1)
601
+ .join(".")}/${platform}/featurePrompt.txt`,
602
+ files
603
+ .map((f) => {
604
+ return `/read ${f}`;
605
+ })
606
+ .join("\n")
607
+ );
608
+ });
609
+
610
+ testReport.givens.forEach((g) => {
611
+ if (g.failed === true) {
612
+ this.summary[srcTest].failingFeatures[g.key] = g.features;
613
+ }
614
+ });
615
+
616
+ this.writeBigBoard();
617
+ };
618
+
619
+ findIndexHtml(): string | null {
620
+ const possiblePaths = [
621
+ "dist/index.html",
622
+ "testeranto/dist/index.html",
623
+ "../dist/index.html",
624
+ "./index.html",
625
+ ];
626
+
627
+ for (const path of possiblePaths) {
628
+ if (fs.existsSync(path)) {
629
+ return path;
630
+ }
631
+ }
632
+ return null;
633
+ }
634
+
635
+ addToQueue(src: string, runtime: IRunTime) {
636
+ // Ensure we're using the original test source path, not a bundle path
637
+ // The src parameter might be a bundle path from metafile changes
638
+ // We need to find the corresponding test source path
639
+
640
+ // First, check if this looks like a bundle path (contains 'testeranto/bundles')
641
+ if (src.includes("testeranto/bundles")) {
642
+ // Try to find the original test name that corresponds to this bundle
643
+ const runnables = getRunnables(this.configs.tests, this.name);
644
+ const allEntryPoints = [
645
+ ...Object.entries(runnables.nodeEntryPoints),
646
+ ...Object.entries(runnables.webEntryPoints),
647
+ ...Object.entries(runnables.pureEntryPoints),
648
+ ...Object.entries(runnables.pythonEntryPoints),
649
+ ...Object.entries(runnables.golangEntryPoints),
650
+ ];
651
+
652
+ // Normalize the source path for comparison
653
+ const normalizedSrc = path.normalize(src);
654
+
655
+ for (const [testName, bundlePath] of allEntryPoints) {
656
+ const normalizedBundlePath = path.normalize(bundlePath);
657
+ // Check if the source path ends with the bundle path
658
+ if (normalizedSrc.endsWith(normalizedBundlePath)) {
659
+ // Use the original test name instead of the bundle path
660
+ src = testName;
661
+ break;
662
+ }
663
+ }
664
+ }
665
+
666
+ // First, clean up any existing processes for this test
667
+ this.cleanupTestProcesses(src);
668
+
669
+ // Add the test to the queue (using the original test source path)
670
+ // Make sure we don't add duplicates
671
+ if (!this.queue.includes(src)) {
672
+ this.queue.push(src);
673
+ console.log(
674
+ ansiC.green(
675
+ ansiC.inverse(`Added ${src} (${runtime}) to the processing queue`)
676
+ )
677
+ );
678
+ // Try to process the queue
679
+ this.checkQueue();
680
+ } else {
681
+ console.log(
682
+ ansiC.yellow(
683
+ ansiC.inverse(`Test ${src} is already in the queue, skipping`)
684
+ )
685
+ );
686
+ }
687
+ }
688
+
689
+ private cleanupTestProcesses(testName: string) {
690
+ // Find and clean up any running processes for this test
691
+ const processesToCleanup: string[] = [];
692
+
693
+ // Find all process IDs that match this test name
694
+ for (const [processId, processInfo] of this.allProcesses.entries()) {
695
+ if (
696
+ processInfo.testName === testName &&
697
+ processInfo.status === "running"
698
+ ) {
699
+ processesToCleanup.push(processId);
700
+ }
701
+ }
702
+
703
+ // Clean up each process
704
+ processesToCleanup.forEach((processId) => {
705
+ const processInfo = this.allProcesses.get(processId);
706
+ if (processInfo) {
707
+ // Kill child process if it exists
708
+ if (processInfo.child) {
709
+ try {
710
+ processInfo.child.kill();
711
+ } catch (error) {
712
+ console.error(`Error killing process ${processId}:`, error);
713
+ }
714
+ }
715
+
716
+ // Update process status
717
+ this.allProcesses.set(processId, {
718
+ ...processInfo,
719
+ status: "exited",
720
+ exitCode: -1,
721
+ error: "Killed due to source file change",
722
+ });
723
+
724
+ // Remove from running processes
725
+ this.runningProcesses.delete(processId);
726
+
727
+ // Broadcast process exit
728
+ this.broadcast({
729
+ type: "processExited",
730
+ processId,
731
+ exitCode: -1,
732
+ timestamp: new Date().toISOString(),
733
+ logs: ["Process killed due to source file change"],
734
+ });
735
+ }
736
+ });
737
+ }
738
+
739
+ checkQueue() {
740
+ // Process all items in the queue
741
+ while (this.queue.length > 0) {
742
+ const x = this.queue.pop();
743
+ if (!x) continue;
744
+
745
+ // Check if this test is already running
746
+ let isRunning = false;
747
+ for (const processInfo of this.allProcesses.values()) {
748
+ if (processInfo.testName === x && processInfo.status === "running") {
749
+ isRunning = true;
750
+ break;
751
+ }
752
+ }
753
+
754
+ if (isRunning) {
755
+ console.log(
756
+ ansiC.yellow(
757
+ `Skipping ${x} - already running, will be re-queued when current run completes`
758
+ )
759
+ );
760
+ continue;
761
+ }
762
+
763
+ const test = this.configs.tests.find((t) => t[0] === x);
764
+ if (!test) {
765
+ console.error(`test is undefined ${x}`);
766
+ continue;
767
+ }
768
+
769
+ // Get the appropriate launcher based on the runtime type
770
+ const runtime = test[1];
771
+
772
+ // Get the destination path from the runnables
773
+ const runnables = getRunnables(this.configs.tests, this.name);
774
+ let dest: string;
775
+
776
+ switch (runtime) {
777
+ case "node":
778
+ dest = runnables.nodeEntryPoints[x];
779
+ if (dest) {
780
+ this.launchNode(x, dest);
781
+ } else {
782
+ console.error(`No destination found for node test: ${x}`);
783
+ }
784
+ break;
785
+ case "web":
786
+ dest = runnables.webEntryPoints[x];
787
+ if (dest) {
788
+ this.launchWeb(x, dest);
789
+ } else {
790
+ console.error(`No destination found for web test: ${x}`);
791
+ }
792
+ break;
793
+ case "pure":
794
+ dest = runnables.pureEntryPoints[x];
795
+ if (dest) {
796
+ this.launchPure(x, dest);
797
+ } else {
798
+ console.error(`No destination found for pure test: ${x}`);
799
+ }
800
+ break;
801
+ case "python":
802
+ dest = runnables.pythonEntryPoints[x];
803
+ if (dest) {
804
+ this.launchPython(x, dest);
805
+ } else {
806
+ console.error(`No destination found for python test: ${x}`);
807
+ }
808
+ break;
809
+ case "golang":
810
+ dest = runnables.golangEntryPoints[x];
811
+ if (dest) {
812
+ this.launchGolang(x, dest);
813
+ } else {
814
+ console.error(`No destination found for golang test: ${x}`);
815
+ }
816
+ break;
817
+ default:
818
+ console.error(`Unknown runtime: ${runtime} for test ${x}`);
819
+ break;
820
+ }
821
+ }
822
+
823
+ if (this.queue.length === 0) {
824
+ console.log(ansiC.inverse(`The queue is empty`));
825
+ }
826
+ }
827
+
828
+ onBuildDone(): void {
829
+ console.log("Build processes completed");
830
+ // The builds are done, which means the files are ready to be watched
831
+ // This matches the original behavior where builds completed before PM_Main started
832
+
833
+ // Start Git watcher for development mode
834
+ this.startGitWatcher();
835
+ }
836
+
837
+ checkForShutdown = () => {
838
+ this.checkQueue();
839
+
840
+ console.log(
841
+ ansiC.inverse(
842
+ `The following jobs are awaiting resources: ${JSON.stringify(
843
+ this.queue
844
+ )}`
845
+ )
846
+ );
847
+ console.log(
848
+ ansiC.inverse(`The status of ports: ${JSON.stringify(this.ports)}`)
849
+ );
850
+
851
+ this.writeBigBoard();
852
+
853
+ if (this.mode === "dev") return;
854
+
855
+ let inflight = false;
856
+
857
+ Object.keys(this.summary).forEach((k) => {
858
+ if (this.summary[k].prompt === "?") {
859
+ console.log(ansiC.blue(ansiC.inverse(`🕕 prompt ${k}`)));
860
+ inflight = true;
861
+ }
862
+ });
863
+
864
+ Object.keys(this.summary).forEach((k) => {
865
+ if (this.summary[k].runTimeErrors === "?") {
866
+ console.log(ansiC.blue(ansiC.inverse(`🕕 runTimeError ${k}`)));
867
+ inflight = true;
868
+ }
869
+ });
870
+
871
+ Object.keys(this.summary).forEach((k) => {
872
+ if (this.summary[k].staticErrors === "?") {
873
+ console.log(ansiC.blue(ansiC.inverse(`🕕 staticErrors ${k}`)));
874
+ inflight = true;
875
+ }
876
+ });
877
+
878
+ Object.keys(this.summary).forEach((k) => {
879
+ if (this.summary[k].typeErrors === "?") {
880
+ console.log(ansiC.blue(ansiC.inverse(`🕕 typeErrors ${k}`)));
881
+ inflight = true;
882
+ }
883
+ });
884
+
885
+ this.writeBigBoard();
886
+
887
+ if (!inflight) {
888
+ if (this.browser) {
889
+ if (this.browser) {
890
+ this.browser.disconnect().then(() => {
891
+ console.log(
892
+ ansiC.inverse(`${this.name} has been tested. Goodbye.`)
893
+ );
894
+ process.exit();
895
+ });
896
+ }
897
+ }
898
+ }
899
+ };
900
+ }