Repository Analysis

colinhacks/zod

TypeScript-first schema validation with static type inference

1.5 Likely human-written View on GitHub
1.5
Adjusted Score
1.5
Raw Score
100%
Time Factor
2026-05-19
Last Push
42,826
Stars
TypeScript
Language
103,529
Lines of Code
468
Files
149
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 2LOW 147

Pattern Findings

149 matches across 5 categories. Click a row to expand file-level details.

Over-Commented Block130 hits · 130 pts
SeverityFileLineSnippet
LOWwiki/optionality.md301z.object({ a: z.string().transform((s) => s + "!") }).parse({})
LOW.devcontainer/devcontainer.json1// For format details, see https://aka.ms/devcontainer.json. For config options, see the
LOWpackages/zod/src/v4/core/json-schema.ts21// $comment?: string ;
LOWpackages/zod/src/v4/core/schemas.ts1701 } & {
LOWpackages/zod/src/v4/core/schemas.ts1721// : k extends string
LOWpackages/zod/src/v4/core/schemas.ts2821
LOWpackages/zod/src/v4/core/schemas.ts2841// export type $InferZodRecordInput<
LOWpackages/zod/src/v4/core/schemas.ts3301 inst,
LOWpackages/zod/src/v4/core/schemas.ts3321// export _interface $ZodConstInternals<T extends util.Literal = util.Literal> extends $ZodTypeInternals<T, T> {
LOWpackages/zod/src/v4/core/schemas.ts3341// }
LOWpackages/zod/src/v4/core/schemas.ts3781////////// $ZodCoalesce //////////
LOWpackages/zod/src/v4/core/schemas.ts3801// }
LOWpackages/zod/src/v4/core/checks.ts201// }
LOWpackages/zod/src/v4/core/checks.ts221// origin: "number",
LOWpackages/zod/src/v4/core/checks.ts861 continue: !def.abort,
LOWpackages/zod/src/v4/core/checks.ts881// "$ZodCheckJSONString",
LOWpackages/zod/src/v4/core/checks.ts1161 values: def.mime,
LOWpackages/zod/src/v4/core/checks.ts1181// }
LOWpackages/zod/src/v4/core/checks.ts1221
LOWpackages/zod/src/v4/core/checks.ts1241// $ZodCheck.init(inst, def);
LOWpackages/zod/src/v4/core/zsf.ts121/////////////////////////////////////////////////
LOWpackages/zod/src/v4/core/zsf.ts141// check: "uuid";
LOWpackages/zod/src/v4/core/zsf.ts161// check: "cuid";
LOWpackages/zod/src/v4/core/zsf.ts181// check: "datetime";
LOWpackages/zod/src/v4/core/zsf.ts201// check: "ip";
LOWpackages/zod/src/v4/core/zsf.ts221// check: "json_string";
LOWpackages/zod/src/v4/core/zsf.ts241// minimum: number;
LOWpackages/zod/src/v4/core/zsf.ts261// maximum: number | bigint | Date;
LOWpackages/zod/src/v4/core/zsf.ts281// multipleOf: number;
LOWpackages/zod/src/v4/core/zsf.ts301// | $ZSFCheckISOTime
LOWpackages/zod/src/v4/core/zsf.ts321// | $ZSFCheckGreaterThanOrEqual
LOWpackages/zod/src/v4/mini/tests/index.test.ts761 expect(() => z.parse(a, 11)).toThrow();
LOWpackages/zod/src/v4/mini/tests/index.test.ts901// const schema = z.pipe(
LOWpackages/zod/src/v4/classic/errors.ts81// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */
LOWpackages/zod/src/v4/classic/schemas.ts1import * as core from "../core/index.js";
LOWpackages/zod/src/v4/classic/schemas.ts601
LOWpackages/zod/src/v4/classic/schemas.ts841export function ksuid(params?: string | core.$ZodKSUIDParams): ZodKSUID {
LOW…ages/zod/src/v4/classic/tests/template-literal.test.ts321 // anyFiniteNumber.parse("-123");
LOW…ages/zod/src/v4/classic/tests/template-literal.test.ts441 expect(() => anyInt.parse("1.23")).toThrow();
LOW…s/zod/src/v4/classic/tests/jitless-allows-eval.test.ts1import { expect, test } from "vitest";
LOWpackages/zod/src/v4/classic/tests/registries.test.ts61// const namedReg = z
LOWpackages/zod/src/v4/classic/tests/registries.test.ts81// const hello = namedReg.get("hello");
LOWpackages/zod/src/v4/classic/tests/coerce.test.ts141// expect(schema.parse(300)).toEqual("300");
LOWpackages/zod/src/v4/classic/tests/description.test.ts21 z.core.globalRegistry.add(schema, { description });
LOWpackages/zod/src/v4/classic/tests/index.test.ts741// z.superRefine((val, ctx) => {
LOWpackages/zod/src/v4/classic/tests/index.test.ts821 });
LOWpackages/zod/src/v4/classic/tests/string.test.ts901// expect(ipSchema.safeParse("1e5e:e6c8:daac:514b:114b:e360:d8c0:682c").success).toBe(true);
LOW…/zod/src/v4/classic/tests/discriminated-unions.test.ts281// removed to account for unions of unions
LOWpackages/zod/src/v4/classic/tests/json.test.ts1import { expect, test } from "vitest";
LOWpackages/zod/src/v4/classic/tests/json.test.ts21// Env.parse({
LOWpackages/zod/src/v4/classic/tests/json.test.ts41// expected: "number",
LOWpackages/zod/src/v4/classic/tests/json.test.ts61// someOtherValue: null,
LOWpackages/zod/src/v4/classic/tests/json.test.ts81// validation: "json",
LOWpackages/zod/src/v4/classic/tests/json.test.ts101// z.string().json().parse(`{}`);
LOW…ckages/zod/src/v4/classic/tests/to-json-schema.test.ts2841 }
LOW…ckages/zod/src/v4/classic/tests/to-json-schema.test.ts2861// {
LOW…ckages/zod/src/v4/classic/tests/to-json-schema.test.ts2921 "type": "number",
LOWpackages/zod/src/v4/classic/tests/refine.test.ts501 // .object({
LOWpackages/zod/src/v4/classic/tests/error.test.ts241// const sub = result.error.issues[0];
LOWpackages/zod/src/v4/classic/tests/error.test.ts541 z.config({ customError: undefined });
70 more matches not shown…
Fake / Example Data11 hits · 11 pts
SeverityFileLineSnippet
LOWpackages/zod/src/v4/mini/tests/string.test.ts75 expect(z.parse(a, "test@test.com")).toEqual("test@test.com");
LOWpackages/zod/src/v4/classic/tests/catch.test.ts224 return "John Doe";
LOWpackages/zod/src/v3/tests/catch.test.ts196 return "John Doe";
LOWpackages/bench/init.ts13 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag
LOWpackages/bench/init.ts13 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag
LOWpackages/bench/object-moltar.ts55 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag
LOWpackages/bench/object-moltar.ts55 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag
LOWpackages/bench/object-moltar-jitless.ts63 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag
LOWpackages/bench/object-moltar-jitless.ts63 "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore mag
LOWpackages/resolution/src/index.ts24const success = JSON.stringify(schema.safeParse({ name: "John Doe" }));
LOWpackages/resolution/src/index.ts25if (success !== `{"success":true,"data":{"name":"John Doe"}}`) {
Decorative Section Separators2 hits · 6 pts
SeverityFileLineSnippet
MEDIUMpackages/tsc/bench/lots-of-objects.ts33// console.log("╔═════════════════╗");
MEDIUMpackages/tsc/bench/lots-of-objects.ts35// console.log("╚═════════════════╝");
Verbosity Indicators3 hits · 4 pts
SeverityFileLineSnippet
LOWpackages/tsc/generate.ts48// Step 4: Write the generated schemas to a file
LOWpackages/tsc/generate.ts315// Step 2: Generate a random string for keys and variable names
LOWpackages/tsc/generate.ts326// Step 3: Generate a random Zod schema
Hyper-Verbose Identifiers3 hits · 3 pts
SeverityFileLineSnippet
LOWpackages/zod/src/v4/core/schemas.ts2251function handleExclusiveUnionResults(
LOWpackages/zod/src/v4/core/schemas.ts2553function handleIntersectionResults(result: ParsePayload, left: ParsePayload, right: ParsePayload): ParsePayload {
LOWpackages/zod/src/v4/core/checks.ts1084function handleCheckPropertyResult(