Socket
Socket
Sign inDemoInstall

cross-domain-safe-weakmap

Package Overview
Dependencies
2
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.27 to 1.0.28

325

dist/cross-domain-safe-weakmap.js

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

!function(root, factory) {
"object" == typeof exports && "object" == typeof module ? module.exports = factory() : "function" == typeof define && define.amd ? define("xdsweakmap", [], factory) : "object" == typeof exports ? exports.xdsweakmap = factory() : root.xdsweakmap = factory();
}("undefined" != typeof self ? self : this, function() {
return function(modules) {
var installedModules = {};
function __webpack_require__(moduleId) {
if (installedModules[moduleId]) return installedModules[moduleId].exports;
var module = installedModules[moduleId] = {
i: moduleId,
l: !1,
exports: {}
};
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
module.l = !0;
return module.exports;
}
__webpack_require__.m = modules;
__webpack_require__.c = installedModules;
__webpack_require__.d = function(exports, name, getter) {
__webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {
configurable: !1,
enumerable: !0,
get: getter
});
};
__webpack_require__.n = function(module) {
var getter = module && module.__esModule ? function() {
return module.default;
} : function() {
return module;
};
__webpack_require__.d(getter, "a", getter);
return getter;
};
__webpack_require__.o = function(object, property) {
return Object.prototype.hasOwnProperty.call(object, property);
};
__webpack_require__.p = "";
return __webpack_require__(__webpack_require__.s = "./src/index.js");
}({
"./src/index.js": function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", {
value: !0
});
var PROTOCOL = {
MOCK: "mock:",
FILE: "file:",
ABOUT: "about:"
}, IE_WIN_ACCESS_ERROR = "Call was rejected by callee.\r\n";
function isAboutProtocol() {
return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window).location.protocol === PROTOCOL.ABOUT;
}
function canReadFromWindow(win) {
try {
win && win.location && win.location.href;
return !0;
} catch (err) {}
return !1;
}
function getActualDomain() {
var win = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window, location = win.location;
if (!location) throw new Error("Can not read window location");
var protocol = location.protocol;
if (!protocol) throw new Error("Can not read window protocol");
if (protocol === PROTOCOL.FILE) return PROTOCOL.FILE + "//";
if (protocol === PROTOCOL.ABOUT) {
var parent = function() {
var win = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window;
if (win) try {
if (win.parent && win.parent !== win) return win.parent;
} catch (err) {}
}(win);
return parent && canReadFromWindow(parent) ? getActualDomain(parent) : PROTOCOL.ABOUT + "//";
}
var host = location.host;
if (!host) throw new Error("Can not read window host");
return protocol + "//" + host;
}
function getDomain() {
var win = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window, domain = getActualDomain(win);
return domain && win.mockDomain && 0 === win.mockDomain.indexOf(PROTOCOL.MOCK) ? win.mockDomain : domain;
}
var iframeWindows = [], iframeFrames = [];
function isWindowClosed(win) {
var allowMock = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];
try {
if (win === window) return !1;
} catch (err) {
return !0;
}
try {
if (!win) return !0;
} catch (err) {
return !0;
}
try {
if (win.closed) return !0;
} catch (err) {
return !err || err.message !== IE_WIN_ACCESS_ERROR;
}
if (allowMock && function(win) {
if (!function(win) {
try {
if (win === window) return !0;
} catch (err) {}
try {
var desc = Object.getOwnPropertyDescriptor(win, "location");
if (desc && !1 === desc.enumerable) return !1;
} catch (err) {}
try {
if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;
} catch (err) {}
try {
if (getActualDomain(win) === getActualDomain(window)) return !0;
} catch (err) {}
return !1;
}(win)) return !1;
try {
if (win === window) return !0;
if (isAboutProtocol(win) && canReadFromWindow(win)) return !0;
if (getDomain(window) === getDomain(win)) return !0;
} catch (err) {}
return !1;
}(win)) try {
if (win.mockclosed) return !0;
} catch (err) {}
try {
if (!win.parent || !win.top) return !0;
} catch (err) {}
var iframeIndex = function(collection, item) {
for (var i = 0; i < collection.length; i++) try {
if (collection[i] === item) return i;
} catch (err) {}
return -1;
}(iframeWindows, win);
if (-1 !== iframeIndex) {
var frame = iframeFrames[iframeIndex];
if (frame && function(frame) {
if (!frame.contentWindow) return !0;
if (!frame.parentNode) return !0;
var doc = frame.ownerDocument;
return !(!doc || !doc.documentElement || doc.documentElement.contains(frame));
}(frame)) return !0;
}
return !1;
}
function isWindow(obj) {
try {
if (obj === window) return !0;
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
}
try {
if ("[object Window]" === Object.prototype.toString.call(obj)) return !0;
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
}
try {
if (window.Window && obj instanceof window.Window) return !0;
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
}
try {
if (obj && obj.self === obj) return !0;
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
}
try {
if (obj && obj.parent === obj) return !0;
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
}
try {
if (obj && obj.top === obj) return !0;
} catch (err) {
if (err && err.message === IE_WIN_ACCESS_ERROR) return !0;
}
try {
if (obj && "__unlikely_value__" === obj.__cross_domain_utils_window_check__) return !1;
} catch (err) {
return !0;
}
return !1;
}
function util_safeIndexOf(collection, item) {
for (var i = 0; i < collection.length; i++) try {
if (collection[i] === item) return i;
} catch (err) {}
return -1;
}
var weakmap_CrossDomainSafeWeakMap = function() {
function CrossDomainSafeWeakMap() {
!function(instance, Constructor) {
if (!(instance instanceof CrossDomainSafeWeakMap)) throw new TypeError("Cannot call a class as a function");
}(this);
this.name = "__weakmap_" + (1e9 * Math.random() >>> 0) + "__";
if (function() {
if ("undefined" == typeof WeakMap) return !1;
if (void 0 === Object.freeze) return !1;
try {
var testWeakMap = new WeakMap(), testKey = {};
Object.freeze(testKey);
testWeakMap.set(testKey, "__testvalue__");
return "__testvalue__" === testWeakMap.get(testKey);
} catch (err) {
return !1;
}
}()) try {
this.weakmap = new WeakMap();
} catch (err) {}
this.keys = [];
this.values = [];
}
CrossDomainSafeWeakMap.prototype._cleanupClosedWindows = function() {
for (var weakmap = this.weakmap, keys = this.keys, i = 0; i < keys.length; i++) {
var value = keys[i];
if (isWindow(value) && isWindowClosed(value)) {
if (weakmap) try {
weakmap.delete(value);
} catch (err) {}
keys.splice(i, 1);
this.values.splice(i, 1);
i -= 1;
}
}
};
CrossDomainSafeWeakMap.prototype.isSafeToReadWrite = function(key) {
if (isWindow(key)) return !1;
try {
key && key.self;
key && key[this.name];
} catch (err) {
return !1;
}
return !0;
};
CrossDomainSafeWeakMap.prototype.set = function(key, value) {
if (!key) throw new Error("WeakMap expected key");
var weakmap = this.weakmap;
if (weakmap) try {
weakmap.set(key, value);
} catch (err) {
delete this.weakmap;
}
if (this.isSafeToReadWrite(key)) try {
var name = this.name, entry = key[name];
entry && entry[0] === key ? entry[1] = value : Object.defineProperty(key, name, {
value: [ key, value ],
writable: !0
});
return;
} catch (err) {}
this._cleanupClosedWindows();
var keys = this.keys, values = this.values, index = util_safeIndexOf(keys, key);
if (-1 === index) {
keys.push(key);
values.push(value);
} else values[index] = value;
};
CrossDomainSafeWeakMap.prototype.get = function(key) {
if (!key) throw new Error("WeakMap expected key");
var weakmap = this.weakmap;
if (weakmap) try {
if (weakmap.has(key)) return weakmap.get(key);
} catch (err) {
delete this.weakmap;
}
if (this.isSafeToReadWrite(key)) try {
var entry = key[this.name];
return entry && entry[0] === key ? entry[1] : void 0;
} catch (err) {}
this._cleanupClosedWindows();
var index = util_safeIndexOf(this.keys, key);
if (-1 !== index) return this.values[index];
};
CrossDomainSafeWeakMap.prototype.delete = function(key) {
if (!key) throw new Error("WeakMap expected key");
var weakmap = this.weakmap;
if (weakmap) try {
weakmap.delete(key);
} catch (err) {
delete this.weakmap;
}
if (this.isSafeToReadWrite(key)) try {
var entry = key[this.name];
entry && entry[0] === key && (entry[0] = entry[1] = void 0);
} catch (err) {}
this._cleanupClosedWindows();
var keys = this.keys, index = util_safeIndexOf(keys, key);
if (-1 !== index) {
keys.splice(index, 1);
this.values.splice(index, 1);
}
};
CrossDomainSafeWeakMap.prototype.has = function(key) {
if (!key) throw new Error("WeakMap expected key");
var weakmap = this.weakmap;
if (weakmap) try {
if (weakmap.has(key)) return !0;
} catch (err) {
delete this.weakmap;
}
if (this.isSafeToReadWrite(key)) try {
var entry = key[this.name];
return !(!entry || entry[0] !== key);
} catch (err) {}
this._cleanupClosedWindows();
return -1 !== util_safeIndexOf(this.keys, key);
};
CrossDomainSafeWeakMap.prototype.getOrSet = function(key, getter) {
if (this.has(key)) return this.get(key);
var value = getter();
this.set(key, value);
return value;
};
return CrossDomainSafeWeakMap;
}();
__webpack_require__.d(__webpack_exports__, "WeakMap", function() {
return weakmap_CrossDomainSafeWeakMap;
});
}
});
});
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("xdsweakmap",[],t):"object"==typeof exports?exports.xdsweakmap=t():e.xdsweakmap=t()}("undefined"!=typeof self?self:this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return{}.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t),r.d(t,"WeakMap",(function(){return l}));var n="Call was rejected by callee.\r\n";function i(e){return void 0===e&&(e=window),"about:"===e.location.protocol}function a(e){try{return!0}catch(e){}return!1}function o(e){void 0===e&&(e=window);var t=e.location;if(!t)throw new Error("Can not read window location");var r=t.protocol;if(!r)throw new Error("Can not read window protocol");if("file:"===r)return"file://";if("about:"===r){var n=function(e){if(void 0===e&&(e=window),e)try{if(e.parent&&e.parent!==e)return e.parent}catch(e){}}(e);return n&&a()?o(n):"about://"}var i=t.host;if(!i)throw new Error("Can not read window host");return r+"//"+i}function c(e){void 0===e&&(e=window);var t=o(e);return t&&e.mockDomain&&0===e.mockDomain.indexOf("mock:")?e.mockDomain:t}var u=[],f=[];function s(e,t){void 0===t&&(t=!0);try{if(e===window)return!1}catch(e){return!0}try{if(!e)return!0}catch(e){return!0}try{if(e.closed)return!0}catch(e){return!e||e.message!==n}if(t&&function(e){if(!function(e){try{if(e===window)return!0}catch(e){}try{var t=Object.getOwnPropertyDescriptor(e,"location");if(t&&!1===t.enumerable)return!1}catch(e){}try{if(i(e)&&a())return!0}catch(e){}try{if(o(e)===o(window))return!0}catch(e){}return!1}(e))return!1;try{if(e===window)return!0;if(i(e)&&a())return!0;if(c(window)===c(e))return!0}catch(e){}return!1}(e))try{if(e.mockclosed)return!0}catch(e){}try{if(!e.parent||!e.top)return!0}catch(e){}var r=function(e,t){for(var r=0;r<e.length;r++)try{if(e[r]===t)return r}catch(e){}return-1}(u,e);if(-1!==r){var s=f[r];if(s&&function(e){if(!e.contentWindow)return!0;if(!e.parentNode)return!0;var t=e.ownerDocument;if(t&&t.documentElement&&!t.documentElement.contains(e)){for(var r=e;r.parentNode&&r.parentNode!==r;)r=r.parentNode;if(!r.host||!t.documentElement.contains(r.host))return!0}return!1}(s))return!0}return!1}function d(e){try{if(e===window)return!0}catch(e){if(e&&e.message===n)return!0}try{if("[object Window]"==={}.toString.call(e))return!0}catch(e){if(e&&e.message===n)return!0}try{if(window.Window&&e instanceof window.Window)return!0}catch(e){if(e&&e.message===n)return!0}try{if(e&&e.self===e)return!0}catch(e){if(e&&e.message===n)return!0}try{if(e&&e.parent===e)return!0}catch(e){if(e&&e.message===n)return!0}try{if(e&&e.top===e)return!0}catch(e){if(e&&e.message===n)return!0}try{if(e&&"__unlikely_value__"===e.__cross_domain_utils_window_check__)return!1}catch(e){return!0}try{if("postMessage"in e&&"self"in e&&"location"in e)return!0}catch(e){}return!1}function h(e,t){for(var r=0;r<e.length;r++)try{if(e[r]===t)return r}catch(e){}return-1}var l=function(){function e(){if(this.name=void 0,this.weakmap=void 0,this.keys=void 0,this.values=void 0,this.name="__weakmap_"+(1e9*Math.random()>>>0)+"__",function(){if("undefined"==typeof WeakMap)return!1;if(void 0===Object.freeze)return!1;try{var e=new WeakMap,t={};return Object.freeze(t),e.set(t,"__testvalue__"),"__testvalue__"===e.get(t)}catch(e){return!1}}())try{this.weakmap=new WeakMap}catch(e){}this.keys=[],this.values=[]}var t=e.prototype;return t._cleanupClosedWindows=function(){for(var e=this.weakmap,t=this.keys,r=0;r<t.length;r++){var n=t[r];if(d(n)&&s(n)){if(e)try{e.delete(n)}catch(e){}t.splice(r,1),this.values.splice(r,1),r-=1}}},t.isSafeToReadWrite=function(e){return!d(e)},t.set=function(e,t){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{r.set(e,t)}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e))try{var n=this.name,i=e[n];return void(i&&i[0]===e?i[1]=t:Object.defineProperty(e,n,{value:[e,t],writable:!0}))}catch(e){}this._cleanupClosedWindows();var a=this.keys,o=this.values,c=h(a,e);-1===c?(a.push(e),o.push(t)):o[c]=t},t.get=function(e){if(!e)throw new Error("WeakMap expected key");var t=this.weakmap;if(t)try{if(t.has(e))return t.get(e)}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e))try{var r=e[this.name];return r&&r[0]===e?r[1]:void 0}catch(e){}this._cleanupClosedWindows();var n=h(this.keys,e);if(-1!==n)return this.values[n]},t.delete=function(e){if(!e)throw new Error("WeakMap expected key");var t=this.weakmap;if(t)try{t.delete(e)}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e))try{var r=e[this.name];r&&r[0]===e&&(r[0]=r[1]=void 0)}catch(e){}this._cleanupClosedWindows();var n=this.keys,i=h(n,e);-1!==i&&(n.splice(i,1),this.values.splice(i,1))},t.has=function(e){if(!e)throw new Error("WeakMap expected key");var t=this.weakmap;if(t)try{if(t.has(e))return!0}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e))try{var r=e[this.name];return!(!r||r[0]!==e)}catch(e){}return this._cleanupClosedWindows(),-1!==h(this.keys,e)},t.getOrSet=function(e,t){if(this.has(e))return this.get(e);var r=t();return this.set(e,r),r},e}()}])}));
//# sourceMappingURL=cross-domain-safe-weakmap.js.map

