/** * Arcis - One-line security for Node.js apps * A cross-platform security library * * @module @arcis/node * @version 1.5.0 * * @example * // Full protection (recommended) * import { arcis } from '@arcis/node'; * app.use(arcis()); * * @example * // Granular control * app.use(arcis.headers()); * app.use(arcis.rateLimit({ max: 100, windowMs: 60000 })); * app.use(arcis.sanitize()); * * @example * // With validation * app.post('/users', arcis.validate({ * email: { type: 'email', required: true }, * age: { type: 'number', min: 0, max: 150 } * }), handler); */ export { arcis, arcisFunction } from './middleware/main'; export { default } from './middleware/main'; export { createRateLimiter, rateLimit } from './middleware/rate-limit'; export { createSlidingWindowLimiter } from './middleware/rate-limit-sliding'; export { createTokenBucketLimiter } from './middleware/rate-limit-token'; export { createHeaders, securityHeaders } from './middleware/headers'; export { errorHandler, createErrorHandler } from './middleware/error-handler'; export { safeCors, createCors } from './middleware/cors'; export { secureCookieDefaults, createSecureCookies, enforceSecureCookie } from './middleware/cookies'; export { botProtection, detectBot } from './middleware/bot-detection'; export { csrfProtection, createCsrf, generateCsrfToken, validateCsrfToken } from './middleware/csrf'; export { hpp, createHpp } from './middleware/hpp'; export { responseSplittingGuard, detectResponseSplitting, sanitizeResponseHeader, ResponseSplittingError, } from './middleware/response-splitting'; export type { ResponseSplittingGuardOptions } from './middleware/response-splitting'; export { tokenBudget } from './middleware/token-budget'; export type { TokenBudgetOptions, TokenBudgetMiddleware, } from './middleware/token-budget'; export { eventLoopProtection } from './middleware/overload'; export type { EventLoopProtectionOptions, EventLoopProtectionMiddleware, } from './middleware/overload'; export { methodAllowlist } from './middleware/method-allowlist'; export type { MethodAllowlistOptions } from './middleware/method-allowlist'; export { massAssign } from './middleware/mass-assign'; export type { MassAssignOptions } from './middleware/mass-assign'; export { protectLogin, protectSignup, protectApi } from './middleware/protect'; export type { ProtectLoginOptions, ProtectSignupOptions, ProtectApiOptions, CorrelationOptions, } from './middleware/protect'; export { bruteForceProtection } from './middleware/brute-force'; export type { BruteForceOptions, BruteForceController, } from './middleware/brute-force'; export { graphqlGuard } from './middleware/graphql'; export type { GraphqlGuardMiddlewareOptions } from './middleware/graphql'; export { CorrelationWindow } from './middleware/correlation'; export type { CorrelationEvent, CorrelationDetections, CorrelationWindowOptions, } from './middleware/correlation'; export { inspectGraphqlQuery, detectGraphqlAbuse, } from './sanitizers/graphql'; export type { GraphqlGuardOptions, GraphqlGuardResult, GraphqlViolation, } from './sanitizers/graphql'; export { detectMassAssignment, SENSITIVE_FIELD_NAMES, } from './sanitizers/mass-assignment'; export type { MassAssignDetectOptions, MassAssignDetectResult, } from './sanitizers/mass-assignment'; export { Guards } from './guards'; export type { GuardsConfig, GuardsInput, GuardsDecision, GuardsVector, GuardsSeverity, GuardsRateLimitOptions, GuardsTokenBudgetOptions, GuardsPromptInjectionOptions, GuardsBotOptions, } from './guards'; export { signupProtection, checkSignup } from './middleware/signup-protection'; export type { SignupProtectionOptions, SignupCheckResult, SignupBlockReason, SignupProtectionMiddleware, } from './middleware/signup-protection'; export { sanitizeString, sanitizeObject, createSanitizer, } from './sanitizers/sanitize'; export { sanitizeXss, detectXss } from './sanitizers/xss'; export { sanitizeSql, detectSql } from './sanitizers/sql'; export { sanitizePath, detectPathTraversal } from './sanitizers/path'; export { sanitizeCommand, detectCommandInjection } from './sanitizers/command'; export { sanitizeSsti, detectSsti } from './sanitizers/ssti'; export { sanitizeXxe, detectXxe } from './sanitizers/xxe'; export { sanitizeJsonpCallback, detectJsonpInjection } from './sanitizers/jsonp'; export { detectPromptInjection, sanitizePromptInjection, } from './sanitizers/prompt-injection'; export { detectDeserialization, isSerializedPayload } from './sanitizers/deserialization'; export type { DeserializeRuntime } from './sanitizers/deserialization'; export type { DetectPromptInjectionResult, PromptInjectionMatch, PromptInjectionSeverity, } from './sanitizers/prompt-injection'; export { isDangerousNoSqlKey, detectNoSqlInjection, detectNoSqlString } from './sanitizers/nosql'; export { isDangerousProtoKey, detectPrototypePollution } from './sanitizers/prototype'; export { sanitizeHeaderValue, sanitizeHeaders, detectHeaderInjection } from './sanitizers/headers'; export { scanPii, detectPii, redactPii, scanObjectPii, redactObjectPii } from './sanitizers/pii'; export { encodeForHtml, encodeForAttribute, encodeForJs, encodeForUrl, encodeForCss } from './sanitizers/encode'; export { validate, createValidator } from './validation/schema'; export { validateUrl, isUrlSafe, scanForSsrf } from './validation/url'; export { validateRedirect, isRedirectSafe } from './validation/redirect'; export { validateHost, isHostAllowed } from './validation/host-header'; export type { ValidateHostResult } from './validation/host-header'; export { validateFile, sanitizeFilename, isDangerousExtension } from './validation/file'; export { validateEmail, verifyEmailMx, isValidEmailSyntax } from './validation/email'; export { parseDuration, formatDuration } from './utils/duration'; export { detectClientIp, isPrivateIp } from './utils/ip'; export { fingerprint } from './utils/fingerprint'; export { createSafeLogger, createRedactor, safeLog } from './logging/redactor'; export { TelemetryClient, TelemetryHttpError } from './telemetry/client'; export type { TelemetryEvent, TelemetryOptions, TelemetryDecision, TelemetrySeverity, } from './telemetry/types'; export { IntelligenceClient, reputationSeverityTier } from './intelligence/client'; export type { IntelligenceOptions, IpReputation, CloudDecision, } from './intelligence/types'; export { MemoryStore } from './stores/memory'; export { RedisStore, createRedisStore } from './stores/redis'; export type { ArcisOptions, ArcisFunction, ArcisMiddleware, SanitizeOptions, SanitizeResult, ThreatInfo, ThreatType, RateLimitOptions, RateLimitStore, RateLimitEntry, RateLimitResult, RateLimiterMiddleware, HeaderOptions, HstsOptions, ValidationConfig, ValidationSchema, FieldValidator, ValidationResult, ValidationError, LogOptions, SafeLogger, ErrorHandlerOptions, HttpError, } from './core/types'; export type { ValidateUrlOptions, ValidateUrlResult, SsrfScanResult } from './validation/url'; export { validateUrlAsync, pinnedDnsLookup, safeFollowRedirect, } from './validation/url-async'; export type { ValidateUrlAsyncOptions, ValidateUrlAsyncResult, DnsLookup, LookupAddress, } from './validation/url-async'; export type { CorsOptions } from './middleware/cors'; export type { SecureCookieOptions } from './middleware/cookies'; export type { ValidateFileOptions, FileInput, ValidateFileResult } from './validation/file'; export type { ValidateRedirectOptions, ValidateRedirectResult } from './validation/redirect'; export type { RedisClientLike, RedisStoreOptions } from './stores/redis'; export type { Platform, DetectIpOptions } from './utils/ip'; export type { FingerprintOptions } from './utils/fingerprint'; export type { EmailValidationOptions, EmailValidationResult } from './validation/email'; export type { SlidingWindowOptions, SlidingWindowMiddleware } from './middleware/rate-limit-sliding'; export type { TokenBucketOptions, TokenBucketMiddleware } from './middleware/rate-limit-token'; export type { BotCategory, BotDetectionResult, BotProtectionOptions } from './middleware/bot-detection'; export type { CsrfOptions } from './middleware/csrf'; export type { HppOptions } from './middleware/hpp'; export type { PiiType, PiiMatch, PiiScanOptions, PiiRedactOptions } from './sanitizers/pii'; export { ArcisError, ArcisValidationError, RateLimitError, InputTooLargeError, SecurityThreatError, SanitizationError, } from './core/errors'; export { INPUT, RATE_LIMIT, HEADERS, REDACTION, VALIDATION, ERRORS, BLOCKED, } from './core/constants'; //# sourceMappingURL=index.d.ts.map