testeranto 0.200.1 → 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 (373) hide show
  1. package/README.md +26 -1
  2. package/design-editor/DesignEditor.tsx +40 -241
  3. package/dist/common/design-editor/DesignEditor.js +33 -198
  4. package/dist/common/src/App.js +158 -16
  5. package/dist/common/src/PM/PM_WithBuild.js +135 -0
  6. package/dist/common/src/PM/PM_WithEslintAndTsc.js +79 -67
  7. package/dist/common/src/PM/PM_WithGit.js +517 -0
  8. package/dist/common/src/PM/PM_WithProcesses.js +519 -0
  9. package/dist/common/src/PM/PM_WithWebSocket.js +535 -0
  10. package/dist/common/src/PM/base.js +62 -0
  11. package/dist/common/src/PM/main.js +533 -1676
  12. package/dist/common/src/PM/metafileOutputs.js +78 -0
  13. package/dist/common/src/PM/node.js +0 -6
  14. package/dist/common/src/PM/pure.js +0 -8
  15. package/dist/common/src/PM/types.js +1 -0
  16. package/dist/common/src/PM/utils.js +210 -0
  17. package/dist/common/src/PM/web.js +0 -6
  18. package/dist/common/src/ReportServer.js +0 -10
  19. package/dist/common/src/ReportServerLib.js +0 -140
  20. package/dist/common/src/components/pure/AppFrame.js +68 -56
  21. package/dist/common/src/components/pure/ArtifactTree.js +80 -0
  22. package/dist/common/src/components/pure/BuildLogViewer.js +106 -0
  23. package/dist/common/src/components/pure/DebugEnv.js +30 -0
  24. package/dist/common/src/components/pure/FileTree.js +34 -0
  25. package/dist/common/src/components/pure/FileTreeItem.js +29 -0
  26. package/dist/common/src/components/pure/GitHubLoginButton.js +18 -0
  27. package/dist/common/src/components/pure/GitIntegrationView.js +342 -0
  28. package/dist/common/src/components/pure/ProcessManager.js +1 -0
  29. package/dist/common/src/components/pure/ProcessManagerView.js +73 -74
  30. package/dist/common/src/components/pure/ProjectPageView.js +4 -117
  31. package/dist/common/src/components/pure/Settings.js +121 -0
  32. package/dist/common/src/components/pure/Settings.test.js +34 -0
  33. package/dist/common/src/components/pure/SignIn.js +22 -0
  34. package/dist/common/src/components/pure/SingleProcessView.js +166 -213
  35. package/dist/common/src/components/pure/TestPageView.js +113 -368
  36. package/dist/common/src/components/pure/TestPageView_utils.js +117 -0
  37. package/dist/common/src/components/pure/TestTable.js +33 -0
  38. package/dist/common/src/components/pure/ToastNotification.js +14 -0
  39. package/dist/common/src/components/pure/UserProfile.js +27 -0
  40. package/dist/common/src/components/stateful/AuthCallbackPage.js +51 -0
  41. package/dist/common/src/components/stateful/FeaturesReporter.js +2 -1
  42. package/dist/common/src/components/stateful/FileTree.js +58 -39
  43. package/dist/common/src/components/stateful/GitIntegrationPage.js +12 -0
  44. package/dist/common/src/components/stateful/ProcessManagerPage.js +13 -15
  45. package/dist/common/src/components/stateful/ProjectPage.js +6 -5
  46. package/dist/common/src/components/stateful/ProjectsPage.js +17 -19
  47. package/dist/common/src/components/stateful/SingleProcessPage.js +16 -26
  48. package/dist/common/src/components/stateful/TestPage.js +7 -5
  49. package/dist/common/src/hooks/useGitMode.js +21 -0
  50. package/dist/common/src/lib/BaseSuite.test/mock.js +15 -8
  51. package/dist/common/src/lib/BaseSuite.test/test.js +56 -80
  52. package/dist/common/src/lib/Tiposkripto.js +24 -0
  53. package/dist/common/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
  54. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
  55. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
  56. package/dist/common/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
  57. package/dist/common/src/lib/pmProxy.test/specification.js +167 -52
  58. package/dist/common/src/services/FileService.js +505 -0
  59. package/dist/common/src/services/GitHubAuthService.js +184 -0
  60. package/dist/common/src/testeranto.js +38 -97
  61. package/dist/common/src/utils/api.js +12 -8
  62. package/dist/common/src/utils/gitTest.js +27 -0
  63. package/dist/common/src/utils.js +23 -13
  64. package/dist/common/testeranto.config.js +21 -17
  65. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  66. package/dist/module/design-editor/DesignEditor.js +33 -199
  67. package/dist/module/src/App.js +121 -15
  68. package/dist/module/src/PM/PM_WithBuild.js +128 -0
  69. package/dist/module/src/PM/PM_WithEslintAndTsc.js +79 -67
  70. package/dist/module/src/PM/PM_WithGit.js +477 -0
  71. package/dist/module/src/PM/PM_WithProcesses.js +479 -0
  72. package/dist/module/src/PM/PM_WithWebSocket.js +528 -0
  73. package/dist/module/src/PM/base.js +62 -0
  74. package/dist/module/src/PM/main.js +533 -1676
  75. package/dist/module/src/PM/metafileOutputs.js +78 -0
  76. package/dist/module/src/PM/node.js +0 -6
  77. package/dist/module/src/PM/pure.js +0 -8
  78. package/dist/module/src/PM/types.js +1 -1
  79. package/dist/module/src/PM/utils.js +196 -0
  80. package/dist/module/src/PM/web.js +0 -6
  81. package/dist/module/src/ReportServer.js +1 -9
  82. package/dist/module/src/ReportServerLib.js +1 -134
  83. package/dist/module/src/components/pure/AppFrame.js +66 -24
  84. package/dist/module/src/components/pure/ArtifactTree.js +80 -0
  85. package/dist/module/src/components/pure/BuildLogViewer.js +99 -0
  86. package/dist/module/src/components/pure/DebugEnv.js +23 -0
  87. package/dist/module/src/components/pure/FileTree.js +27 -0
  88. package/dist/module/src/components/pure/FileTreeItem.js +22 -0
  89. package/dist/module/src/components/pure/GitHubLoginButton.js +11 -0
  90. package/dist/module/src/components/pure/GitIntegrationView.js +305 -0
  91. package/dist/module/src/components/pure/ProcessManager.js +1 -0
  92. package/dist/module/src/components/pure/ProcessManagerView.js +74 -75
  93. package/dist/module/src/components/pure/ProjectPageView.js +5 -118
  94. package/dist/module/src/components/pure/Settings.js +84 -0
  95. package/dist/module/src/components/pure/Settings.test.js +29 -0
  96. package/dist/module/src/components/pure/SignIn.js +15 -0
  97. package/dist/module/src/components/pure/SingleProcessView.js +130 -214
  98. package/dist/module/src/components/pure/TestPageView.js +97 -352
  99. package/dist/module/src/components/pure/TestPageView_utils.js +109 -0
  100. package/dist/module/src/components/pure/TestTable.js +26 -0
  101. package/dist/module/src/components/pure/ToastNotification.js +7 -0
  102. package/dist/module/src/components/pure/UserProfile.js +20 -0
  103. package/dist/module/src/components/stateful/AuthCallbackPage.js +14 -0
  104. package/dist/module/src/components/stateful/FeaturesReporter.js +2 -1
  105. package/dist/module/src/components/stateful/FileTree.js +59 -33
  106. package/dist/module/src/components/stateful/GitIntegrationPage.js +5 -0
  107. package/dist/module/src/components/stateful/ProcessManagerPage.js +13 -15
  108. package/dist/module/src/components/stateful/ProjectPage.js +6 -5
  109. package/dist/module/src/components/stateful/ProjectsPage.js +16 -18
  110. package/dist/module/src/components/stateful/SingleProcessPage.js +16 -26
  111. package/dist/module/src/components/stateful/TestPage.js +8 -6
  112. package/dist/module/src/hooks/useGitMode.js +17 -0
  113. package/dist/module/src/lib/BaseSuite.test/mock.js +15 -8
  114. package/dist/module/src/lib/BaseSuite.test/test.js +56 -80
  115. package/dist/module/src/lib/Tiposkripto.js +24 -0
  116. package/dist/module/src/lib/Tiposkripto.test/MockTiposkripto.js +154 -10
  117. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.adapter.js +6 -12
  118. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.implementation.js +63 -23
  119. package/dist/module/src/lib/Tiposkripto.test/Tiposkripto.specification.js +14 -6
  120. package/dist/module/src/lib/pmProxy.test/specification.js +167 -52
  121. package/dist/module/src/services/FileService.js +468 -0
  122. package/dist/module/src/services/GitHubAuthService.js +180 -0
  123. package/dist/module/src/testeranto.js +38 -97
  124. package/dist/module/src/utils/api.js +10 -7
  125. package/dist/module/src/utils/gitTest.js +23 -0
  126. package/dist/module/src/utils.js +21 -12
  127. package/dist/module/testeranto.config.js +21 -17
  128. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  129. package/dist/prebuild/App.css +94 -121
  130. package/dist/prebuild/App.js +44601 -11225
  131. package/dist/prebuild/testeranto.mjs +3113 -2256
  132. package/dist/types/design-editor/DesignEditor.d.ts +1 -18
  133. package/dist/types/src/App.d.ts +18 -0
  134. package/dist/types/src/PM/PM_WithBuild.d.ts +13 -0
  135. package/dist/types/src/PM/PM_WithEslintAndTsc.d.ts +2 -4
  136. package/dist/types/src/PM/PM_WithGit.d.ts +27 -0
  137. package/dist/types/src/PM/PM_WithProcesses.d.ts +29 -0
  138. package/dist/types/src/PM/PM_WithWebSocket.d.ts +108 -0
  139. package/dist/types/src/PM/base.d.ts +1 -1
  140. package/dist/types/src/PM/index.d.ts +0 -2
  141. package/dist/types/src/PM/main.d.ts +6 -77
  142. package/dist/types/src/PM/metafileOutputs.d.ts +0 -0
  143. package/dist/types/src/PM/node.d.ts +0 -2
  144. package/dist/types/src/PM/pure.d.ts +0 -2
  145. package/dist/types/src/PM/types.d.ts +118 -0
  146. package/dist/types/src/PM/utils.d.ts +35 -0
  147. package/dist/types/src/PM/web.d.ts +0 -2
  148. package/dist/types/src/Pure.d.ts +6 -1
  149. package/dist/types/src/ReportServer.d.ts +0 -1
  150. package/dist/types/src/ReportServerLib.d.ts +0 -1
  151. package/dist/types/src/Types.d.ts +1 -0
  152. package/dist/types/src/components/pure/ArtifactTree.d.ts +0 -0
  153. package/dist/types/src/components/pure/BuildLogViewer.d.ts +7 -0
  154. package/dist/types/src/components/pure/DebugEnv.d.ts +2 -0
  155. package/dist/types/src/components/pure/FileTree.d.ts +6 -0
  156. package/dist/types/src/components/pure/FileTreeItem.d.ts +8 -0
  157. package/dist/types/src/components/pure/GitHubLoginButton.d.ts +8 -0
  158. package/dist/types/src/components/pure/GitIntegrationView.d.ts +1 -0
  159. package/dist/types/src/components/pure/Settings.d.ts +1 -0
  160. package/dist/types/src/components/pure/Settings.test.d.ts +1 -0
  161. package/dist/types/src/components/pure/SignIn.d.ts +1 -0
  162. package/dist/types/src/components/pure/SingleProcessView.d.ts +10 -0
  163. package/dist/types/src/components/pure/TestPageView.d.ts +2 -1
  164. package/dist/types/src/components/pure/TestPageView_utils.d.ts +23 -0
  165. package/dist/types/src/components/pure/TestTable.d.ts +16 -0
  166. package/dist/types/src/components/pure/ToastNotification.d.ts +6 -0
  167. package/dist/types/src/components/pure/UserProfile.d.ts +2 -0
  168. package/dist/types/src/components/stateful/AuthCallbackPage.d.ts +2 -0
  169. package/dist/types/src/components/stateful/FileTree.d.ts +0 -8
  170. package/dist/types/src/components/stateful/GitIntegrationPage.d.ts +1 -0
  171. package/dist/types/src/hooks/useGitMode.d.ts +7 -0
  172. package/dist/types/src/lib/BaseSuite.test/mock.d.ts +2 -2
  173. package/dist/types/src/lib/BaseSuite.test/test.d.ts +4 -3
  174. package/dist/types/src/lib/Tiposkripto.d.ts +2 -0
  175. package/dist/types/src/lib/Tiposkripto.test/MockTiposkripto.d.ts +3 -0
  176. package/dist/types/src/lib/Tiposkripto.test/Tiposkripto.types.d.ts +5 -0
  177. package/dist/types/src/lib/index.d.ts +6 -0
  178. package/dist/types/src/services/FileService.d.ts +34 -0
  179. package/dist/types/src/services/GitHubAuthService.d.ts +32 -0
  180. package/dist/types/src/utils/api.d.ts +1 -0
  181. package/dist/types/src/utils/gitTest.d.ts +11 -0
  182. package/dist/types/src/utils.d.ts +3 -3
  183. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  184. package/example/__pycache__/Calculator.cpython-313.pyc +0 -0
  185. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/README.md +187 -0
  186. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_given.go +163 -0
  187. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_suite.go +85 -0
  188. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_then.go +21 -0
  189. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/base_when.go +21 -0
  190. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/golingvu.go +554 -0
  191. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/test_adapter.go +33 -0
  192. package/example/vendor/github.com/adamwong246/testeranto/src/golingvu/types.go +72 -0
  193. package/example/vendor/modules.txt +5 -0
  194. package/git-integration-plan.md +395 -0
  195. package/package.json +26 -14
  196. package/src/App.tsx +169 -18
  197. package/src/PM/PM_WithBuild.ts +171 -0
  198. package/src/PM/PM_WithEslintAndTsc.ts +109 -86
  199. package/src/PM/PM_WithGit.ts +585 -0
  200. package/src/PM/PM_WithProcesses.ts +639 -0
  201. package/src/PM/PM_WithWebSocket.ts +631 -0
  202. package/src/PM/base.ts +63 -1
  203. package/src/PM/index.ts +8 -5
  204. package/src/PM/main.ts +672 -2050
  205. package/src/PM/metafileOutputs.ts +90 -0
  206. package/src/PM/node.ts +18 -18
  207. package/src/PM/pure.ts +5 -13
  208. package/src/PM/types.ts +145 -0
  209. package/src/PM/utils.ts +256 -0
  210. package/src/PM/web.ts +8 -8
  211. package/src/README.md +122 -0
  212. package/src/ReportServer.ts +0 -12
  213. package/src/ReportServerLib.ts +0 -147
  214. package/src/Types.ts +1 -0
  215. package/src/app.scss +14 -164
  216. package/src/components/pure/AppFrame.tsx +237 -71
  217. package/src/components/pure/ArtifactTree.tsx +82 -0
  218. package/src/components/pure/BuildLogViewer.tsx +168 -0
  219. package/src/components/pure/DebugEnv.tsx +30 -0
  220. package/src/components/pure/FileTree.tsx +58 -0
  221. package/src/components/pure/FileTreeItem.tsx +49 -0
  222. package/src/components/pure/GitHubLoginButton.tsx +31 -0
  223. package/src/components/pure/GitIntegrationView.tsx +443 -0
  224. package/src/components/pure/ProcessManager.tsx +6 -5
  225. package/src/components/pure/ProcessManagerView.tsx +162 -166
  226. package/src/components/pure/ProjectPageView.tsx +6 -224
  227. package/src/components/pure/Settings.test.tsx +34 -0
  228. package/src/components/pure/Settings.tsx +163 -0
  229. package/src/components/pure/SignIn.tsx +33 -0
  230. package/src/components/pure/SingleProcessView.tsx +231 -235
  231. package/src/components/pure/TestPageView.test/specification.ts +1 -0
  232. package/src/components/pure/TestPageView.tsx +317 -826
  233. package/src/components/pure/TestPageView_utils.tsx +285 -0
  234. package/src/components/pure/TestTable.tsx +88 -0
  235. package/src/components/pure/ToastNotification.tsx +19 -0
  236. package/src/components/pure/UserProfile.tsx +44 -0
  237. package/src/components/stateful/AuthCallbackPage.tsx +21 -0
  238. package/src/components/stateful/FeaturesReporter.tsx +3 -1
  239. package/src/components/stateful/FileTree.tsx +58 -58
  240. package/src/components/stateful/GitIntegrationPage.tsx +8 -0
  241. package/src/components/stateful/ProcessManagerPage.tsx +13 -17
  242. package/src/components/stateful/ProjectPage.tsx +6 -5
  243. package/src/components/stateful/ProjectsPage.tsx +17 -19
  244. package/src/components/stateful/SVGEditor/CircleForm.tsx +68 -0
  245. package/src/components/stateful/SVGEditor/GroupForm.tsx +56 -0
  246. package/src/components/stateful/SVGEditor/RectForm.tsx +74 -0
  247. package/src/components/stateful/SVGEditor/SVGAttributeField.tsx +29 -0
  248. package/src/components/stateful/SVGEditor/SVGAttributesEditor.tsx +73 -0
  249. package/src/components/stateful/SVGEditor/SVGEditorControls.tsx +45 -0
  250. package/src/components/stateful/SVGEditor/SVGElementForm.tsx +45 -0
  251. package/src/components/stateful/SVGEditor/SVGPreview.tsx +225 -0
  252. package/src/components/stateful/SVGEditor/SVGTextEditor.tsx +166 -0
  253. package/src/components/stateful/SVGEditor/SVGTree.tsx +159 -0
  254. package/src/components/stateful/SVGEditor/SVGTypes.ts +36 -0
  255. package/src/components/stateful/SVGEditor/svg.xsd.xml +3038 -0
  256. package/src/components/stateful/SVGEditorPage.tsx +503 -0
  257. package/src/components/stateful/SingleProcessPage.tsx +18 -31
  258. package/src/components/stateful/TestPage.tsx +25 -22
  259. package/src/golingvu/golingvu.go +38 -2
  260. package/src/hooks/useGitMode.ts +20 -0
  261. package/src/lib/BaseSuite.test/mock.ts +16 -10
  262. package/src/lib/BaseSuite.test/test.ts +144 -103
  263. package/src/lib/Tiposkripto.test/MockTiposkripto.ts +178 -14
  264. package/src/lib/Tiposkripto.test/Tiposkripto.adapter.ts +9 -14
  265. package/src/lib/Tiposkripto.test/Tiposkripto.implementation.ts +78 -38
  266. package/src/lib/Tiposkripto.test/Tiposkripto.specification.ts +51 -9
  267. package/src/lib/Tiposkripto.test/Tiposkripto.types.ts +5 -0
  268. package/src/lib/Tiposkripto.ts +27 -0
  269. package/src/lib/index.ts +7 -0
  270. package/src/lib/pmProxy.test/specification.ts +168 -166
  271. package/src/pitono/PM/__pycache__/python.cpython-313.pyc +0 -0
  272. package/src/pitono/__pycache__/Pitono.cpython-313.pyc +0 -0
  273. package/src/pitono/__pycache__/__init__.cpython-313.pyc +0 -0
  274. package/src/pitono/__pycache__/base_given.cpython-313.pyc +0 -0
  275. package/src/pitono/__pycache__/base_suite.cpython-313.pyc +0 -0
  276. package/src/pitono/__pycache__/base_then.cpython-313.pyc +0 -0
  277. package/src/pitono/__pycache__/base_when.cpython-313.pyc +0 -0
  278. package/src/pitono/__pycache__/core_generator.cpython-313.pyc +0 -0
  279. package/src/pitono/__pycache__/simple_adapter.cpython-313.pyc +0 -0
  280. package/src/pitono/__pycache__/types.cpython-313.pyc +0 -0
  281. package/src/services/FileService.ts +542 -0
  282. package/src/services/GitHubAuthService.ts +240 -0
  283. package/src/testeranto.ts +62 -140
  284. package/src/utils/api.ts +15 -13
  285. package/src/utils/gitTest.ts +29 -0
  286. package/src/utils.ts +21 -12
  287. package/testeranto/App.css +94 -121
  288. package/testeranto/App.js +44601 -11225
  289. package/testeranto/bundles/golang/core/Calculator.golingvu.go +53 -0
  290. package/testeranto/bundles/golang/core/Calculator.golingvu.golingvu.go +53 -0
  291. package/testeranto/bundles/node/core/chunk-RIM6RECA.mjs +1170 -0
  292. package/testeranto/bundles/node/core/chunk-VXVF7WFO.mjs +4321 -0
  293. package/testeranto/bundles/node/core/example/Calculator.test.mjs +503 -0
  294. package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +94 -1231
  295. package/testeranto/bundles/node/core/src/lib/TipoSkripto.test/TipoSkripto.mjs +574 -0
  296. package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +482 -0
  297. package/testeranto/bundles/pure/core/chunk-XYOCRDEQ.mjs +1080 -0
  298. package/testeranto/bundles/pure/core/src/Pure.test.mjs +410 -0
  299. package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +93 -1146
  300. package/testeranto/bundles/python/core/Calculator.pitono.test.py +24 -0
  301. package/testeranto/bundles/python/core/test_example.py +24 -0
  302. package/testeranto/bundles/web/core/MPLUSRounded1c-Black-O75GP5JI.ttf +0 -0
  303. package/testeranto/bundles/web/core/MPLUSRounded1c-Bold-R524Q5BH.ttf +0 -0
  304. package/testeranto/bundles/web/core/MPLUSRounded1c-ExtraBold-C6GRMYVT.ttf +0 -0
  305. package/testeranto/bundles/web/core/MPLUSRounded1c-Light-WKN65Y2C.ttf +0 -0
  306. package/testeranto/bundles/web/core/MPLUSRounded1c-Medium-ZC4DWL7C.ttf +0 -0
  307. package/testeranto/bundles/web/core/MPLUSRounded1c-Regular-DT6EKZ3S.ttf +0 -0
  308. package/testeranto/bundles/web/core/MPLUSRounded1c-Thin-YWDNVG6M.ttf +0 -0
  309. package/testeranto/bundles/web/core/chunk-DFRN4SYZ.mjs +2297 -0
  310. package/testeranto/bundles/web/core/chunk-JMDLMADH.mjs +27996 -0
  311. package/testeranto/bundles/web/core/chunk-LQMU5NCG.mjs +3082 -0
  312. package/testeranto/bundles/web/core/chunk-Q5TONB2Z.mjs +6874 -0
  313. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +164 -0
  314. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.css +11697 -0
  315. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.mjs +336 -0
  316. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +11697 -0
  317. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +517 -0
  318. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +107 -1134
  319. package/testeranto/metafiles/golang/core.json +3 -3
  320. package/testeranto/metafiles/node/core.json +474 -31
  321. package/testeranto/metafiles/pure/core.json +144 -28
  322. package/testeranto/metafiles/python/core.json +11 -0
  323. package/testeranto/metafiles/web/core.json +15829 -45
  324. package/testeranto/reports/core/config.json +40 -0
  325. package/testeranto/reports/core/src/Pure.test/pure/exit.log +0 -0
  326. package/testeranto/reports/core/src/Pure.test/pure/lint_errors.txt +0 -0
  327. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +14 -0
  328. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +73 -0
  329. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/debug.log +0 -0
  330. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +91 -0
  331. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/exit.log +1 -0
  332. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +2 -0
  333. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/tests.json +68 -0
  334. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/warn.log +0 -0
  335. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/debug.log +0 -0
  336. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +30 -0
  337. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/exit.log +1 -0
  338. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +2 -0
  339. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/tests.json +88 -0
  340. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/warn.log +0 -0
  341. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -6
  342. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +0 -11
  343. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/stdout.log +1 -0
  344. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/tests.json +1 -1
  345. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +35 -38
  346. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -2
  347. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +0 -10
  348. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +40 -38
  349. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +1 -1
  350. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/exit.log +1 -0
  351. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/lint_errors.txt +0 -0
  352. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/message.txt +17 -0
  353. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/prompt.txt +17 -0
  354. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stderr.log +55 -0
  355. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/stdout.log +191 -0
  356. package/testeranto/reports/core/src/lib/TipoSkripto.test/TipoSkripto/node/type_errors.txt +71 -0
  357. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/exit.log +1 -0
  358. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +15 -0
  359. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/message.txt +17 -0
  360. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +17 -0
  361. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +20 -0
  362. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +4 -0
  363. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +49 -0
  364. package/testeranto/reports/core/summary.json +34 -6
  365. package/testeranto.config.ts +26 -20
  366. package/tsc.log +141 -91
  367. package/tsconfig.json +6 -2
  368. package/dist/types/design-editor/server.d.ts +0 -1
  369. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.html +0 -15
  370. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -2
  371. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -25
  372. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -56
  373. /package/testeranto/reports/core/src/{lib/BaseSuite.test/web.test/web → Pure.test/pure}/message.txt +0 -0
