@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 4.61 kB
JavaScript
import*as i18n from"../../core/i18n/i18n.js";import*as SDK from"../../core/sdk/sdk.js";const UIStrings={theSecurityOfThisPageIsUnknown:"The security of this page is unknown.",thisPageIsNotSecure:"This page is not secure.",thisPageIsSecureValidHttps:"This page is secure (valid HTTPS).",thisPageIsNotSecureBrokenHttps:"This page is not secure (broken HTTPS).",cipherWithMAC:"{PH1} with {PH2}",keyExchangeWithGroup:"{PH1} with {PH2}"},str_=i18n.i18n.registerUIStrings("panels/security/SecurityModel.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_),i18nLazyString=i18n.i18n.getLazilyComputedLocalizedString.bind(void 0,str_);export class SecurityModel extends SDK.SDKModel.SDKModel{dispatcher;securityAgent;constructor(e){super(e),this.dispatcher=new SecurityDispatcher(this),this.securityAgent=e.securityAgent(),e.registerSecurityDispatcher(this.dispatcher),this.securityAgent.invoke_enable()}resourceTreeModel(){return this.target().model(SDK.ResourceTreeModel.ResourceTreeModel)}networkManager(){return this.target().model(SDK.NetworkManager.NetworkManager)}static SecurityStateComparator(e,t){const i=getOrCreateSecurityStateOrdinalMap();return(e&&i.get(e)||0)-(t&&i.get(t)||0)}}let securityStateToOrdinal=null;const getOrCreateSecurityStateOrdinalMap=()=>{if(!securityStateToOrdinal){securityStateToOrdinal=new Map;const e=["info","insecure-broken","insecure","neutral","secure","unknown"];for(let t=0;t<e.length;t++)securityStateToOrdinal.set(e[t],t+1)}return securityStateToOrdinal};SDK.SDKModel.SDKModel.register(SecurityModel,{capabilities:SDK.Target.Capability.Security,autostart:!1});export var Events;!function(e){e.VisibleSecurityStateChanged="VisibleSecurityStateChanged"}(Events||(Events={}));export const SummaryMessages={unknown:i18nLazyString(UIStrings.theSecurityOfThisPageIsUnknown),insecure:i18nLazyString(UIStrings.thisPageIsNotSecure),neutral:i18nLazyString(UIStrings.thisPageIsNotSecure),secure:i18nLazyString(UIStrings.thisPageIsSecureValidHttps),"insecure-broken":i18nLazyString(UIStrings.thisPageIsNotSecureBrokenHttps)};export class PageVisibleSecurityState{securityState;certificateSecurityState;safetyTipInfo;securityStateIssueIds;constructor(e,t,i,r){this.securityState=e,this.certificateSecurityState=t?new CertificateSecurityState(t):null,this.safetyTipInfo=i?new SafetyTipInfo(i):null,this.securityStateIssueIds=r}}export class CertificateSecurityState{protocol;keyExchange;keyExchangeGroup;cipher;mac;certificate;subjectName;issuer;validFrom;validTo;certificateNetworkError;certificateHasWeakSignature;certificateHasSha1Signature;modernSSL;obsoleteSslProtocol;obsoleteSslKeyExchange;obsoleteSslCipher;obsoleteSslSignature;constructor(e){this.protocol=e.protocol,this.keyExchange=e.keyExchange,this.keyExchangeGroup=e.keyExchangeGroup||null,this.cipher=e.cipher,this.mac=e.mac||null,this.certificate=e.certificate,this.subjectName=e.subjectName,this.issuer=e.issuer,this.validFrom=e.validFrom,this.validTo=e.validTo,this.certificateNetworkError=e.certificateNetworkError||null,this.certificateHasWeakSignature=e.certificateHasWeakSignature,this.certificateHasSha1Signature=e.certificateHasSha1Signature,this.modernSSL=e.modernSSL,this.obsoleteSslProtocol=e.obsoleteSslProtocol,this.obsoleteSslKeyExchange=e.obsoleteSslKeyExchange,this.obsoleteSslCipher=e.obsoleteSslCipher,this.obsoleteSslSignature=e.obsoleteSslSignature}isCertificateExpiringSoon(){const e=new Date(1e3*this.validTo).getTime();return e<new Date(Date.now()).setHours(48)&&e>Date.now()}getKeyExchangeName(){return this.keyExchangeGroup?this.keyExchange?i18nString(UIStrings.keyExchangeWithGroup,{PH1:this.keyExchange,PH2:this.keyExchangeGroup}):this.keyExchangeGroup:this.keyExchange}getCipherFullName(){return this.mac?i18nString(UIStrings.cipherWithMAC,{PH1:this.cipher,PH2:this.mac}):this.cipher}}class SafetyTipInfo{safetyTipStatus;safeUrl;constructor(e){this.safetyTipStatus=e.safetyTipStatus,this.safeUrl=e.safeUrl||null}}export class SecurityStyleExplanation{securityState;title;summary;description;certificate;mixedContentType;recommendations;constructor(e,t,i,r,s=[],a="none",n=[]){this.securityState=e,this.title=t,this.summary=i,this.description=r,this.certificate=s,this.mixedContentType=a,this.recommendations=n}}class SecurityDispatcher{model;constructor(e){this.model=e}securityStateChanged(e){}visibleSecurityStateChanged({visibleSecurityState:e}){const t=new PageVisibleSecurityState(e.securityState,e.certificateSecurityState||null,e.safetyTipInfo||null,e.securityStateIssueIds);this.model.dispatchEventToListeners(Events.VisibleSecurityStateChanged,t)}certificateError(e){}}