UNPKG

nstbrowser-sdk-node

Version:
1 lines 262 kB
"use strict";var e=require("./main-8d315244.js"),t=require("crypto");require("axios"),require("fs/promises"),require("os"),require("path"),require("child_process"),require("fs"),require("readline"),require("http"),require("https"),require("url"),require("net"),require("tty"),require("util"),require("tls"),require("events"),require("assert"),require("buffer"),require("stream"),require("dns"),require("constants"),require("zlib"),require("process");var r={},s={},n={};var i=Object.freeze({__proto__:null,default:function(e){return{all:e=e||new Map,on:function(t,r){var s=e.get(t);s?s.push(r):e.set(t,[r])},off:function(t,r){var s=e.get(t);s&&(r?s.splice(s.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var s=e.get(t);s&&s.slice().map((function(e){e(r)})),(s=e.get("*"))&&s.slice().map((function(e){e(t,r)}))}}}}),o=e.getAugmentedNamespace(i),a=e.commonjsGlobal&&e.commonjsGlobal.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(n,"__esModule",{value:!0}),n.EventEmitter=void 0;const c=a(o);n.EventEmitter=class{#e=(0,c.default)();on(e,t){return this.#e.on(e,t),this}once(e,t){const r=s=>{t(s),this.off(e,r)};return this.on(e,r)}off(e,t){return this.#e.off(e,t),this}emit(e,t){this.#e.emit(e,t)}removeAllListeners(e){return e?this.#e.all.delete(e):this.#e.all.clear(),this}};var d,u={};Object.defineProperty(u,"__esModule",{value:!0}),u.LogType=void 0,function(e){e.bidi="bidi",e.cdp="cdp",e.debug="debug",e.debugError="debug:error",e.debugInfo="debug:info"}(d||(u.LogType=d={}));var l={};Object.defineProperty(l,"__esModule",{value:!0}),l.ProcessingQueue=void 0;const h=u;class p{static LOGGER_PREFIX=`${h.LogType.debug}:queue`;#t;#r;#s=[];#n=!1;constructor(e,t){this.#r=e,this.#t=t}add(e,t){this.#s.push([e,t]),this.#i()}async#i(){if(!this.#n){for(this.#n=!0;this.#s.length>0;){const e=this.#s.shift();if(!e)continue;const[t,r]=e;this.#t?.(p.LOGGER_PREFIX,"Processing event:",r),await t.then((e=>{if("error"!==e.kind)return this.#r(e.value);this.#t?.(h.LogType.debugError,"Event threw before sending:",e.error.message,e.error.stack)})).catch((e=>{this.#t?.(h.LogType.debugError,"Event was not processed:",e?.message)}))}this.#n=!1}}}l.ProcessingQueue=p;var m={},g={},f={};Object.defineProperty(f,"__esModule",{value:!0});var w,v,y,b,C,x={};Object.defineProperty(x,"__esModule",{value:!0}),x.EVENT_NAMES=x.Network=x.BrowsingContext=x.Log=x.Script=x.BiDiModule=void 0,function(e){e.Browser="browser",e.BrowsingContext="browsingContext",e.Cdp="cdp",e.Input="input",e.Log="log",e.Network="network",e.Script="script",e.Session="session"}(w||(x.BiDiModule=w={})),function(e){var t;(t=e.EventNames||(e.EventNames={})).Message="script.message",t.RealmCreated="script.realmCreated",t.RealmDestroyed="script.realmDestroyed"}(v||(x.Script=v={})),function(e){(e.EventNames||(e.EventNames={})).LogEntryAdded="log.entryAdded"}(y||(x.Log=y={})),function(e){var t;(t=e.EventNames||(e.EventNames={})).ContextCreated="browsingContext.contextCreated",t.ContextDestroyed="browsingContext.contextDestroyed",t.DomContentLoaded="browsingContext.domContentLoaded",t.DownloadWillBegin="browsingContext.downloadWillBegin",t.FragmentNavigated="browsingContext.fragmentNavigated",t.Load="browsingContext.load",t.NavigationAborted="browsingContext.navigationAborted",t.NavigationFailed="browsingContext.navigationFailed",t.NavigationStarted="browsingContext.navigationStarted",t.UserPromptClosed="browsingContext.userPromptClosed",t.UserPromptOpened="browsingContext.userPromptOpened"}(b||(x.BrowsingContext=b={})),function(e){var t;(t=e.EventNames||(e.EventNames={})).AuthRequired="network.authRequired",t.BeforeRequestSent="network.beforeRequestSent",t.FetchError="network.fetchError",t.ResponseCompleted="network.responseCompleted",t.ResponseStarted="network.responseStarted"}(C||(x.Network=C={})),x.EVENT_NAMES=new Set([...Object.values(w),...Object.values(b.EventNames),...Object.values(y.EventNames),...Object.values(C.EventNames),...Object.values(v.EventNames)]);var S={};Object.defineProperty(S,"__esModule",{value:!0});var E={};Object.defineProperty(E,"__esModule",{value:!0}),E.UnderspecifiedStoragePartitionException=E.UnableToSetFileInputException=E.UnableToSetCookieException=E.NoSuchStoragePartitionException=E.UnsupportedOperationException=E.UnableToCloseBrowserException=E.UnableToCaptureScreenException=E.UnknownErrorException=E.UnknownCommandException=E.SessionNotCreatedException=E.NoSuchUserContextException=E.NoSuchScriptException=E.NoSuchRequestException=E.NoSuchNodeException=E.NoSuchInterceptException=E.NoSuchHistoryEntryException=E.NoSuchHandleException=E.NoSuchFrameException=E.NoSuchElementException=E.NoSuchAlertException=E.MoveTargetOutOfBoundsException=E.InvalidSessionIdException=E.InvalidSelectorException=E.InvalidArgumentException=E.Exception=void 0;class P extends Error{error;message;stacktrace;constructor(e,t,r){super(),this.error=e,this.message=t,this.stacktrace=r}toErrorResponse(e){return{type:"error",id:e,error:this.error,message:this.message,stacktrace:this.stacktrace}}}E.Exception=P;E.InvalidArgumentException=class extends P{constructor(e,t){super("invalid argument",e,t)}};E.InvalidSelectorException=class extends P{constructor(e,t){super("invalid selector",e,t)}};E.InvalidSessionIdException=class extends P{constructor(e,t){super("invalid session id",e,t)}};E.MoveTargetOutOfBoundsException=class extends P{constructor(e,t){super("move target out of bounds",e,t)}};E.NoSuchAlertException=class extends P{constructor(e,t){super("no such alert",e,t)}};E.NoSuchElementException=class extends P{constructor(e,t){super("no such element",e,t)}};E.NoSuchFrameException=class extends P{constructor(e,t){super("no such frame",e,t)}};E.NoSuchHandleException=class extends P{constructor(e,t){super("no such handle",e,t)}};E.NoSuchHistoryEntryException=class extends P{constructor(e,t){super("no such history entry",e,t)}};E.NoSuchInterceptException=class extends P{constructor(e,t){super("no such intercept",e,t)}};E.NoSuchNodeException=class extends P{constructor(e,t){super("no such node",e,t)}};E.NoSuchRequestException=class extends P{constructor(e,t){super("no such request",e,t)}};E.NoSuchScriptException=class extends P{constructor(e,t){super("no such script",e,t)}};E.NoSuchUserContextException=class extends P{constructor(e,t){super("no such user context",e,t)}};E.SessionNotCreatedException=class extends P{constructor(e,t){super("session not created",e,t)}};E.UnknownCommandException=class extends P{constructor(e,t){super("unknown command",e,t)}};E.UnknownErrorException=class extends P{constructor(e,t=(new Error).stack){super("unknown error",e,t)}};E.UnableToCaptureScreenException=class extends P{constructor(e,t){super("unable to capture screen",e,t)}};E.UnableToCloseBrowserException=class extends P{constructor(e,t){super("unable to close browser",e,t)}};E.UnsupportedOperationException=class extends P{constructor(e,t){super("unsupported operation",e,t)}};E.NoSuchStoragePartitionException=class extends P{constructor(e,t){super("no such storage partition",e,t)}};E.UnableToSetCookieException=class extends P{constructor(e,t){super("unable to set cookie",e,t)}};E.UnableToSetFileInputException=class extends P{constructor(e,t){super("unable to set file input",e,t)}};E.UnderspecifiedStoragePartitionException=class extends P{constructor(e,t){super("underspecified storage partition",e,t)}};var I={};Object.defineProperty(I,"__esModule",{value:!0}),function(t){var r=e.commonjsGlobal&&e.commonjsGlobal.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,n)}:function(e,t,r,s){void 0===s&&(s=r),e[s]=t[r]}),s=e.commonjsGlobal&&e.commonjsGlobal.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=e.commonjsGlobal&&e.commonjsGlobal.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return s(t,e),t},i=e.commonjsGlobal&&e.commonjsGlobal.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||r(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),t.ChromiumBidi=t.Cdp=void 0,t.Cdp=n(f),t.ChromiumBidi=n(x),i(S,t),i(E,t),i(I,t)}(g);var k={};Object.defineProperty(k,"__esModule",{value:!0}),k.BidiNoOpParser=void 0;k.BidiNoOpParser=class{parseRemoveUserContextParams(e){return e}parseActivateParams(e){return e}parseCaptureScreenshotParams(e){return e}parseCloseParams(e){return e}parseCreateParams(e){return e}parseGetTreeParams(e){return e}parseHandleUserPromptParams(e){return e}parseLocateNodesParams(e){return e}parseNavigateParams(e){return e}parsePrintParams(e){return e}parseReloadParams(e){return e}parseSetViewportParams(e){return e}parseTraverseHistoryParams(e){return e}parseGetSessionParams(e){return e}parseResolveRealmParams(e){return e}parseSendCommandParams(e){return e}parseAddPreloadScriptParams(e){return e}parseCallFunctionParams(e){return e}parseDisownParams(e){return e}parseEvaluateParams(e){return e}parseGetRealmsParams(e){return e}parseRemovePreloadScriptParams(e){return e}parsePerformActionsParams(e){return e}parseReleaseActionsParams(e){return e}parseSetFilesParams(e){return e}parseAddInterceptParams(e){return e}parseContinueRequestParams(e){return e}parseContinueResponseParams(e){return e}parseContinueWithAuthParams(e){return e}parseFailRequestParams(e){return e}parseProvideResponseParams(e){return e}parseRemoveInterceptParams(e){return e}parseSetPermissionsParams(e){return e}parseSubscribeParams(e){return e}parseDeleteCookiesParams(e){return e}parseGetCookiesParams(e){return e}parseSetCookieParams(e){return e}};var T={};Object.defineProperty(T,"__esModule",{value:!0}),T.BrowserProcessor=void 0;const O=g;T.BrowserProcessor=class{#o;constructor(e){this.#o=e}close(){return setTimeout((()=>this.#o.sendCommand("Browser.close")),0),{}}async createUserContext(e){const t={proxyServer:e["goog:proxyServer"]??void 0},r=e["goog:proxyBypassList"]??void 0;r&&(t.proxyBypassList=r.join(","));return{userContext:(await this.#o.sendCommand("Target.createBrowserContext",t)).browserContextId}}async removeUserContext(e){const t=e.userContext;if("default"===t)throw new O.InvalidArgumentException("`default` user context cannot be removed");try{await this.#o.sendCommand("Target.disposeBrowserContext",{browserContextId:t})}catch(e){if(e.message.startsWith("Failed to find context with id"))throw new O.NoSuchUserContextException(e.message);throw e}return{}}async getUserContexts(){return{userContexts:[{userContext:"default"},...(await this.#o.sendCommand("Target.getBrowserContexts")).browserContextIds.map((e=>({userContext:e})))]}}};var R={};Object.defineProperty(R,"__esModule",{value:!0}),R.CdpProcessor=void 0;const N=g;R.CdpProcessor=class{#a;#c;#d;#o;constructor(e,t,r,s){this.#a=e,this.#c=t,this.#d=r,this.#o=s}getSession(e){const t=e.context,r=this.#a.getContext(t).cdpTarget.cdpSessionId;return void 0===r?{}:{session:r}}resolveRealm(e){const t=e.realm,r=this.#c.getRealm({realmId:t});if(void 0===r)throw new N.UnknownErrorException(`Could not find realm ${e.realm}`);return{executionContextId:r.executionContextId}}async sendCommand(e){const t=e.session?this.#d.getCdpClient(e.session):this.#o;return{result:await t.sendCommand(e.method,e.params),session:e.session}}};var M={};Object.defineProperty(M,"__esModule",{value:!0}),M.BrowsingContextProcessor=void 0;const D=g;M.BrowsingContextProcessor=class{#o;#a;#u;constructor(e,t,r){this.#o=e,this.#a=t,this.#u=r,this.#u.addSubscribeHook(D.ChromiumBidi.BrowsingContext.EventNames.ContextCreated,this.#l.bind(this))}getTree(e){return{contexts:(void 0===e.root?this.#a.getTopLevelContexts():[this.#a.getContext(e.root)]).map((t=>t.serializeToBidiValue(e.maxDepth??Number.MAX_VALUE)))}}async create(e){let t,r="default";if(void 0!==e.referenceContext){if(t=this.#a.getContext(e.referenceContext),!t.isTopLevelContext())throw new D.InvalidArgumentException("referenceContext should be a top-level context");r=t.userContext}void 0!==e.userContext&&(r=e.userContext);const s=this.#a.getAllContexts().filter((e=>e.userContext===r));let n,i=!1;switch(e.type){case"tab":i=!1;break;case"window":i=!0}s.length||(i=!0);try{n=await this.#o.sendCommand("Target.createTarget",{url:"about:blank",newWindow:i,browserContextId:"default"===r?void 0:r,background:!0===e.background})}catch(e){if(e.message.startsWith("Failed to find browser context with id")||"browserContextId"===e.message)throw new D.NoSuchUserContextException(`The context ${r} was not found`);throw e}const o=n.targetId,a=this.#a.getContext(o);return await a.lifecycleLoaded(),{context:a.id}}navigate(e){return this.#a.getContext(e.context).navigate(e.url,e.wait??"none")}reload(e){return this.#a.getContext(e.context).reload(e.ignoreCache??!1,e.wait??"none")}async activate(e){const t=this.#a.getContext(e.context);if(!t.isTopLevelContext())throw new D.InvalidArgumentException("Activation is only supported on the top-level context");return await t.activate(),{}}async captureScreenshot(e){const t=this.#a.getContext(e.context);return await t.captureScreenshot(e)}async print(e){const t=this.#a.getContext(e.context);return await t.print(e)}async setViewport(e){const t=this.#a.getContext(e.context);if(!t.isTopLevelContext())throw new D.InvalidArgumentException("Emulating viewport is only supported on the top-level context");return await t.setViewport(e.viewport,e.devicePixelRatio),{}}async traverseHistory(e){const t=this.#a.getContext(e.context);if(!t)throw new D.InvalidArgumentException(`No browsing context with id ${e.context}`);return await t.traverseHistory(e.delta),{}}async handleUserPrompt(e){const t=this.#a.getContext(e.context);try{await t.handleUserPrompt(e.accept,e.userText)}catch(e){if(e.message?.includes("No dialog is showing"))throw new D.NoSuchAlertException("No dialog is showing");throw e}return{}}async close(e){const t=this.#a.getContext(e.context);if(!t.isTopLevelContext())throw new D.InvalidArgumentException(`Non top-level browsing context ${t.id} cannot be closed.`);try{const r=new Promise((t=>{const r=s=>{s.targetId===e.context&&(this.#o.off("Target.detachedFromTarget",r),t())};this.#o.on("Target.detachedFromTarget",r)}));e.promptUnload?await t.close():await this.#o.sendCommand("Target.closeTarget",{targetId:e.context}),await r}catch(e){if(-32e3!==e.code||"Not attached to an active page"!==e.message)throw e}return{}}async locateNodes(e){const t=this.#a.getContext(e.context);return await t.locateNodes(e)}#l(e){return[this.#a.getContext(e),...this.#a.getContext(e).allChildren].forEach((e=>{this.#u.registerEvent({type:"event",method:D.ChromiumBidi.BrowsingContext.EventNames.ContextCreated,params:e.serializeToBidiValue()},e.id)})),Promise.resolve()}};var F={},B={};Object.defineProperty(B,"__esModule",{value:!0}),B.assert=function(e,t){if(!e)throw new Error(t??"Internal assertion failed.")};var A={},q={};function j(e){return 1===[...new Intl.Segmenter("en",{granularity:"grapheme"}).segment(e)].length}Object.defineProperty(q,"__esModule",{value:!0}),q.isSingleComplexGrapheme=function(e){return j(e)&&e.length>1},q.isSingleGrapheme=j;var U={};Object.defineProperty(U,"__esModule",{value:!0}),U.WheelSource=U.PointerSource=U.KeySource=U.NoneSource=void 0;U.NoneSource=class{type="none"};U.KeySource=class{type="key";pressed=new Set;#h=0;get modifiers(){return this.#h}get alt(){return!(1&~this.#h)}set alt(e){this.#p(e,1)}get ctrl(){return!(2&~this.#h)}set ctrl(e){this.#p(e,2)}get meta(){return!(4&~this.#h)}set meta(e){this.#p(e,4)}get shift(){return!(8&~this.#h)}set shift(e){this.#p(e,8)}#p(e,t){e?this.#h|=t:this.#h&=~t}};U.PointerSource=class{type="pointer";subtype;pointerId;pressed=new Set;x=0;y=0;radiusX;radiusY;force;constructor(e,t){this.pointerId=e,this.subtype=t}get buttons(){let e=0;for(const t of this.pressed)switch(t){case 0:e|=1;break;case 1:e|=4;break;case 2:e|=2;break;case 3:e|=8;break;case 4:e|=16}return e}static ClickContext=class e{static#m=500;static#g=2;count=0;#f;#w;#v;constructor(e,t,r){this.#f=e,this.#w=t,this.#v=r}compare(t){return t.#v-this.#v>e.#m||Math.abs(t.#f-this.#f)>e.#g||Math.abs(t.#w-this.#w)>e.#g}};#y=new Map;setClickCount(e,t){let r=this.#y.get(e);return r&&!r.compare(t)||(r=t),++r.count,this.#y.set(e,r),r.count}getClickCount(e){return this.#y.get(e)?.count??0}};U.WheelSource=class{type="wheel"};var L={};Object.defineProperty(L,"__esModule",{value:!0}),L.getNormalizedKey=function(e){switch(e){case"":return"Unidentified";case"":return"Cancel";case"":return"Help";case"":return"Backspace";case"":return"Tab";case"":return"Clear";case"":case"":return"Enter";case"":case"":return"Shift";case"":case"":return"Control";case"":case"":return"Alt";case"":return"Pause";case"":return"Escape";case"":return" ";case"":case"":return"PageUp";case"":case"":return"PageDown";case"":case"":return"End";case"":case"":return"Home";case"":case"":return"ArrowLeft";case"":case"":return"ArrowUp";case"":case"":return"ArrowRight";case"":case"":return"ArrowDown";case"":case"":return"Insert";case"":case"":return"Delete";case"":return";";case"":return"=";case"":return"0";case"":return"1";case"":return"2";case"":return"3";case"":return"4";case"":return"5";case"":return"6";case"":return"7";case"":return"8";case"":return"9";case"":return"*";case"":return"+";case"":return",";case"":return"-";case"":return".";case"":return"/";case"":return"F1";case"":return"F2";case"":return"F3";case"":return"F4";case"":return"F5";case"":return"F6";case"":return"F7";case"":return"F8";case"":return"F9";case"":return"F10";case"":return"F11";case"":return"F12";case"":case"":return"Meta";case"":return"ZenkakuHankaku";default:return e}},L.getKeyCode=function(e){switch(e){case"`":case"~":return"Backquote";case"\\":case"|":return"Backslash";case"":return"Backspace";case"[":case"{":return"BracketLeft";case"]":case"}":return"BracketRight";case",":case"<":return"Comma";case"0":case")":return"Digit0";case"1":case"!":return"Digit1";case"2":case"@":return"Digit2";case"3":case"#":return"Digit3";case"4":case"$":return"Digit4";case"5":case"%":return"Digit5";case"6":case"^":return"Digit6";case"7":case"&":return"Digit7";case"8":case"*":return"Digit8";case"9":case"(":return"Digit9";case"=":case"+":return"Equal";case">":return"IntlBackslash";case"a":case"A":return"KeyA";case"b":case"B":return"KeyB";case"c":case"C":return"KeyC";case"d":case"D":return"KeyD";case"e":case"E":return"KeyE";case"f":case"F":return"KeyF";case"g":case"G":return"KeyG";case"h":case"H":return"KeyH";case"i":case"I":return"KeyI";case"j":case"J":return"KeyJ";case"k":case"K":return"KeyK";case"l":case"L":return"KeyL";case"m":case"M":return"KeyM";case"n":case"N":return"KeyN";case"o":case"O":return"KeyO";case"p":case"P":return"KeyP";case"q":case"Q":return"KeyQ";case"r":case"R":return"KeyR";case"s":case"S":return"KeyS";case"t":case"T":return"KeyT";case"u":case"U":return"KeyU";case"v":case"V":return"KeyV";case"w":case"W":return"KeyW";case"x":case"X":return"KeyX";case"y":case"Y":return"KeyY";case"z":case"Z":return"KeyZ";case"-":case"_":return"Minus";case".":return"Period";case"'":case'"':return"Quote";case";":case":":return"Semicolon";case"/":case"?":return"Slash";case"":return"AltLeft";case"":return"AltRight";case"":return"ControlLeft";case"":return"ControlRight";case"":return"Enter";case"":return"Pause";case"":return"MetaLeft";case"":return"MetaRight";case"":return"ShiftLeft";case"":return"ShiftRight";case" ":case"":return"Space";case"":return"Tab";case"":return"Delete";case"":return"End";case"":return"Help";case"":return"Home";case"":return"Insert";case"":return"PageDown";case"":return"PageUp";case"":return"ArrowDown";case"":return"ArrowLeft";case"":return"ArrowRight";case"":return"ArrowUp";case"":return"Escape";case"":return"F1";case"":return"F2";case"":return"F3";case"":return"F4";case"":return"F5";case"":return"F6";case"":return"F7";case"":return"F8";case"":return"F9";case"":return"F10";case"":return"F11";case"":return"F12";case"":return"NumpadEqual";case"":case"":return"Numpad0";case"":case"":return"Numpad1";case"":case"":return"Numpad2";case"":case"":return"Numpad3";case"":case"":return"Numpad4";case"":return"Numpad5";case"":case"":return"Numpad6";case"":case"":return"Numpad7";case"":case"":return"Numpad8";case"":case"":return"Numpad9";case"":return"NumpadAdd";case"":return"NumpadComma";case"":case"":return"NumpadDecimal";case"":return"NumpadDivide";case"":return"NumpadEnter";case"":return"NumpadMultiply";case"":return"NumpadSubtract";default:return}},L.getKeyLocation=function(e){switch(e){case"":case"":case"":case"":case"":return 1;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":return 3;case"":case"":case"":case"":return 2;default:return 0}};var _={};Object.defineProperty(_,"__esModule",{value:!0}),_.KeyToKeyCode=void 0,_.KeyToKeyCode={0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,Abort:3,Help:6,Backspace:8,Tab:9,Numpad5:12,NumpadEnter:13,Enter:13,"\\r":13,"\\n":13,ShiftLeft:16,ShiftRight:16,ControlLeft:17,ControlRight:17,AltLeft:18,AltRight:18,Pause:19,CapsLock:20,Escape:27,Convert:28,NonConvert:29,Space:32,Numpad9:33,PageUp:33,Numpad3:34,PageDown:34,End:35,Numpad1:35,Home:36,Numpad7:36,ArrowLeft:37,Numpad4:37,Numpad8:38,ArrowUp:38,ArrowRight:39,Numpad6:39,Numpad2:40,ArrowDown:40,Select:41,Open:43,PrintScreen:44,Insert:45,Numpad0:45,Delete:46,NumpadDecimal:46,Digit0:48,Digit1:49,Digit2:50,Digit3:51,Digit4:52,Digit5:53,Digit6:54,Digit7:55,Digit8:56,Digit9:57,KeyA:65,KeyB:66,KeyC:67,KeyD:68,KeyE:69,KeyF:70,KeyG:71,KeyH:72,KeyI:73,KeyJ:74,KeyK:75,KeyL:76,KeyM:77,KeyN:78,KeyO:79,KeyP:80,KeyQ:81,KeyR:82,KeyS:83,KeyT:84,KeyU:85,KeyV:86,KeyW:87,KeyX:88,KeyY:89,KeyZ:90,MetaLeft:91,MetaRight:92,ContextMenu:93,NumpadMultiply:106,NumpadAdd:107,NumpadSubtract:109,NumpadDivide:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,F16:127,F17:128,F18:129,F19:130,F20:131,F21:132,F22:133,F23:134,F24:135,NumLock:144,ScrollLock:145,AudioVolumeMute:173,AudioVolumeDown:174,AudioVolumeUp:175,MediaTrackNext:176,MediaTrackPrevious:177,MediaStop:178,MediaPlayPause:179,Semicolon:186,Equal:187,NumpadEqual:187,Comma:188,Minus:189,Period:190,Slash:191,Backquote:192,BracketLeft:219,Backslash:220,BracketRight:221,Quote:222,AltGraph:225,Props:247,Cancel:3,Clear:12,Shift:16,Control:17,Alt:18,Accept:30,ModeChange:31," ":32,Print:42,Execute:43,"\\u0000":46,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,Meta:91,"*":106,"+":107,"-":109,"/":111,";":186,"=":187,",":188,".":190,"`":192,"[":219,"\\\\":220,"]":221,"'":222,Attn:246,CrSel:247,ExSel:248,EraseEof:249,Play:250,ZoomOut:251,")":48,"!":49,"@":50,"#":51,$:52,"%":53,"^":54,"&":55,"(":57,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,":":186,"<":188,_:189,">":190,"?":191,"~":192,"{":219,"|":220,"}":221,'"':222,Camera:44,EndCall:95,VolumeDown:182,VolumeUp:183},Object.defineProperty(A,"__esModule",{value:!0}),A.ActionDispatcher=void 0;const $=g,z=B,H=q,K=U,V=L,W=_,G=(e=>{const t=e.getClientRects()[0],r=Math.max(0,Math.min(t.x,t.x+t.width)),s=Math.min(window.innerWidth,Math.max(t.x,t.x+t.width)),n=Math.max(0,Math.min(t.y,t.y+t.height));return[r+(s-r>>1),n+(Math.min(window.innerHeight,Math.max(t.y,t.y+t.height))-n>>1)]}).toString(),X=(()=>navigator.platform.toLowerCase().includes("mac")).toString();A.ActionDispatcher=class{static isMacOS=async e=>{const t=await(await e.getOrCreateSandbox(void 0)).callFunction(X,!1);return(0,z.assert)("exception"!==t.type),(0,z.assert)("boolean"===t.result.type),t.result.value};#b=0;#C=0;#x;#S;#E;constructor(e,t,r){this.#x=e,this.#S=t,this.#E=r}async dispatchActions(e){await this.#x.queue.run((async()=>{for(const t of e)await this.dispatchTickActions(t)}))}async dispatchTickActions(e){this.#b=performance.now(),this.#C=0;for(const{action:t}of e)"duration"in t&&void 0!==t.duration&&(this.#C=Math.max(this.#C,t.duration));const t=[new Promise((e=>setTimeout(e,this.#C)))];for(const r of e)t.push(this.#P(r));await Promise.all(t)}async#P({id:e,action:t}){const r=this.#x.get(e),s=this.#x.getGlobalKeyState();switch(t.type){case"keyDown":await this.#I(r,t),this.#x.cancelList.push({id:e,action:{...t,type:"keyUp"}});break;case"keyUp":await this.#k(r,t);break;case"pause":break;case"pointerDown":await this.#T(r,s,t),this.#x.cancelList.push({id:e,action:{...t,type:"pointerUp"}});break;case"pointerMove":await this.#O(r,s,t);break;case"pointerUp":await this.#R(r,s,t);break;case"scroll":await this.#N(r,s,t)}}async#T(e,t,r){const{button:s}=r;if(e.pressed.has(s))return;e.pressed.add(s);const{x:n,y:i,subtype:o}=e,{width:a,height:c,pressure:d,twist:u,tangentialPressure:l}=r,{tiltX:h,tiltY:p}=Z(r),{modifiers:m}=t,{radiusX:g,radiusY:f}=ee(a??1,c??1);switch(o){case"mouse":case"pen":await this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchMouseEvent",{type:"mousePressed",x:n,y:i,modifiers:m,button:Q(s),buttons:e.buttons,clickCount:e.setClickCount(s,new K.PointerSource.ClickContext(n,i,performance.now())),pointerType:o,tangentialPressure:l,tiltX:h,tiltY:p,twist:u,force:d});break;case"touch":await this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchTouchEvent",{type:"touchStart",touchPoints:[{x:n,y:i,radiusX:g,radiusY:f,tangentialPressure:l,tiltX:h,tiltY:p,twist:u,force:d,id:e.pointerId}],modifiers:m})}e.radiusX=g,e.radiusY=f,e.force=d}#R(e,t,r){const{button:s}=r;if(!e.pressed.has(s))return;e.pressed.delete(s);const{x:n,y:i,force:o,radiusX:a,radiusY:c,subtype:d}=e,{modifiers:u}=t;switch(d){case"mouse":case"pen":return this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchMouseEvent",{type:"mouseReleased",x:n,y:i,modifiers:u,button:Q(s),buttons:e.buttons,clickCount:e.getClickCount(s),pointerType:d});case"touch":return this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchTouchEvent",{type:"touchEnd",touchPoints:[{x:n,y:i,id:e.pointerId,force:o,radiusX:a,radiusY:c}],modifiers:u})}}async#O(e,t,r){const{x:s,y:n,subtype:i}=e,{width:o,height:a,pressure:c,twist:d,tangentialPressure:u,x:l,y:h,origin:p="viewport",duration:m=this.#C}=r,{tiltX:g,tiltY:f}=Z(r),{radiusX:w,radiusY:v}=ee(o??1,a??1),{targetX:y,targetY:b}=await this.#M(p,l,h,s,n);if(y<0||b<0)throw new $.MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${y}, y: ${b})`);let C;do{const r=m>0?(performance.now()-this.#b)/m:1;let o,a;if(C=r>=1,C?(o=y,a=b):(o=Math.round(r*(y-s)+s),a=Math.round(r*(b-n)+n)),e.x!==o||e.y!==a){const{modifiers:r}=t;switch(i){case"mouse":await this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchMouseEvent",{type:"mouseMoved",x:o,y:a,modifiers:r,clickCount:0,button:Q(e.pressed.values().next().value??5),buttons:e.buttons,pointerType:i,tangentialPressure:u,tiltX:g,tiltY:f,twist:d,force:c});break;case"pen":0!==e.pressed.size&&await this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchMouseEvent",{type:"mouseMoved",x:o,y:a,modifiers:r,clickCount:0,button:Q(e.pressed.values().next().value??5),buttons:e.buttons,pointerType:i,tangentialPressure:u,tiltX:g,tiltY:f,twist:d,force:c??.5});break;case"touch":0!==e.pressed.size&&await this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchTouchEvent",{type:"touchMove",touchPoints:[{x:o,y:a,radiusX:w,radiusY:v,tangentialPressure:u,tiltX:g,tiltY:f,twist:d,force:c,id:e.pointerId}],modifiers:r})}e.x=o,e.y=a,e.radiusX=w,e.radiusY=v,e.force=c}}while(!C)}async#M(e,t,r,s,n){let i,o;switch(e){case"viewport":i=t,o=r;break;case"pointer":i=s+t,o=n+r;break;default:{const{x:s,y:n}=await async function(e,t){const r=await e.getOrCreateSandbox(void 0),s=await r.callFunction(G,!1,{type:"undefined"},[t]);if("exception"===s.type)throw new $.NoSuchElementException(`Origin element ${t.sharedId} was not found`);(0,z.assert)("array"===s.result.type),(0,z.assert)("number"===s.result.value?.[0]?.type),(0,z.assert)("number"===s.result.value?.[1]?.type);const{result:{value:[{value:n},{value:i}]}}=s;return{x:n,y:i}}(this.#S,e.element);i=s+t,o=n+r;break}}return{targetX:i,targetY:o}}async#N(e,t,r){const{deltaX:s,deltaY:n,x:i,y:o,origin:a="viewport",duration:c=this.#C}=r;if("pointer"===a)throw new $.InvalidArgumentException('"pointer" origin is invalid for scrolling.');const{targetX:d,targetY:u}=await this.#M(a,i,o,0,0);if(d<0||u<0)throw new $.MoveTargetOutOfBoundsException(`Cannot move beyond viewport (x: ${d}, y: ${u})`);let l,h=0,p=0;do{const e=c>0?(performance.now()-this.#b)/c:1;let r,i;if(l=e>=1,l?(r=s-h,i=n-p):(r=Math.round(e*s-h),i=Math.round(e*n-p)),0!==r||0!==i){const{modifiers:e}=t;await this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchMouseEvent",{type:"mouseWheel",deltaX:r,deltaY:i,x:d,y:u,modifiers:e}),h+=r,p+=i}}while(!l)}async#I(e,t){const r=t.value;if(!(0,H.isSingleGrapheme)(r))throw new $.InvalidArgumentException(`Invalid key value: ${r}`);const s=(0,H.isSingleComplexGrapheme)(r),n=(0,V.getNormalizedKey)(r),i=e.pressed.has(n),o=(0,V.getKeyCode)(r),a=(0,V.getKeyLocation)(r);switch(n){case"Alt":e.alt=!0;break;case"Shift":e.shift=!0;break;case"Control":e.ctrl=!0;break;case"Meta":e.meta=!0}e.pressed.add(n);const{modifiers:c}=e,d=J(n,e,s),u=Y(o??"",e)??d;let l;if(this.#E&&e.meta)switch(o){case"KeyA":l="SelectAll";break;case"KeyC":l="Copy";break;case"KeyV":l=e.shift?"PasteAndMatchStyle":"Paste";break;case"KeyX":l="Cut";break;case"KeyZ":l=e.shift?"Redo":"Undo"}const h=[this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchKeyEvent",{type:u?"keyDown":"rawKeyDown",windowsVirtualKeyCode:W.KeyToKeyCode[n],key:n,code:o,text:u,unmodifiedText:d,autoRepeat:i,isSystemKey:e.alt||void 0,location:a<3?a:void 0,isKeypad:3===a,modifiers:c,commands:l?[l]:void 0})];"Escape"===n&&(e.alt||(!this.#E||e.ctrl||e.meta)&&this.#E||h.push(this.#S.cdpTarget.cdpClient.sendCommand("Input.cancelDragging"))),await Promise.all(h)}#k(e,t){const r=t.value;if(!(0,H.isSingleGrapheme)(r))throw new $.InvalidArgumentException(`Invalid key value: ${r}`);const s=(0,H.isSingleComplexGrapheme)(r),n=(0,V.getNormalizedKey)(r);if(!e.pressed.has(n))return;const i=(0,V.getKeyCode)(r),o=(0,V.getKeyLocation)(r);switch(n){case"Alt":e.alt=!1;break;case"Shift":e.shift=!1;break;case"Control":e.ctrl=!1;break;case"Meta":e.meta=!1}e.pressed.delete(n);const{modifiers:a}=e,c=J(n,e,s),d=Y(i??"",e)??c;return this.#S.cdpTarget.cdpClient.sendCommand("Input.dispatchKeyEvent",{type:"keyUp",windowsVirtualKeyCode:W.KeyToKeyCode[n],key:n,code:i,text:d,unmodifiedText:c,location:o<3?o:void 0,isSystemKey:e.alt||void 0,isKeypad:3===o,modifiers:a})}};const J=(e,t,r)=>r?e:"Enter"===e?"\r":1===[...e].length?t.shift?e.toLocaleUpperCase("en-US"):e:void 0,Y=(e,t)=>{if(t.ctrl){switch(e){case"Digit2":if(t.shift)return"\0";break;case"KeyA":return"";case"KeyB":return"";case"KeyC":return"";case"KeyD":return"";case"KeyE":return"";case"KeyF":return"";case"KeyG":return"";case"KeyH":return"\b";case"KeyI":return"\t";case"KeyJ":return"\n";case"KeyK":return"\v";case"KeyL":return"\f";case"KeyM":return"\r";case"KeyN":return"";case"KeyO":return"";case"KeyP":return"";case"KeyQ":return"";case"KeyR":return"";case"KeyS":return"";case"KeyT":return"";case"KeyU":return"";case"KeyV":return"";case"KeyW":return"";case"KeyX":return"";case"KeyY":return"";case"KeyZ":return"";case"BracketLeft":return"";case"Backslash":return"";case"BracketRight":return"";case"Digit6":if(t.shift)return"";break;case"Minus":return""}return""}if(t.alt)return""};function Q(e){switch(e){case 0:return"left";case 1:return"middle";case 2:return"right";case 3:return"back";case 4:return"forward";default:return"none"}}function Z(e){const t=e.altitudeAngle??Math.PI/2,r=e.azimuthAngle??0;let s=0,n=0;if(0===t&&(0!==r&&r!==2*Math.PI||(s=Math.PI/2),r===Math.PI/2&&(n=Math.PI/2),r===Math.PI&&(s=-Math.PI/2),r===3*Math.PI/2&&(n=-Math.PI/2),r>0&&r<Math.PI/2&&(s=Math.PI/2,n=Math.PI/2),r>Math.PI/2&&r<Math.PI&&(s=-Math.PI/2,n=Math.PI/2),r>Math.PI&&r<3*Math.PI/2&&(s=-Math.PI/2,n=-Math.PI/2),r>3*Math.PI/2&&r<2*Math.PI&&(s=Math.PI/2,n=-Math.PI/2)),0!==t){const e=Math.tan(t);s=Math.atan(Math.cos(r)/e),n=Math.atan(Math.sin(r)/e)}const i=180/Math.PI;return{tiltX:Math.round(s*i),tiltY:Math.round(n*i)}}function ee(e,t){return{radiusX:e?e/2:.5,radiusY:t?t/2:.5}}var te={},re={},se={};Object.defineProperty(se,"__esModule",{value:!0}),se.Mutex=void 0;se.Mutex=class{#D=!1;#F=[];acquire(){const e={resolved:!1};return this.#D?new Promise((t=>{this.#F.push((()=>t(this.#B.bind(this,e))))})):(this.#D=!0,Promise.resolve(this.#B.bind(this,e)))}#B(e){if(e.resolved)throw new Error("Cannot release more than once.");e.resolved=!0;const t=this.#F.shift();t?t():this.#D=!1}async run(e){const t=await this.acquire();try{return await e()}finally{t()}}},Object.defineProperty(re,"__esModule",{value:!0}),re.InputState=void 0;const ne=g,ie=se,oe=U;re.InputState=class{cancelList=[];#A=new Map;#q=new ie.Mutex;getOrCreate(e,t,r){let s=this.#A.get(e);if(!s){switch(t){case"none":s=new oe.NoneSource;break;case"key":s=new oe.KeySource;break;case"pointer":{let e="mouse"===r?0:2;const t=new Set;for(const[,e]of this.#A)"pointer"===e.type&&t.add(e.pointerId);for(;t.has(e);)++e;s=new oe.PointerSource(e,r);break}case"wheel":s=new oe.WheelSource;break;default:throw new ne.InvalidArgumentException(`Expected "none", "key", "pointer", or "wheel". Found unknown source type ${t}.`)}return this.#A.set(e,s),s}if(s.type!==t)throw new ne.InvalidArgumentException(`Input source type of ${e} is ${s.type}, but received ${t}.`);return s}get(e){const t=this.#A.get(e);if(!t)throw new ne.UnknownErrorException("Internal error.");return t}getGlobalKeyState(){const e=new oe.KeySource;for(const[,t]of this.#A)if("key"===t.type){for(const r of t.pressed)e.pressed.add(r);e.alt||=t.alt,e.ctrl||=t.ctrl,e.meta||=t.meta,e.shift||=t.shift}return e}get queue(){return this.#q}},Object.defineProperty(te,"__esModule",{value:!0}),te.InputStateManager=void 0;const ae=B,ce=re;class de extends WeakMap{get(e){return(0,ae.assert)(e.isTopLevelContext()),this.has(e)||this.set(e,new ce.InputState),super.get(e)}}te.InputStateManager=de,Object.defineProperty(F,"__esModule",{value:!0}),F.InputProcessor=void 0;const ue=g,le=B,he=A,pe=te;F.InputProcessor=class{#a;#j=new pe.InputStateManager;constructor(e){this.#a=e}async performActions(e){const t=this.#a.getContext(e.context),r=this.#j.get(t.top),s=this.#U(e,r),n=new he.ActionDispatcher(r,t,await he.ActionDispatcher.isMacOS(t).catch((()=>!1)));return await n.dispatchActions(s),{}}async releaseActions(e){const t=this.#a.getContext(e.context),r=t.top,s=this.#j.get(r),n=new he.ActionDispatcher(s,t,await he.ActionDispatcher.isMacOS(t).catch((()=>!1)));return await n.dispatchTickActions(s.cancelList.reverse()),this.#j.delete(r),{}}async setFiles(e){const t=this.#a.getContext(e.context),r=await t.getOrCreateSandbox(void 0);let s;try{s=await r.callFunction(String((function(e){return this instanceof HTMLInputElement?"file"!==this.type?2:this.disabled?3:e>1&&!this.multiple?4:void 0:this instanceof Element?1:0})),!1,e.element,[{type:"number",value:e.files.length}])}catch{throw new ue.NoSuchNodeException(`Could not find element ${e.element.sharedId}`)}if((0,le.assert)("success"===s.type),"number"===s.result.type)switch(s.result.value){case 0:throw new ue.NoSuchElementException(`Could not find element ${e.element.sharedId}`);case 1:throw new ue.UnableToSetFileInputException(`Element ${e.element.sharedId} is not a input`);case 2:throw new ue.UnableToSetFileInputException(`Input element ${e.element.sharedId} is not a file type`);case 3:throw new ue.UnableToSetFileInputException(`Input element ${e.element.sharedId} is disabled`);case 4:throw new ue.UnableToSetFileInputException("Cannot set multiple files on a non-multiple input element")}if(0===e.files.length)return await r.callFunction(String((function(){0!==this.files?.length?(this.files=(new DataTransfer).files,this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0})),this.dispatchEvent(new Event("change",{bubbles:!0}))):this.dispatchEvent(new Event("cancel",{bubbles:!0}))})),!1,e.element),{};const n=[];for(let t=0;t<e.files.length;++t){const t=await r.callFunction(String((function(e){return this.files?.item(e)})),!1,e.element,[{type:"number",value:0}],"root");if((0,le.assert)("success"===t.type),"object"!==t.result.type)break;const{handle:s}=t.result;(0,le.assert)(void 0!==s);const{path:i}=await r.cdpClient.sendCommand("DOM.getFileInfo",{objectId:s});n.push(i),r.disown(s).catch(void 0)}n.sort();const i=[...e.files].sort();if(n.length!==e.files.length||i.some(((e,t)=>n[t]!==e))){const{objectId:t}=await r.deserializeForCdp(e.element);(0,le.assert)(void 0!==t),await r.cdpClient.sendCommand("DOM.setFileInputFiles",{files:e.files,objectId:t})}else await r.callFunction(String((function(){this.dispatchEvent(new Event("cancel",{bubbles:!0}))})),!1,e.element);return{}}#U(e,t){const r=[];for(const s of e.actions){switch(s.type){case"pointer":{s.parameters??={pointerType:"mouse"},s.parameters.pointerType??="mouse";const e=t.getOrCreate(s.id,"pointer",s.parameters.pointerType);if(e.subtype!==s.parameters.pointerType)throw new ue.InvalidArgumentException(`Expected input source ${s.id} to be ${e.subtype}; got ${s.parameters.pointerType}.`);break}default:t.getOrCreate(s.id,s.type)}const e=s.actions.map((e=>({id:s.id,action:e})));for(let t=0;t<e.length;t++)r.length===t&&r.push([]),r[t].push(e[t])}return r}};var me={},ge={},fe=Object.defineProperty,we=Object.getOwnPropertyDescriptor,ve=Object.getOwnPropertyNames,ye=Object.prototype.hasOwnProperty,be={};((e,t)=>{for(var r in t)fe(e,r,{get:t[r],enumerable:!0})})(be,{URLPattern:()=>ot});var Ce,xe=(Ce=be,((e,t,r,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of ve(t))!ye.call(e,n)&&n!==r&&fe(e,n,{get:()=>t[n],enumerable:!(s=we(t,n))||s.enumerable});return e})(fe({},"__esModule",{value:!0}),Ce)),Se=class{type=3;name="";prefix="";value="";suffix="";modifier=3;constructor(e,t,r,s,n,i){this.type=e,this.name=t,this.prefix=r,this.value=s,this.suffix=n,this.modifier=i}hasCustomName(){return""!==this.name&&"number"!=typeof this.name}},Ee=/[$_\p{ID_Start}]/u,Pe=/[$_\u200C\u200D\p{ID_Continue}]/u,Ie=".*";function ke(e,t){return(t?/^[\x00-\xFF]*$/:/^[\x00-\x7F]*$/).test(e)}function Te(e,t=!1){let r=[],s=0;for(;s<e.length;){let n=e[s],i=function(n){if(!t)throw new TypeError(n);r.push({type:"INVALID_CHAR",index:s,value:e[s++]})};if("*"!==n)if("+"!==n&&"?"!==n)if("\\"!==n)if("{"!==n)if("}"!==n)if(":"!==n)if("("!==n)r.push({type:"CHAR",index:s,value:e[s++]});else{let t=1,n="",o=s+1,a=!1;if("?"===e[o]){i(`Pattern cannot start with "?" at ${o}`);continue}for(;o<e.length;){if(!ke(e[o],!1)){i(`Invalid character '${e[o]}' at ${o}.`),a=!0;break}if("\\"!==e[o]){if(")"===e[o]){if(t--,0===t){o++;break}}else if("("===e[o]&&(t++,"?"!==e[o+1])){i(`Capturing groups are not allowed at ${o}`),a=!0;break}n+=e[o++]}else n+=e[o++]+e[o++]}if(a)continue;if(t){i(`Unbalanced pattern at ${s}`);continue}if(!n){i(`Missing pattern at ${s}`);continue}r.push({type:"REGEX",index:s,value:n}),s=o}else{let t="",n=s+1;for(;n<e.length;){let r=e.substr(n,1);if(!(n===s+1&&Ee.test(r)||n!==s+1&&Pe.test(r)))break;t+=e[n++]}if(!t){i(`Missing parameter name at ${s}`);continue}r.push({type:"NAME",index:s,value:t}),s=n}else r.push({type:"CLOSE",index:s,value:e[s++]});else r.push({type:"OPEN",index:s,value:e[s++]});else r.push({type:"ESCAPED_CHAR",index:s++,value:e[s++]});else r.push({type:"OTHER_MODIFIER",index:s,value:e[s++]});else r.push({type:"ASTERISK",index:s,value:e[s++]})}return r.push({type:"END",index:s,value:""}),r}function Oe(e,t={}){let r=Te(e);t.delimiter??="/#?",t.prefixes??="./";let s=`[^${Re(t.delimiter)}]+?`,n=[],i=0,o=0,a=new Set,c=e=>{if(o<r.length&&r[o].type===e)return r[o++].value},d=()=>c("OTHER_MODIFIER")??c("ASTERISK"),u=e=>{let t=c(e);if(void 0!==t)return t;let{type:s,index:n}=r[o];throw new TypeError(`Unexpected ${s} at ${n}, expected ${e}`)},l=()=>{let e,t="";for(;e=c("CHAR")??c("ESCAPED_CHAR");)t+=e;return t},h=t.encodePart||(e=>e),p="",m=e=>{p+=e},g=()=>{p.length&&(n.push(new Se(3,"","",h(p),"",3)),p="")},f=(e,t,r,o,c)=>{let d,u=3;switch(c){case"?":u=1;break;case"*":u=0;break;case"+":u=2}if(!t&&!r&&3===u)return void m(e);if(g(),!t&&!r){if(!e)return;return void n.push(new Se(3,"","",h(e),"",u))}d=r?"*"===r?Ie:r:s;let l,p=2;if(d===s?(p=1,d=""):d===Ie&&(p=0,d=""),t?l=t:r&&(l=i++),a.has(l))throw new TypeError(`Duplicate name '${l}'.`);a.add(l),n.push(new Se(p,l,h(e),d,h(o),u))};for(;o<r.length;){let e=c("CHAR"),r=c("NAME"),s=c("REGEX");if(!r&&!s&&(s=c("ASTERISK")),r||s){let n=e??"";-1===t.prefixes.indexOf(n)&&(m(n),n=""),g(),f(n,r,s,"",d());continue}let n=e??c("ESCAPED_CHAR");if(n)m(n);else if(c("OPEN")){let e=l(),t=c("NAME"),r=c("REGEX");!t&&!r&&(r=c("ASTERISK"));let s=l();u("CLOSE"),f(e,t,r,s,d())}else g(),u("END")}return n}function Re(e){return e.replace(/([.+*?^${}()[\]|/\\])/g,"\\$1")}function Ne(e){return e&&e.ignoreCase?"ui":"u"}function Me(e){switch(e){case 0:return"*";case 1:return"?";case 2:return"+";case 3:return""}}function De(e,t,r={}){r.delimiter??="/#?",r.prefixes??="./",r.sensitive??=!1,r.strict??=!1,r.end??=!0,r.start??=!0,r.endsWith="";let s=r.start?"^":"";for(let n of e){if(3===n.type){3===n.modifier?s+=Re(n.value):s+=`(?:${Re(n.value)})${Me(n.modifier)}`;continue}t&&t.push(n.name);let e=`[^${Re(r.delimiter)}]+?`,i=n.value;(1===n.type?i=e:0===n.type&&(i=Ie),n.prefix.length||n.suffix.length)?3!==n.modifier&&1!==n.modifier?(s+=`(?:${Re(n.prefix)}`,s+=`((?:${i})(?:`,s+=Re(n.suffix),s+=Re(n.prefix),s+=`(?:${i}))*)${Re(n.suffix)})`,0===n.modifier&&(s+="?")):(s+=`(?:${Re(n.prefix)}(${i})${Re(n.suffix)})`,s+=Me(n.modifier)):3===n.modifier||1===n.modifier?s+=`(${i})${Me(n.modifier)}`:s+=`((?:${i})${Me(n.modifier)})`}let n=`[${Re(r.endsWith)}]|$`,i=`[${Re(r.delimiter)}]`;if(r.end)return r.strict||(s+=`${i}?`),r.endsWith.length?s+=`(?=${n})`:s+="$",new RegExp(s,Ne(r));r.strict||(s+=`(?:${i}(?=${n}))?`);let o=!1;if(e.length){let t=e[e.length-1];3===t.type&&3===t.modifier&&(o=r.delimiter.indexOf(t)>-1)}return o||(s+=`(?=${i}|${n})`),new RegExp(s,Ne(r))}var Fe={delimiter:"",prefixes:"",sensitive:!0,strict:!0},Be={delimiter:".",prefixes:"",sensitive:!0,strict:!0},Ae={delimiter:"/",prefixes:"/",sensitive:!0,strict:!0};function qe(e,t){return e.startsWith(t)?e.substring(t.length,e.length):e}function je(e){return!(!e||e.length<2)&&("["===e[0]||("\\"===e[0]||"{"===e[0])&&"["===e[1])}var Ue=["ftp","file","http","https","ws","wss"];function Le(e){if(!e)return!0;for(let t of Ue)if(e.test(t))return!0;return!1}function _e(e){switch(e){case"ws":case"http":return"80";case"wws":case"https":return"443";case"ftp":return"21";default:return""}}function $e(e){if(""===e)return e;if(/^[-+.A-Za-z0-9]*$/.test(e))return e.toLowerCase();throw new TypeError(`Invalid protocol '${e}'.`)}function ze(e){if(""===e)return e;let t=new URL("https://example.com");return t.username=e,t.username}function He(e){if(""===e)return e;let t=new URL("https://example.com");return t.password=e,t.password}function Ke(e){if(""===e)return e;if(/[\t\n\r #%/:<>?@[\]^\\|]/g.test(e))throw new TypeError(`Invalid hostname '${e}'`);let t=new URL("https://example.com");return t.hostname=e,t.hostname}function Ve(e){if(""===e)return e;if(/[^0-9a-fA-F[\]:]/g.test(e))throw new TypeError(`Invalid IPv6 hostname '${e}'`);return e.toLowerCase()}function We(e){if(""===e||/^[0-9]*$/.test(e)&&parseInt(e)<=65535)return e;throw new TypeError(`Invalid port '${e}'.`)}function Ge(e){if(""===e)return e;let t=new URL("https://example.com");return t.pathname="/"!==e[0]?"/-"+e:e,"/"!==e[0]?t.pathname.substring(2,t.pathname.length):t.pathname}function Xe(e){return""===e?e:new URL(`data:${e}`).pathname}function Je(e){if(""===e)return e;let t=new URL("https://example.com");return t.search=e,t.search.substring(1,t.search.length)}function Ye(e){if(""===e)return e;let t=new URL("https://example.com");return t.hash=e,t.hash.substring(1,t.hash.length)}var Qe=class{#L;#_=[];#$={};#z=0;#H=1;#K=0;#V=0;#W=0;#G=0;#X=!1;constructor(e){this.#L=e}get result(){return this.#$}parse(){for(this.#_=Te(this.#L,!0);this.#z<this.#_.length;this.#z+=this.#H){if(this.#H=1,"END"===this.#_[this.#z].type){if(0===this.#V){this.#J(),this.#Y()?this.#Q(9,1):this.#Z()?this.#Q(8,1):this.#Q(7,0);continue}if(2===this.#V){this.#ee(5);continue}this.#Q(10,0);break}if(this.#W>0){if(!this.#te())continue;this.#W-=1}if(this.#re())this.#W+=1;else switch(this.#V){case 0:this.#se()&&this.#ee(1);break;case 1:if(this.#se()){this.#ne();let e=7,t=1;this.#ie()?(e=2,t=3):this.#X&&(e=2),this.#Q(e,t)}break;case 2:this.#oe()?this.#ee(3):(this.#f()||this.#Z()||this.#Y())&&this.#ee(5);break;case 3:this.#ae()?this.#Q(4,1):this.#oe()&&this.#Q(5,1);break;case 4:this.#oe()&&this.#Q(5,1);break;case 5:this.#w()?this.#G+=1:this.#ce()&&(this.#G-=1),this.#de()&&!this.#G?this.#Q(6,1):this.#f()?this.#Q(7,0):this.#Z()?this.#Q(8,1):this.#Y()&&this.#Q(9,1);break;case 6:this.#f()?this.#Q(7,0):this.#Z()?this.#Q(8,1):this.#Y()&&this.#Q(9,1);break;case 7:this.#Z()?this.#Q(8,1):this.#Y()&&this.#Q(9,1);break;case 8:this.#Y()&&this.#Q(9,1)}}void 0!==this.#$.hostname&&void 0===this.#$.port&&(this.#$.port="")}#Q(e,t){switch(this.#V){case 0:case 2:break;case 1:this.#$.protocol=this.#ue();break;case 3:this.#$.username=this.#ue();break;case 4:this.#$.password=this.#ue();break;case 5:this.#$.hostname=this.#ue();break;case 6:this.#$.port=this.#ue();break;case 7:this.#$.pathname=this.#ue();break;case 8:this.#$.search=this.#ue();break;case 9:this.#$.hash=this.#ue()}0!==this.#V&&10!==e&&([1,2,3,4].includes(this.#V)&&[6,7,8,9].includes(e)&&(this.#$.hostname??=""),[1,2,3,4,5,6].includes(this.#V)&&[8,9].includes(e)&&(this.#$.pathname??=this.#X?"/":""),[1,2,3,4,5,6,7].includes(this.#V)&&9===e&&(this.#$.search??="")),this.#le(e,t)}#le(e,t){this.#V=e,this.#K=this.#z+t,this.#z+=t,this.#H=0}#J(){this.#z=this.#K,this.#H=0}#ee(e){this.#J(),this.#V=e}#he(e){return e<0&&(e=this.#_.length-e),e<this.#_.length?this.#_[e]:this.#_[this.#_.length-1]}#pe(e,t){let r=this.#he(e);return r.value===t&&("CHAR"===r.type||"ESCAPED_CHAR"===r.type||"INVALID_CHAR"===r.type)}#se(){return this.#pe(this.#z,":")}#ie(){return this.#pe(this.#z+1,"/")&&this.#pe(this.#z+2,"/")}#oe(){return this.#pe(this.#z,"@")}#ae(){return this.#pe(this.#z,":")}#de(){return this.#pe(this.#z,":")}#f(){return this.#pe(this.#z,"/")}#Z(){if(this.#pe(this.#z,"?"))return!0;if("?"!==this.#_[this.#z].value)return!1;let e=this.#he(this.#z-1);return"NAME"!==e.type&&"REGEX"!==e.type&&"CLOSE"!==e.type&&"ASTERISK"!==e.type}#Y(){return this.#pe(this.#z,"#")}#re(){return"OPEN"==this.#_[this.#z].type}#te(){return"CLOSE"==this.#_[this.#z].type}#w(){return this.#pe(this.#z,"[")}#ce(){return this.#pe(this.#z,"]")}#ue(){let e=this.#_[this.#z],t=this.#he(this.#K).index;return this.#L.substring(t,e.index)}#ne(){let e={};Object.assign(e,Fe),e.encodePart=$e;let t=function(e,t,r){return De(Oe(e,r),t,r)}(this.#ue(),void 0,e);this.#X=Le(t)}},Ze=["protocol","username","password","hostname","port","pathname","search","hash"],et="*";function tt(e,t){if("string"!=typeof e)throw new TypeError("parameter 1 is not of type 'string'.");let r=new URL(e,t);return{protocol:r.protocol.substring(0,r.protocol.length-1),username:r.username,password:r.password,hostname:r.hostname,port:r.port,pathname:r.pathname,search:""!==r.search?r.search.substring(1,r.search.length):void 0,hash:""!==r.hash?r.hash.substring(1,r.hash.length):void 0}}function rt(e,t){return t?nt(e):e}function st(e,t,r){let s;if("string"==typeof t.baseURL)try{s=new URL(t.baseURL),void 0===t.protocol&&(e.protocol=rt(s.protocol.substring(0,s.protocol.length-1),r)),!r&&void 0===t.protocol&&void 0===t.hostname&&void 0===t.port&&void 0===t.username&&(e.username=rt(s.username,r)),!r&&void 0===t.protocol&&void 0===t.hostname&&void 0===t.port&&void 0===t.username&&void 0===t.password&&(e.password=rt(s.password,r)),void 0===t.protocol&&void 0===t.hostname&&(e.hostname=rt(s.hostname,r)),void 0===t.protocol&&void 0===t.hostname&&void 0===t.port&&(e.port=rt(s.port,r)),void 0===t.protocol&&void 0===t.hostname&&void 0===t.port&&void 0===t.pathname&&(e.pathname=rt(s.pathname,r)),void 0===t.protocol&&void 0===t.hostname&&void 0===t.port&&void 0===t.pathname&&void 0===t.search&&(e.search=rt(s.search.substring(1,s.search.length),r)),void 0===t.protocol&&void 0===t.hostname&&void 0===t.port&&void 0===t.pathname&&void 0===t.search&&void 0===t.hash&&(e.hash=rt(s.hash.substring(1,s.hash.length),r))}catch{throw new TypeError(`invalid baseURL '${t.baseURL}'.`)}if("string"==typeof t.protocol&&(e.protocol=function(e,t){return e=function(e,t){return e.endsWith(t)?e.substr(0,e.length-t.length):e}(e,":"),t||""===e?e:$e(e)}(t.protocol,r)),"string"==typeof t.username&&(e.username=function(e,t){if(t||""===e)return e;let r=new URL("https://example.com");return r.username=e,r.username}(t.username,r)),"string"==typeof t.password&&(e.password=function(e,t){if(t||""===e)return e;let r=new URL("https://example.com");return r.password=e,r.password}(t.password,r)),"string"==typeof t.hostname&&(e.hostname=function(e,t){return t||""===e?e:je(e)?Ve(e):Ke(e)}(t.hostname,r)),"string"==typeof t.port&&(e.port=function(e,t,r){return _e(t)===e&&(e=""),r||""===e?e:We(e)}(t.port,e.protocol,r)),"string"==typeof t.pathname){if(e.pathname=t.pathname,s&&!function(e,t){return!(!e.length||"/"!==e[0]&&(!t||e.length<2||"\\"!=e[0]&&"{"!=e[0]||"/"!=e[1]))}(e.pathname,r)){let t=s.pathname.lastIndexOf("/");t>=0&&(e.pathname=rt(s.pathname.substring(0,t+1),r)+e.pathname)}e.pathname=function(e,t,r){if(r||""===e)return e;if(t&&!Ue.includes(t))return new URL(`${t}:${e}`).pathname;let s="/"==e[0]