@shopify/app-bridge
Advanced tools
Comparing version 2.0.12 to 2.0.13
@@ -1,4 +0,5 @@ | ||
export declare function shouldRedirect(frame: Window): boolean; | ||
import type { HostFrame } from '../MessageTransport'; | ||
export declare function shouldRedirect(frame: HostFrame): boolean; | ||
export declare function redirect(url: string): void; | ||
export declare function getLocation(): Location | undefined; | ||
export declare function getWindow(): (Window & typeof globalThis) | undefined; |
@@ -17,3 +17,3 @@ import type { AnyAction, ActionCallback, Unsubscribe } from './actions/types'; | ||
/** | ||
* @deprecated Not to be used, use regular `MessageEvent` instead. | ||
* @deprecated Not to be used, use `MessageEvent` instead. | ||
* @internal | ||
@@ -27,2 +27,29 @@ */ | ||
*/ | ||
export interface MessageEvent<T = any> { | ||
origin: string; | ||
data: T; | ||
source?: any; | ||
} | ||
/** | ||
* @internal | ||
*/ | ||
export interface HostFrame { | ||
addEventListener(type: 'message', listener: (event: MessageEvent) => any): void; | ||
} | ||
/** | ||
* @internal | ||
*/ | ||
export interface FrameWindow { | ||
postMessage(message: any, origin: string): void; | ||
} | ||
/** | ||
* @internal | ||
*/ | ||
export interface Frame { | ||
host: HostFrame | null; | ||
window: FrameWindow | null; | ||
} | ||
/** | ||
* @internal | ||
*/ | ||
export declare type Handler = (event: MessageEvent) => void; | ||
@@ -34,3 +61,3 @@ /** | ||
dispatch(message: TransportDispatch): void; | ||
hostFrame: Window; | ||
hostFrame: HostFrame; | ||
localOrigin: string; | ||
@@ -41,7 +68,7 @@ subscribe(handler: Handler): () => void; | ||
context: Context; | ||
frameWindow: Window | null; | ||
frameWindow: FrameWindow | null; | ||
dispatch(message: any): void; | ||
} | ||
/** | ||
* Create a MessageTransport from an IFrame. | ||
* Create a MessageTransport from a Frame. | ||
* @remarks | ||
@@ -51,3 +78,3 @@ * Used on the host-side to create a postMessage MessageTransport. | ||
*/ | ||
export declare function fromFrame(frame: HTMLIFrameElement, localOrigin: string, context: Context): ContextualMessageTransport; | ||
export declare function fromFrame(frame: Frame, localOrigin: string, context: Context): ContextualMessageTransport; | ||
/** | ||
@@ -54,0 +81,0 @@ * Create a MessageTransport from a parent window. |
@@ -16,3 +16,3 @@ "use strict"; | ||
/** | ||
* Create a MessageTransport from an IFrame. | ||
* Create a MessageTransport from a Frame. | ||
* @remarks | ||
@@ -24,7 +24,7 @@ * Used on the host-side to create a postMessage MessageTransport. | ||
var handlers = []; | ||
if (typeof frame === 'undefined' || !frame.ownerDocument || !frame.ownerDocument.defaultView) { | ||
var host = frame.host, window = frame.window; | ||
if (!host) { | ||
throw Error_1.fromAction('App frame is undefined', Error_1.AppActionType.WINDOW_UNDEFINED); | ||
} | ||
var parent = frame.ownerDocument.defaultView; | ||
parent.addEventListener('message', function (event) { | ||
host.addEventListener('message', function (event) { | ||
if (!validator_1.isAppMessage(event)) { | ||
@@ -34,12 +34,9 @@ return; | ||
if (event.origin !== localOrigin) { | ||
var contentWindow = frame.contentWindow; | ||
if (contentWindow) { | ||
var errorMessage = "Message origin '" + event.origin + "' does not match app origin '" + localOrigin + "'."; | ||
var payload = Error_1.invalidOriginAction(errorMessage); | ||
var message = { | ||
type: 'dispatch', | ||
payload: payload, | ||
}; | ||
contentWindow.postMessage(message, event.origin); | ||
} | ||
var errorMessage = "Message origin '" + event.origin + "' does not match app origin '" + localOrigin + "'."; | ||
var payload = Error_1.invalidOriginAction(errorMessage); | ||
var message = { | ||
type: 'dispatch', | ||
payload: payload, | ||
}; | ||
window === null || window === void 0 ? void 0 : window.postMessage(message, event.origin); | ||
return; | ||
@@ -55,9 +52,6 @@ } | ||
localOrigin: localOrigin, | ||
frameWindow: frame.contentWindow, | ||
hostFrame: parent, | ||
frameWindow: window, | ||
hostFrame: host, | ||
dispatch: function (message) { | ||
var contentWindow = frame.contentWindow; | ||
if (contentWindow) { | ||
contentWindow.postMessage(message, localOrigin); | ||
} | ||
window === null || window === void 0 ? void 0 : window.postMessage(message, localOrigin); | ||
}, | ||
@@ -64,0 +58,0 @@ subscribe: function (handler) { |
{ | ||
"name": "@shopify/app-bridge", | ||
"version": "2.0.12", | ||
"version": "2.0.13", | ||
"types": "index.d.ts", | ||
@@ -56,3 +56,3 @@ "main": "index.js", | ||
}, | ||
"gitHead": "4aedfd67b2af106040cefc8705e8cb0159eb69cd" | ||
"gitHead": "6d3066203c2126a028e41c60fcc3266769fde0c5" | ||
} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
866540
18294