Socket
Socket
Sign inDemoInstall

cross-domain-safe-weakmap

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cross-domain-safe-weakmap - npm Package Compare versions

Comparing version 1.0.20 to 1.0.21

901

dist/cross-domain-safe-weakmap.js

@@ -5,2 +5,3 @@ !function(root, factory) {

return function(modules) {
var installedModules = {};
function __webpack_require__(moduleId) {

@@ -17,3 +18,2 @@ if (installedModules[moduleId]) return installedModules[moduleId].exports;

}
var installedModules = {};
__webpack_require__.m = modules;

@@ -43,208 +43,18 @@ __webpack_require__.c = installedModules;

}({
"./node_modules/cross-domain-utils/src/index.js": function(module, exports, __webpack_require__) {
"./node_modules/cross-domain-utils/src/index.js": function(module, __webpack_exports__, __webpack_require__) {
"use strict";
function isFileProtocol() {
return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window).location.protocol === CONSTANTS.FILE_PROTOCOL;
}
function isAboutProtocol() {
return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window).location.protocol === CONSTANTS.ABOUT_PROTOCOL;
}
function getParent(win) {
if (win) try {
if (win.parent && win.parent !== win) return win.parent;
} catch (err) {}
}
function getOpener(win) {
if (win && !getParent(win)) try {
return win.opener;
} catch (err) {}
}
function canReadFromWindow(win) {
try {
(0, _util.noop)(win && win.location && win.location.href);
return !0;
} catch (err) {}
return !1;
}
function getActualDomain(win) {
var 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 === CONSTANTS.FILE_PROTOCOL) return CONSTANTS.FILE_PROTOCOL + "//";
if (protocol === CONSTANTS.ABOUT_PROTOCOL) {
var parent = getParent(win);
return parent && canReadFromWindow(win) ? getActualDomain(parent) : CONSTANTS.ABOUT_PROTOCOL + "//";
}
var host = location.host;
if (!host) throw new Error("Can not read window host");
return protocol + "//" + host;
}
function getDomain(win) {
win = win || window;
var domain = getActualDomain(win);
return domain && win.mockDomain && 0 === win.mockDomain.indexOf(CONSTANTS.MOCK_PROTOCOL) ? win.mockDomain : domain;
}
function isBlankDomain(win) {
try {
if (!win.location.href) return !0;
if ("about:blank" === win.location.href) return !0;
} catch (err) {}
return !1;
}
function isActuallySameDomain(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;
}
function isSameDomain(win) {
if (!isActuallySameDomain(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;
}
function getParents(win) {
var result = [];
try {
for (;win.parent !== win; ) {
result.push(win.parent);
win = win.parent;
}
} catch (err) {}
return result;
}
function isAncestorParent(parent, child) {
if (!parent || !child) return !1;
var childParent = getParent(child);
return childParent ? childParent === parent : -1 !== getParents(child).indexOf(parent);
}
function getFrames(win) {
var result = [], frames = void 0;
try {
frames = win.frames;
} catch (err) {
frames = win;
}
var len = void 0;
try {
len = frames.length;
} catch (err) {}
if (0 === len) return result;
if (len) {
for (var i = 0; i < len; i++) {
var frame = void 0;
try {
frame = frames[i];
} catch (err) {
continue;
}
result.push(frame);
}
return result;
}
for (var _i = 0; _i < 100; _i++) {
var _frame = void 0;
try {
_frame = frames[_i];
} catch (err) {
return result;
}
if (!_frame) return result;
result.push(_frame);
}
return result;
}
function getAllChildFrames(win) {
for (var result = [], _iterator = getFrames(win), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator](); ;) {
var _ref;
if (_isArray) {
if (_i2 >= _iterator.length) break;
_ref = _iterator[_i2++];
} else {
_i2 = _iterator.next();
if (_i2.done) break;
_ref = _i2.value;
}
var frame = _ref;
result.push(frame);
for (var _iterator2 = getAllChildFrames(frame), _isArray2 = Array.isArray(_iterator2), _i3 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator](); ;) {
var _ref2;
if (_isArray2) {
if (_i3 >= _iterator2.length) break;
_ref2 = _iterator2[_i3++];
} else {
_i3 = _iterator2.next();
if (_i3.done) break;
_ref2 = _i3.value;
}
var childFrame = _ref2;
result.push(childFrame);
}
}
return result;
}
function getTop(win) {
if (win) {
try {
if (win.top) return win.top;
} catch (err) {}
if (getParent(win) === win) return win;
try {
if (isAncestorParent(window, win) && window.top) return window.top;
} catch (err) {}
try {
if (isAncestorParent(win, window) && window.top) return window.top;
} catch (err) {}
for (var _iterator3 = getAllChildFrames(win), _isArray3 = Array.isArray(_iterator3), _i4 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator](); ;) {
var _ref3;
if (_isArray3) {
if (_i4 >= _iterator3.length) break;
_ref3 = _iterator3[_i4++];
} else {
_i4 = _iterator3.next();
if (_i4.done) break;
_ref3 = _i4.value;
}
var frame = _ref3;
try {
if (frame.top) return frame.top;
} catch (err) {}
if (getParent(frame) === frame) return frame;
}
}
}
function getAllFramesInWindow(win) {
var top = getTop(win);
return getAllChildFrames(top).concat(top);
}
function isTop(win) {
return win === getTop(win);
}
function isFrameWindowClosed(frame) {
if (!frame.contentWindow) return !0;
if (!frame.parentNode) return !0;
var doc = frame.ownerDocument;
return !(!doc || !doc.body || doc.body.contains(frame));
}
function safeIndexOf(collection, item) {
for (var i = 0; i < collection.length; i++) try {
if (collection[i] === item) return i;
} catch (err) {}
return -1;
}
function isWindowClosed(win) {
var __WEBPACK_IMPORTED_MODULE_0__utils__ = __webpack_require__("./node_modules/cross-domain-utils/src/utils.js");
__webpack_require__.d(__webpack_exports__, "isWindow", function() {
return __WEBPACK_IMPORTED_MODULE_0__utils__.a;
});
__webpack_require__.d(__webpack_exports__, "isWindowClosed", function() {
return __WEBPACK_IMPORTED_MODULE_0__utils__.b;
});
var __WEBPACK_IMPORTED_MODULE_1__types__ = __webpack_require__("./node_modules/cross-domain-utils/src/types.js");
__webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__types__);
},
"./node_modules/cross-domain-utils/src/types.js": function(module, exports) {},
"./node_modules/cross-domain-utils/src/utils.js": function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_exports__.b = function(win) {
var allowMock = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];

