New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

penpal

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

penpal - npm Package Compare versions

Comparing version 3.0.0-alpha.4 to 3.0.0-alpha.5

65

dist/penpal.js

@@ -140,2 +140,27 @@ // Derived from https://github.com/umdjs/umd/blob/master/templates/amdWebGlobal.js

/**
* Converts an error object into a plain object.
* @param {Error} Error object.
* @returns {Object}
*/
var serializeError = function serializeError(_ref) {
var name = _ref.name,
message = _ref.message,
stack = _ref.stack;
return { name: name, message: message, stack: stack };
};
/**
* Converts a plain object into an error object.
* @param {Object} Object with error properties.
* @returns {Error}
*/
var deserializeError = function deserializeError(obj) {
var deserializedError = new Error();
Object.keys(obj).forEach(function (key) {
return deserializedError[key] = obj[key];
});
return deserializedError;
};
/**
* Augments an object with methods that match those defined by the remote. When these methods are

@@ -183,7 +208,3 @@ * called, a "call" message will be sent to the remote, the remote's corresponding method will be

if (event.data.returnValueIsError) {
var deserializedError = new Error();
Object.keys(returnValue).forEach(function (key) {
return deserializedError[key] = returnValue[key];
});
returnValue = deserializedError;
returnValue = deserializeError(returnValue);
}

@@ -264,8 +285,3 @@

if (resolution === REJECTED && returnValue instanceof Error) {
message.returnValue = {
name: returnValue.name,
message: returnValue.message,
stack: returnValue.stack
};
message.returnValue = serializeError(returnValue);
message.returnValueIsError = true;

@@ -284,3 +300,4 @@ }

resolution: REJECTED,
returnValue: err.toString()
returnValue: serializeError(err),
returnValueIsError: true
}, remoteOrigin);

@@ -329,8 +346,8 @@ }

*/
Penpal.connectToChild = function (_ref) {
var url = _ref.url,
appendTo = _ref.appendTo,
_ref$methods = _ref.methods,
methods = _ref$methods === undefined ? {} : _ref$methods,
timeout = _ref.timeout;
Penpal.connectToChild = function (_ref2) {
var url = _ref2.url,
appendTo = _ref2.appendTo,
_ref2$methods = _ref2.methods,
methods = _ref2$methods === undefined ? {} : _ref2$methods,
timeout = _ref2.timeout;

@@ -435,8 +452,8 @@ var destroy = void 0;

*/
Penpal.connectToParent = function (_ref2) {
var _ref2$parentOrigin = _ref2.parentOrigin,
parentOrigin = _ref2$parentOrigin === undefined ? '*' : _ref2$parentOrigin,
_ref2$methods = _ref2.methods,
methods = _ref2$methods === undefined ? {} : _ref2$methods,
timeout = _ref2.timeout;
Penpal.connectToParent = function (_ref3) {
var _ref3$parentOrigin = _ref3.parentOrigin,
parentOrigin = _ref3$parentOrigin === undefined ? '*' : _ref3$parentOrigin,
_ref3$methods = _ref3.methods,
methods = _ref3$methods === undefined ? {} : _ref3$methods,
timeout = _ref3.timeout;

@@ -443,0 +460,0 @@ if (window === window.top) {

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

!function(e,n){var r={};!function(e){"use strict";function n(e){if(Array.isArray(e)){for(var n=0,r=Array(e.length);n<e.length;n++)r[n]=e[n];return r}return Array.from(e)}Object.defineProperty(e,"__esModule",{value:!0});var r={"http:":"80","https:":"443"},t=/^(https?:)?\/\/([^\/:]+)(:(\d+))?/,o={Promise:function(){try{return window?window.Promise:null}catch(e){return null}}(),debug:!1},a=function(){var e=0;return function(){return++e}}(),i=function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];if(o.debug){var t;(t=console).log.apply(t,["[Penpal]"].concat(n))}},d=function(e){var n=document.location,o=t.exec(e),a=void 0,i=void 0,d=void 0;return o?(a=o[1]?o[1]:n.protocol,i=o[2],d=o[4]):(a=n.protocol,i=n.hostname,d=n.port),a+"//"+i+(d&&d!==r[a]?":"+d:"")},c=function(e){var n=[];return e(function(){n.forEach(function(e){e()})}),{then:function(e){n.push(e)}}},s=function(e,n,r,t){var d=n.localName,c=n.local,s=n.remote,u=n.remoteOrigin,l=!1;i(d+": Connecting call sender");var f=function(e){return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return i(d+": Sending "+e+"() call"),new o.Promise(function(n,t){if(l)return void t(new Error("Unable to send "+e+"() call due to destroyed connection"));var o=a(),f=function r(a){if(a.source===s&&a.origin===u&&"reply"===a.data.penpal&&a.data.id===o){i(d+": Received "+e+"() reply"),c.removeEventListener("message",r);var l=a.data.returnValue;if(a.data.returnValueIsError){var f=new Error;Object.keys(l).forEach(function(e){return f[e]=l[e]}),l=f}("fulfilled"===a.data.resolution?n:t)(l)}};c.addEventListener("message",f),s.postMessage({penpal:"call",id:o,methodName:e,args:r},u)})}};t.then(function(){l=!0}),r.reduce(function(e,n){return e[n]=f(n),e},e)},u=function(e,r,t){var a=e.localName,d=e.local,c=e.remote,s=e.remoteOrigin,u=!1;i(a+": Connecting call receiver");var l=function(e){if(e.source===c&&e.origin===s&&"call"===e.data.penpal){var t=e.data,d=t.methodName,l=t.args,f=t.id;if(i(a+": Received "+d+"() call"),d in r){var m=function(e){return function(n){if(u)throw new Error("Unable to send "+d+"() reply due to destroyed connection");i(a+": Sending "+d+"() reply");var r={penpal:"reply",id:f,resolution:e,returnValue:n};"rejected"===e&&n instanceof Error&&(r.returnValue={name:n.name,message:n.message,stack:n.stack},r.returnValueIsError=!0);try{c.postMessage(r,s)}catch(e){throw"DataCloneError"===e.name&&c.postMessage({penpal:"reply",id:f,resolution:"rejected",returnValue:e.toString()},s),e}}};new o.Promise(function(e){return e(r[d].apply(r,n(l)))}).then(m("fulfilled"),m("rejected"))}}};d.addEventListener("message",l),t.then(function(){u=!0,d.removeEventListener("message",l)})};o.connectToChild=function(e){var n=e.url,r=e.appendTo,t=e.methods,a=void 0===t?{}:t,l=e.timeout,f=void 0,m=new c(function(e){return f=e}),p=window,v=document.createElement("iframe");(r||document.body).appendChild(v),m.then(function(){v.parentNode&&v.parentNode.removeChild(v)});var h=v.contentWindow||v.contentDocument.parentWindow,g=d(n);return{promise:new o.Promise(function(e,r){void 0!==l&&setTimeout(function(){r(new Error("Connection to child timed out after "+l+"ms")),f()},l);var t={},o=void 0,d=function(n){if(n.source===h&&n.origin===g&&"handshake"===n.data.penpal){i("Parent: Received handshake"),i("Parent: Sending handshake reply"),n.source.postMessage({penpal:"handshake-reply",methodNames:Object.keys(a)},n.origin);var r={localName:"Parent",local:p,remote:h,remoteOrigin:n.origin};u(r,a,m),o&&o.forEach(function(e){delete t[e]}),o=n.data.methodNames,s(t,r,o,m),e(t)}};p.addEventListener("message",d),m.then(function(){p.removeEventListener("message",d),r("Parent: Connection destroyed")}),i("Parent: Loading iframe"),v.src=n}),iframe:v,destroy:f}},o.connectToParent=function(e){var n=e.parentOrigin,r=void 0===n?"*":n,t=e.methods,a=void 0===t?{}:t,d=e.timeout;if(window===window.top)throw new Error("connectToParent() must be called within an iframe");var l=void 0,f=new c(function(e){return l=e}),m=window,p=m.parent;return{promise:new o.Promise(function(e,n){void 0!==d&&setTimeout(function(){n(new Error("Connection to parent timed out after "+d+"ms")),l()},d);var t=function n(t){if(("*"===r||r===t.origin)&&t.source===p&&"handshake-reply"===t.data.penpal){i("Child: Received handshake reply"),m.removeEventListener("message",n);var o={localName:"Child",local:m,remote:p,remoteOrigin:t.origin},d={};u(o,a,f),s(d,o,t.data.methodNames,f),e(d)}};m.addEventListener("message",t),f.then(function(){m.removeEventListener("message",t),n(new Error("Child: Connection destroyed"))}),i("Child: Sending handshake"),p.postMessage({penpal:"handshake",methodNames:Object.keys(a)},r)}),destroy:l}},e.default=o}(r),"function"==typeof define&&define.amd?define("Penpal",r.default):e.Penpal=r.default}(this);
!function(e,n){var r={};!function(e){"use strict";function n(e){if(Array.isArray(e)){for(var n=0,r=Array(e.length);n<e.length;n++)r[n]=e[n];return r}return Array.from(e)}Object.defineProperty(e,"__esModule",{value:!0});var r={"http:":"80","https:":"443"},t=/^(https?:)?\/\/([^\/:]+)(:(\d+))?/,o={Promise:function(){try{return window?window.Promise:null}catch(e){return null}}(),debug:!1},a=function(){var e=0;return function(){return++e}}(),i=function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];if(o.debug){var t;(t=console).log.apply(t,["[Penpal]"].concat(n))}},d=function(e){var n=document.location,o=t.exec(e),a=void 0,i=void 0,d=void 0;return o?(a=o[1]?o[1]:n.protocol,i=o[2],d=o[4]):(a=n.protocol,i=n.hostname,d=n.port),a+"//"+i+(d&&d!==r[a]?":"+d:"")},c=function(e){var n=[];return e(function(){n.forEach(function(e){e()})}),{then:function(e){n.push(e)}}},u=function(e){return{name:e.name,message:e.message,stack:e.stack}},s=function(e){var n=new Error;return Object.keys(e).forEach(function(r){return n[r]=e[r]}),n},l=function(e,n,r,t){var d=n.localName,c=n.local,u=n.remote,l=n.remoteOrigin,f=!1;i(d+": Connecting call sender");var m=function(e){return function(){for(var n=arguments.length,r=Array(n),t=0;t<n;t++)r[t]=arguments[t];return i(d+": Sending "+e+"() call"),new o.Promise(function(n,t){if(f)return void t(new Error("Unable to send "+e+"() call due to destroyed connection"));var o=a(),m=function r(a){if(a.source===u&&a.origin===l&&"reply"===a.data.penpal&&a.data.id===o){i(d+": Received "+e+"() reply"),c.removeEventListener("message",r);var f=a.data.returnValue;a.data.returnValueIsError&&(f=s(f)),("fulfilled"===a.data.resolution?n:t)(f)}};c.addEventListener("message",m),u.postMessage({penpal:"call",id:o,methodName:e,args:r},l)})}};t.then(function(){f=!0}),r.reduce(function(e,n){return e[n]=m(n),e},e)},f=function(e,r,t){var a=e.localName,d=e.local,c=e.remote,s=e.remoteOrigin,l=!1;i(a+": Connecting call receiver");var f=function(e){if(e.source===c&&e.origin===s&&"call"===e.data.penpal){var t=e.data,d=t.methodName,f=t.args,m=t.id;if(i(a+": Received "+d+"() call"),d in r){var p=function(e){return function(n){if(l)throw new Error("Unable to send "+d+"() reply due to destroyed connection");i(a+": Sending "+d+"() reply");var r={penpal:"reply",id:m,resolution:e,returnValue:n};"rejected"===e&&n instanceof Error&&(r.returnValue=u(n),r.returnValueIsError=!0);try{c.postMessage(r,s)}catch(e){throw"DataCloneError"===e.name&&c.postMessage({penpal:"reply",id:m,resolution:"rejected",returnValue:u(e),returnValueIsError:!0},s),e}}};new o.Promise(function(e){return e(r[d].apply(r,n(f)))}).then(p("fulfilled"),p("rejected"))}}};d.addEventListener("message",f),t.then(function(){l=!0,d.removeEventListener("message",f)})};o.connectToChild=function(e){var n=e.url,r=e.appendTo,t=e.methods,a=void 0===t?{}:t,u=e.timeout,s=void 0,m=new c(function(e){return s=e}),p=window,v=document.createElement("iframe");(r||document.body).appendChild(v),m.then(function(){v.parentNode&&v.parentNode.removeChild(v)});var h=v.contentWindow||v.contentDocument.parentWindow,g=d(n);return{promise:new o.Promise(function(e,r){void 0!==u&&setTimeout(function(){r(new Error("Connection to child timed out after "+u+"ms")),s()},u);var t={},o=void 0,d=function(n){if(n.source===h&&n.origin===g&&"handshake"===n.data.penpal){i("Parent: Received handshake"),i("Parent: Sending handshake reply"),n.source.postMessage({penpal:"handshake-reply",methodNames:Object.keys(a)},n.origin);var r={localName:"Parent",local:p,remote:h,remoteOrigin:n.origin};f(r,a,m),o&&o.forEach(function(e){delete t[e]}),o=n.data.methodNames,l(t,r,o,m),e(t)}};p.addEventListener("message",d),m.then(function(){p.removeEventListener("message",d),r("Parent: Connection destroyed")}),i("Parent: Loading iframe"),v.src=n}),iframe:v,destroy:s}},o.connectToParent=function(e){var n=e.parentOrigin,r=void 0===n?"*":n,t=e.methods,a=void 0===t?{}:t,d=e.timeout;if(window===window.top)throw new Error("connectToParent() must be called within an iframe");var u=void 0,s=new c(function(e){return u=e}),m=window,p=m.parent;return{promise:new o.Promise(function(e,n){void 0!==d&&setTimeout(function(){n(new Error("Connection to parent timed out after "+d+"ms")),u()},d);var t=function n(t){if(("*"===r||r===t.origin)&&t.source===p&&"handshake-reply"===t.data.penpal){i("Child: Received handshake reply"),m.removeEventListener("message",n);var o={localName:"Child",local:m,remote:p,remoteOrigin:t.origin},d={};f(o,a,s),l(d,o,t.data.methodNames,s),e(d)}};m.addEventListener("message",t),s.then(function(){m.removeEventListener("message",t),n(new Error("Child: Connection destroyed"))}),i("Child: Sending handshake"),p.postMessage({penpal:"handshake",methodNames:Object.keys(a)},r)}),destroy:u}},e.default=o}(r),"function"==typeof define&&define.amd?define("Penpal",r.default):e.Penpal=r.default}(this);

