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,78 @@
1
+ "use strict";
2
+ // import { IRunTime } from "../Types";
3
+ // import { IOutputs, filesHash } from "./utils";
4
+ // import ansiC from "ansi-colors";
5
+ // import fs from "fs";
6
+ // export const metafileOutputs = async (platform: IRunTime) => {
7
+ // let metafilePath: string;
8
+ // if (platform === "python") {
9
+ // metafilePath = `./testeranto/metafiles/python/core.json`;
10
+ // } else {
11
+ // metafilePath = `./testeranto/metafiles/${platform}/${this.name}.json`;
12
+ // }
13
+ // // Check if the file exists
14
+ // if (!fs.existsSync(metafilePath)) {
15
+ // if (platform === "python") {
16
+ // console.log(
17
+ // ansiC.yellow(
18
+ // ansiC.inverse(`Pitono metafile not found yet: ${metafilePath}`)
19
+ // )
20
+ // );
21
+ // }
22
+ // return;
23
+ // }
24
+ // let metafile;
25
+ // try {
26
+ // const fileContent = fs.readFileSync(metafilePath).toString();
27
+ // const parsedData = JSON.parse(fileContent);
28
+ // // Handle different metafile structures
29
+ // if (platform === "python") {
30
+ // // Pitono metafile might be the entire content or have a different structure
31
+ // metafile = parsedData.metafile || parsedData;
32
+ // } else {
33
+ // metafile = parsedData.metafile;
34
+ // }
35
+ // if (!metafile) {
36
+ // console.log(
37
+ // ansiC.yellow(ansiC.inverse(`No metafile found in ${metafilePath}`))
38
+ // );
39
+ // return;
40
+ // }
41
+ // } catch (error) {
42
+ // console.error(`Error reading metafile at ${metafilePath}:`, error);
43
+ // return;
44
+ // }
45
+ // const outputs: IOutputs = metafile.outputs;
46
+ // Object.keys(outputs).forEach(async (k) => {
47
+ // const pattern = `testeranto/bundles/${platform}/${this.name}/${this.configs.src}`;
48
+ // if (!k.startsWith(pattern)) {
49
+ // return false;
50
+ // }
51
+ // const addableFiles = Object.keys(outputs[k].inputs).filter((i) => {
52
+ // if (!fs.existsSync(i)) return false;
53
+ // if (i.startsWith("node_modules")) return false;
54
+ // if (i.startsWith("./node_modules")) return false;
55
+ // return true;
56
+ // });
57
+ // const f = `${k.split(".").slice(0, -1).join(".")}/`;
58
+ // if (!fs.existsSync(f)) {
59
+ // fs.mkdirSync(f);
60
+ // }
61
+ // const entrypoint = outputs[k].entryPoint;
62
+ // if (entrypoint) {
63
+ // const changeDigest = await filesHash(addableFiles);
64
+ // if (changeDigest === changes[entrypoint]) {
65
+ // // skip
66
+ // } else {
67
+ // changes[entrypoint] = changeDigest;
68
+ // this.tscCheck({
69
+ // platform,
70
+ // addableFiles,
71
+ // entrypoint: entrypoint,
72
+ // });
73
+ // this.eslintCheck(entrypoint, platform, addableFiles);
74
+ // this.makePrompt(entrypoint, addableFiles, platform);
75
+ // }
76
+ // }
77
+ // });
78
+ // };
@@ -44,12 +44,6 @@ class PM_Node extends _1.PM {
44
44
  this.client.write(JSON.stringify([command, ...argz, key]));
45
45
  });
46
46
  }
47
- async launchSideCar(n) {
48
- return this.send("launchSideCar", n, this.testResourceConfiguration.name);
49
- }
50
- stopSideCar(n) {
51
- return this.send("stopSideCar", n, this.testResourceConfiguration.name);
52
- }
53
47
  async pages() {
54
48
  return this.send("pages", ...arguments);
55
49
  }