@@ -266,3 +76,26 @@ try {

}
if (allowMock && isSameDomain(win)) try {
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;

@@ -273,235 +106,21 @@ } catch (err) {}

} catch (err) {}
try {
(0, _util.noop)(win === win);
} catch (err) {
return !0;
}
var iframeIndex = safeIndexOf(iframeWindows, win);
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 && isFrameWindowClosed(frame)) return !0;
if (frame && function(frame) {
if (!frame.contentWindow) return !0;
if (!frame.parentNode) return !0;
var doc = frame.ownerDocument;
return !(!doc || !doc.body || doc.body.contains(frame));
}(frame)) return !0;
}
return !1;
}
function cleanIframes() {
for (var i = 0; i < iframeFrames.length; i++) if (isFrameWindowClosed(iframeFrames[i])) {
iframeFrames.splice(i, 1);
iframeWindows.splice(i, 1);
}
for (var _i5 = 0; _i5 < iframeWindows.length; _i5++) if (isWindowClosed(iframeWindows[_i5])) {
iframeFrames.splice(_i5, 1);
iframeWindows.splice(_i5, 1);
}
}
function linkFrameWindow(frame) {
cleanIframes();
if (frame && frame.contentWindow) try {
iframeWindows.push(frame.contentWindow);
iframeFrames.push(frame);
} catch (err) {}
}
function getUserAgent(win) {
win = win || window;
return win.navigator.mockUserAgent || win.navigator.userAgent;
}
function getFrameByName(win, name) {
for (var winFrames = getFrames(win), _iterator4 = winFrames, _isArray4 = Array.isArray(_iterator4), _i6 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator](); ;) {
var _ref4;
if (_isArray4) {
if (_i6 >= _iterator4.length) break;
_ref4 = _iterator4[_i6++];
} else {
_i6 = _iterator4.next();
if (_i6.done) break;
_ref4 = _i6.value;
}
var childFrame = _ref4;
try {
if (isSameDomain(childFrame) && childFrame.name === name && -1 !== winFrames.indexOf(childFrame)) return childFrame;
} catch (err) {}
}
};
__webpack_exports__.a = function(obj) {
try {
if (-1 !== winFrames.indexOf(win.frames[name])) return win.frames[name];
} catch (err) {}
try {
if (-1 !== winFrames.indexOf(win[name])) return win[name];
} catch (err) {}
}
function findChildFrameByName(win, name) {
var frame = getFrameByName(win, name);
if (frame) return frame;
for (var _iterator5 = getFrames(win), _isArray5 = Array.isArray(_iterator5), _i7 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator](); ;) {
var _ref5;
if (_isArray5) {
if (_i7 >= _iterator5.length) break;
_ref5 = _iterator5[_i7++];
} else {
_i7 = _iterator5.next();
if (_i7.done) break;
_ref5 = _i7.value;
}
var childFrame = _ref5, namedFrame = findChildFrameByName(childFrame, name);
if (namedFrame) return namedFrame;
}
}
function findFrameByName(win, name) {
var frame = void 0;
frame = getFrameByName(win, name);
return frame || findChildFrameByName(getTop(win) || win, name);
}
function isParent(win, frame) {
var frameParent = getParent(frame);
if (frameParent) return frameParent === win;
for (var _iterator6 = getFrames(win), _isArray6 = Array.isArray(_iterator6), _i8 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator](); ;) {
var _ref6;
if (_isArray6) {
if (_i8 >= _iterator6.length) break;
_ref6 = _iterator6[_i8++];
} else {
_i8 = _iterator6.next();
if (_i8.done) break;
_ref6 = _i8.value;
}
if (_ref6 === frame) return !0;
}
return !1;
}
function isOpener(parent, child) {
return parent === getOpener(child);
}
function getAncestor(win) {
win = win || window;
var opener = getOpener(win);
if (opener) return opener;
var parent = getParent(win);
return parent || void 0;
}
function getAncestors(win) {
for (var results = [], ancestor = win; ancestor; ) {
ancestor = getAncestor(ancestor);
ancestor && results.push(ancestor);
}
return results;
}
function isAncestor(parent, child) {
var actualParent = getAncestor(child);
if (actualParent) return actualParent === parent;
if (child === parent) return !1;
if (getTop(child) === child) return !1;
for (var _iterator7 = getFrames(parent), _isArray7 = Array.isArray(_iterator7), _i9 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator](); ;) {
var _ref7;
if (_isArray7) {
if (_i9 >= _iterator7.length) break;
_ref7 = _iterator7[_i9++];
} else {
_i9 = _iterator7.next();
if (_i9.done) break;
_ref7 = _i9.value;
}
if (_ref7 === child) return !0;
}
return !1;
}
function isPopup() {
return Boolean(getOpener(window));
}
function isIframe() {
return Boolean(getParent(window));
}
function isFullpage() {
return Boolean(!isIframe() && !isPopup());
}
function anyMatch(collection1, collection2) {
for (var _iterator8 = collection1, _isArray8 = Array.isArray(_iterator8), _i10 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator](); ;) {
var _ref8;
if (_isArray8) {
if (_i10 >= _iterator8.length) break;
_ref8 = _iterator8[_i10++];
} else {
_i10 = _iterator8.next();
if (_i10.done) break;
_ref8 = _i10.value;
}
for (var item1 = _ref8, _iterator9 = collection2, _isArray9 = Array.isArray(_iterator9), _i11 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator](); ;) {
var _ref9;
if (_isArray9) {
if (_i11 >= _iterator9.length) break;
_ref9 = _iterator9[_i11++];
} else {
_i11 = _iterator9.next();
if (_i11.done) break;
_ref9 = _i11.value;
}
if (item1 === _ref9) return !0;
}
}
return !1;
}
function getDistanceFromTop() {
for (var win = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window, distance = 0, parent = win; parent; ) {
parent = getParent(parent);
parent && (distance += 1);
}
return distance;
}
function getNthParent(win) {
for (var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1, parent = win, i = 0; i < n; i++) {
if (!parent) return;
parent = getParent(parent);
}
return parent;
}
function getNthParentFromTop(win) {
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1;
return getNthParent(win, getDistanceFromTop(win) - n);
}
function isSameTopWindow(win1, win2) {
var top1 = getTop(win1) || win1, top2 = getTop(win2) || win2;
try {
if (top1 && top2) return top1 === top2;
} catch (err) {}
var allFrames1 = getAllFramesInWindow(win1), allFrames2 = getAllFramesInWindow(win2);
if (anyMatch(allFrames1, allFrames2)) return !0;
var opener1 = getOpener(top1), opener2 = getOpener(top2);
return (!opener1 || !anyMatch(getAllFramesInWindow(opener1), allFrames2)) && (opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1),
!1);
}
function matchDomain(pattern, origin) {
if ("string" == typeof pattern) {
if ("string" == typeof origin) return pattern === CONSTANTS.WILDCARD || origin === pattern;
if ((0, _util.isRegex)(origin)) return !1;
if (Array.isArray(origin)) return !1;
}
return (0, _util.isRegex)(pattern) ? (0, _util.isRegex)(origin) ? pattern.toString() === origin.toString() : !Array.isArray(origin) && Boolean(origin.match(pattern)) : !!Array.isArray(pattern) && (Array.isArray(origin) ? JSON.stringify(pattern) === JSON.stringify(origin) : !(0,
_util.isRegex)(origin) && pattern.some(function(subpattern) {
return matchDomain(subpattern, origin);
}));
}
function getDomainFromUrl(url) {
var domain = void 0;
if (!url.match(/^(https?|mock|file):\/\//)) return getDomain();
domain = url;
domain = domain.split("/").slice(0, 3).join("/");
return domain;
}
function onCloseWindow(win, callback) {
var delay = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1e3, maxtime = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1 / 0, timeout = void 0;
!function check() {
if (isWindowClosed(win)) {
timeout && clearTimeout(timeout);
return callback();
}
if (maxtime <= 0) clearTimeout(timeout); else {
maxtime -= delay;
timeout = setTimeout(check, delay);
}
}();
return {
cancel: function() {
timeout && clearTimeout(timeout);
}
};
}
function isWindow(obj) {
try {
if (obj === window) return !0;

@@ -537,57 +156,9 @@ } catch (err) {

try {
(0, _util.noop)(obj === obj);
obj && obj.__cross_domain_utils_window_check__;
} catch (err) {
return !0;
}
try {
(0, _util.noop)(obj && obj.__cross_domain_utils_window_check__);
} catch (err) {
return !0;
}
return !1;
}
Object.defineProperty(exports, "__esModule", {
value: !0
});
exports.isFileProtocol = isFileProtocol;
exports.isAboutProtocol = isAboutProtocol;
exports.getParent = getParent;
exports.getOpener = getOpener;
exports.canReadFromWindow = canReadFromWindow;
exports.getActualDomain = getActualDomain;
exports.getDomain = getDomain;
exports.isBlankDomain = isBlankDomain;
exports.isActuallySameDomain = isActuallySameDomain;
exports.isSameDomain = isSameDomain;
exports.getParents = getParents;
exports.isAncestorParent = isAncestorParent;
exports.getFrames = getFrames;
exports.getAllChildFrames = getAllChildFrames;
exports.getTop = getTop;
exports.getAllFramesInWindow = getAllFramesInWindow;
exports.isTop = isTop;
exports.isFrameWindowClosed = isFrameWindowClosed;
exports.isWindowClosed = isWindowClosed;
exports.linkFrameWindow = linkFrameWindow;
exports.getUserAgent = getUserAgent;
exports.getFrameByName = getFrameByName;
exports.findChildFrameByName = findChildFrameByName;
exports.findFrameByName = findFrameByName;
exports.isParent = isParent;
exports.isOpener = isOpener;
exports.getAncestor = getAncestor;
exports.getAncestors = getAncestors;
exports.isAncestor = isAncestor;
exports.isPopup = isPopup;
exports.isIframe = isIframe;
exports.isFullpage = isFullpage;
exports.getDistanceFromTop = getDistanceFromTop;
exports.getNthParent = getNthParent;
exports.getNthParentFromTop = getNthParentFromTop;
exports.isSameTopWindow = isSameTopWindow;
exports.matchDomain = matchDomain;
exports.getDomainFromUrl = getDomainFromUrl;
exports.onCloseWindow = onCloseWindow;
exports.isWindow = isWindow;
var _util = __webpack_require__("./node_modules/cross-domain-utils/src/util.js"), CONSTANTS = {
};
var CONSTANTS = {
MOCK_PROTOCOL: "mock:",

@@ -597,73 +168,47 @@ FILE_PROTOCOL: "file:",

WILDCARD: "*"
}, IE_WIN_ACCESS_ERROR = "Call was rejected by callee.\r\n", iframeWindows = [], iframeFrames = [];
},
"./node_modules/cross-domain-utils/src/util.js": function(module, exports, __webpack_require__) {
"use strict";
function isRegex(item) {
return "[object RegExp]" === Object.prototype.toString.call(item);
}, 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 === CONSTANTS.ABOUT_PROTOCOL;
}
function noop() {}
Object.defineProperty(exports, "__esModule", {
value: !0
});
exports.isRegex = isRegex;
exports.noop = noop;
function canReadFromWindow(win) {
try {
win && win.location && win.location.href;
return !0;
} catch (err) {}
return !1;
}
function getActualDomain(win) {
var location = (win = win || window).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 === CONSTANTS.FILE_PROTOCOL) return CONSTANTS.FILE_PROTOCOL + "//";
if (protocol === CONSTANTS.ABOUT_PROTOCOL) {
var parent = function(win) {
if (win) try {
if (win.parent && win.parent !== win) return win.parent;
} catch (err) {}
}(win);
return parent && canReadFromWindow(parent) ? getActualDomain(parent) : CONSTANTS.ABOUT_PROTOCOL + "//";
}
var host = location.host;
if (!host) throw new Error("Can not read window host");
return protocol + "//" + host;
}
function getDomain(win) {
var domain = getActualDomain(win = win || window);
return domain && win.mockDomain && 0 === win.mockDomain.indexOf(CONSTANTS.MOCK_PROTOCOL) ? win.mockDomain : domain;
}
var iframeWindows = [], iframeFrames = [];
},
"./src/index.js": function(module, exports, __webpack_require__) {
"./src/index.js": function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
Object.defineProperty(__webpack_exports__, "__esModule", {
value: !0
});
var _interface = __webpack_require__("./src/interface.js");
Object.keys(_interface).forEach(function(key) {
"default" !== key && "__esModule" !== key && Object.defineProperty(exports, key, {
enumerable: !0,
get: function() {
return _interface[key];
}
});
var interface_namespaceObject = {};
__webpack_require__.d(interface_namespaceObject, "WeakMap", function() {
return weakmap_CrossDomainSafeWeakMap;
});
var INTERFACE = function(obj) {
if (obj && obj.__esModule) return obj;
var newObj = {};
if (null != obj) for (var key in obj) Object.prototype.hasOwnProperty.call(obj, key) && (newObj[key] = obj[key]);
newObj.default = obj;
return newObj;
}(_interface);
exports.default = INTERFACE;
},
"./src/interface.js": function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: !0
});
var _weakmap = __webpack_require__("./src/weakmap.js");
Object.defineProperty(exports, "WeakMap", {
enumerable: !0,
get: function() {
return _weakmap.CrossDomainSafeWeakMap;
}
});
},
"./src/native.js": function(module, exports, __webpack_require__) {
"use strict";
function hasNativeWeakMap() {
if (!window.WeakMap) return !1;
if (!window.Object.freeze) return !1;
try {
var testWeakMap = new window.WeakMap(), testKey = {};
window.Object.freeze(testKey);
testWeakMap.set(testKey, "__testvalue__");
return "__testvalue__" === testWeakMap.get(testKey);
} catch (err) {
return !1;
}
}
Object.defineProperty(exports, "__esModule", {
value: !0
});
exports.hasNativeWeakMap = hasNativeWeakMap;
},
"./src/util.js": function(module, exports, __webpack_require__) {
"use strict";
var src = __webpack_require__("./node_modules/cross-domain-utils/src/index.js");
function safeIndexOf(collection, item) {

@@ -675,40 +220,21 @@ for (var i = 0; i < collection.length; i++) try {

}
function noop() {}
Object.defineProperty(exports, "__esModule", {
value: !0
});
exports.safeIndexOf = safeIndexOf;
exports.noop = noop;
},
"./src/weakmap.js": function(module, exports, __webpack_require__) {
"use strict";
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function");
}
Object.defineProperty(exports, "__esModule", {
value: !0
});
exports.CrossDomainSafeWeakMap = void 0;
var _createClass = function() {
function defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || !1;
descriptor.configurable = !0;
"value" in descriptor && (descriptor.writable = !0);
Object.defineProperty(target, descriptor.key, descriptor);
}
}
return function(Constructor, protoProps, staticProps) {
protoProps && defineProperties(Constructor.prototype, protoProps);
staticProps && defineProperties(Constructor, staticProps);
return Constructor;
};
}(), _src = __webpack_require__("./node_modules/cross-domain-utils/src/index.js"), _native = __webpack_require__("./src/native.js"), _util = __webpack_require__("./src/util.js"), defineProperty = Object.defineProperty, counter = Date.now() % 1e9;
exports.CrossDomainSafeWeakMap = function() {
var defineProperty = Object.defineProperty, counter = Date.now() % 1e9, weakmap_CrossDomainSafeWeakMap = function() {
function CrossDomainSafeWeakMap() {
_classCallCheck(this, CrossDomainSafeWeakMap);
!function(instance, Constructor) {
if (!(instance instanceof CrossDomainSafeWeakMap)) throw new TypeError("Cannot call a class as a function");
}(this);
counter += 1;
this.name = "__weakmap_" + (1e9 * Math.random() >>> 0) + "__" + counter;
if ((0, _native.hasNativeWeakMap)()) try {
if (function() {
if (!window.WeakMap) return !1;
if (!window.Object.freeze) return !1;
try {
var testWeakMap = new window.WeakMap(), testKey = {};
window.Object.freeze(testKey);
testWeakMap.set(testKey, "__testvalue__");
return "__testvalue__" === testWeakMap.get(testKey);
} catch (err) {
return !1;
}
}()) try {
this.weakmap = new window.WeakMap();

@@ -719,115 +245,112 @@ } catch (err) {}

}
_createClass(CrossDomainSafeWeakMap, [ {
key: "_cleanupClosedWindows",
value: function() {
for (var weakmap = this.weakmap, keys = this.keys, i = 0; i < keys.length; i++) {
var value = keys[i];
if ((0, _src.isWindow)(value) && (0, _src.isWindowClosed)(value)) {
if (weakmap) try {
weakmap.delete(value);
} catch (err) {}
keys.splice(i, 1);
this.values.splice(i, 1);
i -= 1;
}
CrossDomainSafeWeakMap.prototype._cleanupClosedWindows = function() {
for (var weakmap = this.weakmap, keys = this.keys, i = 0; i < keys.length; i++) {
var value = keys[i];
if (Object(src.isWindow)(value) && Object(src.isWindowClosed)(value)) {
if (weakmap) try {
weakmap.delete(value);
} catch (err) {}
keys.splice(i, 1);
this.values.splice(i, 1);
i -= 1;
}
}
}, {
key: "isSafeToReadWrite",
value: function(key) {
if ((0, _src.isWindow)(key)) return !1;
try {
(0, _util.noop)(key && key.self);
(0, _util.noop)(key && key[this.name]);
} catch (err) {
return !1;
}
return !0;
};
CrossDomainSafeWeakMap.prototype.isSafeToReadWrite = function(key) {
if (Object(src.isWindow)(key)) return !1;
try {
key && key.self;
key && key[this.name];
} catch (err) {
return !1;
}
}, {
key: "set",
value: 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)) {
var name = this.name, entry = key[name];
entry && entry[0] === key ? entry[1] = value : defineProperty(key, name, {
value: [ key, value ],
writable: !0
});
} else {
this._cleanupClosedWindows();
var keys = this.keys, values = this.values, index = (0, _util.safeIndexOf)(keys, key);
if (-1 === index) {
keys.push(key);
values.push(value);
} else values[index] = value;
}
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;
}
}, {
key: "get",
value: 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)) {
this._cleanupClosedWindows();
var keys = this.keys, index = (0, _util.safeIndexOf)(keys, key);
if (-1 === index) return;
return this.values[index];
}
var entry = key[this.name];
if (entry && entry[0] === key) return entry[1];
if (this.isSafeToReadWrite(key)) {
var name = this.name, entry = key[name];
entry && entry[0] === key ? entry[1] = value : defineProperty(key, name, {
value: [ key, value ],
writable: !0
});
} else {
this._cleanupClosedWindows();
var keys = this.keys, values = this.values, index = safeIndexOf(keys, key);
if (-1 === index) {
keys.push(key);
values.push(value);
} else values[index] = value;
}
}, {
key: "delete",
value: 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)) {
var entry = key[this.name];
entry && entry[0] === key && (entry[0] = entry[1] = void 0);
} else {
this._cleanupClosedWindows();
var keys = this.keys, index = (0, _util.safeIndexOf)(keys, key);
if (-1 !== index) {
keys.splice(index, 1);
this.values.splice(index, 1);
}
}
};
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;
}
}, {
key: "has",
value: function(key) {
if (!key) throw new Error("WeakMap expected key");
var weakmap = this.weakmap;
if (weakmap) try {
return weakmap.has(key);
} catch (err) {
delete this.weakmap;
}
if (this.isSafeToReadWrite(key)) {
var entry = key[this.name];
return !(!entry || entry[0] !== key);
}
if (!this.isSafeToReadWrite(key)) {
this._cleanupClosedWindows();
return -1 !== (0, _util.safeIndexOf)(this.keys, key);
var index = safeIndexOf(this.keys, key);
if (-1 === index) return;
return this.values[index];
}
} ]);
var entry = key[this.name];
if (entry && entry[0] === key) return entry[1];
};
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)) {
var entry = key[this.name];
entry && entry[0] === key && (entry[0] = entry[1] = void 0);
} else {
this._cleanupClosedWindows();
var keys = this.keys, index = 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 {
return weakmap.has(key);
} catch (err) {
delete this.weakmap;
}
if (this.isSafeToReadWrite(key)) {
var entry = key[this.name];
return !(!entry || entry[0] !== key);
}
this._cleanupClosedWindows();
return -1 !== 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;
});
__webpack_exports__.default = interface_namespaceObject;
}