@@ -126,2 +126,27 @@ 'use strict';

/**
* Converts an error object into a plain object.
* @param {Error} Error object.
* @returns {Object}
*/
var serializeError = function serializeError(_ref) {
var name = _ref.name,
message = _ref.message,
stack = _ref.stack;
return { name: name, message: message, stack: stack };
};
/**
* Converts a plain object into an error object.
* @param {Object} Object with error properties.
* @returns {Error}
*/
var deserializeError = function deserializeError(obj) {
var deserializedError = new Error();
Object.keys(obj).forEach(function (key) {
return deserializedError[key] = obj[key];
});
return deserializedError;
};
/**
* Augments an object with methods that match those defined by the remote. When these methods are

@@ -169,7 +194,3 @@ * called, a "call" message will be sent to the remote, the remote's corresponding method will be

if (event.data.returnValueIsError) {
var deserializedError = new Error();
Object.keys(returnValue).forEach(function (key) {
return deserializedError[key] = returnValue[key];
});
returnValue = deserializedError;
returnValue = deserializeError(returnValue);
}

@@ -250,8 +271,3 @@

if (resolution === REJECTED && returnValue instanceof Error) {
message.returnValue = {
name: returnValue.name,
message: returnValue.message,
stack: returnValue.stack
};
message.returnValue = serializeError(returnValue);
message.returnValueIsError = true;

@@ -270,3 +286,4 @@ }

resolution: REJECTED,
returnValue: err.toString()
returnValue: serializeError(err),
returnValueIsError: true
}, remoteOrigin);

@@ -315,8 +332,8 @@ }

*/
Penpal.connectToChild = function (_ref) {
var url = _ref.url,
appendTo = _ref.appendTo,
_ref$methods = _ref.methods,
methods = _ref$methods === undefined ? {} : _ref$methods,
timeout = _ref.timeout;
Penpal.connectToChild = function (_ref2) {
var url = _ref2.url,
appendTo = _ref2.appendTo,
_ref2$methods = _ref2.methods,
methods = _ref2$methods === undefined ? {} : _ref2$methods,
timeout = _ref2.timeout;

@@ -421,8 +438,8 @@ var destroy = void 0;

*/
Penpal.connectToParent = function (_ref2) {
var _ref2$parentOrigin = _ref2.parentOrigin,
parentOrigin = _ref2$parentOrigin === undefined ? '*' : _ref2$parentOrigin,
_ref2$methods = _ref2.methods,
methods = _ref2$methods === undefined ? {} : _ref2$methods,
timeout = _ref2.timeout;
Penpal.connectToParent = function (_ref3) {
var _ref3$parentOrigin = _ref3.parentOrigin,
parentOrigin = _ref3$parentOrigin === undefined ? '*' : _ref3$parentOrigin,
_ref3$methods = _ref3.methods,
methods = _ref3$methods === undefined ? {} : _ref3$methods,
timeout = _ref3.timeout;

@@ -429,0 +446,0 @@ if (window === window.top) {

{
"name": "penpal",
"version": "3.0.0-alpha.4",
"version": "3.0.0-alpha.5",
"description": "A promise-based library for communicating with iframes via postMessage.",

@@ -5,0 +5,0 @@ "author": "Aaron Hardy <aaron@aaronhardy.com>",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc