New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

interframe

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

interframe - npm Package Compare versions

Comparing version
1.2.0
to
1.3.0
+47
-10
lib/interframe.commonjs.js

@@ -1,2 +0,2 @@

/*! interframe v1.2.0 by Sebastian Fastner <s.fastner@sebastian-software.de> */
/*! interframe v1.3.0 by Sebastian Fastner <s.fastner@sebastian-software.de> */
'use strict';

@@ -27,2 +27,3 @@

var responseResolver = {};
var preHandshakeSendQueue = [];
var isHandshaken = false;

@@ -54,2 +55,13 @@

if (!isHandshaken) {
return new Promise(function (resolve) {
preHandshakeSendQueue.push({
namespace: namespace,
data: data,
responseId: responseId,
resolve: resolve
});
});
}
var id = nextID();

@@ -116,2 +128,27 @@ targetWindow.postMessage(JSON.stringify({

handshakeCallback.length = 0;
var _loop = function _loop(sendItem) {
send(sendItem.namespace, sendItem.data, sendItem.responseId).then(function (response) {
return sendItem.resolve(response);
})["catch"](function () {
return sendItem.resolve();
});
};
for (var _iterator2 = preHandshakeSendQueue, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var sendItem = _ref2;
_loop(sendItem);
}
}

@@ -147,15 +184,15 @@

var message = createMessage(messageData);
for (var _iterator2 = listeners, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
for (var _iterator3 = listeners, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref3 = _iterator3[_i3++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
_i3 = _iterator3.next();
if (_i3.done) break;
_ref3 = _i3.value;
}
var listener = _ref2;
var listener = _ref3;

@@ -162,0 +199,0 @@ listener(createMessage(message));

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"interframe.commonjs.js","sources":["../src/nextID.js","../src/index.js"],"sourcesContent":["let id = 0\n\nexport default function nextID()\n{\n id += 1\n return id\n}\n","/* eslint-disable filenames/match-exported, max-params */\n\nimport nextID from \"./nextID\"\n\nconst TYPE = \"application/interframe-ssoft-v1+json\"\nconst PROMISE_TIMEOUT = 3000\n\nfunction interframe(targetWindow, origin = \"*\", sourceWindow)\n{\n if (!targetWindow)\n {\n throw new Error(\"parameter 'targetWindow' is missing\")\n }\n\n const listeners = []\n const handshakeCallback = []\n const responseResolver = {}\n let isHandshaken = false\n\n function addListener(callback)\n {\n listeners.push(callback)\n return callback\n }\n\n function removeListener(callback)\n {\n const pos = listeners.indexOf(callback)\n\n if (pos >= 0) {\n listeners.splice(pos, 1)\n }\n }\n\n function send(namespace, data = null, responseId)\n {\n if (!namespace)\n {\n throw new Error(\"parameter 'namespace' is missing\")\n }\n if (typeof namespace !== \"string\")\n {\n throw new Error(\"parameter 'namespace' must be a string\")\n }\n\n const id = nextID()\n targetWindow.postMessage(JSON.stringify({\n id,\n responseId,\n type: TYPE,\n namespace,\n data\n }), origin)\n\n return new Promise((resolve) => {\n const timer = setTimeout(() => {\n responseResolver[id] = undefined // eslint-disable-line security/detect-object-injection\n resolve()\n }, PROMISE_TIMEOUT)\n\n responseResolver[id] = { // eslint-disable-line security/detect-object-injection\n resolve,\n timer\n }\n })\n }\n\n function sendHandshake(acknowledgement = false)\n {\n const message = { type: TYPE }\n if (acknowledgement)\n message.handshakeConfirmation = true\n else\n message.handshake = true\n\n targetWindow.postMessage(JSON.stringify(message), origin)\n }\n\n function isSafeMessage(msgSource, msgOrigin, msgType)\n {\n const safeSource = msgSource === targetWindow\n const safeOrigin = (origin === \"*\") || (msgOrigin === origin)\n const safeType = msgType === TYPE\n\n return safeSource && safeOrigin && safeType\n }\n\n function handleHandshake(data)\n {\n if (data.handshake)\n sendHandshake(true)\n\n isHandshaken = true\n\n for (const hsCallback of handshakeCallback) {\n hsCallback()\n }\n handshakeCallback.length = 0\n }\n\n function createMessage(messageData)\n {\n const message = {\n id: messageData.id,\n data: messageData.data,\n namespace: messageData.namespace,\n\n open: () => {\n message.isPromise = true\n\n return Object.assign(\n {},\n messageData,\n {\n response: (data) =>\n {\n send(messageData.namespace, data, messageData.id)\n }\n }\n )\n }\n }\n\n return message\n }\n\n function handleMessage(messageData)\n {\n if (messageData.responseId && responseResolver[messageData.responseId])\n {\n const resolver = responseResolver[messageData.responseId]\n clearTimeout(resolver.timer)\n resolver.resolve(messageData)\n responseResolver[messageData.responseId] = undefined\n }\n else\n {\n const message = createMessage(messageData)\n for (const listener of listeners)\n listener(createMessage(message))\n }\n }\n\n function messageListener(event)\n {\n let data\n\n try\n {\n data = JSON.parse(event.data)\n }\n catch (error)\n {\n return false\n }\n\n if (!isSafeMessage(event.source, event.origin, data.type))\n {\n return false\n }\n\n if (data.handshake || data.handshakeConfirmation)\n return handleHandshake(data)\n\n return handleMessage(data)\n }\n\n const ownWindow = sourceWindow || window\n ownWindow.addEventListener(\"message\", messageListener, false)\n\n sendHandshake()\n\n function hasHandshake(callback)\n {\n if (isHandshaken)\n {\n if (typeof callback === \"function\")\n callback()\n return true\n }\n\n handshakeCallback.push(callback)\n return false\n }\n\n return {\n addListener,\n removeListener,\n send,\n\n hasHandshake\n }\n}\n\nexport default interframe\n"],"names":["id","nextID","TYPE","PROMISE_TIMEOUT","interframe","targetWindow","origin","sourceWindow","Error","listeners","handshakeCallback","responseResolver","isHandshaken","addListener","callback","push","removeListener","pos","indexOf","splice","send","namespace","data","responseId","postMessage","JSON","stringify","Promise","resolve","timer","setTimeout","undefined","sendHandshake","acknowledgement","message","type","handshakeConfirmation","handshake","isSafeMessage","msgSource","msgOrigin","msgType","safeSource","safeOrigin","safeType","handleHandshake","hsCallback","length","createMessage","messageData","isPromise","Object","assign","handleMessage","resolver","listener","messageListener","event","parse","error","source","ownWindow","window","addEventListener","hasHandshake"],"mappings":"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"}
{"version":3,"file":"interframe.commonjs.js","sources":["../src/nextID.js","../src/index.js"],"sourcesContent":["let id = 0\n\nexport default function nextID()\n{\n id += 1\n return id\n}\n","/* eslint-disable filenames/match-exported, max-params */\n\nimport nextID from \"./nextID\"\n\nconst TYPE = \"application/interframe-ssoft-v1+json\"\nconst PROMISE_TIMEOUT = 3000\n\nfunction interframe(targetWindow, origin = \"*\", sourceWindow)\n{\n if (!targetWindow)\n {\n throw new Error(\"parameter 'targetWindow' is missing\")\n }\n\n const listeners = []\n const handshakeCallback = []\n const responseResolver = {}\n const preHandshakeSendQueue = []\n let isHandshaken = false\n\n function addListener(callback)\n {\n listeners.push(callback)\n return callback\n }\n\n function removeListener(callback)\n {\n const pos = listeners.indexOf(callback)\n\n if (pos >= 0) {\n listeners.splice(pos, 1)\n }\n }\n\n function send(namespace, data = null, responseId)\n {\n if (!namespace)\n {\n throw new Error(\"parameter 'namespace' is missing\")\n }\n if (typeof namespace !== \"string\")\n {\n throw new Error(\"parameter 'namespace' must be a string\")\n }\n\n if (!isHandshaken) {\n return new Promise((resolve) =>\n {\n preHandshakeSendQueue.push({\n namespace,\n data,\n responseId,\n resolve\n })\n })\n }\n\n const id = nextID()\n targetWindow.postMessage(JSON.stringify({\n id,\n responseId,\n type: TYPE,\n namespace,\n data\n }), origin)\n\n return new Promise((resolve) => {\n const timer = setTimeout(() => {\n responseResolver[id] = undefined // eslint-disable-line security/detect-object-injection\n resolve()\n }, PROMISE_TIMEOUT)\n\n responseResolver[id] = { // eslint-disable-line security/detect-object-injection\n resolve,\n timer\n }\n })\n }\n\n function sendHandshake(acknowledgement = false)\n {\n const message = { type: TYPE }\n if (acknowledgement)\n message.handshakeConfirmation = true\n else\n message.handshake = true\n\n targetWindow.postMessage(JSON.stringify(message), origin)\n }\n\n function isSafeMessage(msgSource, msgOrigin, msgType)\n {\n const safeSource = msgSource === targetWindow\n const safeOrigin = (origin === \"*\") || (msgOrigin === origin)\n const safeType = msgType === TYPE\n\n return safeSource && safeOrigin && safeType\n }\n\n function handleHandshake(data)\n {\n if (data.handshake)\n sendHandshake(true)\n\n isHandshaken = true\n\n for (const hsCallback of handshakeCallback) {\n hsCallback()\n }\n handshakeCallback.length = 0\n\n for (const sendItem of preHandshakeSendQueue) {\n send(\n sendItem.namespace,\n sendItem.data,\n sendItem.responseId\n ).then(\n (response) => sendItem.resolve(response)\n ).catch(\n () => sendItem.resolve()\n )\n }\n }\n\n function createMessage(messageData)\n {\n const message = {\n id: messageData.id,\n data: messageData.data,\n namespace: messageData.namespace,\n\n open: () => {\n message.isPromise = true\n\n return Object.assign(\n {},\n messageData,\n {\n response: (data) =>\n {\n send(messageData.namespace, data, messageData.id)\n }\n }\n )\n }\n }\n\n return message\n }\n\n function handleMessage(messageData)\n {\n if (messageData.responseId && responseResolver[messageData.responseId])\n {\n const resolver = responseResolver[messageData.responseId]\n clearTimeout(resolver.timer)\n resolver.resolve(messageData)\n responseResolver[messageData.responseId] = undefined\n }\n else\n {\n const message = createMessage(messageData)\n for (const listener of listeners)\n listener(createMessage(message))\n }\n }\n\n function messageListener(event)\n {\n let data\n\n try\n {\n data = JSON.parse(event.data)\n }\n catch (error)\n {\n return false\n }\n\n if (!isSafeMessage(event.source, event.origin, data.type))\n {\n return false\n }\n\n if (data.handshake || data.handshakeConfirmation)\n return handleHandshake(data)\n\n return handleMessage(data)\n }\n\n const ownWindow = sourceWindow || window\n ownWindow.addEventListener(\"message\", messageListener, false)\n\n sendHandshake()\n\n function hasHandshake(callback)\n {\n if (isHandshaken)\n {\n if (typeof callback === \"function\")\n callback()\n return true\n }\n\n handshakeCallback.push(callback)\n return false\n }\n\n return {\n addListener,\n removeListener,\n send,\n\n hasHandshake\n }\n}\n\nexport default interframe\n"],"names":["id","nextID","TYPE","PROMISE_TIMEOUT","interframe","targetWindow","origin","sourceWindow","Error","listeners","handshakeCallback","responseResolver","preHandshakeSendQueue","isHandshaken","addListener","callback","push","removeListener","pos","indexOf","splice","send","namespace","data","responseId","Promise","resolve","postMessage","JSON","stringify","timer","setTimeout","undefined","sendHandshake","acknowledgement","message","type","handshakeConfirmation","handshake","isSafeMessage","msgSource","msgOrigin","msgType","safeSource","safeOrigin","safeType","handleHandshake","hsCallback","length","sendItem","then","response","createMessage","messageData","isPromise","Object","assign","handleMessage","resolver","listener","messageListener","event","parse","error","source","ownWindow","window","addEventListener","hasHandshake"],"mappings":"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"}

@@ -1,2 +0,2 @@

/*! interframe v1.2.0 by Sebastian Fastner <s.fastner@sebastian-software.de> */
/*! interframe v1.3.0 by Sebastian Fastner <s.fastner@sebastian-software.de> */
var id = 0;

@@ -25,2 +25,3 @@

var responseResolver = {};
var preHandshakeSendQueue = [];
var isHandshaken = false;

@@ -52,2 +53,13 @@

if (!isHandshaken) {
return new Promise(function (resolve) {
preHandshakeSendQueue.push({
namespace: namespace,
data: data,
responseId: responseId,
resolve: resolve
});
});
}
var id = nextID();

@@ -114,2 +126,27 @@ targetWindow.postMessage(JSON.stringify({

handshakeCallback.length = 0;
var _loop = function _loop(sendItem) {
send(sendItem.namespace, sendItem.data, sendItem.responseId).then(function (response) {
return sendItem.resolve(response);
})["catch"](function () {
return sendItem.resolve();
});
};
for (var _iterator2 = preHandshakeSendQueue, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
}
var sendItem = _ref2;
_loop(sendItem);
}
}

@@ -145,15 +182,15 @@

var message = createMessage(messageData);
for (var _iterator2 = listeners, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
var _ref2;
for (var _iterator3 = listeners, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
var _ref3;
if (_isArray2) {
if (_i2 >= _iterator2.length) break;
_ref2 = _iterator2[_i2++];
if (_isArray3) {
if (_i3 >= _iterator3.length) break;
_ref3 = _iterator3[_i3++];
} else {
_i2 = _iterator2.next();
if (_i2.done) break;
_ref2 = _i2.value;
_i3 = _iterator3.next();
if (_i3.done) break;
_ref3 = _i3.value;
}
var listener = _ref2;
var listener = _ref3;

@@ -160,0 +197,0 @@ listener(createMessage(message));

@@ -1,1 +0,1 @@

{"version":3,"file":"interframe.esmodules.js","sources":["../src/nextID.js","../src/index.js"],"sourcesContent":["let id = 0\n\nexport default function nextID()\n{\n id += 1\n return id\n}\n","/* eslint-disable filenames/match-exported, max-params */\n\nimport nextID from \"./nextID\"\n\nconst TYPE = \"application/interframe-ssoft-v1+json\"\nconst PROMISE_TIMEOUT = 3000\n\nfunction interframe(targetWindow, origin = \"*\", sourceWindow)\n{\n if (!targetWindow)\n {\n throw new Error(\"parameter 'targetWindow' is missing\")\n }\n\n const listeners = []\n const handshakeCallback = []\n const responseResolver = {}\n let isHandshaken = false\n\n function addListener(callback)\n {\n listeners.push(callback)\n return callback\n }\n\n function removeListener(callback)\n {\n const pos = listeners.indexOf(callback)\n\n if (pos >= 0) {\n listeners.splice(pos, 1)\n }\n }\n\n function send(namespace, data = null, responseId)\n {\n if (!namespace)\n {\n throw new Error(\"parameter 'namespace' is missing\")\n }\n if (typeof namespace !== \"string\")\n {\n throw new Error(\"parameter 'namespace' must be a string\")\n }\n\n const id = nextID()\n targetWindow.postMessage(JSON.stringify({\n id,\n responseId,\n type: TYPE,\n namespace,\n data\n }), origin)\n\n return new Promise((resolve) => {\n const timer = setTimeout(() => {\n responseResolver[id] = undefined // eslint-disable-line security/detect-object-injection\n resolve()\n }, PROMISE_TIMEOUT)\n\n responseResolver[id] = { // eslint-disable-line security/detect-object-injection\n resolve,\n timer\n }\n })\n }\n\n function sendHandshake(acknowledgement = false)\n {\n const message = { type: TYPE }\n if (acknowledgement)\n message.handshakeConfirmation = true\n else\n message.handshake = true\n\n targetWindow.postMessage(JSON.stringify(message), origin)\n }\n\n function isSafeMessage(msgSource, msgOrigin, msgType)\n {\n const safeSource = msgSource === targetWindow\n const safeOrigin = (origin === \"*\") || (msgOrigin === origin)\n const safeType = msgType === TYPE\n\n return safeSource && safeOrigin && safeType\n }\n\n function handleHandshake(data)\n {\n if (data.handshake)\n sendHandshake(true)\n\n isHandshaken = true\n\n for (const hsCallback of handshakeCallback) {\n hsCallback()\n }\n handshakeCallback.length = 0\n }\n\n function createMessage(messageData)\n {\n const message = {\n id: messageData.id,\n data: messageData.data,\n namespace: messageData.namespace,\n\n open: () => {\n message.isPromise = true\n\n return Object.assign(\n {},\n messageData,\n {\n response: (data) =>\n {\n send(messageData.namespace, data, messageData.id)\n }\n }\n )\n }\n }\n\n return message\n }\n\n function handleMessage(messageData)\n {\n if (messageData.responseId && responseResolver[messageData.responseId])\n {\n const resolver = responseResolver[messageData.responseId]\n clearTimeout(resolver.timer)\n resolver.resolve(messageData)\n responseResolver[messageData.responseId] = undefined\n }\n else\n {\n const message = createMessage(messageData)\n for (const listener of listeners)\n listener(createMessage(message))\n }\n }\n\n function messageListener(event)\n {\n let data\n\n try\n {\n data = JSON.parse(event.data)\n }\n catch (error)\n {\n return false\n }\n\n if (!isSafeMessage(event.source, event.origin, data.type))\n {\n return false\n }\n\n if (data.handshake || data.handshakeConfirmation)\n return handleHandshake(data)\n\n return handleMessage(data)\n }\n\n const ownWindow = sourceWindow || window\n ownWindow.addEventListener(\"message\", messageListener, false)\n\n sendHandshake()\n\n function hasHandshake(callback)\n {\n if (isHandshaken)\n {\n if (typeof callback === \"function\")\n callback()\n return true\n }\n\n handshakeCallback.push(callback)\n return false\n }\n\n return {\n addListener,\n removeListener,\n send,\n\n hasHandshake\n }\n}\n\nexport default interframe\n"],"names":["id","nextID","TYPE","PROMISE_TIMEOUT","interframe","targetWindow","origin","sourceWindow","Error","listeners","handshakeCallback","responseResolver","isHandshaken","addListener","callback","push","removeListener","pos","indexOf","splice","send","namespace","data","responseId","postMessage","JSON","stringify","Promise","resolve","timer","setTimeout","undefined","sendHandshake","acknowledgement","message","type","handshakeConfirmation","handshake","isSafeMessage","msgSource","msgOrigin","msgType","safeSource","safeOrigin","safeType","handleHandshake","hsCallback","length","createMessage","messageData","isPromise","Object","assign","handleMessage","resolver","listener","messageListener","event","parse","error","source","ownWindow","window","addEventListener","hasHandshake"],"mappings":"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"}
{"version":3,"file":"interframe.esmodules.js","sources":["../src/nextID.js","../src/index.js"],"sourcesContent":["let id = 0\n\nexport default function nextID()\n{\n id += 1\n return id\n}\n","/* eslint-disable filenames/match-exported, max-params */\n\nimport nextID from \"./nextID\"\n\nconst TYPE = \"application/interframe-ssoft-v1+json\"\nconst PROMISE_TIMEOUT = 3000\n\nfunction interframe(targetWindow, origin = \"*\", sourceWindow)\n{\n if (!targetWindow)\n {\n throw new Error(\"parameter 'targetWindow' is missing\")\n }\n\n const listeners = []\n const handshakeCallback = []\n const responseResolver = {}\n const preHandshakeSendQueue = []\n let isHandshaken = false\n\n function addListener(callback)\n {\n listeners.push(callback)\n return callback\n }\n\n function removeListener(callback)\n {\n const pos = listeners.indexOf(callback)\n\n if (pos >= 0) {\n listeners.splice(pos, 1)\n }\n }\n\n function send(namespace, data = null, responseId)\n {\n if (!namespace)\n {\n throw new Error(\"parameter 'namespace' is missing\")\n }\n if (typeof namespace !== \"string\")\n {\n throw new Error(\"parameter 'namespace' must be a string\")\n }\n\n if (!isHandshaken) {\n return new Promise((resolve) =>\n {\n preHandshakeSendQueue.push({\n namespace,\n data,\n responseId,\n resolve\n })\n })\n }\n\n const id = nextID()\n targetWindow.postMessage(JSON.stringify({\n id,\n responseId,\n type: TYPE,\n namespace,\n data\n }), origin)\n\n return new Promise((resolve) => {\n const timer = setTimeout(() => {\n responseResolver[id] = undefined // eslint-disable-line security/detect-object-injection\n resolve()\n }, PROMISE_TIMEOUT)\n\n responseResolver[id] = { // eslint-disable-line security/detect-object-injection\n resolve,\n timer\n }\n })\n }\n\n function sendHandshake(acknowledgement = false)\n {\n const message = { type: TYPE }\n if (acknowledgement)\n message.handshakeConfirmation = true\n else\n message.handshake = true\n\n targetWindow.postMessage(JSON.stringify(message), origin)\n }\n\n function isSafeMessage(msgSource, msgOrigin, msgType)\n {\n const safeSource = msgSource === targetWindow\n const safeOrigin = (origin === \"*\") || (msgOrigin === origin)\n const safeType = msgType === TYPE\n\n return safeSource && safeOrigin && safeType\n }\n\n function handleHandshake(data)\n {\n if (data.handshake)\n sendHandshake(true)\n\n isHandshaken = true\n\n for (const hsCallback of handshakeCallback) {\n hsCallback()\n }\n handshakeCallback.length = 0\n\n for (const sendItem of preHandshakeSendQueue) {\n send(\n sendItem.namespace,\n sendItem.data,\n sendItem.responseId\n ).then(\n (response) => sendItem.resolve(response)\n ).catch(\n () => sendItem.resolve()\n )\n }\n }\n\n function createMessage(messageData)\n {\n const message = {\n id: messageData.id,\n data: messageData.data,\n namespace: messageData.namespace,\n\n open: () => {\n message.isPromise = true\n\n return Object.assign(\n {},\n messageData,\n {\n response: (data) =>\n {\n send(messageData.namespace, data, messageData.id)\n }\n }\n )\n }\n }\n\n return message\n }\n\n function handleMessage(messageData)\n {\n if (messageData.responseId && responseResolver[messageData.responseId])\n {\n const resolver = responseResolver[messageData.responseId]\n clearTimeout(resolver.timer)\n resolver.resolve(messageData)\n responseResolver[messageData.responseId] = undefined\n }\n else\n {\n const message = createMessage(messageData)\n for (const listener of listeners)\n listener(createMessage(message))\n }\n }\n\n function messageListener(event)\n {\n let data\n\n try\n {\n data = JSON.parse(event.data)\n }\n catch (error)\n {\n return false\n }\n\n if (!isSafeMessage(event.source, event.origin, data.type))\n {\n return false\n }\n\n if (data.handshake || data.handshakeConfirmation)\n return handleHandshake(data)\n\n return handleMessage(data)\n }\n\n const ownWindow = sourceWindow || window\n ownWindow.addEventListener(\"message\", messageListener, false)\n\n sendHandshake()\n\n function hasHandshake(callback)\n {\n if (isHandshaken)\n {\n if (typeof callback === \"function\")\n callback()\n return true\n }\n\n handshakeCallback.push(callback)\n return false\n }\n\n return {\n addListener,\n removeListener,\n send,\n\n hasHandshake\n }\n}\n\nexport default interframe\n"],"names":["id","nextID","TYPE","PROMISE_TIMEOUT","interframe","targetWindow","origin","sourceWindow","Error","listeners","handshakeCallback","responseResolver","preHandshakeSendQueue","isHandshaken","addListener","callback","push","removeListener","pos","indexOf","splice","send","namespace","data","responseId","Promise","resolve","postMessage","JSON","stringify","timer","setTimeout","undefined","sendHandshake","acknowledgement","message","type","handshakeConfirmation","handshake","isSafeMessage","msgSource","msgOrigin","msgType","safeSource","safeOrigin","safeType","handleHandshake","hsCallback","length","sendItem","then","response","createMessage","messageData","isPromise","Object","assign","handleMessage","resolver","listener","messageListener","event","parse","error","source","ownWindow","window","addEventListener","hasHandshake"],"mappings":"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"}
{
"name": "interframe",
"version": "1.2.0",
"version": "1.3.0",
"description": "postMessage web api based lightweight interframe communication layer",

@@ -5,0 +5,0 @@ "main": "lib/interframe.commonjs.js",