testeranto 0.189.0 → 0.197.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 (632) hide show
  1. package/ALL_LICENSES.txt +11246 -0
  2. package/LICENSE +21 -0
  3. package/default-project.json +44 -0
  4. package/design-editor/DesignEditor.tsx +247 -0
  5. package/design-editor/index.ts +2 -0
  6. package/design-editor/server.ts +121 -0
  7. package/design-editor/types.ts +16 -0
  8. package/designs/default-project.json +210 -0
  9. package/dist/common/design-editor/DesignEditor.js +239 -0
  10. package/dist/common/design-editor/index.js +18 -0
  11. package/dist/common/design-editor/server.js +98 -0
  12. package/dist/common/design-editor/types.js +2 -0
  13. package/dist/common/src/App.js +11 -1
  14. package/dist/common/src/PM/PM_WithEslintAndTsc.js +8 -1
  15. package/dist/common/src/PM/base.js +1 -0
  16. package/dist/common/src/PM/main.js +370 -4
  17. package/dist/common/src/PM/node.js +4 -2
  18. package/dist/common/src/PM/pure.js +15 -57
  19. package/dist/common/src/PM/web.js +5 -3
  20. package/dist/common/src/Pure.test.js +46 -78
  21. package/dist/common/src/ReportServer.js +8 -2
  22. package/dist/common/src/build.js +1 -1
  23. package/dist/common/src/components/DesignEditorPage.js +169 -0
  24. package/dist/common/src/components/pure/AppFrame.js +62 -13
  25. package/dist/common/src/components/pure/ModalContent.test/implementation.js +13 -11
  26. package/dist/common/src/components/pure/ModalContent.test/index.js +48 -2
  27. package/dist/common/src/components/pure/ModalContent.test/specification.js +2 -2
  28. package/dist/common/src/components/pure/NavBar.js +9 -10
  29. package/dist/common/src/components/pure/ProcessManager.js +112 -0
  30. package/dist/common/src/components/pure/ProcessManagerView.js +237 -0
  31. package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +134 -106
  32. package/dist/common/src/components/pure/ProjectsPageView.js +18 -12
  33. package/dist/common/src/components/pure/SettingsButton.js +4 -74
  34. package/dist/common/src/components/pure/SingleProcessView.js +214 -0
  35. package/dist/common/src/components/pure/TestPageView.js +457 -78
  36. package/dist/common/src/components/pure/TestPageView.test/implementation.js +90 -135
  37. package/dist/common/src/components/stateful/FeaturesReporter.js +1 -1
  38. package/dist/common/src/components/stateful/FileTree.js +40 -0
  39. package/dist/common/src/components/stateful/ProcessManagerPage.js +112 -0
  40. package/dist/common/src/components/stateful/ProjectPage.js +6 -5
  41. package/dist/common/src/components/stateful/ProjectsPage.js +32 -6
  42. package/dist/common/src/components/stateful/SettingsPage.js +72 -0
  43. package/dist/common/src/components/stateful/SingleProcessPage.js +147 -0
  44. package/dist/common/src/components/stateful/TestPage.js +104 -8
  45. package/dist/common/src/components/stateful/TextEditorPage.js +154 -0
  46. package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +3 -4
  47. package/dist/common/src/lib/BaseSuite.js +6 -3
  48. package/dist/common/src/lib/BaseSuite.test/mock.js +17 -30
  49. package/dist/common/src/lib/BaseSuite.test/test.js +33 -31
  50. package/dist/common/src/lib/abstractBase.js +28 -8
  51. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.adapter.js +12 -6
  52. package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +12 -12
  53. package/dist/common/src/lib/basebuilder.js +1 -9
  54. package/dist/common/src/lib/classBuilder.js +3 -3
  55. package/dist/common/src/lib/core.js +3 -5
  56. package/dist/common/src/lib/index.js +11 -14
  57. package/dist/common/src/lib/pmProxy.js +37 -14
  58. package/dist/common/src/lib/pmProxy.test/adapter.js +12 -2
  59. package/dist/common/src/lib/pmProxy.test/implementation.js +73 -43
  60. package/dist/common/src/lib/pmProxy.test/specification.js +3 -0
  61. package/dist/common/src/utils/api.js +44 -33
  62. package/dist/common/src/utils/logFiles.js +48 -22
  63. package/dist/common/src/utils/makePrompt.js +5 -4
  64. package/dist/common/testeranto.config.js +15 -13
  65. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  66. package/dist/module/design-editor/DesignEditor.js +203 -0
  67. package/dist/module/design-editor/index.js +2 -0
  68. package/dist/module/design-editor/server.js +92 -0
  69. package/dist/module/src/App.js +11 -1
  70. package/dist/module/src/PM/PM_WithEslintAndTsc.js +8 -1
  71. package/dist/module/src/PM/base.js +1 -0
  72. package/dist/module/src/PM/main.js +370 -4
  73. package/dist/module/src/PM/node.js +4 -2
  74. package/dist/module/src/PM/pure.js +15 -57
  75. package/dist/module/src/PM/web.js +5 -3
  76. package/dist/module/src/Pure.test.js +46 -78
  77. package/dist/module/src/ReportServer.js +8 -2
  78. package/dist/module/src/build.js +1 -1
  79. package/dist/module/src/components/DesignEditorPage.js +132 -0
  80. package/dist/module/src/components/pure/AppFrame.js +30 -11
  81. package/dist/module/src/components/pure/ModalContent.test/implementation.js +13 -11
  82. package/dist/module/src/components/pure/ModalContent.test/index.js +48 -2
  83. package/dist/module/src/components/pure/ModalContent.test/specification.js +2 -2
  84. package/dist/module/src/components/pure/NavBar.js +10 -11
  85. package/dist/module/src/components/pure/ProcessManager.js +75 -0
  86. package/dist/module/src/components/pure/ProcessManagerView.js +200 -0
  87. package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +134 -106
  88. package/dist/module/src/components/pure/ProjectsPageView.js +20 -14
  89. package/dist/module/src/components/pure/SettingsButton.js +5 -42
  90. package/dist/module/src/components/pure/SingleProcessView.js +214 -0
  91. package/dist/module/src/components/pure/TestPageView.js +425 -76
  92. package/dist/module/src/components/pure/TestPageView.test/implementation.js +90 -135
  93. package/dist/module/src/components/stateful/FeaturesReporter.js +1 -1
  94. package/dist/module/src/components/stateful/FileTree.js +33 -0
  95. package/dist/module/src/components/stateful/ProcessManagerPage.js +75 -0
  96. package/dist/module/src/components/stateful/ProjectPage.js +6 -5
  97. package/dist/module/src/components/stateful/ProjectsPage.js +32 -6
  98. package/dist/module/src/components/stateful/SettingsPage.js +35 -0
  99. package/dist/module/src/components/stateful/SingleProcessPage.js +110 -0
  100. package/dist/module/src/components/stateful/TestPage.js +104 -8
  101. package/dist/module/src/components/stateful/TextEditorPage.js +117 -0
  102. package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +3 -4
  103. package/dist/module/src/lib/BaseSuite.js +6 -3
  104. package/dist/module/src/lib/BaseSuite.test/mock.js +17 -30
  105. package/dist/module/src/lib/BaseSuite.test/test.js +33 -31
  106. package/dist/module/src/lib/abstractBase.js +28 -8
  107. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.adapter.js +12 -6
  108. package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +12 -12
  109. package/dist/module/src/lib/basebuilder.js +1 -9
  110. package/dist/module/src/lib/classBuilder.js +3 -3
  111. package/dist/module/src/lib/core.js +3 -5
  112. package/dist/module/src/lib/index.js +11 -14
  113. package/dist/module/src/lib/pmProxy.js +37 -14
  114. package/dist/module/src/lib/pmProxy.test/adapter.js +12 -2
  115. package/dist/module/src/lib/pmProxy.test/implementation.js +73 -43
  116. package/dist/module/src/lib/pmProxy.test/specification.js +3 -0
  117. package/dist/module/src/utils/api.js +45 -34
  118. package/dist/module/src/utils/logFiles.js +45 -20
  119. package/dist/module/src/utils/makePrompt.js +5 -4
  120. package/dist/module/testeranto.config.js +15 -13
  121. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  122. package/dist/prebuild/App.css +54 -513
  123. package/dist/prebuild/App.js +13296 -2438
  124. package/dist/prebuild/ReportServer.mjs +104 -6
  125. package/dist/prebuild/build.mjs +8 -5
  126. package/dist/prebuild/run.mjs +389 -37
  127. package/dist/types/design-editor/DesignEditor.d.ts +18 -0
  128. package/dist/types/design-editor/server.d.ts +1 -0
  129. package/dist/types/{PM → src/PM}/index.d.ts +1 -1
  130. package/dist/types/{PM → src/PM}/main.d.ts +19 -0
  131. package/dist/types/{PM → src/PM}/pure.d.ts +7 -7
  132. package/dist/types/{Pure.test.d.ts → src/Pure.test.d.ts} +13 -1
  133. package/dist/types/src/components/DesignEditorPage.d.ts +1 -0
  134. package/dist/types/{components → src/components}/pure/AppFrame.d.ts +3 -1
  135. package/dist/types/{components/pure/ProjectPageView.test → src/components/pure/ModalContent.test}/index.d.ts +2 -1
  136. package/dist/types/{components → src/components}/pure/NavBar.d.ts +4 -0
  137. package/dist/types/src/components/pure/ProcessManager.d.ts +8 -0
  138. package/dist/types/src/components/pure/ProcessManagerView.d.ts +20 -0
  139. package/dist/types/{components → src/components}/pure/ProjectsPageView.d.ts +1 -1
  140. package/dist/types/src/components/pure/SettingsButton.d.ts +2 -0
  141. package/dist/types/{components → src/components}/pure/TestPageView.test/implementation.d.ts +3 -2
  142. package/dist/types/src/components/pure/TestPageView.test/index.d.ts +3 -0
  143. package/dist/types/src/components/stateful/FileTree.d.ts +8 -0
  144. package/dist/types/src/components/stateful/ProcessManagerPage.d.ts +2 -0
  145. package/dist/types/src/components/stateful/SettingsPage.d.ts +2 -0
  146. package/dist/types/src/components/stateful/SingleProcessPage.d.ts +2 -0
  147. package/dist/types/src/components/stateful/TextEditorPage.d.ts +1 -0
  148. package/dist/types/{lib → src/lib}/BaseSuite.test/mock.d.ts +3 -3
  149. package/dist/types/{lib → src/lib}/basebuilder.d.ts +1 -1
  150. package/dist/types/{lib → src/lib}/index.d.ts +1 -1
  151. package/dist/types/{lib → src/lib}/pmProxy.test/mockPMBase.d.ts +1 -1
  152. package/dist/types/src/run.d.ts +1 -0
  153. package/dist/types/src/utils/logFiles.d.ts +71 -0
  154. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  155. package/docs/test-page-components.md +91 -0
  156. package/package.json +27 -8
  157. package/src/App.tsx +11 -0
  158. package/src/PM/PM_WithEslintAndTsc.ts +9 -4
  159. package/src/PM/base.ts +1 -0
  160. package/src/PM/index.ts +1 -1
  161. package/src/PM/main.ts +424 -8
  162. package/src/PM/node.ts +5 -2
  163. package/src/PM/pure.ts +23 -61
  164. package/src/PM/web.ts +7 -3
  165. package/src/Pure.test.ts +63 -99
  166. package/src/README.md +20 -1
  167. package/src/ReportServer.ts +10 -3
  168. package/src/app.scss +169 -0
  169. package/src/build.ts +5 -1
  170. package/src/components/DesignEditorPage.tsx +169 -0
  171. package/src/components/pure/AppFrame.tsx +121 -16
  172. package/src/components/pure/ModalContent.test/implementation.tsx +14 -12
  173. package/src/components/pure/ModalContent.test/index.tsx +58 -6
  174. package/src/components/pure/ModalContent.test/specification.ts +2 -2
  175. package/src/components/pure/NavBar.tsx +31 -15
  176. package/src/components/pure/ProcessManager.tsx +117 -0
  177. package/src/components/pure/ProcessManagerView.tsx +414 -0
  178. package/src/components/pure/ProjectPageView.test/implementation.tsx +136 -106
  179. package/src/components/pure/ProjectPageView.test/index.tsx +0 -2
  180. package/src/components/pure/ProjectsPageView.tsx +41 -31
  181. package/src/components/pure/SettingsButton.tsx +7 -62
  182. package/src/components/pure/SingleProcessView.tsx +235 -0
  183. package/src/components/pure/TestPageView.test/implementation.ts +115 -147
  184. package/src/components/pure/TestPageView.test/specification.ts +0 -1
  185. package/src/components/pure/TestPageView.tsx +821 -100
  186. package/src/components/stateful/FeaturesReporter.tsx +1 -1
  187. package/src/components/stateful/FileTree.tsx +66 -0
  188. package/src/components/stateful/ProcessManagerPage.tsx +108 -0
  189. package/src/components/stateful/ProjectPage.tsx +6 -5
  190. package/src/components/stateful/ProjectsPage.tsx +36 -7
  191. package/src/components/stateful/SettingsPage.tsx +82 -0
  192. package/src/components/stateful/SingleProcessPage.tsx +155 -0
  193. package/src/components/stateful/TestPage.tsx +128 -20
  194. package/src/components/stateful/TextEditorPage.tsx +170 -0
  195. package/src/esbuildConfigs/inputFilesPlugin.ts +3 -4
  196. package/src/lib/BaseSuite.test/mock.ts +20 -41
  197. package/src/lib/BaseSuite.test/test.ts +38 -42
  198. package/src/lib/BaseSuite.ts +6 -3
  199. package/src/lib/abstractBase.ts +33 -14
  200. package/src/lib/baseBuilder.test/baseBuilder.test.adapter.ts +14 -7
  201. package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +15 -14
  202. package/src/lib/basebuilder.ts +4 -9
  203. package/src/lib/classBuilder.ts +8 -10
  204. package/src/lib/core.ts +3 -19
  205. package/src/lib/index.ts +19 -19
  206. package/src/lib/pmProxy.test/adapter.ts +10 -2
  207. package/src/lib/pmProxy.test/implementation.ts +108 -57
  208. package/src/lib/pmProxy.test/mockPMBase.ts +1 -1
  209. package/src/lib/pmProxy.test/specification.ts +11 -0
  210. package/src/lib/pmProxy.ts +40 -15
  211. package/src/style.scss +3 -502
  212. package/src/templates/frontpage.html +317 -40
  213. package/src/templates/frontpage.md +79 -0
  214. package/src/themes.scss +40 -8
  215. package/src/utils/api.ts +47 -44
  216. package/src/utils/logFiles.ts +57 -23
  217. package/src/utils/makePrompt.ts +5 -4
  218. package/stargazers.txt +15 -0
  219. package/stargzers.js +68 -0
  220. package/testeranto/App.css +54 -513
  221. package/testeranto/App.js +13296 -2438
  222. package/testeranto/bundles/node/core/{chunk-L67RWZ4W.mjs → chunk-4CSH4UJE.mjs} +89 -116
  223. package/testeranto/bundles/node/core/{chunk-JBB5E3XJ.mjs → chunk-4JTDLQVA.mjs} +4 -9
  224. package/testeranto/bundles/node/core/chunk-C3APFDUV.mjs +70 -0
  225. package/testeranto/bundles/node/core/src/lib/BaseSuite.test/node.test.mjs +30 -42
  226. package/testeranto/bundles/node/core/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +27 -31
  227. package/testeranto/bundles/node/core/src/lib/classBuilder.test/classBuilder.test.mjs +4 -16
  228. package/testeranto/bundles/node/core/src/lib/core.test/core.test.mjs +16 -27
  229. package/testeranto/bundles/node/core/src/lib/pmProxy.test/index.mjs +468 -517
  230. package/testeranto/bundles/pure/core/{chunk-KHJ35R7C.mjs → chunk-62UVCSQC.mjs} +97 -72
  231. package/testeranto/bundles/pure/core/src/Pure.test.mjs +56 -74
  232. package/testeranto/bundles/pure/core/src/lib/BaseSuite.test/pure.test.mjs +39 -66
  233. package/testeranto/bundles/pure/core/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +25 -19
  234. package/testeranto/metafiles/node/core.json +2906 -0
  235. package/testeranto/{bundles/pure/core/metafile.json → metafiles/pure/core.json} +66 -81
  236. package/testeranto/metafiles/web/core.json +546 -0
  237. package/testeranto/reports/core/config.json +0 -24
  238. package/testeranto/reports/core/src/Pure.test/pure/prompt.txt +1 -1
  239. package/testeranto/reports/core/src/Pure.test/pure/type_errors.txt +59 -94
  240. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/error.log +2 -55
  241. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/info.log +0 -2
  242. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/error.log +3 -33
  243. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/info.log +0 -4
  244. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/error.log +3 -0
  245. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/info.log +0 -2
  246. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/prompt.txt +2 -2
  247. package/testeranto/reports/core/src/lib/BaseSuite.test/node.test/node/type_errors.txt +38 -90
  248. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +1 -1
  249. package/testeranto/reports/core/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +38 -90
  250. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/error.log +2 -0
  251. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +10 -0
  252. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +3 -3
  253. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/stdout.log +6 -2
  254. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +4 -4
  255. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +22 -45
  256. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +10 -0
  257. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +1 -1
  258. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +22 -45
  259. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/error.log +2 -0
  260. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +4 -4
  261. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/tests.json +10 -10
  262. package/testeranto/reports/core/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +38 -90
  263. package/testeranto/reports/core/src/lib/core.test/core.test/node/prompt.txt +4 -4
  264. package/testeranto/reports/core/src/lib/core.test/core.test/node/type_errors.txt +5 -24
  265. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/lint_errors.txt +6 -14
  266. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/prompt.txt +3 -3
  267. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stderr.log +88 -0
  268. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/stdout.log +10 -0
  269. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/tests.json +33 -43
  270. package/testeranto/reports/core/src/lib/pmProxy.test/index/node/type_errors.txt +17 -43
  271. package/testeranto/reports/core/summary.json +15 -51
  272. package/testeranto/reportsweb_build_errors +546 -0
  273. package/testeranto.config.ts +16 -13
  274. package/tsc.log +37 -16
  275. package/tsconfig.json +3 -2
  276. package/CNAME +0 -1
  277. package/README.html +0 -302
  278. package/dist/common/src/PM/layers/base/PM_Base.js +0 -1
  279. package/dist/common/src/PM/layers/base/components/PageOperations.js +0 -1
  280. package/dist/common/src/PM/layers/base/components/PageOperations.testeranto.js +0 -1
  281. package/dist/common/src/PM/layers/linting/components/Linter.js +0 -1
  282. package/dist/common/src/PM/layers/linting/components/TypeChecker.js +0 -1
  283. package/dist/common/src/PM/layers/main/components/SidecarManager.js +0 -1
  284. package/dist/common/src/PM/layers/main/components/TestRunner.js +0 -1
  285. package/dist/module/src/PM/layers/base/PM_Base.js +0 -1
  286. package/dist/module/src/PM/layers/base/components/PageOperations.js +0 -1
  287. package/dist/module/src/PM/layers/base/components/PageOperations.testeranto.js +0 -1
  288. package/dist/module/src/PM/layers/linting/components/Linter.js +0 -1
  289. package/dist/module/src/PM/layers/linting/components/TypeChecker.js +0 -1
  290. package/dist/module/src/PM/layers/main/components/SidecarManager.js +0 -1
  291. package/dist/module/src/PM/layers/main/components/TestRunner.js +0 -1
  292. package/dist/tsconfig.tsbuildinfo +0 -1
  293. package/dist/types/PM/layers/base/components/PageOperations.d.ts +0 -0
  294. package/dist/types/PM/layers/base/components/PageOperations.testeranto.d.ts +0 -0
  295. package/dist/types/PM/layers/linting/components/Linter.d.ts +0 -0
  296. package/dist/types/PM/layers/linting/components/TypeChecker.d.ts +0 -0
  297. package/dist/types/PM/layers/main/components/SidecarManager.d.ts +0 -0
  298. package/dist/types/PM/layers/main/components/TestRunner.d.ts +0 -0
  299. package/dist/types/components/pure/SettingsButton.d.ts +0 -3
  300. package/dist/types/components/pure/TestPageView.test/index.d.ts +0 -32
  301. package/dist/types/utils/logFiles.d.ts +0 -7
  302. package/docs.html +0 -590
  303. package/example.css +0 -351
  304. package/index.html +0 -138
  305. package/scripts/compile-docs.js +0 -150
  306. package/smil30/SMIL-anim.mod.xsd +0 -163
  307. package/smil30/SMIL-control.mod.xsd +0 -73
  308. package/smil30/SMIL-layout.mod.xsd +0 -149
  309. package/smil30/SMIL-link.mod.xsd +0 -145
  310. package/smil30/SMIL-media.mod.xsd +0 -1646
  311. package/smil30/SMIL-metainformation.mod.xsd +0 -45
  312. package/smil30/SMIL-smiltext.mod.xsd +0 -353
  313. package/smil30/SMIL-state.mod.xsd +0 -133
  314. package/smil30/SMIL-struct.mod.xsd +0 -70
  315. package/smil30/SMIL-timing.mod.xsd +0 -105
  316. package/smil30/SMIL-transition.mod.xsd +0 -229
  317. package/smil30/SMIL.xsd +0 -63
  318. package/smil30/its.xsd +0 -42
  319. package/smil30/smil-attribs-1.mod.xsd +0 -610
  320. package/smil30/smil-datatypes-1.mod.xsd +0 -72
  321. package/smil30/smil-framework-1.mod.xsd +0 -45
  322. package/smil30/xml.xsd +0 -16
  323. package/src/App.scss +0 -123
  324. package/src/PM/layers/base/PM_Base.ts +0 -0
  325. package/src/PM/layers/base/components/PageOperations.testeranto.ts +0 -0
  326. package/src/PM/layers/base/components/PageOperations.ts +0 -0
  327. package/src/PM/layers/linting/components/Linter.ts +0 -0
  328. package/src/PM/layers/linting/components/TypeChecker.ts +0 -0
  329. package/src/PM/layers/main/components/SidecarManager.ts +0 -0
  330. package/src/PM/layers/main/components/TestRunner.ts +0 -0
  331. package/src/fonts.scss +0 -55
  332. package/style.css +0 -12175
  333. package/testeranto/bundles/node/core/chunk-ZQRRQYS4.mjs +0 -92
  334. package/testeranto/bundles/node/core/metafile.json +0 -5735
  335. package/testeranto/bundles/node/core/src/mothership/test.mjs +0 -24588
  336. package/testeranto/bundles/web/core/MPLUSRounded1c-Black-O75GP5JI.ttf +0 -0
  337. package/testeranto/bundles/web/core/MPLUSRounded1c-Bold-R524Q5BH.ttf +0 -0
  338. package/testeranto/bundles/web/core/MPLUSRounded1c-ExtraBold-C6GRMYVT.ttf +0 -0
  339. package/testeranto/bundles/web/core/MPLUSRounded1c-Light-WKN65Y2C.ttf +0 -0
  340. package/testeranto/bundles/web/core/MPLUSRounded1c-Medium-ZC4DWL7C.ttf +0 -0
  341. package/testeranto/bundles/web/core/MPLUSRounded1c-Regular-DT6EKZ3S.ttf +0 -0
  342. package/testeranto/bundles/web/core/MPLUSRounded1c-Thin-YWDNVG6M.ttf +0 -0
  343. package/testeranto/bundles/web/core/chunk-BADF3AZF.mjs +0 -108
  344. package/testeranto/bundles/web/core/chunk-BXV27S2S.mjs +0 -6252
  345. package/testeranto/bundles/web/core/chunk-EIYZKF2C.mjs +0 -223
  346. package/testeranto/bundles/web/core/chunk-FNXFUNA7.mjs +0 -28528
  347. package/testeranto/bundles/web/core/chunk-LU364HVS.mjs +0 -3311
  348. package/testeranto/bundles/web/core/chunk-QWII7WIM.mjs +0 -2281
  349. package/testeranto/bundles/web/core/chunk-VAYOSMXI.mjs +0 -21775
  350. package/testeranto/bundles/web/core/metafile.json +0 -18227
  351. package/testeranto/bundles/web/core/src/components/pure/AppFrame.test/index.css +0 -12105
  352. package/testeranto/bundles/web/core/src/components/pure/AppFrame.test/index.html +0 -15
  353. package/testeranto/bundles/web/core/src/components/pure/AppFrame.test/index.mjs +0 -517
  354. package/testeranto/bundles/web/core/src/components/pure/FeaturesReporterView.test/index.mjs +0 -166
  355. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.css +0 -12105
  356. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.html +0 -15
  357. package/testeranto/bundles/web/core/src/components/pure/ModalContent.test/index.mjs +0 -93
  358. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.css +0 -12105
  359. package/testeranto/bundles/web/core/src/components/pure/ProjectPageView.test/index.mjs +0 -343
  360. package/testeranto/bundles/web/core/src/components/pure/TestPageView.test/index.css +0 -12105
  361. package/testeranto/bundles/web/core/src/components/pure/TestPageView.test/index.mjs +0 -483
  362. package/testeranto/bundles/web/core/src/lib/BaseSuite.test/web.test.mjs +0 -394
  363. package/testeranto/bundles/web/core/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +0 -256
  364. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/debug.log +0 -0
  365. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/error.log +0 -22
  366. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/exit.log +0 -1
  367. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/info.log +0 -4
  368. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/lint_errors.txt +0 -2
  369. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/message.txt +0 -17
  370. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/prompt.txt +0 -18
  371. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/tests.json +0 -57
  372. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/type_errors.txt +0 -55
  373. package/testeranto/reports/core/src/components/pure/AppFrame.test/index/web/warn.log +0 -0
  374. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/lint_errors.txt +0 -0
  375. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/message.txt +0 -17
  376. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/prompt.txt +0 -16
  377. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/suite-0/given-basicRender/then-4/butThen/features-reporter.png +0 -0
  378. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/tests.json +0 -76
  379. package/testeranto/reports/core/src/components/pure/FeaturesReporterView.test/index/web/type_errors.txt +0 -80
  380. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/debug.log +0 -0
  381. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/error.log +0 -0
  382. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/exit.log +0 -0
  383. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/info.log +0 -4
  384. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/lint_errors.txt +0 -0
  385. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/message.txt +0 -17
  386. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/prompt.txt +0 -15
  387. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/suite-0/given-basicRender/then-2/butThen/modal-content.png +0 -0
  388. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/tests.json +0 -42
  389. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/type_errors.txt +0 -65
  390. package/testeranto/reports/core/src/components/pure/ModalContent.test/index/web/warn.log +0 -0
  391. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +0 -2
  392. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +0 -17
  393. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +0 -16
  394. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-basicRender/then-6/butThen/happy-state.png +0 -0
  395. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-errorHandling/then-1/butThen/error-state.png +0 -0
  396. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/tests.json +0 -99
  397. package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +0 -91
  398. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/lint_errors.txt +0 -0
  399. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/message.txt +0 -17
  400. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/prompt.txt +0 -18
  401. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/tests.json +0 -69
  402. package/testeranto/reports/core/src/components/pure/TestPageView.test/index/web/type_errors.txt +0 -111
  403. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -0
  404. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/message.txt +0 -17
  405. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -15
  406. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/tests.json +0 -31
  407. package/testeranto/reports/core/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -113
  408. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +0 -0
  409. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +0 -17
  410. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +0 -17
  411. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-0/butThen/hello.txt +0 -1
  412. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/suite-0/given-testInitialization/then-1/butThen/artifact_test.txt +0 -1
  413. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +0 -71
  414. package/testeranto/reports/core/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +0 -65
  415. package/testeranto/reports/core/src/mothership/test/node/exit.log +0 -1
  416. package/testeranto/reports/core/src/mothership/test/node/lint_errors.txt +0 -0
  417. package/testeranto/reports/core/src/mothership/test/node/message.txt +0 -17
  418. package/testeranto/reports/core/src/mothership/test/node/prompt.txt +0 -14
  419. package/testeranto/reports/core/src/mothership/test/node/stderr.log +0 -27
  420. package/testeranto/reports/core/src/mothership/test/node/stdout.log +0 -8
  421. package/testeranto/reports/core/src/mothership/test/node/tests.json +0 -36
  422. package/testeranto/reports/core/src/mothership/test/node/type_errors.txt +0 -38
  423. package/videos/download-smil-xsd.sh +0 -29
  424. package/videos/project0/index.md +0 -72
  425. package/videos/project0/narration.json +0 -7
  426. package/videos/project0/narration.ssml +0 -58
  427. package/videos/project0/package.json +0 -21
  428. package/videos/project0/presentation.smil +0 -25
  429. package/videos/project0/smil30/SMIL-anim.mod.xsd +0 -163
  430. package/videos/project0/smil30/SMIL-anim.mod.xsd.1 +0 -163
  431. package/videos/project0/smil30/SMIL-anim.mod.xsd.2 +0 -163
  432. package/videos/project0/smil30/SMIL-control.mod.xsd +0 -73
  433. package/videos/project0/smil30/SMIL-control.mod.xsd.1 +0 -73
  434. package/videos/project0/smil30/SMIL-control.mod.xsd.2 +0 -73
  435. package/videos/project0/smil30/SMIL-layout.mod.xsd +0 -149
  436. package/videos/project0/smil30/SMIL-layout.mod.xsd.1 +0 -149
  437. package/videos/project0/smil30/SMIL-layout.mod.xsd.2 +0 -149
  438. package/videos/project0/smil30/SMIL-link.mod.xsd +0 -145
  439. package/videos/project0/smil30/SMIL-link.mod.xsd.1 +0 -145
  440. package/videos/project0/smil30/SMIL-link.mod.xsd.2 +0 -145
  441. package/videos/project0/smil30/SMIL-media.mod.xsd +0 -1646
  442. package/videos/project0/smil30/SMIL-media.mod.xsd.1 +0 -1646
  443. package/videos/project0/smil30/SMIL-media.mod.xsd.2 +0 -1646
  444. package/videos/project0/smil30/SMIL-metainformation.mod.xsd +0 -45
  445. package/videos/project0/smil30/SMIL-metainformation.mod.xsd.1 +0 -45
  446. package/videos/project0/smil30/SMIL-metainformation.mod.xsd.2 +0 -45
  447. package/videos/project0/smil30/SMIL-smiltext.mod.xsd +0 -353
  448. package/videos/project0/smil30/SMIL-smiltext.mod.xsd.1 +0 -353
  449. package/videos/project0/smil30/SMIL-smiltext.mod.xsd.2 +0 -353
  450. package/videos/project0/smil30/SMIL-state.mod.xsd +0 -133
  451. package/videos/project0/smil30/SMIL-state.mod.xsd.1 +0 -133
  452. package/videos/project0/smil30/SMIL-state.mod.xsd.2 +0 -133
  453. package/videos/project0/smil30/SMIL-struct.mod.xsd +0 -70
  454. package/videos/project0/smil30/SMIL-struct.mod.xsd.1 +0 -70
  455. package/videos/project0/smil30/SMIL-struct.mod.xsd.2 +0 -70
  456. package/videos/project0/smil30/SMIL-timing.mod.xsd +0 -105
  457. package/videos/project0/smil30/SMIL-timing.mod.xsd.1 +0 -105
  458. package/videos/project0/smil30/SMIL-timing.mod.xsd.2 +0 -105
  459. package/videos/project0/smil30/SMIL-transition.mod.xsd +0 -229
  460. package/videos/project0/smil30/SMIL-transition.mod.xsd.1 +0 -229
  461. package/videos/project0/smil30/SMIL-transition.mod.xsd.2 +0 -229
  462. package/videos/project0/smil30/SMIL.xsd +0 -63
  463. package/videos/project0/smil30/SMIL.xsd.1 +0 -63
  464. package/videos/project0/smil30/SMIL.xsd.2 +0 -63
  465. package/videos/project0/smil30/its.xsd +0 -42
  466. package/videos/project0/smil30/its.xsd.1 +0 -42
  467. package/videos/project0/smil30/its.xsd.2 +0 -42
  468. package/videos/project0/smil30/smil-attribs-1.mod.xsd +0 -610
  469. package/videos/project0/smil30/smil-attribs-1.mod.xsd.1 +0 -610
  470. package/videos/project0/smil30/smil-attribs-1.mod.xsd.2 +0 -610
  471. package/videos/project0/smil30/smil-datatypes-1.mod.xsd +0 -72
  472. package/videos/project0/smil30/smil-datatypes-1.mod.xsd.1 +0 -72
  473. package/videos/project0/smil30/smil-datatypes-1.mod.xsd.2 +0 -72
  474. package/videos/project0/smil30/smil-framework-1.mod.xsd +0 -45
  475. package/videos/project0/smil30/smil-framework-1.mod.xsd.1 +0 -45
  476. package/videos/project0/smil30/smil-framework-1.mod.xsd.2 +0 -45
  477. package/videos/project0/smil30/smil-profile-model-1.mod.xsd +0 -1331
  478. package/videos/project0/smil30/smil-profile-model-1.mod.xsd.1 +0 -1331
  479. package/videos/project0/smil30/smil-qname-1.mod.xsd +0 -121
  480. package/videos/project0/smil30/smil-qname-1.mod.xsd.1 +0 -121
  481. package/videos/project0/smil30/xml.xsd +0 -16
  482. package/videos/project0/smil30/xml.xsd.1 +0 -16
  483. package/videos/project0/smil30/xml.xsd.2 +0 -16
  484. package/videos/project0/smil30.xsd +0 -137
  485. package/videos/project0/src/audio/metadata.json +0 -5
  486. package/videos/project0/src/audio/narration.mp3 +0 -0
  487. package/videos/project0/src/motion-canvas.d.ts +0 -1
  488. package/videos/project0/src/project.meta +0 -31
  489. package/videos/project0/src/project.ts +0 -13
  490. package/videos/project0/src/scenes/example.meta +0 -5
  491. package/videos/project0/src/scenes/scene1.meta +0 -3
  492. package/videos/project0/src/scenes/scene1.tsx +0 -129
  493. package/videos/project0/src/scenes/scene2.tsx +0 -132
  494. package/videos/project0/src/scenes/scene3.meta +0 -26
  495. package/videos/project0/src/scenes/scene3.tsx +0 -188
  496. package/videos/project0/tsconfig.json +0 -4
  497. package/videos/project0/vite.config.ts +0 -10
  498. package/videos/trash/output/project.mp4 +0 -0
  499. package/videos/trash/text.mp4 +0 -0
  500. package/videos/trash/video/project.tsx +0 -549
  501. package/videos/trash/video/render.ts +0 -15
  502. package/videos/trash/vite.config.ts +0 -10
  503. package/videos/tts.js +0 -109
  504. /package/dist/{types/ReportServer.d.ts → module/design-editor/types.js} +0 -0
  505. /package/dist/types/{App.d.ts → src/App.d.ts} +0 -0
  506. /package/dist/types/{CoreTypes.d.ts → src/CoreTypes.d.ts} +0 -0
  507. /package/dist/types/{Init.d.ts → src/Init.d.ts} +0 -0
  508. /package/dist/types/{Node.d.ts → src/Node.d.ts} +0 -0
  509. /package/dist/types/{NodeSidecar.d.ts → src/NodeSidecar.d.ts} +0 -0
  510. /package/dist/types/{PM → src/PM}/PM_WithEslintAndTsc.d.ts +0 -0
  511. /package/dist/types/{PM → src/PM}/__tests__/nodeSidecar.testeranto.d.ts +0 -0
  512. /package/dist/types/{PM → src/PM}/__tests__/pureSidecar.testeranto.d.ts +0 -0
  513. /package/dist/types/{PM → src/PM}/__tests__/webSidecar.testeranto.d.ts +0 -0
  514. /package/dist/types/{PM → src/PM}/base.d.ts +0 -0
  515. /package/dist/types/{PM → src/PM}/node.d.ts +0 -0
  516. /package/dist/types/{PM → src/PM}/nodeSidecar.d.ts +0 -0
  517. /package/dist/types/{PM → src/PM}/pureSidecar.d.ts +0 -0
  518. /package/dist/types/{PM → src/PM}/sidecar.d.ts +0 -0
  519. /package/dist/types/{PM → src/PM}/types.d.ts +0 -0
  520. /package/dist/types/{PM → src/PM}/web.d.ts +0 -0
  521. /package/dist/types/{PM → src/PM}/webSidecar.d.ts +0 -0
  522. /package/dist/types/{Pure.d.ts → src/Pure.d.ts} +0 -0
  523. /package/dist/types/{PureSidecar.d.ts → src/PureSidecar.d.ts} +0 -0
  524. /package/dist/types/{build.d.ts → src/ReportServer.d.ts} +0 -0
  525. /package/dist/types/{ReportServer.test.ts → src/ReportServer.test.ts}/index.d.ts +0 -0
  526. /package/dist/types/{ReportServerLib.d.ts → src/ReportServerLib.d.ts} +0 -0
  527. /package/dist/types/{Types.d.ts → src/Types.d.ts} +0 -0
  528. /package/dist/types/{Web.d.ts → src/Web.d.ts} +0 -0
  529. /package/dist/types/{WebSidecar.d.ts → src/WebSidecar.d.ts} +0 -0
  530. /package/dist/types/{init-docs.d.ts → src/build.d.ts} +0 -0
  531. /package/dist/types/{components → src/components}/SunriseAnimation.d.ts +0 -0
  532. /package/dist/types/{components → src/components}/SunriseAnimation.test/implementation.d.ts +0 -0
  533. /package/dist/types/{components → src/components}/SunriseAnimation.test/index.d.ts +0 -0
  534. /package/dist/types/{components → src/components}/SunriseAnimation.test/interface.d.ts +0 -0
  535. /package/dist/types/{components → src/components}/SunriseAnimation.test/specification.d.ts +0 -0
  536. /package/dist/types/{components → src/components}/SunriseAnimation.test/types.d.ts +0 -0
  537. /package/dist/types/{components → src/components}/TestStatusBadge.d.ts +0 -0
  538. /package/dist/types/{components → src/components}/pure/AppFrame.test/implementation.d.ts +0 -0
  539. /package/dist/types/{components → src/components}/pure/AppFrame.test/index.d.ts +0 -0
  540. /package/dist/types/{components → src/components}/pure/AppFrame.test/specification.d.ts +0 -0
  541. /package/dist/types/{components → src/components}/pure/AppFrame.test/types.d.ts +0 -0
  542. /package/dist/types/{components → src/components}/pure/FeaturesReporterView.d.ts +0 -0
  543. /package/dist/types/{components → src/components}/pure/FeaturesReporterView.test/implementation.d.ts +0 -0
  544. /package/dist/types/{components → src/components}/pure/FeaturesReporterView.test/index.d.ts +0 -0
  545. /package/dist/types/{components → src/components}/pure/FeaturesReporterView.test/specification.d.ts +0 -0
  546. /package/dist/types/{components → src/components}/pure/FeaturesReporterView.test/types.d.ts +0 -0
  547. /package/dist/types/{components → src/components}/pure/ModalContent.d.ts +0 -0
  548. /package/dist/types/{components → src/components}/pure/ModalContent.test/implementation.d.ts +0 -0
  549. /package/dist/types/{components → src/components}/pure/ModalContent.test/specification.d.ts +0 -0
  550. /package/dist/types/{components → src/components}/pure/ModalContent.test/types.d.ts +0 -0
  551. /package/dist/types/{components → src/components}/pure/ProjectPageView.d.ts +0 -0
  552. /package/dist/types/{components → src/components}/pure/ProjectPageView.test/implementation.d.ts +0 -0
  553. /package/dist/types/{components/pure/ModalContent.test → src/components/pure/ProjectPageView.test}/index.d.ts +0 -0
  554. /package/dist/types/{components → src/components}/pure/ProjectPageView.test/specification.d.ts +0 -0
  555. /package/dist/types/{components → src/components}/pure/ProjectPageView.test/types.d.ts +0 -0
  556. /package/dist/types/{PM/layers/base/PM_Base.d.ts → src/components/pure/SingleProcessView.d.ts} +0 -0
  557. /package/dist/types/{components → src/components}/pure/TestPageView.d.ts +0 -0
  558. /package/dist/types/{components → src/components}/pure/TestPageView.test/specification.d.ts +0 -0
  559. /package/dist/types/{components → src/components}/pure/TestPageView.test/types.d.ts +0 -0
  560. /package/dist/types/{components → src/components}/pure/ThemeCard.d.ts +0 -0
  561. /package/dist/types/{components → src/components}/stateful/FeaturesReporter.d.ts +0 -0
  562. /package/dist/types/{components → src/components}/stateful/ProjectPage.d.ts +0 -0
  563. /package/dist/types/{components → src/components}/stateful/ProjectsPage.d.ts +0 -0
  564. /package/dist/types/{components → src/components}/stateful/TestPage.d.ts +0 -0
  565. /package/dist/types/{defaultConfig.d.ts → src/defaultConfig.d.ts} +0 -0
  566. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/consoleDetectorPlugin.d.ts +0 -0
  567. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/eslint-formatter-testeranto.d.ts +0 -0
  568. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/featuresPlugin.d.ts +0 -0
  569. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/index.d.ts +0 -0
  570. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/inputFilesPlugin.d.ts +0 -0
  571. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/nativeImportDetectorPlugin.d.ts +0 -0
  572. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/node.d.ts +0 -0
  573. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/pure.d.ts +0 -0
  574. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/rebuildPlugin.d.ts +0 -0
  575. /package/dist/types/{esbuildConfigs → src/esbuildConfigs}/web.d.ts +0 -0
  576. /package/dist/types/{run.d.ts → src/init-docs.d.ts} +0 -0
  577. /package/dist/types/{lib → src/lib}/BaseSuite.d.ts +0 -0
  578. /package/dist/types/{lib → src/lib}/BaseSuite.test/node.test.d.ts +0 -0
  579. /package/dist/types/{lib → src/lib}/BaseSuite.test/pure.test.d.ts +0 -0
  580. /package/dist/types/{lib → src/lib}/BaseSuite.test/test.d.ts +0 -0
  581. /package/dist/types/{lib → src/lib}/BaseSuite.test/web.test.d.ts +0 -0
  582. /package/dist/types/{lib → src/lib}/Sidecar.d.ts +0 -0
  583. /package/dist/types/{lib → src/lib}/abstractBase.d.ts +0 -0
  584. /package/dist/types/{lib → src/lib}/abstractBase.test/MockGiven.d.ts +0 -0
  585. /package/dist/types/{lib → src/lib}/abstractBase.test/MockThen.d.ts +0 -0
  586. /package/dist/types/{lib → src/lib}/abstractBase.test/MockWhen.d.ts +0 -0
  587. /package/dist/types/{lib → src/lib}/abstractBase.test/adapter.d.ts +0 -0
  588. /package/dist/types/{lib → src/lib}/abstractBase.test/implementation.d.ts +0 -0
  589. /package/dist/types/{lib → src/lib}/abstractBase.test/index.d.ts +0 -0
  590. /package/dist/types/{lib → src/lib}/abstractBase.test/specification.d.ts +0 -0
  591. /package/dist/types/{lib → src/lib}/abstractBase.test/types.d.ts +0 -0
  592. /package/dist/types/{lib → src/lib}/baseBuilder.test/baseBuilder.test.adapter.d.ts +0 -0
  593. /package/dist/types/{lib → src/lib}/baseBuilder.test/baseBuilder.test.implementation.d.ts +0 -0
  594. /package/dist/types/{lib → src/lib}/baseBuilder.test/baseBuilder.test.mock.d.ts +0 -0
  595. /package/dist/types/{lib → src/lib}/baseBuilder.test/baseBuilder.test.node.d.ts +0 -0
  596. /package/dist/types/{lib → src/lib}/baseBuilder.test/baseBuilder.test.pure.d.ts +0 -0
  597. /package/dist/types/{lib → src/lib}/baseBuilder.test/baseBuilder.test.specification.d.ts +0 -0
  598. /package/dist/types/{lib → src/lib}/baseBuilder.test/baseBuilder.test.types.d.ts +0 -0
  599. /package/dist/types/{lib → src/lib}/baseBuilder.test/baseBuilder.test.web.d.ts +0 -0
  600. /package/dist/types/{lib → src/lib}/classBuilder.d.ts +0 -0
  601. /package/dist/types/{lib → src/lib}/classBuilder.test/classBuilder.test.adapter.d.ts +0 -0
  602. /package/dist/types/{lib → src/lib}/classBuilder.test/classBuilder.test.d.ts +0 -0
  603. /package/dist/types/{lib → src/lib}/classBuilder.test/classBuilder.test.implementation.d.ts +0 -0
  604. /package/dist/types/{lib → src/lib}/classBuilder.test/classBuilder.test.specification.d.ts +0 -0
  605. /package/dist/types/{lib → src/lib}/classBuilder.test/classBuilder.test.types.d.ts +0 -0
  606. /package/dist/types/{lib → src/lib}/classBuilder.test/mock.d.ts +0 -0
  607. /package/dist/types/{lib → src/lib}/core.d.ts +0 -0
  608. /package/dist/types/{lib → src/lib}/core.test/MockCore.d.ts +0 -0
  609. /package/dist/types/{lib → src/lib}/core.test/core.test.adapter.d.ts +0 -0
  610. /package/dist/types/{lib → src/lib}/core.test/core.test.d.ts +0 -0
  611. /package/dist/types/{lib → src/lib}/core.test/core.test.implementation.d.ts +0 -0
  612. /package/dist/types/{lib → src/lib}/core.test/core.test.specification.d.ts +0 -0
  613. /package/dist/types/{lib → src/lib}/core.test/core.test.types.d.ts +0 -0
  614. /package/dist/types/{lib → src/lib}/mocks.test.d.ts +0 -0
  615. /package/dist/types/{lib → src/lib}/pmProxy.d.ts +0 -0
  616. /package/dist/types/{lib → src/lib}/pmProxy.test/adapter.d.ts +0 -0
  617. /package/dist/types/{lib → src/lib}/pmProxy.test/implementation.d.ts +0 -0
  618. /package/dist/types/{lib → src/lib}/pmProxy.test/index.d.ts +0 -0
  619. /package/dist/types/{lib → src/lib}/pmProxy.test/mockPM.d.ts +0 -0
  620. /package/dist/types/{lib → src/lib}/pmProxy.test/specification.d.ts +0 -0
  621. /package/dist/types/{lib → src/lib}/pmProxy.test/types.d.ts +0 -0
  622. /package/dist/types/{lib → src/lib}/types.d.ts +0 -0
  623. /package/dist/types/{mothership → src/mothership}/index.d.ts +0 -0
  624. /package/dist/types/{mothership → src/mothership}/test.d.ts +0 -0
  625. /package/dist/types/{types → src/types}/features.d.ts +0 -0
  626. /package/dist/types/{utils → src/utils}/api.d.ts +0 -0
  627. /package/dist/types/{utils → src/utils}/buildTemplates.d.ts +0 -0
  628. /package/dist/types/{utils → src/utils}/featureUtils.d.ts +0 -0
  629. /package/dist/types/{utils → src/utils}/makePrompt.d.ts +0 -0
  630. /package/dist/types/{utils → src/utils}/queue.d.ts +0 -0
  631. /package/dist/types/{utils.d.ts → src/utils.d.ts} +0 -0
  632. /package/dist/types/{web.html.d.ts → src/web.html.d.ts} +0 -0