@@ -0,0 +1,542 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ export interface FileEntry {
3
+ name: string;
4
+ path: string;
5
+ type: "file" | "directory";
6
+ size?: number;
7
+ modified?: Date;
8
+ }
9
+
10
+ export interface FileStatus {
11
+ status: "unchanged" | "modified" | "added" | "deleted" | "conflicted";
12
+ }
13
+
14
+ export interface FileChange extends FileStatus {
15
+ path: string;
16
+ diff?: string;
17
+ }
18
+
19
+ export interface RemoteStatus {
20
+ ahead: number;
21
+ behind: number;
22
+ }
23
+
24
+ export interface FileService {
25
+ // Read operations
26
+ readFile(path: string): Promise<string>;
27
+ readDirectory(path: string): Promise<FileEntry[]>;
28
+ exists(path: string): Promise<boolean>;
29
+
30
+ // Write operations (mode-dependent)
31
+ writeFile(path: string, content: string): Promise<void>;
32
+ createDirectory(path: string): Promise<void>;
33
+ deleteFile(path: string): Promise<void>;
34
+
35
+ // Git integration
36
+ getFileStatus(path: string): Promise<FileStatus>;
37
+ getChanges(): Promise<FileChange[]>;
38
+ commitChanges(message: string, description?: string): Promise<void>;
39
+ pushChanges(): Promise<void>;
40
+ pullChanges(): Promise<void>;
41
+ getCurrentBranch(): Promise<string>;
42
+ getRemoteStatus(): Promise<RemoteStatus>;
43
+ }
44
+
45
+ // Static Mode Service (Read-only)
46
+ class StaticFileService implements FileService {
47
+ async readFile(path: string): Promise<string> {
48
+ const response = await fetch(path);
49
+ if (!response.ok) throw new Error(`Failed to read file: ${path}`);
50
+ return await response.text();
51
+ }
52
+
53
+ async readDirectory(path: string): Promise<FileEntry[]> {
54
+ // In static mode, we can't list directories from the client
55
+ // This would need to be provided by a server endpoint
56
+ return [];
57
+ }
58
+
59
+ async exists(path: string): Promise<boolean> {
60
+ try {
61
+ const response = await fetch(path, { method: "HEAD" });
62
+ return response.ok;
63
+ } catch {
64
+ return false;
65
+ }
66
+ }
67
+
68
+ // Write operations are no-ops in static mode
69
+ async writeFile(): Promise<void> {
70
+ /* no-op */
71
+ }
72
+ async createDirectory(): Promise<void> {
73
+ /* no-op */
74
+ }
75
+ async deleteFile(): Promise<void> {
76
+ /* no-op */
77
+ }
78
+
79
+ // Git operations are not available in static mode
80
+ async getFileStatus(): Promise<FileStatus> {
81
+ return { status: "unchanged" };
82
+ }
83
+
84
+ async getChanges(): Promise<FileChange[]> {
85
+ return [];
86
+ }
87
+
88
+ async commitChanges(): Promise<void> {
89
+ throw new Error("Commit not available in static mode");
90
+ }
91
+
92
+ async pushChanges(): Promise<void> {
93
+ throw new Error("Push not available in static mode");
94
+ }
95
+
96
+ async pullChanges(): Promise<void> {
97
+ throw new Error("Pull not available in static mode");
98
+ }
99
+
100
+ async getCurrentBranch(): Promise<string> {
101
+ return "main";
102
+ }
103
+
104
+ async getRemoteStatus(): Promise<{ ahead: number; behind: number }> {
105
+ return { ahead: 0, behind: 0 };
106
+ }
107
+ }
108
+
109
+ // Development Mode Service (Full filesystem access via server)
110
+ class DevelopmentFileService implements FileService {
111
+ private ws: WebSocket | null = null;
112
+ private changeCallbacks: ((changes: FileChange[]) => void)[] = [];
113
+ private statusCallbacks: ((status: RemoteStatus) => void)[] = [];
114
+ private branchCallbacks: ((branch: string) => void)[] = [];
115
+
116
+ constructor() {
117
+ this.connectWebSocket();
118
+ }
119
+
120
+ private connectWebSocket() {
121
+ try {
122
+ const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
123
+ const wsUrl = `${protocol}//${window.location.host}/api/git-ws`;
124
+ this.ws = new WebSocket(wsUrl);
125
+
126
+ this.ws.onopen = () => {
127
+ console.log('Git WebSocket connected');
128
+ // Request initial state
129
+ this.ws?.send(JSON.stringify({ type: 'get-initial-state' }));
130
+ };
131
+
132
+ this.ws.onmessage = (event) => {
133
+ try {
134
+ const data = JSON.parse(event.data);
135
+ switch (data.type) {
136
+ case 'changes':
137
+ this.changeCallbacks.forEach(callback => callback(data.changes));
138
+ break;
139
+ case 'status':
140
+ this.statusCallbacks.forEach(callback => callback(data.status));
141
+ break;
142
+ case 'branch':
143
+ this.branchCallbacks.forEach(callback => callback(data.branch));
144
+ break;
145
+ case 'error':
146
+ console.error('Git WebSocket error:', data.message);
147
+ break;
148
+ }
149
+ } catch (error) {
150
+ console.error('Error parsing WebSocket message:', error);
151
+ }
152
+ };
153
+
154
+ this.ws.onclose = () => {
155
+ console.log('Git WebSocket disconnected, attempting to reconnect...');
156
+ setTimeout(() => this.connectWebSocket(), 3000);
157
+ };
158
+
159
+ this.ws.onerror = (error) => {
160
+ console.error('Git WebSocket error:', error);
161
+ };
162
+ } catch (error) {
163
+ console.error('Failed to connect Git WebSocket:', error);
164
+ }
165
+ }
166
+
167
+ // Subscribe to real-time changes
168
+ onChanges(callback: (changes: FileChange[]) => void) {
169
+ this.changeCallbacks.push(callback);
170
+ return () => {
171
+ this.changeCallbacks = this.changeCallbacks.filter(cb => cb !== callback);
172
+ };
173
+ }
174
+
175
+ onStatusUpdate(callback: (status: RemoteStatus) => void) {
176
+ this.statusCallbacks.push(callback);
177
+ return () => {
178
+ this.statusCallbacks = this.statusCallbacks.filter(cb => cb !== callback);
179
+ };
180
+ }
181
+
182
+ onBranchUpdate(callback: (branch: string) => void) {
183
+ this.branchCallbacks.push(callback);
184
+ return () => {
185
+ this.branchCallbacks = this.branchCallbacks.filter(cb => cb !== callback);
186
+ };
187
+ }
188
+
189
+ async readFile(path: string): Promise<string> {
190
+ const response = await fetch(
191
+ `/api/files/read?path=${encodeURIComponent(path)}`
192
+ );
193
+ if (!response.ok) throw new Error(`Failed to read file: ${path}`);
194
+ return await response.text();
195
+ }
196
+
197
+ async readDirectory(path: string): Promise<FileEntry[]> {
198
+ const response = await fetch(
199
+ `/api/files/list?path=${encodeURIComponent(path)}`
200
+ );
201
+ if (!response.ok) throw new Error(`Failed to list directory: ${path}`);
202
+ return await response.json();
203
+ }
204
+
205
+ async exists(path: string): Promise<boolean> {
206
+ const response = await fetch(
207
+ `/api/files/exists?path=${encodeURIComponent(path)}`
208
+ );
209
+ return response.ok;
210
+ }
211
+
212
+ async writeFile(path: string, content: string): Promise<void> {
213
+ const response = await fetch("/api/files/write", {
214
+ method: "POST",
215
+ headers: { "Content-Type": "application/json" },
216
+ body: JSON.stringify({ path, content }),
217
+ });
218
+ if (!response.ok) throw new Error(`Failed to write file: ${path}`);
219
+
220
+ // Notify server to update git status
221
+ this.ws?.send(JSON.stringify({ type: 'file-changed', path }));
222
+ }
223
+
224
+ async createDirectory(path: string): Promise<void> {
225
+ const response = await fetch("/api/files/mkdir", {
226
+ method: "POST",
227
+ headers: { "Content-Type": "application/json" },
228
+ body: JSON.stringify({ path }),
229
+ });
230
+ if (!response.ok) throw new Error(`Failed to create directory: ${path}`);
231
+
232
+ this.ws?.send(JSON.stringify({ type: 'file-changed', path }));
233
+ }
234
+
235
+ async deleteFile(path: string): Promise<void> {
236
+ const response = await fetch("/api/files/delete", {
237
+ method: "POST",
238
+ headers: { "Content-Type": "application/json" },
239
+ body: JSON.stringify({ path }),
240
+ });
241
+ if (!response.ok) throw new Error(`Failed to delete file: ${path}`);
242
+
243
+ this.ws?.send(JSON.stringify({ type: 'file-changed', path }));
244
+ }
245
+
246
+ async getFileStatus(path: string): Promise<FileStatus> {
247
+ const response = await fetch(
248
+ `/api/git/status?path=${encodeURIComponent(path)}`
249
+ );
250
+ if (!response.ok) return { status: "unchanged" };
251
+ return await response.json();
252
+ }
253
+
254
+ async getChanges(): Promise<FileChange[]> {
255
+ const response = await fetch("/api/git/changes");
256
+ if (!response.ok) return [];
257
+ return await response.json();
258
+ }
259
+
260
+ async commitChanges(message: string, description?: string): Promise<void> {
261
+ const response = await fetch("/api/git/commit", {
262
+ method: "POST",
263
+ headers: { "Content-Type": "application/json" },
264
+ body: JSON.stringify({ message, description }),
265
+ });
266
+ if (!response.ok) {
267
+ const error = await response.text();
268
+ throw new Error(`Failed to commit changes: ${error}`);
269
+ }
270
+
271
+ // Request updated status after commit
272
+ this.ws?.send(JSON.stringify({ type: 'refresh-status' }));
273
+ }
274
+
275
+ async pushChanges(): Promise<void> {
276
+ const response = await fetch("/api/git/push", {
277
+ method: "POST",
278
+ });
279
+ if (!response.ok) {
280
+ const error = await response.text();
281
+ throw new Error(`Failed to push changes: ${error}`);
282
+ }
283
+
284
+ this.ws?.send(JSON.stringify({ type: 'refresh-status' }));
285
+ }
286
+
287
+ async pullChanges(): Promise<void> {
288
+ const response = await fetch("/api/git/pull", {
289
+ method: "POST",
290
+ });
291
+ if (!response.ok) {
292
+ const error = await response.text();
293
+ throw new Error(`Failed to pull changes: ${error}`);
294
+ }
295
+
296
+ this.ws?.send(JSON.stringify({ type: 'refresh-status' }));
297
+ }
298
+
299
+ async getCurrentBranch(): Promise<string> {
300
+ const response = await fetch("/api/git/branch");
301
+ if (!response.ok) return "main";
302
+ return await response.text();
303
+ }
304
+
305
+ async getRemoteStatus(): Promise<RemoteStatus> {
306
+ const response = await fetch("/api/git/remote-status");
307
+ if (!response.ok) return { ahead: 0, behind: 0 };
308
+ return await response.json();
309
+ }
310
+ }
311
+
312
+ // Git Mode Service (isomorphic-git based)
313
+ class GitFileService implements FileService {
314
+ private git: typeof import("isomorphic-git") | null = null;
315
+ private fs: typeof import("isomorphic-git/http/web") | null = null;
316
+ private dir = '/testeranto-git';
317
+
318
+ private async ensureGit() {
319
+ if (!this.git) {
320
+ this.git = await import("isomorphic-git");
321
+ this.fs = await import("isomorphic-git/http/web");
322
+ }
323
+ }
324
+
325
+ private async ensureBufferPolyfill() {
326
+ if (typeof window !== 'undefined' && !window.Buffer) {
327
+ const buffer = await import('buffer');
328
+ window.Buffer = buffer.Buffer;
329
+ }
330
+ }
331
+
332
+ async readFile(path: string): Promise<string> {
333
+ await this.ensureBufferPolyfill();
334
+ await this.ensureGit();
335
+ try {
336
+ const content = await this.git!.readBlob({
337
+ fs: window.fs,
338
+ dir: this.dir,
339
+ oid: await this.git!.resolveRef({ fs: window.fs, dir: this.dir, ref: 'HEAD' }),
340
+ filepath: path,
341
+ });
342
+ return new TextDecoder().decode(content.blob);
343
+ } catch (error) {
344
+ throw new Error(`Failed to read file: ${path}`);
345
+ }
346
+ }
347
+
348
+ async readDirectory(path: string): Promise<FileEntry[]> {
349
+ await this.ensureBufferPolyfill();
350
+ await this.ensureGit();
351
+ try {
352
+ const files = await this.git!.listFiles({
353
+ fs: window.fs,
354
+ dir: this.dir,
355
+ ref: 'HEAD',
356
+ });
357
+ return files.map(name => ({
358
+ name,
359
+ path: name,
360
+ type: name.includes('.') ? 'file' : 'directory',
361
+ }));
362
+ } catch (error) {
363
+ return [];
364
+ }
365
+ }
366
+
367
+ async exists(path: string): Promise<boolean> {
368
+ try {
369
+ await this.readFile(path);
370
+ return true;
371
+ } catch {
372
+ return false;
373
+ }
374
+ }
375
+
376
+ async writeFile(path: string, content: string): Promise<void> {
377
+ await this.ensureBufferPolyfill();
378
+ await this.ensureGit();
379
+ // In Git mode, files are written to the virtual file system
380
+ // This would need proper implementation with IndexedDB or similar
381
+ console.log('Git mode write:', path);
382
+ }
383
+
384
+ async createDirectory(path: string): Promise<void> {
385
+ // Directories are created automatically when writing files
386
+ console.log('Git mode create directory:', path);
387
+ }
388
+
389
+ async deleteFile(path: string): Promise<void> {
390
+ await this.ensureBufferPolyfill();
391
+ await this.ensureGit();
392
+ // Mark file for deletion in next commit
393
+ console.log('Git mode delete:', path);
394
+ }
395
+
396
+ async getFileStatus(path: string): Promise<FileStatus> {
397
+ await this.ensureBufferPolyfill();
398
+ await this.ensureGit();
399
+ try {
400
+ const status = await this.git!.status({
401
+ fs: window.fs,
402
+ dir: this.dir,
403
+ filepath: path,
404
+ });
405
+ return { status: status as FileStatus['status'] };
406
+ } catch {
407
+ return { status: 'unchanged' };
408
+ }
409
+ }
410
+
411
+ async getChanges(): Promise<FileChange[]> {
412
+ await this.ensureBufferPolyfill();
413
+ await this.ensureGit();
414
+ try {
415
+ const statusMatrix = await this.git!.statusMatrix({
416
+ fs: window.fs,
417
+ dir: this.dir,
418
+ });
419
+
420
+ return statusMatrix.map(([file, head, workdir, stage]) => {
421
+ let status: FileChange['status'] = 'unchanged';
422
+ if (head === 0 && workdir === 2) status = 'added';
423
+ else if (head === 1 && workdir === 0) status = 'deleted';
424
+ else if (workdir === 2) status = 'modified';
425
+ else if (head !== workdir) status = 'modified';
426
+
427
+ return { path: file, status };
428
+ }).filter(change => change.status !== 'unchanged');
429
+ } catch (error) {
430
+ console.warn('Failed to get changes:', error);
431
+ return [];
432
+ }
433
+ }
434
+
435
+ async commitChanges(message: string, description?: string): Promise<void> {
436
+ await this.ensureBufferPolyfill();
437
+ await this.ensureGit();
438
+ try {
439
+ // Stage all changes
440
+ const changes = await this.getChanges();
441
+ for (const change of changes) {
442
+ if (change.status === 'deleted') {
443
+ await this.git!.remove({
444
+ fs: window.fs,
445
+ dir: this.dir,
446
+ filepath: change.path,
447
+ });
448
+ } else {
449
+ await this.git!.add({
450
+ fs: window.fs,
451
+ dir: this.dir,
452
+ filepath: change.path,
453
+ });
454
+ }
455
+ }
456
+
457
+ // Commit
458
+ await this.git!.commit({
459
+ fs: window.fs,
460
+ dir: this.dir,
461
+ author: { name: 'Testeranto User', email: 'user@testeranto' },
462
+ message: description ? `${message}\n\n${description}` : message,
463
+ });
464
+ } catch (error) {
465
+ throw new Error(`Failed to commit changes: ${error instanceof Error ? error.message : 'Unknown error'}`);
466
+ }
467
+ }
468
+
469
+ async pushChanges(): Promise<void> {
470
+ await this.ensureBufferPolyfill();
471
+ await this.ensureGit();
472
+ try {
473
+ await this.git!.push({
474
+ fs: window.fs,
475
+ http: this.fs!,
476
+ dir: this.dir,
477
+ remote: 'origin',
478
+ ref: 'main',
479
+ onAuth: () => ({ username: 'token' }),
480
+ });
481
+ } catch (error) {
482
+ throw new Error(`Failed to push changes: ${error instanceof Error ? error.message : 'Unknown error'}`);
483
+ }
484
+ }
485
+
486
+ async pullChanges(): Promise<void> {
487
+ await this.ensureBufferPolyfill();
488
+ await this.ensureGit();
489
+ try {
490
+ await this.git!.pull({
491
+ fs: window.fs,
492
+ http: this.fs!,
493
+ dir: this.dir,
494
+ remote: 'origin',
495
+ ref: 'main',
496
+ singleBranch: true,
497
+ onAuth: () => ({ username: 'token' }),
498
+ });
499
+ } catch (error) {
500
+ throw new Error(`Failed to pull changes: ${error instanceof Error ? error.message : 'Unknown error'}`);
501
+ }
502
+ }
503
+
504
+ async getCurrentBranch(): Promise<string> {
505
+ await this.ensureBufferPolyfill();
506
+ await this.ensureGit();
507
+ try {
508
+ return await this.git!.currentBranch({
509
+ fs: window.fs,
510
+ dir: this.dir,
511
+ }) || 'main';
512
+ } catch {
513
+ return 'main';
514
+ }
515
+ }
516
+
517
+ async getRemoteStatus(): Promise<RemoteStatus> {
518
+ await this.ensureBufferPolyfill();
519
+ await this.ensureGit();
520
+ try {
521
+ // For now, return mock data
522
+ // In a real implementation, we'd compare local and remote branches
523
+ return { ahead: 0, behind: 0 };
524
+ } catch {
525
+ return { ahead: 0, behind: 0 };
526
+ }
527
+ }
528
+ }
529
+
530
+ // Factory function to get the appropriate FileService based on mode
531
+ export const getFileService = (mode: "static" | "dev" | "git"): FileService => {
532
+ switch (mode) {
533
+ case "static":
534
+ return new StaticFileService();
535
+ case "dev":
536
+ return new DevelopmentFileService();
537
+ case "git":
538
+ return new GitFileService();
539
+ default:
540
+ return new StaticFileService();
541
+ }
542
+ };