/** * Registry Zod Schemas * * Runtime validation for user-editable `~/.pluginator/custom-registry.json` and * the bundled registry. Phase 3 security audit (P0 #4, P0 #8) — silently * accepting unbounded user JSON allows MB-string memory pressure during * indexing and silent shape drift when API contracts change. * * @since v2.12.0 */ import { z } from 'zod'; export declare const RegistryPluginSourceSchema: z.ZodObject<{ type: z.ZodEnum<["spigot", "modrinth", "github", "bukkit", "hangar", "jenkins", "geysermc", "web", "manual", "curseforge", "polymart", "builtbybit"]>; projectSlug: z.ZodOptional; hangarSlug: z.ZodOptional; resourceId: z.ZodOptional; curseforgeId: z.ZodOptional; repoSlug: z.ZodOptional; jenkinsJob: z.ZodOptional; jenkinsUrl: z.ZodOptional; preferred: z.ZodOptional; releaseChannel: z.ZodOptional>; manualDownload: z.ZodOptional; filenamePattern: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }, { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }>; /** * EOL advisory (roadmap 3.6): plain-text successor suggestion + one-line * reason. Both required when the field is present — an advisory without a * replacement (or vice versa) renders as a broken sentence. */ export declare const SupersededByAdvisorySchema: z.ZodObject<{ replacement: z.ZodString; reason: z.ZodString; }, "strip", z.ZodTypeAny, { replacement: string; reason: string; }, { replacement: string; reason: string; }>; export declare const MinecraftVersionRangeSchema: z.ZodObject<{ min: z.ZodString; max: z.ZodString; }, "strip", z.ZodTypeAny, { max: string; min: string; }, { max: string; min: string; }>; export declare const RegistryPluginSchema: z.ZodObject<{ id: z.ZodString; name: z.ZodString; description: z.ZodString; authors: z.ZodArray; website: z.ZodOptional; category: z.ZodEnum<["admin", "economy", "permissions", "world", "gameplay", "chat", "protection", "utility", "library", "performance", "cosmetic", "minigames", "social"]>; tags: z.ZodArray; sources: z.ZodArray; projectSlug: z.ZodOptional; hangarSlug: z.ZodOptional; resourceId: z.ZodOptional; curseforgeId: z.ZodOptional; repoSlug: z.ZodOptional; jenkinsJob: z.ZodOptional; jenkinsUrl: z.ZodOptional; preferred: z.ZodOptional; releaseChannel: z.ZodOptional>; manualDownload: z.ZodOptional; filenamePattern: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }, { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }>, "many">; minecraftVersions: z.ZodObject<{ min: z.ZodString; max: z.ZodString; }, "strip", z.ZodTypeAny, { max: string; min: string; }, { max: string; min: string; }>; premium: z.ZodOptional; verified: z.ZodOptional; popular: z.ZodOptional; dependencies: z.ZodOptional>; conflicts: z.ZodOptional>; notes: z.ZodOptional; legacy: z.ZodOptional; supersededBy: z.ZodOptional>; downloads: z.ZodOptional; rating: z.ZodOptional; lastUpdated: z.ZodOptional; createdAt: z.ZodOptional; version: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; name: string; sources: { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }[]; description: string; minecraftVersions: { max: string; min: string; }; tags: string[]; category: "admin" | "economy" | "permissions" | "world" | "gameplay" | "chat" | "protection" | "utility" | "library" | "performance" | "cosmetic" | "minigames" | "social"; authors: string[]; createdAt?: string | undefined; downloads?: number | undefined; version?: string | undefined; premium?: boolean | undefined; verified?: boolean | undefined; dependencies?: string[] | undefined; website?: string | undefined; rating?: number | undefined; lastUpdated?: string | undefined; notes?: string | undefined; popular?: boolean | undefined; supersededBy?: { replacement: string; reason: string; } | undefined; conflicts?: string[] | undefined; legacy?: boolean | undefined; }, { id: string; name: string; sources: { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }[]; description: string; minecraftVersions: { max: string; min: string; }; tags: string[]; category: "admin" | "economy" | "permissions" | "world" | "gameplay" | "chat" | "protection" | "utility" | "library" | "performance" | "cosmetic" | "minigames" | "social"; authors: string[]; createdAt?: string | undefined; downloads?: number | undefined; version?: string | undefined; premium?: boolean | undefined; verified?: boolean | undefined; dependencies?: string[] | undefined; website?: string | undefined; rating?: number | undefined; lastUpdated?: string | undefined; notes?: string | undefined; popular?: boolean | undefined; supersededBy?: { replacement: string; reason: string; } | undefined; conflicts?: string[] | undefined; legacy?: boolean | undefined; }>; export declare const PluginRegistrySchema: z.ZodObject<{ version: z.ZodString; lastUpdated: z.ZodString; description: z.ZodOptional; plugins: z.ZodArray; website: z.ZodOptional; category: z.ZodEnum<["admin", "economy", "permissions", "world", "gameplay", "chat", "protection", "utility", "library", "performance", "cosmetic", "minigames", "social"]>; tags: z.ZodArray; sources: z.ZodArray; projectSlug: z.ZodOptional; hangarSlug: z.ZodOptional; resourceId: z.ZodOptional; curseforgeId: z.ZodOptional; repoSlug: z.ZodOptional; jenkinsJob: z.ZodOptional; jenkinsUrl: z.ZodOptional; preferred: z.ZodOptional; releaseChannel: z.ZodOptional>; manualDownload: z.ZodOptional; filenamePattern: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }, { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }>, "many">; minecraftVersions: z.ZodObject<{ min: z.ZodString; max: z.ZodString; }, "strip", z.ZodTypeAny, { max: string; min: string; }, { max: string; min: string; }>; premium: z.ZodOptional; verified: z.ZodOptional; popular: z.ZodOptional; dependencies: z.ZodOptional>; conflicts: z.ZodOptional>; notes: z.ZodOptional; legacy: z.ZodOptional; supersededBy: z.ZodOptional>; downloads: z.ZodOptional; rating: z.ZodOptional; lastUpdated: z.ZodOptional; createdAt: z.ZodOptional; version: z.ZodOptional; }, "strip", z.ZodTypeAny, { id: string; name: string; sources: { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }[]; description: string; minecraftVersions: { max: string; min: string; }; tags: string[]; category: "admin" | "economy" | "permissions" | "world" | "gameplay" | "chat" | "protection" | "utility" | "library" | "performance" | "cosmetic" | "minigames" | "social"; authors: string[]; createdAt?: string | undefined; downloads?: number | undefined; version?: string | undefined; premium?: boolean | undefined; verified?: boolean | undefined; dependencies?: string[] | undefined; website?: string | undefined; rating?: number | undefined; lastUpdated?: string | undefined; notes?: string | undefined; popular?: boolean | undefined; supersededBy?: { replacement: string; reason: string; } | undefined; conflicts?: string[] | undefined; legacy?: boolean | undefined; }, { id: string; name: string; sources: { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }[]; description: string; minecraftVersions: { max: string; min: string; }; tags: string[]; category: "admin" | "economy" | "permissions" | "world" | "gameplay" | "chat" | "protection" | "utility" | "library" | "performance" | "cosmetic" | "minigames" | "social"; authors: string[]; createdAt?: string | undefined; downloads?: number | undefined; version?: string | undefined; premium?: boolean | undefined; verified?: boolean | undefined; dependencies?: string[] | undefined; website?: string | undefined; rating?: number | undefined; lastUpdated?: string | undefined; notes?: string | undefined; popular?: boolean | undefined; supersededBy?: { replacement: string; reason: string; } | undefined; conflicts?: string[] | undefined; legacy?: boolean | undefined; }>, "many">; }, "strip", z.ZodTypeAny, { version: string; lastUpdated: string; plugins: { id: string; name: string; sources: { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }[]; description: string; minecraftVersions: { max: string; min: string; }; tags: string[]; category: "admin" | "economy" | "permissions" | "world" | "gameplay" | "chat" | "protection" | "utility" | "library" | "performance" | "cosmetic" | "minigames" | "social"; authors: string[]; createdAt?: string | undefined; downloads?: number | undefined; version?: string | undefined; premium?: boolean | undefined; verified?: boolean | undefined; dependencies?: string[] | undefined; website?: string | undefined; rating?: number | undefined; lastUpdated?: string | undefined; notes?: string | undefined; popular?: boolean | undefined; supersededBy?: { replacement: string; reason: string; } | undefined; conflicts?: string[] | undefined; legacy?: boolean | undefined; }[]; description?: string | undefined; }, { version: string; lastUpdated: string; plugins: { id: string; name: string; sources: { type: "github" | "spigot" | "modrinth" | "jenkins" | "bukkit" | "web" | "manual" | "hangar" | "geysermc" | "curseforge" | "polymart" | "builtbybit"; resourceId?: number | undefined; projectSlug?: string | undefined; repoSlug?: string | undefined; filenamePattern?: string | undefined; manualDownload?: boolean | undefined; releaseChannel?: "release" | "beta" | "alpha" | undefined; hangarSlug?: string | undefined; curseforgeId?: string | undefined; jenkinsJob?: string | undefined; jenkinsUrl?: string | undefined; preferred?: boolean | undefined; }[]; description: string; minecraftVersions: { max: string; min: string; }; tags: string[]; category: "admin" | "economy" | "permissions" | "world" | "gameplay" | "chat" | "protection" | "utility" | "library" | "performance" | "cosmetic" | "minigames" | "social"; authors: string[]; createdAt?: string | undefined; downloads?: number | undefined; version?: string | undefined; premium?: boolean | undefined; verified?: boolean | undefined; dependencies?: string[] | undefined; website?: string | undefined; rating?: number | undefined; lastUpdated?: string | undefined; notes?: string | undefined; popular?: boolean | undefined; supersededBy?: { replacement: string; reason: string; } | undefined; conflicts?: string[] | undefined; legacy?: boolean | undefined; }[]; description?: string | undefined; }>; export type ValidatedRegistryPlugin = z.infer; export type ValidatedPluginRegistry = z.infer; //# sourceMappingURL=registry-schema.d.ts.map