@silasfmartins/testhub 1.0.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 (296) hide show
  1. package/.github/copilot-instructions.md +520 -0
  2. package/biome.json +37 -0
  3. package/dist/index.d.ts +45 -0
  4. package/dist/index.js +169 -0
  5. package/dist/scripts/consumer-postinstall.d.ts +15 -0
  6. package/dist/scripts/consumer-postinstall.js +785 -0
  7. package/dist/scripts/generate-docs.d.ts +16 -0
  8. package/dist/scripts/generate-docs.js +1363 -0
  9. package/dist/scripts/generate-index.d.ts +2 -0
  10. package/dist/scripts/generate-index.js +314 -0
  11. package/dist/scripts/init-api.d.ts +2 -0
  12. package/dist/scripts/init-api.js +525 -0
  13. package/dist/scripts/init-banco.d.ts +2 -0
  14. package/dist/scripts/init-banco.js +347 -0
  15. package/dist/scripts/init-frontend.d.ts +2 -0
  16. package/dist/scripts/init-frontend.js +627 -0
  17. package/dist/scripts/init-mobile.d.ts +2 -0
  18. package/dist/scripts/init-mobile.js +481 -0
  19. package/dist/scripts/init-scenarios.d.ts +2 -0
  20. package/dist/scripts/init-scenarios.js +846 -0
  21. package/dist/scripts/init-ssh.d.ts +2 -0
  22. package/dist/scripts/init-ssh.js +639 -0
  23. package/dist/scripts/package-versions.d.ts +57 -0
  24. package/dist/scripts/package-versions.js +768 -0
  25. package/dist/scripts/postinstall.d.ts +1 -0
  26. package/dist/scripts/postinstall.js +527 -0
  27. package/dist/scripts/robust-build.d.ts +7 -0
  28. package/dist/scripts/robust-build.js +88 -0
  29. package/dist/scripts/setup-local-packages.d.ts +31 -0
  30. package/dist/scripts/setup-local-packages.js +237 -0
  31. package/dist/scripts/smart-override.d.ts +2 -0
  32. package/dist/scripts/smart-override.js +1360 -0
  33. package/dist/scripts/sync-configs.d.ts +27 -0
  34. package/dist/scripts/sync-configs.js +248 -0
  35. package/dist/scripts/test-biome-parse.d.ts +5 -0
  36. package/dist/scripts/test-biome-parse.js +84 -0
  37. package/dist/scripts/ultracite-setup.d.ts +4 -0
  38. package/dist/scripts/ultracite-setup.js +310 -0
  39. package/dist/scripts/update-all-init-scripts.d.ts +2 -0
  40. package/dist/scripts/update-all-init-scripts.js +52 -0
  41. package/dist/scripts/update-biome-schema.d.ts +15 -0
  42. package/dist/scripts/update-biome-schema.js +124 -0
  43. package/dist/src/AutoCoreFacade.d.ts +145 -0
  44. package/dist/src/AutoCoreFacade.js +217 -0
  45. package/dist/src/api/ApiActions.d.ts +297 -0
  46. package/dist/src/api/ApiActions.js +1905 -0
  47. package/dist/src/api/Certificate.d.ts +60 -0
  48. package/dist/src/api/Certificate.js +79 -0
  49. package/dist/src/api/JsonResponse.d.ts +116 -0
  50. package/dist/src/api/JsonResponse.js +206 -0
  51. package/dist/src/appium/DeviceFarmViewer.d.ts +79 -0
  52. package/dist/src/appium/DeviceFarmViewer.js +1083 -0
  53. package/dist/src/appium/MobileActions.d.ts +347 -0
  54. package/dist/src/appium/MobileActions.js +1632 -0
  55. package/dist/src/appium/MobileConnection.d.ts +160 -0
  56. package/dist/src/appium/MobileConnection.js +772 -0
  57. package/dist/src/config/envLoader.d.ts +123 -0
  58. package/dist/src/config/envLoader.js +361 -0
  59. package/dist/src/config/jest-safe-setup.d.ts +19 -0
  60. package/dist/src/config/jest-safe-setup.js +369 -0
  61. package/dist/src/config/timeouts.d.ts +32 -0
  62. package/dist/src/config/timeouts.js +38 -0
  63. package/dist/src/desktop/DesktopActions.d.ts +46 -0
  64. package/dist/src/desktop/DesktopActions.js +398 -0
  65. package/dist/src/desktop/DesktopConnection.d.ts +32 -0
  66. package/dist/src/desktop/DesktopConnection.js +84 -0
  67. package/dist/src/domain/entities/TestExecution.d.ts +117 -0
  68. package/dist/src/domain/entities/TestExecution.js +150 -0
  69. package/dist/src/domain/entities/TestReport.d.ts +114 -0
  70. package/dist/src/domain/entities/TestReport.js +179 -0
  71. package/dist/src/domain/repositories/ITestRepository.d.ts +196 -0
  72. package/dist/src/domain/repositories/ITestRepository.js +14 -0
  73. package/dist/src/domain/schemas/ValidationSchemas.d.ts +159 -0
  74. package/dist/src/domain/schemas/ValidationSchemas.js +181 -0
  75. package/dist/src/functions/errors/BaseError.d.ts +78 -0
  76. package/dist/src/functions/errors/BaseError.js +245 -0
  77. package/dist/src/functions/errors/ConfigurationError.d.ts +16 -0
  78. package/dist/src/functions/errors/ConfigurationError.js +48 -0
  79. package/dist/src/functions/errors/ErrorCatalog.d.ts +148 -0
  80. package/dist/src/functions/errors/ErrorCatalog.js +157 -0
  81. package/dist/src/functions/errors/GlobalErrorHandler.d.ts +101 -0
  82. package/dist/src/functions/errors/GlobalErrorHandler.js +281 -0
  83. package/dist/src/functions/errors/IntegrationError.d.ts +17 -0
  84. package/dist/src/functions/errors/IntegrationError.js +51 -0
  85. package/dist/src/functions/errors/SecurityError.d.ts +14 -0
  86. package/dist/src/functions/errors/SecurityError.js +42 -0
  87. package/dist/src/functions/errors/SystemError.d.ts +12 -0
  88. package/dist/src/functions/errors/SystemError.js +36 -0
  89. package/dist/src/functions/errors/ValidationError.d.ts +14 -0
  90. package/dist/src/functions/errors/ValidationError.js +61 -0
  91. package/dist/src/functions/errors/index.d.ts +12 -0
  92. package/dist/src/functions/errors/index.js +13 -0
  93. package/dist/src/global-setup.d.ts +1 -0
  94. package/dist/src/global-setup.js +1037 -0
  95. package/dist/src/helpers/BancoActions.d.ts +188 -0
  96. package/dist/src/helpers/BancoActions.js +581 -0
  97. package/dist/src/helpers/EnviromentHelper.d.ts +17 -0
  98. package/dist/src/helpers/EnviromentHelper.js +66 -0
  99. package/dist/src/helpers/ParallelExecutionHelper.d.ts +183 -0
  100. package/dist/src/helpers/ParallelExecutionHelper.js +375 -0
  101. package/dist/src/helpers/SyncSignal.d.ts +15 -0
  102. package/dist/src/helpers/SyncSignal.js +44 -0
  103. package/dist/src/hubdocs/CategoryDetector.d.ts +83 -0
  104. package/dist/src/hubdocs/CategoryDetector.js +401 -0
  105. package/dist/src/hubdocs/DirectStatementInterceptor.d.ts +54 -0
  106. package/dist/src/hubdocs/DirectStatementInterceptor.js +243 -0
  107. package/dist/src/hubdocs/ExecutionTracker.d.ts +107 -0
  108. package/dist/src/hubdocs/ExecutionTracker.js +702 -0
  109. package/dist/src/hubdocs/HubDocs.d.ts +395 -0
  110. package/dist/src/hubdocs/HubDocs.js +3586 -0
  111. package/dist/src/hubdocs/StatementMethodFilter.d.ts +71 -0
  112. package/dist/src/hubdocs/StatementMethodFilter.js +618 -0
  113. package/dist/src/hubdocs/StatementTracker.d.ts +417 -0
  114. package/dist/src/hubdocs/StatementTracker.js +2419 -0
  115. package/dist/src/hubdocs/SwaggerGenerator.d.ts +59 -0
  116. package/dist/src/hubdocs/SwaggerGenerator.js +405 -0
  117. package/dist/src/hubdocs/index.d.ts +9 -0
  118. package/dist/src/hubdocs/index.js +9 -0
  119. package/dist/src/hubdocs/types.d.ts +114 -0
  120. package/dist/src/hubdocs/types.js +5 -0
  121. package/dist/src/infrastructure/DependencyContainer.d.ts +142 -0
  122. package/dist/src/infrastructure/DependencyContainer.js +250 -0
  123. package/dist/src/infrastructure/adapters/AppiumAdapter.d.ts +168 -0
  124. package/dist/src/infrastructure/adapters/AppiumAdapter.js +468 -0
  125. package/dist/src/infrastructure/adapters/OracleAdapter.d.ts +150 -0
  126. package/dist/src/infrastructure/adapters/OracleAdapter.js +388 -0
  127. package/dist/src/infrastructure/adapters/PlaywrightAdapter.d.ts +192 -0
  128. package/dist/src/infrastructure/adapters/PlaywrightAdapter.js +382 -0
  129. package/dist/src/infrastructure/adapters/SSHAdapter.d.ts +141 -0
  130. package/dist/src/infrastructure/adapters/SSHAdapter.js +428 -0
  131. package/dist/src/interfaces.d.ts +501 -0
  132. package/dist/src/interfaces.js +25 -0
  133. package/dist/src/internal/fakes/__fake-actions__.d.ts +17 -0
  134. package/dist/src/internal/fakes/__fake-actions__.js +21 -0
  135. package/dist/src/internal/fakes/__forbidden__.d.ts +10 -0
  136. package/dist/src/internal/fakes/__forbidden__.js +18 -0
  137. package/dist/src/internal/fakes/__honeypot__.d.ts +15 -0
  138. package/dist/src/internal/fakes/__honeypot__.js +24 -0
  139. package/dist/src/octane/OctaneReporter.d.ts +13 -0
  140. package/dist/src/octane/OctaneReporter.js +61 -0
  141. package/dist/src/playwright/CryptoActions.d.ts +20 -0
  142. package/dist/src/playwright/CryptoActions.js +75 -0
  143. package/dist/src/playwright/EnhancedWebActions.d.ts +7 -0
  144. package/dist/src/playwright/EnhancedWebActions.js +65 -0
  145. package/dist/src/playwright/WebActions.d.ts +1599 -0
  146. package/dist/src/playwright/WebActions.js +11788 -0
  147. package/dist/src/playwright/actions/ActionTimeline.d.ts +36 -0
  148. package/dist/src/playwright/actions/ActionTimeline.js +101 -0
  149. package/dist/src/playwright/actions/RecoveryQueue.d.ts +82 -0
  150. package/dist/src/playwright/actions/RecoveryQueue.js +130 -0
  151. package/dist/src/playwright/actions/SelectorCache.d.ts +53 -0
  152. package/dist/src/playwright/actions/SelectorCache.js +96 -0
  153. package/dist/src/playwright/actions/index.d.ts +13 -0
  154. package/dist/src/playwright/actions/index.js +14 -0
  155. package/dist/src/playwright/actions/types.d.ts +147 -0
  156. package/dist/src/playwright/actions/types.js +5 -0
  157. package/dist/src/playwright/fixtures.d.ts +112 -0
  158. package/dist/src/playwright/fixtures.js +718 -0
  159. package/dist/src/playwright/network-logs-reporter.d.ts +7 -0
  160. package/dist/src/playwright/network-logs-reporter.js +66 -0
  161. package/dist/src/playwright/registerRecoveryWrappers.d.ts +1 -0
  162. package/dist/src/playwright/registerRecoveryWrappers.js +54 -0
  163. package/dist/src/security/BuildSecurity.d.ts +12 -0
  164. package/dist/src/security/BuildSecurity.js +138 -0
  165. package/dist/src/security/EulaProtection.d.ts +70 -0
  166. package/dist/src/security/EulaProtection.js +155 -0
  167. package/dist/src/security/HoneypotManager.d.ts +46 -0
  168. package/dist/src/security/HoneypotManager.js +234 -0
  169. package/dist/src/security/KeysManager.d.ts +36 -0
  170. package/dist/src/security/KeysManager.js +158 -0
  171. package/dist/src/security/ProofOfWorkIntegration.d.ts +64 -0
  172. package/dist/src/security/ProofOfWorkIntegration.js +206 -0
  173. package/dist/src/security/SecurityValidation.d.ts +21 -0
  174. package/dist/src/security/SecurityValidation.js +163 -0
  175. package/dist/src/security/SourceMapProtection.d.ts +55 -0
  176. package/dist/src/security/SourceMapProtection.js +220 -0
  177. package/dist/src/security/protector.d.ts +1 -0
  178. package/dist/src/security/protector.js +97 -0
  179. package/dist/src/ssh/SSHActions.d.ts +262 -0
  180. package/dist/src/ssh/SSHActions.js +790 -0
  181. package/dist/src/ssh/SSHClient.d.ts +99 -0
  182. package/dist/src/ssh/SSHClient.js +409 -0
  183. package/dist/src/statements/BaseStatement.d.ts +38 -0
  184. package/dist/src/statements/BaseStatement.js +78 -0
  185. package/dist/src/testContext/AuthStateManager.d.ts +93 -0
  186. package/dist/src/testContext/AuthStateManager.js +256 -0
  187. package/dist/src/testContext/CoverageManager.d.ts +198 -0
  188. package/dist/src/testContext/CoverageManager.js +917 -0
  189. package/dist/src/testContext/TestAnnotations.d.ts +476 -0
  190. package/dist/src/testContext/TestAnnotations.js +2647 -0
  191. package/dist/src/testContext/TestContext.d.ts +138 -0
  192. package/dist/src/testContext/TestContext.js +369 -0
  193. package/dist/src/testContext/UnifiedHtmlGenerator.d.ts +7 -0
  194. package/dist/src/testContext/UnifiedHtmlGenerator.js +264 -0
  195. package/dist/src/testContext/UnifiedReportManager.d.ts +211 -0
  196. package/dist/src/testContext/UnifiedReportManager.js +1206 -0
  197. package/dist/src/testhub/DynamicConfigManager.d.ts +121 -0
  198. package/dist/src/testhub/DynamicConfigManager.js +320 -0
  199. package/dist/src/testhub/SystemsManager.d.ts +119 -0
  200. package/dist/src/testhub/SystemsManager.js +365 -0
  201. package/dist/src/testhub/TestHubClient.d.ts +335 -0
  202. package/dist/src/testhub/TestHubClient.js +1215 -0
  203. package/dist/src/testhub/TestHubReporter.d.ts +62 -0
  204. package/dist/src/testhub/TestHubReporter.js +576 -0
  205. package/dist/src/testhub/TestHubVars.d.ts +116 -0
  206. package/dist/src/testhub/TestHubVars.js +273 -0
  207. package/dist/src/utils/ActionInterceptor.d.ts +59 -0
  208. package/dist/src/utils/ActionInterceptor.js +741 -0
  209. package/dist/src/utils/ArtifactsCompressor.d.ts +43 -0
  210. package/dist/src/utils/ArtifactsCompressor.js +181 -0
  211. package/dist/src/utils/AutoLogsFinal.d.ts +47 -0
  212. package/dist/src/utils/AutoLogsFinal.js +148 -0
  213. package/dist/src/utils/CodeGenSession.d.ts +114 -0
  214. package/dist/src/utils/CodeGenSession.js +264 -0
  215. package/dist/src/utils/ConfigLogger.d.ts +133 -0
  216. package/dist/src/utils/ConfigLogger.js +611 -0
  217. package/dist/src/utils/CustomReporter.d.ts +22 -0
  218. package/dist/src/utils/CustomReporter.js +352 -0
  219. package/dist/src/utils/DataStore.d.ts +171 -0
  220. package/dist/src/utils/DataStore.js +484 -0
  221. package/dist/src/utils/DatabaseInterceptor.d.ts +19 -0
  222. package/dist/src/utils/DatabaseInterceptor.js +295 -0
  223. package/dist/src/utils/DateHelper.d.ts +16 -0
  224. package/dist/src/utils/DateHelper.js +120 -0
  225. package/dist/src/utils/DateValidator.d.ts +4 -0
  226. package/dist/src/utils/DateValidator.js +51 -0
  227. package/dist/src/utils/DocumentGenerator.d.ts +35 -0
  228. package/dist/src/utils/DocumentGenerator.js +129 -0
  229. package/dist/src/utils/EvidenceCapture.d.ts +90 -0
  230. package/dist/src/utils/EvidenceCapture.js +600 -0
  231. package/dist/src/utils/EvidenceReportGenerator.d.ts +70 -0
  232. package/dist/src/utils/EvidenceReportGenerator.js +799 -0
  233. package/dist/src/utils/FrameManagementUtil.d.ts +42 -0
  234. package/dist/src/utils/FrameManagementUtil.js +75 -0
  235. package/dist/src/utils/GlobalStatementsInterceptor.d.ts +1 -0
  236. package/dist/src/utils/GlobalStatementsInterceptor.js +1 -0
  237. package/dist/src/utils/HTMLTemplate.d.ts +1 -0
  238. package/dist/src/utils/HTMLTemplate.js +1034 -0
  239. package/dist/src/utils/InterceptacaoMagica.d.ts +23 -0
  240. package/dist/src/utils/InterceptacaoMagica.js +365 -0
  241. package/dist/src/utils/LogSanitizer.d.ts +35 -0
  242. package/dist/src/utils/LogSanitizer.js +110 -0
  243. package/dist/src/utils/Logger.d.ts +65 -0
  244. package/dist/src/utils/Logger.js +284 -0
  245. package/dist/src/utils/McpLocalClient.d.ts +141 -0
  246. package/dist/src/utils/McpLocalClient.js +871 -0
  247. package/dist/src/utils/PDFEvidenceGenerator.d.ts +20 -0
  248. package/dist/src/utils/PDFEvidenceGenerator.js +156 -0
  249. package/dist/src/utils/SpecFileAnalyzer.d.ts +35 -0
  250. package/dist/src/utils/SpecFileAnalyzer.js +209 -0
  251. package/dist/src/utils/StatementInterceptor.d.ts +18 -0
  252. package/dist/src/utils/StatementInterceptor.js +87 -0
  253. package/dist/src/utils/StatementLogger.d.ts +33 -0
  254. package/dist/src/utils/StatementLogger.js +113 -0
  255. package/dist/src/utils/StatementsInterceptor.d.ts +1 -0
  256. package/dist/src/utils/StatementsInterceptor.js +1 -0
  257. package/dist/src/utils/TeamsFlushHook.d.ts +17 -0
  258. package/dist/src/utils/TeamsFlushHook.js +168 -0
  259. package/dist/src/utils/TerminalLogCapture.d.ts +158 -0
  260. package/dist/src/utils/TerminalLogCapture.js +531 -0
  261. package/dist/src/utils/TestMethodLogger.d.ts +70 -0
  262. package/dist/src/utils/TestMethodLogger.js +95 -0
  263. package/dist/src/utils/UnifiedTeardown.d.ts +4 -0
  264. package/dist/src/utils/UnifiedTeardown.js +400 -0
  265. package/dist/src/utils/XPathCatalog.d.ts +152 -0
  266. package/dist/src/utils/XPathCatalog.js +350 -0
  267. package/dist/src/utils/generators.d.ts +90 -0
  268. package/dist/src/utils/generators.js +167 -0
  269. package/dist/src/utils/testRecovery/ResilientPlaywright.d.ts +152 -0
  270. package/dist/src/utils/testRecovery/ResilientPlaywright.js +715 -0
  271. package/dist/src/utils/testRecovery/TestRecoveryClient.d.ts +801 -0
  272. package/dist/src/utils/testRecovery/TestRecoveryClient.js +1415 -0
  273. package/dist/src/utils/testRecovery/autoFixCode.d.ts +65 -0
  274. package/dist/src/utils/testRecovery/autoFixCode.js +32 -0
  275. package/dist/vitest.config.d.ts +2 -0
  276. package/dist/vitest.config.js +59 -0
  277. package/dist/wdio.conf.d.ts +1 -0
  278. package/dist/wdio.conf.js +420 -0
  279. package/package.json +137 -0
  280. package/protect-loader.mjs +643 -0
  281. package/scripts/consumer-postinstall.ts +975 -0
  282. package/scripts/generate-index.ts +343 -0
  283. package/scripts/init-api.ts +613 -0
  284. package/scripts/init-banco.ts +437 -0
  285. package/scripts/init-frontend.ts +727 -0
  286. package/scripts/init-mobile.ts +558 -0
  287. package/scripts/init-scenarios.ts +925 -0
  288. package/scripts/init-ssh.ts +734 -0
  289. package/scripts/package-versions.ts +978 -0
  290. package/scripts/postinstall.ts +605 -0
  291. package/scripts/smart-override.ts +1675 -0
  292. package/scripts/sync-configs.ts +302 -0
  293. package/scripts/ultracite-setup.ts +370 -0
  294. package/src/types/globals.d.ts +48 -0
  295. package/tsconfig.json +29 -0
  296. package/types/autocore-sync-signal.d.ts +10 -0
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,314 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ import { existsSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
4
+ import { basename, dirname, extname, join, relative } from 'node:path';
5
+ // 🔧 Configuração robusta para TypeScript puro
6
+ const IGNORED_FILES = ['index.ts'];
7
+ const IGNORED_SUFFIXES = ['.spec.ts', '.test.ts', '.d.ts'];
8
+ // 🛡️ PROTEÇÃO: Detectar se está rodando no próprio @silasfmartins/testhub
9
+ // Se o package.json tiver name "@silasfmartins/testhub", NÃO sobrescrever o index.ts
10
+ function isAutocorePackage() {
11
+ try {
12
+ const pkgPath = join(process.cwd(), 'package.json');
13
+ if (existsSync(pkgPath)) {
14
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
15
+ return pkg.name === '@silasfmartins/testhub';
16
+ }
17
+ }
18
+ catch {
19
+ // Ignora erros de leitura
20
+ }
21
+ return false;
22
+ }
23
+ if (isAutocorePackage()) {
24
+ console.log('🛡️ Detectado @silasfmartins/testhub - index.ts NÃO será sobrescrito');
25
+ console.log('✅ index.ts gerado dinamicamente para desenvolvimento');
26
+ process.exit(0);
27
+ }
28
+ // 🔧 NOVO: Detectar ambiente CI e usar fallback simples
29
+ const isCI = process.env.CI === 'true' ||
30
+ process.env.GITHUB_ACTIONS === 'true' ||
31
+ process.env.AZURE_PIPELINES === 'True';
32
+ if (isCI) {
33
+ console.log('🔧 Ambiente CI detectado - usando template TypeScript fixo');
34
+ }
35
+ function walkDir(dir, fileList = []) {
36
+ const files = readdirSync(dir);
37
+ for (const file of files) {
38
+ const fullPath = join(dir, file);
39
+ if (statSync(fullPath).isDirectory()) {
40
+ walkDir(fullPath, fileList);
41
+ }
42
+ else if (extname(fullPath) === '.ts' &&
43
+ !IGNORED_FILES.includes(basename(fullPath)) &&
44
+ !IGNORED_SUFFIXES.some((suffix) => fullPath.endsWith(suffix))) {
45
+ fileList.push(fullPath);
46
+ }
47
+ }
48
+ return fileList;
49
+ }
50
+ function getExportedNames(filePath) {
51
+ const content = readFileSync(filePath, 'utf-8');
52
+ // 1. Capturar exports nomeados: export class/function/const/let/var/interface/type NomeDoExport
53
+ const namedMatches = content.match(/export\s+(?:class|function|const|let|var|interface|type|enum)\s+(\w+)/g) || [];
54
+ const namedExports = namedMatches.map((match) => {
55
+ const parts = match.trim().split(/\s+/);
56
+ return parts[2];
57
+ }).filter(Boolean);
58
+ // 2. Capturar export default class NomeDaClasse (com nome explícito)
59
+ const defaultClassMatch = content.match(/export\s+default\s+class\s+(\w+)/);
60
+ // 3. Capturar export default function NomeDaFuncao
61
+ const defaultFunctionMatch = content.match(/export\s+default\s+function\s+(\w+)/);
62
+ // 4. Capturar export default { ... } ou export default NomeVariavel
63
+ const hasSimpleDefaultExport = /export\s+default\s+(?!class|function|interface|type)/.test(content);
64
+ // Determinar o export default
65
+ let defaultExport = null;
66
+ if (defaultClassMatch && defaultClassMatch[1]) {
67
+ // export default class MeuNome -> exportar como "default as MeuNome"
68
+ defaultExport = `default as ${defaultClassMatch[1]}`;
69
+ }
70
+ else if (defaultFunctionMatch && defaultFunctionMatch[1]) {
71
+ // export default function MinhaFunc -> exportar como "default as MinhaFunc"
72
+ defaultExport = `default as ${defaultFunctionMatch[1]}`;
73
+ }
74
+ else if (hasSimpleDefaultExport) {
75
+ // export default algo (sem nome) -> usar nome do arquivo
76
+ const fileName = basename(filePath, '.ts').replace(/[^a-zA-Z0-9_]/g, '_');
77
+ defaultExport = `default as ${fileName}`;
78
+ }
79
+ return [...namedExports, ...(defaultExport ? [defaultExport] : [])];
80
+ }
81
+ function generateIndexFile() {
82
+ // 🔧 NOVO: Para ambiente CI, usar template fixo sem análise de arquivos
83
+ if (isCI) {
84
+ console.log('🔧 Usando template fixo para CI/CD');
85
+ const fixedTemplate = `/**
86
+ * @silasfmartins/testhub - Entry Point
87
+ *
88
+ * 🔧 VERSÃO CI: AutoCore Jest-Safe Configuration
89
+ * Gerenciamento automático de conflitos Jest/Vitest com integração mobile completa
90
+ */
91
+
92
+ // ============================================
93
+ // TODOS OS IMPORTS (organizados por categoria)
94
+ // ============================================
95
+
96
+ // 🔧 Jest-Safe Setup (executado automaticamente)
97
+ import './src/config/jest-safe-setup.js'
98
+
99
+ // Inicialização de proteções offline contra automação/IA (side-effect only)
100
+ // Observação: este import não exige nenhuma configuração do usuário.
101
+ import './src/security/protector.js'
102
+
103
+ // API e comunicação
104
+ import { ApiActions } from './src/api/ApiActions.js'
105
+ import { JsonResponse } from './src/api/JsonResponse.js'
106
+
107
+ // Mobile
108
+ import { MobileActions } from './src/appium/MobileActions.js'
109
+ import { MobileConnection } from './src/appium/MobileConnection.js'
110
+
111
+ // Helpers específicos
112
+ import { BancoActions } from './src/helpers/BancoActions.js'
113
+ import { ConexaoTestHelper } from './src/helpers/ConexaoTestHelper.js'
114
+
115
+ // Ações e manipulação web
116
+ import { WebActions } from './src/playwright/WebActions.js'
117
+
118
+ // SSH
119
+ import { SSHActions } from './src/ssh/SSHActions.js'
120
+ import { SSHClient } from './src/ssh/SSHClient.js'
121
+
122
+ // Sistema Unificado e Test Context
123
+ import {
124
+ Api,
125
+ Auto,
126
+ Banco,
127
+ Front,
128
+ Frontend,
129
+ Mixed,
130
+ Mobile,
131
+ SSH,
132
+ TestAnnotations,
133
+ } from './src/testContext/TestAnnotations.js'
134
+ import { TestContext } from './src/testContext/TestContext.js'
135
+ import { UnifiedReportManager } from './src/testContext/UnifiedReportManager.js'
136
+ import { CoverageManager } from './src/testContext/CoverageManager.js'
137
+
138
+ // Configuração de ambiente e utilitários
139
+ import { cleanupEnvLock } from './src/config/envLoader.js'
140
+ import { DataStore } from './src/utils/DataStore.js'
141
+ import { Logger } from './src/utils/Logger.js'
142
+
143
+ // ============================================
144
+ // INTERFACES E TIPOS (sempre necessários)
145
+ // ============================================
146
+ export type { ILocator, IPage } from './src/interfaces.js'
147
+
148
+ // ============================================
149
+ // CORE - CLASSES PRINCIPAIS
150
+ // ============================================
151
+
152
+ // API e comunicação
153
+ export { ApiActions, type ApiRequest } from './src/api/ApiActions.js'
154
+ export { JsonResponse } from './src/api/JsonResponse.js'
155
+
156
+ // Mobile - ✅ COM INTEGRAÇÃO SCREENSHOT CORRIGIDA
157
+ export { Direcao, MobileActions } from './src/appium/MobileActions.js'
158
+ export { MobileConnection } from './src/appium/MobileConnection.js'
159
+
160
+ // Helpers específicos
161
+ export { BancoActions } from './src/helpers/BancoActions.js'
162
+ export { ConexaoTestHelper } from './src/helpers/ConexaoTestHelper.js'
163
+
164
+ // Ações e manipulação
165
+ export { WebActions } from './src/playwright/WebActions.js'
166
+
167
+ // SSH
168
+ export { SSHActions } from './src/ssh/SSHActions.js'
169
+ export { SSHClient } from './src/ssh/SSHClient.js'
170
+
171
+ // ============================================
172
+ // SISTEMA UNIFICADO (novo core)
173
+ // ============================================
174
+
175
+ export {
176
+ Api,
177
+ Auto,
178
+ Banco,
179
+ Front,
180
+ Frontend,
181
+ Mixed,
182
+ Mobile,
183
+ SSH,
184
+ TestAnnotations,
185
+ } from './src/testContext/TestAnnotations.js'
186
+
187
+ // Test Context e Anotações
188
+ export { TestContext } from './src/testContext/TestContext.js'
189
+ export { UnifiedReportManager } from './src/testContext/UnifiedReportManager.js'
190
+ export { CoverageManager } from './src/testContext/CoverageManager.js'
191
+
192
+ // ============================================
193
+ // UTILITÁRIOS ESSENCIAIS
194
+ // ============================================
195
+
196
+ // Configuração de ambiente
197
+ export { cleanupEnvLock } from './src/config/envLoader.js'
198
+ export { DataStore } from './src/utils/DataStore.js'
199
+
200
+ // Logs e dados
201
+ export { Logger } from './src/utils/Logger.js'
202
+
203
+ // ============================================
204
+ // 🔧 JEST-SAFE EXPORTS (NOVO)
205
+ // ============================================
206
+ export { default as globalSetup } from './src/global-setup.js'
207
+ export { resolveJestVitestConflict } from './src/config/jest-safe-setup.js'
208
+
209
+ // AutoDocs exports
210
+ export { AutoDocs } from './src/autodocs/AutoDocs.js'
211
+
212
+ // ============================================
213
+ // EXPORTAÇÃO DEFAULT UNIFICADA (CORRIGIDA)
214
+ // ============================================
215
+
216
+ const AutoCoreUnified = {
217
+ // Core Actions
218
+ WebActions,
219
+ MobileActions,
220
+ MobileConnection,
221
+
222
+ // Helpers
223
+ ConexaoTestHelper,
224
+ BancoActions,
225
+
226
+ // API
227
+ ApiActions,
228
+ JsonResponse,
229
+
230
+ // SSH
231
+ SSHClient,
232
+ SSHActions,
233
+
234
+ // Sistema Unificado
235
+ TestContext,
236
+ UnifiedReportManager,
237
+ CoverageManager,
238
+ TestAnnotations,
239
+
240
+ // Anotações individuais
241
+ Api,
242
+ Frontend,
243
+ Front,
244
+ Mobile,
245
+ SSH,
246
+ Banco,
247
+ Mixed,
248
+ Auto,
249
+
250
+ // Utilitários
251
+ Logger,
252
+ DataStore,
253
+ cleanupEnvLock,
254
+ }
255
+
256
+ export default AutoCoreUnified
257
+
258
+ // 🔧 Auto-inicialização do Jest-Safe setup (silent mode)
259
+ if (process.env.NODE_ENV !== 'production') {
260
+ // Log apenas em desenvolvimento
261
+ }
262
+ `;
263
+ const indexPath = join(process.cwd(), 'index.ts');
264
+ writeFileSync(indexPath, fixedTemplate);
265
+ console.log('✅ index.ts gerado com template fixo para CI');
266
+ return;
267
+ }
268
+ // 🔧 Versão original para desenvolvimento local
269
+ const srcDir = join(process.cwd(), 'src');
270
+ const files = walkDir(srcDir);
271
+ const exportMap = {};
272
+ const seenExports = new Set(); // Para evitar duplicatas
273
+ for (const file of files) {
274
+ if (file.endsWith('.d.js') || file.endsWith('.d.js'))
275
+ continue; // Ignora arquivos de definição
276
+ const exportedNames = getExportedNames(file);
277
+ if (exportedNames.length === 0)
278
+ continue;
279
+ const relativePath = relative(process.cwd(), file)
280
+ .replace(/\\/g, '/')
281
+ .replace(/\.ts$/, '.js'); // ✅ Manter extensão .ts para desenvolvimento TypeScript
282
+ const folder = dirname(relativePath);
283
+ if (!exportMap[folder])
284
+ exportMap[folder] = [];
285
+ for (const name of exportedNames) {
286
+ const exportLine = `export { ${name} } from './${relativePath}';`;
287
+ // 🔧 CORREÇÃO: Para "default as NomeClasse", usar "NomeClasse" como chave
288
+ // Isso permite múltiplos export default de arquivos diferentes
289
+ let exportKey;
290
+ if (name.startsWith('default as ')) {
291
+ exportKey = name.replace('default as ', ''); // Usa o nome real da classe/função
292
+ }
293
+ else {
294
+ exportKey = name; // Para exports nomeados, usa o nome direto
295
+ }
296
+ if (!seenExports.has(exportKey)) {
297
+ exportMap[folder].push(exportLine);
298
+ seenExports.add(exportKey);
299
+ }
300
+ }
301
+ }
302
+ const header = '// Arquivo principal de exportação\n\n';
303
+ const sortedFolders = Object.keys(exportMap).sort();
304
+ const exportsByFolder = sortedFolders
305
+ .map((folder) => {
306
+ const lines = exportMap[folder].sort();
307
+ return `// ${folder}\n${lines.join('\n')}\n`;
308
+ })
309
+ .join('\n');
310
+ const indexPath = join(process.cwd(), 'index.ts');
311
+ writeFileSync(indexPath, header + exportsByFolder);
312
+ console.log('✅ index.ts gerado dinamicamente para desenvolvimento');
313
+ }
314
+ generateIndexFile();
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};