@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,237 @@
1
+ #!/usr/bin/env node
2
+ // @ts-nocheck
3
+ import { execSync } from 'node:child_process';
4
+ import * as fs from 'node:fs';
5
+ import * as path from 'node:path';
6
+ class LocalPackagesSetup {
7
+ projectRoot;
8
+ packageJsonPath;
9
+ constructor() {
10
+ this.projectRoot = process.cwd();
11
+ this.packageJsonPath = path.join(this.projectRoot, 'package.json');
12
+ }
13
+ /**
14
+ * 🚀 Executa setup completo de pacotes locais
15
+ */
16
+ async run() {
17
+ console.log('\n🔧 ============================================');
18
+ console.log('🔧 Setup de Pacotes Locais do AutoCore');
19
+ console.log('🔧 ============================================\n');
20
+ // 1. Verificar se package.json existe
21
+ if (!fs.existsSync(this.packageJsonPath)) {
22
+ console.error('❌ package.json não encontrado!');
23
+ console.log('💡 Execute este script na raiz do seu projeto');
24
+ process.exit(1);
25
+ }
26
+ // 2. Verificar se autocore está instalado
27
+ const autocoreInstalled = this.isAutocoreInstalled();
28
+ if (!autocoreInstalled) {
29
+ console.error('❌ AutoCore não está instalado!');
30
+ console.log('💡 Execute primeiro: npm install');
31
+ process.exit(1);
32
+ }
33
+ console.log('✅ AutoCore detectado\n');
34
+ // 3. Perguntar quais pacotes configurar
35
+ const localPackages = await this.promptForLocalPackages();
36
+ if (localPackages.length === 0) {
37
+ console.log('ℹ️ Nenhum pacote local configurado');
38
+ console.log('💡 Se você tiver pacotes locais, adicione-os ao package.json com file: protocol');
39
+ process.exit(0);
40
+ }
41
+ // 4. Atualizar package.json com file: paths
42
+ this.updatePackageJson(localPackages);
43
+ // 5. Reinstalar dependências
44
+ console.log('\n📦 Reinstalando dependências com pacotes locais...\n');
45
+ try {
46
+ execSync('npm install', { stdio: 'inherit' });
47
+ console.log('\n✅ Pacotes locais configurados com sucesso!');
48
+ }
49
+ catch (error) {
50
+ console.error('\n❌ Erro ao reinstalar dependências:', error);
51
+ process.exit(1);
52
+ }
53
+ // 6. Resumo
54
+ this.printSummary(localPackages);
55
+ }
56
+ /**
57
+ * Verifica se AutoCore está instalado
58
+ */
59
+ isAutocoreInstalled() {
60
+ const autoCorePath = path.join(this.projectRoot, 'node_modules', '@rbqa', 'autocore');
61
+ return fs.existsSync(autoCorePath);
62
+ }
63
+ /**
64
+ * Detecta pacotes locais disponíveis
65
+ */
66
+ async promptForLocalPackages() {
67
+ const localPackages = [];
68
+ // Pacotes comuns que podem ter versões locais
69
+ const commonPackages = [
70
+ { name: '@rbqa/test-zip-api', description: 'API ZIP' },
71
+ { name: '@rbqa/test-mobile-app', description: 'Mobile App' },
72
+ { name: '@rbqa/test-frontend', description: 'Frontend' },
73
+ { name: '@rbqa/test-ssh-connection', description: 'SSH' },
74
+ { name: '@rbqa/test-banco-oracle', description: 'Banco Oracle' },
75
+ ];
76
+ console.log('📦 Pacotes @rbqa disponíveis para desenvolvimento local:\n');
77
+ for (const pkg of commonPackages) {
78
+ // Verificar se o pacote existe localmente
79
+ const possiblePaths = [
80
+ path.join(this.projectRoot, '..', pkg.name.split('/')[1]),
81
+ path.join(this.projectRoot, '..', '..', pkg.name.split('/')[1]),
82
+ ];
83
+ for (const localPath of possiblePaths) {
84
+ if (fs.existsSync(localPath)) {
85
+ const pkgJsonPath = path.join(localPath, 'package.json');
86
+ if (fs.existsSync(pkgJsonPath)) {
87
+ console.log(`✅ Encontrado: ${pkg.name}`);
88
+ console.log(` 📁 ${localPath}`);
89
+ localPackages.push({
90
+ name: pkg.name,
91
+ localPath: path.relative(this.projectRoot, localPath),
92
+ description: pkg.description,
93
+ });
94
+ break;
95
+ }
96
+ }
97
+ }
98
+ }
99
+ if (localPackages.length === 0) {
100
+ console.log('ℹ️ Nenhum pacote local detectado automaticamente');
101
+ console.log('💡 Você pode adicionar manualmente no package.json:');
102
+ console.log(' "dependencies": {');
103
+ console.log(' "@rbqa/test-zip-api": "file:../test-zip-api"');
104
+ console.log(' }');
105
+ }
106
+ return localPackages;
107
+ }
108
+ /**
109
+ * Atualiza package.json com file: paths
110
+ */
111
+ updatePackageJson(localPackages) {
112
+ console.log('\n📝 Atualizando package.json...\n');
113
+ const packageJson = JSON.parse(fs.readFileSync(this.packageJsonPath, 'utf-8'));
114
+ packageJson.dependencies = packageJson.dependencies || {};
115
+ for (const pkg of localPackages) {
116
+ const oldVersion = packageJson.dependencies[pkg.name];
117
+ packageJson.dependencies[pkg.name] = `file:${pkg.localPath}`;
118
+ console.log(`📦 ${pkg.name}`);
119
+ console.log(` ❌ Antes: ${oldVersion || 'não instalado'}`);
120
+ console.log(` ✅ Agora: file:${pkg.localPath}`);
121
+ }
122
+ fs.writeFileSync(this.packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf-8');
123
+ console.log('\n✅ package.json atualizado');
124
+ }
125
+ /**
126
+ * Imprime resumo final
127
+ */
128
+ printSummary(localPackages) {
129
+ console.log('\n📊 ============================================');
130
+ console.log('📊 Resumo da Configuração');
131
+ console.log('📊 ============================================\n');
132
+ console.log('✅ Pacotes locais configurados:');
133
+ for (const pkg of localPackages) {
134
+ console.log(` 📦 ${pkg.name} → file:${pkg.localPath}`);
135
+ }
136
+ console.log('\n💡 Próximos passos:');
137
+ console.log(' 1. Desenvolva normalmente');
138
+ console.log(' 2. Mudanças nos pacotes locais são refletidas automaticamente');
139
+ console.log(' 3. Para voltar ao Azure: npm run setup:azure\n');
140
+ console.log('🔧 Comandos úteis:');
141
+ console.log(' npm run build - Compilar projeto');
142
+ console.log(' npm run test:preprod - Executar testes');
143
+ console.log(' npm run update - Atualizar índices\n');
144
+ }
145
+ /**
146
+ * Reverte para usar pacotes do Azure
147
+ */
148
+ async revertToAzure() {
149
+ console.log('\n🔄 Revertendo para pacotes do Azure DevOps...\n');
150
+ const packageJson = JSON.parse(fs.readFileSync(this.packageJsonPath, 'utf-8'));
151
+ const fileProtocolPackages = [];
152
+ // Encontrar todos os pacotes com file: protocol
153
+ for (const [name, version] of Object.entries(packageJson.dependencies || {})) {
154
+ if (typeof version === 'string' && version.startsWith('file:')) {
155
+ fileProtocolPackages.push(name);
156
+ delete packageJson.dependencies[name];
157
+ }
158
+ }
159
+ if (fileProtocolPackages.length === 0) {
160
+ console.log('ℹ️ Nenhum pacote local encontrado');
161
+ return;
162
+ }
163
+ // Salvar package.json sem os pacotes locais
164
+ fs.writeFileSync(this.packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf-8');
165
+ console.log('📦 Pacotes removidos:');
166
+ fileProtocolPackages.forEach((pkg) => console.log(` ❌ ${pkg}`));
167
+ // Reinstalar do Azure
168
+ console.log('\n📥 Reinstalando do Azure DevOps...\n');
169
+ try {
170
+ execSync('npm install', { stdio: 'inherit' });
171
+ console.log('\n✅ Revertido para Azure DevOps com sucesso!');
172
+ }
173
+ catch (error) {
174
+ console.error('\n❌ Erro ao reinstalar:', error);
175
+ process.exit(1);
176
+ }
177
+ }
178
+ }
179
+ // ==========================================
180
+ // CLI Execution
181
+ // ==========================================
182
+ async function main() {
183
+ const args = process.argv.slice(2);
184
+ const command = args[0] || 'setup';
185
+ const setup = new LocalPackagesSetup();
186
+ try {
187
+ switch (command) {
188
+ case 'setup':
189
+ case 'local':
190
+ await setup.run();
191
+ break;
192
+ case 'revert':
193
+ case 'azure':
194
+ await setup.revertToAzure();
195
+ break;
196
+ case 'help':
197
+ console.log(`
198
+ 🔧 Setup Local Packages
199
+
200
+ COMANDOS:
201
+ setup, local - Configura pacotes locais (padrão)
202
+ revert, azure - Reverte para Azure DevOps
203
+ help - Mostra esta ajuda
204
+
205
+ EXEMPLOS:
206
+ # Configurar pacotes locais
207
+ npm run setup:local
208
+ npx tsx node_modules/@silasfmartins/testhub/scripts/setup-local-packages.ts
209
+
210
+ # Reverter para Azure
211
+ npm run setup:azure
212
+ npx tsx node_modules/@silasfmartins/testhub/scripts/setup-local-packages.ts revert
213
+
214
+ WORKFLOW RECOMENDADO:
215
+ 1. npm install # Primeira instalação do Azure
216
+ 2. npm run setup:local # Configurar pacotes locais para dev
217
+ 3. [desenvolver e testar]
218
+ 4. npm run setup:azure # Reverter antes de commit
219
+ `);
220
+ break;
221
+ default:
222
+ console.error(`❌ Comando desconhecido: ${command}`);
223
+ console.log('Use "help" para ver comandos disponíveis');
224
+ process.exit(1);
225
+ }
226
+ process.exit(0);
227
+ }
228
+ catch (error) {
229
+ console.error('❌ Erro:', error);
230
+ process.exit(1);
231
+ }
232
+ }
233
+ // Rodar apenas se executado diretamente
234
+ if (import.meta.url === `file://${process.argv[1].replace(/\\/g, '/')}`) {
235
+ main();
236
+ }
237
+ export { LocalPackagesSetup };
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};