every-plugin
Version:
270 lines (269 loc) • 8.69 kB
text/typescript
import { z } from "./zod.cjs";
import { ModuleFederationError, PluginRuntimeError, ValidationError, extractFromFiberFailure, formatORPCError, isRetryableORPCCode, toPluginRuntimeError, wrapORPCError } from "./runtime/errors.cjs";
//#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.cts.map