@@ -9,9 +9,6 @@ class PM_Pure extends _1.PM {
9
9
  getInnerHtml(selector, page) {
10
10
  throw new Error("pure.ts getInnerHtml not implemented");
11
11
  }
12
- stopSideCar(uid) {
13
- throw new Error("pure.ts stopSideCar not implemented");
14
- }
15
12
  constructor(t) {
16
13
  super();
17
14
  this.server = {};
@@ -28,10 +25,6 @@ class PM_Pure extends _1.PM {
28
25
  }
29
26
  async createWriteStream(filepath, testName) {
30
27
  throw new Error("pure.ts createWriteStream not implemented");
31
- return "";
32
- }
33
- launchSideCar(n) {
34
- return globalThis["launchSideCar"](n, this.testResourceConfiguration.name);
35
28
  }
36
29
  pages() {
37
30
  return globalThis["pages"]();
@@ -94,7 +87,6 @@ class PM_Pure extends _1.PM {
94
87
  writeFileSync() {
95
88
  return Promise.resolve(true);
96
89
  }
97
- /////////////////////////////////////////////////////
98
90
  end(uid) {
99
91
  return globalThis["end"](uid);
100
92
  }
@@ -1 +1,2 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.puppeteerConfigs = exports.filesHash = exports.statusMessagePretty = void 0;
7
+ exports.runtimeLogs = runtimeLogs;
8
+ exports.createLogStreams = createLogStreams;
9
+ exports.fileHash = fileHash;
10
+ exports.writeFileAndCreateDir = writeFileAndCreateDir;
11
+ exports.isValidUrl = isValidUrl;
12
+ exports.pollForFile = pollForFile;
13
+ /* eslint-disable @typescript-eslint/no-unused-vars */
14
+ const ansi_colors_1 = __importDefault(require("ansi-colors"));
15
+ const path_1 = __importDefault(require("path"));
16
+ const fs_1 = __importDefault(require("fs"));
17
+ const node_crypto_1 = __importDefault(require("node:crypto"));
18
+ function runtimeLogs(runtime, reportDest) {
19
+ const safeDest = reportDest || `testeranto/reports/default_${Date.now()}`;
20
+ try {
21
+ if (!fs_1.default.existsSync(safeDest)) {
22
+ fs_1.default.mkdirSync(safeDest, { recursive: true });
23
+ }
24
+ if (runtime === "node") {
25
+ return {
26
+ stdout: fs_1.default.createWriteStream(`${safeDest}/stdout.log`),
27
+ stderr: fs_1.default.createWriteStream(`${safeDest}/stderr.log`),
28
+ exit: fs_1.default.createWriteStream(`${safeDest}/exit.log`),
29
+ };
30
+ }
31
+ else if (runtime === "web") {
32
+ return {
33
+ info: fs_1.default.createWriteStream(`${safeDest}/info.log`),
34
+ warn: fs_1.default.createWriteStream(`${safeDest}/warn.log`),
35
+ error: fs_1.default.createWriteStream(`${safeDest}/error.log`),
36
+ debug: fs_1.default.createWriteStream(`${safeDest}/debug.log`),
37
+ exit: fs_1.default.createWriteStream(`${safeDest}/exit.log`),
38
+ };
39
+ }
40
+ else if (runtime === "pure") {
41
+ return {
42
+ exit: fs_1.default.createWriteStream(`${safeDest}/exit.log`),
43
+ };
44
+ }
45
+ else if (runtime === "pitono") {
46
+ return {
47
+ stdout: fs_1.default.createWriteStream(`${safeDest}/stdout.log`),
48
+ stderr: fs_1.default.createWriteStream(`${safeDest}/stderr.log`),
49
+ exit: fs_1.default.createWriteStream(`${safeDest}/exit.log`),
50
+ };
51
+ }
52
+ else {
53
+ throw `unknown runtime: ${runtime}`;
54
+ }
55
+ }
56
+ catch (e) {
57
+ console.error(`Failed to create log streams in ${safeDest}:`, e);
58
+ throw e;
59
+ }
60
+ }
61
+ function createLogStreams(reportDest, runtime) {
62
+ // Create directory if it doesn't exist
63
+ if (!fs_1.default.existsSync(reportDest)) {
64
+ fs_1.default.mkdirSync(reportDest, { recursive: true });
65
+ }
66
+ // const streams = {
67
+ // exit: fs.createWriteStream(`${reportDest}/exit.log`),
68
+ const safeDest = reportDest || `testeranto/reports/default_${Date.now()}`;
69
+ try {
70
+ if (!fs_1.default.existsSync(safeDest)) {
71
+ fs_1.default.mkdirSync(safeDest, { recursive: true });
72
+ }
73
+ const streams = runtimeLogs(runtime, safeDest);
74
+ // const streams = {
75
+ // exit: fs.createWriteStream(`${safeDest}/exit.log`),
76
+ // ...(runtime === "node" || runtime === "pure"
77
+ // ? {
78
+ // stdout: fs.createWriteStream(`${safeDest}/stdout.log`),
79
+ // stderr: fs.createWriteStream(`${safeDest}/stderr.log`),
80
+ // }
81
+ // : {
82
+ // info: fs.createWriteStream(`${safeDest}/info.log`),
83
+ // warn: fs.createWriteStream(`${safeDest}/warn.log`),
84
+ // error: fs.createWriteStream(`${safeDest}/error.log`),
85
+ // debug: fs.createWriteStream(`${safeDest}/debug.log`),
86
+ // }),
87
+ // };
88
+ return Object.assign(Object.assign({}, streams), { closeAll: () => {
89
+ Object.values(streams).forEach((stream) => !stream.closed && stream.close());
90
+ }, writeExitCode: (code, error) => {
91
+ if (error) {
92
+ streams.exit.write(`Error: ${error.message}\n`);
93
+ if (error.stack) {
94
+ streams.exit.write(`Stack Trace:\n${error.stack}\n`);
95
+ }
96
+ }
97
+ streams.exit.write(`${code}\n`);
98
+ }, exit: streams.exit });
99
+ }
100
+ catch (e) {
101
+ console.error(`Failed to create log streams in ${safeDest}:`, e);
102
+ throw e;
103
+ }
104
+ }
105
+ async function fileHash(filePath, algorithm = "md5") {
106
+ return new Promise((resolve, reject) => {
107
+ const hash = node_crypto_1.default.createHash(algorithm);
108
+ const fileStream = fs_1.default.createReadStream(filePath);
109
+ fileStream.on("data", (data) => {
110
+ hash.update(data);
111
+ });
112
+ fileStream.on("end", () => {
113
+ const fileHash = hash.digest("hex");
114
+ resolve(fileHash);
115
+ });
116
+ fileStream.on("error", (error) => {
117
+ reject(`Error reading file: ${error.message}`);
118
+ });
119
+ });
120
+ }
121
+ const statusMessagePretty = (failures, test, runtime) => {
122
+ if (failures === 0) {
123
+ console.log(ansi_colors_1.default.green(ansi_colors_1.default.inverse(`${runtime} > ${test}`)));
124
+ }
125
+ else if (failures > 0) {
126
+ console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${runtime} > ${test} failed ${failures} times (exit code: ${failures})`)));
127
+ }
128
+ else {
129
+ console.log(ansi_colors_1.default.red(ansi_colors_1.default.inverse(`${runtime} > ${test} crashed (exit code: -1)`)));
130
+ }
131
+ };
132
+ exports.statusMessagePretty = statusMessagePretty;
133
+ async function writeFileAndCreateDir(filePath, data) {
134
+ const dirPath = path_1.default.dirname(filePath);
135
+ try {
136
+ await fs_1.default.promises.mkdir(dirPath, { recursive: true });
137
+ await fs_1.default.writeFileSync(filePath, data);
138
+ }
139
+ catch (error) {
140
+ console.error(`Error writing file: ${error}`);
141
+ }
142
+ }
143
+ const filesHash = async (files, algorithm = "md5") => {
144
+ return new Promise((resolve, reject) => {
145
+ resolve(files.reduce(async (mm, f) => {
146
+ return (await mm) + (await fileHash(f));
147
+ }, Promise.resolve("")));
148
+ });
149
+ };
150
+ exports.filesHash = filesHash;
151
+ function isValidUrl(string) {
152
+ try {
153
+ new URL(string);
154
+ return true;
155
+ }
156
+ catch (err) {
157
+ return false;
158
+ }
159
+ }
160
+ // Wait for file to exist, checks every 2 seconds by default
161
+ async function pollForFile(path, timeout = 2000) {
162
+ const intervalObj = setInterval(function () {
163
+ const file = path;
164
+ const fileExists = fs_1.default.existsSync(file);
165
+ if (fileExists) {
166
+ clearInterval(intervalObj);
167
+ }
168
+ }, timeout);
169
+ }
170
+ const executablePath = "/opt/homebrew/bin/chromium";
171
+ exports.puppeteerConfigs = {
172
+ slowMo: 1,
173
+ waitForInitialPage: false,
174
+ executablePath,
175
+ headless: true,
176
+ defaultViewport: null, // Disable default 800x600 viewport
177
+ dumpio: false,
178
+ devtools: false,
179
+ args: [
180
+ "--allow-file-access-from-files",
181
+ "--allow-insecure-localhost",
182
+ "--allow-running-insecure-content",
183
+ "--auto-open-devtools-for-tabs",
184
+ "--disable-dev-shm-usage",
185
+ "--disable-extensions",
186
+ "--disable-features=site-per-process",
187
+ "--disable-gpu",
188
+ "--disable-setuid-sandbox",
189
+ "--disable-site-isolation-trials",
190
+ "--disable-web-security",
191
+ "--no-first-run",
192
+ "--no-sandbox",
193
+ "--no-startup-window",
194
+ "--reduce-security-for-testing",
195
+ "--remote-allow-origins=*",
196
+ "--start-maximized",
197
+ "--unsafely-treat-insecure-origin-as-secure=*",
198
+ `--remote-debugging-port=3234`,
199
+ // "--disable-features=IsolateOrigins,site-per-process",
200
+ // "--disable-features=IsolateOrigins",
201
+ // "--disk-cache-dir=/dev/null",
202
+ // "--disk-cache-size=1",
203
+ // "--no-zygote",
204
+ // "--remote-allow-origins=ws://localhost:3234",
205
+ // "--single-process",
206
+ // "--start-maximized",
207
+ // "--unsafely-treat-insecure-origin-as-secure",
208
+ // "--unsafely-treat-insecure-origin-as-secure=ws://192.168.0.101:3234",
209
+ ],
210
+ };
@@ -19,12 +19,6 @@ class PM_Web extends _1.PM {
19
19
  pages() {
20
20
  throw new Error("Method not implemented.");
21
21
  }
22
- stopSideCar(n) {
23
- return window["stopSideCar"](n, this.testResourceConfiguration.name);
24
- }
25
- launchSideCar(n) {
26
- return window["launchSideCar"](n, this.testResourceConfiguration.name);
27
- }
28
22
  waitForSelector(p, s) {
29
23
  return window["waitForSelector"](p, s);
30
24
  }
@@ -1,11 +1 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ReportServerLib_1 = require("./ReportServerLib");
4
- const server_1 = require("../design-editor/server");
5
- const port = process.argv[2] || 3000;
6
- const wssPort = Number(port) + 1; // Use next port for WebSocket
7
- // Start both servers
8
- (0, ReportServerLib_1.ReportServerOfPort)(port);
9
- (0, server_1.startDesignEditorServer)(wssPort);
10
- console.log(`Report server running on http://localhost:${port}`);
11
- console.log(`Design editor WebSocket running on ws://localhost:${wssPort}`);
@@ -1,141 +1 @@
1
1
  "use strict";
2
- // simple http server to preview reports
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ReportServerOfPort = void 0;
8
- const node_static_1 = __importDefault(require("node-static"));
9
- const http_1 = __importDefault(require("http"));
10
- const path_1 = __importDefault(require("path"));
11
- const fs_1 = __importDefault(require("fs"));
12
- const fileServer = new node_static_1.default.Server("./", {
13
- cache: false,
14
- headers: {
15
- "Cache-Control": "no-cache, no-store, must-revalidate",
16
- Pragma: "no-cache",
17
- Expires: "0",
18
- },
19
- });
20
- const server = http_1.default.createServer((req, res) => {
21
- // Handle potential double responses
22
- let responded = false;
23
- const safeResponse = (handler) => {
24
- if (responded)
25
- return;
26
- responded = true;
27
- try {
28
- handler();
29
- }
30
- catch (err) {
31
- console.error("Error handling request:", err);
32
- if (!res.headersSent) {
33
- res.writeHead(500);
34
- }
35
- res.end("Internal Server Error");
36
- }
37
- };
38
- req.on("error", (err) => {
39
- console.error("Request error:", err);
40
- safeResponse(() => {
41
- if (!res.headersSent) {
42
- res.writeHead(400);
43
- }
44
- res.end("Bad Request");
45
- });
46
- });
47
- req.on("end", () => {
48
- safeResponse(() => {
49
- const filePath = path_1.default.join(process.cwd(), req.url || "");
50
- // First check if file exists
51
- fs_1.default.stat(filePath, (err, stats) => {
52
- if (err || !stats.isFile()) {
53
- // Check if directory exists
54
- fs_1.default.stat(filePath, (dirErr, dirStats) => {
55
- if (!dirErr && dirStats.isDirectory()) {
56
- // Serve directory listing
57
- fs_1.default.readdir(filePath, (readErr, files) => {
58
- if (readErr) {
59
- res.writeHead(500);
60
- return res.end("Error reading directory");
61
- }
62
- res.writeHead(200, { "Content-Type": "text/html" });
63
- res.write(`
64
- <html>
65
- <head>
66
- <title>Directory Listing: ${req.url}</title>
67
- <style>
68
- body { font-family: sans-serif; margin: 2rem; }
69
- h1 { color: #333; }
70
- ul { list-style: none; padding: 0; }
71
- li { padding: 0.5rem; }
72
- li a { color: #0366d6; text-decoration: none; }
73
- li a:hover { text-decoration: underline; }
74
- </style>
75
- </head>
76
- <body>
77
- <h1>Directory: ${req.url}</h1>
78
- <ul>
79
- ${files
80
- .map((file) => `
81
- <li>
82
- <a href="${path_1.default.join(req.url || "", file)}">
83
- ${file}${file.endsWith("/") ? "/" : ""}
84
- </a>
85
- </li>
86
- `)
87
- .join("")}
88
- </ul>
89
- </body>
90
- </html>
91
- `);
92
- res.end();
93
- });
94
- }
95
- else {
96
- // Neither file nor directory exists - send 404
97
- if (!res.headersSent) {
98
- res.writeHead(404, { "Content-Type": "text/plain" });
99
- res.end("File not found");
100
- }
101
- }
102
- });
103
- return;
104
- }
105
- // File exists - serve it through node-static
106
- const serve = () => {
107
- fileServer.serve(req, res, (err) => {
108
- if (err && !res.headersSent) {
109
- res.writeHead(err.status || 500);
110
- res.end(err.message);
111
- }
112
- });
113
- };
114
- // Ensure we don't double-serve
115
- if (!res.headersSent) {
116
- serve();
117
- }
118
- });
119
- });
120
- });
121
- req.resume();
122
- });
123
- server.on("error", (err) => {
124
- console.error("Server error:", err);
125
- });
126
- process.on("uncaughtException", (err) => {
127
- console.error("Uncaught exception:", err);
128
- });
129
- const start = (port) => {
130
- if (port) {
131
- server.listen(port, () => {
132
- console.log(`Server running on http://localhost:${port}`);
133
- console.log("Serving files from:", process.cwd());
134
- });
135
- }
136
- else {
137
- console.log("you need to specify a port");
138
- }
139
- };
140
- const ReportServerOfPort = (port) => start(port);
141
- exports.ReportServerOfPort = ReportServerOfPort;
@@ -1,69 +1,81 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
36
6
  exports.AppFrame = void 0;
37
7
  /* eslint-disable @typescript-eslint/no-unused-vars */
38
- const react_1 = __importStar(require("react"));
8
+ const react_1 = __importDefault(require("react"));
39
9
  const react_bootstrap_1 = require("react-bootstrap");
40
10
  const react_router_dom_1 = require("react-router-dom");
41
11
  const react_router_dom_2 = require("react-router-dom");
12
+ const App_1 = require("../../App");
42
13
  const AppFrame = ({ children, title, rightContent }) => {
43
14
  const location = (0, react_router_dom_2.useLocation)();
44
- const [isExpanded, setIsExpanded] = (0, react_1.useState)(true);
45
- return (react_1.default.createElement("div", { className: "d-flex min-vh-100", style: { backgroundColor: '#f8f9fa' } },
46
- react_1.default.createElement("div", { className: "bg-light border-end d-flex flex-column", style: {
47
- width: isExpanded ? '250px' : '60px',
48
- minHeight: '100vh',
49
- transition: 'width 0.3s ease'
50
- }, onMouseEnter: () => setIsExpanded(true), onMouseLeave: () => setIsExpanded(false) },
51
- react_1.default.createElement("div", { className: "p-3 border-bottom d-flex align-items-center justify-content-center" }, isExpanded ? (react_1.default.createElement("img", { src: "/logo.svg", alt: "Testeranto Logo", style: { width: '128px', height: '128px' } })) : (react_1.default.createElement("img", { src: "/logo.svg", alt: "Testeranto Logo", style: { width: '40px', height: '40px' } }))),
15
+ const { isConnected } = (0, App_1.useWebSocket)();
16
+ const { tutorialMode } = (0, App_1.useTutorialMode)();
17
+ const { isAuthenticated, logout } = (0, App_1.useAuth)();
18
+ return (react_1.default.createElement("div", { className: "d-flex min-vh-100" },
19
+ react_1.default.createElement("div", { className: "border-end d-flex flex-column", style: {
20
+ width: '60px',
21
+ height: '100vh',
22
+ position: 'sticky',
23
+ top: 0
24
+ } },
25
+ tutorialMode ? (react_1.default.createElement(react_bootstrap_1.OverlayTrigger, { placement: "right", overlay: react_1.default.createElement(react_bootstrap_1.Tooltip, { id: "logo-tooltip" }, "Welcome to Testeranto!") },
26
+ react_1.default.createElement("div", { className: "p-3 border-bottom d-flex align-items-center justify-content-center" },
27
+ react_1.default.createElement("img", { src: "/logo.svg", alt: "Testeranto Logo", style: {
28
+ width: '40px',
29
+ height: '40px'
30
+ } })))) : (react_1.default.createElement("div", { className: "p-3 border-bottom d-flex align-items-center justify-content-center" },
31
+ react_1.default.createElement("img", { src: "/logo.svg", alt: "Testeranto Logo", style: {
32
+ width: '40px',
33
+ height: '40px'
34
+ } }))),
52
35
  react_1.default.createElement(react_bootstrap_1.Nav, { variant: "pills", className: "flex-column p-2 flex-grow-1" },
53
- react_1.default.createElement(react_bootstrap_1.Nav.Link, { as: react_router_dom_1.NavLink, to: "/", className: `${location.pathname === '/' ? 'active' : ''} text-truncate d-flex align-items-center`, style: { width: '100%' }, title: "Projects" },
54
- react_1.default.createElement("span", { className: "me-2" }, "\uD83D\uDCC1"),
55
- isExpanded && 'Projects'),
56
- react_1.default.createElement(react_bootstrap_1.Nav.Link, { as: react_router_dom_1.NavLink, to: "/processes", className: `${location.pathname.startsWith('/processes') ? 'active' : ''} text-truncate d-flex align-items-center`, style: { width: '100%' }, title: "Process Manager" },
57
- react_1.default.createElement("span", { className: "me-2" }, "\uD83D\uDCCA"),
58
- isExpanded && 'Process Manager'),
59
- react_1.default.createElement(react_bootstrap_1.Nav.Link, { as: react_router_dom_1.NavLink, to: "/settings", className: `${location.pathname === '/settings' ? 'active' : ''} text-truncate d-flex align-items-center`, style: { width: '100%' }, title: "Settings" },
60
- react_1.default.createElement("span", { className: "me-2" }, "\u2699\uFE0F"),
61
- isExpanded && 'Settings')),
62
- react_1.default.createElement("div", { className: "p-3 border-top text-center mt-auto" }, isExpanded ? (react_1.default.createElement("small", { className: "text-muted" },
63
- "made with \u2764\uFE0F and ",
64
- react_1.default.createElement("a", { href: "https://www.npmjs.com/package/testeranto" }, "testeranto"))) : (react_1.default.createElement("small", { className: "text-muted" }, "\u2764\uFE0F")))),
65
- react_1.default.createElement("div", { className: "flex-grow-1 d-flex flex-column" },
36
+ react_1.default.createElement(react_bootstrap_1.Nav.Link, { as: react_router_dom_1.NavLink, to: "/", className: `${location.pathname === '/' ? 'active' : ''} d-flex align-items-center justify-content-center`, style: { height: '40px', width: '40px' } }, tutorialMode ? (react_1.default.createElement(react_bootstrap_1.OverlayTrigger, { placement: "right", overlay: react_1.default.createElement(react_bootstrap_1.Tooltip, { id: "projects-tooltip" }, "Projects") },
37
+ react_1.default.createElement("span", null, "\uD83D\uDCC1"))) : (react_1.default.createElement("span", null, "\uD83D\uDCC1"))),
38
+ react_1.default.createElement(react_bootstrap_1.Nav.Link, { as: react_router_dom_1.NavLink, to: "/processes", className: `${location.pathname.startsWith('/processes') ? 'active' : ''} d-flex align-items-center justify-content-center ${!isConnected || !isAuthenticated ? 'text-muted pe-none' : ''}`, style: {
39
+ height: '40px',
40
+ width: '40px',
41
+ opacity: isConnected && isAuthenticated ? 1 : 0.6
42
+ }, onClick: (e) => {
43
+ if (!isConnected || !isAuthenticated) {
44
+ e.preventDefault();
45
+ }
46
+ } }, tutorialMode ? (react_1.default.createElement(react_bootstrap_1.OverlayTrigger, { placement: "right", overlay: react_1.default.createElement(react_bootstrap_1.Tooltip, { id: "processes-tooltip" },
47
+ "Processes ",
48
+ !isAuthenticated ? '(Sign in required)' : !isConnected ? '(WebSocket disconnected)' : '') },
49
+ react_1.default.createElement("span", null, "\uD83D\uDCCA"))) : (react_1.default.createElement("span", null, "\uD83D\uDCCA"))),
50
+ react_1.default.createElement(react_bootstrap_1.Nav.Link, { as: react_router_dom_1.NavLink, to: "/git", className: `${location.pathname === '/git' ? 'active' : ''} d-flex align-items-center justify-content-center ${!isAuthenticated ? 'text-muted pe-none' : ''}`, style: {
51
+ height: '40px',
52
+ width: '40px',
53
+ opacity: isAuthenticated ? 1 : 0.6
54
+ }, onClick: (e) => {
55
+ if (!isAuthenticated) {
56
+ e.preventDefault();
57
+ }
58
+ } }, tutorialMode ? (react_1.default.createElement(react_bootstrap_1.OverlayTrigger, { placement: "right", overlay: react_1.default.createElement(react_bootstrap_1.Tooltip, { id: "git-tooltip" },
59
+ "Git Integration ",
60
+ !isAuthenticated ? '(Sign in required)' : '') },
61
+ react_1.default.createElement("span", null, "\uD83D\uDC19"))) : (react_1.default.createElement("span", null, "\uD83D\uDC19"))),
62
+ react_1.default.createElement(react_bootstrap_1.Nav.Link, { as: react_router_dom_1.NavLink, to: "/settings", className: `${location.pathname === '/settings' ? 'active' : ''} d-flex align-items-center justify-content-center`, style: { height: '40px', width: '40px' } }, tutorialMode ? (react_1.default.createElement(react_bootstrap_1.OverlayTrigger, { placement: "right", overlay: react_1.default.createElement(react_bootstrap_1.Tooltip, { id: "settings-tooltip" }, "Settings") },
63
+ react_1.default.createElement("span", null, "\u2699\uFE0F"))) : (react_1.default.createElement("span", null, "\u2699\uFE0F")))),
64
+ react_1.default.createElement(react_bootstrap_1.OverlayTrigger, { placement: "right", overlay: react_1.default.createElement(react_bootstrap_1.Tooltip, { id: "status-tooltip" }, isConnected ? 'Dev mode - Full access' : 'Static mode - Read only') },
65
+ react_1.default.createElement("div", { className: "p-2 border-top d-flex align-items-center justify-content-center" },
66
+ react_1.default.createElement("span", { className: `badge rounded-circle d-flex align-items-center justify-content-center`, style: {
67
+ backgroundColor: isConnected ? '#198754' : '#6c757d',
68
+ width: '20px',
69
+ height: '20px',
70
+ fontSize: '12px'
71
+ } }, isConnected ? '🟢' : '🔴'))),
72
+ react_1.default.createElement(react_bootstrap_1.OverlayTrigger, { placement: "right", overlay: react_1.default.createElement(react_bootstrap_1.Tooltip, { id: "footer-tooltip" },
73
+ "made with \u2764\uFE0F and ",
74
+ react_1.default.createElement("a", { href: "https://www.npmjs.com/package/testeranto" }, "testeranto")) },
75
+ react_1.default.createElement("div", { className: "p-3 border-top text-center mt-auto" },
76
+ react_1.default.createElement("span", { className: "text-muted" }, "\u2764\uFE0F")))),
77
+ react_1.default.createElement("div", { className: "flex-grow-1 d-flex flex-column", style: { minHeight: '100vh' } },
66
78
  react_1.default.createElement("main", { className: "flex-grow-1 p-4", style: { overflow: 'auto' } },
67
- react_1.default.createElement(react_bootstrap_1.Container, { fluid: true, className: "h-100" }, children)))));
79
+ react_1.default.createElement(react_bootstrap_1.Container, { fluid: true, style: { height: '100%' } }, children)))));
68
80
  };
69
81
  exports.AppFrame = AppFrame;