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