2

dist/cross-domain-safe-weakmap.min.js

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

!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("xdsweakmap",[],e):"object"==typeof exports?exports.xdsweakmap=e():t.xdsweakmap=e()}("undefined"!=typeof self?self:this,function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n={MOCK:"mock:",FILE:"file:",ABOUT:"about:"},i="Call was rejected by callee.\r\n";function o(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window).location.protocol===n.ABOUT}function a(t){try{return t&&t.location&&t.location.href,!0}catch(t){}return!1}function c(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,e=t.location;if(!e)throw new Error("Can not read window location");var r=e.protocol;if(!r)throw new Error("Can not read window protocol");if(r===n.FILE)return n.FILE+"//";if(r===n.ABOUT){var i=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window;if(t)try{if(t.parent&&t.parent!==t)return t.parent}catch(t){}}(t);return i&&a(i)?c(i):n.ABOUT+"//"}var o=e.host;if(!o)throw new Error("Can not read window host");return r+"//"+o}function u(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,e=c(t);return e&&t.mockDomain&&0===t.mockDomain.indexOf(n.MOCK)?t.mockDomain:e}var f=[],s=[];function h(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];try{if(t===window)return!1}catch(t){return!0}try{if(!t)return!0}catch(t){return!0}try{if(t.closed)return!0}catch(t){return!t||t.message!==i}if(e&&function(t){if(!function(t){try{if(t===window)return!0}catch(t){}try{var e=Object.getOwnPropertyDescriptor(t,"location");if(e&&!1===e.enumerable)return!1}catch(t){}try{if(o(t)&&a(t))return!0}catch(t){}try{if(c(t)===c(window))return!0}catch(t){}return!1}(t))return!1;try{if(t===window)return!0;if(o(t)&&a(t))return!0;if(u(window)===u(t))return!0}catch(t){}return!1}(t))try{if(t.mockclosed)return!0}catch(t){}try{if(!t.parent||!t.top)return!0}catch(t){}var r=function(t,e){for(var r=0;r<t.length;r++)try{if(t[r]===e)return r}catch(t){}return-1}(f,t);if(-1!==r){var n=s[r];if(n&&function(t){if(!t.contentWindow)return!0;if(!t.parentNode)return!0;var e=t.ownerDocument;return!(!e||!e.documentElement||e.documentElement.contains(t))}(n))return!0}return!1}function d(t){try{if(t===window)return!0}catch(t){if(t&&t.message===i)return!0}try{if("[object Window]"===Object.prototype.toString.call(t))return!0}catch(t){if(t&&t.message===i)return!0}try{if(window.Window&&t instanceof window.Window)return!0}catch(t){if(t&&t.message===i)return!0}try{if(t&&t.self===t)return!0}catch(t){if(t&&t.message===i)return!0}try{if(t&&t.parent===t)return!0}catch(t){if(t&&t.message===i)return!0}try{if(t&&t.top===t)return!0}catch(t){if(t&&t.message===i)return!0}try{if(t&&"__unlikely_value__"===t.__cross_domain_utils_window_check__)return!1}catch(t){return!0}return!1}function p(t,e){for(var r=0;r<t.length;r++)try{if(t[r]===e)return r}catch(t){}return-1}var l=function(){function t(){if(function(e,r){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this),this.name="__weakmap_"+(1e9*Math.random()>>>0)+"__",function(){if("undefined"==typeof WeakMap)return!1;if(void 0===Object.freeze)return!1;try{var t=new WeakMap,e={};return Object.freeze(e),t.set(e,"__testvalue__"),"__testvalue__"===t.get(e)}catch(t){return!1}}())try{this.weakmap=new WeakMap}catch(t){}this.keys=[],this.values=[]}return t.prototype._cleanupClosedWindows=function(){for(var t=this.weakmap,e=this.keys,r=0;r<e.length;r++){var n=e[r];if(d(n)&&h(n)){if(t)try{t.delete(n)}catch(t){}e.splice(r,1),this.values.splice(r,1),r-=1}}},t.prototype.isSafeToReadWrite=function(t){if(d(t))return!1;try{t&&t.self,t&&t[this.name]}catch(t){return!1}return!0},t.prototype.set=function(t,e){if(!t)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{r.set(t,e)}catch(t){delete this.weakmap}if(this.isSafeToReadWrite(t))try{var n=this.name,i=t[n];return void(i&&i[0]===t?i[1]=e:Object.defineProperty(t,n,{value:[t,e],writable:!0}))}catch(t){}this._cleanupClosedWindows();var o=this.keys,a=this.values,c=p(o,t);-1===c?(o.push(t),a.push(e)):a[c]=e},t.prototype.get=function(t){if(!t)throw new Error("WeakMap expected key");var e=this.weakmap;if(e)try{if(e.has(t))return e.get(t)}catch(t){delete this.weakmap}if(this.isSafeToReadWrite(t))try{var r=t[this.name];return r&&r[0]===t?r[1]:void 0}catch(t){}this._cleanupClosedWindows();var n=p(this.keys,t);if(-1!==n)return this.values[n]},t.prototype.delete=function(t){if(!t)throw new Error("WeakMap expected key");var e=this.weakmap;if(e)try{e.delete(t)}catch(t){delete this.weakmap}if(this.isSafeToReadWrite(t))try{var r=t[this.name];r&&r[0]===t&&(r[0]=r[1]=void 0)}catch(t){}this._cleanupClosedWindows();var n=this.keys,i=p(n,t);-1!==i&&(n.splice(i,1),this.values.splice(i,1))},t.prototype.has=function(t){if(!t)throw new Error("WeakMap expected key");var e=this.weakmap;if(e)try{if(e.has(t))return!0}catch(t){delete this.weakmap}if(this.isSafeToReadWrite(t))try{var r=t[this.name];return!(!r||r[0]!==t)}catch(t){}return this._cleanupClosedWindows(),-1!==p(this.keys,t)},t.prototype.getOrSet=function(t,e){if(this.has(t))return this.get(t);var r=e();return this.set(t,r),r},t}();r.d(e,"WeakMap",function(){return l})}])});
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("xdsweakmap",[],t):"object"==typeof exports?exports.xdsweakmap=t():e.xdsweakmap=t()}("undefined"!=typeof self?self:this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return{}.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t),r.d(t,"WeakMap",(function(){return l}));var n="Call was rejected by callee.\r\n";function i(e){return void 0===e&&(e=window),"about:"===e.location.protocol}function a(e){try{return!0}catch(e){}return!1}function o(e){void 0===e&&(e=window);var t=e.location;if(!t)throw new Error("Can not read window location");var r=t.protocol;if(!r)throw new Error("Can not read window protocol");if("file:"===r)return"file://";if("about:"===r){var n=function(e){if(void 0===e&&(e=window),e)try{if(e.parent&&e.parent!==e)return e.parent}catch(e){}}(e);return n&&a()?o(n):"about://"}var i=t.host;if(!i)throw new Error("Can not read window host");return r+"//"+i}function c(e){void 0===e&&(e=window);var t=o(e);return t&&e.mockDomain&&0===e.mockDomain.indexOf("mock:")?e.mockDomain:t}var u=[],f=[];function s(e,t){void 0===t&&(t=!0);try{if(e===window)return!1}catch(e){return!0}try{if(!e)return!0}catch(e){return!0}try{if(e.closed)return!0}catch(e){return!e||e.message!==n}if(t&&function(e){if(!function(e){try{if(e===window)return!0}catch(e){}try{var t=Object.getOwnPropertyDescriptor(e,"location");if(t&&!1===t.enumerable)return!1}catch(e){}try{if(i(e)&&a())return!0}catch(e){}try{if(o(e)===o(window))return!0}catch(e){}return!1}(e))return!1;try{if(e===window)return!0;if(i(e)&&a())return!0;if(c(window)===c(e))return!0}catch(e){}return!1}(e))try{if(e.mockclosed)return!0}catch(e){}try{if(!e.parent||!e.top)return!0}catch(e){}var r=function(e,t){for(var r=0;r<e.length;r++)try{if(e[r]===t)return r}catch(e){}return-1}(u,e);if(-1!==r){var s=f[r];if(s&&function(e){if(!e.contentWindow)return!0;if(!e.parentNode)return!0;var t=e.ownerDocument;if(t&&t.documentElement&&!t.documentElement.contains(e)){for(var r=e;r.parentNode&&r.parentNode!==r;)r=r.parentNode;if(!r.host||!t.documentElement.contains(r.host))return!0}return!1}(s))return!0}return!1}function d(e){try{if(e===window)return!0}catch(e){if(e&&e.message===n)return!0}try{if("[object Window]"==={}.toString.call(e))return!0}catch(e){if(e&&e.message===n)return!0}try{if(window.Window&&e instanceof window.Window)return!0}catch(e){if(e&&e.message===n)return!0}try{if(e&&e.self===e)return!0}catch(e){if(e&&e.message===n)return!0}try{if(e&&e.parent===e)return!0}catch(e){if(e&&e.message===n)return!0}try{if(e&&e.top===e)return!0}catch(e){if(e&&e.message===n)return!0}try{if(e&&"__unlikely_value__"===e.__cross_domain_utils_window_check__)return!1}catch(e){return!0}try{if("postMessage"in e&&"self"in e&&"location"in e)return!0}catch(e){}return!1}function h(e,t){for(var r=0;r<e.length;r++)try{if(e[r]===t)return r}catch(e){}return-1}var l=function(){function e(){if(this.name=void 0,this.weakmap=void 0,this.keys=void 0,this.values=void 0,this.name="__weakmap_"+(1e9*Math.random()>>>0)+"__",function(){if("undefined"==typeof WeakMap)return!1;if(void 0===Object.freeze)return!1;try{var e=new WeakMap,t={};return Object.freeze(t),e.set(t,"__testvalue__"),"__testvalue__"===e.get(t)}catch(e){return!1}}())try{this.weakmap=new WeakMap}catch(e){}this.keys=[],this.values=[]}var t=e.prototype;return t._cleanupClosedWindows=function(){for(var e=this.weakmap,t=this.keys,r=0;r<t.length;r++){var n=t[r];if(d(n)&&s(n)){if(e)try{e.delete(n)}catch(e){}t.splice(r,1),this.values.splice(r,1),r-=1}}},t.isSafeToReadWrite=function(e){return!d(e)},t.set=function(e,t){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{r.set(e,t)}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e))try{var n=this.name,i=e[n];return void(i&&i[0]===e?i[1]=t:Object.defineProperty(e,n,{value:[e,t],writable:!0}))}catch(e){}this._cleanupClosedWindows();var a=this.keys,o=this.values,c=h(a,e);-1===c?(a.push(e),o.push(t)):o[c]=t},t.get=function(e){if(!e)throw new Error("WeakMap expected key");var t=this.weakmap;if(t)try{if(t.has(e))return t.get(e)}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e))try{var r=e[this.name];return r&&r[0]===e?r[1]:void 0}catch(e){}this._cleanupClosedWindows();var n=h(this.keys,e);if(-1!==n)return this.values[n]},t.delete=function(e){if(!e)throw new Error("WeakMap expected key");var t=this.weakmap;if(t)try{t.delete(e)}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e))try{var r=e[this.name];r&&r[0]===e&&(r[0]=r[1]=void 0)}catch(e){}this._cleanupClosedWindows();var n=this.keys,i=h(n,e);-1!==i&&(n.splice(i,1),this.values.splice(i,1))},t.has=function(e){if(!e)throw new Error("WeakMap expected key");var t=this.weakmap;if(t)try{if(t.has(e))return!0}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e))try{var r=e[this.name];return!(!r||r[0]!==e)}catch(e){}return this._cleanupClosedWindows(),-1!==h(this.keys,e)},t.getOrSet=function(e,t){if(this.has(e))return this.get(e);var r=t();return this.set(e,r),r},e}()}])}));
//# sourceMappingURL=cross-domain-safe-weakmap.min.js.map
export function hasNativeWeakMap() {
if (typeof WeakMap === 'undefined') {
return false;
}
if (typeof WeakMap === 'undefined') {
return false;
}
if (typeof Object.freeze === 'undefined') {
return false;
}
if (typeof Object.freeze === 'undefined') {
return false;
try {
var testWeakMap = new WeakMap();
var testKey = {};
var testValue = '__testvalue__';
Object.freeze(testKey);
testWeakMap.set(testKey, testValue);
if (testWeakMap.get(testKey) === testValue) {
return true;
}
try {
var testWeakMap = new WeakMap();
var testKey = {};
var testValue = '__testvalue__';
Object.freeze(testKey);
testWeakMap.set(testKey, testValue);
if (testWeakMap.get(testKey) === testValue) {
return true;
}
return false;
} catch (err) {
return false;
}
return false;
} catch (err) {
return false;
}
}
export function safeIndexOf(collection, item) {
for (var i = 0; i < collection.length; i++) {
try {
if (collection[i] === item) {
return i;
}
} catch (err) {
// pass
}
for (var i = 0; i < collection.length; i++) {
try {
if (collection[i] === item) {
return i;
}
} catch (err) {// pass
}
}
return -1;
}
return -1;
} // eslint-disable-next-line no-unused-vars
// eslint-disable-next-line no-unused-vars
export function noop() {
// pass
export function noop() {// pass
}

@@ -1,252 +0,240 @@

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
import { isWindow, isWindowClosed } from 'cross-domain-utils/src';
import { hasNativeWeakMap } from './native';
import { noop, safeIndexOf } from './util';
export var CrossDomainSafeWeakMap = /*#__PURE__*/function () {
// eslint-disable-next-line flowtype/no-mutable-array
// eslint-disable-next-line flowtype/no-mutable-array
function CrossDomainSafeWeakMap() {
this.name = void 0;
this.weakmap = void 0;
this.keys = void 0;
this.values = void 0;
// eslint-disable-next-line no-bitwise
this.name = "__weakmap_" + (Math.random() * 1e9 >>> 0) + "__";
export var CrossDomainSafeWeakMap = function () {
function CrossDomainSafeWeakMap() {
_classCallCheck(this, CrossDomainSafeWeakMap);
// eslint-disable-next-line no-bitwise
this.name = '__weakmap_' + (Math.random() * 1e9 >>> 0) + '__';
if (hasNativeWeakMap()) {
try {
this.weakmap = new WeakMap();
} catch (err) {
// pass
}
}
this.keys = [];
this.values = [];
if (hasNativeWeakMap()) {
try {
this.weakmap = new WeakMap();
} catch (err) {// pass
}
}
CrossDomainSafeWeakMap.prototype._cleanupClosedWindows = function _cleanupClosedWindows() {
this.keys = [];
this.values = [];
}
var weakmap = this.weakmap;
var keys = this.keys;
var _proto = CrossDomainSafeWeakMap.prototype;
for (var i = 0; i < keys.length; i++) {
var value = keys[i];
_proto._cleanupClosedWindows = function _cleanupClosedWindows() {
var weakmap = this.weakmap;
var keys = this.keys;
if (isWindow(value) && isWindowClosed(value)) {
for (var i = 0; i < keys.length; i++) {
var value = keys[i];
if (weakmap) {
try {
weakmap['delete'](value);
} catch (err) {
// pass
}
}
if (isWindow(value) && isWindowClosed(value)) {
if (weakmap) {
try {
weakmap.delete(value);
} catch (err) {// pass
}
}
keys.splice(i, 1);
this.values.splice(i, 1);
keys.splice(i, 1);
this.values.splice(i, 1);
i -= 1;
}
}
};
i -= 1;
}
}
};
_proto.isSafeToReadWrite = function isSafeToReadWrite(key) {
if (isWindow(key)) {
return false;
}
CrossDomainSafeWeakMap.prototype.isSafeToReadWrite = function isSafeToReadWrite(key) {
try {
noop(key && key.self);
noop(key && key[this.name]);
} catch (err) {
return false;
}
if (isWindow(key)) {
return false;
}
return true;
};
try {
noop(key && key.self);
noop(key && key[this.name]);
} catch (err) {
return false;
}
_proto.set = function set(key, value) {
if (!key) {
throw new Error("WeakMap expected key");
}
return true;
};
var weakmap = this.weakmap;
CrossDomainSafeWeakMap.prototype.set = function set(key, value) {
if (weakmap) {
try {
weakmap.set(key, value);
} catch (err) {
delete this.weakmap;
}
}
if (!key) {
throw new Error('WeakMap expected key');
}
if (this.isSafeToReadWrite(key)) {
try {
var name = this.name;
var entry = key[name];
var weakmap = this.weakmap;
if (weakmap) {
try {
weakmap.set(key, value);
} catch (err) {
delete this.weakmap;
}
if (entry && entry[0] === key) {
entry[1] = value;
} else {
Object.defineProperty(key, name, {
value: [key, value],
writable: true
});
}
if (this.isSafeToReadWrite(key)) {
try {
var name = this.name;
var entry = key[name];
return;
} catch (err) {// pass
}
}
if (entry && entry[0] === key) {
entry[1] = value;
} else {
Object.defineProperty(key, name, {
value: [key, value],
writable: true
});
}
this._cleanupClosedWindows();
return;
} catch (err) {
// pass
}
}
var keys = this.keys;
var values = this.values;
var index = safeIndexOf(keys, key);
this._cleanupClosedWindows();
if (index === -1) {
keys.push(key);
values.push(value);
} else {
values[index] = value;
}
};
var keys = this.keys;
var values = this.values;
var index = safeIndexOf(keys, key);
_proto.get = function get(key) {
if (!key) {
throw new Error("WeakMap expected key");
}
if (index === -1) {
keys.push(key);
values.push(value);
} else {
values[index] = value;
}
};
var weakmap = this.weakmap;
CrossDomainSafeWeakMap.prototype.get = function get(key) {
if (!key) {
throw new Error('WeakMap expected key');
if (weakmap) {
try {
if (weakmap.has(key)) {
return weakmap.get(key);
}
} catch (err) {
delete this.weakmap;
}
}
var weakmap = this.weakmap;
if (this.isSafeToReadWrite(key)) {
try {
var entry = key[this.name];
if (weakmap) {
try {
if (weakmap.has(key)) {
return weakmap.get(key);
}
} catch (err) {
delete this.weakmap;
}
if (entry && entry[0] === key) {
return entry[1];
}
if (this.isSafeToReadWrite(key)) {
try {
var entry = key[this.name];
return;
} catch (err) {// pass
}
}
if (entry && entry[0] === key) {
return entry[1];
}
this._cleanupClosedWindows();
return;
} catch (err) {
// pass
}
}
var keys = this.keys;
var index = safeIndexOf(keys, key);
this._cleanupClosedWindows();
if (index === -1) {
return;
}
var keys = this.keys;
var index = safeIndexOf(keys, key);
return this.values[index];
};
if (index === -1) {
return;
}
_proto.delete = function _delete(key) {
if (!key) {
throw new Error("WeakMap expected key");
}
return this.values[index];
};
var weakmap = this.weakmap;
CrossDomainSafeWeakMap.prototype['delete'] = function _delete(key) {
if (weakmap) {
try {
weakmap.delete(key);
} catch (err) {
delete this.weakmap;
}
}
if (!key) {
throw new Error('WeakMap expected key');
}
if (this.isSafeToReadWrite(key)) {
try {
var entry = key[this.name];
var weakmap = this.weakmap;
if (weakmap) {
try {
weakmap['delete'](key);
} catch (err) {
delete this.weakmap;
}
if (entry && entry[0] === key) {
entry[0] = entry[1] = undefined;
}
} catch (err) {// pass
}
}
if (this.isSafeToReadWrite(key)) {
try {
var entry = key[this.name];
this._cleanupClosedWindows();
if (entry && entry[0] === key) {
entry[0] = entry[1] = undefined;
}
} catch (err) {
// pass
}
}
var keys = this.keys;
var index = safeIndexOf(keys, key);
this._cleanupClosedWindows();
if (index !== -1) {
keys.splice(index, 1);
this.values.splice(index, 1);
}
};
var keys = this.keys;
var index = safeIndexOf(keys, key);
_proto.has = function has(key) {
if (!key) {
throw new Error("WeakMap expected key");
}
if (index !== -1) {
keys.splice(index, 1);
this.values.splice(index, 1);
}
};
var weakmap = this.weakmap;
CrossDomainSafeWeakMap.prototype.has = function has(key) {
if (!key) {
throw new Error('WeakMap expected key');
if (weakmap) {
try {
if (weakmap.has(key)) {
return true;
}
} catch (err) {
delete this.weakmap;
}
}
var weakmap = this.weakmap;
if (this.isSafeToReadWrite(key)) {
try {
var entry = key[this.name];
if (weakmap) {
try {
if (weakmap.has(key)) {
return true;
}
} catch (err) {
delete this.weakmap;
}
if (entry && entry[0] === key) {
return true;
}
if (this.isSafeToReadWrite(key)) {
try {
var entry = key[this.name];
return false;
} catch (err) {// pass
}
}
if (entry && entry[0] === key) {
return true;
}
this._cleanupClosedWindows();
return false;
} catch (err) {
// pass
}
}
var index = safeIndexOf(this.keys, key);
return index !== -1;
};
this._cleanupClosedWindows();
_proto.getOrSet = function getOrSet(key, getter) {
if (this.has(key)) {
// $FlowFixMe
return this.get(key);
}
var index = safeIndexOf(this.keys, key);
return index !== -1;
};
var value = getter();
this.set(key, value);
return value;
};
CrossDomainSafeWeakMap.prototype.getOrSet = function getOrSet(key, getter) {
if (this.has(key)) {
// $FlowFixMe
return this.get(key);
}
var value = getter();
this.set(key, value);
return value;
};
return CrossDomainSafeWeakMap;
return CrossDomainSafeWeakMap;
}();
{
"name": "cross-domain-safe-weakmap",
"version": "1.0.27",
"version": "1.0.28",
"description": "Cross domain safe WeakMap.",

@@ -44,5 +44,5 @@ "main": "index.js",

"devDependencies": {
"flow-bin": "^0.109.0",
"grumbler-scripts": "^2.0.18",
"mocha": "^2.5.3"
"flow-bin": "^0.135.0",
"grumbler-scripts": "^3",
"mocha": "^4"
},

@@ -49,0 +49,0 @@ "dependencies": {

@@ -15,5 +15,5 @@ /* @flow */

let testWeakMap = new WeakMap();
let testKey = {};
let testValue = '__testvalue__';
const testWeakMap = new WeakMap();
const testKey = {};
const testValue = '__testvalue__';

@@ -20,0 +20,0 @@ Object.freeze(testKey);

/* @flow */
export function safeIndexOf<T>(collection : Array<T>, item : T) : number {
export function safeIndexOf<T>(collection : $ReadOnlyArray<T>, item : T) : number {
for (let i = 0; i < collection.length; i++) {

@@ -19,4 +19,4 @@

// eslint-disable-next-line no-unused-vars
export function noop(...args : Array<mixed>) {
export function noop(...args : $ReadOnlyArray<mixed>) {
// pass
}

@@ -12,3 +12,5 @@ /* @flow */

weakmap : ?WeakMap<K, V>
// eslint-disable-next-line flowtype/no-mutable-array
keys : Array<K>
// eslint-disable-next-line flowtype/no-mutable-array
values : Array<V>

@@ -34,7 +36,7 @@

let weakmap = this.weakmap;
let keys = this.keys;
const weakmap = this.weakmap;
const keys = this.keys;
for (let i = 0; i < keys.length; i++) {
let value = keys[i];
const value = keys[i];

@@ -81,3 +83,3 @@ if (isWindow(value) && isWindowClosed(value)) {

let weakmap = this.weakmap;
const weakmap = this.weakmap;

@@ -94,4 +96,4 @@ if (weakmap) {

try {
let name = this.name;
let entry = key[name];
const name = this.name;
const entry = key[name];

@@ -116,5 +118,5 @@ if (entry && entry[0] === key) {

let keys = this.keys;
let values = this.values;
let index = safeIndexOf(keys, key);
const keys = this.keys;
const values = this.values;
const index = safeIndexOf(keys, key);

@@ -135,3 +137,3 @@ if (index === -1) {

let weakmap = this.weakmap;
const weakmap = this.weakmap;

@@ -151,3 +153,3 @@ if (weakmap) {

try {
let entry = key[this.name];
const entry = key[this.name];

@@ -166,4 +168,4 @@ if (entry && entry[0] === key) {

let keys = this.keys;
let index = safeIndexOf(keys, key);
const keys = this.keys;
const index = safeIndexOf(keys, key);

@@ -183,3 +185,3 @@ if (index === -1) {

let weakmap = this.weakmap;
const weakmap = this.weakmap;

@@ -196,3 +198,3 @@ if (weakmap) {

try {
let entry = key[this.name];
const entry = key[this.name];

@@ -209,4 +211,4 @@ if (entry && entry[0] === key) {

let keys = this.keys;
let index = safeIndexOf(keys, key);
const keys = this.keys;
const index = safeIndexOf(keys, key);

@@ -225,3 +227,3 @@ if (index !== -1) {

let weakmap = this.weakmap;
const weakmap = this.weakmap;

@@ -240,3 +242,3 @@ if (weakmap) {

try {
let entry = key[this.name];
const entry = key[this.name];

@@ -255,3 +257,3 @@ if (entry && entry[0] === key) {

let index = safeIndexOf(this.keys, key);
const index = safeIndexOf(this.keys, key);
return index !== -1;

@@ -266,3 +268,3 @@ }

let value = getter();
const value = getter();
this.set(key, value);

@@ -269,0 +271,0 @@ return value;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc