UNPKG

every-plugin

Version:
270 lines (269 loc) 8.69 kB
import { z } from "./zod.mjs"; import { ModuleFederationError, PluginRuntimeError, ValidationError, extractFromFiberFailure, formatORPCError, isRetryableORPCCode, toPluginRuntimeError, wrapORPCError } from "./runtime/errors.mjs"; //#region src/errors.d.ts /** * Error pattern constants for categorizing infrastructure errors */ declare const ERROR_PATTERNS: { readonly CONNECTION_REFUSED: readonly ["ECONNREFUSED"]; readonly HOST_NOT_FOUND: readonly ["ENOTFOUND", "EHOSTUNREACH"]; readonly TIMEOUT: readonly ["ETIMEDOUT", "ESOCKETTIMEDOUT", "timeout"]; readonly CONNECTION_RESET: readonly ["ECONNRESET", "EPIPE"]; readonly PERMISSION: readonly ["EACCES", "EPERM", "permission denied"]; readonly AUTH: readonly ["401", "unauthorized", "authentication failed"]; readonly RATE_LIMITED: readonly ["429", "too many requests", "rate limit"]; readonly SERVICE_UNAVAILABLE: readonly ["503", "service unavailable"]; }; /** * Common error schemas for plugin contracts. * Import individually or use the grouped PluginErrors export. * * @example * ```typescript * import { NOT_FOUND, FORBIDDEN, UNAUTHORIZED } from "every-plugin/errors"; * * export const contract = oc.router({ * getData: oc.route(...) * .errors({ NOT_FOUND, FORBIDDEN, UNAUTHORIZED }) * }); * ``` */ declare const UNAUTHORIZED: { readonly status: 401; readonly data: z.ZodObject<{ apiKeyProvided: z.ZodBoolean; provider: z.ZodOptional<z.ZodString>; authType: z.ZodOptional<z.ZodEnum<{ apiKey: "apiKey"; oauth: "oauth"; token: "token"; }>>; }, z.core.$strip>; }; declare const RATE_LIMITED: { readonly status: 429; readonly data: z.ZodObject<{ retryAfter: z.ZodNumber; remainingRequests: z.ZodOptional<z.ZodNumber>; resetTime: z.ZodOptional<z.ZodString>; limitType: z.ZodOptional<z.ZodEnum<{ requests: "requests"; tokens: "tokens"; bandwidth: "bandwidth"; }>>; }, z.core.$strip>; }; declare const SERVICE_UNAVAILABLE: { readonly status: 503; readonly data: z.ZodObject<{ retryAfter: z.ZodOptional<z.ZodNumber>; maintenanceWindow: z.ZodDefault<z.ZodBoolean>; estimatedUptime: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; declare const BAD_REQUEST: { readonly status: 400; readonly data: z.ZodObject<{ invalidFields: z.ZodOptional<z.ZodArray<z.ZodString>>; validationErrors: z.ZodOptional<z.ZodArray<z.ZodObject<{ field: z.ZodString; message: z.ZodString; code: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; }, z.core.$strip>; }; declare const NOT_FOUND: { readonly status: 404; readonly data: z.ZodObject<{ resource: z.ZodOptional<z.ZodString>; resourceId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; declare const FORBIDDEN: { readonly status: 403; readonly data: z.ZodObject<{ requiredPermissions: z.ZodOptional<z.ZodArray<z.ZodString>>; action: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; declare const TIMEOUT: { readonly status: 504; readonly data: z.ZodObject<{ timeoutMs: z.ZodOptional<z.ZodNumber>; operation: z.ZodOptional<z.ZodString>; retryable: z.ZodDefault<z.ZodBoolean>; }, z.core.$strip>; }; declare const CONNECTION_ERROR: { readonly status: 502; readonly data: z.ZodObject<{ errorCode: z.ZodOptional<z.ZodString>; host: z.ZodOptional<z.ZodString>; port: z.ZodOptional<z.ZodNumber>; suggestion: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; /** * Grouped export for all plugin errors. * Use individual imports for cleaner code. */ declare const PluginErrors: { readonly UNAUTHORIZED: { readonly status: 401; readonly data: z.ZodObject<{ apiKeyProvided: z.ZodBoolean; provider: z.ZodOptional<z.ZodString>; authType: z.ZodOptional<z.ZodEnum<{ apiKey: "apiKey"; oauth: "oauth"; token: "token"; }>>; }, z.core.$strip>; }; readonly RATE_LIMITED: { readonly status: 429; readonly data: z.ZodObject<{ retryAfter: z.ZodNumber; remainingRequests: z.ZodOptional<z.ZodNumber>; resetTime: z.ZodOptional<z.ZodString>; limitType: z.ZodOptional<z.ZodEnum<{ requests: "requests"; tokens: "tokens"; bandwidth: "bandwidth"; }>>; }, z.core.$strip>; }; readonly SERVICE_UNAVAILABLE: { readonly status: 503; readonly data: z.ZodObject<{ retryAfter: z.ZodOptional<z.ZodNumber>; maintenanceWindow: z.ZodDefault<z.ZodBoolean>; estimatedUptime: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; readonly BAD_REQUEST: { readonly status: 400; readonly data: z.ZodObject<{ invalidFields: z.ZodOptional<z.ZodArray<z.ZodString>>; validationErrors: z.ZodOptional<z.ZodArray<z.ZodObject<{ field: z.ZodString; message: z.ZodString; code: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; }, z.core.$strip>; }; readonly NOT_FOUND: { readonly status: 404; readonly data: z.ZodObject<{ resource: z.ZodOptional<z.ZodString>; resourceId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; readonly FORBIDDEN: { readonly status: 403; readonly data: z.ZodObject<{ requiredPermissions: z.ZodOptional<z.ZodArray<z.ZodString>>; action: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; readonly TIMEOUT: { readonly status: 504; readonly data: z.ZodObject<{ timeoutMs: z.ZodOptional<z.ZodNumber>; operation: z.ZodOptional<z.ZodString>; retryable: z.ZodDefault<z.ZodBoolean>; }, z.core.$strip>; }; readonly CONNECTION_ERROR: { readonly status: 502; readonly data: z.ZodObject<{ errorCode: z.ZodOptional<z.ZodString>; host: z.ZodOptional<z.ZodString>; port: z.ZodOptional<z.ZodNumber>; suggestion: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; }; /** * @deprecated Use individual imports or PluginErrors instead */ declare const CommonPluginErrors: { readonly UNAUTHORIZED: { readonly status: 401; readonly data: z.ZodObject<{ apiKeyProvided: z.ZodBoolean; provider: z.ZodOptional<z.ZodString>; authType: z.ZodOptional<z.ZodEnum<{ apiKey: "apiKey"; oauth: "oauth"; token: "token"; }>>; }, z.core.$strip>; }; readonly RATE_LIMITED: { readonly status: 429; readonly data: z.ZodObject<{ retryAfter: z.ZodNumber; remainingRequests: z.ZodOptional<z.ZodNumber>; resetTime: z.ZodOptional<z.ZodString>; limitType: z.ZodOptional<z.ZodEnum<{ requests: "requests"; tokens: "tokens"; bandwidth: "bandwidth"; }>>; }, z.core.$strip>; }; readonly SERVICE_UNAVAILABLE: { readonly status: 503; readonly data: z.ZodObject<{ retryAfter: z.ZodOptional<z.ZodNumber>; maintenanceWindow: z.ZodDefault<z.ZodBoolean>; estimatedUptime: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; readonly BAD_REQUEST: { readonly status: 400; readonly data: z.ZodObject<{ invalidFields: z.ZodOptional<z.ZodArray<z.ZodString>>; validationErrors: z.ZodOptional<z.ZodArray<z.ZodObject<{ field: z.ZodString; message: z.ZodString; code: z.ZodOptional<z.ZodString>; }, z.core.$strip>>>; }, z.core.$strip>; }; readonly NOT_FOUND: { readonly status: 404; readonly data: z.ZodObject<{ resource: z.ZodOptional<z.ZodString>; resourceId: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; readonly FORBIDDEN: { readonly status: 403; readonly data: z.ZodObject<{ requiredPermissions: z.ZodOptional<z.ZodArray<z.ZodString>>; action: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; readonly TIMEOUT: { readonly status: 504; readonly data: z.ZodObject<{ timeoutMs: z.ZodOptional<z.ZodNumber>; operation: z.ZodOptional<z.ZodString>; retryable: z.ZodDefault<z.ZodBoolean>; }, z.core.$strip>; }; readonly CONNECTION_ERROR: { readonly status: 502; readonly data: z.ZodObject<{ errorCode: z.ZodOptional<z.ZodString>; host: z.ZodOptional<z.ZodString>; port: z.ZodOptional<z.ZodNumber>; suggestion: z.ZodOptional<z.ZodString>; }, z.core.$strip>; }; }; //#endregion export { BAD_REQUEST, CONNECTION_ERROR, CommonPluginErrors, ERROR_PATTERNS, FORBIDDEN, ModuleFederationError, NOT_FOUND, PluginErrors, PluginRuntimeError, RATE_LIMITED, SERVICE_UNAVAILABLE, TIMEOUT, UNAUTHORIZED, ValidationError, extractFromFiberFailure, formatORPCError, isRetryableORPCCode, toPluginRuntimeError, wrapORPCError }; //# sourceMappingURL=errors.d.mts.map