Ctrl K
ComunidadGuías…

desktop/scripts/check-pubkey-truncation.mjs

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

Archivo original ↗Preguntar a KiBot
import path from "node:path";
import { fileURLToPath } from "node:url";
import { runPubkeyTruncationCheck } from "../../scripts/check-pubkey-truncation-core.mjs";

const __dirname = path.dirname(fileURLToPath(import.meta.url));
const projectRoot = path.resolve(__dirname, "..");

// Truncated pubkey prefixes are forgeable (vanity grinding), so all display
// truncation goes through the canonical `truncateNpub` (identity keys —
// compact npub), `truncatePubkey` (generic hex identifiers such as event and
// blob IDs), or `<PubKey>` — this guard keeps ad-hoc `pubkey.slice(0, N)`
// forms from fragmenting again.
const rules = [
  {
    root: "src",
    extensions: new Set([".ts", ".tsx"]),
  },
];

// Non-display uses: array windows over pubkey lists, color/initials
// derivation where the value is never presented as an identity.
const overrides = new Set([
  // HexAvatar: 6-char badge + hue derivation inside a color-coded disc,
  // clearly decorative (paired with a full truncatePubkey aria-label).
  "src/features/huddle/components/ParticipantList.tsx:150",
  "src/features/huddle/components/ParticipantList.tsx:151",
  // clientId (not a pubkey) sliced in a debug log next to the real thing.
  "src/features/channels/readState/readStateManager.ts:338",
  // Array windows (first N pubkeys), not string truncation.
  "src/features/messages/lib/threadPanel.ts:395",
  "src/features/projects/ui/ProjectsView.tsx:166",
  "src/features/projects/ui/ProjectsOverviewPanel.tsx:209",
  // Error message prefix in a console-internal action error (never rendered as identity).
  "src/features/admin-console/AdminConsoleStaffingTab.tsx:108",
]);

await runPubkeyTruncationCheck({
  projectRoot,
  rules,
  overrides,
  allowedFiles: new Set([
    // The canonical helper itself.
    "src/shared/lib/pubkey.ts",
    // E2E mock bridge fabricates ids/nsecs from pubkeys; nothing here is a
    // user-facing identity display.
    "src/testing/e2eBridge.ts",
  ]),
  label: "Desktop",
  scriptPath: "desktop/scripts/check-pubkey-truncation.mjs",
});