UNPKG

@bunihq/app-bridge

Version:

BuniHQ App Bridge library

82 lines (76 loc) 2.41 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var index_exports = {}; __export(index_exports, { COMPONENT_TYPES: () => COMPONENT_TYPES, EVENTS: () => EVENTS, getSessionToken: () => getSessionToken }); module.exports = __toCommonJS(index_exports); // src/components/types.ts var COMPONENT_TYPES = { SIDEBAR_AREA: "sidebar-area", SIDEBAR_GROUP: "sidebar-group", SIDEBAR_MENU: "sidebar-menu" }; // src/events/index.ts var EVENTS = { HOST_COMPONENT_CONNECTED: "host-component-connected", REQUEST_SESSION_TOKEN: "request-session-token" }; // src/utils/origin.ts function getOrigin() { const ancestors = window.location.ancestorOrigins; if (ancestors?.length) { return ancestors[0]; } if (document.referrer) { return new URL(document.referrer).origin; } return window.location.origin; } // src/utils/session-token.ts function getSessionToken() { const origin = getOrigin(); window.parent.postMessage( { type: EVENTS.REQUEST_SESSION_TOKEN, detail: {} }, origin ); return new Promise((resolve, reject) => { const handleMessage = (event) => { if (event.origin === origin && event.data.type === EVENTS.REQUEST_SESSION_TOKEN) { window.removeEventListener("message", handleMessage); resolve(event.data.detail.token); return; } window.removeEventListener("message", handleMessage); reject(new Error("Failed to get session token")); }; window.addEventListener("message", handleMessage); }); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { COMPONENT_TYPES, EVENTS, getSessionToken });