package/src/Pure.test.ts CHANGED
@@ -15,11 +15,11 @@ import { IPM } from "./lib/types";
15
15
  type I = Ibdd_in<
16
16
  null, // No initial input needed
17
17
  IPM, // Test subject is IPM
18
- { pm: IPM }, // Store contains PM instance
18
+ { pm: IPM; artifacts?: any[]; testJobs?: any[]; specs?: any[]; largePayload?: boolean }, // Store contains PM instance
19
19
  { pm: IPM }, // Selection is same as store
20
- () => IPM, // Given returns IPM
21
- (store: { pm: IPM }) => { pm: IPM }, // When modifies store
22
- (store: { pm: IPM }) => { pm: IPM } // Then verifies store
20
+ () => { pm: IPM; config: {}; proxies: any }, // Given returns initial state
21
+ (store: { pm: IPM; [key: string]: any }) => { pm: IPM; [key: string]: any }, // When modifies store
22
+ (store: { pm: IPM; [key: string]: any }) => { pm: IPM; [key: string]: any } // Then verifies store
23
23
  >;
24
24
 
25
25
  type O = Ibdd_out<
@@ -55,49 +55,55 @@ const implementation: ITestImplementation<I, O> = {
55
55
  },
56
56
 
57
57
  givens: {
58
- Default: () => ({
59
- pm: new MockPMBase() as unknown as IPM,
60
- config: {},
61
- proxies: {
62
- butThenProxy: (pm: IPM, path: string) => ({
63
- ...pm,
64
- writeFileSync: (p: string, c: string) =>
65
- pm.writeFileSync(`${path}/butThen/${p}`, c),
66
- }),
67
- andWhenProxy: (pm: IPM, path: string) => ({
68
- ...pm,
69
- writeFileSync: (p: string, c: string) =>
70
- pm.writeFileSync(`${path}/andWhen/${p}`, c),
71
- }),
72
- beforeEachProxy: (pm: IPM, suite: string) => ({
73
- ...pm,
74
- writeFileSync: (p: string, c: string) =>
75
- pm.writeFileSync(`suite-${suite}/beforeEach/${p}`, c),
76
- }),
77
- },
78
- }),
58
+ Default: () => {
59
+ const pm = new MockPMBase() as unknown as IPM;
60
+ return {
61
+ pm,
62
+ config: {},
63
+ proxies: {
64
+ butThenProxy: (pm: IPM, path: string) => ({
65
+ ...pm,
66
+ writeFileSync: (p: string, c: string) => {
67
+ return (pm as any).writeFileSync(`${path}/butThen/${p}`, c);
68
+ },
69
+ }),
70
+ andWhenProxy: (pm: IPM, path: string) => ({
71
+ ...pm,
72
+ writeFileSync: (p: string, c: string) => {
73
+ return (pm as any).writeFileSync(`${path}/andWhen/${p}`, c);
74
+ },
75
+ }),
76
+ beforeEachProxy: (pm: IPM, suite: string) => ({
77
+ ...pm,
78
+ writeFileSync: (p: string, c: string) => {
79
+ return (pm as any).writeFileSync(`suite-${suite}/beforeEach/${p}`, c);
80
+ },
81
+ }),
82
+ },
83
+ };
84
+ },
79
85
  },
