UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 4.51 kB
import*as Common from"../common/common.js";import*as Platform from"../platform/platform.js";import*as ProtocolClient from"../protocol_client/protocol_client.js";import{SDKModel}from"./SDKModel.js";export class Target extends ProtocolClient.InspectorBackend.TargetBase{#e;#t;#a;#i;#r;#s;#n;#o;#l;#p;#c;#d;constructor(e,t,a,i,r,s,n,o,l){switch(super(i===Type.Node,r,s,o),this.#e=e,this.#t=a,this.#a=Platform.DevToolsPath.EmptyUrlString,this.#i="",this.#r=0,i){case Type.Frame:this.#r=Capability.Browser|Capability.Storage|Capability.DOM|Capability.JS|Capability.Log|Capability.Network|Capability.Target|Capability.Tracing|Capability.Emulation|Capability.Input|Capability.Inspector|Capability.Audits|Capability.WebAuthn|Capability.IO|Capability.Media,r?.type()!==Type.Frame&&(this.#r|=Capability.DeviceEmulation|Capability.ScreenCapture|Capability.Security|Capability.ServiceWorker,l?.url.startsWith("chrome-extension://")&&(this.#r&=~Capability.Security));break;case Type.ServiceWorker:this.#r=Capability.JS|Capability.Log|Capability.Network|Capability.Target|Capability.Inspector|Capability.IO,r?.type()!==Type.Frame&&(this.#r|=Capability.Browser);break;case Type.SharedWorker:this.#r=Capability.JS|Capability.Log|Capability.Network|Capability.Target|Capability.IO|Capability.Media|Capability.Inspector;break;case Type.Worker:this.#r=Capability.JS|Capability.Log|Capability.Network|Capability.Target|Capability.IO|Capability.Media|Capability.Emulation;break;case Type.Node:this.#r=Capability.JS;break;case Type.AuctionWorklet:this.#r=Capability.JS|Capability.EventBreakpoints;break;case Type.Browser:this.#r=Capability.Target|Capability.IO;break;case Type.Tab:this.#r=Capability.Target|Capability.Tracing}this.#s=i,this.#n=r,this.#o=t,this.#l=new Map,this.#p=n,this.#c=l}createModels(e){this.#d=!0;const t=Array.from(SDKModel.registeredModels.entries());for(const[e,a]of t)a.early&&this.model(e);for(const[a,i]of t)(i.autostart||e.has(a))&&this.model(a);this.#d=!1}id(){return this.#o}name(){return this.#t||this.#i}setName(e){this.#t!==e&&(this.#t=e,this.#e.onNameChange(this))}type(){return this.#s}markAsNodeJSForTest(){super.markAsNodeJSForTest(),this.#s=Type.Node}targetManager(){return this.#e}hasAllCapabilities(e){return(this.#r&e)===e}decorateLabel(e){return this.#s===Type.Worker||this.#s===Type.ServiceWorker?"⚙ "+e:e}parentTarget(){return this.#n}outermostTarget(){let e=null,t=this;do{t.type()!==Type.Tab&&t.type()!==Type.Browser&&(e=t),t=t.parentTarget()}while(t);return e}dispose(e){super.dispose(e),this.#e.removeTarget(this);for(const e of this.#l.values())e.dispose()}model(e){if(!this.#l.get(e)){const t=SDKModel.registeredModels.get(e);if(void 0===t)throw"Model class is not registered @"+(new Error).stack;if((this.#r&t.capabilities)===t.capabilities){const t=new e(this);this.#l.set(e,t),this.#d||this.#e.modelAdded(this,e,t,this.#e.isInScope(this))}}return this.#l.get(e)||null}models(){return this.#l}inspectedURL(){return this.#a}setInspectedURL(e){this.#a=e;const t=Common.ParsedURL.ParsedURL.fromString(e);this.#i=t?t.lastPathComponentWithFragment():"#"+this.#o,this.#e.onInspectedURLChange(this),this.#t||this.#e.onNameChange(this)}async suspend(e){this.#p||(this.#p=!0,await Promise.all(Array.from(this.models().values(),(t=>t.preSuspendModel(e)))),await Promise.all(Array.from(this.models().values(),(t=>t.suspendModel(e)))))}async resume(){this.#p&&(this.#p=!1,await Promise.all(Array.from(this.models().values(),(e=>e.resumeModel()))),await Promise.all(Array.from(this.models().values(),(e=>e.postResumeModel()))))}suspended(){return this.#p}updateTargetInfo(e){this.#c=e}targetInfo(){return this.#c}}export var Type;!function(e){e.Frame="frame",e.ServiceWorker="service-worker",e.Worker="worker",e.SharedWorker="shared-worker",e.Node="node",e.Browser="browser",e.AuctionWorklet="auction-worklet",e.Tab="tab"}(Type||(Type={}));export var Capability;!function(e){e[e.Browser=1]="Browser",e[e.DOM=2]="DOM",e[e.JS=4]="JS",e[e.Log=8]="Log",e[e.Network=16]="Network",e[e.Target=32]="Target",e[e.ScreenCapture=64]="ScreenCapture",e[e.Tracing=128]="Tracing",e[e.Emulation=256]="Emulation",e[e.Security=512]="Security",e[e.Input=1024]="Input",e[e.Inspector=2048]="Inspector",e[e.DeviceEmulation=4096]="DeviceEmulation",e[e.Storage=8192]="Storage",e[e.ServiceWorker=16384]="ServiceWorker",e[e.Audits=32768]="Audits",e[e.WebAuthn=65536]="WebAuthn",e[e.IO=131072]="IO",e[e.Media=262144]="Media",e[e.EventBreakpoints=524288]="EventBreakpoints",e[e.None=0]="None"}(Capability||(Capability={}));