UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

1 lines • 1.57 kB
import{n as e}from"./rolldown-runtime-8BhlS34s.js";import{fa as t}from"./control-ui-core-CFW9Qtjn.js";function n(e){return e===`granted`||e===`denied`||e===`notDetermined`}function r(e){if(typeof e!=`object`||!e||!(`permission`in e)||!n(e.permission))return null;if(!(`test`in e))return{permission:e.permission,test:null};let t=e.test;return t===null?{permission:e.permission,test:null}:typeof t!=`object`||!t||!(`state`in t)?null:t.state===`pending`||t.state===`sent`?{permission:e.permission,test:{state:t.state}}:t.state===`error`&&`message`in t&&typeof t.message==`string`?{permission:e.permission,test:{state:`error`,message:t.message}}:null}function i(){let e=t()?.webkit?.messageHandlers?.openclawNotifications;return e?.postMessage.bind(e)}function a(){let e=i();if(!e)return null;let t=r(window.__OPENCLAW_NATIVE_NOTIFICATIONS__)??{permission:`unknown`,test:null},n=new Set,a=e=>{t=e;for(let e of n)e(t)},s=e=>{let t=r(e.detail);t&&a(t)},c=()=>e({type:`status`});return window.addEventListener(o,s),window.addEventListener(`focus`,c),c(),{get snapshot(){return t},subscribe(e){return n.add(e),()=>n.delete(e)},requestPermission(){e({type:`request-permission`})},sendTest(){t.test?.state!==`pending`&&(a({...t,test:{state:`pending`}}),e({type:`send-test`}))},backgroundSessionCompleted(t){e({type:`background-session-completed`,...t})},dispose(){window.removeEventListener(o,s),window.removeEventListener(`focus`,c),n.clear()}}}var o;function s(){return(s=e((()=>{o=`openclaw:native-notifications-status`})))()}s();export{a as createNativeNotificationsCapability};