mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-16 20:22:21 +03:00
* feat(quality): instala @axe-core/playwright + allowlist (T13)
Pré-requisito do gate de a11y real. O spec tests/e2e/a11y.spec.ts já tem o
mecanismo REQUIRE_AXE=1 que falha se o pacote estiver ausente quando exigido —
faltava só o pacote + o job nightly + o baseline real.
- @axe-core/playwright@^4.11.3 em devDependencies (via --package-lock-only,
não toca o node_modules compartilhado das worktrees)
- adicionado à dependency-allowlist (check:deps OK, 127 deps)
- vuln-ratchet OK (1 moderate pré-existente, baseline 10 — axe não regride)
* feat(quality): job a11y nightly (REQUIRE_AXE=1) + gate per-PR (T13)
- novo job 'a11y' em nightly-resilience.yml: o webServer do Playwright builda o
Next (build-next-isolated.mjs) e sobe o standalone sozinho (sem artefato pré-
buildado como o test-e2e do ci.yml), REQUIRE_AXE=1 roda a análise axe real.
- gate de nightly no spec: a11y.spec.ts é casado pelo glob 'tests/e2e/*.spec.ts'
do job per-PR (9 shards); sem gate, instalar @axe-core/playwright ligaria axe
em TODO PR (e falharia em baseline 0). Os 4 testes de página agora skipam a
menos que REQUIRE_AXE=1 — per-PR fica rápido/verde, nightly roda real.
- zizmor 139->145: +3 drift pré-existente da base a23d0d678 (release fast-path
não ratcheta workflows) + 3 do job novo (checkout/setup-node/cache @vN, mesma
convenção deliberada e INTOCADA de todos os workflows). Ver nota no baseline.
* feat(quality): congela baseline real de violações a11y (T13)
Medido no primeiro run nightly (27852779527, REQUIRE_AXE=1): /login=1,
/dashboard=4, /dashboard/providers=3, /dashboard/settings=5. O webServer
buildou+subiu o app e o axe rodou nas 4 páginas; a falha do run foi só o
assert vs baseline 0 (esperado), não infra.
133 lines
2.6 KiB
JSON
133 lines
2.6 KiB
JSON
{
|
|
"_comment": "Allowlist anti-slopsquatting (check-deps.mjs). Toda dep nova exige adicao EXPLICITA aqui apos verificar que e legitima.",
|
|
"allowed": [
|
|
"@atjsh/llmlingua-2",
|
|
"@aws-sdk/client-bedrock-runtime",
|
|
"@axe-core/playwright",
|
|
"@cyclonedx/cyclonedx-npm",
|
|
"@dnd-kit/core",
|
|
"@dnd-kit/sortable",
|
|
"@dnd-kit/utilities",
|
|
"@huggingface/transformers",
|
|
"@lobehub/icons",
|
|
"@modelcontextprotocol/sdk",
|
|
"@monaco-editor/react",
|
|
"@ngrok/ngrok",
|
|
"@opencode-ai/plugin",
|
|
"@playwright/test",
|
|
"@size-limit/file",
|
|
"@stryker-mutator/core",
|
|
"@stryker-mutator/tap-runner",
|
|
"@swc/helpers",
|
|
"@tailwindcss/postcss",
|
|
"@tensorflow/tfjs",
|
|
"@testing-library/jest-dom",
|
|
"@testing-library/react",
|
|
"@types/bcryptjs",
|
|
"@types/better-sqlite3",
|
|
"@types/bun",
|
|
"@types/keytar",
|
|
"@types/mdx",
|
|
"@types/node",
|
|
"@types/react",
|
|
"@types/react-dom",
|
|
"@types/ws",
|
|
"@vitejs/plugin-react",
|
|
"@xyflow/react",
|
|
"axios",
|
|
"bcryptjs",
|
|
"better-sqlite3",
|
|
"bottleneck",
|
|
"c8",
|
|
"clsx",
|
|
"commander",
|
|
"concurrently",
|
|
"cross-env",
|
|
"csv-stringify",
|
|
"dpdm",
|
|
"electron",
|
|
"electron-builder",
|
|
"electron-updater",
|
|
"eslint",
|
|
"eslint-config-next",
|
|
"eslint-plugin-sonarjs",
|
|
"express",
|
|
"fast-check",
|
|
"fetch-socks",
|
|
"fflate",
|
|
"fumadocs-core",
|
|
"fumadocs-mdx",
|
|
"fumadocs-ui",
|
|
"glob",
|
|
"http-proxy-middleware",
|
|
"https-proxy-agent",
|
|
"husky",
|
|
"ink",
|
|
"ink-spinner",
|
|
"ink-text-input",
|
|
"ioredis",
|
|
"jose",
|
|
"js-tiktoken",
|
|
"js-yaml",
|
|
"jscpd",
|
|
"jsdom",
|
|
"jsonc-parser",
|
|
"keytar",
|
|
"knip",
|
|
"license-checker-rseidelsohn",
|
|
"lint-staged",
|
|
"lockfile-lint",
|
|
"lowdb",
|
|
"lucide-react",
|
|
"marked",
|
|
"marked-terminal",
|
|
"material-symbols",
|
|
"mermaid",
|
|
"monaco-editor",
|
|
"next",
|
|
"next-intl",
|
|
"next-themes",
|
|
"node-loader",
|
|
"node-machine-id",
|
|
"open",
|
|
"ora",
|
|
"parse5",
|
|
"pino",
|
|
"pino-abstract-transport",
|
|
"pino-pretty",
|
|
"playwright",
|
|
"prettier",
|
|
"react",
|
|
"react-dom",
|
|
"react-is",
|
|
"react-markdown",
|
|
"react-reconciler",
|
|
"recharts",
|
|
"selfsigned",
|
|
"size-limit",
|
|
"socks",
|
|
"sql.js",
|
|
"sqlite-vec",
|
|
"tailwind-merge",
|
|
"tailwindcss",
|
|
"tls-client-node",
|
|
"tsup",
|
|
"tsx",
|
|
"type-coverage",
|
|
"typescript",
|
|
"typescript-eslint",
|
|
"undici",
|
|
"update-notifier",
|
|
"uuid",
|
|
"vitest",
|
|
"wait-on",
|
|
"wreq-js",
|
|
"ws",
|
|
"wtfnode",
|
|
"xxhash-wasm",
|
|
"yazl",
|
|
"zod",
|
|
"zustand"
|
|
]
|
|
}
|