@mocoto/mahoraga 0.14.1 → 0.14.2
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/analysts/architects/analyst-structure.js +1 -1
- package/dist/analysts/architects/archetypes-custom.js +8 -13
- package/dist/analysts/architects/detector-archetypes.js +39 -35
- package/dist/analysts/architects/orchestrator-archetypes.js +3 -3
- package/dist/analysts/architects/signals-project-advanced.js +2 -2
- package/dist/analysts/architects/signals-project.js +1 -1
- package/dist/analysts/azure-pipelines/analysts/analyst-azure.js +20 -21
- package/dist/analysts/azure-pipelines/detectors/detector-azure-structure.js +0 -3
- package/dist/analysts/circleci/analysts/analyst-circleci.js +22 -24
- package/dist/analysts/circleci/detectors/detector-circleci-structure.js +4 -7
- package/dist/analysts/converters/convert-registry.js +1 -1
- package/dist/analysts/converters/index.js +1 -1
- package/dist/analysts/corrections/auto-fix-engine.js +1 -1
- package/dist/analysts/corrections/corrector-structure.js +8 -7
- package/dist/analysts/corrections/map-reversion.js +2 -2
- package/dist/analysts/corrections/reorganize-barrels.js +3 -3
- package/dist/analysts/corrections/rewrite-testes-aliases.js +23 -22
- package/dist/analysts/corrections/type-safety/type-analyzer.js +3 -3
- package/dist/analysts/corrections/type-safety/type-validator.js +2 -2
- package/dist/analysts/corrections/type-safety/usage-analyzer.js +3 -3
- package/dist/analysts/css/analysts/analyst-css.js +27 -28
- package/dist/analysts/css-in-js/detectors/detector-css-in-js-best-practices.js +8 -15
- package/dist/analysts/detectors/detector-architecture.js +2 -2
- package/dist/analysts/detectors/detector-bugs-ml.js +8 -8
- package/dist/analysts/detectors/detector-code-fragile.js +11 -10
- package/dist/analysts/detectors/detector-dependencies.js +5 -5
- package/dist/analysts/detectors/detector-duplications.js +5 -8
- package/dist/analysts/detectors/detector-monorepo.js +10 -9
- package/dist/analysts/detectors/detector-performance.js +2 -1
- package/dist/analysts/detectors/detector-recommendation-architecture.js +1 -1
- package/dist/analysts/detectors/detector-security.js +1 -1
- package/dist/analysts/detectors/detector-structure.js +3 -3
- package/dist/analysts/github-actions/analysts/analyst-github-actions.js +5 -8
- package/dist/analysts/github-actions/detectors/detector-workflow-accessibility.js +1 -9
- package/dist/analysts/github-actions/detectors/detector-workflow-structure.js +1 -4
- package/dist/analysts/github-actions/detectors/detector-workflow-trigger-unsafe.js +6 -5
- package/dist/analysts/gitlab-ci/analysts/analyst-gitlab-ci.js +2 -2
- package/dist/analysts/gitlab-ci/detectors/detector-gitlab-ci-structure.js +0 -3
- package/dist/analysts/go/analysts/analyst-best-practices.js +2 -2
- package/dist/analysts/go/analysts/analyst-concurrency.js +1 -1
- package/dist/analysts/go/analysts/analyst-security.js +1 -1
- package/dist/analysts/go/detectors/detector-conventions.js +1 -1
- package/dist/analysts/html/analysts/analyst-html.js +10 -12
- package/dist/analysts/html/detectors/detector-html.js +3 -3
- package/dist/analysts/js-ts/analysts/analyst-commands-cli.js +22 -22
- package/dist/analysts/js-ts/analysts/analyst-functions-long.js +5 -5
- package/dist/analysts/js-ts/analysts/analyst-patterns-usage.js +6 -2
- package/dist/analysts/js-ts/detectors/detector-anti-patterns-async.js +81 -9
- package/dist/analysts/js-ts/detectors/detector-constructions-syntactic.js +35 -6
- package/dist/analysts/js-ts/detectors/detector-context-smart.js +6 -6
- package/dist/analysts/js-ts/detectors/detector-leaks-memory.js +1 -1
- package/dist/analysts/js-ts/detectors/detector-types-unsafe.js +33 -2
- package/dist/analysts/php/analysts/analyst-php.js +3 -3
- package/dist/analysts/php/detectors/detector-php-best-practices.js +5 -5
- package/dist/analysts/php/detectors/detector-php-security.js +5 -5
- package/dist/analysts/php/scorers/scorer-php.js +2 -2
- package/dist/analysts/plugins/detector-documentation.js +5 -6
- package/dist/analysts/plugins/detector-markdown.js +7 -7
- package/dist/analysts/python/analysts/analyst-python.js +2 -5
- package/dist/analysts/react/analysts/analyst-react-hooks.js +63 -8
- package/dist/analysts/react/analysts/analyst-react.js +45 -1
- package/dist/analysts/react/corrections/correction-react.js +40 -0
- package/dist/analysts/react/detectors/detector-react-best-practices.js +4 -4
- package/dist/analysts/react/scorers/scorer-react.js +36 -1
- package/dist/analysts/rust/analysts/analyst-best-practices.js +42 -3
- package/dist/analysts/rust/analysts/analyst-memory.js +2 -2
- package/dist/analysts/rust/analysts/analyst-rust.js +52 -5
- package/dist/analysts/rust/analysts/analyst-security.js +29 -1
- package/dist/analysts/scorers/scorer.js +5 -5
- package/dist/analysts/shell/analysts/analyst-shell.js +81 -5
- package/dist/analysts/shell/corrections/correction-shell.js +34 -1
- package/dist/analysts/shell/detectors/detector-shell-security.js +88 -0
- package/dist/analysts/shell/scorers/scorer-shell.js +58 -1
- package/dist/analysts/strategists/operator-structure.js +5 -7
- package/dist/analysts/strategists/suggestions-contextuais.js +5 -2
- package/dist/analysts/svg/analysts/analyst-svg.js +1 -0
- package/dist/analysts/tailwind/analysts/analyst-tailwind.js +79 -55
- package/dist/analysts/tailwind/corrections/correction-tailwind.js +116 -9
- package/dist/analysts/tailwind/detectors/detector-tailwind-best-practices.js +122 -7
- package/dist/analysts/tailwind/scorers/scorer-tailwind.js +62 -10
- package/dist/analysts/xml/analysts/analyst-xml.js +2 -2
- package/dist/app/index.js +1 -0
- package/dist/bin/cli-bootstrap.js +6 -4
- package/dist/bin/index.js +6 -4
- package/dist/caretakers/scoring.js +1 -0
- package/dist/cli/commands/command-analysts.js +1 -1
- package/dist/cli/commands/command-azure.js +1 -1
- package/dist/cli/commands/command-circleci.js +1 -1
- package/dist/cli/commands/command-compliance.js +1 -1
- package/dist/cli/commands/command-diagnose.js +10 -13
- package/dist/cli/commands/command-fix-types.js +9 -32
- package/dist/cli/commands/command-formatters.js +2 -2
- package/dist/cli/commands/command-gitlab-ci.js +1 -1
- package/dist/cli/commands/command-guardian.js +1 -1
- package/dist/cli/commands/command-imports.js +6 -6
- package/dist/cli/commands/command-jenkins.js +1 -1
- package/dist/cli/commands/command-licenses.js +1 -1
- package/dist/cli/commands/command-marketplace.js +3 -3
- package/dist/cli/commands/command-names.js +3 -8
- package/dist/cli/commands/command-perf.js +7 -9
- package/dist/cli/commands/command-plugins.js +4 -4
- package/dist/cli/diagnostic/auto-fix.js +2 -2
- package/dist/cli/diagnostic/exporters/json-exporter.js +1 -1
- package/dist/cli/diagnostic/exporters/sharded-exporter.js +0 -3
- package/dist/cli/diagnostic/exporters/svg-optimization-exporter.js +1 -1
- package/dist/cli/diagnostic/handlers/archetype-handler.js +3 -6
- package/dist/cli/diagnostic/handlers/auto-fix-handler.js +4 -4
- package/dist/cli/diagnostic/handlers/guardian-handler.js +1 -1
- package/dist/cli/diagnostic/processing-diagnostic.js +31 -35
- package/dist/cli/diagnostic/processing-helpers.js +2 -2
- package/dist/cli/handlers/fix-types-exporter.js +1 -4
- package/dist/cli/helpers/display-frame.js +5 -5
- package/dist/core/config/auto/auto-fix-config.js +0 -6
- package/dist/core/config/chalk-safe.js +2 -2
- package/dist/core/config/config.js +6 -8
- package/dist/core/config/conventions.js +1 -1
- package/dist/core/config/security.js +2 -2
- package/dist/core/execution/analysis-cache.js +5 -8
- package/dist/core/execution/executor.js +8 -19
- package/dist/core/execution/inquisitor.js +24 -21
- package/dist/core/execution/results.js +1 -0
- package/dist/core/execution/scanner.js +3 -3
- package/dist/core/messages/en/analysts/analyst-github-actions-messages.js +1 -1
- package/dist/core/messages/en/analysts/analyst-patterns-usage-messages.js +1 -0
- package/dist/core/messages/en/analysts/analyst-shell-messages.js +15 -0
- package/dist/core/messages/en/analysts/detector-constructions-syntactic-messages.js +6 -0
- package/dist/core/messages/en/analysts/detector-js-ts-messages.js +27 -0
- package/dist/core/messages/en/analysts/detector-react-messages.js +8 -0
- package/dist/core/messages/en/analysts/detector-shell-messages.js +17 -0
- package/dist/core/messages/en/analysts/detector-tailwind-messages.js +3 -3
- package/dist/core/messages/en/core/plugin-messages.js +31 -3
- package/dist/core/messages/en/log/log.js +4 -4
- package/dist/core/messages/en/ui/filter-config.js +1 -5
- package/dist/core/messages/i18n-system.js +3 -3
- package/dist/core/messages/index.js +3 -3
- package/dist/core/messages/ja/analysts/analyst-github-actions-messages.js +1 -1
- package/dist/core/messages/ja/analysts/analyst-patterns-usage-messages.js +1 -0
- package/dist/core/messages/ja/analysts/analyst-shell-messages.js +15 -0
- package/dist/core/messages/ja/analysts/detector-constructions-syntactic-messages.js +6 -0
- package/dist/core/messages/ja/analysts/detector-js-ts-messages.js +27 -0
- package/dist/core/messages/ja/analysts/detector-react-messages.js +8 -0
- package/dist/core/messages/ja/analysts/detector-shell-messages.js +17 -0
- package/dist/core/messages/ja/analysts/detector-tailwind-messages.js +3 -3
- package/dist/core/messages/ja/core/plugin-messages.js +31 -3
- package/dist/core/messages/ja/log/log.js +4 -4
- package/dist/core/messages/ja/ui/filter-config.js +1 -1
- package/dist/core/messages/pt/analysts/analyst-github-actions-messages.js +1 -1
- package/dist/core/messages/pt/analysts/analyst-patterns-usage-messages.js +1 -0
- package/dist/core/messages/pt/analysts/analyst-shell-messages.js +15 -0
- package/dist/core/messages/pt/analysts/detector-constructions-syntactic-messages.js +6 -0
- package/dist/core/messages/pt/analysts/detector-js-ts-messages.js +27 -0
- package/dist/core/messages/pt/analysts/detector-react-messages.js +8 -0
- package/dist/core/messages/pt/analysts/detector-shell-messages.js +17 -0
- package/dist/core/messages/pt/analysts/detector-tailwind-messages.js +3 -3
- package/dist/core/messages/pt/core/plugin-messages.js +31 -3
- package/dist/core/messages/pt/log/log-engine.js +6 -6
- package/dist/core/messages/pt/log/log.js +3 -3
- package/dist/core/messages/pt/ui/filter-config.js +1 -1
- package/dist/core/messages/shared/icons.js +3 -3
- package/dist/core/messages/zh/analysts/analyst-github-actions-messages.js +1 -1
- package/dist/core/messages/zh/analysts/analyst-patterns-usage-messages.js +1 -0
- package/dist/core/messages/zh/analysts/analyst-shell-messages.js +15 -0
- package/dist/core/messages/zh/analysts/detector-constructions-syntactic-messages.js +6 -0
- package/dist/core/messages/zh/analysts/detector-js-ts-messages.js +27 -0
- package/dist/core/messages/zh/analysts/detector-react-messages.js +8 -0
- package/dist/core/messages/zh/analysts/detector-shell-messages.js +17 -0
- package/dist/core/messages/zh/analysts/detector-tailwind-messages.js +3 -3
- package/dist/core/messages/zh/core/plugin-messages.js +31 -3
- package/dist/core/messages/zh/log/log.js +3 -3
- package/dist/core/messages/zh/ui/filter-config.js +1 -5
- package/dist/core/parsing/filters.js +3 -3
- package/dist/core/parsing/langs/json.js +1 -1
- package/dist/core/parsing/langs/python.js +1 -1
- package/dist/core/parsing/langs/typescript.js +1 -1
- package/dist/core/parsing/parser.js +2 -2
- package/dist/core/registry/file-registry.js +3 -2
- package/dist/core/registry/paths.js +3 -3
- package/dist/core/reporting/default-reporter.js +2 -2
- package/dist/core/schema/version.js +6 -6
- package/dist/core/workers/worker-executor.js +3 -3
- package/dist/core/workers/worker-pool.js +0 -0
- package/dist/guardian/baseline.js +1 -1
- package/dist/guardian/gpg.js +3 -1
- package/dist/guardian/integrity.js +2 -7
- package/dist/guardian/records.js +6 -1
- package/dist/guardian/result.js +1 -1
- package/dist/guardian/sentinel.js +6 -1
- package/dist/guardian/watcher-hidden.js +5 -1
- package/dist/licenses/fs-utils.js +4 -1
- package/dist/licenses/generate-notices.js +1 -1
- package/dist/licenses/header-options.js +0 -1
- package/dist/licenses/index.js +1 -0
- package/dist/licenses/normalizer.js +10 -9
- package/dist/node.loader.js +224 -4
- package/dist/reports/analise-async-patterns.js +1 -1
- package/dist/reports/filter-smart.js +2 -5
- package/dist/reports/generator-report.js +4 -4
- package/dist/reports/report-archetypes.js +10 -10
- package/dist/reports/report-caretaker-health.js +2 -1
- package/dist/sdk/analyzer.js +1 -1
- package/dist/shared/data-processing/fragment-report.js +10 -10
- package/dist/shared/data-processing/json.js +1 -1
- package/dist/shared/data-processing/occurrences.js +3 -2
- package/dist/shared/formatters/code-min-formatter.js +1 -1
- package/dist/shared/formatters/engines/prettier.js +1 -1
- package/dist/shared/formatters/engines/stylelint.js +6 -9
- package/dist/shared/formatters/formatter.js +8 -8
- package/dist/shared/formatters/formatters/code.js +3 -3
- package/dist/shared/formatters/formatters/css.js +2 -10
- package/dist/shared/formatters/formatters/dotfiles.js +1 -1
- package/dist/shared/formatters/formatters/html.js +1 -5
- package/dist/shared/formatters/formatters/json.js +0 -3
- package/dist/shared/formatters/formatters/markdown.js +18 -23
- package/dist/shared/formatters/formatters/properties.js +2 -2
- package/dist/shared/formatters/formatters/shell.js +1 -4
- package/dist/shared/formatters/formatters/sql.js +0 -3
- package/dist/shared/formatters/formatters/xml.js +5 -7
- package/dist/shared/formatters/formatters/yaml.js +2 -7
- package/dist/shared/formatters/index.js +1 -1
- package/dist/shared/helpers/framework-detector.js +1 -1
- package/dist/shared/helpers/json.js +1 -1
- package/dist/shared/helpers/magic-constants-whitelist.js +1 -1
- package/dist/shared/helpers/masking.js +17 -17
- package/dist/shared/helpers/reader-report.js +0 -12
- package/dist/shared/helpers/structural-hash.js +3 -2
- package/dist/shared/helpers/structure.js +1 -1
- package/dist/shared/marketplace/registry.js +1 -1
- package/dist/shared/marketplace/remote.js +4 -4
- package/dist/shared/persistence/persistence.js +0 -1
- package/dist/shared/plugins/core-plugin.js +3 -1
- package/dist/shared/plugins/registry.js +3 -2
- package/dist/types/caretakers/imports-barrel.js +1 -0
- package/dist/types/caretakers/index.js +4 -0
- package/dist/types/caretakers/map-reversion.js +1 -0
- package/dist/types/caretakers/pruning.js +1 -0
- package/dist/types/caretakers/scoring.js +1 -0
- package/dist/types/common/analysts.js +1 -1
- package/dist/types/core/config/filters.js +1 -0
- package/dist/types/core/config/index.js +2 -0
- package/dist/types/core/execution/ambiente.js +1 -0
- package/dist/types/core/execution/linguagens.js +1 -0
- package/dist/types/core/execution/parse-errors.js +1 -0
- package/dist/types/core/execution/results.js +1 -0
- package/dist/types/core/execution/structure-json.js +1 -0
- package/dist/types/core/index.js +1 -0
- package/dist/types/core/messages/index.js +1 -0
- package/dist/types/core/messages/log.js +1 -0
- package/dist/types/core/parsing/babel-narrow.js +1 -0
- package/dist/types/core/parsing/index.js +1 -0
- package/dist/types/core/runtime.js +1 -0
- package/dist/types/guardian/index.js +2 -0
- package/dist/types/guardian/integrity.js +7 -0
- package/dist/types/guardian/snapshot.js +1 -0
- package/dist/types/index.js +4 -4
- package/dist/types/licenses/index.js +2 -0
- package/dist/types/processing/display.js +16 -13
- package/dist/types/processing/filters.js +3 -7
- package/dist/types/reports/compliance.js +1 -0
- package/dist/types/reports/streaming.js +1 -0
- package/dist/types/scripts/index.js +1 -0
- package/dist/types/scripts/migrar-aliases.js +1 -0
- package/dist/types/sdk/index.js +1 -0
- package/dist/types/shared/index.js +2 -0
- package/dist/types/vulnerabilities/index.js +2 -0
- package/dist/vulnerabilities/npm-audit.js +0 -1
- package/dist/vulnerabilities/scanner.js +2 -1
- package/dist/vulnerabilities/vulnerabilities.js +0 -1
- package/package.json +11 -12
package/dist/node.loader.js
CHANGED
|
@@ -8,15 +8,235 @@ import { existsSync } from 'node:fs';
|
|
|
8
8
|
import { join, resolve as resolvePath } from 'node:path';
|
|
9
9
|
import { pathToFileURL } from 'node:url';
|
|
10
10
|
// Mapeamento de aliases baseado no tsconfig.json
|
|
11
|
-
const aliases = {
|
|
12
|
-
|
|
11
|
+
const aliases = {
|
|
12
|
+
"@": "./src/types/index",
|
|
13
|
+
"@analysts/architects": "./src/analysts/architects/index",
|
|
14
|
+
"@analysts/azure-pipelines": "./src/analysts/azure-pipelines/index",
|
|
15
|
+
"@analysts/azure-pipelines/analysts": "./src/analysts/azure-pipelines/analysts/index",
|
|
16
|
+
"@analysts/azure-pipelines/corrections": "./src/analysts/azure-pipelines/corrections/index",
|
|
17
|
+
"@analysts/azure-pipelines/detectors": "./src/analysts/azure-pipelines/detectors/index",
|
|
18
|
+
"@analysts/azure-pipelines/reports": "./src/analysts/azure-pipelines/reports/index",
|
|
19
|
+
"@analysts/azure-pipelines/scorers": "./src/analysts/azure-pipelines/scorers/index",
|
|
20
|
+
"@analysts/circleci": "./src/analysts/circleci/index",
|
|
21
|
+
"@analysts/circleci/analysts": "./src/analysts/circleci/analysts/index",
|
|
22
|
+
"@analysts/circleci/corrections": "./src/analysts/circleci/corrections/index",
|
|
23
|
+
"@analysts/circleci/detectors": "./src/analysts/circleci/detectors/index",
|
|
24
|
+
"@analysts/circleci/reports": "./src/analysts/circleci/reports/index",
|
|
25
|
+
"@analysts/circleci/scorers": "./src/analysts/circleci/scorers/index",
|
|
26
|
+
"@analysts/converters": "./src/analysts/converters/index",
|
|
27
|
+
"@analysts/converters/engines": "./src/analysts/converters/engines/index",
|
|
28
|
+
"@analysts/corrections": "./src/analysts/corrections/index",
|
|
29
|
+
"@analysts/corrections/quick-fixes": "./src/analysts/corrections/quick-fixes/index",
|
|
30
|
+
"@analysts/corrections/type-safety": "./src/analysts/corrections/type-safety/index",
|
|
31
|
+
"@analysts/css": "./src/analysts/css/index",
|
|
32
|
+
"@analysts/css-in-js": "./src/analysts/css-in-js/index",
|
|
33
|
+
"@analysts/css-in-js/analysts": "./src/analysts/css-in-js/analysts/index",
|
|
34
|
+
"@analysts/css-in-js/corrections": "./src/analysts/css-in-js/corrections/index",
|
|
35
|
+
"@analysts/css-in-js/detectors": "./src/analysts/css-in-js/detectors/index",
|
|
36
|
+
"@analysts/css-in-js/plugins": "./src/analysts/css-in-js/plugins/index",
|
|
37
|
+
"@analysts/css-in-js/scorers": "./src/analysts/css-in-js/scorers/index",
|
|
38
|
+
"@analysts/css/analysts": "./src/analysts/css/analysts/index",
|
|
39
|
+
"@analysts/css/corrections": "./src/analysts/css/corrections/index",
|
|
40
|
+
"@analysts/css/detectors": "./src/analysts/css/detectors/index",
|
|
41
|
+
"@analysts/css/plugins": "./src/analysts/css/plugins/index",
|
|
42
|
+
"@analysts/css/scorers": "./src/analysts/css/scorers/index",
|
|
43
|
+
"@analysts/detectors": "./src/analysts/detectors/index",
|
|
44
|
+
"@analysts/github-actions": "./src/analysts/github-actions/index",
|
|
45
|
+
"@analysts/github-actions/analysts": "./src/analysts/github-actions/analysts/index",
|
|
46
|
+
"@analysts/github-actions/corrections": "./src/analysts/github-actions/corrections/index",
|
|
47
|
+
"@analysts/github-actions/detectors": "./src/analysts/github-actions/detectors/index",
|
|
48
|
+
"@analysts/github-actions/reports": "./src/analysts/github-actions/reports/index",
|
|
49
|
+
"@analysts/github-actions/scorers": "./src/analysts/github-actions/scorers/index",
|
|
50
|
+
"@analysts/gitlab-ci": "./src/analysts/gitlab-ci/index",
|
|
51
|
+
"@analysts/gitlab-ci/analysts": "./src/analysts/gitlab-ci/analysts/index",
|
|
52
|
+
"@analysts/gitlab-ci/corrections": "./src/analysts/gitlab-ci/corrections/index",
|
|
53
|
+
"@analysts/gitlab-ci/detectors": "./src/analysts/gitlab-ci/detectors/index",
|
|
54
|
+
"@analysts/gitlab-ci/reports": "./src/analysts/gitlab-ci/reports/index",
|
|
55
|
+
"@analysts/gitlab-ci/scorers": "./src/analysts/gitlab-ci/scorers/index",
|
|
56
|
+
"@analysts/go": "./src/analysts/go/index",
|
|
57
|
+
"@analysts/go/analysts": "./src/analysts/go/analysts/index",
|
|
58
|
+
"@analysts/go/detectors": "./src/analysts/go/detectors/index",
|
|
59
|
+
"@analysts/html": "./src/analysts/html/index",
|
|
60
|
+
"@analysts/html/analysts": "./src/analysts/html/analysts/index",
|
|
61
|
+
"@analysts/html/corrections": "./src/analysts/html/corrections/index",
|
|
62
|
+
"@analysts/html/detectors": "./src/analysts/html/detectors/index",
|
|
63
|
+
"@analysts/html/scorers": "./src/analysts/html/scorers/index",
|
|
64
|
+
"@analysts/jenkins": "./src/analysts/jenkins/index",
|
|
65
|
+
"@analysts/jenkins/analysts": "./src/analysts/jenkins/analysts/index",
|
|
66
|
+
"@analysts/jenkins/corrections": "./src/analysts/jenkins/corrections/index",
|
|
67
|
+
"@analysts/jenkins/detectors": "./src/analysts/jenkins/detectors/index",
|
|
68
|
+
"@analysts/jenkins/reports": "./src/analysts/jenkins/reports/index",
|
|
69
|
+
"@analysts/jenkins/scorers": "./src/analysts/jenkins/scorers/index",
|
|
70
|
+
"@analysts/js-ts": "./src/analysts/js-ts/index",
|
|
71
|
+
"@analysts/js-ts/analysts": "./src/analysts/js-ts/analysts/index",
|
|
72
|
+
"@analysts/js-ts/detectors": "./src/analysts/js-ts/detectors/index",
|
|
73
|
+
"@analysts/php": "./src/analysts/php/index",
|
|
74
|
+
"@analysts/php/analysts": "./src/analysts/php/analysts/index",
|
|
75
|
+
"@analysts/php/detectors": "./src/analysts/php/detectors/index",
|
|
76
|
+
"@analysts/plugins": "./src/analysts/plugins/index",
|
|
77
|
+
"@analysts/python": "./src/analysts/python/index",
|
|
78
|
+
"@analysts/python/analysts": "./src/analysts/python/analysts/index",
|
|
79
|
+
"@analysts/python/corrections": "./src/analysts/python/corrections/index",
|
|
80
|
+
"@analysts/python/detectors": "./src/analysts/python/detectors/index",
|
|
81
|
+
"@analysts/python/scorers": "./src/analysts/python/scorers/index",
|
|
82
|
+
"@analysts/react": "./src/analysts/react/index",
|
|
83
|
+
"@analysts/react/analysts": "./src/analysts/react/analysts/index",
|
|
84
|
+
"@analysts/react/corrections": "./src/analysts/react/corrections/index",
|
|
85
|
+
"@analysts/react/detectors": "./src/analysts/react/detectors/index",
|
|
86
|
+
"@analysts/react/scorers": "./src/analysts/react/scorers/index",
|
|
87
|
+
"@analysts/registry": "./src/analysts/registry/index",
|
|
88
|
+
"@analysts/rust": "./src/analysts/rust/index",
|
|
89
|
+
"@analysts/rust/analysts": "./src/analysts/rust/analysts/index",
|
|
90
|
+
"@analysts/rust/detectors": "./src/analysts/rust/detectors/index",
|
|
91
|
+
"@analysts/scorers": "./src/analysts/scorers/index",
|
|
92
|
+
"@analysts/shell": "./src/analysts/shell/index",
|
|
93
|
+
"@analysts/shell/analysts": "./src/analysts/shell/analysts/index",
|
|
94
|
+
"@analysts/shell/corrections": "./src/analysts/shell/corrections/index",
|
|
95
|
+
"@analysts/shell/detectors": "./src/analysts/shell/detectors/index",
|
|
96
|
+
"@analysts/shell/scorers": "./src/analysts/shell/scorers/index",
|
|
97
|
+
"@analysts/sql": "./src/analysts/sql/index",
|
|
98
|
+
"@analysts/sql/analysts": "./src/analysts/sql/analysts/index",
|
|
99
|
+
"@analysts/sql/corrections": "./src/analysts/sql/corrections/index",
|
|
100
|
+
"@analysts/sql/detectors": "./src/analysts/sql/detectors/index",
|
|
101
|
+
"@analysts/sql/scorers": "./src/analysts/sql/scorers/index",
|
|
102
|
+
"@analysts/strategists": "./src/analysts/strategists/index",
|
|
103
|
+
"@analysts/svg": "./src/analysts/svg/index",
|
|
104
|
+
"@analysts/svg/analysts": "./src/analysts/svg/analysts/index",
|
|
105
|
+
"@analysts/svg/corrections": "./src/analysts/svg/corrections/index",
|
|
106
|
+
"@analysts/svg/detectors": "./src/analysts/svg/detectors/index",
|
|
107
|
+
"@analysts/svg/scorers": "./src/analysts/svg/scorers/index",
|
|
108
|
+
"@analysts/tailwind": "./src/analysts/tailwind/index",
|
|
109
|
+
"@analysts/tailwind/analysts": "./src/analysts/tailwind/analysts/index",
|
|
110
|
+
"@analysts/tailwind/corrections": "./src/analysts/tailwind/corrections/index",
|
|
111
|
+
"@analysts/tailwind/detectors": "./src/analysts/tailwind/detectors/index",
|
|
112
|
+
"@analysts/tailwind/plugins": "./src/analysts/tailwind/plugins/index",
|
|
113
|
+
"@analysts/tailwind/scorers": "./src/analysts/tailwind/scorers/index",
|
|
114
|
+
"@analysts/xml": "./src/analysts/xml/index",
|
|
115
|
+
"@analysts/xml/analysts": "./src/analysts/xml/analysts/index",
|
|
116
|
+
"@analysts/xml/corrections": "./src/analysts/xml/corrections/index",
|
|
117
|
+
"@analysts/xml/detectors": "./src/analysts/xml/detectors/index",
|
|
118
|
+
"@analysts/xml/scorers": "./src/analysts/xml/scorers/index",
|
|
119
|
+
"@app": "./src/app/index",
|
|
120
|
+
"@app/github": "./src/app/github",
|
|
121
|
+
"@caretakers": "./src/caretakers/index",
|
|
122
|
+
"@cli": "./src/cli/index",
|
|
123
|
+
"@cli/commands": "./src/cli/commands/index",
|
|
124
|
+
"@cli/diagnostic": "./src/cli/diagnostic/index",
|
|
125
|
+
"@cli/diagnostic/exporters": "./src/cli/diagnostic/exporters/index",
|
|
126
|
+
"@cli/diagnostic/handlers": "./src/cli/diagnostic/handlers/index",
|
|
127
|
+
"@cli/handlers": "./src/cli/handlers/index",
|
|
128
|
+
"@cli/helpers": "./src/cli/helpers/index",
|
|
129
|
+
"@cli/options": "./src/cli/options/index",
|
|
130
|
+
"@core": "./src/core/index",
|
|
131
|
+
"@core/config": "./src/core/config/index",
|
|
132
|
+
"@core/config/auto": "./src/core/config/auto/index",
|
|
133
|
+
"@core/corrections": "./src/core/corrections/index",
|
|
134
|
+
"@core/execution": "./src/core/execution/index",
|
|
135
|
+
"@core/formatters": "./src/core/formatters/index",
|
|
136
|
+
"@core/messages": "./src/core/messages/index",
|
|
137
|
+
"@core/messages/en": "./src/core/messages/en/index",
|
|
138
|
+
"@core/messages/en/analysts": "./src/core/messages/en/analysts/index",
|
|
139
|
+
"@core/messages/en/caretakers": "./src/core/messages/en/caretakers/index",
|
|
140
|
+
"@core/messages/en/cli": "./src/core/messages/en/cli/index",
|
|
141
|
+
"@core/messages/en/core": "./src/core/messages/en/core/index",
|
|
142
|
+
"@core/messages/en/github": "./src/core/messages/en/github/index",
|
|
143
|
+
"@core/messages/en/guardian": "./src/core/messages/en/guardian/index",
|
|
144
|
+
"@core/messages/en/licenses": "./src/core/messages/en/licenses/index",
|
|
145
|
+
"@core/messages/en/log": "./src/core/messages/en/log/index",
|
|
146
|
+
"@core/messages/en/reports": "./src/core/messages/en/reports/index",
|
|
147
|
+
"@core/messages/en/shared": "./src/core/messages/en/shared/index",
|
|
148
|
+
"@core/messages/en/ui": "./src/core/messages/en/ui/index",
|
|
149
|
+
"@core/messages/ja": "./src/core/messages/ja/index",
|
|
150
|
+
"@core/messages/ja/analysts": "./src/core/messages/ja/analysts/index",
|
|
151
|
+
"@core/messages/ja/caretakers": "./src/core/messages/ja/caretakers/index",
|
|
152
|
+
"@core/messages/ja/cli": "./src/core/messages/ja/cli/index",
|
|
153
|
+
"@core/messages/ja/core": "./src/core/messages/ja/core/index",
|
|
154
|
+
"@core/messages/ja/github": "./src/core/messages/ja/github/index",
|
|
155
|
+
"@core/messages/ja/guardian": "./src/core/messages/ja/guardian/index",
|
|
156
|
+
"@core/messages/ja/licenses": "./src/core/messages/ja/licenses/index",
|
|
157
|
+
"@core/messages/ja/log": "./src/core/messages/ja/log/index",
|
|
158
|
+
"@core/messages/ja/reports": "./src/core/messages/ja/reports/index",
|
|
159
|
+
"@core/messages/ja/shared": "./src/core/messages/ja/shared/index",
|
|
160
|
+
"@core/messages/ja/ui": "./src/core/messages/ja/ui/index",
|
|
161
|
+
"@core/messages/pt": "./src/core/messages/pt/index",
|
|
162
|
+
"@core/messages/pt/analysts": "./src/core/messages/pt/analysts/index",
|
|
163
|
+
"@core/messages/pt/caretakers": "./src/core/messages/pt/caretakers/index",
|
|
164
|
+
"@core/messages/pt/cli": "./src/core/messages/pt/cli/index",
|
|
165
|
+
"@core/messages/pt/core": "./src/core/messages/pt/core/index",
|
|
166
|
+
"@core/messages/pt/github": "./src/core/messages/pt/github/index",
|
|
167
|
+
"@core/messages/pt/guardian": "./src/core/messages/pt/guardian/index",
|
|
168
|
+
"@core/messages/pt/licenses": "./src/core/messages/pt/licenses/index",
|
|
169
|
+
"@core/messages/pt/log": "./src/core/messages/pt/log/index",
|
|
170
|
+
"@core/messages/pt/reports": "./src/core/messages/pt/reports/index",
|
|
171
|
+
"@core/messages/pt/shared": "./src/core/messages/pt/shared/index",
|
|
172
|
+
"@core/messages/pt/ui": "./src/core/messages/pt/ui/index",
|
|
173
|
+
"@core/messages/shared": "./src/core/messages/shared/index",
|
|
174
|
+
"@core/messages/zh": "./src/core/messages/zh/index",
|
|
175
|
+
"@core/messages/zh/analysts": "./src/core/messages/zh/analysts/index",
|
|
176
|
+
"@core/messages/zh/caretakers": "./src/core/messages/zh/caretakers/index",
|
|
177
|
+
"@core/messages/zh/cli": "./src/core/messages/zh/cli/index",
|
|
178
|
+
"@core/messages/zh/core": "./src/core/messages/zh/core/index",
|
|
179
|
+
"@core/messages/zh/github": "./src/core/messages/zh/github/index",
|
|
180
|
+
"@core/messages/zh/guardian": "./src/core/messages/zh/guardian/index",
|
|
181
|
+
"@core/messages/zh/licenses": "./src/core/messages/zh/licenses/index",
|
|
182
|
+
"@core/messages/zh/log": "./src/core/messages/zh/log/index",
|
|
183
|
+
"@core/messages/zh/reports": "./src/core/messages/zh/reports/index",
|
|
184
|
+
"@core/messages/zh/shared": "./src/core/messages/zh/shared/index",
|
|
185
|
+
"@core/messages/zh/ui": "./src/core/messages/zh/ui/index",
|
|
186
|
+
"@core/parsing": "./src/core/parsing/index",
|
|
187
|
+
"@core/parsing/langs": "./src/core/parsing/langs/index",
|
|
188
|
+
"@core/registry": "./src/core/registry/index",
|
|
189
|
+
"@core/reporting": "./src/core/reporting/index",
|
|
190
|
+
"@core/runtime": "./src/core/runtime/index",
|
|
191
|
+
"@core/schema": "./src/core/schema/index",
|
|
192
|
+
"@core/utils": "./src/core/utils/index",
|
|
193
|
+
"@core/workers": "./src/core/workers/index",
|
|
194
|
+
"@guardian": "./src/guardian/index",
|
|
195
|
+
"@licenses": "./src/licenses/index",
|
|
196
|
+
"@reports": "./src/reports/index",
|
|
197
|
+
"@reports/compliance": "./src/reports/compliance/index",
|
|
198
|
+
"@scripts": "./src/scripts/index",
|
|
199
|
+
"@sdk": "./src/sdk/index",
|
|
200
|
+
"@shared": "./src/shared/index",
|
|
201
|
+
"@shared/data-processing": "./src/shared/data-processing/index",
|
|
202
|
+
"@shared/formatters": "./src/shared/formatters/index",
|
|
203
|
+
"@shared/formatters/core": "./src/shared/formatters/core/index",
|
|
204
|
+
"@shared/formatters/engines": "./src/shared/formatters/engines/index",
|
|
205
|
+
"@shared/formatters/formatters": "./src/shared/formatters/formatters/index",
|
|
206
|
+
"@shared/helpers": "./src/shared/helpers/index",
|
|
207
|
+
"@shared/marketplace": "./src/shared/marketplace/index",
|
|
208
|
+
"@shared/persistence": "./src/shared/persistence/index",
|
|
209
|
+
"@shared/plugins": "./src/shared/plugins/index",
|
|
210
|
+
"@shared/validation": "./src/shared/validation/index",
|
|
211
|
+
"@types": "./src/types/index",
|
|
212
|
+
"@types/analysts": "./src/types/analysts/index",
|
|
213
|
+
"@types/analysts/corrections": "./src/types/analysts/corrections/index",
|
|
214
|
+
"@types/caretakers": "./src/types/caretakers/index",
|
|
215
|
+
"@types/common": "./src/types/common/index",
|
|
216
|
+
"@types/core": "./src/types/core/index",
|
|
217
|
+
"@types/core/config": "./src/types/core/config/index",
|
|
218
|
+
"@types/core/execution": "./src/types/core/execution/index",
|
|
219
|
+
"@types/core/messages": "./src/types/core/messages/index",
|
|
220
|
+
"@types/core/parsing": "./src/types/core/parsing/index",
|
|
221
|
+
"@types/guardian": "./src/types/guardian/index",
|
|
222
|
+
"@types/licenses": "./src/types/licenses/index",
|
|
223
|
+
"@types/processing": "./src/types/processing/index",
|
|
224
|
+
"@types/project": "./src/types/project/index",
|
|
225
|
+
"@types/scripts": "./src/types/scripts/index",
|
|
226
|
+
"@types/sdk": "./src/types/sdk/index",
|
|
227
|
+
"@types/shared": "./src/types/shared/index",
|
|
228
|
+
"@types/structure": "./src/types/structure/index",
|
|
229
|
+
"@types/vulnerabilities": "./src/types/vulnerabilities/index",
|
|
230
|
+
"@vulnerabilities": "./src/vulnerabilities/index",
|
|
231
|
+
};
|
|
232
|
+
export function resolve(specifier, context, nextResolve) {
|
|
13
233
|
// Se não é um alias, passa para o próximo resolver
|
|
14
234
|
if (!specifier.startsWith('@')) {
|
|
15
235
|
return nextResolve(specifier, context);
|
|
16
236
|
}
|
|
17
237
|
// Procura pelo alias correspondente (ordena por tamanho decrescente para priorizar match mais específico)
|
|
18
238
|
let resolved = null;
|
|
19
|
-
const sortedAliases = Object.entries(aliases).sort((
|
|
239
|
+
const sortedAliases = Object.entries(aliases).sort((a, b) => b[0].length - a[0].length);
|
|
20
240
|
for (const [prefix, replacement] of sortedAliases) {
|
|
21
241
|
const isExactMatch = specifier === prefix;
|
|
22
242
|
const isPrefixMatch = prefix.endsWith('/') && specifier.startsWith(prefix);
|
|
@@ -60,7 +280,7 @@ export async function resolve(specifier, context, nextResolve) {
|
|
|
60
280
|
if (!existsSync(fullPath)) {
|
|
61
281
|
let found = false;
|
|
62
282
|
// Se já tem uma das extensões, tenta removê-la e testar as outras
|
|
63
|
-
const currentExt = extensions
|
|
283
|
+
const currentExt = extensions?.find(ext => fullPath.endsWith(ext));
|
|
64
284
|
const pathSemExt = currentExt ? fullPath.slice(0, -currentExt.length) : fullPath;
|
|
65
285
|
for (const ext of extensions) {
|
|
66
286
|
const testPath = pathSemExt + ext;
|
|
@@ -85,7 +85,7 @@ export function analisarAsyncPatterns(ocorrencias, options = {}) {
|
|
|
85
85
|
const arquivosOrdenados = Array.from(porArquivo.entries()).map(([arquivo, info]) => ({
|
|
86
86
|
arquivo,
|
|
87
87
|
total: info.total,
|
|
88
|
-
nivel:
|
|
88
|
+
nivel: info.nivel
|
|
89
89
|
})).sort((arquivo, base) => base.total - arquivo.total);
|
|
90
90
|
// Top arquivos
|
|
91
91
|
log.info(RelatorioAsyncPatternsMensagens.topArquivos.replace('{total}', String(Math.min(topN, arquivosOrdenados.length))));
|
|
@@ -130,10 +130,7 @@ function agruparOcorrencias(ocorrencias) {
|
|
|
130
130
|
function converterGruposEmProblemas(gruposPorTipo, gruposPorMensagem) {
|
|
131
131
|
const problemasAgrupados = [];
|
|
132
132
|
for (const [tipo, ocorrenciasTipo] of gruposPorTipo) {
|
|
133
|
-
const config = PRIORIDADES[tipo]
|
|
134
|
-
prioridade: 'baixa',
|
|
135
|
-
icone: '??'
|
|
136
|
-
};
|
|
133
|
+
const config = PRIORIDADES[tipo];
|
|
137
134
|
const jaAgrupado = Array.from(gruposPorMensagem.keys()).some(categoria => {
|
|
138
135
|
const ocorrenciasGrupo = gruposPorMensagem.get(categoria) ?? [];
|
|
139
136
|
return ocorrenciasGrupo.some(ocorrencia => ocorrencia.tipo === tipo);
|
|
@@ -205,7 +202,7 @@ function gerarResumoOcorrencias(ocorrencias) {
|
|
|
205
202
|
for (const nivel of ocorrencias.map(ocorrencia => ocorrencia.nivel).filter((nivel) => Boolean(nivel))) {
|
|
206
203
|
niveisFrequentes[nivel] = (niveisFrequentes[nivel] || 0) + 1;
|
|
207
204
|
}
|
|
208
|
-
const nivelMaisFrequente = Object.entries(niveisFrequentes).sort(([, arquivo], [, base]) =>
|
|
205
|
+
const nivelMaisFrequente = Object.entries(niveisFrequentes).sort(([, arquivo], [, base]) => base - arquivo)[0]?.[0];
|
|
209
206
|
let resumo = `${ocorrencias.length} ocorrências`;
|
|
210
207
|
if (arquivos.size > 1) {
|
|
211
208
|
resumo += ` em ${arquivos.size} arquivos`;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { getMessages } from '../core/messages/index.js';
|
|
4
4
|
export async function gerarRelatorioMarkdown(resultado, outputCaminho, modoBrief = false, options) {
|
|
5
5
|
const { gerarHeaderRelatorio, gerarSecaoGuardian, gerarTabelaOcorrencias, gerarTabelaResumoTipos, RelatorioMensagens } = getMessages();
|
|
6
|
-
const { totalArquivos, ocorrencias, guardian, timestamp, duracaoMs } =
|
|
6
|
+
const { totalArquivos, ocorrencias, guardian, timestamp, duracaoMs } = resultado;
|
|
7
7
|
const dataISO = new Date(timestamp).toISOString();
|
|
8
8
|
// Se modo brief, usar filtro inteligente
|
|
9
9
|
if (modoBrief) {
|
|
@@ -13,8 +13,8 @@ export async function gerarRelatorioMarkdown(resultado, outputCaminho, modoBrief
|
|
|
13
13
|
return;
|
|
14
14
|
}
|
|
15
15
|
const ocorrenciasOrdenadas = [...ocorrencias].sort((arquivo, base) => {
|
|
16
|
-
const ra =
|
|
17
|
-
const rb =
|
|
16
|
+
const ra = arquivo.relPath;
|
|
17
|
+
const rb = base.relPath;
|
|
18
18
|
const cmp = ra.localeCompare(rb);
|
|
19
19
|
if (cmp !== 0) {
|
|
20
20
|
return cmp;
|
|
@@ -81,5 +81,5 @@ export async function gerarRelatorioJson(resultado, outputCaminho) {
|
|
|
81
81
|
// Criar relatório versionado (mantemos metadados, mas salvamos os dados brutos para compatibilidade)
|
|
82
82
|
const relatorioVersionado = criarRelatorioComVersao(resultado, undefined, 'Relatório completo de diagnóstico do Mahoraga');
|
|
83
83
|
const { salvarEstado } = await import('../shared/persistence/index.js');
|
|
84
|
-
await salvarEstado(outputCaminho, relatorioVersionado.dados
|
|
84
|
+
await salvarEstado(outputCaminho, relatorioVersionado.dados);
|
|
85
85
|
}
|
|
@@ -16,9 +16,9 @@ export async function exportarRelatorioArquetiposMarkdown(destino, candidatos, c
|
|
|
16
16
|
for (const elem of candidatos) {
|
|
17
17
|
if (!detalhado) {
|
|
18
18
|
// Relatório compacto
|
|
19
|
-
const missing = elem.missingRequired.slice(0, 3)
|
|
20
|
-
const forbidden = elem.forbiddenPresent.slice(0, 3)
|
|
21
|
-
const dependFalt = elem.dependencyMatches.length === 0
|
|
19
|
+
const missing = elem.missingRequired.slice(0, 3);
|
|
20
|
+
const forbidden = elem.forbiddenPresent.slice(0, 3);
|
|
21
|
+
const dependFalt = elem.dependencyMatches.length === 0 ? elem.dependencyMatches : [];
|
|
22
22
|
let resumo = '';
|
|
23
23
|
if (missing.length) {
|
|
24
24
|
resumo += `Faltam pastas: ${missing.join(', ')}. `;
|
|
@@ -73,8 +73,8 @@ async function escreverSecaoDetalhadaArquetipo(linhas, elem) {
|
|
|
73
73
|
linhas.push('Sugestão de comandos:');
|
|
74
74
|
elem.missingRequired.forEach(caminho => linhas.push(` mkdir ${caminho}`));
|
|
75
75
|
}
|
|
76
|
-
if (
|
|
77
|
-
const ausentes = elem.dependencyMatches.length === 0
|
|
76
|
+
if (Array.isArray(elem.dependencyMatches)) {
|
|
77
|
+
const ausentes = elem.dependencyMatches.length === 0 ? elem.dependencyMatches : [];
|
|
78
78
|
if (ausentes.length) {
|
|
79
79
|
linhas.push('Sugestão de comandos para dependências:');
|
|
80
80
|
ausentes.forEach(dep => linhas.push(` npm install ${dep}`));
|
|
@@ -122,7 +122,7 @@ async function analisarDependenciasPackageJson(linhas) {
|
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
124
124
|
const pkg = JSON.parse(raw);
|
|
125
|
-
if (
|
|
125
|
+
if (typeof pkg !== 'object' || !pkg.dependencies) {
|
|
126
126
|
return;
|
|
127
127
|
}
|
|
128
128
|
const deps = pkg.dependencies;
|
|
@@ -167,9 +167,9 @@ export async function exportarRelatorioArquetiposJson(destino, candidatos, conte
|
|
|
167
167
|
candidatos: candidatos.map(elem => {
|
|
168
168
|
if (!detalhado) {
|
|
169
169
|
// Compacto
|
|
170
|
-
const missing = elem.missingRequired.slice(0, 3)
|
|
171
|
-
const forbidden = elem.forbiddenPresent.slice(0, 3)
|
|
172
|
-
const dependFalt = elem.dependencyMatches.length === 0
|
|
170
|
+
const missing = elem.missingRequired.slice(0, 3);
|
|
171
|
+
const forbidden = elem.forbiddenPresent.slice(0, 3);
|
|
172
|
+
const dependFalt = elem.dependencyMatches.length === 0 ? elem.dependencyMatches : [];
|
|
173
173
|
let resumo = '';
|
|
174
174
|
if (missing.length) {
|
|
175
175
|
resumo += `Faltam pastas: ${missing.join(', ')}. `;
|
|
@@ -194,7 +194,7 @@ export async function exportarRelatorioArquetiposJson(destino, candidatos, conte
|
|
|
194
194
|
score: elem.score,
|
|
195
195
|
explicacao,
|
|
196
196
|
resumo,
|
|
197
|
-
matchedRequired: elem.matchedRequired.slice(0, 3)
|
|
197
|
+
matchedRequired: elem.matchedRequired.slice(0, 3),
|
|
198
198
|
missingRequired: missing,
|
|
199
199
|
forbiddenPresent: forbidden,
|
|
200
200
|
descricao: elem.descricao
|
|
@@ -108,7 +108,8 @@ function exibirTabelaSimples(totalOcorrencias, arquivosAfetados, maiorPorArquivo
|
|
|
108
108
|
log.info('');
|
|
109
109
|
}
|
|
110
110
|
function exibirModoVerboso(porArquivo) {
|
|
111
|
-
const
|
|
111
|
+
const logAny = log;
|
|
112
|
+
const logInfoRaw = (logAny.infoSemSanitizar ?? logAny.info).bind(log);
|
|
112
113
|
const titulo = chalk.bold(RelatorioMensagens.saude.secoes.funcoesLongas.titulo);
|
|
113
114
|
log.info(titulo);
|
|
114
115
|
const colLeft = 50;
|
package/dist/sdk/analyzer.js
CHANGED
|
@@ -81,7 +81,7 @@ export async function analyzeProject(projectDir, opts) {
|
|
|
81
81
|
const tecnicas = await carregarTecnicas();
|
|
82
82
|
const resultadoExecucao = await executarInquisicao(filteredEntries, tecnicas, projectDir, null, { verbose: false, compact: true, fast: opts?.fast });
|
|
83
83
|
return {
|
|
84
|
-
ocorrencias: resultadoExecucao.ocorrencias
|
|
84
|
+
ocorrencias: resultadoExecucao.ocorrencias,
|
|
85
85
|
totalArquivos: entries.length,
|
|
86
86
|
tempoMs: performance.now() - inicio,
|
|
87
87
|
};
|
|
@@ -11,14 +11,14 @@ function chunkArray(arr, size) {
|
|
|
11
11
|
return out;
|
|
12
12
|
}
|
|
13
13
|
export async function fragmentarRelatorio(relatorioFull, dir, ts, options) {
|
|
14
|
-
const maxOcorrencias = options?.maxOcorrenciasPerShard ?? config.REPORT_FRAGMENT_OCCURRENCES
|
|
15
|
-
const maxArquivoEntries = options?.maxFileEntriesPerShard ?? config.REPORT_FRAGMENT_FILEENTRIES
|
|
16
|
-
const topN = config.REPORT_FRAGMENT_SUMMARY_TOPN
|
|
14
|
+
const maxOcorrencias = options?.maxOcorrenciasPerShard ?? config.REPORT_FRAGMENT_OCCURRENCES;
|
|
15
|
+
const maxArquivoEntries = options?.maxFileEntriesPerShard ?? config.REPORT_FRAGMENT_FILEENTRIES;
|
|
16
|
+
const topN = config.REPORT_FRAGMENT_SUMMARY_TOPN;
|
|
17
17
|
// Normaliza a estrutura esperada
|
|
18
18
|
const rel = relatorioFull;
|
|
19
|
-
const resultado =
|
|
20
|
-
const ocorrencias =
|
|
21
|
-
const fileEntries =
|
|
19
|
+
const resultado = 'resultado' in rel ? rel.resultado : rel;
|
|
20
|
+
const ocorrencias = Array.isArray((resultado).ocorrencias) ? (resultado).ocorrencias : [];
|
|
21
|
+
const fileEntries = Array.isArray((resultado).fileEntries) ? (resultado).fileEntries : [];
|
|
22
22
|
const salvar = salvarEstado;
|
|
23
23
|
// Manifest que descreve as partes geradas
|
|
24
24
|
const manifest = {
|
|
@@ -67,9 +67,9 @@ export async function fragmentarRelatorio(relatorioFull, dir, ts, options) {
|
|
|
67
67
|
for (const ocorrencia of occPedacos[indice]) {
|
|
68
68
|
// Suporta formatos legados com 'type' e 'path' para compatibilidade
|
|
69
69
|
const oLegacy = ocorrencia;
|
|
70
|
-
const tipoOcorrencia = ocorrencia
|
|
70
|
+
const tipoOcorrencia = ocorrencia.tipo ?? oLegacy.type ?? 'desconhecido';
|
|
71
71
|
tiposContagem[tipoOcorrencia] = (tiposContagem[tipoOcorrencia] || 0) + 1;
|
|
72
|
-
const relp = ocorrencia
|
|
72
|
+
const relp = ocorrencia.relPath ?? oLegacy.path ?? 'desconhecido';
|
|
73
73
|
arquivosContagem[relp] = (arquivosContagem[relp] || 0) + 1;
|
|
74
74
|
}
|
|
75
75
|
const topTipos = Object.entries(tiposContagem).sort((arquivo, base) => base[1] - arquivo[1]).slice(0, topN).map(([chave, valor]) => ({
|
|
@@ -116,10 +116,10 @@ export async function fragmentarRelatorio(relatorioFull, dir, ts, options) {
|
|
|
116
116
|
for (const fe of fePedacos[indice]) {
|
|
117
117
|
// Suporta formato legado com 'path' para compatibilidade
|
|
118
118
|
const feLegacy = fe;
|
|
119
|
-
const rel = fe
|
|
119
|
+
const rel = fe.relPath ?? fe.fullCaminho ?? feLegacy.path ?? 'desconhecido';
|
|
120
120
|
let linhas = undefined;
|
|
121
121
|
try {
|
|
122
|
-
if (
|
|
122
|
+
if (typeof fe.content === 'string') {
|
|
123
123
|
linhas = fe.content.split(/\r?\n/).length;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -24,7 +24,7 @@ export function escapeNonAscii(string) {
|
|
|
24
24
|
let out = '';
|
|
25
25
|
for (const ch of string) {
|
|
26
26
|
const cp = ch.codePointAt(0);
|
|
27
|
-
if (cp === undefined || cp
|
|
27
|
+
if (cp === undefined || cp <= ASCII_MAX) {
|
|
28
28
|
out += ch;
|
|
29
29
|
}
|
|
30
30
|
else if (cp <= BMP_MAX) {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
export function dedupeOcorrencias(arr) {
|
|
12
12
|
const seen = new Map();
|
|
13
|
-
for (const ocorrencia of arr
|
|
13
|
+
for (const ocorrencia of arr) {
|
|
14
14
|
const key = `${ocorrencia.relPath ?? ''}|${String(ocorrencia.linha ?? '')}|${ocorrencia.tipo ?? ''}|${ocorrencia.mensagem ?? ''}`;
|
|
15
15
|
if (!seen.has(key)) {
|
|
16
16
|
seen.set(key, ocorrencia);
|
|
@@ -28,7 +28,8 @@ export function agruparAnalistas(analistas) {
|
|
|
28
28
|
}
|
|
29
29
|
const map = new Map();
|
|
30
30
|
for (const arquivo of analistas) {
|
|
31
|
-
const
|
|
31
|
+
const rawNome = arquivo['nome'];
|
|
32
|
+
const nome = typeof rawNome === 'string' ? rawNome : 'desconhecido';
|
|
32
33
|
const dur = Number(arquivo['duracaoMs'] ?? 0);
|
|
33
34
|
const occ = Number(arquivo['ocorrencias'] ?? 0);
|
|
34
35
|
const globalFlag = Boolean(arquivo['global'] ?? false);
|
|
@@ -10,7 +10,7 @@ export function formatarCodeMinimo(code, opts) {
|
|
|
10
10
|
const formatted = normalizarNewlinesFinais(removerEspacosFinaisPorLinha(normalized));
|
|
11
11
|
return {
|
|
12
12
|
ok: true,
|
|
13
|
-
parser: opts?.parser
|
|
13
|
+
parser: opts?.parser,
|
|
14
14
|
formatted,
|
|
15
15
|
changed: formatted !== normalizarNewlinesFinais(normalized),
|
|
16
16
|
};
|
|
@@ -18,7 +18,7 @@ async function carregarPrettierDoProjeto(baseDir) {
|
|
|
18
18
|
const tryImportPrettier = async (resolved) => {
|
|
19
19
|
try {
|
|
20
20
|
const mod = await import(resolved);
|
|
21
|
-
const candidate =
|
|
21
|
+
const candidate = typeof mod === 'object' && 'default' in mod ? mod.default : mod;
|
|
22
22
|
if (!candidate || !isPrettierApi(candidate)) {
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
@@ -135,7 +135,7 @@ export function lintCssLikeStylelint(opts) {
|
|
|
135
135
|
return node.prelude ? normalizeWhitespace(csstree.generate(node.prelude)) : '';
|
|
136
136
|
}
|
|
137
137
|
function checkAtImport(node) {
|
|
138
|
-
if (node.type !== 'Atrule' ||
|
|
138
|
+
if (node.type !== 'Atrule' || typeof node.name !== 'string' || node.name.toLowerCase() !== 'import') {
|
|
139
139
|
return;
|
|
140
140
|
}
|
|
141
141
|
const prelude = generateNodeText(node);
|
|
@@ -168,7 +168,7 @@ export function lintCssLikeStylelint(opts) {
|
|
|
168
168
|
if (node.type !== 'Atrule') {
|
|
169
169
|
return;
|
|
170
170
|
}
|
|
171
|
-
const name =
|
|
171
|
+
const name = typeof node.name === 'string' ? node.name.toLowerCase() : '';
|
|
172
172
|
const isKeyframes = name === 'keyframes' || name === '-webkit-keyframes' || name === '-moz-keyframes';
|
|
173
173
|
if (!isKeyframes) {
|
|
174
174
|
return;
|
|
@@ -192,7 +192,7 @@ export function lintCssLikeStylelint(opts) {
|
|
|
192
192
|
if (node.type !== 'Atrule' || !node.block) {
|
|
193
193
|
return;
|
|
194
194
|
}
|
|
195
|
-
const name =
|
|
195
|
+
const name = typeof node.name === 'string' ? node.name.toLowerCase() : '';
|
|
196
196
|
const prelude = generateNodeText(node);
|
|
197
197
|
atruleStack.push({ name, prelude });
|
|
198
198
|
}
|
|
@@ -278,7 +278,7 @@ export function lintCssLikeStylelint(opts) {
|
|
|
278
278
|
if (node.type !== 'Atrule' || !node.block) {
|
|
279
279
|
return;
|
|
280
280
|
}
|
|
281
|
-
const name =
|
|
281
|
+
const name = typeof node.name === 'string' ? node.name.toLowerCase() : '';
|
|
282
282
|
const prelude = generateNodeTextSimple(node.prelude);
|
|
283
283
|
atruleStackForDecl.push({ name, prelude });
|
|
284
284
|
}
|
|
@@ -289,7 +289,7 @@ export function lintCssLikeStylelint(opts) {
|
|
|
289
289
|
if (!node.block?.children) {
|
|
290
290
|
return;
|
|
291
291
|
}
|
|
292
|
-
const name = node.type === 'Atrule'
|
|
292
|
+
const name = node.type === 'Atrule' && typeof node.name === 'string' ? node.name.toLowerCase() : '';
|
|
293
293
|
const prelude = node.type === 'Atrule' ? generateNodeTextSimple(node.prelude) : '';
|
|
294
294
|
declStack.push({
|
|
295
295
|
nodeType: node.type,
|
|
@@ -327,14 +327,11 @@ export function lintCssLikeStylelint(opts) {
|
|
|
327
327
|
return;
|
|
328
328
|
}
|
|
329
329
|
const current = declStack[declStack.length - 1];
|
|
330
|
-
const prop =
|
|
330
|
+
const prop = node.property.toLowerCase();
|
|
331
331
|
const value = node.value ? normalizeWhitespace(csstree.generate(node.value)) : '';
|
|
332
332
|
const loc = node.loc?.start;
|
|
333
333
|
checkImportant(node, loc);
|
|
334
334
|
checkHttpUrl(value, loc);
|
|
335
|
-
if (!current) {
|
|
336
|
-
return;
|
|
337
|
-
}
|
|
338
335
|
const prev = current.seen.get(prop);
|
|
339
336
|
if (!prev) {
|
|
340
337
|
current.seen.set(prop, { value, line: loc?.line, column: loc?.column });
|
|
@@ -92,14 +92,14 @@ registerFormatter('.editorconfig', formatarEditorconfigMinimo);
|
|
|
92
92
|
registerFormatter('.npmrc', formatarNpmrcMinimo);
|
|
93
93
|
registerFormatter('.nvmrc', formatarNvmrcMinimo);
|
|
94
94
|
registerFormatter('.json5', formatarJson5Minimo);
|
|
95
|
-
registerFormatter('.ts', (code, relPath) => formatarTypeScriptMinimo(code, relPath
|
|
96
|
-
registerFormatter('.tsx', (code, relPath) => formatarTypeScriptMinimo(code, relPath
|
|
97
|
-
registerFormatter('.cts', (code, relPath) => formatarTypeScriptMinimo(code, relPath
|
|
98
|
-
registerFormatter('.mts', (code, relPath) => formatarTypeScriptMinimo(code, relPath
|
|
99
|
-
registerFormatter('.js', (code, relPath) => formatarJavaScriptMinimo(code, relPath
|
|
100
|
-
registerFormatter('.jsx', (code, relPath) => formatarJavaScriptMinimo(code, relPath
|
|
101
|
-
registerFormatter('.mjs', (code, relPath) => formatarJavaScriptMinimo(code, relPath
|
|
102
|
-
registerFormatter('.cjs', (code, relPath) => formatarJavaScriptMinimo(code, relPath
|
|
95
|
+
registerFormatter('.ts', (code, relPath) => formatarTypeScriptMinimo(code, relPath));
|
|
96
|
+
registerFormatter('.tsx', (code, relPath) => formatarTypeScriptMinimo(code, relPath));
|
|
97
|
+
registerFormatter('.cts', (code, relPath) => formatarTypeScriptMinimo(code, relPath));
|
|
98
|
+
registerFormatter('.mts', (code, relPath) => formatarTypeScriptMinimo(code, relPath));
|
|
99
|
+
registerFormatter('.js', (code, relPath) => formatarJavaScriptMinimo(code, relPath));
|
|
100
|
+
registerFormatter('.jsx', (code, relPath) => formatarJavaScriptMinimo(code, relPath));
|
|
101
|
+
registerFormatter('.mjs', (code, relPath) => formatarJavaScriptMinimo(code, relPath));
|
|
102
|
+
registerFormatter('.cjs', (code, relPath) => formatarJavaScriptMinimo(code, relPath));
|
|
103
103
|
export function getRegisteredFormatter(relPath) {
|
|
104
104
|
return getFormatterForPath(relPath);
|
|
105
105
|
}
|
|
@@ -16,7 +16,7 @@ export function getProtectedLinesFromTemplateLiterals(code, relPath) {
|
|
|
16
16
|
try {
|
|
17
17
|
const req = createRequire(import.meta.url);
|
|
18
18
|
const parser = req('@babel/parser');
|
|
19
|
-
const rp =
|
|
19
|
+
const rp = relPath.toLowerCase();
|
|
20
20
|
const plugins = ['importMeta', 'dynamicImport', 'topLevelAwait', 'classProperties', 'classPrivateProperties', 'classPrivateMethods', 'classStaticBlock', 'optionalChaining', 'nullishCoalescingOperator', 'numericSeparator', 'logicalAssignment', 'privateIn', 'objectRestSpread', 'decorators-legacy'];
|
|
21
21
|
const isTs = rp.endsWith('.ts') || rp.endsWith('.tsx') || rp.endsWith('.cts') || rp.endsWith('.mts');
|
|
22
22
|
const isJsx = rp.endsWith('.jsx') || rp.endsWith('.tsx');
|
|
@@ -112,7 +112,7 @@ export function normalizarSeparadoresDeSecao(code, opts = {}) {
|
|
|
112
112
|
if (!metrica) {
|
|
113
113
|
continue;
|
|
114
114
|
}
|
|
115
|
-
const symbol = metrica[1]
|
|
115
|
+
const symbol = metrica[1];
|
|
116
116
|
if (!symbol) {
|
|
117
117
|
continue;
|
|
118
118
|
}
|
|
@@ -138,7 +138,7 @@ export function normalizarSeparadoresDeSecao(code, opts = {}) {
|
|
|
138
138
|
if (!metrica) {
|
|
139
139
|
return null;
|
|
140
140
|
}
|
|
141
|
-
const raw = (metrica[1]
|
|
141
|
+
const raw = (metrica[1]).trim();
|
|
142
142
|
return {
|
|
143
143
|
titulo: raw ? raw : null
|
|
144
144
|
};
|