UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

2 lines 2.42 kB
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{Ja as t,Qa as n,Xa as r,fo as i}from"./control-ui-core-Rwzhj6nO.js";function a(e){let t=e&&typeof e==`object`&&`requestId`in e?e.requestId:void 0;if(typeof t!=`string`||!t.trim())throw Error(`gateway returned an invalid scope upgrade request id`);return t}function o(e,t){if(!e||typeof e!=`object`)throw Error(`gateway returned an invalid scope upgrade result`);let n=e;if(n.requestId!==t)throw Error(`gateway returned a mismatched scope upgrade result`);if(n.status===`rejected`||n.status===`expired`)return{status:n.status,requestId:t};let r=n.status===`approved`&&typeof n.deviceToken==`string`?n.deviceToken.trim():``,i=n.status===`approved`&&Array.isArray(n.scopes)?n.scopes:[];if(!r||i.length===0||i.some(e=>typeof e!=`string`||!e.trim()))throw Error(`gateway returned invalid approved scope upgrade credentials`);return{status:`approved`,requestId:t,deviceToken:r,scopes:i}}var s;function c(){return(c=e((()=>{s=class{constructor(e){this.deps=e}requestScopeUpgrade(e){if(this.active)return this.active.requestId&&e.onPending?.(this.active.requestId),this.active.promise;let t={controller:new AbortController},n=this.runUpgrade(t,e).finally(()=>{this.active===t&&(this.active=void 0)});return t.promise=n,this.active=t,n}cancelScopeUpgrade(){let e=this.active;this.active=void 0,e?.controller.abort()}async runUpgrade(e,t){let n=a(await this.deps.request(`device.scopes.requestUpgrade`,{scopes:[...t.scopes]},{signal:e.controller.signal}));e.requestId=n,t.onPending?.(n);let r=o(await this.deps.request(`device.scopes.waitUpgrade`,{requestId:n},{timeoutMs:null,signal:e.controller.signal}),n);return r.status===`approved`?(await this.deps.tokenStore.store({clientId:t.binding.clientId,deviceId:t.binding.deviceId,role:t.binding.role,token:r.deviceToken,scopes:r.scopes}),this.deps.reconnect(),{status:`approved`,requestId:n,scopes:r.scopes}):r}}})))()}function l(e){return new s({request:e.request,tokenStore:{load:({deviceId:t,role:r})=>n({deviceId:t,gatewayUrl:e.gatewayUrl,role:r}),store:({deviceId:t,role:n,token:r,scopes:a})=>{i({deviceId:t,gatewayUrl:e.gatewayUrl,role:n,token:r,scopes:a})},clear:({deviceId:n,role:r})=>t({deviceId:n,gatewayUrl:e.gatewayUrl,role:r})},reconnect:e.reconnect})}function u(){return(u=e((()=>{c(),r()})))()}u();export{l as createGatewayScopeUpgradeRuntime}; //# sourceMappingURL=gateway-scope-upgrade.runtime-COKPg-Cs.js.map