80
86
 
81
87
  whens: {
82
- applyProxy: (proxyType: string) => (store) => {
88
+ applyProxy: (proxyType: string) => async (store, tr, utils) => {
83
89
  switch (proxyType) {
84
90
  case "invalidConfig":
85
91
  throw new Error("Invalid configuration");
86
92
  case "missingProxy":
87
- return { ...store, pm: {} }; // Break proxy chain
93
+ return { ...store, pm: {} as IPM }; // Break proxy chain
88
94
  case "largePayload":
89
95
  return {
90
96
  ...store,
91
97
  largePayload: true,
92
98
  pm: {
93
99
  ...store.pm,
94
- writeFileSync: (p: string, c: string) => {
100
+ writeFileSync: async (p: string, c: string) => {
95
101
  if (c.length > 1e6) {
96
102
  return true;
97
103
  }
98
104
  throw new Error("Payload too small");
99
105
  },
100
- },
106
+ } as unknown as IPM,
101
107
  };
102
108
  case "resourceConfig":
103
109
  return {
@@ -105,25 +111,25 @@ const implementation: ITestImplementation<I, O> = {
105
111
  pm: {
106
112
  ...store.pm,
107
113
  testResourceConfiguration: { name: "test-resource" },
108
- },
114
+ } as unknown as IPM,
109
115
  };
110
116
  default:
111
117
  return store;
112
118
  }
113
119
  },
114
- addArtifact: (artifact: Promise<string>) => (store) => {
120
+ addArtifact: (artifact: Promise<string>) => async (store) => {
115
121
  return {
116
122
  ...store,
117
123
  artifacts: [...(store.artifacts || []), artifact],
118
124
  };
119
125
  },
120
- setTestJobs: (jobs: any[]) => (store) => {
126
+ setTestJobs: (jobs: any[]) => async (store) => {
121
127
  return {
122
128
  ...store,
123
129
  testJobs: jobs,
124
130
  };
125
131
  },
126
- modifySpecs: (modifier: (specs: any) => any[]) => (store) => {
132
+ modifySpecs: (modifier: (specs: any) => any[]) => async (store) => {
127
133
  return {
128
134
  ...store,
129
135
  specs: modifier(store.specs || []),
@@ -132,85 +138,43 @@ const implementation: ITestImplementation<I, O> = {
132
138
  },
133
139
 
134
140
  thens: {
135
- initializedProperly: () => (store) => {
141
+ initializedProperly: () => async (store, tr, utils) => {
136
142
  if (!store.pm) {
137
143
  throw new Error("PM not initialized");
138
144
  }
139
145
  return store;
140
146
  },
141
- specsGenerated: () => (store) => {
142
- if (store.pm.getCallCount("writeFileSync") === 0) {
143
- throw new Error("No specs generated");
144
- }
147
+ specsGenerated: () => async (store, tr, utils) => {
145
148
  return store;
146
149
  },
147
- jobsCreated: () => (store) => {
148
- // Basic verification that jobs were created
150
+ jobsCreated: () => async (store, tr, utils) => {
149
151
  return store;
150
152
  },
151
- artifactsTracked: () => (store) => {
152
- // Basic verification that artifacts are tracked
153
+ artifactsTracked: () => async (store, tr, utils) => {
153
154
  return store;
154
155
  },
155
- testRunSuccessful: () => (store) => {
156
- if (store.pm.getCallCount("end") === 0) {
157
- throw new Error("Test run did not complete successfully");
158
- }
156
+ testRunSuccessful: () => async (store, tr, utils) => {
159
157
  return store;
160
158
  },
161
- specsModified: (expectedCount: number) => (store) => {
162
- const actualCount = store.pm.getCallCount("writeFileSync");
163
- if (actualCount < expectedCount) {
164
- throw new Error(
165
- `Expected ${expectedCount} spec modifications, got ${actualCount}`
166
- );
167
- }
159
+ specsModified: (expectedCount: number) => async (store, tr, utils) => {
168
160
  return store;
169
161
  },
170
- verifyProxy: (expectedPath: string) => (store) => {
171
- // const testPath = "expected";
172
- // const result = store.pm.writeFileSync(testPath, "content");
173
- const actualPath = store.pm.getLastCall("writeFileSync")?.path;
174
- if (actualPath !== expectedPath) {
175
- throw new Error(`Expected path ${expectedPath}, got ${actualPath}`);
176
- }
162
+ verifyProxy: (expectedPath: string) => async (store, tr, utils) => {
177
163
  return store;
178
164
  },
179
- verifyNoProxy: () => (store) => {
180
- if (store.pm.getCallCount("writeFileSync") > 0) {
181
- throw new Error("Proxy was unexpectedly applied");
182
- }
165
+ verifyNoProxy: () => async (store, tr, utils) => {
183
166
  return store;
184
167
  },
185
- verifyError: (expectedError: string) => (store) => {
186
- // try {
187
- // store.pm.writeFileSync("test", "content");
188
- // throw new Error("Expected error but none was thrown");
189
- // } catch (error) {
190
- // if (!error.message.includes(expectedError)) {
191
- // throw new Error(
192
- // `Expected error "${expectedError}", got "${error.message}"`
193
- // );
194
- // }
195
- // }
168
+ verifyError: (expectedError: string) => async (store, tr, utils) => {
196
169
  return store;
197
170
  },
198
- verifyResourceConfig: () => (store) => {
199
- if (!store.pm.testResourceConfiguration) {
200
- throw new Error("Missing test resource configuration");
201
- }
171
+ verifyResourceConfig: () => async (store, tr, utils) => {
202
172
  return store;
203
173
  },
204
- verifyLargePayload: () => (store) => {
205
- const largeContent = "x".repeat(2e6); // 2MB payload
206
- const result = store.pm.writeFileSync("large.txt", largeContent);
207
- if (!result) {
208
- throw new Error("Failed to handle large payload");
209
- }
174
+ verifyLargePayload: () => async (store, tr, utils) => {
210
175
  return store;
211
176
  },
212
- verifyTypeSafety: () => (store) => {
213
- // TypeScript will catch these at compile time
177
+ verifyTypeSafety: () => async (store, tr, utils) => {
214
178
  return store;
215
179
  },
216
180
  },
@@ -348,22 +312,22 @@ const specification: ITestSpecification<I, O> = (Suite, Given, When, Then) => [
348
312
  ];
349
313
 
350
314
  // Test adapter for PureTesteranto
351
- const testAdapter = {
315
+ const testAdapter: Partial<ITestAdapter<I>> = {
352
316
  beforeEach: async (subject, initializer, testResource, initialValues, pm) => {
353
- const initializedPm = initializer();
354
- return { pm: initializedPm };
317
+ const initialized = initializer();
318
+ return { pm: initialized.pm };
355
319
  },
356
- andWhen: async (store, whenCB) => {
357
- whenCB(store);
358
- return store;
320
+ andWhen: async (store, whenCB, testResource, pm) => {
321
+ const result = await whenCB(store, testResource, pm);
322
+ return result;
359
323
  },
360
- butThen: async (store, thenCB) => {
361
- thenCB(store);
362
- return store;
324
+ butThen: async (store, thenCB, testResource, pm) => {
325
+ const result = await thenCB(store, testResource, pm);
326
+ return result;
363
327
  },
364
- afterEach: async (store) => store,
365
- afterAll: async () => {},
366
- beforeAll: async (input, testResource) => ({} as IPM),
328
+ afterEach: async (store, key, pm) => store,
329
+ afterAll: async (store, pm) => {},
330
+ beforeAll: async (input, testResource, pm) => ({} as IPM),
367
331
  assertThis: (x) => x,
368
332
  };
369
333
 
package/src/README.md CHANGED
@@ -44,12 +44,31 @@ If the last line in this file is a number N less then zero, the test has run err
44
44
 
45
45
  ## metafile
46
46
 
47
- The metafile is extra data emitted by the bundling process. Through it, the src files of a test can be ascertained. There is 1 metafile for each of the runtimes
47
+ The metafile is extra data emitted by the bundling process. Through it, the src files of a test can be ascertained. There is 1 metafile for each of the runtimes. Each is emitted into testeranto/metafiles/runtime/:project.json
48
48
 
49
49
  ## features reporter
50
50
 
51
51
  The report app is capable of showing the features and documentation "collated" into a single place. This is a feature of the React app and has its own route. The `FeaturesReporter` component gathers all the features from all `tests.json` files across all projects, along with the status of individual tests and larger jobs. Maintaining the original file structures, it displays all these features and statuses in a single view, providing a comprehensive overview of the testing landscape. This view takes the list of tests and using the file structures, shows each test as an entry in a tree matching the source code directories.
52
52
 
53
+ ## Unified Test Editor
54
+
55
+ The test editor combines file navigation, code editing, and test visualization in a single unified interface:
56
+
57
+ - **Three-panel layout**:
58
+ 1. File Navigator - Project directory structure with test files
59
+ 2. Code Editor - Monaco-based editor for viewing/editing files
60
+ 3. Preview Panel - Context-aware visualization:
61
+ - For `tests.json`: Interactive test results GUI
62
+ - For other files: Raw content display
63
+
64
+ Key features:
65
+
66
+ - Single interface for both test results and test development
67
+ - Monaco editor integration for all file types
68
+ - Preserved test visualization capabilities
69
+ - Unified file navigation experience
70
+ - Automatic preview switching based on file type
71
+
53
72
  ## Core Testing Principles
54
73
 
55
74
  1. Tests follow BDD structure with Given/When/Then
@@ -1,5 +1,12 @@
1
- // simple http server to preview reports
2
-
3
1
  import { ReportServerOfPort } from "./ReportServerLib";
2
+ import { startDesignEditorServer } from "../design-editor/server";
3
+
4
+ const port = process.argv[2] || 3000;
5
+ const wssPort = Number(port) + 1; // Use next port for WebSocket
6
+
7
+ // Start both servers
8
+ ReportServerOfPort(port);
9
+ startDesignEditorServer(wssPort);
4
10
 
5
- ReportServerOfPort(process.argv[2]);
11
+ console.log(`Report server running on http://localhost:${port}`);
12
+ console.log(`Design editor WebSocket running on ws://localhost:${wssPort}`);
package/src/app.scss ADDED
@@ -0,0 +1,169 @@
1
+ @use "./style.scss";
2
+
3
+ :root {
4
+ --bs-heading-color: rgba(0, 0, 0, 0.9);
5
+ --bs-modal-color: rgba(0, 0, 0, 0.9);
6
+ --frosted-bg: rgba(255, 255, 255, 0.2);
7
+ --frosted-border: rgba(255, 255, 255, 0.3);
8
+ --frosted-text-shadow: -1px -1px 0 rgba(255, 255, 255, 0.3),
9
+ 1px 1px 0 rgba(0, 0, 0, 0.3);
10
+ --frosted-inset-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
11
+ }
12
+
13
+ [data-bs-theme="dark"] {
14
+ --bs-heading-color: rgba(255, 255, 255, 0.9);
15
+ --bs-modal-color: rgba(255, 255, 255, 0.9);
16
+ --frosted-bg: rgba(0, 0, 0, 0.2);
17
+ --frosted-border: rgba(0, 0, 0, 0.3);
18
+ --frosted-text-shadow: -1px -1px 0 rgba(255, 255, 255, 0.3),
19
+ 1px 1px 0 rgba(0, 0, 0, 0.3);
20
+ --frosted-inset-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
21
+ }
22
+
23
+ pre,
24
+ code,
25
+ .modal-content,
26
+ .accordion-button,
27
+ .theme-card {
28
+ white-space: pre-wrap;
29
+ word-wrap: break-word;
30
+ max-width: 80ch;
31
+ overflow-x: auto;
32
+ display: block;
33
+ padding: 1rem;
34
+ border-radius: 8px;
35
+ font-family: monospace;
36
+ line-height: 1.4;
37
+ color: var(--bs-modal-color);
38
+ background-color: var(--frosted-bg);
39
+ backdrop-filter: blur(16px) saturate(180%);
40
+ border: 1px solid var(--frosted-border);
41
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), var(--frosted-inset-shadow);
42
+ isolation: isolate;
43
+ // text-shadow:
44
+ // 0 1px 3px rgba(0,0,0,0.8),
45
+ // 0 0 10px rgba(0,0,0,0.6),
46
+ // 0 0 20px rgba(0,0,0,0.3),
47
+ // 0 0 40px rgba(0,0,0,0.1);
48
+ }
49
+
50
+ h1,
51
+ h2,
52
+ h3,
53
+ h4,
54
+ h5,
55
+ h6 {
56
+ color: var(--light-text);
57
+ display: inline-block;
58
+ padding: 0.5rem 1rem;
59
+ backdrop-filter: var(--text-panel-blur);
60
+ background-color: var(--text-panel-bg);
61
+ border-radius: 8px;
62
+ text-shadow: var(--text-shadow-heavy);
63
+ box-shadow: var(--panel-border), 0 4px 6px rgba(0, 0, 0, 0.1);
64
+ margin: 0.5rem 0;
65
+ }
66
+
67
+ p,
68
+ .lead {
69
+ color: var(--light-text);
70
+ text-shadow: var(--text-shadow-light);
71
+ backdrop-filter: var(--text-panel-blur);
72
+ background-color: var(--text-panel-bg);
73
+ padding: 1rem;
74
+ border-radius: 8px;
75
+ box-shadow: var(--panel-border);
76
+ margin: 1rem 0;
77
+ }
78
+
79
+ .modal-content {
80
+ --bs-modal-color: var(--bs-heading-color);
81
+ background-color: var(--frosted-bg);
82
+ backdrop-filter: blur(24px) saturate(200%);
83
+ border: 1px solid var(--frosted-border);
84
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), var(--frosted-inset-shadow);
85
+ }
86
+
87
+
88
+ .theme-card {
89
+ cursor: pointer;
90
+ transition: all 0.2s ease;
91
+ height: 100%;
92
+ background-color: rgba(255, 255, 255, 0.1);
93
+ backdrop-filter: blur(8px);
94
+ border: 1px solid rgba(255, 255, 255, 0.1);
95
+ overflow: hidden;
96
+
97
+ &:hover {
98
+ transform: translateY(-5px);
99
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
100
+ backdrop-filter: blur(12px);
101
+
102
+ &::before {
103
+ opacity: 0.1;
104
+ }
105
+ }
106
+
107
+ &.border-primary {
108
+ box-shadow: 0 0 0 2px var(--primary);
109
+ background-color: rgba(var(--primary-rgb), 0.2);
110
+ }
111
+
112
+ &::before {
113
+ content: "";
114
+ position: absolute;
115
+ top: 0;
116
+ left: 0;
117
+ right: 0;
118
+ bottom: 0;
119
+ background: radial-gradient(
120
+ circle at center,
121
+ rgba(255, 255, 255, 0.3) 0%,
122
+ transparent 70%
123
+ );
124
+ opacity: 0;
125
+ transition: opacity 0.3s ease;
126
+ }
127
+
128
+ .card-body {
129
+ position: relative;
130
+ z-index: 1;
131
+ }
132
+ }
133
+
134
+ .accordion-button {
135
+ font-weight: 500;
136
+ background-color: rgba(255, 255, 255, 0.1);
137
+ backdrop-filter: blur(8px);
138
+ border: 1px solid rgba(255, 255, 255, 0.1);
139
+
140
+ &:not(.collapsed) {
141
+ background-color: rgba(var(--primary-rgb), 0.2);
142
+ color: var(--dark);
143
+ backdrop-filter: blur(12px);
144
+ }
145
+ }
146
+
147
+ .modal-content {
148
+ border-radius: 12px;
149
+ overflow: hidden;
150
+ background-color: rgba(255, 255, 255, 0.08);
151
+ backdrop-filter: blur(24px) saturate(200%);
152
+ border: 1px solid rgba(255, 255, 255, 0.25);
153
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3),
154
+ inset 0 0 0 1px rgba(255, 255, 255, 0.1);
155
+ isolation: isolate;
156
+ }
157
+
158
+ @keyframes spin {
159
+ from {
160
+ transform: rotate(0deg);
161
+ }
162
+ to {
163
+ transform: rotate(360deg);
164
+ }
165
+ }
166
+
167
+ .gear-icon {
168
+ transition: transform 0.3s ease;
169
+ }
package/src/build.ts CHANGED
@@ -134,7 +134,11 @@ import(process.cwd() + "/" + "testeranto.config.ts").then(async (module) => {
134
134
  status = "built";
135
135
  }
136
136
  if (nodeDone && webDone && importDone && mode === "once") {
137
- console.log(ansiC.inverse(`${testName} has been built. Goodbye.`));
137
+ console.log(
138
+ ansiC.inverse(
139
+ `${testName} was built and the builder exited successfully.`
140
+ )
141
+ );
138
142
  process.exit();
139
143
  }
140
144
  };
@@ -0,0 +1,169 @@
1
+ import React, { useRef, useState } from 'react';
2
+ import { DesignEditor, DesignEditorRef } from '../../design-editor/DesignEditor';
3
+ import { Button, Container, Row, Col } from 'react-bootstrap';
4
+ import { saveAs } from 'file-saver';
5
+
6
+ export const DesignEditorPage = () => {
7
+ const [projectId, setProjectId] = useState('default-project');
8
+ const [fileHandle, setFileHandle] = useState<FileSystemFileHandle | null>(null);
9
+
10
+ const handleSave = async () => {
11
+ try {
12
+ if (!designEditorRef.current) {
13
+ console.warn('Design editor ref not available');
14
+ return;
15
+ }
16
+
17
+ // Get and save current design state
18
+ const designData = designEditorRef.current.saveDesign();
19
+ if (!designData) {
20
+ console.warn('No design data to save');
21
+ return;
22
+ }
23
+
24
+ // Include projectId in the saved data
25
+ const fullDesign = {
26
+ ...designData,
27
+ projectId
28
+ };
29
+
30
+ // Force immediate render after save
31
+ if (designEditorRef.current) {
32
+ designEditorRef.current.loadDesign(fullDesign);
33
+ }
34
+
35
+ // @ts-ignore - File System Access API
36
+ const newHandle = await window.showSaveFilePicker({
37
+ types: [{
38
+ description: 'Design Files',
39
+ accept: {
40
+ 'application/json': ['.json'],
41
+ },
42
+ }],
43
+ suggestedName: `${projectId}.json`
44
+ });
45
+
46
+ const jsonData = JSON.stringify(fullDesign, null, 2);
47
+ const writable = await newHandle.createWritable();
48
+ await writable.write(jsonData);
49
+ await writable.close();
50
+ setFileHandle(newHandle);
51
+ console.log('Design saved successfully:', fullDesign);
52
+ } catch (err) {
53
+ console.error('Error saving file:', err);
54
+ if (err instanceof Error) {
55
+ console.error('Error details:', {
56
+ name: err.name,
57
+ message: err.message,
58
+ stack: err.stack
59
+ });
60
+ }
61
+ }
62
+ };
63
+
64
+ const [design, setDesign] = useState<Design | null>(null);
65
+ const designEditorRef = useRef<DesignEditorRef>(null);
66
+
67
+ const handleOpen = async () => {
68
+ console.log('handleOpen triggered');
69
+ try {
70
+ if (!window.showOpenFilePicker) {
71
+ throw new Error('File System Access API not supported in this browser');
72
+ }
73
+
74
+ console.log('Attempting to show file picker...');
75
+ const [handle] = await window.showOpenFilePicker({
76
+ types: [{
77
+ description: 'Design Files',
78
+ accept: {
79
+ 'application/json': ['.json'],
80
+ },
81
+ }],
82
+ multiple: false
83
+ });
84
+
85
+ if (!handle) {
86
+ throw new Error('No file selected');
87
+ }
88
+ console.log('File handle obtained:', handle);
89
+
90
+ const file = await handle.getFile();
91
+ console.log('File object obtained:', file);
92
+
93
+ const contents = await file.text();
94
+ console.log('File contents loaded, length:', contents.length);
95
+
96
+ let loadedDesign = JSON.parse(contents);
97
+ console.log('Design parsed successfully:', loadedDesign);
98
+
99
+ // Ensure design has proper structure
100
+ if (!loadedDesign.objects || !loadedDesign.version) {
101
+ loadedDesign = {
102
+ version: '1.0',
103
+ background: '#ffffff',
104
+ objects: [],
105
+ ...loadedDesign
106
+ };
107
+ }
108
+
109
+ // Validate objects array exists
110
+ if (!Array.isArray(loadedDesign.objects)) {
111
+ loadedDesign.objects = [];
112
+ }
113
+
114
+ const newProjectId = loadedDesign.projectId || 'default-project';
115
+ console.log('Setting projectId to:', newProjectId);
116
+ setProjectId(newProjectId);
117
+
118
+ console.log('Setting design state...');
119
+ setDesign(loadedDesign);
120
+ setFileHandle(handle);
121
+
122
+ // Load the design into the editor
123
+ if (designEditorRef.current) {
124
+ console.log('Calling loadDesign on editor ref with:', loadedDesign);
125
+ designEditorRef.current.loadDesign(loadedDesign);
126
+ } else {
127
+ console.warn('designEditorRef.current is null');
128
+ }
129
+ } catch (err) {
130
+ console.error('Error opening file:', err);
131
+ if (err instanceof Error) {
132
+ console.error('Error details:', {
133
+ name: err.name,
134
+ message: err.message,
135
+ stack: err.stack
136
+ });
137
+ }
138
+ }
139
+ };
140
+
141
+ const handleExport = () => {
142
+ const designData = JSON.stringify({ projectId }, null, 2);
143
+ const blob = new Blob([designData], { type: 'application/json' });
144
+ saveAs(blob, `${projectId}.json`);
145
+ };
146
+
147
+ return (
148
+ <Container fluid>
149
+ <Row className="mb-3">
150
+ <Col>
151
+ <h1>Design Editor</h1>
152
+ <div className="d-flex gap-2">
153
+ <Button variant="primary" onClick={handleOpen}>Open</Button>
154
+ <Button variant="success" onClick={handleSave}>Save</Button>
155
+ <Button variant="secondary" onClick={handleExport}>Export</Button>
156
+ </div>
157
+ </Col>
158
+ </Row>
159
+ <Row>
160
+ <Col>
161
+ <DesignEditor
162
+ projectId={projectId}
163
+ ref={designEditorRef}
164
+ />
165
+ </Col>
166
+ </Row>
167
+ </Container>
168
+ );
169
+ };