Ctrl K
ComunidadGuías…

oxlint.ultracite.config.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { defineConfig } from 'oxlint'
import antiSlop from 'ultracite/oxlint/anti-slop'
import core from 'ultracite/oxlint/core'
import vitest from 'ultracite/oxlint/vitest'
import vue from 'ultracite/oxlint/vue'

import current from './.oxlintrc.json' with { type: 'json' }

export default defineConfig({
  extends: [core, vue, vitest, antiSlop, current],
  ignorePatterns: [...core.ignorePatterns, ...current.ignorePatterns],
  jsPlugins: ['oxlint-plugin-complexity'],
  overrides: [
    {
      // GraphQL passes schema-coerced arguments and opaque DTO parents across an erased schema boundary.
      files: [
        'api/src/graphql/contribution-resolvers.ts',
        'api/src/graphql/request-execution.ts',
        'packages/platform-module-contract/src/graphql.ts',
      ],
      rules: {
        'anti-slop/no-unknown-parameters': 'off',
        'anti-slop/no-unknown-returns': 'off',
        'anti-slop/no-unsafe-dictionary-type': 'off',
      },
    },
    {
      // Tests deliberately inspect malformed values and assert boundary behavior.
      files: [
        '**/*.test.ts',
        '**/*.spec.ts',
        '**/*.test.tsx',
        '**/*.spec.tsx',
        'api/tests/esi-gateway/registered-caller-test-adapters.ts',
        'api/tests/platform/module-route-composition.types.ts',
        'api/tests/support/mock-feature-execution.ts',
        'tests/support/auth-e2e-stack.ts',
      ],
      rules: {
        'anti-slop/no-module-mocking': 'off',
        'anti-slop/no-runtime-typeof': 'off',
      },
    },
    {
      files: ['scripts/quality-lint-baseline.ts', 'scripts/quality-lint-diagnostics.ts'],
      rules: { 'anti-slop/no-runtime-typeof': 'off' },
    },
    {
      // The SDK independently lints its boundary-heavy runtime, OpenAPI generator, and tests.
      files: ['packages/esi-client/**'],
      rules: { 'anti-slop/no-runtime-typeof': 'off' },
    },
    {
      // Dynamic SDK descriptors are registered against generated operation types at startup;
      // the ID-only dispatch type cannot express that relationship.
      files: [
        'api/src/esi-gateway/internal/execution-runtime.ts',
        'packages/esi-client/scripts/check-documentation.ts',
        'packages/esi-client/src/client/request-schema.ts',
      ],
      rules: { 'anti-slop/no-chained-type-assertions': 'off' },
    },
    {
      // These tests exercise malformed input or narrow driver/client doubles deliberately.
      files: [
        'api/tests/admin/routes.test.ts',
        'api/tests/db/module-persistence-attestation.test.ts',
        'api/tests/db/module-persistence-operation-transaction.test.ts',
        'api/tests/db/module-persistence-operation.test.ts',
        'api/tests/organization/route-middleware.test.ts',
        'api/tests/platform/resource-operation-policy.test.ts',
        'features/organization-activity/server/test/collection.test.ts',
        'packages/esi-client/tests/domain-client-emitter.test.ts',
        'packages/esi-client/tests/generation-pipeline.test.ts',
        'tests/organization/organization-review-queries.test.ts',
        'tests/queries/private-query-lifecycle.test.ts',
      ],
      rules: { 'anti-slop/no-chained-type-assertions': 'off' },
    },
    {
      // Boundary decoders, runtime API checks, and variant dispatch need to inspect JS values.
      // Keep those checks where an external contract cannot supply a discriminant or parser.
      files: [
        'api/src/auth/character-token-store.ts',
        'api/src/graphql/contribution-resolvers.ts',
        'api/src/graphql/request-execution.ts',
        'packages/platform-module-conformance/src/graphql.ts',
        'packages/platform-module-conformance/src/graphql-artifact.ts',
        'api/src/graphql/scalars.ts',
        'api/src/auth/character-transfer-store.ts',
        'api/src/cache-admission/service.ts',
        'api/src/corporations/public-data.ts',
        'api/src/db/migration-runner.ts',
        'api/src/esi-gateway/feature-execution.ts',
        'api/src/esi-gateway/internal/cache-redaction.ts',
        'api/src/esi-gateway/internal/catalog-validation.ts',
        'api/src/esi-gateway/internal/coordination.ts',
        'api/src/index.ts',
        'api/src/organization/reviewer-group-policy.ts',
        'api/src/platform/resource-batch.ts',
        'api/src/queue/job-handlers.ts',
        'app/composables/useCustomHighlight.ts',
        'app/pages/characters/index.vue',
        'app/query-persistence/runtime.ts',
        'app/utils/colada-options.ts',
        'app/utils/organization-review.ts',
        'features/member-audit/nuxt/src/runtime/app/reviewer/overview.vue',
        'features/member-audit/server/src/evidence-maintenance.ts',
        'features/market/nuxt/src/runtime/app/market-quickbar.ts',
        'features/organization-activity/nuxt/src/runtime/app/composables/useActivityDetail.ts',
        'layers/ui/app/components/ui/UiToggleGroup.vue',
        'layers/ui/app/composables/useUiTreeDragDrop.ts',
        'packages/platform-module-server/src/errors.ts',
        'scripts/module-registry/feature-boundaries.ts',
        'scripts/module-registry/server-sources.ts',
        'scripts/verify-esi-egress.mjs',
        'app/query-persistence/envelope.ts',
        'app/query-persistence/notifications.ts',
        'app/query-persistence/storage.ts',
        'app/utils/auth-redirect.ts',
        'app/utils/esi-freshness.ts',
        'app/utils/route-id.ts',
        'api/src/core-data/coverage-validation.ts',
        'api/src/core-data/capabilities.ts',
        'api/src/core-data/product-catalog.ts',
        'api/src/core-data/sde-product-adapter.ts',
        'api/src/db/module-migration-runner.ts',
        'api/src/domain-events/definitions.ts',
        'api/src/esi-gateway/catalog-interface.ts',
        'api/src/esi-gateway/internal/identity.ts',
        'api/src/esi-gateway/internal/runtime-state.ts',
        'api/src/esi-gateway/internal/telemetry-counters.ts',
        'api/src/logging.ts',
        'api/src/organization/reviewer-account-search.ts',
        'api/src/platform/module-logging.ts',
        'api/src/platform/resource-declarations.ts',
        'api/src/queue/platform.ts',
        'api/src/universe/resolution-cache.ts',
        'api/src/universe/static-location-store.ts',
        'api/src/universe/topology-store.ts',
        'api/src/worker/rollback-verifier.ts',
        'features/organization-activity/server/src/collection-response.ts',
        'packages/platform-module-nuxt/src/runtime/esi-query-persistence.ts',
        'packages/platform-module-nuxt/src/runtime/app/middleware/platform-module-enablement.global.ts',
        'packages/platform-module-nuxt/src/runtime/query-error.ts',
        'packages/esi-client-codegen/src/index.ts',
        'packages/platform-module-conformance/src/conformance.ts',
        'packages/platform-module-conformance/src/source-policy.ts',
        'packages/platform-module-contract/src/compiler.ts',
        'packages/platform-module-contract/src/inventory.ts',
        'packages/platform-module-contract/src/publisher.ts',
        'packages/platform-module-contract/src/validation.ts',
        'packages/platform-module-persistence-policy/src/module-migration-ast-policy.ts',
        'packages/platform-module-persistence-policy/src/module-persistence-routine.ts',
        'packages/platform-module-persistence-policy/src/postgres17-parser.ts',
        'scripts/module-registry/resolved-release.ts',
      ],
      rules: { 'anti-slop/no-runtime-typeof': 'off' },
    },
  ],
  rules: {
    // This plugin counts nested callbacks directly; its score is distinct from Sonar S3776.
    'complexity/complexity': ['error', { cognitive: 15 }],
    // Ultracite's rule option is unsupported by the pinned Oxlint 1.81.
    'no-unmodified-loop-condition': 'error',
  },
})