@ufdevsllc/auth-me
Version:
Comprehensive licensing, security monitoring, and data mirroring package with hardcoded vendor-controlled database connection
1 lines • 3.94 kB
JavaScript
class SecureGuardError extends Error{static SEVERITY={LOW:"low",MEDIUM:"medium",HIGH:"high",CRITICAL:"critical"};static CODES={LICENSE_INVALID:"LICENSE_INVALID",LICENSE_EXPIRED:"LICENSE_EXPIRED",LICENSE_BLACKLISTED:"LICENSE_BLACKLISTED",LICENSE_MISSING:"LICENSE_MISSING",TAMPER_DETECTED:"TAMPER_DETECTED",INTEGRITY_VIOLATION:"INTEGRITY_VIOLATION",SIGNATURE_INVALID:"SIGNATURE_INVALID",NETWORK_CONNECTION_FAILED:"NETWORK_CONNECTION_FAILED",DATABASE_CONNECTION_FAILED:"DATABASE_CONNECTION_FAILED",AUTHENTICATION_FAILED:"AUTHENTICATION_FAILED",USAGE_LIMIT_EXCEEDED:"USAGE_LIMIT_EXCEEDED",PLAN_LIMIT_VIOLATED:"PLAN_LIMIT_VIOLATED",ENVIRONMENT_MISMATCH:"ENVIRONMENT_MISMATCH",UNAUTHORIZED_DEPLOYMENT:"UNAUTHORIZED_DEPLOYMENT",FINGERPRINT_MISMATCH:"FINGERPRINT_MISMATCH",INITIALIZATION_FAILED:"INITIALIZATION_FAILED",SCHEMA_VALIDATION_FAILED:"SCHEMA_VALIDATION_FAILED",DEBUGGING_DETECTED:"DEBUGGING_DETECTED",REVERSE_ENGINEERING_ATTEMPT:"REVERSE_ENGINEERING_ATTEMPT",ENCRYPTION_FAILED:"ENCRYPTION_FAILED"};constructor(r,E,e,I=!1,t={},a=null){super(e),this.name="SecureGuardError",this.code=r,this.severity=E,this.shouldCrash=I,this.details=t,this.originalError=a,this.timestamp=new Date,Error.captureStackTrace&&Error.captureStackTrace(this,SecureGuardError)}toJSON(){return{name:this.name,code:this.code,severity:this.severity,message:this.message,shouldCrash:this.shouldCrash,details:this.details,timestamp:this.timestamp.toISOString(),stack:this.stack,originalError:this.originalError?{name:this.originalError.name,message:this.originalError.message,stack:this.originalError.stack}:null}}isCritical(){return this.severity===SecureGuardError.SEVERITY.CRITICAL||this.shouldCrash}isNetworkError(){return this.code.startsWith("NETWORK_")||this.code.startsWith("DATABASE_")}getUserMessage(){return{[SecureGuardError.CODES.LICENSE_INVALID]:"Invalid license key provided",[SecureGuardError.CODES.LICENSE_EXPIRED]:"License has expired",[SecureGuardError.CODES.LICENSE_BLACKLISTED]:"License has been revoked",[SecureGuardError.CODES.LICENSE_MISSING]:"No license key provided",[SecureGuardError.CODES.TAMPER_DETECTED]:"Security violation detected",[SecureGuardError.CODES.INTEGRITY_VIOLATION]:"Package integrity compromised",[SecureGuardError.CODES.NETWORK_CONNECTION_FAILED]:"Network connection failed",[SecureGuardError.CODES.DATABASE_CONNECTION_FAILED]:"Database connection failed",[SecureGuardError.CODES.USAGE_LIMIT_EXCEEDED]:"Usage limits exceeded",[SecureGuardError.CODES.ENVIRONMENT_MISMATCH]:"Unauthorized environment detected",[SecureGuardError.CODES.INITIALIZATION_FAILED]:"Failed to initialize security package"}[this.code]||this.message}static createLicenseError(r,E){const e={licenseKey:r,reason:E};switch(E){case"expired":return new SecureGuardError(SecureGuardError.CODES.LICENSE_EXPIRED,SecureGuardError.SEVERITY.CRITICAL,`License ${r} has expired`,!0,e);case"blacklisted":return new SecureGuardError(SecureGuardError.CODES.LICENSE_BLACKLISTED,SecureGuardError.SEVERITY.CRITICAL,`License ${r} has been blacklisted`,!0,e);case"invalid":return new SecureGuardError(SecureGuardError.CODES.LICENSE_INVALID,SecureGuardError.SEVERITY.CRITICAL,`License ${r} is invalid`,!0,e);default:return new SecureGuardError(SecureGuardError.CODES.LICENSE_INVALID,SecureGuardError.SEVERITY.CRITICAL,`License validation failed: ${E}`,!0,e)}}static createTamperError(r,E){return new SecureGuardError(SecureGuardError.CODES.TAMPER_DETECTED,SecureGuardError.SEVERITY.CRITICAL,`Tampering detected in ${r}`,!0,{component:r,details:E})}static createNetworkError(r,E){return new SecureGuardError(SecureGuardError.CODES.NETWORK_CONNECTION_FAILED,SecureGuardError.SEVERITY.HIGH,`Failed to connect to ${r}`,!1,{endpoint:r},E)}static createUsageError(r,E,e){return new SecureGuardError(SecureGuardError.CODES.USAGE_LIMIT_EXCEEDED,SecureGuardError.SEVERITY.HIGH,`${r} limit exceeded: ${E}/${e}`,!1,{limitType:r,current:E,limit:e})}}module.exports=SecureGuardError;