@@ -834,0 +357,0 @@ });

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

!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define("xdsweakmap",[],r):"object"==typeof exports?exports.xdsweakmap=r():e.xdsweakmap=r()}("undefined"!=typeof self?self:this,function(){return function(e){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}var t={};return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get: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,r){return Object.prototype.hasOwnProperty.call(e,r)},r.p="",r(r.s="./src/index.js")}({"./node_modules/cross-domain-utils/src/index.js":function(e,r,t){"use strict";function n(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window).location.protocol===H.FILE_PROTOCOL}function i(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window).location.protocol===H.ABOUT_PROTOCOL}function o(e){if(e)try{if(e.parent&&e.parent!==e)return e.parent}catch(e){}}function a(e){if(e&&!o(e))try{return e.opener}catch(e){}}function u(e){try{return(0,G.noop)(e&&e.location&&e.location.href),!0}catch(e){}return!1}function c(e){var r=e.location;if(!r)throw new Error("Can not read window location");var t=r.protocol;if(!t)throw new Error("Can not read window protocol");if(t===H.FILE_PROTOCOL)return H.FILE_PROTOCOL+"//";if(t===H.ABOUT_PROTOCOL){var n=o(e);return n&&u(e)?c(n):H.ABOUT_PROTOCOL+"//"}var i=r.host;if(!i)throw new Error("Can not read window host");return t+"//"+i}function f(e){e=e||window;var r=c(e);return r&&e.mockDomain&&0===e.mockDomain.indexOf(H.MOCK_PROTOCOL)?e.mockDomain:r}function s(e){try{if(!e.location.href)return!0;if("about:blank"===e.location.href)return!0}catch(e){}return!1}function l(e){try{if(e===window)return!0}catch(e){}try{var r=Object.getOwnPropertyDescriptor(e,"location");if(r&&!1===r.enumerable)return!1}catch(e){}try{if(i(e)&&u(e))return!0}catch(e){}try{if(c(e)===c(window))return!0}catch(e){}return!1}function d(e){if(!l(e))return!1;try{if(e===window)return!0;if(i(e)&&u(e))return!0;if(f(window)===f(e))return!0}catch(e){}return!1}function h(e){var r=[];try{for(;e.parent!==e;)r.push(e.parent),e=e.parent}catch(e){}return r}function p(e,r){if(!e||!r)return!1;var t=o(r);return t?t===e:-1!==h(r).indexOf(e)}function v(e){var r=[],t=void 0;try{t=e.frames}catch(r){t=e}var n=void 0;try{n=t.length}catch(e){}if(0===n)return r;if(n){for(var i=0;i<n;i++){var o=void 0;try{o=t[i]}catch(e){continue}r.push(o)}return r}for(var a=0;a<100;a++){var u=void 0;try{u=t[a]}catch(e){return r}if(!u)return r;r.push(u)}return r}function y(e){for(var r=[],t=v(e),n=Array.isArray(t),i=0,t=n?t:t[Symbol.iterator]();;){var o;if(n){if(i>=t.length)break;o=t[i++]}else{if(i=t.next(),i.done)break;o=i.value}var a=o;r.push(a);for(var u=y(a),c=Array.isArray(u),f=0,u=c?u:u[Symbol.iterator]();;){var s;if(c){if(f>=u.length)break;s=u[f++]}else{if(f=u.next(),f.done)break;s=f.value}var l=s;r.push(l)}}return r}function w(e){if(e){try{if(e.top)return e.top}catch(e){}if(o(e)===e)return e;try{if(p(window,e)&&window.top)return window.top}catch(e){}try{if(p(e,window)&&window.top)return window.top}catch(e){}for(var r=y(e),t=Array.isArray(r),n=0,r=t?r:r[Symbol.iterator]();;){var i;if(t){if(n>=r.length)break;i=r[n++]}else{if(n=r.next(),n.done)break;i=n.value}var a=i;try{if(a.top)return a.top}catch(e){}if(o(a)===a)return a}}}function m(e){var r=w(e);return y(r).concat(r)}function g(e){return e===w(e)}function k(e){if(!e.contentWindow)return!0;if(!e.parentNode)return!0;var r=e.ownerDocument;return!(!r||!r.body||r.body.contains(e))}function O(e,r){for(var t=0;t<e.length;t++)try{if(e[t]===r)return t}catch(e){}return-1}function b(e){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];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!==Q}if(r&&d(e))try{if(e.mockclosed)return!0}catch(e){}try{if(!e.parent||!e.top)return!0}catch(e){}try{(0,G.noop)(e===e)}catch(e){return!0}var t=O(V,e);if(-1!==t){var n=X[t];if(n&&k(n))return!0}return!1}function _(){for(var e=0;e<X.length;e++)k(X[e])&&(X.splice(e,1),V.splice(e,1));for(var r=0;r<V.length;r++)b(V[r])&&(X.splice(r,1),V.splice(r,1))}function x(e){if(_(),e&&e.contentWindow)try{V.push(e.contentWindow),X.push(e)}catch(e){}}function A(e){return e=e||window,e.navigator.mockUserAgent||e.navigator.userAgent}function W(e,r){for(var t=v(e),n=t,i=Array.isArray(n),o=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(o>=n.length)break;a=n[o++]}else{if(o=n.next(),o.done)break;a=o.value}var u=a;try{if(d(u)&&u.name===r&&-1!==t.indexOf(u))return u}catch(e){}}try{if(-1!==t.indexOf(e.frames[r]))return e.frames[r]}catch(e){}try{if(-1!==t.indexOf(e[r]))return e[r]}catch(e){}}function j(e,r){var t=W(e,r);if(t)return t;for(var n=v(e),i=Array.isArray(n),o=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(o>=n.length)break;a=n[o++]}else{if(o=n.next(),o.done)break;a=o.value}var u=a,c=j(u,r);if(c)return c}}function P(e,r){var t=void 0;return(t=W(e,r))?t:j(w(e)||e,r)}function C(e,r){var t=o(r);if(t)return t===e;for(var n=v(e),i=Array.isArray(n),a=0,n=i?n:n[Symbol.iterator]();;){var u;if(i){if(a>=n.length)break;u=n[a++]}else{if(a=n.next(),a.done)break;u=a.value}if(u===r)return!0}return!1}function T(e,r){return e===a(r)}function M(e){e=e||window;var r=a(e);if(r)return r;var t=o(e);return t||void 0}function S(e){for(var r=[],t=e;t;)(t=M(t))&&r.push(t);return r}function R(e,r){var t=M(r);if(t)return t===e;if(r===e)return!1;if(w(r)===r)return!1;for(var n=v(e),i=Array.isArray(n),o=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(o>=n.length)break;a=n[o++]}else{if(o=n.next(),o.done)break;a=o.value}if(a===r)return!0}return!1}function D(){return Boolean(a(window))}function F(){return Boolean(o(window))}function L(){return Boolean(!F()&&!D())}function E(e,r){for(var t=e,n=Array.isArray(t),i=0,t=n?t:t[Symbol.iterator]();;){var o;if(n){if(i>=t.length)break;o=t[i++]}else{if(i=t.next(),i.done)break;o=i.value}for(var a=o,u=r,c=Array.isArray(u),f=0,u=c?u:u[Symbol.iterator]();;){var s;if(c){if(f>=u.length)break;s=u[f++]}else{if(f=u.next(),f.done)break;s=f.value}if(a===s)return!0}}return!1}function I(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window,r=0,t=e;t;)(t=o(t))&&(r+=1);return r}function B(e){for(var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,t=e,n=0;n<r;n++){if(!t)return;t=o(t)}return t}function N(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return B(e,I(e)-r)}function U(e,r){var t=w(e)||e,n=w(r)||r;try{if(t&&n)return t===n}catch(e){}var i=m(e),o=m(r);if(E(i,o))return!0;var u=a(t),c=a(n);return(!u||!E(m(u),o))&&(c&&E(m(c),i),!1)}function z(e,r){if("string"==typeof e){if("string"==typeof r)return e===H.WILDCARD||r===e;if((0,G.isRegex)(r))return!1;if(Array.isArray(r))return!1}return(0,G.isRegex)(e)?(0,G.isRegex)(r)?e.toString()===r.toString():!Array.isArray(r)&&Boolean(r.match(e)):!!Array.isArray(e)&&(Array.isArray(r)?JSON.stringify(e)===JSON.stringify(r):!(0,G.isRegex)(r)&&e.some(function(e){return z(e,r)}))}function J(e){var r=void 0;return e.match(/^(https?|mock|file):\/\//)?(r=e,r=r.split("/").slice(0,3).join("/")):f()}function K(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1/0,i=void 0;return function o(){if(b(e))return i&&clearTimeout(i),r();n<=0?clearTimeout(i):(n-=t,i=setTimeout(o,t))}(),{cancel:function(){i&&clearTimeout(i)}}}function q(e){try{if(e===window)return!0}catch(e){if(e&&e.message===Q)return!0}try{if("[object Window]"===Object.prototype.toString.call(e))return!0}catch(e){if(e&&e.message===Q)return!0}try{if(window.Window&&e instanceof window.Window)return!0}catch(e){if(e&&e.message===Q)return!0}try{if(e&&e.self===e)return!0}catch(e){if(e&&e.message===Q)return!0}try{if(e&&e.parent===e)return!0}catch(e){if(e&&e.message===Q)return!0}try{if(e&&e.top===e)return!0}catch(e){if(e&&e.message===Q)return!0}try{(0,G.noop)(e===e)}catch(e){return!0}try{(0,G.noop)(e&&e.__cross_domain_utils_window_check__)}catch(e){return!0}return!1}Object.defineProperty(r,"__esModule",{value:!0}),r.isFileProtocol=n,r.isAboutProtocol=i,r.getParent=o,r.getOpener=a,r.canReadFromWindow=u,r.getActualDomain=c,r.getDomain=f,r.isBlankDomain=s,r.isActuallySameDomain=l,r.isSameDomain=d,r.getParents=h,r.isAncestorParent=p,r.getFrames=v,r.getAllChildFrames=y,r.getTop=w,r.getAllFramesInWindow=m,r.isTop=g,r.isFrameWindowClosed=k,r.isWindowClosed=b,r.linkFrameWindow=x,r.getUserAgent=A,r.getFrameByName=W,r.findChildFrameByName=j,r.findFrameByName=P,r.isParent=C,r.isOpener=T,r.getAncestor=M,r.getAncestors=S,r.isAncestor=R,r.isPopup=D,r.isIframe=F,r.isFullpage=L,r.getDistanceFromTop=I,r.getNthParent=B,r.getNthParentFromTop=N,r.isSameTopWindow=U,r.matchDomain=z,r.getDomainFromUrl=J,r.onCloseWindow=K,r.isWindow=q;var G=t("./node_modules/cross-domain-utils/src/util.js"),H={MOCK_PROTOCOL:"mock:",FILE_PROTOCOL:"file:",ABOUT_PROTOCOL:"about:",WILDCARD:"*"},Q="Call was rejected by callee.\r\n",V=[],X=[]},"./node_modules/cross-domain-utils/src/util.js":function(e,r,t){"use strict";function n(e){return"[object RegExp]"===Object.prototype.toString.call(e)}function i(){}Object.defineProperty(r,"__esModule",{value:!0}),r.isRegex=n,r.noop=i},"./src/index.js":function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t("./src/interface.js");Object.keys(n).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(r,e,{enumerable:!0,get:function(){return n[e]}})});var i=function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r}(n);r.default=i},"./src/interface.js":function(e,r,t){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t("./src/weakmap.js");Object.defineProperty(r,"WeakMap",{enumerable:!0,get:function(){return n.CrossDomainSafeWeakMap}})},"./src/native.js":function(e,r,t){"use strict";function n(){if(!window.WeakMap)return!1;if(!window.Object.freeze)return!1;try{var e=new window.WeakMap,r={};return window.Object.freeze(r),e.set(r,"__testvalue__"),"__testvalue__"===e.get(r)}catch(e){return!1}}Object.defineProperty(r,"__esModule",{value:!0}),r.hasNativeWeakMap=n},"./src/util.js":function(e,r,t){"use strict";function n(e,r){for(var t=0;t<e.length;t++)try{if(e[t]===r)return t}catch(e){}return-1}function i(){}Object.defineProperty(r,"__esModule",{value:!0}),r.safeIndexOf=n,r.noop=i},"./src/weakmap.js":function(e,r,t){"use strict";function n(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0}),r.CrossDomainSafeWeakMap=void 0;var i=function(){function e(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(r,t,n){return t&&e(r.prototype,t),n&&e(r,n),r}}(),o=t("./node_modules/cross-domain-utils/src/index.js"),a=t("./src/native.js"),u=t("./src/util.js"),c=Object.defineProperty,f=Date.now()%1e9;r.CrossDomainSafeWeakMap=function(){function e(){if(n(this,e),f+=1,this.name="__weakmap_"+(1e9*Math.random()>>>0)+"__"+f,(0,a.hasNativeWeakMap)())try{this.weakmap=new window.WeakMap}catch(e){}this.keys=[],this.values=[]}return i(e,[{key:"_cleanupClosedWindows",value:function(){for(var e=this.weakmap,r=this.keys,t=0;t<r.length;t++){var n=r[t];if((0,o.isWindow)(n)&&(0,o.isWindowClosed)(n)){if(e)try{e.delete(n)}catch(e){}r.splice(t,1),this.values.splice(t,1),t-=1}}}},{key:"isSafeToReadWrite",value:function(e){if((0,o.isWindow)(e))return!1;try{(0,u.noop)(e&&e.self),(0,u.noop)(e&&e[this.name])}catch(e){return!1}return!0}},{key:"set",value:function(e,r){if(!e)throw new Error("WeakMap expected key");var t=this.weakmap;if(t)try{t.set(e,r)}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e)){var n=this.name,i=e[n];i&&i[0]===e?i[1]=r:c(e,n,{value:[e,r],writable:!0})}else{this._cleanupClosedWindows();var o=this.keys,a=this.values,f=(0,u.safeIndexOf)(o,e);-1===f?(o.push(e),a.push(r)):a[f]=r}}},{key:"get",value:function(e){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{if(r.has(e))return r.get(e)}catch(e){delete this.weakmap}if(!this.isSafeToReadWrite(e)){this._cleanupClosedWindows();var t=this.keys,n=(0,u.safeIndexOf)(t,e);if(-1===n)return;return this.values[n]}var i=e[this.name];if(i&&i[0]===e)return i[1]}},{key:"delete",value:function(e){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{r.delete(e)}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e)){var t=e[this.name];t&&t[0]===e&&(t[0]=t[1]=void 0)}else{this._cleanupClosedWindows();var n=this.keys,i=(0,u.safeIndexOf)(n,e);-1!==i&&(n.splice(i,1),this.values.splice(i,1))}}},{key:"has",value:function(e){if(!e)throw new Error("WeakMap expected key");var r=this.weakmap;if(r)try{return r.has(e)}catch(e){delete this.weakmap}if(this.isSafeToReadWrite(e)){var t=e[this.name];return!(!t||t[0]!==e)}return this._cleanupClosedWindows(),-1!==(0,u.safeIndexOf)(this.keys,e)}}]),e}()}})});
!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={};r.d(n,"WeakMap",function(){return u});var i=r(1);function o(t,e){for(var r=0;r<t.length;r++)try{if(t[r]===e)return r}catch(t){}return-1}var a=Object.defineProperty,c=Date.now()%1e9,u=function(){function t(){if(function(e,r){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this),c+=1,this.name="__weakmap_"+(1e9*Math.random()>>>0)+"__"+c,function(){if(!window.WeakMap)return!1;if(!window.Object.freeze)return!1;try{var t=new window.WeakMap,e={};return window.Object.freeze(e),t.set(e,"__testvalue__"),"__testvalue__"===t.get(e)}catch(t){return!1}}())try{this.weakmap=new window.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(Object(i.isWindow)(n)&&Object(i.isWindowClosed)(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(Object(i.isWindow)(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)){var n=this.name,i=t[n];i&&i[0]===t?i[1]=e:a(t,n,{value:[t,e],writable:!0})}else{this._cleanupClosedWindows();var c=this.keys,u=this.values,s=o(c,t);-1===s?(c.push(t),u.push(e)):u[s]=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)){this._cleanupClosedWindows();var r=o(this.keys,t);if(-1===r)return;return this.values[r]}var n=t[this.name];if(n&&n[0]===t)return n[1]},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)){var r=t[this.name];r&&r[0]===t&&(r[0]=r[1]=void 0)}else{this._cleanupClosedWindows();var n=this.keys,i=o(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{return e.has(t)}catch(t){delete this.weakmap}if(this.isSafeToReadWrite(t)){var r=t[this.name];return!(!r||r[0]!==t)}return this._cleanupClosedWindows(),-1!==o(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 u}),e.default=n},function(t,e,r){"use strict";var n=r(2);r.d(e,"isWindow",function(){return n.a}),r.d(e,"isWindowClosed",function(){return n.b});var i=r(3);r.n(i)},function(t,e,r){"use strict";e.b=function(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}(s,t);if(-1!==r){var n=f[r];if(n&&function(t){if(!t.contentWindow)return!0;if(!t.parentNode)return!0;var e=t.ownerDocument;return!(!e||!e.body||e.body.contains(t))}(n))return!0}return!1},e.a=function(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{t&&t.__cross_domain_utils_window_check__}catch(t){return!0}return!1};var n={MOCK_PROTOCOL:"mock:",FILE_PROTOCOL:"file:",ABOUT_PROTOCOL:"about:",WILDCARD:"*"},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_PROTOCOL}function a(t){try{return t&&t.location&&t.location.href,!0}catch(t){}return!1}function c(t){var e=(t=t||window).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_PROTOCOL)return n.FILE_PROTOCOL+"//";if(r===n.ABOUT_PROTOCOL){var i=function(t){if(t)try{if(t.parent&&t.parent!==t)return t.parent}catch(t){}}(t);return i&&a(i)?c(i):n.ABOUT_PROTOCOL+"//"}var o=e.host;if(!o)throw new Error("Can not read window host");return r+"//"+o}function u(t){var e=c(t=t||window);return e&&t.mockDomain&&0===t.mockDomain.indexOf(n.MOCK_PROTOCOL)?t.mockDomain:e}var s=[],f=[]},function(t,e){}])});
//# sourceMappingURL=cross-domain-safe-weakmap.min.js.map
//# sourceMappingURL=cross-domain-safe-weakmap.min.js.map

