tutanus 0.12.6 → 0.12.7
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/dist/app/github/dashboard/routes.d.ts.map +1 -1
- package/dist/app/github/dashboard/routes.js +21 -3
- package/dist/app/github/dashboard/routes.js.map +1 -1
- package/dist/core/messages/en/github/github-push-report-messages.d.ts +2 -0
- package/dist/core/messages/en/github/github-push-report-messages.d.ts.map +1 -1
- package/dist/core/messages/en/github/github-push-report-messages.js +2 -0
- package/dist/core/messages/en/github/github-push-report-messages.js.map +1 -1
- package/dist/core/messages/ja/github/github-push-report-messages.d.ts +2 -0
- package/dist/core/messages/ja/github/github-push-report-messages.d.ts.map +1 -1
- package/dist/core/messages/ja/github/github-push-report-messages.js +2 -0
- package/dist/core/messages/ja/github/github-push-report-messages.js.map +1 -1
- package/dist/core/messages/pt/github/github-push-report-messages.d.ts +2 -0
- package/dist/core/messages/pt/github/github-push-report-messages.d.ts.map +1 -1
- package/dist/core/messages/pt/github/github-push-report-messages.js +2 -0
- package/dist/core/messages/pt/github/github-push-report-messages.js.map +1 -1
- package/dist/core/messages/zh/github/github-push-report-messages.d.ts +2 -0
- package/dist/core/messages/zh/github/github-push-report-messages.d.ts.map +1 -1
- package/dist/core/messages/zh/github/github-push-report-messages.js +2 -0
- package/dist/core/messages/zh/github/github-push-report-messages.js.map +1 -1
- package/out/404/index.html +1 -0
- package/out/404.html +1 -0
- package/out/__next.__PAGE__.txt +9 -0
- package/out/__next._full.txt +18 -0
- package/out/__next._head.txt +5 -0
- package/out/__next._index.txt +6 -0
- package/out/__next._tree.txt +3 -0
- package/out/_next/static/chunks/05-c3ty_6dwfk.js +1 -0
- package/out/_next/static/chunks/0cz1d0mv5g_q7.js +1 -0
- package/out/_next/static/chunks/1061ff024jzvu.js +2 -0
- package/out/_next/static/chunks/14mrh2-p_w84d.js +1 -0
- package/out/_next/static/chunks/15orcrkp-_9ct.js +4 -0
- package/out/_next/static/chunks/1jiobya7ette1.js +11 -0
- package/out/_next/static/chunks/1jq4o6yq14o4c.js +31 -0
- package/out/_next/static/chunks/1rxncug86bump.js +1 -0
- package/out/_next/static/chunks/2n-4qa9h44lgj.js +1 -0
- package/out/_next/static/chunks/3n7dm2ojtyzwn.js +1 -0
- package/out/_next/static/chunks/3uta7d_6k863-.css +1 -0
- package/out/_next/static/chunks/turbopack-2xb6mmb6_q43u.js +1 -0
- package/out/_next/static/media/icon-1.008jpsm4iakzh.png +0 -0
- package/out/_next/static/rSwWA0jiTeQUXZXHLMAZ1/_buildManifest.js +11 -0
- package/out/_next/static/rSwWA0jiTeQUXZXHLMAZ1/_clientMiddlewareManifest.js +1 -0
- package/out/_next/static/rSwWA0jiTeQUXZXHLMAZ1/_ssgManifest.js +1 -0
- package/out/_not-found/__next._full.txt +16 -0
- package/out/_not-found/__next._head.txt +5 -0
- package/out/_not-found/__next._index.txt +6 -0
- package/out/_not-found/__next._not-found.__PAGE__.txt +5 -0
- package/out/_not-found/__next._not-found.txt +5 -0
- package/out/_not-found/__next._tree.txt +3 -0
- package/out/_not-found/index.html +1 -0
- package/out/_not-found/index.txt +16 -0
- package/out/changelog/__next._full.txt +573 -0
- package/out/changelog/__next._head.txt +5 -0
- package/out/changelog/__next._index.txt +6 -0
- package/out/changelog/__next._tree.txt +4 -0
- package/out/changelog/__next.changelog.__PAGE__.txt +560 -0
- package/out/changelog/__next.changelog.txt +5 -0
- package/out/changelog/index.html +550 -0
- package/out/changelog/index.txt +573 -0
- package/out/github/dashboard/__next._full.txt +20 -0
- package/out/github/dashboard/__next._head.txt +5 -0
- package/out/github/dashboard/__next._index.txt +6 -0
- package/out/github/dashboard/__next._tree.txt +3 -0
- package/out/github/dashboard/__next.github.dashboard.__PAGE__.txt +9 -0
- package/out/github/dashboard/__next.github.dashboard.txt +4 -0
- package/out/github/dashboard/__next.github.txt +5 -0
- package/out/github/dashboard/index.html +1 -0
- package/out/github/dashboard/index.txt +20 -0
- package/out/index.html +1 -0
- package/out/index.txt +18 -0
- package/out/privacy-policy/__next._full.txt +38 -0
- package/out/privacy-policy/__next._head.txt +5 -0
- package/out/privacy-policy/__next._index.txt +6 -0
- package/out/privacy-policy/__next._tree.txt +4 -0
- package/out/privacy-policy/__next.privacy-policy.__PAGE__.txt +23 -0
- package/out/privacy-policy/__next.privacy-policy.txt +5 -0
- package/out/privacy-policy/index.html +1 -0
- package/out/privacy-policy/index.txt +38 -0
- package/out/terms-of-use/__next._full.txt +37 -0
- package/out/terms-of-use/__next._head.txt +5 -0
- package/out/terms-of-use/__next._index.txt +6 -0
- package/out/terms-of-use/__next._tree.txt +4 -0
- package/out/terms-of-use/__next.terms-of-use.__PAGE__.txt +18 -0
- package/out/terms-of-use/__next.terms-of-use.txt +5 -0
- package/out/terms-of-use/index.html +1 -0
- package/out/terms-of-use/index.txt +37 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/app/github/dashboard/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../../src/app/github/dashboard/routes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAkD,MAAM,EAAE,MAAM,SAAS,CAAC;AAiCjF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAgPtD"}
|
|
@@ -9,6 +9,23 @@ const { GithubDashboardMensagens } = messages;
|
|
|
9
9
|
const HTTP_BAD_REQUEST = 400;
|
|
10
10
|
const HTTP_NOT_FOUND = 404;
|
|
11
11
|
const DEFAULT_SCORE = 100;
|
|
12
|
+
const HTTP_UNAUTHORIZED = 401;
|
|
13
|
+
function exigeAutenticacao(req, res, next) {
|
|
14
|
+
const token = process.env.TUTANUS_ADMIN_TOKEN;
|
|
15
|
+
if (!token) {
|
|
16
|
+
if (process.env.NODE_ENV === 'production') {
|
|
17
|
+
res.status(HTTP_UNAUTHORIZED).json({ erro: GithubDashboardMensagens.tokenNaoConfigurado });
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
return next();
|
|
21
|
+
}
|
|
22
|
+
const authHeader = req.headers.authorization;
|
|
23
|
+
if (!authHeader || !authHeader.startsWith('Bearer ') || authHeader.slice(7) !== token) {
|
|
24
|
+
res.status(HTTP_UNAUTHORIZED).json({ erro: GithubDashboardMensagens.acessoNegado });
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
next();
|
|
28
|
+
}
|
|
12
29
|
export function createDashboardRouter(app) {
|
|
13
30
|
const router = Router();
|
|
14
31
|
router.use(createSetupRouter(app));
|
|
@@ -22,6 +39,10 @@ export function createDashboardRouter(app) {
|
|
|
22
39
|
redirectAfterInstall: GithubDashboardMensagens.redirectAfterInstall
|
|
23
40
|
});
|
|
24
41
|
});
|
|
42
|
+
router.get('/health', (_req, res) => {
|
|
43
|
+
res.json(statsStore.getHealth());
|
|
44
|
+
});
|
|
45
|
+
router.use(exigeAutenticacao);
|
|
25
46
|
router.get('/instalacoes/config', (_req, res) => {
|
|
26
47
|
res.json({ instalacoes: listarConfigsInstalacao() });
|
|
27
48
|
});
|
|
@@ -45,9 +66,6 @@ export function createDashboardRouter(app) {
|
|
|
45
66
|
router.get('/stats', (_req, res) => {
|
|
46
67
|
res.json(statsStore.getStats());
|
|
47
68
|
});
|
|
48
|
-
router.get('/health', (_req, res) => {
|
|
49
|
-
res.json(statsStore.getHealth());
|
|
50
|
-
});
|
|
51
69
|
router.delete('/stats', (_req, res) => {
|
|
52
70
|
statsStore.reset();
|
|
53
71
|
res.json({ sucesso: true, mensagem: GithubDashboardMensagens.statsZeradas });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../src/app/github/dashboard/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import { messages } from '@core/messages';\nimport type { App } from '@octokit/app';\nimport { type Request, type Response, Router } from 'express';\n\nimport { listarConfigsInstalacao, obterConfigInstalacao, salvarConfigInstalacao } from '../app/installation-store.js';\nimport { buildSetupUrl, createSetupRouter } from '../app/setup-routes.js';\nimport { analisarWorkflows,buscarWorkflows } from '../app/webhook-handler.js';\nimport { criarJob, iniciarAnaliseCompleta, iniciarAutoFix, listarJobs, obterJob } from '../jobs/index.js';\nimport { statsStore } from './stats-store.js';\n\nconst { GithubDashboardMensagens } = messages;\n\nconst HTTP_BAD_REQUEST = 400;\nconst HTTP_NOT_FOUND = 404;\nconst DEFAULT_SCORE = 100;\n\nexport function createDashboardRouter(app: App): Router {\n const router = Router();\n\n router.use(createSetupRouter(app));\n\n router.get('/app-info', (req: Request, res: Response) => {\n const slug = process.env.GITHUB_APP_SLUG || 'tutanus-analyzer';\n res.json({\n slug,\n installUrl: `https://github.com/apps/${slug}/installations/new`,\n appUrl: `https://github.com/apps/${slug}`,\n setupUrl: buildSetupUrl(req),\n redirectAfterInstall: GithubDashboardMensagens.redirectAfterInstall\n });\n });\n\n router.get('/instalacoes/config', (_req: Request, res: Response) => {\n res.json({ instalacoes: listarConfigsInstalacao() });\n });\n\n router.get('/instalacoes/:id/config', (req: Request, res: Response) => {\n const id = parseInt(req.params.id as string, 10);\n if (Number.isNaN(id)) {\n res.status(HTTP_BAD_REQUEST).json({ erro: GithubDashboardMensagens.installationIdInvalido });\n return;\n }\n res.json(obterConfigInstalacao(id));\n });\n\n router.patch('/instalacoes/:id/config', (req: Request, res: Response) => {\n const id = parseInt(req.params.id as string, 10);\n if (Number.isNaN(id)) {\n res.status(HTTP_BAD_REQUEST).json({ erro: GithubDashboardMensagens.installationIdInvalido });\n return;\n }\n const body = req.body as Partial<{\n pushAnalysisEnabled: boolean;\n pullRequestAnalysisEnabled: boolean;\n fast: boolean;\n incrementalOnPush: boolean;\n }>;\n res.json(salvarConfigInstalacao({ installationId: id, ...body }));\n });\n\n router.get('/stats', (_req: Request, res: Response) => {\n res.json(statsStore.getStats());\n });\n\n router.get('/health', (_req: Request, res: Response) => {\n res.json(statsStore.getHealth());\n });\n\n router.delete('/stats', (_req: Request, res: Response) => {\n statsStore.reset();\n res.json({ sucesso: true, mensagem: GithubDashboardMensagens.statsZeradas });\n });\n\n router.get('/acoes/instalacoes', async (_req: Request, res: Response) => {\n try {\n const { data: installations } = await app.octokit.request('GET /app/installations', {\n per_page: 100\n });\n res.json(installations.map(inst => ({\n id: inst.id,\n account: inst.account ? { login: inst.account.login, avatar_url: inst.account.avatar_url } : null,\n target_type: inst.target_type,\n repository_selection: inst.repository_selection,\n created_at: inst.created_at,\n updated_at: inst.updated_at\n })));\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.get('/acoes/instalacoes/:id/repos', async (req: Request, res: Response) => {\n try {\n const installationId = parseInt(req.params.id as string, 10);\n const octokit = await app.getInstallationOctokit(installationId);\n const { data } = await octokit.request('GET /installation/repositories', {\n per_page: 100\n });\n res.json(data.repositories.map(repo => ({\n id: repo.id,\n name: repo.name,\n full_name: repo.full_name,\n owner: repo.owner?.login,\n private: repo.private,\n default_branch: repo.default_branch,\n updated_at: repo.updated_at\n })));\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.post('/acoes/analisar', async (req: Request, res: Response) => {\n try {\n const { owner, repo, installationId, ref } = req.body as {\n owner?: string;\n repo?: string;\n installationId?: number;\n ref?: string;\n };\n\n if (!owner || !repo || !installationId) {\n res.status(HTTP_BAD_REQUEST).json({ erro: GithubDashboardMensagens.paramsObrigatorios });\n return;\n }\n\n const octokit = await app.getInstallationOctokit(installationId);\n const branchRef = ref || 'HEAD';\n\n const workflows = await buscarWorkflows(octokit, owner, repo, branchRef);\n\n if (workflows.length === 0) {\n res.json({\n sucesso: true,\n scoreGeral: DEFAULT_SCORE,\n workflows: [],\n ocorrencias: [],\n mensagem: GithubDashboardMensagens.nenhumWorkflowEncontrado\n });\n return;\n }\n\n const analysis = await analisarWorkflows(octokit, owner, repo, branchRef, workflows);\n\n const repoName = `${owner}/${repo}`;\n statsStore.recordAnalysis({\n repository: repoName,\n event: 'on_demand',\n score: analysis.scoreGeral,\n workflowsCount: analysis.workflowsInfo.length,\n occurrencesCount: analysis.ocorrencias.length\n });\n\n res.json({\n sucesso: true,\n scoreGeral: analysis.scoreGeral,\n workflows: analysis.workflowsInfo,\n ocorrencias: analysis.ocorrencias.slice(0, 50),\n totalOcorrencias: analysis.ocorrencias.length\n });\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.get('/acoes/resultados', (_req: Request, res: Response) => {\n const stats = statsStore.getStats();\n res.json({\n totalAnalyses: stats.totalAnalyses,\n recentAnalyses: stats.recentAnalyses\n });\n });\n\n router.post('/acoes/analisar-completo', (req: Request, res: Response) => {\n try {\n const { owner, repo, installationId, ref, fast, analistas, autoFix, autoFixMode } = req.body as {\n owner?: string;\n repo?: string;\n installationId?: number;\n ref?: string;\n fast?: boolean;\n analistas?: string[];\n autoFix?: boolean;\n autoFixMode?: 'conservative' | 'balanced';\n };\n\n if (!owner || !repo || !installationId) {\n res.status(HTTP_BAD_REQUEST).json({ erro: GithubDashboardMensagens.paramsObrigatorios });\n return;\n }\n\n const branchRef = ref || 'HEAD';\n const jobOptions = { fast: fast ?? false, analistas, autoFix: autoFix ?? false, autoFixMode };\n\n const jobId = criarJob(owner, repo, installationId, branchRef, jobOptions);\n const job = obterJob(jobId);\n\n if (!job) {\n res.status(500).json({ erro: messages.GithubDashboardMensagens.erroCriarJob });\n return;\n }\n\n if (autoFix) {\n void iniciarAutoFix(app, jobId, job);\n } else {\n void iniciarAnaliseCompleta(app, jobId, job);\n }\n\n res.status(202).json({\n sucesso: true,\n dados: {\n jobId,\n status: 'pendente',\n mensagem: GithubDashboardMensagens.jobEnfileirado(jobId)\n }\n });\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.get('/acoes/analisar-completo', (_req: Request, res: Response) => {\n try {\n const { owner, repo } = _req.query as { owner?: string; repo?: string; };\n const filtro = owner && repo ? { owner, repo } : undefined;\n const jobs = listarJobs(filtro);\n res.json({ sucesso: true, dados: { total: jobs.length, jobs } });\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.get('/acoes/analisar-completo/:jobId', (req: Request, res: Response) => {\n try {\n const job = obterJob(req.params.jobId as string);\n if (!job) {\n res.status(HTTP_NOT_FOUND).json({ erro: GithubDashboardMensagens.jobNaoEncontrado(String(req.params.jobId)) });\n return;\n }\n res.json({ sucesso: true, dados: job });\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n return router;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../../src/app/github/dashboard/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import { messages } from '@core/messages';\nimport type { App } from '@octokit/app';\nimport { type Request, type Response, type NextFunction, Router } from 'express';\n\nimport { listarConfigsInstalacao, obterConfigInstalacao, salvarConfigInstalacao } from '../app/installation-store.js';\nimport { buildSetupUrl, createSetupRouter } from '../app/setup-routes.js';\nimport { analisarWorkflows,buscarWorkflows } from '../app/webhook-handler.js';\nimport { criarJob, iniciarAnaliseCompleta, iniciarAutoFix, listarJobs, obterJob } from '../jobs/index.js';\nimport { statsStore } from './stats-store.js';\n\nconst { GithubDashboardMensagens } = messages;\n\nconst HTTP_BAD_REQUEST = 400;\nconst HTTP_NOT_FOUND = 404;\nconst DEFAULT_SCORE = 100;\n\nconst HTTP_UNAUTHORIZED = 401;\n\nfunction exigeAutenticacao(req: Request, res: Response, next: NextFunction): void {\n const token = process.env.TUTANUS_ADMIN_TOKEN;\n if (!token) {\n if (process.env.NODE_ENV === 'production') {\n res.status(HTTP_UNAUTHORIZED).json({ erro: GithubDashboardMensagens.tokenNaoConfigurado });\n return;\n }\n return next();\n }\n const authHeader = req.headers.authorization;\n if (!authHeader || !authHeader.startsWith('Bearer ') || authHeader.slice(7) !== token) {\n res.status(HTTP_UNAUTHORIZED).json({ erro: GithubDashboardMensagens.acessoNegado });\n return;\n }\n next();\n}\n\nexport function createDashboardRouter(app: App): Router {\n const router = Router();\n\n // Public routes (no auth required — GitHub redirects here)\n router.use(createSetupRouter(app));\n\n router.get('/app-info', (req: Request, res: Response) => {\n const slug = process.env.GITHUB_APP_SLUG || 'tutanus-analyzer';\n res.json({\n slug,\n installUrl: `https://github.com/apps/${slug}/installations/new`,\n appUrl: `https://github.com/apps/${slug}`,\n setupUrl: buildSetupUrl(req),\n redirectAfterInstall: GithubDashboardMensagens.redirectAfterInstall\n });\n });\n\n router.get('/health', (_req: Request, res: Response) => {\n res.json(statsStore.getHealth());\n });\n\n // Protected routes — require TUTANUS_ADMIN_TOKEN in production\n router.use(exigeAutenticacao);\n\n router.get('/instalacoes/config', (_req: Request, res: Response) => {\n res.json({ instalacoes: listarConfigsInstalacao() });\n });\n\n router.get('/instalacoes/:id/config', (req: Request, res: Response) => {\n const id = parseInt(req.params.id as string, 10);\n if (Number.isNaN(id)) {\n res.status(HTTP_BAD_REQUEST).json({ erro: GithubDashboardMensagens.installationIdInvalido });\n return;\n }\n res.json(obterConfigInstalacao(id));\n });\n\n router.patch('/instalacoes/:id/config', (req: Request, res: Response) => {\n const id = parseInt(req.params.id as string, 10);\n if (Number.isNaN(id)) {\n res.status(HTTP_BAD_REQUEST).json({ erro: GithubDashboardMensagens.installationIdInvalido });\n return;\n }\n const body = req.body as Partial<{\n pushAnalysisEnabled: boolean;\n pullRequestAnalysisEnabled: boolean;\n fast: boolean;\n incrementalOnPush: boolean;\n }>;\n res.json(salvarConfigInstalacao({ installationId: id, ...body }));\n });\n\n router.get('/stats', (_req: Request, res: Response) => {\n res.json(statsStore.getStats());\n });\n\n router.delete('/stats', (_req: Request, res: Response) => {\n statsStore.reset();\n res.json({ sucesso: true, mensagem: GithubDashboardMensagens.statsZeradas });\n });\n\n router.get('/acoes/instalacoes', async (_req: Request, res: Response) => {\n try {\n const { data: installations } = await app.octokit.request('GET /app/installations', {\n per_page: 100\n });\n res.json(installations.map(inst => ({\n id: inst.id,\n account: inst.account ? { login: inst.account.login, avatar_url: inst.account.avatar_url } : null,\n target_type: inst.target_type,\n repository_selection: inst.repository_selection,\n created_at: inst.created_at,\n updated_at: inst.updated_at\n })));\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.get('/acoes/instalacoes/:id/repos', async (req: Request, res: Response) => {\n try {\n const installationId = parseInt(req.params.id as string, 10);\n const octokit = await app.getInstallationOctokit(installationId);\n const { data } = await octokit.request('GET /installation/repositories', {\n per_page: 100\n });\n res.json(data.repositories.map(repo => ({\n id: repo.id,\n name: repo.name,\n full_name: repo.full_name,\n owner: repo.owner?.login,\n private: repo.private,\n default_branch: repo.default_branch,\n updated_at: repo.updated_at\n })));\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.post('/acoes/analisar', async (req: Request, res: Response) => {\n try {\n const { owner, repo, installationId, ref } = req.body as {\n owner?: string;\n repo?: string;\n installationId?: number;\n ref?: string;\n };\n\n if (!owner || !repo || !installationId) {\n res.status(HTTP_BAD_REQUEST).json({ erro: GithubDashboardMensagens.paramsObrigatorios });\n return;\n }\n\n const octokit = await app.getInstallationOctokit(installationId);\n const branchRef = ref || 'HEAD';\n\n const workflows = await buscarWorkflows(octokit, owner, repo, branchRef);\n\n if (workflows.length === 0) {\n res.json({\n sucesso: true,\n scoreGeral: DEFAULT_SCORE,\n workflows: [],\n ocorrencias: [],\n mensagem: GithubDashboardMensagens.nenhumWorkflowEncontrado\n });\n return;\n }\n\n const analysis = await analisarWorkflows(octokit, owner, repo, branchRef, workflows);\n\n const repoName = `${owner}/${repo}`;\n statsStore.recordAnalysis({\n repository: repoName,\n event: 'on_demand',\n score: analysis.scoreGeral,\n workflowsCount: analysis.workflowsInfo.length,\n occurrencesCount: analysis.ocorrencias.length\n });\n\n res.json({\n sucesso: true,\n scoreGeral: analysis.scoreGeral,\n workflows: analysis.workflowsInfo,\n ocorrencias: analysis.ocorrencias.slice(0, 50),\n totalOcorrencias: analysis.ocorrencias.length\n });\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.get('/acoes/resultados', (_req: Request, res: Response) => {\n const stats = statsStore.getStats();\n res.json({\n totalAnalyses: stats.totalAnalyses,\n recentAnalyses: stats.recentAnalyses\n });\n });\n\n router.post('/acoes/analisar-completo', (req: Request, res: Response) => {\n try {\n const { owner, repo, installationId, ref, fast, analistas, autoFix, autoFixMode } = req.body as {\n owner?: string;\n repo?: string;\n installationId?: number;\n ref?: string;\n fast?: boolean;\n analistas?: string[];\n autoFix?: boolean;\n autoFixMode?: 'conservative' | 'balanced';\n };\n\n if (!owner || !repo || !installationId) {\n res.status(HTTP_BAD_REQUEST).json({ erro: GithubDashboardMensagens.paramsObrigatorios });\n return;\n }\n\n const branchRef = ref || 'HEAD';\n const jobOptions = { fast: fast ?? false, analistas, autoFix: autoFix ?? false, autoFixMode };\n\n const jobId = criarJob(owner, repo, installationId, branchRef, jobOptions);\n const job = obterJob(jobId);\n\n if (!job) {\n res.status(500).json({ erro: messages.GithubDashboardMensagens.erroCriarJob });\n return;\n }\n\n if (autoFix) {\n void iniciarAutoFix(app, jobId, job);\n } else {\n void iniciarAnaliseCompleta(app, jobId, job);\n }\n\n res.status(202).json({\n sucesso: true,\n dados: {\n jobId,\n status: 'pendente',\n mensagem: GithubDashboardMensagens.jobEnfileirado(jobId)\n }\n });\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.get('/acoes/analisar-completo', (_req: Request, res: Response) => {\n try {\n const { owner, repo } = _req.query as { owner?: string; repo?: string; };\n const filtro = owner && repo ? { owner, repo } : undefined;\n const jobs = listarJobs(filtro);\n res.json({ sucesso: true, dados: { total: jobs.length, jobs } });\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n router.get('/acoes/analisar-completo/:jobId', (req: Request, res: Response) => {\n try {\n const job = obterJob(req.params.jobId as string);\n if (!job) {\n res.status(HTTP_NOT_FOUND).json({ erro: GithubDashboardMensagens.jobNaoEncontrado(String(req.params.jobId)) });\n return;\n }\n res.json({ sucesso: true, dados: job });\n } catch (err: unknown) {\n const error = err as Error;\n res.status(500).json({ erro: error.message });\n }\n });\n\n return router;\n}\n"]}
|
|
@@ -31,5 +31,7 @@ export declare const GithubDashboardMensagens: {
|
|
|
31
31
|
readonly jobEnfileirado: (jobId: string) => string;
|
|
32
32
|
readonly jobNaoEncontrado: (jobId: string) => string;
|
|
33
33
|
readonly installationIdInvalido: "Invalid installation id";
|
|
34
|
+
readonly acessoNegado: "Unauthorized. Provide the admin token (Authorization: Bearer <token>).";
|
|
35
|
+
readonly tokenNaoConfigurado: "Admin token (TUTANUS_ADMIN_TOKEN) not configured. Access allowed without authentication.";
|
|
34
36
|
};
|
|
35
37
|
//# sourceMappingURL=github-push-report-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-push-report-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/messages/en/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;iCAChB,MAAM;;;yCAOE,MAAM;;;;sCAYT,MAAM;mCACT,MAAM;yCACA,MAAM;oCACX,MAAM,QAAQ,MAAM;mCACrB,MAAM,YAAY,MAAM;;;oCAGvB,MAAM,QAAQ,MAAM;;mCAGrB,MAAM,WAAW,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM;;;;;wCAM9E,MAAM;CACzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;qCAMX,MAAM;uCACJ,MAAM
|
|
1
|
+
{"version":3,"file":"github-push-report-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/messages/en/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;iCAChB,MAAM;;;yCAOE,MAAM;;;;sCAYT,MAAM;mCACT,MAAM;yCACA,MAAM;oCACX,MAAM,QAAQ,MAAM;mCACrB,MAAM,YAAY,MAAM;;;oCAGvB,MAAM,QAAQ,MAAM;;mCAGrB,MAAM,WAAW,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM;;;;;wCAM9E,MAAM;CACzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;qCAMX,MAAM;uCACJ,MAAM;;;;CAIxB,CAAC"}
|
|
@@ -45,5 +45,7 @@ export const GithubDashboardMensagens = {
|
|
|
45
45
|
jobEnfileirado: (jobId) => `Complete analysis queued. Check status at GET /api/github/acoes/analisar-completo/${jobId}`,
|
|
46
46
|
jobNaoEncontrado: (jobId) => `Job '${jobId}' not found`,
|
|
47
47
|
installationIdInvalido: 'Invalid installation id',
|
|
48
|
+
acessoNegado: 'Unauthorized. Provide the admin token (Authorization: Bearer <token>).',
|
|
49
|
+
tokenNaoConfigurado: 'Admin token (TUTANUS_ADMIN_TOKEN) not configured. Access allowed without authentication.',
|
|
48
50
|
};
|
|
49
51
|
//# sourceMappingURL=github-push-report-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-push-report-messages.js","sourceRoot":"","sources":["../../../../../src/core/messages/en/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QAC/B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,WAAW,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,eAAe,EAAE,oBAAoB;IACrC,iBAAiB,EAAE,2BAA2B;IAC9C,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE;QACpC,MAAM,GAAG,GAA2B;YAClC,IAAI,EAAE,mGAAmG;YACzG,KAAK,EAAE,+FAA+F;YACtG,IAAI,EAAE,iGAAiG;YACvG,QAAQ,EAAE,2FAA2F;SACtG,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,cAAc,EAAE,0FAA0F;IAC1G,gBAAgB,EAAE,oGAAoG;IACtH,gBAAgB,EAAE,oGAAoG;IACtH,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,KAAK,yBAAyB;IAC9E,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,KAAK,gBAAgB;IACpE,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,yBAAyB,MAAM,KAAK;IAC3E,aAAa,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,qBAAqB,KAAK,IAAI,IAAI,IAAI;IACtF,WAAW,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI;IAC/G,cAAc,EAAE,oEAAoE;IACpF,iBAAiB,EAAE,yUAAyU;IAC5V,YAAY,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAC7C,gNAAgN,MAAM,qDAAqD,IAAI,OAAO;IACxR,iBAAiB,EAAE,uCAAuC;IAC1D,WAAW,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC3G,sBAAsB,MAAM,UAAU,OAAO,kBAAkB,KAAK,SAAS,MAAM,kBAAkB,GAAG,eAAe,MAAM,MAAM;IACrI,cAAc,EAAE,gDAAgD;IAChE,gBAAgB,EAAE,oEAAoE;IACtF,gBAAgB,EAAE,uFAAuF;IACzG,gBAAgB,EAAE,0DAA0D;IAC5E,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,KAAK,8CAA8C;CAC/F,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB,EAAE,sEAAsE;IAC5F,YAAY,EAAE,oBAAoB;IAClC,kBAAkB,EAAE,kDAAkD;IACtE,wBAAwB,EAAE,oBAAoB;IAC9C,YAAY,EAAE,sBAAsB;IACpC,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,qFAAqF,KAAK,EAAE;IAC/H,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,KAAK,aAAa;IAC/D,sBAAsB,EAAE,yBAAyB;
|
|
1
|
+
{"version":3,"file":"github-push-report-messages.js","sourceRoot":"","sources":["../../../../../src/core/messages/en/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,MAAM,CAAC;QAC/B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,WAAW,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,eAAe,EAAE,oBAAoB;IACrC,iBAAiB,EAAE,2BAA2B;IAC9C,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE;QACpC,MAAM,GAAG,GAA2B;YAClC,IAAI,EAAE,mGAAmG;YACzG,KAAK,EAAE,+FAA+F;YACtG,IAAI,EAAE,iGAAiG;YACvG,QAAQ,EAAE,2FAA2F;SACtG,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,cAAc,EAAE,0FAA0F;IAC1G,gBAAgB,EAAE,oGAAoG;IACtH,gBAAgB,EAAE,oGAAoG;IACtH,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,KAAK,yBAAyB;IAC9E,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,KAAK,gBAAgB;IACpE,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,yBAAyB,MAAM,KAAK;IAC3E,aAAa,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,qBAAqB,KAAK,IAAI,IAAI,IAAI;IACtF,WAAW,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI;IAC/G,cAAc,EAAE,oEAAoE;IACpF,iBAAiB,EAAE,yUAAyU;IAC5V,YAAY,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAC7C,gNAAgN,MAAM,qDAAqD,IAAI,OAAO;IACxR,iBAAiB,EAAE,uCAAuC;IAC1D,WAAW,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC3G,sBAAsB,MAAM,UAAU,OAAO,kBAAkB,KAAK,SAAS,MAAM,kBAAkB,GAAG,eAAe,MAAM,MAAM;IACrI,cAAc,EAAE,gDAAgD;IAChE,gBAAgB,EAAE,oEAAoE;IACtF,gBAAgB,EAAE,uFAAuF;IACzG,gBAAgB,EAAE,0DAA0D;IAC5E,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,KAAK,8CAA8C;CAC/F,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB,EAAE,sEAAsE;IAC5F,YAAY,EAAE,oBAAoB;IAClC,kBAAkB,EAAE,kDAAkD;IACtE,wBAAwB,EAAE,oBAAoB;IAC9C,YAAY,EAAE,sBAAsB;IACpC,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,qFAAqF,KAAK,EAAE;IAC/H,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,KAAK,aAAa;IAC/D,sBAAsB,EAAE,yBAAyB;IACjD,YAAY,EAAE,wEAAwE;IACtF,mBAAmB,EAAE,0FAA0F;CACvG,CAAC","sourcesContent":["// SPDX-License-Identifier: MIT\n\nexport const GithubPushReportMensagens = {\n scoreLabel: (score: number) => {\n if (score >= 80) return 'good';\n if (score >= 60) return 'attention';\n return 'critical';\n },\n rotuloScoreNome: 'tutanus: diagnosis',\n nenhumaOcorrencia: '_No occurrences found._\\n',\n explicarSeveridade: (nivel: string) => {\n const map: Record<string, string> = {\n erro: '**Errors** — issues affecting functionality, security, or code integrity. Should be top priority.',\n aviso: '**Warnings** — bad practices, inefficient code, or potential future bugs. Review recommended.',\n info: '**Info** — improvement opportunities, best practices not followed, or organization suggestions.',\n sugestao: '**Suggestions** — optional improvements for readability, performance, or maintainability.'\n };\n return map[nivel.toLowerCase()] ?? nivel;\n },\n qualidadeOtimo: '> **Excellent.** The analyzed code has good quality. Few or no interventions needed.\\n\\n',\n qualidadeAtencao: '> **Needs attention.** The code has points that should be reviewed before going to production.\\n\\n',\n qualidadeCritico: '> **Critical.** It is highly recommended to review and fix the issues found before proceeding.\\n\\n',\n maisOcorrencias: (count: number) => `\\n_… and ${count} more occurrence(s)._\\n`,\n maisArquivos: (count: number) => `\\n- *… and ${count} more file(s)*`,\n prBodyEstadoScore: (estado: string) => `**Score: %score%/100 (${estado})**`,\n repoDescricao: (owner: string, repo: string) => `**Repository:** \\`${owner}/${repo}\\``,\n escopoLabel: (branch: string, baseRef?: string) => baseRef ? `\\`${branch}\\` → \\`${baseRef}\\`` : `\\`${branch}\\``,\n nenhumProblema: '### No problems found\\n\\nThe analyzed code had no occurrences.\\n\\n',\n acoesRecomendadas: `### Recommended actions\\n\\n1. Review the errors — they have the highest impact on quality and security\\n2. Review the warnings — they may indicate latent bugs or technical debt\\n3. Consider the suggestions — they improve maintainability and performance\\n4. Check inline comments — each occurrence has a practical suggestion\\n\\n`,\n sobreAnalise: (branch: string, alvo: string) =>\n `### About this analysis\\n\\nThis analysis was executed automatically by the **GitHub App Tutanus** on the app server. It does not depend on workflows or configuration in your repository. Each new push to \\`${branch}\\` updates this report. The PR targets merge into ${alvo}.\\n\\n`,\n relatorioTruncado: '\\n\\n_… report truncated due to size._',\n prBodyScore: (branch: string, baseRef: string, score: number, estado: string, sha: string, escopo: string) =>\n `## PR Analysis — \\`${branch}\\` → \\`${baseRef}\\`\\n\\n**Score: ${score}/100 (${estado})** · Commit \\`${sha}\\` · Scope: ${escopo}\\n\\n`,\n prQualityOtimo: '> **Excellent.** This PR has good quality.\\n\\n',\n prQualityAtencao: '> **Needs attention.** This PR has points that deserve review.\\n\\n',\n prQualityCritico: '> **Critical.** It is highly recommended to review and fix the issues in this PR.\\n\\n',\n nenhumProblemaPR: '### No problems found\\n\\nThis PR had no occurrences.\\n\\n',\n maisOcorrenciasPR: (count: number) => `\\n *… and ${count} more occurrence(s). See inline comments.*\\n`,\n} as const;\n\nexport const GithubDashboardMensagens = {\n redirectAfterInstall: 'GitHub (settings/installations) — does not redirect to the dashboard',\n statsZeradas: 'Zeroed statistics.',\n paramsObrigatorios: 'Required parameters: owner, repo, installationId',\n nenhumWorkflowEncontrado: 'No workflow found.',\n erroCriarJob: 'Failed to create job',\n jobEnfileirado: (jobId: string) => `Complete analysis queued. Check status at GET /api/github/acoes/analisar-completo/${jobId}`,\n jobNaoEncontrado: (jobId: string) => `Job '${jobId}' not found`,\n installationIdInvalido: 'Invalid installation id',\n acessoNegado: 'Unauthorized. Provide the admin token (Authorization: Bearer <token>).',\n tokenNaoConfigurado: 'Admin token (TUTANUS_ADMIN_TOKEN) not configured. Access allowed without authentication.',\n} as const;\n"]}
|
|
@@ -31,5 +31,7 @@ export declare const GithubDashboardMensagens: {
|
|
|
31
31
|
readonly jobEnfileirado: (jobId: string) => string;
|
|
32
32
|
readonly jobNaoEncontrado: (jobId: string) => string;
|
|
33
33
|
readonly installationIdInvalido: "無効なインストールIDです";
|
|
34
|
+
readonly acessoNegado: "認証されていません。管理者トークンを指定してください(Authorization: Bearer <token>)。";
|
|
35
|
+
readonly tokenNaoConfigurado: "管理者トークン(TUTANUS_ADMIN_TOKEN)が設定されていません。認証なしでアクセスできます。";
|
|
34
36
|
};
|
|
35
37
|
//# sourceMappingURL=github-push-report-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-push-report-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/messages/ja/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;iCAChB,MAAM;;;yCAOE,MAAM;;;;sCAYT,MAAM;mCACT,MAAM;yCACA,MAAM;oCACX,MAAM,QAAQ,MAAM;mCACrB,MAAM,YAAY,MAAM;;;oCAGvB,MAAM,QAAQ,MAAM;;mCAGrB,MAAM,WAAW,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM;;;;;wCAM9E,MAAM;CACzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;qCAMX,MAAM;uCACJ,MAAM
|
|
1
|
+
{"version":3,"file":"github-push-report-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/messages/ja/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;iCAChB,MAAM;;;yCAOE,MAAM;;;;sCAYT,MAAM;mCACT,MAAM;yCACA,MAAM;oCACX,MAAM,QAAQ,MAAM;mCACrB,MAAM,YAAY,MAAM;;;oCAGvB,MAAM,QAAQ,MAAM;;mCAGrB,MAAM,WAAW,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM;;;;;wCAM9E,MAAM;CACzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;qCAMX,MAAM;uCACJ,MAAM;;;;CAIxB,CAAC"}
|
|
@@ -45,5 +45,7 @@ export const GithubDashboardMensagens = {
|
|
|
45
45
|
jobEnfileirado: (jobId) => `完全分析がキューに入れられました。GET /api/github/acoes/analisar-completo/${jobId} でステータスを確認してください`,
|
|
46
46
|
jobNaoEncontrado: (jobId) => `ジョブ '${jobId}' が見つかりません`,
|
|
47
47
|
installationIdInvalido: '無効なインストールIDです',
|
|
48
|
+
acessoNegado: '認証されていません。管理者トークンを指定してください(Authorization: Bearer <token>)。',
|
|
49
|
+
tokenNaoConfigurado: '管理者トークン(TUTANUS_ADMIN_TOKEN)が設定されていません。認証なしでアクセスできます。',
|
|
48
50
|
};
|
|
49
51
|
//# sourceMappingURL=github-push-report-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-push-report-messages.js","sourceRoot":"","sources":["../../../../../src/core/messages/ja/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,eAAe,EAAE,aAAa;IAC9B,iBAAiB,EAAE,oBAAoB;IACvC,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE;QACpC,MAAM,GAAG,GAA2B;YAClC,IAAI,EAAE,iDAAiD;YACvD,KAAK,EAAE,sDAAsD;YAC7D,IAAI,EAAE,wCAAwC;YAC9C,QAAQ,EAAE,4CAA4C;SACvD,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,cAAc,EAAE,yDAAyD;IACzE,gBAAgB,EAAE,mDAAmD;IACrE,gBAAgB,EAAE,oDAAoD;IACtE,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,SAAS,KAAK,YAAY;IAC9D,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,KAAK,OAAO;IACxD,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,sBAAsB,MAAM,KAAK;IACxE,aAAa,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI;IACjF,WAAW,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI;IAC/G,cAAc,EAAE,iDAAiD;IACjE,iBAAiB,EAAE,+JAA+J;IAClL,YAAY,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAC7C,gGAAgG,MAAM,kCAAkC,IAAI,qBAAqB;IACnK,iBAAiB,EAAE,kCAAkC;IACrD,WAAW,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC3G,eAAe,MAAM,UAAU,OAAO,gBAAgB,KAAK,QAAQ,MAAM,gBAAgB,GAAG,YAAY,MAAM,MAAM;IACtH,cAAc,EAAE,8BAA8B;IAC9C,gBAAgB,EAAE,uCAAuC;IACzD,gBAAgB,EAAE,6CAA6C;IAC/D,gBAAgB,EAAE,8CAA8C;IAChE,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,KAAK,+BAA+B;CAC7E,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB,EAAE,oDAAoD;IAC1E,YAAY,EAAE,UAAU;IACxB,kBAAkB,EAAE,oCAAoC;IACxD,wBAAwB,EAAE,oBAAoB;IAC9C,YAAY,EAAE,WAAW;IACzB,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,4DAA4D,KAAK,kBAAkB;IACtH,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,KAAK,YAAY;IAC9D,sBAAsB,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"github-push-report-messages.js","sourceRoot":"","sources":["../../../../../src/core/messages/ja/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,eAAe,EAAE,aAAa;IAC9B,iBAAiB,EAAE,oBAAoB;IACvC,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE;QACpC,MAAM,GAAG,GAA2B;YAClC,IAAI,EAAE,iDAAiD;YACvD,KAAK,EAAE,sDAAsD;YAC7D,IAAI,EAAE,wCAAwC;YAC9C,QAAQ,EAAE,4CAA4C;SACvD,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,cAAc,EAAE,yDAAyD;IACzE,gBAAgB,EAAE,mDAAmD;IACrE,gBAAgB,EAAE,oDAAoD;IACtE,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,SAAS,KAAK,YAAY;IAC9D,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,KAAK,OAAO;IACxD,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,sBAAsB,MAAM,KAAK;IACxE,aAAa,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI;IACjF,WAAW,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI;IAC/G,cAAc,EAAE,iDAAiD;IACjE,iBAAiB,EAAE,+JAA+J;IAClL,YAAY,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAC7C,gGAAgG,MAAM,kCAAkC,IAAI,qBAAqB;IACnK,iBAAiB,EAAE,kCAAkC;IACrD,WAAW,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC3G,eAAe,MAAM,UAAU,OAAO,gBAAgB,KAAK,QAAQ,MAAM,gBAAgB,GAAG,YAAY,MAAM,MAAM;IACtH,cAAc,EAAE,8BAA8B;IAC9C,gBAAgB,EAAE,uCAAuC;IACzD,gBAAgB,EAAE,6CAA6C;IAC/D,gBAAgB,EAAE,8CAA8C;IAChE,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,KAAK,+BAA+B;CAC7E,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB,EAAE,oDAAoD;IAC1E,YAAY,EAAE,UAAU;IACxB,kBAAkB,EAAE,oCAAoC;IACxD,wBAAwB,EAAE,oBAAoB;IAC9C,YAAY,EAAE,WAAW;IACzB,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,4DAA4D,KAAK,kBAAkB;IACtH,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,KAAK,YAAY;IAC9D,sBAAsB,EAAE,eAAe;IACvC,YAAY,EAAE,4DAA4D;IAC1E,mBAAmB,EAAE,uDAAuD;CACpE,CAAC","sourcesContent":["// SPDX-License-Identifier: MIT\n\nexport const GithubPushReportMensagens = {\n scoreLabel: (score: number) => {\n if (score >= 80) return '良好';\n if (score >= 60) return '注意';\n return '重大';\n },\n rotuloScoreNome: 'tutanus: 診断',\n nenhumaOcorrencia: '_問題は見つかりませんでした。_\\n',\n explicarSeveridade: (nivel: string) => {\n const map: Record<string, string> = {\n erro: '**エラー** — 機能、セキュリティ、コードの整合性に影響する問題。最優先で対処すべきです。',\n aviso: '**警告** — 不適切なプラクティス、非効率なコード、または将来のバグの可能性。レビューを推奨します。',\n info: '**情報** — 改善の機会、未遵守のベストプラクティス、または整理の提案。',\n sugestao: '**提案** — 可読性、パフォーマンス、保守性を向上させるためのオプションの改善。'\n };\n return map[nivel.toLowerCase()] ?? nivel;\n },\n qualidadeOtimo: '> **優秀です。** 分析されたコードの品質は良好です。介入はほとんどまたはまったく必要ありません。\\n\\n',\n qualidadeAtencao: '> **注意が必要です。** コードには本番環境に移行する前にレビューすべき点があります。\\n\\n',\n qualidadeCritico: '> **重大です。** 続行する前に、見つかった問題を確認して修正することを強く推奨します。\\n\\n',\n maisOcorrencias: (count: number) => `\\n_… 他${count}件の出現箇所。_\\n`,\n maisArquivos: (count: number) => `\\n- *… 他${count}ファイル*`,\n prBodyEstadoScore: (estado: string) => `**スコア: %score%/100(${estado})**`,\n repoDescricao: (owner: string, repo: string) => `**リポジトリ:** \\`${owner}/${repo}\\``,\n escopoLabel: (branch: string, baseRef?: string) => baseRef ? `\\`${branch}\\` → \\`${baseRef}\\`` : `\\`${branch}\\``,\n nenhumProblema: '### 問題が見つかりませんでした\\n\\n分析したコードに問題は見つかりませんでした。\\n\\n',\n acoesRecomendadas: `### 推奨されるアクション\\n\\n1. エラーを確認 — 品質とセキュリティに最も影響があります\\n2. 警告を分析 — 潜在的なバグや技術的負債を示す可能性があります\\n3. 提案を検討 — 保守性とパフォーマンスを向上させます\\n4. インラインコメントを参照 — 各出現箇所に実用的な提案があります\\n\\n`,\n sobreAnalise: (branch: string, alvo: string) =>\n `### この分析について\\n\\nこの分析はアプリサーバー上の **GitHub App Tutanus** によって自動実行されました。リポジトリのワークフローや設定に依存しません。\\`${branch}\\` への新しいプッシュごとにこの診断が更新されます。PRは ${alvo} へのマージを提案しています。\\n\\n`,\n relatorioTruncado: '\\n\\n_… サイズ超過のためレポートは切り詰められています。_',\n prBodyScore: (branch: string, baseRef: string, score: number, estado: string, sha: string, escopo: string) =>\n `## PR分析 — \\`${branch}\\` → \\`${baseRef}\\`\\n\\n**スコア: ${score}/100(${estado})** · コミット \\`${sha}\\` · 範囲: ${escopo}\\n\\n`,\n prQualityOtimo: '> **優秀です。** このPRは質が高いです。\\n\\n',\n prQualityAtencao: '> **注意が必要です。** このPRには確認すべき点があります。\\n\\n',\n prQualityCritico: '> **重大です。** このPRの問題を確認して修正することを強く推奨します。\\n\\n',\n nenhumProblemaPR: '### 問題が見つかりませんでした\\n\\nこのPRに問題は見つかりませんでした。\\n\\n',\n maisOcorrenciasPR: (count: number) => `\\n *… 他${count}件の出現箇所。インラインコメントを参照してください。*\\n`,\n} as const;\n\nexport const GithubDashboardMensagens = {\n redirectAfterInstall: 'GitHub(settings/installations)— ダッシュボードにリダイレクトしません',\n statsZeradas: '統計はゼロです。',\n paramsObrigatorios: '必須パラメータ: owner、repo、installationId',\n nenhumWorkflowEncontrado: 'ワークフローが見つかりませんでした。',\n erroCriarJob: 'ジョブの作成エラー',\n jobEnfileirado: (jobId: string) => `完全分析がキューに入れられました。GET /api/github/acoes/analisar-completo/${jobId} でステータスを確認してください`,\n jobNaoEncontrado: (jobId: string) => `ジョブ '${jobId}' が見つかりません`,\n installationIdInvalido: '無効なインストールIDです',\n acessoNegado: '認証されていません。管理者トークンを指定してください(Authorization: Bearer <token>)。',\n tokenNaoConfigurado: '管理者トークン(TUTANUS_ADMIN_TOKEN)が設定されていません。認証なしでアクセスできます。',\n} as const;\n"]}
|
|
@@ -31,5 +31,7 @@ export declare const GithubDashboardMensagens: {
|
|
|
31
31
|
readonly jobEnfileirado: (jobId: string) => string;
|
|
32
32
|
readonly jobNaoEncontrado: (jobId: string) => string;
|
|
33
33
|
readonly installationIdInvalido: "installation id inválido";
|
|
34
|
+
readonly acessoNegado: "Acesso não autorizado. Forneça o token de administração (Authorization: Bearer <token>).";
|
|
35
|
+
readonly tokenNaoConfigurado: "Token de administração (TUTANUS_ADMIN_TOKEN) não configurado. Acesso permitido sem autenticação.";
|
|
34
36
|
};
|
|
35
37
|
//# sourceMappingURL=github-push-report-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-push-report-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/messages/pt/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;iCAChB,MAAM;;;yCAOE,MAAM;;;;sCAYT,MAAM;mCACT,MAAM;yCACA,MAAM;oCACX,MAAM,QAAQ,MAAM;mCACrB,MAAM,YAAY,MAAM;;;oCAGvB,MAAM,QAAQ,MAAM;;mCAGrB,MAAM,WAAW,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM;;;;;wCAM9E,MAAM;CACzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;qCAMX,MAAM;uCACJ,MAAM
|
|
1
|
+
{"version":3,"file":"github-push-report-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/messages/pt/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;iCAChB,MAAM;;;yCAOE,MAAM;;;;sCAYT,MAAM;mCACT,MAAM;yCACA,MAAM;oCACX,MAAM,QAAQ,MAAM;mCACrB,MAAM,YAAY,MAAM;;;oCAGvB,MAAM,QAAQ,MAAM;;mCAGrB,MAAM,WAAW,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM;;;;;wCAM9E,MAAM;CACzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;qCAMX,MAAM;uCACJ,MAAM;;;;CAIxB,CAAC"}
|
|
@@ -45,5 +45,7 @@ export const GithubDashboardMensagens = {
|
|
|
45
45
|
jobEnfileirado: (jobId) => `Análise completa enfileirada. Consulte o status em GET /api/github/acoes/analisar-completo/${jobId}`,
|
|
46
46
|
jobNaoEncontrado: (jobId) => `Job '${jobId}' não encontrado`,
|
|
47
47
|
installationIdInvalido: 'installation id inválido',
|
|
48
|
+
acessoNegado: 'Acesso não autorizado. Forneça o token de administração (Authorization: Bearer <token>).',
|
|
49
|
+
tokenNaoConfigurado: 'Token de administração (TUTANUS_ADMIN_TOKEN) não configurado. Acesso permitido sem autenticação.',
|
|
48
50
|
};
|
|
49
51
|
//# sourceMappingURL=github-push-report-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-push-report-messages.js","sourceRoot":"","sources":["../../../../../src/core/messages/pt/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,eAAe,EAAE,sBAAsB;IACvC,iBAAiB,EAAE,oCAAoC;IACvD,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE;QACpC,MAAM,GAAG,GAA2B;YAClC,IAAI,EAAE,mHAAmH;YACzH,KAAK,EAAE,iGAAiG;YACxG,IAAI,EAAE,sGAAsG;YAC5G,QAAQ,EAAE,yFAAyF;SACpG,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,cAAc,EAAE,wGAAwG;IACxH,gBAAgB,EAAE,sGAAsG;IACxH,gBAAgB,EAAE,6GAA6G;IAC/H,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,eAAe,KAAK,oBAAoB;IAC5E,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,iBAAiB,KAAK,cAAc;IACrE,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,yBAAyB,MAAM,KAAK;IAC3E,aAAa,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,sBAAsB,KAAK,IAAI,IAAI,IAAI;IACvF,WAAW,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI;IAC/G,cAAc,EAAE,sFAAsF;IACtG,iBAAiB,EAAE,mUAAmU;IACtV,YAAY,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAC7C,0MAA0M,MAAM,wDAAwD,IAAI,OAAO;IACrR,iBAAiB,EAAE,+CAA+C;IAClE,WAAW,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC3G,wBAAwB,MAAM,UAAU,OAAO,kBAAkB,KAAK,SAAS,MAAM,kBAAkB,GAAG,gBAAgB,MAAM,MAAM;IACxI,cAAc,EAAE,kDAAkD;IAClE,gBAAgB,EAAE,uEAAuE;IACzF,gBAAgB,EAAE,sFAAsF;IACxG,gBAAgB,EAAE,2EAA2E;IAC7F,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,iBAAiB,KAAK,gDAAgD;CACpG,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB,EAAE,gEAAgE;IACtF,YAAY,EAAE,uBAAuB;IACrC,kBAAkB,EAAE,sDAAsD;IAC1E,wBAAwB,EAAE,6BAA6B;IACvD,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,8FAA8F,KAAK,EAAE;IACxI,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,KAAK,kBAAkB;IACpE,sBAAsB,EAAE,0BAA0B;
|
|
1
|
+
{"version":3,"file":"github-push-report-messages.js","sourceRoot":"","sources":["../../../../../src/core/messages/pt/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;QAC9B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,eAAe,EAAE,sBAAsB;IACvC,iBAAiB,EAAE,oCAAoC;IACvD,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE;QACpC,MAAM,GAAG,GAA2B;YAClC,IAAI,EAAE,mHAAmH;YACzH,KAAK,EAAE,iGAAiG;YACxG,IAAI,EAAE,sGAAsG;YAC5G,QAAQ,EAAE,yFAAyF;SACpG,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,cAAc,EAAE,wGAAwG;IACxH,gBAAgB,EAAE,sGAAsG;IACxH,gBAAgB,EAAE,6GAA6G;IAC/H,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,eAAe,KAAK,oBAAoB;IAC5E,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,iBAAiB,KAAK,cAAc;IACrE,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,yBAAyB,MAAM,KAAK;IAC3E,aAAa,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,sBAAsB,KAAK,IAAI,IAAI,IAAI;IACvF,WAAW,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI;IAC/G,cAAc,EAAE,sFAAsF;IACtG,iBAAiB,EAAE,mUAAmU;IACtV,YAAY,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAC7C,0MAA0M,MAAM,wDAAwD,IAAI,OAAO;IACrR,iBAAiB,EAAE,+CAA+C;IAClE,WAAW,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC3G,wBAAwB,MAAM,UAAU,OAAO,kBAAkB,KAAK,SAAS,MAAM,kBAAkB,GAAG,gBAAgB,MAAM,MAAM;IACxI,cAAc,EAAE,kDAAkD;IAClE,gBAAgB,EAAE,uEAAuE;IACzF,gBAAgB,EAAE,sFAAsF;IACxG,gBAAgB,EAAE,2EAA2E;IAC7F,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,iBAAiB,KAAK,gDAAgD;CACpG,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB,EAAE,gEAAgE;IACtF,YAAY,EAAE,uBAAuB;IACrC,kBAAkB,EAAE,sDAAsD;IAC1E,wBAAwB,EAAE,6BAA6B;IACvD,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,8FAA8F,KAAK,EAAE;IACxI,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,QAAQ,KAAK,kBAAkB;IACpE,sBAAsB,EAAE,0BAA0B;IAClD,YAAY,EAAE,0FAA0F;IACxG,mBAAmB,EAAE,kGAAkG;CAC/G,CAAC","sourcesContent":["// SPDX-License-Identifier: MIT\n\nexport const GithubPushReportMensagens = {\n scoreLabel: (score: number) => {\n if (score >= 80) return 'bom';\n if (score >= 60) return 'atenção';\n return 'crítico';\n },\n rotuloScoreNome: 'tutanus: diagnóstico',\n nenhumaOcorrencia: '_Nenhuma ocorrência encontrada._\\n',\n explicarSeveridade: (nivel: string) => {\n const map: Record<string, string> = {\n erro: '**Erros** — problemas que afetam funcionalidade, segurança ou integridade do código. Devem ser prioridade máxima.',\n aviso: '**Avisos** — más práticas, código ineficiente ou potenciais bugs futuros. Recomenda-se revisão.',\n info: '**Informações** — oportunidades de melhoria, boas práticas não seguidas ou sugestões de organização.',\n sugestao: '**Sugestões** — melhorias opcionais para legibilidade, performance ou manutenibilidade.'\n };\n return map[nivel.toLowerCase()] ?? nivel;\n },\n qualidadeOtimo: '> **Ótimo.** O código analisado apresenta boa qualidade. Poucas ou nenhuma intervenção necessária.\\n\\n',\n qualidadeAtencao: '> **Atenção necessária.** O código tem pontos que merecem revisão antes de seguir para produção.\\n\\n',\n qualidadeCritico: '> **Crítico.** É altamente recomendado revisar e corrigir os problemas encontrados antes de prosseguir.\\n\\n',\n maisOcorrencias: (count: number) => `\\n_… e mais ${count} ocorrência(s)._\\n`,\n maisArquivos: (count: number) => `\\n- *… e mais ${count} arquivo(s)*`,\n prBodyEstadoScore: (estado: string) => `**Score: %score%/100 (${estado})**`,\n repoDescricao: (owner: string, repo: string) => `**Repositório:** \\`${owner}/${repo}\\``,\n escopoLabel: (branch: string, baseRef?: string) => baseRef ? `\\`${branch}\\` → \\`${baseRef}\\`` : `\\`${branch}\\``,\n nenhumProblema: '### Nenhum problema encontrado\\n\\nO código analisado não apresentou ocorrências.\\n\\n',\n acoesRecomendadas: `### Ações recomendadas\\n\\n1. Revise os erros — são os que têm maior impacto na qualidade e segurança\\n2. Analise os avisos — podem indicar bugs latentes ou dívida técnica\\n3. Considere as sugestões — melhoram manutenibilidade e performance\\n4. Consulte os comentários inline — cada ocorrência tem uma sugestão prática\\n\\n`,\n sobreAnalise: (branch: string, alvo: string) =>\n `### Sobre esta análise\\n\\nEsta análise foi executada automaticamente pelo **GitHub App Tutanus** no servidor do app. Não depende de workflows ou configurações no seu repositório. Cada novo push em \\`${branch}\\` atualiza este diagnóstico. O PR propõe a fusão em ${alvo}.\\n\\n`,\n relatorioTruncado: '\\n\\n_… relatório truncado devido ao tamanho._',\n prBodyScore: (branch: string, baseRef: string, score: number, estado: string, sha: string, escopo: string) =>\n `## Análise do PR — \\`${branch}\\` → \\`${baseRef}\\`\\n\\n**Score: ${score}/100 (${estado})** · Commit \\`${sha}\\` · Escopo: ${escopo}\\n\\n`,\n prQualityOtimo: '> **Ótimo.** Este PR está com boa qualidade.\\n\\n',\n prQualityAtencao: '> **Atenção necessária.** Este PR tem pontos que merecem revisão.\\n\\n',\n prQualityCritico: '> **Crítico.** É altamente recomendado revisar e corrigir os problemas neste PR.\\n\\n',\n nenhumProblemaPR: '### Nenhum problema encontrado\\n\\nEste PR não apresentou ocorrências.\\n\\n',\n maisOcorrenciasPR: (count: number) => `\\n *… e mais ${count} ocorrência(s). Veja os comentários inline.*\\n`,\n} as const;\n\nexport const GithubDashboardMensagens = {\n redirectAfterInstall: 'GitHub (settings/installations) — não redireciona ao dashboard',\n statsZeradas: 'Estatísticas zeradas.',\n paramsObrigatorios: 'Parâmetros obrigatórios: owner, repo, installationId',\n nenhumWorkflowEncontrado: 'Nenhum workflow encontrado.',\n erroCriarJob: 'Erro ao criar job',\n jobEnfileirado: (jobId: string) => `Análise completa enfileirada. Consulte o status em GET /api/github/acoes/analisar-completo/${jobId}`,\n jobNaoEncontrado: (jobId: string) => `Job '${jobId}' não encontrado`,\n installationIdInvalido: 'installation id inválido',\n acessoNegado: 'Acesso não autorizado. Forneça o token de administração (Authorization: Bearer <token>).',\n tokenNaoConfigurado: 'Token de administração (TUTANUS_ADMIN_TOKEN) não configurado. Acesso permitido sem autenticação.',\n} as const;\n"]}
|
|
@@ -31,5 +31,7 @@ export declare const GithubDashboardMensagens: {
|
|
|
31
31
|
readonly jobEnfileirado: (jobId: string) => string;
|
|
32
32
|
readonly jobNaoEncontrado: (jobId: string) => string;
|
|
33
33
|
readonly installationIdInvalido: "无效的安装ID";
|
|
34
|
+
readonly acessoNegado: "未授权。请提供管理员令牌(Authorization: Bearer <token>)。";
|
|
35
|
+
readonly tokenNaoConfigurado: "管理员令牌(TUTANUS_ADMIN_TOKEN)未配置。允许无认证访问。";
|
|
34
36
|
};
|
|
35
37
|
//# sourceMappingURL=github-push-report-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-push-report-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/messages/zh/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;iCAChB,MAAM;;;yCAOE,MAAM;;;;sCAYT,MAAM;mCACT,MAAM;yCACA,MAAM;oCACX,MAAM,QAAQ,MAAM;mCACrB,MAAM,YAAY,MAAM;;;oCAGvB,MAAM,QAAQ,MAAM;;mCAGrB,MAAM,WAAW,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM;;;;;wCAM9E,MAAM;CACzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;qCAMX,MAAM;uCACJ,MAAM
|
|
1
|
+
{"version":3,"file":"github-push-report-messages.d.ts","sourceRoot":"","sources":["../../../../../src/core/messages/zh/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB;iCAChB,MAAM;;;yCAOE,MAAM;;;;sCAYT,MAAM;mCACT,MAAM;yCACA,MAAM;oCACX,MAAM,QAAQ,MAAM;mCACrB,MAAM,YAAY,MAAM;;;oCAGvB,MAAM,QAAQ,MAAM;;mCAGrB,MAAM,WAAW,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,UAAU,MAAM;;;;;wCAM9E,MAAM;CACzB,CAAC;AAEX,eAAO,MAAM,wBAAwB;;;;;;qCAMX,MAAM;uCACJ,MAAM;;;;CAIxB,CAAC"}
|
|
@@ -45,5 +45,7 @@ export const GithubDashboardMensagens = {
|
|
|
45
45
|
jobEnfileirado: (jobId) => `完整分析已排队。请通过 GET /api/github/acoes/analisar-completo/${jobId} 查看状态`,
|
|
46
46
|
jobNaoEncontrado: (jobId) => `任务 '${jobId}' 未找到`,
|
|
47
47
|
installationIdInvalido: '无效的安装ID',
|
|
48
|
+
acessoNegado: '未授权。请提供管理员令牌(Authorization: Bearer <token>)。',
|
|
49
|
+
tokenNaoConfigurado: '管理员令牌(TUTANUS_ADMIN_TOKEN)未配置。允许无认证访问。',
|
|
48
50
|
};
|
|
49
51
|
//# sourceMappingURL=github-push-report-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-push-report-messages.js","sourceRoot":"","sources":["../../../../../src/core/messages/zh/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,eAAe,EAAE,aAAa;IAC9B,iBAAiB,EAAE,cAAc;IACjC,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE;QACpC,MAAM,GAAG,GAA2B;YAClC,IAAI,EAAE,kCAAkC;YACxC,KAAK,EAAE,kCAAkC;YACzC,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,gCAAgC;SAC3C,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,cAAc,EAAE,mCAAmC;IACnD,gBAAgB,EAAE,mCAAmC;IACrD,gBAAgB,EAAE,oCAAoC;IACtD,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS;IAC5D,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,KAAK,MAAM;IACxD,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,qBAAqB,MAAM,KAAK;IACvE,aAAa,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI;IAC9E,WAAW,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI;IAC/G,cAAc,EAAE,kCAAkC;IAClD,iBAAiB,EAAE,qHAAqH;IACxI,YAAY,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAC7C,iFAAiF,MAAM,uBAAuB,IAAI,OAAO;IAC3H,iBAAiB,EAAE,oBAAoB;IACvC,WAAW,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC3G,gBAAgB,MAAM,UAAU,OAAO,eAAe,KAAK,QAAQ,MAAM,cAAc,GAAG,YAAY,MAAM,MAAM;IACpH,cAAc,EAAE,wBAAwB;IACxC,gBAAgB,EAAE,8BAA8B;IAChD,gBAAgB,EAAE,iCAAiC;IACnD,gBAAgB,EAAE,gCAAgC;IAClD,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,KAAK,iBAAiB;CAChE,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB,EAAE,0CAA0C;IAChE,YAAY,EAAE,OAAO;IACrB,kBAAkB,EAAE,iCAAiC;IACrD,wBAAwB,EAAE,SAAS;IACnC,YAAY,EAAE,QAAQ;IACtB,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,uDAAuD,KAAK,OAAO;IACtG,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO;IACxD,sBAAsB,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"github-push-report-messages.js","sourceRoot":"","sources":["../../../../../src/core/messages/zh/github/github-push-report-messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,CAAC,KAAa,EAAE,EAAE;QAC5B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,eAAe,EAAE,aAAa;IAC9B,iBAAiB,EAAE,cAAc;IACjC,kBAAkB,EAAE,CAAC,KAAa,EAAE,EAAE;QACpC,MAAM,GAAG,GAA2B;YAClC,IAAI,EAAE,kCAAkC;YACxC,KAAK,EAAE,kCAAkC;YACzC,IAAI,EAAE,8BAA8B;YACpC,QAAQ,EAAE,gCAAgC;SAC3C,CAAC;QACF,OAAO,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,cAAc,EAAE,mCAAmC;IACnD,gBAAgB,EAAE,mCAAmC;IACrD,gBAAgB,EAAE,oCAAoC;IACtD,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS;IAC5D,YAAY,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,KAAK,MAAM;IACxD,iBAAiB,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,qBAAqB,MAAM,KAAK;IACvE,aAAa,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI;IAC9E,WAAW,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI;IAC/G,cAAc,EAAE,kCAAkC;IAClD,iBAAiB,EAAE,qHAAqH;IACxI,YAAY,EAAE,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE,CAC7C,iFAAiF,MAAM,uBAAuB,IAAI,OAAO;IAC3H,iBAAiB,EAAE,oBAAoB;IACvC,WAAW,EAAE,CAAC,MAAc,EAAE,OAAe,EAAE,KAAa,EAAE,MAAc,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC3G,gBAAgB,MAAM,UAAU,OAAO,eAAe,KAAK,QAAQ,MAAM,cAAc,GAAG,YAAY,MAAM,MAAM;IACpH,cAAc,EAAE,wBAAwB;IACxC,gBAAgB,EAAE,8BAA8B;IAChD,gBAAgB,EAAE,iCAAiC;IACnD,gBAAgB,EAAE,gCAAgC;IAClD,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,KAAK,iBAAiB;CAChE,CAAC;AAEX,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,oBAAoB,EAAE,0CAA0C;IAChE,YAAY,EAAE,OAAO;IACrB,kBAAkB,EAAE,iCAAiC;IACrD,wBAAwB,EAAE,SAAS;IACnC,YAAY,EAAE,QAAQ;IACtB,cAAc,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,uDAAuD,KAAK,OAAO;IACtG,gBAAgB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO;IACxD,sBAAsB,EAAE,SAAS;IACjC,YAAY,EAAE,8CAA8C;IAC5D,mBAAmB,EAAE,wCAAwC;CACrD,CAAC","sourcesContent":["// SPDX-License-Identifier: MIT\n\nexport const GithubPushReportMensagens = {\n scoreLabel: (score: number) => {\n if (score >= 80) return '良好';\n if (score >= 60) return '注意';\n return '严重';\n },\n rotuloScoreNome: 'tutanus: 诊断',\n nenhumaOcorrencia: '_未发现任何问题。_\\n',\n explicarSeveridade: (nivel: string) => {\n const map: Record<string, string> = {\n erro: '**错误** — 影响功能、安全或代码完整性的问题。应优先处理。',\n aviso: '**警告** — 不良实践、低效代码或潜在的未来错误。建议审查。',\n info: '**信息** — 改进机会、未遵循的最佳实践或组织建议。',\n sugestao: '**建议** — 可选的改进,以提高可读性、性能或可维护性。'\n };\n return map[nivel.toLowerCase()] ?? nivel;\n },\n qualidadeOtimo: '> **优秀。** 分析的代码质量良好。很少或不需要干预。\\n\\n',\n qualidadeAtencao: '> **需要注意。** 代码有需要在投入生产前审查的地方。\\n\\n',\n qualidadeCritico: '> **严重。** 强烈建议在继续之前审查并修复发现的问题。\\n\\n',\n maisOcorrencias: (count: number) => `\\n_… 还有${count}处出现。_\\n`,\n maisArquivos: (count: number) => `\\n- *… 还有${count}个文件*`,\n prBodyEstadoScore: (estado: string) => `**评分: %score%/100(${estado})**`,\n repoDescricao: (owner: string, repo: string) => `**仓库:** \\`${owner}/${repo}\\``,\n escopoLabel: (branch: string, baseRef?: string) => baseRef ? `\\`${branch}\\` → \\`${baseRef}\\`` : `\\`${branch}\\``,\n nenhumProblema: '### 未发现任何问题\\n\\n分析的代码未发现任何问题。\\n\\n',\n acoesRecomendadas: `### 建议采取的措施\\n\\n1. 审查错误 — 它们对质量和安全性影响最大\\n2. 分析警告 — 可能指示潜在的错误或技术债务\\n3. 考虑建议 — 改善可维护性和性能\\n4. 查看内联注释 — 每个出现处都有实用的建议\\n\\n`,\n sobreAnalise: (branch: string, alvo: string) =>\n `### 关于此分析\\n\\n此分析由应用服务器上的 **GitHub App Tutanus** 自动执行。它不依赖于您仓库中的工作流或配置。每次推送到 \\`${branch}\\` 都会更新此诊断。PR 提议合并到 ${alvo}。\\n\\n`,\n relatorioTruncado: '\\n\\n_… 报告因大小而被截断。_',\n prBodyScore: (branch: string, baseRef: string, score: number, estado: string, sha: string, escopo: string) =>\n `## PR 分析 — \\`${branch}\\` → \\`${baseRef}\\`\\n\\n**评分: ${score}/100(${estado})** · 提交 \\`${sha}\\` · 范围: ${escopo}\\n\\n`,\n prQualityOtimo: '> **优秀。** 此PR质量良好。\\n\\n',\n prQualityAtencao: '> **需要注意。** 此PR有需要审查的地方。\\n\\n',\n prQualityCritico: '> **严重。** 强烈建议审查并修正此PR中的问题。\\n\\n',\n nenhumProblemaPR: '### 未发现任何问题\\n\\n此PR未发现任何问题。\\n\\n',\n maisOcorrenciasPR: (count: number) => `\\n *… 还有${count}处出现。请查看内联注释。*\\n`,\n} as const;\n\nexport const GithubDashboardMensagens = {\n redirectAfterInstall: 'GitHub(settings/installations)— 不重定向到仪表盘',\n statsZeradas: '统计为零。',\n paramsObrigatorios: '必需参数: owner、repo、installationId',\n nenhumWorkflowEncontrado: '未找到工作流。',\n erroCriarJob: '创建任务错误',\n jobEnfileirado: (jobId: string) => `完整分析已排队。请通过 GET /api/github/acoes/analisar-completo/${jobId} 查看状态`,\n jobNaoEncontrado: (jobId: string) => `任务 '${jobId}' 未找到`,\n installationIdInvalido: '无效的安装ID',\n acessoNegado: '未授权。请提供管理员令牌(Authorization: Bearer <token>)。',\n tokenNaoConfigurado: '管理员令牌(TUTANUS_ADMIN_TOKEN)未配置。允许无认证访问。',\n} as const;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="pt-BR"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/3uta7d_6k863-.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1jq4o6yq14o4c.js"/><script src="/_next/static/chunks/15orcrkp-_9ct.js" async=""></script><script src="/_next/static/chunks/3n7dm2ojtyzwn.js" async=""></script><script src="/_next/static/chunks/1061ff024jzvu.js" async=""></script><script src="/_next/static/chunks/turbopack-2xb6mmb6_q43u.js" async=""></script><script src="/_next/static/chunks/05-c3ty_6dwfk.js" async=""></script><script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script><link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" as="style" crossorigin="anonymous" referrerPolicy="no-referrer"/><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Tutanus — CLI de Análise, Diagnóstico e Manutenção de Projetos</title><meta name="description" content="CLI modular para análise estática, diagnóstico de segurança e manutenção de projetos JavaScript/TypeScript e multi-stack. Suporte a CI/CD, plugins, Guardian e mais."/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" crossorigin="anonymous" referrerPolicy="no-referrer"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><main class="flex-1 w-full"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></main><script src="/_next/static/chunks/1jq4o6yq14o4c.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3uta7d_6k863-.css\",\"style\"]\n:HL[\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css\",\"style\",{\"crossOrigin\":\"anonymous\",\"referrerPolicy\":\"no-referrer\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3uta7d_6k863-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14mrh2-p_w84d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"pt-BR\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css\",\"crossOrigin\":\"anonymous\",\"referrerPolicy\":\"no-referrer\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"main\",null,{\"className\":\"flex-1 w-full\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3uta7d_6k863-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"rSwWA0jiTeQUXZXHLMAZ1\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Tutanus — CLI de Análise, Diagnóstico e Manutenção de Projetos\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"CLI modular para análise estática, diagnóstico de segurança e manutenção de projetos JavaScript/TypeScript e multi-stack. Suporte a CI/CD, plugins, Guardian e mais.\"}]]\n"])</script></body></html>
|
package/out/404.html
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!DOCTYPE html><html lang="pt-BR"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/3uta7d_6k863-.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1jq4o6yq14o4c.js"/><script src="/_next/static/chunks/15orcrkp-_9ct.js" async=""></script><script src="/_next/static/chunks/3n7dm2ojtyzwn.js" async=""></script><script src="/_next/static/chunks/1061ff024jzvu.js" async=""></script><script src="/_next/static/chunks/turbopack-2xb6mmb6_q43u.js" async=""></script><script src="/_next/static/chunks/05-c3ty_6dwfk.js" async=""></script><script src="/_next/static/chunks/14mrh2-p_w84d.js" async=""></script><link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" as="style" crossorigin="anonymous" referrerPolicy="no-referrer"/><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Tutanus — CLI de Análise, Diagnóstico e Manutenção de Projetos</title><meta name="description" content="CLI modular para análise estática, diagnóstico de segurança e manutenção de projetos JavaScript/TypeScript e multi-stack. Suporte a CI/CD, plugins, Guardian e mais."/><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css" crossorigin="anonymous" referrerPolicy="no-referrer"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><main class="flex-1 w-full"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></main><script src="/_next/static/chunks/1jq4o6yq14o4c.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"/_next/static/chunks/14mrh2-p_w84d.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3uta7d_6k863-.css\",\"style\"]\n:HL[\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css\",\"style\",{\"crossOrigin\":\"anonymous\",\"referrerPolicy\":\"no-referrer\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3uta7d_6k863-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/05-c3ty_6dwfk.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/14mrh2-p_w84d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"pt-BR\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css\",\"crossOrigin\":\"anonymous\",\"referrerPolicy\":\"no-referrer\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"main\",null,{\"className\":\"flex-1 w-full\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3uta7d_6k863-.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"rSwWA0jiTeQUXZXHLMAZ1\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Tutanus — CLI de Análise, Diagnóstico e Manutenção de Projetos\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"CLI modular para análise estática, diagnóstico de segurança e manutenção de projetos JavaScript/TypeScript e multi-stack. Suporte a CI/CD, plugins, Guardian e mais.\"}]]\n"])</script></body></html>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[47257,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"ClientPageRoot"]
|
|
3
|
+
3:I[52683,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js","/_next/static/chunks/1jiobya7ette1.js"],"default"]
|
|
4
|
+
6:I[97367,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"OutletBoundary"]
|
|
5
|
+
7:"$Sreact.suspense"
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/1jiobya7ette1.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"rSwWA0jiTeQUXZXHLMAZ1"}
|
|
7
|
+
4:{}
|
|
8
|
+
5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
9
|
+
8:null
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[39756,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"default"]
|
|
3
|
+
3:I[37457,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"default"]
|
|
4
|
+
4:I[47257,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"ClientPageRoot"]
|
|
5
|
+
5:I[52683,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js","/_next/static/chunks/1jiobya7ette1.js"],"default"]
|
|
6
|
+
8:I[97367,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"OutletBoundary"]
|
|
7
|
+
9:"$Sreact.suspense"
|
|
8
|
+
b:I[97367,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"ViewportBoundary"]
|
|
9
|
+
d:I[97367,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"MetadataBoundary"]
|
|
10
|
+
f:I[68027,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"default",1]
|
|
11
|
+
:HL["/_next/static/chunks/3uta7d_6k863-.css","style"]
|
|
12
|
+
:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css","style",{"crossOrigin":"anonymous","referrerPolicy":"no-referrer"}]
|
|
13
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3uta7d_6k863-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/05-c3ty_6dwfk.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/14mrh2-p_w84d.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"pt-BR","children":[["$","head",null,{"children":["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css","crossOrigin":"anonymous","referrerPolicy":"no-referrer"}]}],["$","body",null,{"children":["$","main",null,{"className":"flex-1 w-full","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/1jiobya7ette1.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3uta7d_6k863-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"rSwWA0jiTeQUXZXHLMAZ1"}
|
|
14
|
+
6:{}
|
|
15
|
+
7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
16
|
+
c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
17
|
+
a:null
|
|
18
|
+
e:[["$","title","0",{"children":"Tutanus — CLI de Análise, Diagnóstico e Manutenção de Projetos"}],["$","meta","1",{"name":"description","content":"CLI modular para análise estática, diagnóstico de segurança e manutenção de projetos JavaScript/TypeScript e multi-stack. Suporte a CI/CD, plugins, Guardian e mais."}]]
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[97367,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"ViewportBoundary"]
|
|
3
|
+
3:I[97367,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"MetadataBoundary"]
|
|
4
|
+
4:"$Sreact.suspense"
|
|
5
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Tutanus — CLI de Análise, Diagnóstico e Manutenção de Projetos"}],["$","meta","1",{"name":"description","content":"CLI modular para análise estática, diagnóstico de segurança e manutenção de projetos JavaScript/TypeScript e multi-stack. Suporte a CI/CD, plugins, Guardian e mais."}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"rSwWA0jiTeQUXZXHLMAZ1"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
1:"$Sreact.fragment"
|
|
2
|
+
2:I[39756,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"default"]
|
|
3
|
+
3:I[37457,["/_next/static/chunks/05-c3ty_6dwfk.js","/_next/static/chunks/14mrh2-p_w84d.js"],"default"]
|
|
4
|
+
:HL["/_next/static/chunks/3uta7d_6k863-.css","style"]
|
|
5
|
+
:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css","style",{"crossOrigin":"anonymous","referrerPolicy":"no-referrer"}]
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/3uta7d_6k863-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/05-c3ty_6dwfk.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/14mrh2-p_w84d.js","async":true}]],["$","html",null,{"lang":"pt-BR","children":[["$","head",null,{"children":["$","link",null,{"rel":"stylesheet","href":"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css","crossOrigin":"anonymous","referrerPolicy":"no-referrer"}]}],["$","body",null,{"children":["$","main",null,{"className":"flex-1 w-full","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"rSwWA0jiTeQUXZXHLMAZ1"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
:HL["/_next/static/chunks/3uta7d_6k863-.css","style"]
|
|
2
|
+
:HL["https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css","style",{"crossOrigin":"anonymous","referrerPolicy":"no-referrer"}]
|
|
3
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"rSwWA0jiTeQUXZXHLMAZ1"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},18967,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={DecodeError:function(){return P},MiddlewareNotFoundError:function(){return O},MissingStaticPage:function(){return h},NormalizeError:function(){return E},PageNotFoundError:function(){return b},SP:function(){return m},ST:function(){return y},WEB_VITALS:function(){return i},execOnce:function(){return u},getDisplayName:function(){return l},getLocationOrigin:function(){return c},getURL:function(){return f},isAbsoluteUrl:function(){return a},isResSent:function(){return d},loadGetInitialProps:function(){return g},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return N}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function u(e){let r,t=!1;return(...n)=>(t||(t=!0,r=e(...n)),r)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,a=e=>s.test(e);function c(){let{protocol:e,hostname:r,port:t}=window.location;return`${e}//${r}${t?":"+t:""}`}function f(){let{href:e}=window.location,r=c();return e.substring(r.length)}function l(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let r=e.split("?");return r[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(r[1]?`?${r.slice(1).join("?")}`:"")}async function g(e,r){let t=r.res||r.ctx&&r.ctx.res;if(!e.getInitialProps)return r.ctx&&r.Component?{pageProps:await g(r.Component,r.ctx)}:{};let n=await e.getInitialProps(r);if(t&&d(t))return n;if(!n)throw Object.defineProperty(Error(`"${l(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,y=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class P extends Error{}class E extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class h extends Error{constructor(e,r){super(),this.message=`Failed to load static file for page: ${e} ${r}`}}class O extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function N(e){return JSON.stringify({message:e.message,stack:e.stack})}},98183,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={assign:function(){return a},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var o in n)Object.defineProperty(t,o,{enumerable:!0,get:n[o]});function i(e){let r={};for(let[t,n]of e.entries()){let e=r[t];void 0===e?r[t]=n:Array.isArray(e)?e.push(n):r[t]=[e,n]}return r}function u(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let r=new URLSearchParams;for(let[t,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)r.append(t,u(e));else r.set(t,u(n));return r}function a(e,...r){for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}}]);
|