testeranto 0.200.0 → 0.202.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 (376) hide show
  1. package/README.md +26 -1
  2. package/bundle.js +3 -2
  3. package/design-editor/DesignEditor.tsx +40 -241
  4. package/dist/common/design-editor/DesignEditor.js +33 -198
  5. package/dist/common/src/App.js +158 -16
  6. package/dist/common/src/PM/PM_WithBuild.js +135 -0
  7. package/dist/common/src/PM/PM_WithEslintAndTsc.js +79 -67
  8. package/dist/common/src/PM/PM_WithGit.js +517 -0
  9. package/dist/common/src/PM/PM_WithProcesses.js +519 -0
  10. package/dist/common/src/PM/PM_WithWebSocket.js +535 -0
  11. package/dist/common/src/PM/base.js +62 -0
  12. package/dist/common/src/PM/main.js +533 -1676
  13. package/dist/common/src/PM/metafileOutputs.js +78 -0
  14. package/dist/common/src/PM/node.js +0 -6
  15. package/dist/common/src/PM/pure.js +0 -8
  16. package/dist/common/src/PM/types.js +1 -0
  17. package/dist/common/src/PM/utils.js +210 -0
  18. package/dist/common/src/PM/web.js +0 -6
  19. package/dist/common/src/ReportServer.js +0 -10
  20. package/dist/common/src/ReportServerLib.js +0 -140
  21. package/dist/common/src/components/pure/AppFrame.js +68 -56
  22. package/dist/common/src/components/pure/ArtifactTree.js +80 -0
  23. package/dist/common/src/components/pure/BuildLogViewer.js +106 -0
  24. package/dist/common/src/components/pure/DebugEnv.js +30 -0
  25. package/dist/common/src/components/pure/FileTree.js +34 -0
  26. package/dist/common/src/components/pure/FileTreeItem.js +29 -0
  27. package/dist/common/src/components/pure/GitHubLoginButton.js +18 -0
  28. package/dist/common/src/components/pure/GitIntegrationView.js +342 -0
  29. package/dist/common/src/components/pure/ProcessManager.js +1 -0
  30. package/dist/common/src/components/pure/ProcessManagerView.js +73 -74
  31. package/dist/common/src/components/pure/ProjectPageView.js +4 -117
  32. package/dist/common/src/components/pure/Settings.js +121 -0
  33. package/dist/common/src/components/pure/Settings.test.js +34 -0
  34. package/dist/common/src/components/pure/SignIn.js +22 -0
  35. package/dist/common/src/components/pure/SingleProcessView.js +166 -213
  36. package/dist/common/src/components/pure/TestPageView.js +113 -368
  37. package/dist/common/src/components/pure/TestPageView_utils.js +117 -0
  38. package/dist/common/src/components/pure/TestTable.js +33 -0
  39. package/dist/common/src/components/pure/ToastNotification.js +14 -0
  40. package/dist/common/src/components/pure/UserProfile.js +27 -0
  41. package/dist/common/src/components/stateful/AuthCallbackPage.js +51 -0
  42. package/dist/common/src/components/stateful/FeaturesReporter.js +2 -1
  43. package/dist/common/src/components/stateful/FileTree.js +58 -39
  44. package/dist/common/src/components/stateful/GitIntegrationPage.js +12 -0
  45. package/dist/common/src/components/stateful/ProcessManagerPage.js +13 -15
  46. package/dist/common/src/components/stateful/ProjectPage.js +6 -5
  47. package/dist/common/src/components/stateful/ProjectsPage.js +17 -19
  48. package/dist/common/src/components/stateful/SingleProcessPage.js +16 -26
  49. package/dist/common/src/components/stateful/TestPage.js +7 -5
  50. package/dist/common/src/hooks/useGitMode.js +21 -0
  51. package/dist/common/src/lib/BaseSuite.test/mock.js +15 -8
  52. package/dist/common/src/lib/BaseSuite.test/test.js +56 -80
  53. package/dist/common/src/lib/Tiposkripto.js +24 -0
  54. package/dist/common/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
  55. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
  56. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
  57. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
  58. package/dist/common/src/lib/pmProxy.test/specification.js +167 -52
  59. package/dist/common/src/services/FileService.js +505 -0
  60. package/dist/common/src/services/GitHubAuthService.js +184 -0
  61. package/dist/common/src/testeranto.js +38 -97
  62. package/dist/common/src/utils/api.js +12 -8
  63. package/dist/common/src/utils/gitTest.js +27 -0
  64. package/dist/common/src/utils.js +23 -13
  65. package/dist/common/testeranto.config.js +21 -17
  66. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  67. package/dist/module/design-editor/DesignEditor.js +33 -199
  68. package/dist/module/src/App.js +121 -15
  69. package/dist/module/src/PM/PM_WithBuild.js +128 -0
  70. package/dist/module/src/PM/PM_WithEslintAndTsc.js +79 -67
  71. package/dist/module/src/PM/PM_WithGit.js +477 -0
  72. package/dist/module/src/PM/PM_WithProcesses.js +479 -0
  73. package/dist/module/src/PM/PM_WithWebSocket.js +528 -0
  74. package/dist/module/src/PM/base.js +62 -0
  75. package/dist/module/src/PM/main.js +533 -1676
  76. package/dist/module/src/PM/metafileOutputs.js +78 -0
  77. package/dist/module/src/PM/node.js +0 -6
  78. package/dist/module/src/PM/pure.js +0 -8
  79. package/dist/module/src/PM/types.js +1 -1
  80. package/dist/module/src/PM/utils.js +196 -0
  81. package/dist/module/src/PM/web.js +0 -6
  82. package/dist/module/src/ReportServer.js +1 -9
  83. package/dist/module/src/ReportServerLib.js +1 -134
  84. package/dist/module/src/components/pure/AppFrame.js +66 -24
  85. package/dist/module/src/components/pure/ArtifactTree.js +80 -0
  86. package/dist/module/src/components/pure/BuildLogViewer.js +99 -0
  87. package/dist/module/src/components/pure/DebugEnv.js +23 -0
  88. package/dist/module/src/components/pure/FileTree.js +27 -0
  89. package/dist/module/src/components/pure/FileTreeItem.js +22 -0
  90. package/dist/module/src/components/pure/GitHubLoginButton.js +11 -0
  91. package/dist/module/src/components/pure/GitIntegrationView.js +305 -0
  92. package/dist/module/src/components/pure/ProcessManager.js +1 -0
  93. package/dist/module/src/components/pure/ProcessManagerView.js +74 -75
  94. package/dist/module/src/components/pure/ProjectPageView.js +5 -118
  95. package/dist/module/src/components/pure/Settings.js +84 -0
  96. package/dist/module/src/components/pure/Settings.test.js +29 -0
  97. package/dist/module/src/components/pure/SignIn.js +15 -0
  98. package/dist/module/src/components/pure/SingleProcessView.js +130 -214
  99. package/dist/module/src/components/pure/TestPageView.js +97 -352
  100. package/dist/module/src/components/pure/TestPageView_utils.js +109 -0
  101. package/dist/module/src/components/pure/TestTable.js +26 -0
  102. package/dist/module/src/components/pure/ToastNotification.js +7 -0
  103. package/dist/module/src/components/pure/UserProfile.js +20 -0
  104. package/dist/module/src/components/stateful/AuthCallbackPage.js +14 -0
  105. package/dist/module/src/components/stateful/FeaturesReporter.js +2 -1
  106. package/dist/module/src/components/stateful/FileTree.js +59 -33
  107. package/dist/module/src/components/stateful/GitIntegrationPage.js +5 -0
  108. package/dist/module/src/components/stateful/ProcessManagerPage.js +13 -15
  109. package/dist/module/src/components/stateful/ProjectPage.js +6 -5
  110. package/dist/module/src/components/stateful/ProjectsPage.js +16 -18
  111. package/dist/module/src/components/stateful/SingleProcessPage.js +16 -26
  112. package/dist/module/src/components/stateful/TestPage.js +8 -6
  113. package/dist/module/src/hooks/useGitMode.js +17 -0
  114. package/dist/module/src/lib/BaseSuite.test/mock.js +15 -8
  115. package/dist/module/src/lib/BaseSuite.test/test.js +56 -80
  116. package/dist/module/src/lib/Tiposkripto.js +24 -0
  117. package/dist/module/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
  118. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
  119. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
  120. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
  121. package/dist/module/src/lib/pmProxy.test/specification.js +167 -52
  122. package/dist/module/src/services/FileService.js +468 -0
  123. package/dist/module/src/services/GitHubAuthService.js +180 -0
  124. package/dist/module/src/testeranto.js +38 -97
  125. package/dist/module/src/utils/api.js +10 -7
  126. package/dist/module/src/utils/gitTest.js +23 -0
  127. package/dist/module/src/utils.js +21 -12
  128. package/dist/module/testeranto.config.js +21 -17
  129. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  130. package/dist/prebuild/App.css +94 -121
  131. package/dist/prebuild/App.js +44601 -11225
  132. package/dist/prebuild/testeranto.mjs +4106 -0
  133. package/dist/types/design-editor/DesignEditor.d.ts +1 -18
  134. package/dist/types/src/App.d.ts +18 -0
  135. package/dist/types/src/PM/PM_WithBuild.d.ts +13 -0
  136. package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +2 -4
  137. package/dist/types/src/PM/PM_WithGit.d.ts +27 -0
  138. package/dist/types/src/PM/PM_WithProcesses.d.ts +29 -0
  139. package/dist/types/src/PM/PM_WithWebSocket.d.ts +108 -0
  140. package/dist/types/src/PM/base.d.ts +1 -1
  141. package/dist/types/src/PM/index.d.ts +0 -2
  142. package/dist/types/src/PM/main.d.ts +6 -77
  143. package/dist/types/src/PM/metafileOutputs.d.ts +0 -0
  144. package/dist/types/src/PM/node.d.ts +0 -2
  145. package/dist/types/src/PM/pure.d.ts +0 -2
  146. package/dist/types/src/PM/types.d.ts +118 -0
  147. package/dist/types/src/PM/utils.d.ts +35 -0
  148. package/dist/types/src/PM/web.d.ts +0 -2
  149. package/dist/types/src/Pure.d.ts +6 -1
  150. package/dist/types/src/ReportServer.d.ts +0 -1
  151. package/dist/types/src/ReportServerLib.d.ts +0 -1
  152. package/dist/types/src/Types.d.ts +1 -0
  153. package/dist/types/src/components/pure/ArtifactTree.d.ts +0 -0
  154. package/dist/types/src/components/pure/BuildLogViewer.d.ts +7 -0
  155. package/dist/types/src/components/pure/DebugEnv.d.ts +2 -0
  156. package/dist/types/src/components/pure/FileTree.d.ts +6 -0
  157. package/dist/types/src/components/pure/FileTreeItem.d.ts +8 -0
  158. package/dist/types/src/components/pure/GitHubLoginButton.d.ts +8 -0
  159. package/dist/types/src/components/pure/GitIntegrationView.d.ts +1 -0
  160. package/dist/types/src/components/pure/Settings.d.ts +1 -0
  161. package/dist/types/src/components/pure/Settings.test.d.ts +1 -0
  162. package/dist/types/src/components/pure/SignIn.d.ts +1 -0
  163. package/dist/types/src/components/pure/SingleProcessView.d.ts +10 -0
  164. package/dist/types/src/components/pure/TestPageView.d.ts +2 -1
  165. package/dist/types/src/components/pure/TestPageView_utils.d.ts +23 -0
  166. package/dist/types/src/components/pure/TestTable.d.ts +16 -0
  167. package/dist/types/src/components/pure/ToastNotification.d.ts +6 -0
  168. package/dist/types/src/components/pure/UserProfile.d.ts +2 -0
  169. package/dist/types/src/components/stateful/AuthCallbackPage.d.ts +2 -0
  170. package/dist/types/src/components/stateful/FileTree.d.ts +0 -8
  171. package/dist/types/src/components/stateful/GitIntegrationPage.d.ts +1 -0
  172. package/dist/types/src/hooks/useGitMode.d.ts +7 -0
  173. package/dist/types/src/lib/BaseSuite.test/mock.d.ts +2 -2
  174. package/dist/types/src/lib/BaseSuite.test/test.d.ts +4 -3
  175. package/dist/types/src/lib/Tiposkripto.d.ts +2 -0
  176. package/dist/types/src/lib/Tiposkripto.test/MockTiposkripto.d.ts +3 -0
  177. package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.types.d.ts +5 -0
  178. package/dist/types/src/lib/index.d.ts +6 -0
  179. package/dist/types/src/services/FileService.d.ts +34 -0
  180. package/dist/types/src/services/GitHubAuthService.d.ts +32 -0
  181. package/dist/types/src/utils/api.d.ts +1 -0
  182. package/dist/types/src/utils/gitTest.d.ts +11 -0
  183. package/dist/types/src/utils.d.ts +3 -3
  184. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  185. package/example/__pycache__/Calculator.cpython-313.pyc +0 -0
  186. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/README.md +187 -0
  187. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_given.go +163 -0
  188. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_suite.go +85 -0
  189. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_then.go +21 -0
  190. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_when.go +21 -0
  191. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/golingvu.go +554 -0
  192. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/test_adapter.go +33 -0
  193. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/types.go +72 -0
  194. package/example/vendor/modules.txt +5 -0
  195. package/git-integration-plan.md +395 -0
  196. package/package.json +26 -14
  197. package/src/App.tsx +169 -18
  198. package/src/PM/PM_WithBuild.ts +171 -0
  199. package/src/PM/PM_WithEslintAndTsc.ts +109 -86
  200. package/src/PM/PM_WithGit.ts +585 -0
  201. package/src/PM/PM_WithProcesses.ts +639 -0
  202. package/src/PM/PM_WithWebSocket.ts +631 -0
  203. package/src/PM/base.ts +63 -1
  204. package/src/PM/index.ts +8 -5
  205. package/src/PM/main.ts +672 -2050
  206. package/src/PM/metafileOutputs.ts +90 -0
  207. package/src/PM/node.ts +18 -18
  208. package/src/PM/pure.ts +5 -13
  209. package/src/PM/types.ts +145 -0
  210. package/src/PM/utils.ts +256 -0
  211. package/src/PM/web.ts +8 -8
  212. package/src/README.md +122 -0
  213. package/src/ReportServer.ts +0 -12
  214. package/src/ReportServerLib.ts +0 -147
  215. package/src/Types.ts +1 -0
  216. package/src/app.scss +14 -164
  217. package/src/components/pure/AppFrame.tsx +237 -71
  218. package/src/components/pure/ArtifactTree.tsx +82 -0
  219. package/src/components/pure/BuildLogViewer.tsx +168 -0
  220. package/src/components/pure/DebugEnv.tsx +30 -0
  221. package/src/components/pure/FileTree.tsx +58 -0
  222. package/src/components/pure/FileTreeItem.tsx +49 -0
  223. package/src/components/pure/GitHubLoginButton.tsx +31 -0
  224. package/src/components/pure/GitIntegrationView.tsx +443 -0
  225. package/src/components/pure/ProcessManager.tsx +6 -5
  226. package/src/components/pure/ProcessManagerView.tsx +162 -166
  227. package/src/components/pure/ProjectPageView.tsx +6 -224
  228. package/src/components/pure/Settings.test.tsx +34 -0
  229. package/src/components/pure/Settings.tsx +163 -0
  230. package/src/components/pure/SignIn.tsx +33 -0
  231. package/src/components/pure/SingleProcessView.tsx +231 -235
  232. package/src/components/pure/TestPageView.test/specification.ts +1 -0
  233. package/src/components/pure/TestPageView.tsx +317 -826
  234. package/src/components/pure/TestPageView_utils.tsx +285 -0
  235. package/src/components/pure/TestTable.tsx +88 -0
  236. package/src/components/pure/ToastNotification.tsx +19 -0
  237. package/src/components/pure/UserProfile.tsx +44 -0
  238. package/src/components/stateful/AuthCallbackPage.tsx +21 -0
  239. package/src/components/stateful/FeaturesReporter.tsx +3 -1
  240. package/src/components/stateful/FileTree.tsx +58 -58
  241. package/src/components/stateful/GitIntegrationPage.tsx +8 -0
  242. package/src/components/stateful/ProcessManagerPage.tsx +13 -17
  243. package/src/components/stateful/ProjectPage.tsx +6 -5
  244. package/src/components/stateful/ProjectsPage.tsx +17 -19
  245. package/src/components/stateful/SVGEditor/CircleForm.tsx +68 -0
  246. package/src/components/stateful/SVGEditor/GroupForm.tsx +56 -0
  247. package/src/components/stateful/SVGEditor/RectForm.tsx +74 -0
  248. package/src/components/stateful/SVGEditor/SVGAttributeField.tsx +29 -0
  249. package/src/components/stateful/SVGEditor/SVGAttributesEditor.tsx +73 -0
  250. package/src/components/stateful/SVGEditor/SVGEditorControls.tsx +45 -0
  251. package/src/components/stateful/SVGEditor/SVGElementForm.tsx +45 -0
  252. package/src/components/stateful/SVGEditor/SVGPreview.tsx +225 -0
  253. package/src/components/stateful/SVGEditor/SVGTextEditor.tsx +166 -0
  254. package/src/components/stateful/SVGEditor/SVGTree.tsx +159 -0
  255. package/src/components/stateful/SVGEditor/SVGTypes.ts +36 -0
  256. package/src/components/stateful/SVGEditor/svg.xsd.xml +3038 -0
  257. package/src/components/stateful/SVGEditorPage.tsx +503 -0
  258. package/src/components/stateful/SingleProcessPage.tsx +18 -31
  259. package/src/components/stateful/TestPage.tsx +25 -22
  260. package/src/golingvu/golingvu.go +38 -2
  261. package/src/hooks/useGitMode.ts +20 -0
  262. package/src/lib/BaseSuite.test/mock.ts +16 -10
  263. package/src/lib/BaseSuite.test/test.ts +144 -103
  264. package/src/lib/Tiposkripto.test/MockTiposkripto.ts +178 -14
  265. package/src/lib/Tiposkripto.test/Tiposkripto.adapter.ts +9 -14
  266. package/src/lib/Tiposkripto.test/Tiposkripto.implementation.ts +78 -38
  267. package/src/lib/Tiposkripto.test/Tiposkripto.specification.ts +51 -9
  268. package/src/lib/Tiposkripto.test/Tiposkripto.types.ts +5 -0
  269. package/src/lib/Tiposkripto.ts +27 -0
  270. package/src/lib/index.ts +7 -0
  271. package/src/lib/pmProxy.test/specification.ts +168 -166
  272. package/src/pitono/PM/__pycache__/python.cpython-313.pyc +0 -0
  273. package/src/pitono/__pycache__/Pitono.cpython-313.pyc +0 -0
  274. package/src/pitono/__pycache__/__init__.cpython-313.pyc +0 -0
  275. package/src/pitono/__pycache__/base_given.cpython-313.pyc +0 -0
  276. package/src/pitono/__pycache__/base_suite.cpython-313.pyc +0 -0
  277. package/src/pitono/__pycache__/base_then.cpython-313.pyc +0 -0
  278. package/src/pitono/__pycache__/base_when.cpython-313.pyc +0 -0
  279. package/src/pitono/__pycache__/core_generator.cpython-313.pyc +0 -0
  280. package/src/pitono/__pycache__/simple_adapter.cpython-313.pyc +0 -0
  281. package/src/pitono/__pycache__/types.cpython-313.pyc +0 -0
  282. package/src/services/FileService.ts +542 -0
  283. package/src/services/GitHubAuthService.ts +240 -0
  284. package/src/testeranto.ts +62 -140
  285. package/src/utils/api.ts +15 -13
  286. package/src/utils/gitTest.ts +29 -0
  287. package/src/utils.ts +21 -12
  288. package/testeranto/App.css +94 -121
  289. package/testeranto/App.js +44601 -11225
  290. package/testeranto/bundles/golang/core/Calculator.golingvu.go +53 -0
  291. package/testeranto/bundles/golang/core/Calculator.golingvu.golingvu.go +53 -0
  292. package/testeranto/bundles/node/core/chunk-RIM6RECA.mjs +1170 -0
  293. package/testeranto/bundles/node/core/chunk-VXVF7WFO.mjs +4321 -0
  294. package/testeranto/bundles/node/core/example/Calculator.test.mjs +503 -0
  295. package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +94 -1231
  296. package/testeranto/bundles/node/core/src/lib/TipoSkripto.test/TipoSkripto.mjs +574 -0
  297. package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +482 -0
  298. package/testeranto/bundles/pure/core/chunk-XYOCRDEQ.mjs +1080 -0
  299. package/testeranto/bundles/pure/core/src/Pure.test.mjs +410 -0
  300. package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +93 -1146
  301. package/testeranto/bundles/python/core/Calculator.pitono.test.py +24 -0
  302. package/testeranto/bundles/python/core/test_example.py +24 -0
  303. package/testeranto/bundles/web/core/MPLUSRounded1c-Black-O75GP5JI.ttf +0 -0
  304. package/testeranto/bundles/web/core/MPLUSRounded1c-Bold-R524Q5BH.ttf +0 -0
  305. package/testeranto/bundles/web/core/MPLUSRounded1c-ExtraBold-C6GRMYVT.ttf +0 -0
  306. package/testeranto/bundles/web/core/MPLUSRounded1c-Light-WKN65Y2C.ttf +0 -0
  307. package/testeranto/bundles/web/core/MPLUSRounded1c-Medium-ZC4DWL7C.ttf +0 -0
  308. package/testeranto/bundles/web/core/MPLUSRounded1c-Regular-DT6EKZ3S.ttf +0 -0
  309. package/testeranto/bundles/web/core/MPLUSRounded1c-Thin-YWDNVG6M.ttf +0 -0
  310. package/testeranto/bundles/web/core/chunk-DFRN4SYZ.mjs +2297 -0
  311. package/testeranto/bundles/web/core/chunk-JMDLMADH.mjs +27996 -0
  312. package/testeranto/bundles/web/core/chunk-LQMU5NCG.mjs +3082 -0
  313. package/testeranto/bundles/web/core/chunk-Q5TONB2Z.mjs +6874 -0
  314. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +164 -0
  315. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.css +11697 -0
  316. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.mjs +336 -0
  317. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +11697 -0
  318. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +517 -0
  319. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +107 -1134
  320. package/testeranto/metafiles/golang/core.json +3 -3
  321. package/testeranto/metafiles/node/core.json +474 -31
  322. package/testeranto/metafiles/pure/core.json +144 -28
  323. package/testeranto/metafiles/python/core.json +11 -0
  324. package/testeranto/metafiles/web/core.json +15829 -45
  325. package/testeranto/reports/core/config.json +40 -0
  326. package/testeranto/reports/core/src/Pure.test/pure/exit.log +0 -0
  327. package/testeranto/reports/core/src/Pure.test/pure/lint_errors.txt +0 -0
  328. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +14 -0
  329. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +73 -0
  330. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log +0 -0
  331. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +91 -0
  332. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +1 -0
  333. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +2 -0
  334. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/tests.json +68 -0
  335. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
  336. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
  337. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +30 -0
  338. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +1 -0
  339. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +2 -0
  340. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/tests.json +88 -0
  341. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
  342. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -6
  343. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +0 -11
  344. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +1 -0
  345. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +1 -1
  346. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +35 -38
  347. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -2
  348. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +0 -10
  349. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +40 -38
  350. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +1 -1
  351. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/exit.log +1 -0
  352. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/lint_errors.txt +0 -0
  353. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/message.txt +17 -0
  354. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/prompt.txt +17 -0
  355. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stderr.log +55 -0
  356. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stdout.log +191 -0
  357. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/type_errors.txt +71 -0
  358. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +1 -0
  359. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +15 -0
  360. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +17 -0
  361. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +17 -0
  362. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +20 -0
  363. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +4 -0
  364. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +49 -0
  365. package/testeranto/reports/core/summary.json +34 -6
  366. package/testeranto.config.ts +26 -20
  367. package/tsc.log +141 -91
  368. package/tsconfig.json +6 -2
  369. package/dist/prebuild/ReportServer.mjs +0 -227
  370. package/dist/prebuild/mothership/index.mjs +0 -22
  371. package/dist/types/design-editor/server.d.ts +0 -1
  372. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.html +0 -15
  373. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -2
  374. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -25
  375. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -56
  376. /package/testeranto/reports/core/src/{lib/BaseSuite.test/web.test/web → Pure.test/pure}/message.txt +0 -0