@@ -1,24 +0,7 @@

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _interface = require('./interface');
// eslint-disable-next-line import/no-namespace
import * as INTERFACE from './interface';
Object.keys(_interface).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function get() {
return _interface[key];
}
});
});
var INTERFACE = _interopRequireWildcard(_interface);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
// eslint-disable-next-line import/no-namespace
exports['default'] = INTERFACE;
export * from './interface';
export default INTERFACE;

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

'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _weakmap = require('./weakmap');
Object.defineProperty(exports, 'WeakMap', {
enumerable: true,
get: function get() {
return _weakmap.CrossDomainSafeWeakMap;
}
});
export { CrossDomainSafeWeakMap as WeakMap } from './weakmap';

@@ -1,9 +0,3 @@

'use strict';
export function hasNativeWeakMap() {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.hasNativeWeakMap = hasNativeWeakMap;
function hasNativeWeakMap() {
if (!window.WeakMap) {

@@ -10,0 +4,0 @@ return false;

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

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.safeIndexOf = safeIndexOf;
exports.noop = noop;
function safeIndexOf(collection, item) {
export function safeIndexOf(collection, item) {
for (var i = 0; i < collection.length; i++) {

@@ -24,4 +17,4 @@

// eslint-disable-next-line no-unused-vars
function noop() {
export function noop() {
// pass
}

@@ -1,22 +0,12 @@

'use strict';
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CrossDomainSafeWeakMap = undefined;
import { isWindow, isWindowClosed } from 'cross-domain-utils/src';
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
import { hasNativeWeakMap } from './native';
import { noop, safeIndexOf } from './util';
var _src = require('cross-domain-utils/src');
var _native = require('./native');
var _util = require('./util');
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var defineProperty = Object.defineProperty;
var counter = Date.now() % 1e9;
var CrossDomainSafeWeakMap = exports.CrossDomainSafeWeakMap = function () {
export var CrossDomainSafeWeakMap = function () {
function CrossDomainSafeWeakMap() {

@@ -30,3 +20,3 @@ _classCallCheck(this, CrossDomainSafeWeakMap);

if ((0, _native.hasNativeWeakMap)()) {
if (hasNativeWeakMap()) {
try {

@@ -43,210 +33,213 @@ this.weakmap = new window.WeakMap();

_createClass(CrossDomainSafeWeakMap, [{
key: '_cleanupClosedWindows',
value: function _cleanupClosedWindows() {
CrossDomainSafeWeakMap.prototype._cleanupClosedWindows = function _cleanupClosedWindows() {
var weakmap = this.weakmap;
var keys = this.keys;
var weakmap = this.weakmap;
var keys = this.keys;
for (var i = 0; i < keys.length; i++) {
var value = keys[i];
for (var i = 0; i < keys.length; i++) {
var value = keys[i];
if ((0, _src.isWindow)(value) && (0, _src.isWindowClosed)(value)) {
if (isWindow(value) && isWindowClosed(value)) {
if (weakmap) {
try {
weakmap['delete'](value);
} catch (err) {
// pass
}
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;
}
}
}, {
key: 'isSafeToReadWrite',
value: function isSafeToReadWrite(key) {
};
if ((0, _src.isWindow)(key)) {
return false;
}
CrossDomainSafeWeakMap.prototype.isSafeToReadWrite = function isSafeToReadWrite(key) {
try {
(0, _util.noop)(key && key.self);
(0, _util.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;
}
}, {
key: 'set',
value: 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');
}
var weakmap = this.weakmap;
if (weakmap) {
try {
weakmap.set(key, value);
} catch (err) {
delete this.weakmap;
}
}
if (!this.isSafeToReadWrite(key)) {
if (!this.isSafeToReadWrite(key)) {
this._cleanupClosedWindows();
this._cleanupClosedWindows();
var keys = this.keys;
var values = this.values;
var index = (0, _util.safeIndexOf)(keys, key);
var keys = this.keys;
var values = this.values;
var index = safeIndexOf(keys, key);
if (index === -1) {
keys.push(key);
values.push(value);
} else {
values[index] = value;
}
if (index === -1) {
keys.push(key);
values.push(value);
} else {
values[index] = value;
}
} else {
var name = this.name;
var entry = key[name];
var name = this.name;
var entry = key[name];
if (entry && entry[0] === key) {
entry[1] = value;
} else {
defineProperty(key, name, {
value: [key, value],
writable: true
});
}
if (entry && entry[0] === key) {
entry[1] = value;
} else {
defineProperty(key, name, {
value: [key, value],
writable: true
});
}
}
}, {
key: 'get',
value: function get(key) {
};
if (!key) {
throw new Error('WeakMap expected key');
}
CrossDomainSafeWeakMap.prototype.get = function get(key) {
var weakmap = this.weakmap;
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 (weakmap) {
try {
if (weakmap.has(key)) {
return weakmap.get(key);
}
} catch (err) {
delete this.weakmap;
}
}
if (!this.isSafeToReadWrite(key)) {
if (!this.isSafeToReadWrite(key)) {
this._cleanupClosedWindows();
this._cleanupClosedWindows();
var keys = this.keys;
var index = (0, _util.safeIndexOf)(keys, key);
var keys = this.keys;
var index = safeIndexOf(keys, key);
if (index === -1) {
return;
}
if (index === -1) {
return;
}
return this.values[index];
} else {
return this.values[index];
} else {
var entry = key[this.name];
var entry = key[this.name];
if (entry && entry[0] === key) {
return entry[1];
}
if (entry && entry[0] === key) {
return entry[1];
}
}
}, {
key: 'delete',
value: function _delete(key) {
};
if (!key) {
throw new Error('WeakMap expected key');
}
CrossDomainSafeWeakMap.prototype['delete'] = function _delete(key) {
var weakmap = this.weakmap;
if (!key) {
throw new Error('WeakMap expected key');
}
if (weakmap) {
try {
weakmap['delete'](key);
} catch (err) {
delete this.weakmap;
}
var weakmap = this.weakmap;
if (weakmap) {
try {
weakmap['delete'](key);
} catch (err) {
delete this.weakmap;
}
}
if (!this.isSafeToReadWrite(key)) {
if (!this.isSafeToReadWrite(key)) {
this._cleanupClosedWindows();
this._cleanupClosedWindows();
var keys = this.keys;
var index = (0, _util.safeIndexOf)(keys, key);
var keys = this.keys;
var index = safeIndexOf(keys, key);
if (index !== -1) {
keys.splice(index, 1);
this.values.splice(index, 1);
}
} else {
if (index !== -1) {
keys.splice(index, 1);
this.values.splice(index, 1);
}
} else {
var entry = key[this.name];
var entry = key[this.name];
if (entry && entry[0] === key) {
entry[0] = entry[1] = undefined;
}
if (entry && entry[0] === key) {
entry[0] = entry[1] = undefined;
}
}
}, {
key: 'has',
value: function has(key) {
};
if (!key) {
throw new Error('WeakMap expected key');
}
CrossDomainSafeWeakMap.prototype.has = function has(key) {
var weakmap = this.weakmap;
if (!key) {
throw new Error('WeakMap expected key');
}
if (weakmap) {
try {
return weakmap.has(key);
} catch (err) {
delete this.weakmap;
}
var weakmap = this.weakmap;
if (weakmap) {
try {
return weakmap.has(key);
} catch (err) {
delete this.weakmap;
}
}
if (!this.isSafeToReadWrite(key)) {
if (!this.isSafeToReadWrite(key)) {
this._cleanupClosedWindows();
this._cleanupClosedWindows();
var index = (0, _util.safeIndexOf)(this.keys, key);
return index !== -1;
} else {
var index = safeIndexOf(this.keys, key);
return index !== -1;
} else {
var entry = key[this.name];
var entry = key[this.name];
if (entry && entry[0] === key) {
return true;
}
if (entry && entry[0] === key) {
return true;
}
return false;
}
return false;
}
}]);
};
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;
}();
{
"name": "cross-domain-safe-weakmap",
"version": "1.0.20",
"version": "1.0.21",
"description": "Cross domain safe WeakMap.",

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

@@ -238,2 +238,13 @@ /* @flow */

}
getOrSet(key : K, getter : () => V) : V {
if (this.has(key)) {
// $FlowFixMe
return this.get(key);
}
let value = getter();
this.set(key, value);
return value;
}
}

Sorry, the diff of this file is not supported yet

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