@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,369 @@
1
+ /**
2
+ * 🔧 AutoCore Jest-Safe Setup - Configuração Avançada Jest/Vitest
3
+ * @silasfmartins/testhub v1.1.48
4
+ *
5
+ * Sistema automático de resolução de conflitos Jest/Vitest para projetos
6
+ * que utilizam ambos os padrões .test.ts e .spec.ts
7
+ *
8
+ * OPÇÃO B COMPLETA: 8 Métodos Avançados de Resolução
9
+ */
10
+ // 🚨 CRÍTICO: Interceptar Object.defineProperty IMEDIATAMENTE
11
+ // Isso DEVE acontecer antes de qualquer outro código para evitar o erro:
12
+ // "TypeError: Cannot redefine property: Symbol($$jest-matchers-object)"
13
+ const _originalDefineProperty = Object.defineProperty;
14
+ const _interceptedSymbols = new Set();
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ Object.defineProperty = function (obj, prop, descriptor) {
17
+ // Detectar se é um símbolo Jest/Vitest/matchers
18
+ const isMatcherSymbol = typeof prop === 'symbol' &&
19
+ (prop.toString().includes('jest') ||
20
+ prop.toString().includes('vitest') ||
21
+ prop.toString().includes('matchers'));
22
+ if (isMatcherSymbol) {
23
+ // Verificar se já existe no objeto
24
+ const existingDescriptor = Object.getOwnPropertyDescriptor(obj, prop);
25
+ if (existingDescriptor) {
26
+ // Se já existe e não é configurável, pular silenciosamente
27
+ if (!existingDescriptor.configurable) {
28
+ // Já foi definido por outro framework, ignorar tentativa de redefinição
29
+ _interceptedSymbols.add(prop);
30
+ return obj;
31
+ }
32
+ }
33
+ // Forçar a propriedade a ser configurável para permitir futuras redefinições
34
+ const safeDescriptor = {
35
+ ...descriptor,
36
+ configurable: true,
37
+ };
38
+ try {
39
+ return _originalDefineProperty.call(Object, obj, prop, safeDescriptor);
40
+ }
41
+ catch {
42
+ // Se ainda falhar, simplesmente ignorar
43
+ _interceptedSymbols.add(prop);
44
+ return obj;
45
+ }
46
+ }
47
+ // Para outras propriedades, usar comportamento padrão
48
+ return _originalDefineProperty.call(Object, obj, prop, descriptor);
49
+ };
50
+ const SUBSTRING_START = 2;
51
+ const RANDOM_LENGTH = 9;
52
+ const RADIX_BASE_36 = 36;
53
+ /**
54
+ * 🛡️ CRÍTICO: Pré-limpeza imediata de símbolos Jest
55
+ * Executado ANTES de qualquer import do Vitest para evitar conflitos
56
+ */
57
+ function preCleanJestSymbols() {
58
+ try {
59
+ // Limpar propriedades Jest no globalThis antes que o Vitest as defina
60
+ const jestSymbolPatterns = ['jest', 'matchers', 'asymmetric'];
61
+ const globalObj = globalThis;
62
+ // Obter todos os símbolos do globalThis
63
+ const symbols = Object.getOwnPropertySymbols(globalThis);
64
+ for (const sym of symbols) {
65
+ const symStr = sym.toString().toLowerCase();
66
+ const isJestRelated = jestSymbolPatterns.some((pattern) => symStr.includes(pattern));
67
+ if (isJestRelated) {
68
+ try {
69
+ // Tentar deletar diretamente
70
+ delete globalObj[sym];
71
+ }
72
+ catch {
73
+ // Se não conseguir deletar, tentar tornar configurável
74
+ try {
75
+ _originalDefineProperty.call(Object, globalThis, sym, {
76
+ configurable: true,
77
+ writable: true,
78
+ value: globalObj[sym],
79
+ });
80
+ delete globalObj[sym];
81
+ }
82
+ catch {
83
+ // Ignorar - não conseguimos limpar este símbolo
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ catch {
90
+ // Ignorar erros de pré-limpeza
91
+ }
92
+ }
93
+ // 🚨 Executar pré-limpeza IMEDIATAMENTE ao carregar o módulo
94
+ preCleanJestSymbols();
95
+ /**
96
+ * 🛡️ Função Principal: Resolver Conflitos Jest/Vitest
97
+ *
98
+ * Implementa 8 métodos de proteção para evitar:
99
+ * - TypeError: Cannot redefine property: Symbol($$jest-matchers-object)
100
+ * - Conflitos entre expect() do Jest vs Vitest
101
+ * - Problemas de Symbol registry
102
+ * - Redefinição de propriedades globais
103
+ */
104
+ export function resolveJestVitestConflict() {
105
+ // Log silencioso apenas em desenvolvimento
106
+ const isDevMode = process.env.NODE_ENV !== 'production';
107
+ if (isDevMode) {
108
+ // eslint-disable-next-line no-console
109
+ }
110
+ try {
111
+ // 🔧 MÉTODO 0: Pré-limpeza (já executada, mas garantir)
112
+ preCleanJestSymbols();
113
+ // 🔧 MÉTODO 1: Limpar Symbol registry global
114
+ clearSymbolRegistry(isDevMode);
115
+ // 🔧 MÉTODO 2: Interceptar Object.defineProperty para evitar redefinições
116
+ interceptDefineProperty(isDevMode);
117
+ // 🔧 MÉTODO 3: Configurar isolamento de worker process
118
+ configureWorkerIsolation(isDevMode);
119
+ // 🔧 MÉTODO 4: Limpar module cache para símbolos Jest
120
+ clearModuleCache(isDevMode);
121
+ // 🔧 MÉTODO 5: Configurar globalThis de forma segura
122
+ configureGlobalThis(isDevMode);
123
+ // 🔧 MÉTODO 6: Configurar variáveis de ambiente específicas
124
+ configureEnvironmentVariables(isDevMode);
125
+ // 🔧 MÉTODO 7: Interceptar require para Jest packages
126
+ interceptRequire(isDevMode);
127
+ // 🔧 MÉTODO 8: Cleanup de timers e recursos
128
+ cleanupResources(isDevMode);
129
+ // 🔧 Auto-detecção de ambiente
130
+ autoConfigureEnvironment(isDevMode);
131
+ if (isDevMode) {
132
+ // eslint-disable-next-line no-console
133
+ }
134
+ }
135
+ catch (error) {
136
+ const errorMessage = error instanceof Error ? error.message : String(error);
137
+ if (isDevMode) {
138
+ // eslint-disable-next-line no-console
139
+ console.warn(`⚠️ [AutoCore] Warning during Jest/Vitest setup: ${errorMessage}`);
140
+ }
141
+ // Não fazer throw para não quebrar a inicialização
142
+ }
143
+ }
144
+ /**
145
+ * 🔧 MÉTODO 1: Limpar Symbol registry global
146
+ */
147
+ function clearSymbolRegistry(isDevMode) {
148
+ if (typeof globalThis !== 'undefined' && globalThis.Symbol) {
149
+ const symbolRegistry = globalThis.Symbol
150
+ ._registry || new Map();
151
+ // Limpar símbolos Jest específicos
152
+ const jestSymbols = [
153
+ '$$jest-matchers-object',
154
+ '$$jest-asymmetric-matchers-object',
155
+ ];
156
+ for (const jestSymbol of jestSymbols) {
157
+ for (const [key] of symbolRegistry) {
158
+ if (key?.includes?.('jest')) {
159
+ symbolRegistry.delete(key);
160
+ }
161
+ }
162
+ }
163
+ if (isDevMode) {
164
+ // eslint-disable-next-line no-console
165
+ }
166
+ }
167
+ }
168
+ /**
169
+ * 🔧 MÉTODO 2: Interceptar Object.defineProperty para evitar redefinições
170
+ * NOTA: A interceptação principal já acontece no topo do arquivo.
171
+ * Este método apenas marca como interceptado para evitar duplicação.
172
+ */
173
+ function interceptDefineProperty(_isDevMode) {
174
+ // A interceptação já foi feita no topo do arquivo
175
+ // Apenas marcar como interceptado
176
+ const globalObj = globalThis;
177
+ globalObj.__AUTOCORE_DEFINE_PROPERTY_INTERCEPTED__ = true;
178
+ }
179
+ /**
180
+ * 🔧 MÉTODO 3: Configurar isolamento de worker process
181
+ */
182
+ function configureWorkerIsolation(isDevMode) {
183
+ if (typeof process !== 'undefined') {
184
+ const PROCESS_ID = `autocore-${Date.now()}-${Math.random().toString(RADIX_BASE_36).substr(SUBSTRING_START, RANDOM_LENGTH)}`;
185
+ process.env.AUTOCORE_PROCESS_ID = PROCESS_ID;
186
+ process.env.VITEST_WORKER_ID = PROCESS_ID;
187
+ process.env.NODE_ENV = process.env.NODE_ENV || 'test';
188
+ // Configurações específicas para evitar conflitos
189
+ process.env.FORCE_COLOR = '0'; // Evitar conflitos de output
190
+ process.env.CI = process.env.CI || 'false';
191
+ process.env.VITEST_POOL_ID = '1'; // Pool único
192
+ if (isDevMode) {
193
+ // eslint-disable-next-line no-console
194
+ }
195
+ }
196
+ }
197
+ /**
198
+ * 🔧 MÉTODO 4: Limpar module cache para símbolos Jest
199
+ */
200
+ function clearModuleCache(isDevMode) {
201
+ if (typeof require !== 'undefined' && require.cache) {
202
+ const cacheKeys = Object.keys(require.cache);
203
+ for (const key of cacheKeys) {
204
+ if (key.includes('jest') ||
205
+ key.includes('@jest') ||
206
+ key.includes('expect')) {
207
+ try {
208
+ delete require.cache[key];
209
+ }
210
+ catch {
211
+ // Ignorar erros de limpeza de cache
212
+ }
213
+ }
214
+ }
215
+ if (isDevMode) {
216
+ // eslint-disable-next-line no-console
217
+ }
218
+ }
219
+ }
220
+ /**
221
+ * 🔧 MÉTODO 5: Configurar globalThis de forma segura
222
+ */
223
+ function configureGlobalThis(isDevMode) {
224
+ if (typeof globalThis !== 'undefined') {
225
+ // Marcar como ambiente AutoCore
226
+ const globalObj = globalThis;
227
+ globalObj.__AUTOCORE_INITIALIZED__ = true;
228
+ globalObj.__AUTOCORE_PROCESS_ID__ = process.env.AUTOCORE_PROCESS_ID;
229
+ // Evitar conflitos de expect se já existe
230
+ if (!globalObj.expect) {
231
+ // Só definir expect se não existir
232
+ try {
233
+ const { expect } = require('vitest');
234
+ globalObj.expect = expect;
235
+ }
236
+ catch {
237
+ // Se vitest não disponível, continuar sem expect global
238
+ }
239
+ }
240
+ if (isDevMode) {
241
+ // eslint-disable-next-line no-console
242
+ }
243
+ }
244
+ }
245
+ /**
246
+ * 🔧 MÉTODO 6: Configurar variáveis de ambiente específicas
247
+ */
248
+ function configureEnvironmentVariables(isDevMode) {
249
+ if (typeof process !== 'undefined') {
250
+ // Variáveis para controle de execução
251
+ process.env.AUTOCORE_JEST_SAFE = 'true';
252
+ process.env.VITEST_GLOBALS = 'false'; // CRÍTICO: evitar globals
253
+ process.env.VITEST_ISOLATE = 'true';
254
+ process.env.VITEST_SINGLE_FORK = 'true';
255
+ // Configurações de memory management
256
+ const nodeOptions = [
257
+ process.env.NODE_OPTIONS,
258
+ '--max-old-space-size=4096',
259
+ '--no-deprecation',
260
+ '--no-warnings',
261
+ '--unhandled-rejections=warn',
262
+ ].filter(Boolean);
263
+ process.env.NODE_OPTIONS = nodeOptions.join(' ');
264
+ if (isDevMode) {
265
+ // eslint-disable-next-line no-console
266
+ }
267
+ }
268
+ }
269
+ /**
270
+ * 🔧 MÉTODO 7: Interceptar require para Jest packages
271
+ */
272
+ function interceptRequire(isDevMode) {
273
+ if (typeof require !== 'undefined') {
274
+ const Module = require('node:module');
275
+ const originalRequire = Module.prototype.require;
276
+ Module.prototype.require = function (id, ...args) {
277
+ // Se está tentando carregar Jest em ambiente Vitest, bloquear
278
+ if (process.env.VITEST && (id.includes('@jest/') || id === 'jest')) {
279
+ if (isDevMode) {
280
+ // eslint-disable-next-line no-console
281
+ console.warn(`[AutoCore] Bloqueando carregamento de ${id} em ambiente Vitest`);
282
+ }
283
+ return {}; // Retornar objeto vazio
284
+ }
285
+ return originalRequire.apply(this, [id, ...args]);
286
+ };
287
+ if (isDevMode) {
288
+ // eslint-disable-next-line no-console
289
+ }
290
+ }
291
+ }
292
+ /**
293
+ * 🔧 MÉTODO 8: Cleanup de timers e recursos
294
+ */
295
+ function cleanupResources(isDevMode) {
296
+ try {
297
+ // Limpar timers que podem causar conflitos
298
+ if (typeof global !== 'undefined') {
299
+ const timerNames = ['setTimeout', 'setInterval', 'setImmediate'];
300
+ for (const timerName of timerNames) {
301
+ const globalObj = global;
302
+ const originalTimer = globalObj[timerName];
303
+ if (originalTimer && typeof originalTimer.unref === 'function') {
304
+ globalObj[timerName] = function (...args) {
305
+ const timer = originalTimer.apply(this, args);
306
+ if (timer && typeof timer.unref === 'function') {
307
+ timer.unref(); // Permitir que processo termine sem aguardar timer
308
+ }
309
+ return timer;
310
+ };
311
+ }
312
+ }
313
+ }
314
+ }
315
+ catch {
316
+ // Ignorar erros de cleanup
317
+ }
318
+ if (isDevMode) {
319
+ // eslint-disable-next-line no-console
320
+ }
321
+ }
322
+ /**
323
+ * 🔧 Auto-detecção de ambiente e configuração automática
324
+ */
325
+ function autoConfigureEnvironment(isDevMode) {
326
+ try {
327
+ // Detectar se estamos em ambiente Vitest
328
+ const isVitest = process.env.VITEST ||
329
+ process.argv.some((arg) => arg.includes('vitest')) ||
330
+ typeof globalThis.__vitest_worker__ !==
331
+ 'undefined';
332
+ // Detectar se Jest está presente
333
+ const hasJest = typeof globalThis.jest !== 'undefined' ||
334
+ Boolean(process.env.JEST_WORKER_ID) ||
335
+ (typeof require !== 'undefined' &&
336
+ (() => {
337
+ try {
338
+ require('@jest/globals');
339
+ return true;
340
+ }
341
+ catch {
342
+ return false;
343
+ }
344
+ })());
345
+ if (isDevMode && process.env.AUTOCORE_DEBUG_LOGS) {
346
+ // eslint-disable-next-line no-console
347
+ console.log(`🔧 [AutoCore] Environment Detection: Vitest=${isVitest}, Jest=${hasJest}`);
348
+ }
349
+ if (isVitest) {
350
+ process.env.AUTOCORE_RUNTIME = 'vitest';
351
+ process.env.VITEST_GLOBALS = 'false'; // CRÍTICO
352
+ }
353
+ else if (hasJest) {
354
+ process.env.AUTOCORE_RUNTIME = 'jest';
355
+ }
356
+ else {
357
+ process.env.AUTOCORE_RUNTIME = 'unknown';
358
+ }
359
+ }
360
+ catch (error) {
361
+ const errorMessage = error instanceof Error ? error.message : String(error);
362
+ if (isDevMode && process.env.AUTOCORE_DEBUG_LOGS) {
363
+ // eslint-disable-next-line no-console
364
+ console.warn(`⚠️ [AutoCore] Environment detection error: ${errorMessage}`);
365
+ }
366
+ }
367
+ }
368
+ // 🚀 Auto-inicialização
369
+ resolveJestVitestConflict();
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Configuração centralizada de timeouts do framework.
3
+ *
4
+ * Em vez de espalhar valores mágicos pelo código, todos os timeouts
5
+ * ficam definidos aqui. Os valores podem ser sobrescritos via variáveis
6
+ * de ambiente.
7
+ *
8
+ * @module config/timeouts
9
+ */
10
+ export declare const TIMEOUTS: {
11
+ /** Delay mínimo para estabilizar efeitos visuais (50ms) */
12
+ readonly SHORT: number;
13
+ /** Delay médio para transições DOM (150ms) */
14
+ readonly MEDIUM: number;
15
+ /** Delay longo para operações de rede/renderização (1000ms) */
16
+ readonly LONG: number;
17
+ /** Delay para verificação de estabilidade DOM (300ms) */
18
+ readonly DOM_STABILITY: number;
19
+ /** Timeout para waitForElement padrão (30s) */
20
+ readonly ELEMENT_WAIT: number;
21
+ /** Timeout para navegação de página (60s) */
22
+ readonly NAVIGATION: number;
23
+ /** Timeout para chamadas de API (30s) */
24
+ readonly API_REQUEST: number;
25
+ /** Cooldown entre refresh DOM (200ms) */
26
+ readonly DOM_REFRESH_COOLDOWN: number;
27
+ /** TTL do cache de seletores (500ms) */
28
+ readonly SELECTOR_CACHE_TTL: number;
29
+ /** Intervalo do interceptor setTimeout (100ms) */
30
+ readonly INTERCEPTOR_INIT_DELAY: number;
31
+ };
32
+ export type TimeoutKey = keyof typeof TIMEOUTS;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Configuração centralizada de timeouts do framework.
3
+ *
4
+ * Em vez de espalhar valores mágicos pelo código, todos os timeouts
5
+ * ficam definidos aqui. Os valores podem ser sobrescritos via variáveis
6
+ * de ambiente.
7
+ *
8
+ * @module config/timeouts
9
+ */
10
+ function envNumber(key, fallback) {
11
+ const v = process.env[key];
12
+ if (v === undefined || v === '')
13
+ return fallback;
14
+ const n = Number(v);
15
+ return Number.isFinite(n) ? n : fallback;
16
+ }
17
+ export const TIMEOUTS = {
18
+ /** Delay mínimo para estabilizar efeitos visuais (50ms) */
19
+ SHORT: envNumber('AUTOCORE_TIMEOUT_SHORT', 50),
20
+ /** Delay médio para transições DOM (150ms) */
21
+ MEDIUM: envNumber('AUTOCORE_TIMEOUT_MEDIUM', 150),
22
+ /** Delay longo para operações de rede/renderização (1000ms) */
23
+ LONG: envNumber('AUTOCORE_TIMEOUT_LONG', 1000),
24
+ /** Delay para verificação de estabilidade DOM (300ms) */
25
+ DOM_STABILITY: envNumber('AUTOCORE_TIMEOUT_DOM_STABILITY', 300),
26
+ /** Timeout para waitForElement padrão (30s) */
27
+ ELEMENT_WAIT: envNumber('AUTOCORE_TIMEOUT_ELEMENT_WAIT', 30_000),
28
+ /** Timeout para navegação de página (60s) */
29
+ NAVIGATION: envNumber('AUTOCORE_TIMEOUT_NAVIGATION', 60_000),
30
+ /** Timeout para chamadas de API (30s) */
31
+ API_REQUEST: envNumber('AUTOCORE_TIMEOUT_API_REQUEST', 30_000),
32
+ /** Cooldown entre refresh DOM (200ms) */
33
+ DOM_REFRESH_COOLDOWN: envNumber('AUTOCORE_DOM_REFRESH_COOLDOWN_MS', 200),
34
+ /** TTL do cache de seletores (500ms) */
35
+ SELECTOR_CACHE_TTL: envNumber('AUTOCORE_SELECTOR_CACHE_TTL_MS', 500),
36
+ /** Intervalo do interceptor setTimeout (100ms) */
37
+ INTERCEPTOR_INIT_DELAY: envNumber('AUTOCORE_INTERCEPTOR_INIT_DELAY', 100),
38
+ };
@@ -0,0 +1,46 @@
1
+ export declare class DesktopActions {
2
+ private static ensureDriver;
3
+ private static executarComLog;
4
+ private static runSikuliIfNeeded;
5
+ static click(element: any, description?: string, getSnapshot?: boolean): Promise<{
6
+ stdout: string;
7
+ stderr: string;
8
+ } | undefined>;
9
+ static doubleClick(element: any, description?: string, getSnapshot?: boolean): Promise<{
10
+ stdout: string;
11
+ stderr: string;
12
+ } | undefined>;
13
+ static setText(element: any, text: string, description?: string, getSnapshot?: boolean): Promise<{
14
+ stdout: string;
15
+ stderr: string;
16
+ } | undefined>;
17
+ static selectInTableActiveRow(element: any, rowActivate: number, description?: string, getSnapshot?: boolean): Promise<void>;
18
+ static clickOptionInTable(element: any, item: string, description?: string, getSnapshot?: boolean): Promise<void>;
19
+ static clickOptionInTableRowAndHeader(element: any, row: number, header: string, description?: string, getSnapshot?: boolean): Promise<void>;
20
+ static doubleClickOptionInTable(element: any, item: string, description?: string, getSnapshot?: boolean): Promise<void>;
21
+ static selectRowInTable(element: any, row: number, description?: string, getSnapshot?: boolean): Promise<void>;
22
+ static selectRowOptionInTable(element: any, itens: string[], description?: string, getSnapshot?: boolean): Promise<void>;
23
+ static selectInTreeView(element: any, pathStr: string, description?: string, getSnapshot?: boolean): Promise<void>;
24
+ static selectInTabControl(element: any, item: string, description?: string, getSnapshot?: boolean): Promise<void>;
25
+ static setValueTable(element: any, value: string, row: number, column: string, description?: string, getSnapshot?: boolean): Promise<void>;
26
+ static setStateCheckBox(element: any, checked: boolean, description?: string, getSnapshot?: boolean): Promise<void>;
27
+ static implicitWait(element: any, timeOrDesc?: number | string, descriptionOrGet?: string | boolean, getSnapshot?: boolean): Promise<void>;
28
+ static selectInList(element: any, text: string, description?: string, getSnapshot?: boolean): Promise<void>;
29
+ static validateObject(element: any, arg1?: any, arg2?: any, arg3?: any): Promise<boolean>;
30
+ static setTextTable(element: any, row: number, columnHeader: string, value: string, description?: string, getSnapshot?: boolean): Promise<void>;
31
+ static getText(element: any, description?: string, getSnapshot?: boolean): Promise<string>;
32
+ static getTextEditor(element: any, description?: string, getSnapshot?: boolean): Promise<string>;
33
+ static getAttachedText(element: any, description?: string, getSnapshot?: boolean): Promise<string>;
34
+ static getLabel(element: any, description?: string, getSnapshot?: boolean): Promise<string>;
35
+ static selectOptionMenu(element: any, description?: string, getSnapshot?: boolean): Promise<{
36
+ stdout: string;
37
+ stderr: string;
38
+ } | undefined>;
39
+ static selectOptionSubMenu(element: any, path: string, description?: string, getSnapshot?: boolean): Promise<void>;
40
+ static closeWindow(element: any, description?: string): Promise<void>;
41
+ static maximizeWindow(description?: string, getSnapshot?: boolean): Promise<void>;
42
+ static pressKey(key: number, description?: string): Promise<void>;
43
+ static releaseKey(key: number, description?: string): Promise<void>;
44
+ static waitForElementJavaToDisappear(object: any, time?: number): Promise<boolean>;
45
+ }
46
+ export default DesktopActions;