sliccy 3.18.2 → 3.18.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node-server/_cloud_core/src/index.d.ts +14 -14
- package/dist/node-server/_cloud_core/src/index.d.ts.map +1 -1
- package/dist/node-server/_cloud_core/src/index.js +8 -8
- package/dist/node-server/_cloud_core/src/operations/start.d.ts.map +1 -1
- package/dist/node-server/_cloud_core/src/operations/start.js +1 -1
- package/dist/node-server/_cloud_core/src/polling.d.ts.map +1 -1
- package/dist/node-server/_cloud_core/src/substrate.d.ts +1 -3
- package/dist/node-server/_cloud_core/src/substrate.d.ts.map +1 -1
- package/dist/node-server/_cloud_core/tests/fixtures/fake-substrate.d.ts.map +1 -1
- package/dist/node-server/_cloud_core/tests/fixtures/index.d.ts +1 -1
- package/dist/node-server/_cloud_core/tests/fixtures/index.d.ts.map +1 -1
- package/dist/node-server/_cloud_core/tests/kill.test.js +1 -1
- package/dist/node-server/_cloud_core/tests/list.test.js +1 -1
- package/dist/node-server/_cloud_core/tests/pause.test.js +2 -2
- package/dist/node-server/_cloud_core/tests/resume.test.js +1 -1
- package/dist/node-server/_cloud_core/tests/secrets-filter.test.js +1 -1
- package/dist/node-server/_cloud_core/tests/start.test.js +2 -2
- package/dist/node-server/_shared/index.d.ts +1 -1
- package/dist/node-server/_shared/index.d.ts.map +1 -1
- package/dist/node-server/_shared/index.js +1 -1
- package/dist/node-server/_shared/index.js.map +1 -1
- package/dist/node-server/_shared/secrets-pipeline.js +1 -1
- package/dist/node-server/_shared/secrets-pipeline.js.map +1 -1
- package/dist/node-server/chrome-launch.d.ts +1 -1
- package/dist/node-server/chrome-launch.js +1 -1
- package/dist/node-server/cloud/start.d.ts +1 -1
- package/dist/node-server/cloud-status.d.ts +1 -1
- package/dist/node-server/cloud-status.js +1 -1
- package/dist/node-server/electron-controller.js +4 -2
- package/dist/node-server/electron-main.js +3 -3
- package/dist/node-server/electron-runtime.js +2 -4
- package/dist/node-server/file-logger.js +2 -3
- package/dist/node-server/index.js +28 -28
- package/dist/node-server/leader-restart.d.ts +1 -1
- package/dist/node-server/leader-restart.js +1 -1
- package/dist/node-server/publish-chrome-web-store.js +3 -3
- package/dist/node-server/qa-setup.js +2 -2
- package/dist/node-server/release-package.js +4 -4
- package/dist/node-server/secrets/env-secret-store.js +2 -2
- package/dist/node-server/secrets/index.d.ts +2 -2
- package/dist/node-server/secrets/index.js +1 -1
- package/dist/node-server/secrets/proxy-manager.d.ts +2 -2
- package/dist/node-server/secrets/session-id-file.js +1 -1
- package/dist/ui/assets/adobe-CcH-PtP1.js +2 -0
- package/dist/ui/assets/adobe-lMVzb-xn.js +1 -0
- package/dist/ui/assets/agent-bridge-vqu7Gtyh.js +1 -0
- package/dist/ui/assets/{agent-message-to-chat-BE57ZBLh.js → agent-message-to-chat-DqFBYWHR.js} +1 -1
- package/dist/ui/assets/{anthropic-BcSdV8pD.js → anthropic--IpL4ic5.js} +4 -4
- package/dist/ui/assets/{anthropic-DQxPCIFH.js → anthropic-CXIO8dsm.js} +2 -2
- package/dist/ui/assets/{apps-mO8aDMrq.js → apps-BRaDjaYH.js} +1 -1
- package/dist/ui/assets/azure-openai-CmqWTXyV.js +1 -0
- package/dist/ui/assets/azure-openai-D5WT6nAR.js +1 -0
- package/dist/ui/assets/{azure-openai-responses-BU_XGpvM.js → azure-openai-responses-CJRMMRu7.js} +1 -1
- package/dist/ui/assets/{azure-openai-responses-BRhJy7L9.js → azure-openai-responses-Cd63RwWi.js} +1 -1
- package/dist/ui/assets/{biome_wasm-Dsby769g.js → biome_wasm-Bsxn47RY.js} +1 -1
- package/dist/ui/assets/{bsh-watchdog-B2VnB8Hc.js → bsh-watchdog-BxSDDkB9.js} +1 -1
- package/dist/ui/assets/{cdp-CZFLwITr.js → cdp-DjGoWklG.js} +5 -5
- package/dist/ui/assets/cdp-ws-page-bridge-pkfE3nIk.js +1 -0
- package/dist/ui/assets/cloud-CyzxzXN0.css +1 -0
- package/dist/ui/assets/{common-C5EHUwRw.js → common-COrwGGFw.js} +1 -1
- package/dist/ui/assets/cost-command-DCpqaP04.js +1 -0
- package/dist/ui/assets/{es-CIePRJNx.js → es-Dk3uj0yG.js} +3 -3
- package/dist/ui/assets/{follower-sprinkle-bridge-BCZtC5oQ.js → follower-sprinkle-bridge-AgSyYekq.js} +1 -1
- package/dist/ui/assets/github-B3Y9n-6V.js +1 -0
- package/dist/ui/assets/{github-Cuml-aMN.js → github-C_vqo6EF.js} +2 -2
- package/dist/ui/assets/github-copilot-7fD_ZZh7.js +1 -0
- package/dist/ui/assets/github-copilot-VzxV3ipu.js +2 -0
- package/dist/ui/assets/google-DNmVgOfi.js +1 -0
- package/dist/ui/assets/{google-DP32XT6z.js → google-DOBP1ZDb.js} +1 -1
- package/dist/ui/assets/{google-shared-BE7O5JRJ.js → google-shared-C2gKL4qd.js} +3 -3
- package/dist/ui/assets/{google-shared-B8LClwJs.js → google-shared-DzXbUJi8.js} +3 -3
- package/dist/ui/assets/{google-vertex-CVNzlGFS.js → google-vertex-CUQ6pFUC.js} +1 -1
- package/dist/ui/assets/google-vertex-Cn5YsoTj.js +1 -0
- package/dist/ui/assets/{intercepted-oauth-Yq6VnKOU.js → intercepted-oauth-DJm8eors.js} +1 -1
- package/dist/ui/assets/js-realm-worker-XtbGPqy4.js +5 -0
- package/dist/ui/assets/{kernel-worker-DUwEvDLP.js → kernel-worker-DliiU68B.js} +2812 -2812
- package/dist/ui/assets/lick-manager-proxy-DCbHSHHW.js +1 -0
- package/dist/ui/assets/{lick-ws-bridge-DGd0ungq.js → lick-ws-bridge-VoVmDBj7.js} +1 -1
- package/dist/ui/assets/{local-llm-BWfSS02u.js → local-llm-DT08D0L9.js} +2 -2
- package/dist/ui/assets/{magick-wasm-DMpZ0xn7.js → magick-wasm-UEvptc3G.js} +1 -1
- package/dist/ui/assets/main-B-y1VCYe.js +1625 -0
- package/dist/ui/assets/main-BxXY3xQw.css +1 -0
- package/dist/ui/assets/{mistral-DmDZQCDp.js → mistral-BIPkqGV4.js} +2 -2
- package/dist/ui/assets/{mistral-D2ZFaMYs.js → mistral-DObWTYF2.js} +2 -2
- package/dist/ui/assets/{nodejs-CC19Ujs5.js → nodejs-CspWaYmo.js} +1 -1
- package/dist/ui/assets/{nuke-command-BI3M3eyO.js → nuke-command-CWihzNJE.js} +1 -1
- package/dist/ui/assets/oauth-BlBBJICL.js +1 -0
- package/dist/ui/assets/oauth-bootstrap-xIkIJvno.js +2 -0
- package/dist/ui/assets/{oauth-service-vw0jayqa.js → oauth-service-91xGboeq.js} +1 -1
- package/dist/ui/assets/{oauth-service-Oq-gdFyA.js → oauth-service-BU4h9ni7.js} +1 -1
- package/dist/ui/assets/offscreen-client-Cxl-HUa_.js +1 -0
- package/dist/ui/assets/onboarding-orchestrator-Df6PPA9X.js +1 -0
- package/dist/ui/assets/openai-codex-4Z13hy8F.js +1 -0
- package/dist/ui/assets/openai-codex-DvsCPzPI.js +1 -0
- package/dist/ui/assets/{openai-codex-responses-CCUkmTRh.js → openai-codex-responses-B1KpGFcN.js} +2 -2
- package/dist/ui/assets/{openai-codex-responses-BTV1saBU.js → openai-codex-responses-vCbkORj6.js} +5 -5
- package/dist/ui/assets/{openai-completions-Bb61sCiV.js → openai-completions-COv_dnIT.js} +3 -3
- package/dist/ui/assets/openai-responses-BZScu8cr.js +1 -0
- package/dist/ui/assets/{openai-responses-BVG3U8zk.js → openai-responses-DSw5WmZb.js} +1 -1
- package/dist/ui/assets/{openai-responses-shared-DUZclpEl.js → openai-responses-shared-BvCBMmBy.js} +4 -4
- package/dist/ui/assets/{openai-responses-shared-DA49Rfb_.js → openai-responses-shared-Cc0TFV0l.js} +5 -5
- package/dist/ui/assets/{openrouter-BV7zAGwj.js → openrouter-BUVzNJG3.js} +1 -1
- package/dist/ui/assets/{openrouter-CXUaOOUz.js → openrouter-fDOtY4mV.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-BuCgwxyv.js → panel-rpc-handlers-ClzmZRsQ.js} +1 -1
- package/dist/ui/assets/provider-CJRJzaCX.js +1 -0
- package/dist/ui/assets/provider-Cp8wf26Y.js +2 -0
- package/dist/ui/assets/provider-store-access-BxgzGUwS.js +1 -0
- package/dist/ui/assets/provider-store-access-CkBzeuy3.js +1 -0
- package/dist/ui/assets/{proxied-fetch-Co4xc8Zx.js → proxied-fetch-BSvg4EkW.js} +1 -1
- package/dist/ui/assets/{pyodide-Rf0RrGzC.js → pyodide-rDCGHCfH.js} +2 -2
- package/dist/ui/assets/{remote-terminal-view-D_Pz424p.js → remote-terminal-view-iEBpoHlq.js} +1 -1
- package/dist/ui/assets/secret-env-BmiG1nCk.js +1 -0
- package/dist/ui/assets/{slicc-editor-CXe5pc1V.js → slicc-editor-6BWx0qmC.js} +1 -1
- package/dist/ui/assets/{spawn-BcsTqDoe.js → spawn-Chay1xeg.js} +1 -1
- package/dist/ui/assets/sprinkle-bridge-channel-BceIr6aT.js +1 -0
- package/dist/ui/assets/sprinkle-bridge-channel-gxatjtur.js +1 -0
- package/dist/ui/assets/{sql-wasm-CkcgI_g8.js → sql-wasm-BM94NJwS.js} +1 -1
- package/dist/ui/assets/store--yy96Ijw.js +1 -0
- package/dist/ui/assets/{tray-leave-runtime-DT7p1Dfo.js → tray-leave-runtime-BwqYkTEW.js} +1 -1
- package/dist/ui/assets/{typescript-DrOHgpWs.js → typescript-vEd5w_36.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-DHPHdclH.js → upgrade-detection-CW9llf4y.js} +1 -1
- package/dist/ui/assets/{web-d_o69eQn.js → web-C_KH8Suc.js} +1 -1
- package/dist/ui/assets/{ws-subscribers-C9zq_zPO.js → ws-subscribers-D6cTCQW7.js} +1 -1
- package/dist/ui/assets/xai-grok-BOQOKCGK.js +1 -0
- package/dist/ui/assets/xai-grok-DIyppetX.js +1 -0
- package/dist/ui/electron-overlay-entry.js +7 -7
- package/dist/ui/index.html +2 -2
- package/dist/ui/packages/webapp/cloud/index.html +2 -2
- package/dist/ui/packages/webapp/index.html +2 -2
- package/dist/ui/slicc-editor.js +18 -18
- package/package.json +7 -10
- package/dist/ui/assets/adobe-8f0cDD-F.js +0 -2
- package/dist/ui/assets/adobe-9jZbPWGY.js +0 -1
- package/dist/ui/assets/agent-bridge-DrpsAjAx.js +0 -1
- package/dist/ui/assets/azure-openai-BMtvo9nb.js +0 -1
- package/dist/ui/assets/azure-openai-rwKIzRjs.js +0 -1
- package/dist/ui/assets/cdp-ws-page-bridge-CpiFdZR-.js +0 -1
- package/dist/ui/assets/cloud-DyAca2cv.css +0 -1
- package/dist/ui/assets/cost-command-Cip9dmhS.js +0 -1
- package/dist/ui/assets/github-D16_NU5e.js +0 -1
- package/dist/ui/assets/github-copilot-B9ezHXqR.js +0 -2
- package/dist/ui/assets/github-copilot-DidI-khP.js +0 -1
- package/dist/ui/assets/google-DMkt2uz8.js +0 -1
- package/dist/ui/assets/google-vertex-riDIQY3Z.js +0 -1
- package/dist/ui/assets/js-realm-worker-BQqgSA_p.js +0 -5
- package/dist/ui/assets/lick-manager-proxy-B749hY0Y.js +0 -1
- package/dist/ui/assets/main-CvlDeETm.css +0 -1
- package/dist/ui/assets/main-DDbwoA-3.js +0 -1625
- package/dist/ui/assets/oauth-VHJ6dPF1.js +0 -1
- package/dist/ui/assets/oauth-bootstrap-CIKm1VRy.js +0 -2
- package/dist/ui/assets/offscreen-client-DnCeFiGk.js +0 -1
- package/dist/ui/assets/onboarding-orchestrator-Db5FENNP.js +0 -1
- package/dist/ui/assets/openai-codex-CaycRa7E.js +0 -1
- package/dist/ui/assets/openai-codex-Shax5egE.js +0 -1
- package/dist/ui/assets/openai-responses-CL7uUIsc.js +0 -1
- package/dist/ui/assets/provider-BuO5v5qG.js +0 -2
- package/dist/ui/assets/provider-Db6MdNxx.js +0 -1
- package/dist/ui/assets/provider-store-access-BgYDz9cL.js +0 -1
- package/dist/ui/assets/provider-store-access-SVZWIGcz.js +0 -1
- package/dist/ui/assets/secret-env-BY7tW9md.js +0 -1
- package/dist/ui/assets/sprinkle-bridge-channel-DwDzRdg8.js +0 -1
- package/dist/ui/assets/sprinkle-bridge-channel-gvVv6R_O.js +0 -1
- package/dist/ui/assets/store-7TTPXkQU.js +0 -1
- package/dist/ui/assets/xai-grok-Di0THC-7.js +0 -1
- package/dist/ui/assets/xai-grok-DycJT1IK.js +0 -1
- /package/dist/ui/assets/{cloud-BDR25NRv.js → cloud-CZM-12lk.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/magick-wasm-
|
|
2
|
-
import{et as e,
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/magick-wasm-UEvptc3G.js","assets/main-B-y1VCYe.js","assets/modulepreload-polyfill-Dezn_h7o.js","assets/main-BxXY3xQw.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{et as e,j as t}from"./main-B-y1VCYe.js";var n=t(`cdp`),r=class{ws=null;nextId=1;pending=new Map;listeners=new Map;_state=`disconnected`;get state(){return this._state}async connect(e){if(this._state!==`disconnected`)throw Error(`Cannot connect: state is ${this._state}`);if(!e?.url)throw Error(`CDPClient.connect() requires a WebSocket URL`);let{url:t,timeout:r=5e3}=e;return this._state=`connecting`,new Promise((e,i)=>{let a=setTimeout(()=>{this.cleanup(),i(Error(`CDP connection timed out after ${r}ms`))},r);try{this.ws=new WebSocket(t)}catch(e){clearTimeout(a),this._state=`disconnected`,i(e);return}this.ws.onopen=()=>{clearTimeout(a),this._state=`connected`,n.info(`Connected`,{url:t}),e()},this.ws.onerror=e=>{clearTimeout(a),this._state===`connecting`&&(n.error(`Connection failed`,{url:t}),this.cleanup(),i(Error(`CDP WebSocket connection failed`)))},this.ws.onmessage=e=>{this.handleMessage(e.data)},this.ws.onclose=()=>{this.handleClose()}})}disconnect(){this.ws&&(this.ws.onclose=null,this.ws.close()),this.cleanup(),n.info(`Disconnected`)}async send(e,t,r,i=3e4){if(this._state!==`connected`||!this.ws)throw Error(`CDP client is not connected`);let a=this.nextId++,o={id:a,method:e};return t&&(o.params=t),r&&(o.sessionId=r),n.debug(`Send`,{method:e,id:a,sessionId:r}),new Promise((t,n)=>{let r=setTimeout(()=>{this.pending.delete(a),n(Error(`CDP command timed out after ${i}ms: ${e}`))},i);this.pending.set(a,{resolve:e=>{clearTimeout(r),t(e)},reject:e=>{clearTimeout(r),n(e)}}),this.ws.send(JSON.stringify(o))})}on(e,t){let n=this.listeners.get(e);n||(n=new Set,this.listeners.set(e,n)),n.add(t)}off(e,t){let n=this.listeners.get(e);n&&(n.delete(t),n.size===0&&this.listeners.delete(e))}once(e,t=3e4){return new Promise((n,r)=>{let i=setTimeout(()=>{this.off(e,a),r(Error(`Timed out waiting for event: ${e}`))},t),a=t=>{clearTimeout(i),this.off(e,a),n(t)};this.on(e,a)})}handleMessage(e){let t;try{t=JSON.parse(e)}catch{return}if(`id`in t&&typeof t.id==`number`){let e=t;n.debug(`Response`,{id:e.id,hasError:!!e.error});let r=this.pending.get(e.id);r&&(this.pending.delete(e.id),e.error?(n.error(`Command error`,{id:e.id,code:e.error.code,message:e.error.message}),r.reject(Error(`CDP error: ${e.error.message} (${e.error.code})`))):r.resolve(e.result??{}));return}if(`method`in t){let e=t;n.debug(`Event`,{method:e.method,sessionId:e.sessionId});let r=this.listeners.get(e.method);if(r){let t=e.sessionId?{...e.params,sessionId:e.sessionId}:e.params??{};for(let e of r)try{e(t)}catch{}}}}handleClose(){n.error(`Connection closed unexpectedly`,{pendingCommands:this.pending.size});for(let[,e]of this.pending)e.reject(Error(`CDP connection closed`));this.cleanup()}cleanup(){this.ws=null,this._state=`disconnected`,this.pending.clear()}},i=`(function() {
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
// ===== DOM Utilities =====
|
|
@@ -869,12 +869,12 @@ import{et as e,tt as t}from"./main-DDbwoA-3.js";var n=t(`cdp`),r=class{ws=null;n
|
|
|
869
869
|
} catch(e) {
|
|
870
870
|
return { role: 'RootWebArea', name: '', description: 'Error: ' + (e.message || String(e)) };
|
|
871
871
|
}
|
|
872
|
-
})()
|
|
872
|
+
})()`;function a(e,t=``){if(e==null)return t;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`)return String(e);try{return JSON.stringify(e)??t}catch{return String(e)}}var o=`ws://localhost:5710/cdp`,s=t(`browser-api`);function c(e=typeof window<`u`?window.location:null){return e?.host?`${e.protocol===`https:`?`wss:`:`ws:`}//${e.host}/cdp`:o}var l=class{client;localClient;sessionId=null;attachedTargetId=null;trayTargetProvider=null;remoteTargetInfo=null;_frameContextCache=new Map;_tabLock=Promise.resolve();_onSessionChange;handleJavaScriptDialogOpening=async e=>{let t=typeof e.sessionId==`string`?e.sessionId:this.sessionId;if(t)try{await this.client.send(`Page.handleJavaScriptDialog`,{accept:!1},t,5e3),s.warn(`Auto-dismissed unexpected JavaScript dialog`,{sessionId:t,type:e.type,message:e.message,url:e.url})}catch(e){s.warn(`Failed to auto-dismiss JavaScript dialog`,{sessionId:t,error:e instanceof Error?e.message:String(e)})}};constructor(e){this.client=e??new r,this.localClient=this.client,this.addDialogListener(this.client)}getTransport(){return this.client}setSessionChangeCallback(e){this._onSessionChange=e}getSessionId(){return this.sessionId}getAttachedTargetId(){return this.attachedTargetId}async withTab(e,t){let n,r=new Promise(e=>{n=e}),i=this._tabLock;this._tabLock=r,await i;try{return await t(await this.attachToPage(e))}finally{n()}}setTrayTargetProvider(e){this.trayTargetProvider=e}async listAllTargets(){let e=await this.listPages();if(!this.trayTargetProvider)return e;let t=!this.remoteTargetInfo,n=new Set(e.map(e=>e.targetId)),r=this.trayTargetProvider.getTargets().filter(e=>!t||!(e.runtimeId===`leader`&&n.has(e.localTargetId))).map(e=>({targetId:e.targetId,title:e.title,url:e.url}));return[...e,...r]}async connect(e){await this.client.connect({url:e?.url??c(),timeout:e?.timeout})}async createPage(e){return await this.ensureConnected(),await this.ensureLocalConnected(),(await this.localClient.send(`Target.createTarget`,{url:e??`about:blank`,background:!0})).targetId}async createRemotePage(e,t){if(!this.trayTargetProvider?.openRemoteTab)throw Error(`Remote tab opening not available (no tray target provider)`);return this.trayTargetProvider.openRemoteTab(e,t??`about:blank`)}async closePage(e){if(await this.ensureConnected(),this.trayTargetProvider?.createRemoteTransport&&e.includes(`:`)){let t=e.indexOf(`:`),n=e.substring(0,t),r=e.substring(t+1);{let t=this.trayTargetProvider.createRemoteTransport(n,r);try{await t.send(`Target.closeTarget`,{targetId:r})}finally{this.trayTargetProvider.removeRemoteTransport&&this.trayTargetProvider.removeRemoteTransport(n,r)}this.attachedTargetId===e&&(this.remoteTargetInfo&&=(this.setClient(this.localClient),null),this.sessionId=null,this.attachedTargetId=null);return}}await this.localClient.send(`Target.closeTarget`,{targetId:e}),this.attachedTargetId===e&&(this.sessionId=null,this.attachedTargetId=null)}disconnect(){this.sessionId=null,this.attachedTargetId=null,this.client.disconnect()}async listPages(){return await this.ensureConnected(),await this.ensureLocalConnected(),((await this.localClient.send(`Target.getTargets`)).targetInfos??[]).filter(e=>e.type===`page`).map(e=>({targetId:e.targetId,title:e.title,url:e.url,...e.active?{active:!0}:{}}))}async attachToPage(e){if(await this.ensureConnected(),this.sessionId&&this.attachedTargetId===e)return this.sessionId;if(this._frameContextCache.clear(),this.trayTargetProvider?.createRemoteTransport&&e.includes(`:`)){let t=e.indexOf(`:`),n=e.substring(0,t),r=e.substring(t+1);{let t=this.trayTargetProvider.createRemoteTransport(n,r);this.setClient(t),this.remoteTargetInfo={runtimeId:n,localTargetId:r};let i=await this.client.send(`Target.attachToTarget`,{targetId:r,flatten:!0});return this.sessionId=i.sessionId,this.attachedTargetId=e,await this.client.send(`Page.enable`,{},this.sessionId),this._onSessionChange?.(this.sessionId,this.client),this.sessionId}}this.remoteTargetInfo&&=(this.trayTargetProvider?.removeRemoteTransport&&this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),null),await this.ensureLocalConnected();let t=await this.localClient.send(`Target.attachToTarget`,{targetId:e,flatten:!0});return this.sessionId=t.sessionId,this.attachedTargetId=e,await this.localClient.send(`Page.enable`,{},this.sessionId),this._onSessionChange?.(this.sessionId,this.localClient),this.sessionId}async detach(){if(this.sessionId){try{await this.client.send(`Target.detachFromTarget`,{sessionId:this.sessionId})}catch{}this.remoteTargetInfo&&this.trayTargetProvider?.removeRemoteTransport&&(this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),this.remoteTargetInfo=null),this.sessionId=null,this.attachedTargetId=null}}async navigate(e){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Page.enable`,{},this.sessionId);let t=this.client.once(`Page.loadEventFired`);await this.client.send(`Page.navigate`,{url:e},this.sessionId),await t}async screenshot(t){await this.ensureConnected(),this.ensureAttached();try{let n={format:t?.format??`png`,captureBeyondViewport:!0};if(t?.quality!==void 0&&(n.quality=t.quality),t?.clip||t?.fullPage){let e=0,r=0;try{await this.client.send(`Runtime.enable`,{},this.sessionId);let t=await this.client.send(`Runtime.evaluate`,{expression:`JSON.stringify({ w: window.innerWidth, h: document.documentElement.scrollHeight })`,returnByValue:!0},this.sessionId),n=JSON.parse(t.result?.value??`{}`);e=n.w??0,r=n.h??0}catch{}t?.clip?n.clip={...t.clip,scale:t.clip.scale??1}:n.clip={x:0,y:0,width:e||1280,height:r||800,scale:1}}let r;try{r=await this.client.send(`Page.captureScreenshot`,n,this.sessionId)}catch{await this.client.send(`Page.bringToFront`,{},this.sessionId),r=await this.client.send(`Page.captureScreenshot`,n,this.sessionId)}let i=r.data;if(t?.maxWidth)try{let{getMagick:n}=await e(async()=>{let{getMagick:e}=await import(`./magick-wasm-UEvptc3G.js`);return{getMagick:e}},__vite__mapDeps([0,1,2,3])),r=await n(),a=atob(i),o=new Uint8Array(a.length);for(let e=0;e<a.length;e++)o[e]=a.charCodeAt(e);let s=8e3,c=!1;await r.ImageMagick.read(o,async e=>{let n=Math.min(t.maxWidth,s),r=Math.max(e.width,e.height);if(e.width>n||r>s){let t=Math.min(n/e.width,s/r);e.resize(Math.round(e.width*t),Math.round(e.height*t)),c=!0}c&&e.write(`PNG`,e=>{let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);i=btoa(t)})})}catch(e){console.warn(`[browser-api] Screenshot maxWidth resize failed, returning original`,e)}return i}finally{}}async evaluate(e,t){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Runtime.enable`,{},this.sessionId);let n=await this.client.send(`Runtime.evaluate`,{expression:e,awaitPromise:t?.awaitPromise??!0,returnByValue:t?.returnByValue??!0},this.sessionId),r=n.exceptionDetails;if(r){let e=r.exception?.description??r.text;throw Error(`Evaluation failed: ${e}`)}return n.result.value}async click(e){await this.ensureConnected(),this.ensureAttached();let t=await this.boundingBox(e);if(!t)throw Error(`Element not found: ${e}`);let n=t.x+t.width/2,r=t.y+t.height/2;await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:n,y:r,button:`left`,clickCount:1},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:n,y:r,button:`left`,clickCount:1},this.sessionId)}async type(e){await this.ensureConnected(),this.ensureAttached();for(let t of e)await this.client.send(`Input.dispatchKeyEvent`,{type:`keyDown`,text:t},this.sessionId),await this.client.send(`Input.dispatchKeyEvent`,{type:`keyUp`,text:t},this.sessionId)}async waitForSelector(e,t){await this.ensureConnected(),this.ensureAttached();let n=t?.timeout??3e4,r=t?.interval??100,i=Date.now();for(;Date.now()-i<n;){if(await this.evaluate(`!!document.querySelector(${JSON.stringify(e)})`))return;await new Promise(e=>setTimeout(e,r))}throw Error(`waitForSelector timed out after ${n}ms: ${e}`)}async getAccessibilityTree(){await this.ensureConnected(),this.ensureAttached();let e=await this.evaluate(i,{awaitPromise:!1,returnByValue:!0});return!e||typeof e!=`object`?{role:`RootWebArea`,name:``}:u(e)}async clickByBackendNodeId(e){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`DOM.enable`,{},this.sessionId),await this.client.send(`Runtime.enable`,{},this.sessionId);let t=(await this.client.send(`DOM.resolveNode`,{backendNodeId:e},this.sessionId)).object;if(!t?.objectId)throw Error(`Could not resolve backend node ${e} to a DOM element`);let n=(await this.client.send(`Runtime.callFunctionOn`,{objectId:t.objectId,functionDeclaration:`function() {
|
|
873
873
|
this.scrollIntoView({ block: 'center', inline: 'center' });
|
|
874
874
|
const r = this.getBoundingClientRect();
|
|
875
875
|
return { x: r.x, y: r.y, width: r.width, height: r.height };
|
|
876
|
-
}`,returnByValue:!0},this.sessionId)).result?.value;if(!n||n.width===0||n.height===0){await this.client.send(`Runtime.callFunctionOn`,{objectId:t.objectId,functionDeclaration:`function() { this.click(); }`},this.sessionId);return}let r=n.x+n.width/2,i=n.y+n.height/2;await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:r,y:i,button:`left`,clickCount:1},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:r,y:i,button:`left`,clickCount:1},this.sessionId)}async dblclickByBackendNodeId(e,t=`left`){await this.ensureConnected(),this.ensureAttached();let{x:n,y:r}=await this.resolveNodeCenter(e);await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:n,y:r,button:t,clickCount:1},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:n,y:r,button:t,clickCount:1},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:n,y:r,button:t,clickCount:2},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:n,y:r,button:t,clickCount:2},this.sessionId)}async hoverByBackendNodeId(e){await this.ensureConnected(),this.ensureAttached();let{x:t,y:n}=await this.resolveNodeCenter(e);await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseMoved`,x:t,y:n},this.sessionId)}async selectByBackendNodeId(e,t){await this.ensureConnected(),this.ensureAttached();let n=await this.resolveNodeObjectId(e);await this.client.send(`Runtime.callFunctionOn`,{objectId:n,functionDeclaration:`function(val) { this.value = val; this.dispatchEvent(new Event('change', { bubbles: true })); }`,arguments:[{value:t}],returnByValue:!0},this.sessionId)}async setCheckedByBackendNodeId(e,t){await this.ensureConnected(),this.ensureAttached();let n=await this.resolveNodeObjectId(e);return(await this.client.send(`Runtime.callFunctionOn`,{objectId:n,functionDeclaration:`function() { return this.checked; }`,returnByValue:!0},this.sessionId)).result?.value===t?`already`:(await this.clickByBackendNodeId(e),`toggled`)}async dragByBackendNodeIds(e,t){await this.ensureConnected(),this.ensureAttached();let n=await this.resolveNodeCenter(e),r=await this.resolveNodeCenter(t);await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:n.x,y:n.y,button:`left`,clickCount:1},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseMoved`,x:r.x,y:r.y},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:r.x,y:r.y,button:`left`,clickCount:1},this.sessionId)}async getFrameTree(){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Page.enable`,{},this.sessionId);let e=(await this.client.send(`Page.getFrameTree`,{},this.sessionId)).frameTree,t=[],n=e=>{if(t.push({frameId:e.frame.id,parentFrameId:e.frame.parentId,url:e.frame.url,name:e.frame.name??``,securityOrigin:e.frame.securityOrigin}),Array.isArray(e.childFrames))for(let t of e.childFrames)n(t)};return n(e),t}async evaluateInFrame(e,t,n){await this.ensureConnected(),this.ensureAttached();let r=e=>{let t=e instanceof Error?e.message:String(e);return t.includes(`Cannot find context with specified id`)||t.includes(`Execution context was destroyed`)},i=async()=>{let t=(await this.client.send(`Page.createIsolatedWorld`,{frameId:e,worldName:`__slicc_iframe`},this.sessionId)).executionContextId;return this._frameContextCache.set(e,t),t},a=this._frameContextCache.get(e);if(a===void 0)try{a=await i()}catch(t){throw Error(`Failed to create isolated world for frame ${e}: ${t instanceof Error?t.message:String(t)}`)}await this.client.send(`Runtime.enable`,{},this.sessionId);let o={expression:t,contextId:a,awaitPromise:n?.awaitPromise??!0,returnByValue:n?.returnByValue??!0},s;try{s=await this.client.send(`Runtime.evaluate`,o,this.sessionId)}catch(t){if(r(t))this._frameContextCache.delete(e),a=await i(),s=await this.client.send(`Runtime.evaluate`,{...o,contextId:a},this.sessionId);else throw t}let c=s.exceptionDetails;if(c){let t=c.exception?.description??c.text;if(r(Error(t))){this._frameContextCache.delete(e),a=await i();let t=await this.client.send(`Runtime.evaluate`,{...o,contextId:a},this.sessionId),n=t.exceptionDetails;if(n){let t=n.exception?.description??n.text;throw Error(`Evaluation in frame ${e} failed: ${t}`)}return t.result.value}throw this._frameContextCache.delete(e),Error(`Evaluation in frame ${e} failed: ${t}`)}return s.result.value}async getAccessibilityTreeForFrame(e){if(!e)return this.getAccessibilityTree();await this.ensureConnected(),this.ensureAttached();let t=await this.evaluateInFrame(e,
|
|
876
|
+
}`,returnByValue:!0},this.sessionId)).result?.value;if(!n||n.width===0||n.height===0){await this.client.send(`Runtime.callFunctionOn`,{objectId:t.objectId,functionDeclaration:`function() { this.click(); }`},this.sessionId);return}let r=n.x+n.width/2,i=n.y+n.height/2;await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:r,y:i,button:`left`,clickCount:1},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:r,y:i,button:`left`,clickCount:1},this.sessionId)}async dblclickByBackendNodeId(e,t=`left`){await this.ensureConnected(),this.ensureAttached();let{x:n,y:r}=await this.resolveNodeCenter(e);await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:n,y:r,button:t,clickCount:1},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:n,y:r,button:t,clickCount:1},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:n,y:r,button:t,clickCount:2},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:n,y:r,button:t,clickCount:2},this.sessionId)}async hoverByBackendNodeId(e){await this.ensureConnected(),this.ensureAttached();let{x:t,y:n}=await this.resolveNodeCenter(e);await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseMoved`,x:t,y:n},this.sessionId)}async selectByBackendNodeId(e,t){await this.ensureConnected(),this.ensureAttached();let n=await this.resolveNodeObjectId(e);await this.client.send(`Runtime.callFunctionOn`,{objectId:n,functionDeclaration:`function(val) { this.value = val; this.dispatchEvent(new Event('change', { bubbles: true })); }`,arguments:[{value:t}],returnByValue:!0},this.sessionId)}async setCheckedByBackendNodeId(e,t){await this.ensureConnected(),this.ensureAttached();let n=await this.resolveNodeObjectId(e);return(await this.client.send(`Runtime.callFunctionOn`,{objectId:n,functionDeclaration:`function() { return this.checked; }`,returnByValue:!0},this.sessionId)).result?.value===t?`already`:(await this.clickByBackendNodeId(e),`toggled`)}async dragByBackendNodeIds(e,t){await this.ensureConnected(),this.ensureAttached();let n=await this.resolveNodeCenter(e),r=await this.resolveNodeCenter(t);await this.client.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:n.x,y:n.y,button:`left`,clickCount:1},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseMoved`,x:r.x,y:r.y},this.sessionId),await this.client.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:r.x,y:r.y,button:`left`,clickCount:1},this.sessionId)}async getFrameTree(){await this.ensureConnected(),this.ensureAttached(),await this.client.send(`Page.enable`,{},this.sessionId);let e=(await this.client.send(`Page.getFrameTree`,{},this.sessionId)).frameTree,t=[],n=e=>{if(t.push({frameId:e.frame.id,parentFrameId:e.frame.parentId,url:e.frame.url,name:e.frame.name??``,securityOrigin:e.frame.securityOrigin}),Array.isArray(e.childFrames))for(let t of e.childFrames)n(t)};return n(e),t}async evaluateInFrame(e,t,n){await this.ensureConnected(),this.ensureAttached();let r=e=>{let t=e instanceof Error?e.message:String(e);return t.includes(`Cannot find context with specified id`)||t.includes(`Execution context was destroyed`)},i=async()=>{let t=(await this.client.send(`Page.createIsolatedWorld`,{frameId:e,worldName:`__slicc_iframe`},this.sessionId)).executionContextId;return this._frameContextCache.set(e,t),t},a=this._frameContextCache.get(e);if(a===void 0)try{a=await i()}catch(t){throw Error(`Failed to create isolated world for frame ${e}: ${t instanceof Error?t.message:String(t)}`)}await this.client.send(`Runtime.enable`,{},this.sessionId);let o={expression:t,contextId:a,awaitPromise:n?.awaitPromise??!0,returnByValue:n?.returnByValue??!0},s;try{s=await this.client.send(`Runtime.evaluate`,o,this.sessionId)}catch(t){if(r(t))this._frameContextCache.delete(e),a=await i(),s=await this.client.send(`Runtime.evaluate`,{...o,contextId:a},this.sessionId);else throw t}let c=s.exceptionDetails;if(c){let t=c.exception?.description??c.text;if(r(Error(t))){this._frameContextCache.delete(e),a=await i();let t=await this.client.send(`Runtime.evaluate`,{...o,contextId:a},this.sessionId),n=t.exceptionDetails;if(n){let t=n.exception?.description??n.text;throw Error(`Evaluation in frame ${e} failed: ${t}`)}return t.result.value}throw this._frameContextCache.delete(e),Error(`Evaluation in frame ${e} failed: ${t}`)}return s.result.value}async getAccessibilityTreeForFrame(e){if(!e)return this.getAccessibilityTree();await this.ensureConnected(),this.ensureAttached();let t=await this.evaluateInFrame(e,i,{awaitPromise:!1,returnByValue:!0});return!t||typeof t!=`object`?{role:`RootWebArea`,name:``}:u(t)}async sendCDP(e,t={}){return await this.ensureConnected(),this.ensureAttached(),await this.client.send(e,t,this.sessionId)}async resolveNodeObjectId(e){await this.client.send(`DOM.enable`,{},this.sessionId),await this.client.send(`Runtime.enable`,{},this.sessionId);let t=(await this.client.send(`DOM.resolveNode`,{backendNodeId:e},this.sessionId)).object;if(!t?.objectId)throw Error(`Could not resolve backend node ${e} to a DOM element`);return t.objectId}async resolveNodeCenter(e){let t=await this.resolveNodeObjectId(e),n=(await this.client.send(`Runtime.callFunctionOn`,{objectId:t,functionDeclaration:`function() {
|
|
877
877
|
this.scrollIntoView({ block: 'center', inline: 'center' });
|
|
878
878
|
const r = this.getBoundingClientRect();
|
|
879
879
|
return { x: r.x, y: r.y, width: r.width, height: r.height };
|
|
880
|
-
}`,returnByValue:!0},this.sessionId)).result?.value;if(!n||n.width===0||n.height===0)throw Error(`Element with backend node ${e} has no dimensions`);return{x:n.x+n.width/2,y:n.y+n.height/2}}async ensureLocalConnected(){this.localClient.state===`disconnected`&&await this.localClient.connect({url:c()})}async ensureConnected(){this.client.state===`disconnected`&&(this.remoteTargetInfo&&this.trayTargetProvider?.removeRemoteTransport&&(this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),this.remoteTargetInfo=null),this.sessionId=null,this.attachedTargetId=null,this.client.state===`disconnected`&&await this.connect())}ensureAttached(){if(!this.sessionId)throw Error(`Not attached to a page. Call attachToPage(targetId) first.`)}addDialogListener(e){e.on(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}removeDialogListener(e){e.off(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}setClient(e){this.client!==e&&(this.removeDialogListener(this.client),this.client=e,this.addDialogListener(this.client))}async boundingBox(e){await this.client.send(`DOM.enable`,{},this.sessionId);let t=(await this.client.send(`DOM.getDocument`,{depth:0},this.sessionId)).root.nodeId,n;try{n=(await this.client.send(`DOM.querySelector`,{nodeId:t,selector:e},this.sessionId)).nodeId}catch{return null}if(!n)return null;let r=(await this.client.send(`DOM.getBoxModel`,{nodeId:n},this.sessionId)).model;if(!r)return null;let i=r.content;return{x:i[0],y:i[1],width:r.width,height:r.height}}};function u(e){let t={role:
|
|
880
|
+
}`,returnByValue:!0},this.sessionId)).result?.value;if(!n||n.width===0||n.height===0)throw Error(`Element with backend node ${e} has no dimensions`);return{x:n.x+n.width/2,y:n.y+n.height/2}}async ensureLocalConnected(){this.localClient.state===`disconnected`&&await this.localClient.connect({url:c()})}async ensureConnected(){this.client.state===`disconnected`&&(this.remoteTargetInfo&&this.trayTargetProvider?.removeRemoteTransport&&(this.trayTargetProvider.removeRemoteTransport(this.remoteTargetInfo.runtimeId,this.remoteTargetInfo.localTargetId),this.setClient(this.localClient),this.remoteTargetInfo=null),this.sessionId=null,this.attachedTargetId=null,this.client.state===`disconnected`&&await this.connect())}ensureAttached(){if(!this.sessionId)throw Error(`Not attached to a page. Call attachToPage(targetId) first.`)}addDialogListener(e){e.on(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}removeDialogListener(e){e.off(`Page.javascriptDialogOpening`,this.handleJavaScriptDialogOpening)}setClient(e){this.client!==e&&(this.removeDialogListener(this.client),this.client=e,this.addDialogListener(this.client))}async boundingBox(e){await this.client.send(`DOM.enable`,{},this.sessionId);let t=(await this.client.send(`DOM.getDocument`,{depth:0},this.sessionId)).root.nodeId,n;try{n=(await this.client.send(`DOM.querySelector`,{nodeId:t,selector:e},this.sessionId)).nodeId}catch{return null}if(!n)return null;let r=(await this.client.send(`DOM.getBoxModel`,{nodeId:n},this.sessionId)).model;if(!r)return null;let i=r.content;return{x:i[0],y:i[1],width:r.width,height:r.height}}};function u(e){let t={role:a(e.role,`unknown`),name:a(e.name)},n=a(e.value);n!==``&&(t.value=n);let r=a(e.description);return r!==``&&(t.description=r),Array.isArray(e.children)&&e.children.length>0&&(t.children=e.children.map(e=>u(e)).filter(e=>e.role!==`unknown`)),t}t(`cdp:debugger`),t(`har-recorder`),t(`navigation-watcher`);export{l as BrowserAPI};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{dt as e}from"./kernel-worker-DliiU68B.js";function t(e){let t=e;if(t.__sliccWsRouter)return;let n=new Map;function r(e){if(e!==void 0)try{return new RegExp(e)}catch{return null}}function i(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function a(e,t){for(let n of Object.keys(t)){let r=t[n],o=e[n];if(i(r)){if(!i(o)||!a(o,r))return!1;continue}if(!Object.is(o,r))return!1}return!0}function o(e,t){if(t===`text`)return e;try{return JSON.parse(e)}catch{return}}function s(e,t){if(!t||t.length===0||!i(e))return e;let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function c(e,n){let r=t.__sliccWsRouterReport;if(typeof r==`function`)try{r(JSON.stringify({subId:e,payload:n}))}catch{}}function l(e,t){if(n.size!==0)for(let r of n.values()){if(r.urlMatch!==void 0){let t=r._urlMatchRe;if(t===null||t&&!t.test(e))continue}let n=o(t,r.filter?.parseAs);n!==void 0&&(r.filter?.where&&Object.keys(r.filter.where).length>0&&(!i(n)||!a(n,r.filter.where))||c(r.id,s(n,r.filter?.project)))}}let u=new WeakSet;function d(e){u.has(e)||(u.add(e),e.addEventListener(`message`,t=>{if(typeof t.data==`string`)try{l(e.url,t.data)}catch{}}))}let f=e.WebSocket;if(!f)return;let p=f.prototype.send;f.prototype.send=function(e){d(this),p.call(this,e)},Object.defineProperty(t,"__sliccWsRouter",{value:{register(e){n.set(e.id,{...e,_urlMatchRe:r(e.urlMatch)})},update(e,t){let i=n.get(e);if(!i)return;let a={...i,id:e};Object.prototype.hasOwnProperty.call(t,`urlMatch`)&&(t.urlMatch===null?(delete a.urlMatch,a._urlMatchRe=void 0):typeof t.urlMatch==`string`&&(a.urlMatch=t.urlMatch,a._urlMatchRe=r(t.urlMatch))),Object.prototype.hasOwnProperty.call(t,`filter`)&&(t.filter===null?delete a.filter:t.filter!==void 0&&(a.filter=t.filter)),n.set(e,a)},unregister(e){n.delete(e)},_dispatch:l},configurable:!1})}const n=`(${t.toString()})(globalThis);`,r=e(`cdp-ws-page-bridge`),i=`__sliccWsRouterReport`;var a=class{browser;installs=new Map;frameHandler=null;bindingListenerAttached=!1;onBindingCalled=e=>{if(e.name!==i)return;let t=e.payload;if(typeof t!=`string`)return;let n;try{n=JSON.parse(t)}catch{return}if(typeof n!=`object`||!n)return;let a=n.subId;if(typeof a!=`string`)return;let o=n.payload;try{this.frameHandler?.(a,o)}catch(e){r.warn(`frame handler threw`,{subId:a,error:e instanceof Error?e.message:String(e)})}};constructor(e){this.browser=e.browser}async installRouter(e){if(this.installs.has(e))return;this.ensureBindingListener();let t=await this.browser.withTab(e,async()=>{await this.browser.sendCDP(`Runtime.enable`),await this.browser.sendCDP(`Runtime.addBinding`,{name:i});let e=await this.browser.sendCDP(`Page.addScriptToEvaluateOnNewDocument`,{source:n});return await this.browser.sendCDP(`Runtime.evaluate`,{expression:n,returnByValue:!0}),e}),r=typeof t.identifier==`string`?t.identifier:null;this.installs.set(e,{scriptIdentifier:r})}async registerSelector(e,t,n,r){await this.evalRouterCall(e,`register`,{id:t,...n===void 0?{}:{urlMatch:n},...r===void 0?{}:{filter:r}})}async updateSelector(e,t,n,r){await this.browser.withTab(e,async()=>{let e={};n===null?e.urlMatch=null:n!==void 0&&(e.urlMatch=n),r===null?e.filter=null:r!==void 0&&(e.filter=r);let i=`window.__sliccWsRouter && window.__sliccWsRouter.update(${JSON.stringify(t)}, ${JSON.stringify(e)})`;await this.browser.sendCDP(`Runtime.evaluate`,{expression:i,returnByValue:!0})})}async unregisterSelector(e,t){await this.browser.withTab(e,async()=>{let e=`window.__sliccWsRouter && window.__sliccWsRouter.unregister(${JSON.stringify(t)})`;await this.browser.sendCDP(`Runtime.evaluate`,{expression:e,returnByValue:!0})})}onMatchedFrame(e){return this.frameHandler=e,()=>{this.frameHandler===e&&(this.frameHandler=null)}}dispose(){this.bindingListenerAttached&&=(this.browser.getTransport().off(`Runtime.bindingCalled`,this.onBindingCalled),!1),this.installs.clear(),this.frameHandler=null}ensureBindingListener(){this.bindingListenerAttached||=(this.browser.getTransport().on(`Runtime.bindingCalled`,this.onBindingCalled),!0)}async evalRouterCall(e,t,n){await this.browser.withTab(e,async()=>{let e=`window.__sliccWsRouter && window.__sliccWsRouter.${t}(${JSON.stringify(n)})`;await this.browser.sendCDP(`Runtime.evaluate`,{expression:e,returnByValue:!0})})}};export{a as CdpWsPageBridge};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--bg:#fbfaf7;--surface:#fff;--border:#ece8df;--text:#1f1d1a;--muted:#6e655d;--accent:#e8516b;--accent-deep:#c4344f;--accent-soft:#fce4e8;--running:#2ec27e;--paused:#c5b8a6;--dead:#d96363;--shadow:0 2px 8px #281e190f;--radius:14px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;padding:32px 24px;font:14.5px/1.55 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}main,header{max-width:720px;margin:0 auto}header{border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(135deg,#ffe8d6 0%,#ffc9c9 100%);justify-content:space-between;align-items:center;margin-bottom:24px;padding:20px 24px;display:flex}header h1{letter-spacing:-.01em;color:#4a2a1f;margin:0;font-size:22px;font-weight:600}header h1:before{content:"🍦 "}#user-label{color:var(--muted);margin-right:12px;font-size:13px}.hidden{display:none}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 14px;transition:all .15s}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-deep)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}.cone--busy{opacity:.7}.cone-busy-badge{color:var(--accent-deep);font-weight:500}.cone--busy .cone-busy-badge:before{content:"";border:2px solid var(--accent);vertical-align:-1px;border-top-color:#0000;border-radius:50%;width:10px;height:10px;margin-right:6px;animation:.8s linear infinite cone-spin;display:inline-block}@keyframes cone-spin{to{transform:rotate(360deg)}}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#sign-in-btn,#create-btn{background:var(--accent);color:#fff;border-color:var(--accent);padding:10px 18px;font-weight:500}#sign-in-btn:hover:not(:disabled),#create-btn:hover:not(:disabled){background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}#signed-out{text-align:center;padding:48px 24px}.create-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:10px;margin:20px 0 24px;padding:16px;display:flex}#cone-name{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;flex:1;padding:10px 14px}#cone-name:focus{border-color:var(--accent);background:var(--surface);outline:none}#cone-list{margin:0;padding:0;list-style:none}.cone{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);justify-content:space-between;align-items:center;margin-bottom:12px;padding:16px 18px;transition:transform .15s;display:flex}.cone:hover{transform:translateY(-1px)}.state-dot{border-radius:50%;width:10px;height:10px;margin-right:10px;display:inline-block;box-shadow:0 0 0 3px #ffffffb3}.cone.running .state-dot{background:var(--running)}.cone.paused .state-dot{background:var(--paused)}.cone.dead .state-dot{background:var(--dead)}.cone.reserved .state-dot{background:var(--accent)}.cone strong{font-weight:600}.cone-actions{gap:8px;display:flex}.cone-actions a{background:var(--accent-soft);color:var(--accent-deep);border:1px solid #0000;border-radius:8px;align-items:center;padding:8px 12px;font-weight:500;text-decoration:none;display:inline-flex}.cone-actions a:hover{border-color:var(--accent)}.status{color:var(--muted);font-size:12px}.cap-info{color:var(--muted);text-align:right;margin-top:12px;padding-right:6px;font-size:12px}.toast{color:#fff;background:#2b2723;border-radius:10px;max-width:320px;padding:14px 18px;font-size:13.5px;animation:.3s toast-in;position:fixed;top:24px;right:24px;box-shadow:0 6px 20px #0003}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ft as e}from"./kernel-worker-
|
|
1
|
+
import{ft as e}from"./kernel-worker-DliiU68B.js";var t=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.tryCatchWrapper=n;var t=class extends Error{constructor(e){super(),this.stackTrace=e}};function n(e){try{return e()}catch(e){throw new t(e)}}})),n=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BiomeCommon=void 0;let n=t();function r(e){return`debug`in e&&e.debug!==void 0}let i=new WeakSet;e.BiomeCommon=class{constructor(e){this.module=e,i.has(e)||(e.main(),i.add(e)),this.workspace=new e.Workspace}shutdown(){this.workspace.free()}applyConfiguration(e,t){(0,n.tryCatchWrapper)(()=>{this.workspace.updateSettings({projectKey:e,configuration:t,workspaceDirectory:`./`})})}openProject(e){return this.workspace.openProject({path:e||``,openUninitialized:!0})}withFile(e,t,r,i){return(0,n.tryCatchWrapper)(()=>{this.workspace.openFile({projectKey:e,content:{type:`fromClient`,content:r,version:0},path:t});try{return i(t)}finally{this.workspace.closeFile({projectKey:e,path:t})}})}formatContent(e,t,n){return this.withFile(e,n.filePath,t,i=>{let a=t,o=this.workspace.pullDiagnostics({projectKey:e,path:i,categories:[`syntax`],pullCodeActions:!1});if(o.errors===0&&(a=n.range?this.workspace.formatRange({projectKey:e,path:i,range:n.range}).code:this.workspace.formatFile({projectKey:e,path:i}).code,r(n))){let t=this.workspace.getFormatterIr({projectKey:e,path:i});return{content:a,diagnostics:o.diagnostics,ir:t}}return{content:a,diagnostics:o.diagnostics}})}lintContent(e,t,{filePath:n,fixFileMode:r}){let i=r?this.withFile(e,n,t,t=>{let{code:n}=this.workspace.fixFile({projectKey:e,path:t,fixFileMode:r,shouldFormat:!1,ruleCategories:[`syntax`,`lint`,`action`]});return n}):t;return this.withFile(e,n,i,t=>{let{diagnostics:n}=this.workspace.pullDiagnostics({projectKey:e,path:t,categories:[`syntax`,`lint`,`action`],pullCodeActions:!1});return{content:i,diagnostics:n}})}printDiagnostics(e,t){return(0,n.tryCatchWrapper)(()=>{let n=new this.module.DiagnosticPrinter(t.filePath,t.fileSource);try{for(let r of e)t.verbose?n.print_verbose(r):n.print_simple(r);return n.finish()}catch(e){throw n.free(),e}})}}}));export{n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./main-B-y1VCYe.js";function e(e){}export{e as registerSessionCostsProvider};
|