@@ -0,0 +1,479 @@
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
+ import fs, { watch } from "fs";
6
+ import path from "path";
7
+ import puppeteer, { executablePath } from "puppeteer-core";
8
+ import ansiC from "ansi-colors";
9
+ import { getRunnables } from "../utils";
10
+ import { fileHash, isValidUrl, pollForFile, writeFileAndCreateDir, puppeteerConfigs, filesHash, } from "./utils.js";
11
+ import { PM_WithGit } from "./PM_WithGit.js";
12
+ const fileHashes = {};
13
+ const changes = {};
14
+ export class PM_WithProcesses extends PM_WithGit {
15
+ constructor(configs, name, mode) {
16
+ super(configs, name, mode);
17
+ this.logStreams = {};
18
+ this.receiveFeaturesV2 = (reportDest, srcTest, platform) => {
19
+ const featureDestination = path.resolve(process.cwd(), "reports", "features", "strings", srcTest.split(".").slice(0, -1).join(".") + ".features.txt");
20
+ const testReportPath = `${reportDest}/tests.json`;
21
+ if (!fs.existsSync(testReportPath)) {
22
+ console.error(`tests.json not found at: ${testReportPath}`);
23
+ return;
24
+ }
25
+ const testReport = JSON.parse(fs.readFileSync(testReportPath, "utf8"));
26
+ // Add full path information to each test
27
+ if (testReport.tests) {
28
+ testReport.tests.forEach((test) => {
29
+ // Add the full path to each test
30
+ test.fullPath = path.resolve(process.cwd(), srcTest);
31
+ });
32
+ }
33
+ // Add full path to the report itself
34
+ testReport.fullPath = path.resolve(process.cwd(), srcTest);
35
+ // Write the modified report back
36
+ fs.writeFileSync(testReportPath, JSON.stringify(testReport, null, 2));
37
+ testReport.features
38
+ .reduce(async (mm, featureStringKey) => {
39
+ const accum = await mm;
40
+ const isUrl = isValidUrl(featureStringKey);
41
+ if (isUrl) {
42
+ const u = new URL(featureStringKey);
43
+ if (u.protocol === "file:") {
44
+ const newPath = `${process.cwd()}/testeranto/features/internal/${path.relative(process.cwd(), u.pathname)}`;
45
+ accum.files.push(u.pathname);
46
+ }
47
+ else if (u.protocol === "http:" || u.protocol === "https:") {
48
+ const newPath = `${process.cwd()}/testeranto/features/external/${u.hostname}${u.pathname}`;
49
+ const body = await this.configs.featureIngestor(featureStringKey);
50
+ writeFileAndCreateDir(newPath, body);
51
+ accum.files.push(newPath);
52
+ }
53
+ }
54
+ else {
55
+ await fs.promises.mkdir(path.dirname(featureDestination), {
56
+ recursive: true,
57
+ });
58
+ accum.strings.push(featureStringKey);
59
+ }
60
+ return accum;
61
+ }, Promise.resolve({ files: [], strings: [] }))
62
+ .then(({ files, strings }) => {
63
+ // Markdown files must be referenced in the prompt but string style features are already present in the tests.json file
64
+ fs.writeFileSync(`testeranto/reports/${this.name}/${srcTest
65
+ .split(".")
66
+ .slice(0, -1)
67
+ .join(".")}/${platform}/featurePrompt.txt`, files
68
+ .map((f) => {
69
+ return `/read ${f}`;
70
+ })
71
+ .join("\n"));
72
+ });
73
+ testReport.givens.forEach((g) => {
74
+ if (g.failed === true) {
75
+ this.summary[srcTest].failingFeatures[g.key] = g.features;
76
+ }
77
+ });
78
+ this.writeBigBoard();
79
+ };
80
+ this.checkForShutdown = () => {
81
+ this.checkQueue();
82
+ console.log(ansiC.inverse(`The following jobs are awaiting resources: ${JSON.stringify(this.queue)}`));
83
+ console.log(ansiC.inverse(`The status of ports: ${JSON.stringify(this.ports)}`));
84
+ this.writeBigBoard();
85
+ if (this.mode === "dev")
86
+ return;
87
+ let inflight = false;
88
+ Object.keys(this.summary).forEach((k) => {
89
+ if (this.summary[k].prompt === "?") {
90
+ console.log(ansiC.blue(ansiC.inverse(`🕕 prompt ${k}`)));
91
+ inflight = true;
92
+ }
93
+ });
94
+ Object.keys(this.summary).forEach((k) => {
95
+ if (this.summary[k].runTimeErrors === "?") {
96
+ console.log(ansiC.blue(ansiC.inverse(`🕕 runTimeError ${k}`)));
97
+ inflight = true;
98
+ }
99
+ });
100
+ Object.keys(this.summary).forEach((k) => {
101
+ if (this.summary[k].staticErrors === "?") {
102
+ console.log(ansiC.blue(ansiC.inverse(`🕕 staticErrors ${k}`)));
103
+ inflight = true;
104
+ }
105
+ });
106
+ Object.keys(this.summary).forEach((k) => {
107
+ if (this.summary[k].typeErrors === "?") {
108
+ console.log(ansiC.blue(ansiC.inverse(`🕕 typeErrors ${k}`)));
109
+ inflight = true;
110
+ }
111
+ });
112
+ this.writeBigBoard();
113
+ if (!inflight) {
114
+ if (this.browser) {
115
+ if (this.browser) {
116
+ this.browser.disconnect().then(() => {
117
+ console.log(ansiC.inverse(`${this.name} has been tested. Goodbye.`));
118
+ process.exit();
119
+ });
120
+ }
121
+ }
122
+ }
123
+ };
124
+ this.launchers = {};
125
+ this.ports = {};
126
+ this.queue = [];
127
+ this.configs.ports.forEach((element) => {
128
+ this.ports[element] = ""; // set ports as open
129
+ });
130
+ }
131
+ async metafileOutputs(platform) {
132
+ let metafilePath;
133
+ if (platform === "python") {
134
+ metafilePath = `./testeranto/metafiles/python/core.json`;
135
+ }
136
+ else {
137
+ metafilePath = `./testeranto/metafiles/${platform}/${this.name}.json`;
138
+ }
139
+ // Check if the file exists
140
+ if (!fs.existsSync(metafilePath)) {
141
+ if (platform === "python") {
142
+ console.log(ansiC.yellow(ansiC.inverse(`Pitono metafile not found yet: ${metafilePath}`)));
143
+ }
144
+ return;
145
+ }
146
+ let metafile;
147
+ try {
148
+ const fileContent = fs.readFileSync(metafilePath).toString();
149
+ const parsedData = JSON.parse(fileContent);
150
+ // Handle different metafile structures
151
+ if (platform === "python") {
152
+ // Pitono metafile might be the entire content or have a different structure
153
+ metafile = parsedData.metafile || parsedData;
154
+ }
155
+ else {
156
+ metafile = parsedData.metafile;
157
+ }
158
+ if (!metafile) {
159
+ console.log(ansiC.yellow(ansiC.inverse(`No metafile found in ${metafilePath}`)));
160
+ return;
161
+ }
162
+ }
163
+ catch (error) {
164
+ console.error(`Error reading metafile at ${metafilePath}:`, error);
165
+ return;
166
+ }
167
+ const outputs = metafile.outputs;
168
+ // Check if outputs exists and is an object
169
+ if (!outputs || typeof outputs !== 'object') {
170
+ console.log(ansiC.yellow(ansiC.inverse(`No outputs found in metafile at ${metafilePath}`)));
171
+ return;
172
+ }
173
+ Object.keys(outputs).forEach(async (k) => {
174
+ const pattern = `testeranto/bundles/${platform}/${this.name}/${this.configs.src}`;
175
+ if (!k.startsWith(pattern)) {
176
+ return;
177
+ }
178
+ const output = outputs[k];
179
+ // Check if the output entry exists and has inputs
180
+ if (!output || !output.inputs) {
181
+ return;
182
+ }
183
+ const addableFiles = Object.keys(output.inputs).filter((i) => {
184
+ if (!fs.existsSync(i))
185
+ return false;
186
+ if (i.startsWith("node_modules"))
187
+ return false;
188
+ if (i.startsWith("./node_modules"))
189
+ return false;
190
+ return true;
191
+ });
192
+ const f = `${k.split(".").slice(0, -1).join(".")}/`;
193
+ if (!fs.existsSync(f)) {
194
+ fs.mkdirSync(f, { recursive: true });
195
+ }
196
+ const entrypoint = output.entryPoint;
197
+ if (entrypoint) {
198
+ const changeDigest = await filesHash(addableFiles);
199
+ if (changeDigest === changes[entrypoint]) {
200
+ // skip
201
+ }
202
+ else {
203
+ changes[entrypoint] = changeDigest;
204
+ this.tscCheck({
205
+ platform,
206
+ addableFiles,
207
+ entrypoint: entrypoint,
208
+ });
209
+ this.eslintCheck(entrypoint, platform, addableFiles);
210
+ this.makePrompt(entrypoint, addableFiles, platform);
211
+ }
212
+ }
213
+ });
214
+ }
215
+ async start() {
216
+ // Wait for build processes to complete first
217
+ try {
218
+ await this.startBuildProcesses();
219
+ this.onBuildDone();
220
+ }
221
+ catch (error) {
222
+ console.error("Build processes failed:", error);
223
+ return;
224
+ }
225
+ // Continue with the rest of the setup after builds are done
226
+ this.mapping().forEach(async ([command, func]) => {
227
+ globalThis[command] = func;
228
+ });
229
+ if (!fs.existsSync(`testeranto/reports/${this.name}`)) {
230
+ fs.mkdirSync(`testeranto/reports/${this.name}`);
231
+ }
232
+ try {
233
+ this.browser = await puppeteer.launch(puppeteerConfigs);
234
+ }
235
+ catch (e) {
236
+ console.error(e);
237
+ console.error("could not start chrome via puppeter. Check this path: ", executablePath);
238
+ }
239
+ const { nodeEntryPoints, webEntryPoints, pureEntryPoints, pythonEntryPoints, golangEntryPoints, } = getRunnables(this.configs.tests, this.name);
240
+ [
241
+ [
242
+ nodeEntryPoints,
243
+ this.launchNode,
244
+ "node",
245
+ (w) => {
246
+ this.nodeMetafileWatcher = w;
247
+ },
248
+ ],
249
+ [
250
+ webEntryPoints,
251
+ this.launchWeb,
252
+ "web",
253
+ (w) => {
254
+ this.webMetafileWatcher = w;
255
+ },
256
+ ],
257
+ [
258
+ pureEntryPoints,
259
+ this.launchPure,
260
+ "pure",
261
+ (w) => {
262
+ this.importMetafileWatcher = w;
263
+ },
264
+ ],
265
+ [
266
+ pythonEntryPoints,
267
+ this.launchPython,
268
+ "python",
269
+ (w) => {
270
+ this.pitonoMetafileWatcher = w;
271
+ },
272
+ ],
273
+ [
274
+ golangEntryPoints,
275
+ this.launchGolang,
276
+ "golang",
277
+ (w) => {
278
+ // You might want to handle golang metafile watching here
279
+ },
280
+ ],
281
+ ].forEach(async ([eps, launcher, runtime, watcher]) => {
282
+ let metafile;
283
+ if (runtime === "python") {
284
+ metafile = `./testeranto/metafiles/python/core.json`;
285
+ const metafileDir = path.dirname(metafile);
286
+ if (!fs.existsSync(metafileDir)) {
287
+ fs.mkdirSync(metafileDir, { recursive: true });
288
+ }
289
+ }
290
+ else {
291
+ metafile = `./testeranto/metafiles/${runtime}/${this.name}.json`;
292
+ }
293
+ // Only poll for file if it's not a pitono runtime
294
+ if (runtime !== "python") {
295
+ await pollForFile(metafile);
296
+ }
297
+ Object.entries(eps).forEach(async ([inputFile, outputFile]) => {
298
+ this.launchers[inputFile] = () => launcher(inputFile, outputFile);
299
+ this.launchers[inputFile]();
300
+ try {
301
+ // Check if the file exists before watching
302
+ if (fs.existsSync(outputFile)) {
303
+ watch(outputFile, async (e, filename) => {
304
+ const hash = await fileHash(outputFile);
305
+ if (fileHashes[inputFile] !== hash) {
306
+ fileHashes[inputFile] = hash;
307
+ console.log(ansiC.yellow(ansiC.inverse(`< ${e} ${filename}`)));
308
+ this.launchers[inputFile]();
309
+ }
310
+ });
311
+ }
312
+ else {
313
+ console.log(ansiC.yellow(ansiC.inverse(`File not found, skipping watch: ${outputFile}`)));
314
+ }
315
+ }
316
+ catch (e) {
317
+ console.error(e);
318
+ }
319
+ });
320
+ this.metafileOutputs(runtime);
321
+ // For pitono, we need to wait for the file to be created
322
+ if (runtime === "python") {
323
+ // Use polling to wait for the file to exist
324
+ const checkFileExists = () => {
325
+ if (fs.existsSync(metafile)) {
326
+ console.log(ansiC.green(ansiC.inverse(`Pitono metafile found: ${metafile}`)));
327
+ // Set up the watcher once the file exists
328
+ watcher(watch(metafile, async (e, filename) => {
329
+ console.log(ansiC.yellow(ansiC.inverse(`< ${e} ${filename} (${runtime})`)));
330
+ this.metafileOutputs(runtime);
331
+ }));
332
+ // Read the metafile immediately
333
+ this.metafileOutputs(runtime);
334
+ }
335
+ else {
336
+ // Check again after a delay
337
+ setTimeout(checkFileExists, 1000);
338
+ }
339
+ };
340
+ // Start checking for the file
341
+ checkFileExists();
342
+ }
343
+ else {
344
+ // For other runtimes, only set up watcher if the file exists
345
+ if (fs.existsSync(metafile)) {
346
+ watcher(watch(metafile, async (e, filename) => {
347
+ console.log(ansiC.yellow(ansiC.inverse(`< ${e} ${filename} (${runtime})`)));
348
+ this.metafileOutputs(runtime);
349
+ }));
350
+ }
351
+ }
352
+ });
353
+ }
354
+ async stop() {
355
+ console.log(ansiC.inverse("Testeranto-Run is shutting down gracefully..."));
356
+ this.mode = "once";
357
+ this.nodeMetafileWatcher.close();
358
+ this.webMetafileWatcher.close();
359
+ this.importMetafileWatcher.close();
360
+ if (this.pitonoMetafileWatcher) {
361
+ this.pitonoMetafileWatcher.close();
362
+ }
363
+ if (this.gitWatcher) {
364
+ this.gitWatcher.close();
365
+ }
366
+ if (this.gitWatchTimeout) {
367
+ clearTimeout(this.gitWatchTimeout);
368
+ }
369
+ Object.values(this.logStreams || {}).forEach((logs) => logs.closeAll());
370
+ if (this.wss) {
371
+ this.wss.close(() => {
372
+ console.log("WebSocket server closed");
373
+ });
374
+ }
375
+ this.clients.forEach((client) => {
376
+ client.terminate();
377
+ });
378
+ this.clients.clear();
379
+ if (this.httpServer) {
380
+ this.httpServer.close(() => {
381
+ console.log("HTTP server closed");
382
+ });
383
+ }
384
+ this.checkForShutdown();
385
+ }
386
+ findIndexHtml() {
387
+ const possiblePaths = [
388
+ "dist/index.html",
389
+ "testeranto/dist/index.html",
390
+ "../dist/index.html",
391
+ "./index.html",
392
+ ];
393
+ for (const path of possiblePaths) {
394
+ if (fs.existsSync(path)) {
395
+ return path;
396
+ }
397
+ }
398
+ return null;
399
+ }
400
+ addToQueue(src, runtime) {
401
+ // Add the test to the queue
402
+ this.queue.push(src);
403
+ console.log(ansiC.green(ansiC.inverse(`Added ${src} (${runtime}) to the processing queue`)));
404
+ // Try to process the queue
405
+ this.checkQueue();
406
+ }
407
+ checkQueue() {
408
+ const x = this.queue.pop();
409
+ if (!x) {
410
+ ansiC.inverse(`The following queue is empty`);
411
+ return;
412
+ }
413
+ const test = this.configs.tests.find((t) => t[0] === x);
414
+ if (!test)
415
+ throw `test is undefined ${x}`;
416
+ // Get the appropriate launcher based on the runtime type
417
+ const runtime = test[1];
418
+ // Get the destination path from the runnables
419
+ const runnables = getRunnables(this.configs.tests, this.name);
420
+ let dest;
421
+ switch (runtime) {
422
+ case "node":
423
+ dest = runnables.nodeEntryPoints[x];
424
+ if (dest) {
425
+ this.launchNode(x, dest);
426
+ }
427
+ else {
428
+ console.error(`No destination found for node test: ${x}`);
429
+ }
430
+ break;
431
+ case "web":
432
+ dest = runnables.webEntryPoints[x];
433
+ if (dest) {
434
+ this.launchWeb(x, dest);
435
+ }
436
+ else {
437
+ console.error(`No destination found for web test: ${x}`);
438
+ }
439
+ break;
440
+ case "pure":
441
+ dest = runnables.pureEntryPoints[x];
442
+ if (dest) {
443
+ this.launchPure(x, dest);
444
+ }
445
+ else {
446
+ console.error(`No destination found for pure test: ${x}`);
447
+ }
448
+ break;
449
+ case "python":
450
+ dest = runnables.pythonEntryPoints[x];
451
+ if (dest) {
452
+ this.launchPython(x, dest);
453
+ }
454
+ else {
455
+ console.error(`No destination found for python test: ${x}`);
456
+ }
457
+ break;
458
+ case "golang":
459
+ dest = runnables.golangEntryPoints[x];
460
+ if (dest) {
461
+ this.launchGolang(x, dest);
462
+ }
463
+ else {
464
+ console.error(`No destination found for golang test: ${x}`);
465
+ }
466
+ break;
467
+ default:
468
+ console.error(`Unknown runtime: ${runtime} for test ${x}`);
469
+ break;
470
+ }
471
+ }
472
+ onBuildDone() {
473
+ console.log("Build processes completed");
474
+ // The builds are done, which means the files are ready to be watched
475
+ // This matches the original behavior where builds completed before PM_Main started
476
+ // Start Git watcher for development mode
477
+ this.startGitWatcher();
478
+ }
479
+ }