UNPKG

every-plugin

Version:
165 lines (163 loc) 4.17 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); const require_runtime = require('./_virtual/_rolldown/runtime.cjs'); require('./zod.cjs'); const require_errors = require('./runtime/errors.cjs'); let zod = require("zod"); //#region src/errors.ts /** * Error pattern constants for categorizing infrastructure errors */ const ERROR_PATTERNS = { CONNECTION_REFUSED: ["ECONNREFUSED"], HOST_NOT_FOUND: ["ENOTFOUND", "EHOSTUNREACH"], TIMEOUT: [ "ETIMEDOUT", "ESOCKETTIMEDOUT", "timeout" ], CONNECTION_RESET: ["ECONNRESET", "EPIPE"], PERMISSION: [ "EACCES", "EPERM", "permission denied" ], AUTH: [ "401", "unauthorized", "authentication failed" ], RATE_LIMITED: [ "429", "too many requests", "rate limit" ], SERVICE_UNAVAILABLE: ["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 }) * }); * ``` */ const UNAUTHORIZED = { status: 401, data: zod.object({ apiKeyProvided: zod.boolean(), provider: zod.string().optional(), authType: zod.enum([ "apiKey", "oauth", "token" ]).optional() }) }; const RATE_LIMITED = { status: 429, data: zod.object({ retryAfter: zod.number().int().min(1), remainingRequests: zod.number().int().min(0).optional(), resetTime: zod.string().datetime().optional(), limitType: zod.enum([ "requests", "tokens", "bandwidth" ]).optional() }) }; const SERVICE_UNAVAILABLE = { status: 503, data: zod.object({ retryAfter: zod.number().int().optional(), maintenanceWindow: zod.boolean().default(false), estimatedUptime: zod.string().datetime().optional() }) }; const BAD_REQUEST = { status: 400, data: zod.object({ invalidFields: zod.array(zod.string()).optional(), validationErrors: zod.array(zod.object({ field: zod.string(), message: zod.string(), code: zod.string().optional() })).optional() }) }; const NOT_FOUND = { status: 404, data: zod.object({ resource: zod.string().optional(), resourceId: zod.string().optional() }) }; const FORBIDDEN = { status: 403, data: zod.object({ requiredPermissions: zod.array(zod.string()).optional(), action: zod.string().optional() }) }; const TIMEOUT = { status: 504, data: zod.object({ timeoutMs: zod.number().int().min(0).optional(), operation: zod.string().optional(), retryable: zod.boolean().default(true) }) }; const CONNECTION_ERROR = { status: 502, data: zod.object({ errorCode: zod.string().optional(), host: zod.string().optional(), port: zod.number().int().optional(), suggestion: zod.string().optional() }) }; /** * Grouped export for all plugin errors. * Use individual imports for cleaner code. */ const PluginErrors = { UNAUTHORIZED, RATE_LIMITED, SERVICE_UNAVAILABLE, BAD_REQUEST, NOT_FOUND, FORBIDDEN, TIMEOUT, CONNECTION_ERROR }; /** * @deprecated Use individual imports or PluginErrors instead */ const CommonPluginErrors = PluginErrors; //#endregion exports.BAD_REQUEST = BAD_REQUEST; exports.CONNECTION_ERROR = CONNECTION_ERROR; exports.CommonPluginErrors = CommonPluginErrors; exports.ERROR_PATTERNS = ERROR_PATTERNS; exports.FORBIDDEN = FORBIDDEN; exports.ModuleFederationError = require_errors.ModuleFederationError; exports.NOT_FOUND = NOT_FOUND; exports.PluginErrors = PluginErrors; exports.PluginRuntimeError = require_errors.PluginRuntimeError; exports.RATE_LIMITED = RATE_LIMITED; exports.SERVICE_UNAVAILABLE = SERVICE_UNAVAILABLE; exports.TIMEOUT = TIMEOUT; exports.UNAUTHORIZED = UNAUTHORIZED; exports.ValidationError = require_errors.ValidationError; exports.extractFromFiberFailure = require_errors.extractFromFiberFailure; exports.formatORPCError = require_errors.formatORPCError; exports.isRetryableORPCCode = require_errors.isRetryableORPCCode; exports.toPluginRuntimeError = require_errors.toPluginRuntimeError; exports.wrapORPCError = require_errors.wrapORPCError; //# sourceMappingURL=errors.cjs.map