@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,52 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import { getLatestVersions } from './package-versions.ts';
6
+ /**
7
+ * Script para atualizar todas as versões nos arquivos init
8
+ */
9
+ async function updateAllInitScripts() {
10
+ console.log('🔄 Atualizando versões em todos os scripts init...');
11
+ const versions = await getLatestVersions();
12
+ console.log('📦 Versões atuais:');
13
+ console.log('Dependencies:', versions.dependencies);
14
+ console.log('DevDependencies:', versions.devDependencies);
15
+ const initFiles = [
16
+ 'init-api.ts',
17
+ 'init-frontend.ts',
18
+ 'init-mobile.ts',
19
+ 'init-ssh.ts',
20
+ 'init-banco.ts',
21
+ 'init-scenarios.ts',
22
+ ];
23
+ const scriptsDir = path.join(process.cwd(), 'scripts');
24
+ for (const file of initFiles) {
25
+ const filePath = path.join(scriptsDir, file);
26
+ if (fs.existsSync(filePath)) {
27
+ console.log(`✏️ Verificando ${file}...`);
28
+ const content = fs.readFileSync(filePath, 'utf8');
29
+ // Verificar se já usa o novo sistema
30
+ if (content.includes('getLatestVersions') &&
31
+ content.includes('generatePackageJson')) {
32
+ console.log(` ✅ ${file} já está atualizado`);
33
+ }
34
+ else {
35
+ console.log(` 📝 ${file} precisa ser atualizado manualmente`);
36
+ }
37
+ }
38
+ else {
39
+ console.log(` ⚠️ ${file} não encontrado`);
40
+ }
41
+ }
42
+ console.log('');
43
+ console.log('💡 Para completar a atualização dos outros init scripts:');
44
+ console.log(' 1. Use o padrão do init-api.ts como base');
45
+ console.log(' 2. Substitua package.json hardcoded pelo generatePackageJson()');
46
+ console.log(' 3. Substitua tsconfig.json por generateTsConfigForProject()');
47
+ console.log(' 4. Adicione setupUltracite() ao final de cada script');
48
+ console.log(' 5. Ajuste o projectType para cada init (api, frontend, mobile, etc.)');
49
+ console.log('');
50
+ console.log('✅ Verificação concluída!');
51
+ }
52
+ updateAllInitScripts().catch(console.error);
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * Script para atualizar o $schema do biome.json baseado na versão do @biomejs/biome
4
+ * Mantém sincronizado o schema com a versão instalada do pacote
5
+ *
6
+ * @example
7
+ * ```bash
8
+ * # Execução manual
9
+ * npx tsx scripts/update-biome-schema.ts
10
+ *
11
+ * # Na pipeline Azure DevOps
12
+ * npm run update:biome-schema
13
+ * ```
14
+ */
15
+ export {};
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * Script para atualizar o $schema do biome.json baseado na versão do @biomejs/biome
4
+ * Mantém sincronizado o schema com a versão instalada do pacote
5
+ *
6
+ * @example
7
+ * ```bash
8
+ * # Execução manual
9
+ * npx tsx scripts/update-biome-schema.ts
10
+ *
11
+ * # Na pipeline Azure DevOps
12
+ * npm run update:biome-schema
13
+ * ```
14
+ */
15
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
16
+ import { join } from 'node:path';
17
+ const BIOME_PACKAGE_NAME = '@biomejs/biome';
18
+ const BIOME_SCHEMA_BASE_URL = 'https://biomejs.dev/schemas';
19
+ // Regex patterns no escopo superior para performance
20
+ const VERSION_PREFIX_REGEX = /^[\^~]/;
21
+ const SCHEMA_URL_REGEX = /"https:\/\/biomejs\.dev\/schemas\/([^/]+)\/schema\.json"/;
22
+ const SCHEMA_REPLACE_REGEX = /"https:\/\/biomejs\.dev\/schemas\/[^/]+\/schema\.json"/;
23
+ /**
24
+ * Extrai a versão limpa do @biomejs/biome do package.json
25
+ */
26
+ function getBiomeVersion() {
27
+ const packageJsonPath = join(process.cwd(), 'package.json');
28
+ if (!existsSync(packageJsonPath)) {
29
+ console.error('❌ package.json não encontrado');
30
+ return null;
31
+ }
32
+ try {
33
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
34
+ const biomeVersion = packageJson.devDependencies?.[BIOME_PACKAGE_NAME] ||
35
+ packageJson.dependencies?.[BIOME_PACKAGE_NAME];
36
+ if (!biomeVersion) {
37
+ console.log(`⚠️ ${BIOME_PACKAGE_NAME} não encontrado no package.json`);
38
+ return null;
39
+ }
40
+ // Remover ^ ou ~ da versão
41
+ const cleanVersion = biomeVersion.replace(VERSION_PREFIX_REGEX, '');
42
+ return cleanVersion;
43
+ }
44
+ catch (error) {
45
+ console.error('❌ Erro ao ler package.json:', error.message);
46
+ return null;
47
+ }
48
+ }
49
+ /**
50
+ * Extrai a versão atual do schema do biome.json
51
+ */
52
+ function getCurrentSchemaVersion(content) {
53
+ const match = content.match(SCHEMA_URL_REGEX);
54
+ return match ? match[1] : null;
55
+ }
56
+ /**
57
+ * Atualiza o $schema no conteúdo do biome.json
58
+ */
59
+ function updateSchemaInContent(content, newVersion) {
60
+ const newSchema = `${BIOME_SCHEMA_BASE_URL}/${newVersion}/schema.json`;
61
+ return content.replace(SCHEMA_REPLACE_REGEX, `"${newSchema}"`);
62
+ }
63
+ /**
64
+ * Função principal
65
+ */
66
+ function main() {
67
+ console.log('🔧 Atualizando schema do biome.json...');
68
+ console.log('');
69
+ const biomeJsoncPath = join(process.cwd(), 'biome.json');
70
+ // Verificar se biome.json existe
71
+ if (!existsSync(biomeJsoncPath)) {
72
+ console.log('⚠️ biome.json não encontrado - pulando atualização');
73
+ process.exit(0);
74
+ }
75
+ // Obter versão do @biomejs/biome
76
+ console.log('📦 Lendo package.json...');
77
+ const biomeVersion = getBiomeVersion();
78
+ if (!biomeVersion) {
79
+ process.exit(0);
80
+ }
81
+ console.log(`🔍 Versão do ${BIOME_PACKAGE_NAME} detectada: ${biomeVersion}`);
82
+ console.log('');
83
+ // Ler biome.json
84
+ console.log('📄 Lendo biome.json...');
85
+ let biomeContent;
86
+ try {
87
+ biomeContent = readFileSync(biomeJsoncPath, 'utf8');
88
+ }
89
+ catch (error) {
90
+ console.error('❌ Erro ao ler biome.json:', error.message);
91
+ process.exit(1);
92
+ }
93
+ // Extrair versão atual do schema
94
+ const currentSchemaVersion = getCurrentSchemaVersion(biomeContent);
95
+ if (!currentSchemaVersion) {
96
+ console.log('⚠️ Schema não encontrado no biome.json');
97
+ process.exit(0);
98
+ }
99
+ console.log(`📌 Versão atual do schema: ${currentSchemaVersion}`);
100
+ console.log('');
101
+ // Verificar se precisa atualizar
102
+ if (currentSchemaVersion === biomeVersion) {
103
+ console.log('✅ Schema já está sincronizado com a versão do pacote!');
104
+ console.log(` Versão: ${biomeVersion}`);
105
+ process.exit(0);
106
+ }
107
+ // Atualizar o schema
108
+ console.log('🔄 Atualizando schema...');
109
+ const updatedContent = updateSchemaInContent(biomeContent, biomeVersion);
110
+ // Salvar arquivo atualizado
111
+ try {
112
+ writeFileSync(biomeJsoncPath, updatedContent, 'utf8');
113
+ console.log('✅ biome.json atualizado com sucesso!');
114
+ console.log(` ${currentSchemaVersion} → ${biomeVersion}`);
115
+ console.log('');
116
+ console.log(` $schema: ${BIOME_SCHEMA_BASE_URL}/${biomeVersion}/schema.json`);
117
+ }
118
+ catch (error) {
119
+ console.error('❌ Erro ao salvar biome.json:', error.message);
120
+ process.exit(1);
121
+ }
122
+ }
123
+ // Executar
124
+ main();
@@ -0,0 +1,145 @@
1
+ /**
2
+ * @fileoverview Facade do AutoCore para compatibilidade com arquitetura DDD
3
+ * @module AutoCore/Facade
4
+ */
5
+ import type { BrowserContext, Page } from '@playwright/test';
6
+ import type { IMobileDriver } from './infrastructure/adapters/AppiumAdapter.js';
7
+ import type { IDatabaseClient } from './infrastructure/adapters/OracleAdapter.js';
8
+ import type { IWebDriver } from './infrastructure/adapters/PlaywrightAdapter.js';
9
+ import type { ISSHClient } from './infrastructure/adapters/SSHAdapter.js';
10
+ import type { DIContainer } from './infrastructure/DependencyContainer.js';
11
+ import './playwright/registerRecoveryWrappers.js';
12
+ /**
13
+ * Configuração para inicialização do AutoCore
14
+ */
15
+ export type AutoCoreConfig = {
16
+ playwright?: {
17
+ page: Page;
18
+ context?: BrowserContext;
19
+ };
20
+ appium?: {
21
+ driver: unknown;
22
+ deviceConfig?: MobileDeviceConfig;
23
+ };
24
+ ssh?: {
25
+ host: string;
26
+ port: number;
27
+ username: string;
28
+ password?: string;
29
+ privateKey?: string;
30
+ passphrase?: string;
31
+ };
32
+ database?: {
33
+ host: string;
34
+ port: number;
35
+ database: string;
36
+ username: string;
37
+ password: string;
38
+ connectionTimeout?: number;
39
+ queryTimeout?: number;
40
+ };
41
+ container?: DIContainer;
42
+ };
43
+ /**
44
+ * Configuração de dispositivo móvel
45
+ */
46
+ export type MobileDeviceConfig = {
47
+ platformName: string;
48
+ deviceName: string;
49
+ app?: string;
50
+ appPackage?: string;
51
+ appActivity?: string;
52
+ bundleId?: string;
53
+ udid?: string;
54
+ platformVersion?: string;
55
+ };
56
+ /**
57
+ * Contexto de execução do AutoCore
58
+ * Fornece acesso aos serviços configurados
59
+ */
60
+ export declare class AutoCoreContext {
61
+ readonly container: DIContainer;
62
+ constructor(container: DIContainer);
63
+ /**
64
+ * Obtém driver web (Playwright)
65
+ */
66
+ getWebDriver(): Promise<IWebDriver>;
67
+ /**
68
+ * Obtém driver móvel (Appium)
69
+ */
70
+ getMobileDriver(): Promise<IMobileDriver>;
71
+ /**
72
+ * Obtém cliente SSH
73
+ */
74
+ getSSHClient(): Promise<ISSHClient>;
75
+ /**
76
+ * Obtém cliente de banco de dados
77
+ */
78
+ getDatabaseClient(): Promise<IDatabaseClient>;
79
+ /**
80
+ * Acesso direto ao container para casos avançados
81
+ */
82
+ getContainer(): DIContainer;
83
+ /**
84
+ * Limpa recursos e conexões
85
+ */
86
+ dispose(): Promise<void>;
87
+ }
88
+ /**
89
+ * Facade principal do AutoCore
90
+ * Simplifica a inicialização e uso da arquitetura DDD
91
+ */
92
+ export declare class AutoCore {
93
+ /**
94
+ * Inicializa o AutoCore com a configuração especificada
95
+ */
96
+ static initialize(config: AutoCoreConfig): Promise<AutoCoreContext>;
97
+ /**
98
+ * Cria contexto apenas para APIs (mais leve)
99
+ */
100
+ static forAPI(): Promise<AutoCoreContext>;
101
+ /**
102
+ * Cria contexto para Web com Playwright
103
+ */
104
+ static forWeb(page: Page, context?: BrowserContext): Promise<AutoCoreContext>;
105
+ /**
106
+ * Cria contexto para Mobile com Appium
107
+ */
108
+ static forMobile(driver: unknown, deviceConfig?: MobileDeviceConfig): Promise<AutoCoreContext>;
109
+ /**
110
+ * Cria contexto híbrido Web + Mobile
111
+ */
112
+ static forHybrid(page: Page, driver: unknown, options?: {
113
+ webContext?: BrowserContext;
114
+ deviceConfig?: MobileDeviceConfig;
115
+ }): Promise<AutoCoreContext>;
116
+ /**
117
+ * 🔧 RETROCOMPATIBILIDADE: Permite usar Actions atuais com DI opcional
118
+ * Não quebra código existente, apenas adiciona DI se disponível
119
+ */
120
+ static enableDDDMode(enable?: boolean): void;
121
+ }
122
+ /**
123
+ * 🔄 MIGRAÇÃO GRADUAL: Permite transição suave para DDD
124
+ *
125
+ * FASE 1: Usar Actions atuais (sem mudanças)
126
+ * ```typescript
127
+ * import { ApiActions } from '@silasfmartins/testhub'
128
+ * await ApiActions.post(request, 'desc')
129
+ * ```
130
+ *
131
+ * FASE 2: Adicionar DDD gradualmente
132
+ * ```typescript
133
+ * import { AutoCore, ApiActions } from '@silasfmartins/testhub'
134
+ * AutoCore.enableDDDMode(true) // Opcional
135
+ * await ApiActions.post(request, 'desc') // Continua igual
136
+ * ```
137
+ *
138
+ * FASE 3: Usar DDD completo (quando pronto)
139
+ * ```typescript
140
+ * import { AutoCore } from '@silasfmartins/testhub'
141
+ * const context = await AutoCore.forWeb(page)
142
+ * const webDriver = await context.getWebDriver()
143
+ * await webDriver.click('button')
144
+ * ```
145
+ */
@@ -0,0 +1,217 @@
1
+ /**
2
+ * @fileoverview Facade do AutoCore para compatibilidade com arquitetura DDD
3
+ * @module AutoCore/Facade
4
+ */
5
+ import { AutoDocs } from './hubdocs/HubDocs.js';
6
+ import { defaultContainer } from './infrastructure/DependencyContainer.js';
7
+ import { CoverageManager } from './testContext/CoverageManager.js';
8
+ import { TerminalLogCapture } from './utils/TerminalLogCapture.js';
9
+ import { Logger } from './utils/Logger.js';
10
+ // Registrar wrappers de recovery globalmente para WebActions
11
+ import './playwright/registerRecoveryWrappers.js';
12
+ /**
13
+ * Contexto de execução do AutoCore
14
+ * Fornece acesso aos serviços configurados
15
+ */
16
+ export class AutoCoreContext {
17
+ container;
18
+ constructor(container) {
19
+ this.container = container;
20
+ }
21
+ /**
22
+ * Obtém driver web (Playwright)
23
+ */
24
+ async getWebDriver() {
25
+ return await this.container.resolve('webDriver');
26
+ }
27
+ /**
28
+ * Obtém driver móvel (Appium)
29
+ */
30
+ async getMobileDriver() {
31
+ return await this.container.resolve('mobileDriver');
32
+ }
33
+ /**
34
+ * Obtém cliente SSH
35
+ */
36
+ async getSSHClient() {
37
+ return await this.container.resolve('sshClient');
38
+ }
39
+ /**
40
+ * Obtém cliente de banco de dados
41
+ */
42
+ async getDatabaseClient() {
43
+ return await this.container.resolve('databaseClient');
44
+ }
45
+ /**
46
+ * Acesso direto ao container para casos avançados
47
+ */
48
+ getContainer() {
49
+ return this.container;
50
+ }
51
+ /**
52
+ * Limpa recursos e conexões
53
+ */
54
+ async dispose() {
55
+ try {
56
+ // 📚 NOVO: Gerar documentação automática ao finalizar
57
+ await AutoDocs.generateDocs();
58
+ }
59
+ catch (error) {
60
+ Logger.warning(` ⚠️ AutoDocs: Erro ao gerar documentação final: ${error}`);
61
+ }
62
+ // Tentar fechar conexões SSH
63
+ try {
64
+ if (this.container.hasService('sshClient')) {
65
+ const sshClient = await this.container.resolve('sshClient');
66
+ await sshClient.disconnect();
67
+ }
68
+ }
69
+ catch {
70
+ // Ignorar erros de limpeza
71
+ }
72
+ // Tentar fechar conexões de banco
73
+ try {
74
+ if (this.container.hasService('databaseClient')) {
75
+ const dbClient = await this.container.resolve('databaseClient');
76
+ await dbClient.disconnect();
77
+ }
78
+ }
79
+ catch {
80
+ // Ignorar erros de limpeza
81
+ }
82
+ // Tentar fechar drivers móveis
83
+ try {
84
+ if (this.container.hasService('mobileDriver')) {
85
+ const mobileDriver = await this.container.resolve('mobileDriver');
86
+ await mobileDriver.quit();
87
+ }
88
+ }
89
+ catch {
90
+ // Ignorar erros de limpeza
91
+ }
92
+ // Tentar fechar drivers web
93
+ try {
94
+ if (this.container.hasService('webDriver')) {
95
+ const webDriver = await this.container.resolve('webDriver');
96
+ await webDriver.close();
97
+ }
98
+ }
99
+ catch {
100
+ // Ignorar erros de limpeza
101
+ }
102
+ // Limpar instâncias do container
103
+ this.container.clearInstances();
104
+ }
105
+ }
106
+ /**
107
+ * Facade principal do AutoCore
108
+ * Simplifica a inicialização e uso da arquitetura DDD
109
+ */
110
+ export class AutoCore {
111
+ /**
112
+ * Inicializa o AutoCore com a configuração especificada
113
+ */
114
+ static async initialize(config) {
115
+ // ✅ CRÍTICO: Iniciar captura de logs no Worker para garantir que StatementTracker tenha acesso
116
+ TerminalLogCapture.start();
117
+ globalThis.TerminalLogCapture = TerminalLogCapture;
118
+ const container = config.container || defaultContainer.createScope();
119
+ // 📚 NOVO: Inicializar sistema de documentação automática
120
+ try {
121
+ AutoDocs.initialize({
122
+ outputDir: './docs/generated',
123
+ });
124
+ }
125
+ catch (error) {
126
+ Logger.warning(` ⚠️ AutoDocs: Erro ao inicializar documentação automática: ${error}`);
127
+ }
128
+ // 📊 NOVO: Inicializar sistema de cobertura
129
+ try {
130
+ await CoverageManager.autoInitialize();
131
+ }
132
+ catch (error) {
133
+ Logger.warning(`⚠️ Coverage: Erro ao inicializar sistema de cobertura: ${error}`);
134
+ }
135
+ return new AutoCoreContext(container);
136
+ }
137
+ /**
138
+ * Cria contexto apenas para APIs (mais leve)
139
+ */
140
+ static async forAPI() {
141
+ return await AutoCore.initialize({});
142
+ }
143
+ /**
144
+ * Cria contexto para Web com Playwright
145
+ */
146
+ static async forWeb(page, context) {
147
+ return await AutoCore.initialize({
148
+ playwright: { page, context },
149
+ });
150
+ }
151
+ /**
152
+ * Cria contexto para Mobile com Appium
153
+ */
154
+ static async forMobile(driver, deviceConfig) {
155
+ return await AutoCore.initialize({
156
+ appium: { driver, deviceConfig },
157
+ });
158
+ }
159
+ /**
160
+ * Cria contexto híbrido Web + Mobile
161
+ */
162
+ static async forHybrid(page, driver, options) {
163
+ return await AutoCore.initialize({
164
+ playwright: {
165
+ page,
166
+ context: options?.webContext,
167
+ },
168
+ appium: {
169
+ driver,
170
+ deviceConfig: options?.deviceConfig,
171
+ },
172
+ });
173
+ }
174
+ /**
175
+ * 🔧 RETROCOMPATIBILIDADE: Permite usar Actions atuais com DI opcional
176
+ * Não quebra código existente, apenas adiciona DI se disponível
177
+ */
178
+ static enableDDDMode(enable = true) {
179
+ if (enable) {
180
+ // Registra Actions no container global para DI opcional
181
+ try {
182
+ // Actions continuam funcionando independente de DI
183
+ // DI é apenas uma camada adicional opcional
184
+ if (defaultContainer) {
185
+ // Container está disponível
186
+ }
187
+ }
188
+ catch {
189
+ // Se falhar, Actions funcionam normalmente sem DI
190
+ }
191
+ }
192
+ }
193
+ }
194
+ /**
195
+ * 🔄 MIGRAÇÃO GRADUAL: Permite transição suave para DDD
196
+ *
197
+ * FASE 1: Usar Actions atuais (sem mudanças)
198
+ * ```typescript
199
+ * import { ApiActions } from '@silasfmartins/testhub'
200
+ * await ApiActions.post(request, 'desc')
201
+ * ```
202
+ *
203
+ * FASE 2: Adicionar DDD gradualmente
204
+ * ```typescript
205
+ * import { AutoCore, ApiActions } from '@silasfmartins/testhub'
206
+ * AutoCore.enableDDDMode(true) // Opcional
207
+ * await ApiActions.post(request, 'desc') // Continua igual
208
+ * ```
209
+ *
210
+ * FASE 3: Usar DDD completo (quando pronto)
211
+ * ```typescript
212
+ * import { AutoCore } from '@silasfmartins/testhub'
213
+ * const context = await AutoCore.forWeb(page)
214
+ * const webDriver = await context.getWebDriver()
215
+ * await webDriver.click('button')
216
+ * ```
217
+ */