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

@locker/shared-dom

Package Overview
Dependencies
Maintainers
7
Versions
238
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@locker/shared-dom - npm Package Compare versions

Comparing version 0.14.20 to 0.14.21

types/DOMImplementation.d.ts

250

dist/index.cjs.js

@@ -39,3 +39,31 @@ /*!

}
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __classPrivateFieldGet(receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}
function __classPrivateFieldSet(receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
}
const {

@@ -52,3 +80,5 @@ get: DocumentProtoCookieGetter,

const DocumentProtoBodyGetter = shared.ObjectLookupOwnGetter(Document.prototype, 'body');
const DocumentProtoDocumentElementGetter = shared.ObjectLookupOwnGetter(Document.prototype, 'documentElement');
const DocumentProtoHeadGetter = shared.ObjectLookupOwnGetter(Document.prototype, 'head');
const DocumentProtoImplementationGetter = shared.ObjectLookupOwnGetter(Document.prototype, 'implementation');
const {

@@ -70,2 +100,6 @@ execCommand: DocumentProtoExecCommand

function DocumentImplementation(doc) {
return shared.ReflectApply(DocumentProtoImplementationGetter, doc, shared.emptyArray);
}
function DocumentCreateComment(doc, data = '') {

@@ -83,2 +117,6 @@ return shared.ReflectApply(DocumentProtoCreateComment, doc, [data]);

function DocumentDocumentElementGetter(doc) {
return shared.ReflectApply(DocumentProtoDocumentElementGetter, doc, shared.emptyArray);
}
function DocumentGetElementById(doc, id) {

@@ -102,3 +140,2 @@ return shared.ReflectApply(DocumentProtoGetElementById, doc, [id]);

attachShadow: ElementProtoAttachShadow,
insertAdjacentHTML: ElementProtoInsertAdjacentHTML,
setAttribute: ElementProtoSetAttribute,

@@ -126,2 +163,3 @@ setAttributeNS: ElementProtoSetAttributeNS,

const ElementProtoAttributesGetter = shared.ObjectLookupOwnGetter(Element.prototype, 'attributes');
const ElementProtoGetNamespaceURI = shared.ObjectLookupOwnGetter(Element.prototype, 'namespaceURI');

@@ -188,2 +226,6 @@ function ElementClosest(el, selectors) {

function ElementGetNamespaceURI(el) {
return shared.ReflectApply(ElementProtoGetNamespaceURI, el, shared.emptyArray);
}
const HTMLTemplateElementProtoContentGetter = shared.ObjectLookupOwnGetter(HTMLTemplateElement.prototype, 'content');

@@ -245,7 +287,3 @@

const {
document: document$1
} = window;
const leftTpl = DocumentCreateElement(document$1, 'template');
const rightTpl = DocumentCreateElement(document$1, 'template');
var _Validator_document, _Validator_constructors, _Validator_templates;

@@ -276,10 +314,59 @@ function deepIsEqualNode(leftRoot, rightRoot) {

function isEqualDomString(leftString, rightString) {
ElementInnerHTMLSetter(leftTpl, leftString);
ElementInnerHTMLSetter(rightTpl, rightString);
return deepIsEqualNode(leftTpl, rightTpl);
const globalObjectToValidatorMap = new shared.WeakMapCtor();
class Validator {
constructor(globalObject) {
_Validator_document.set(this, void 0);
_Validator_constructors.set(this, void 0);
_Validator_templates.set(this, void 0);
this.isEqualDomString = (leftString, rightString) => {
ElementInnerHTMLSetter(__classPrivateFieldGet(this, _Validator_templates, "f").left, leftString);
ElementInnerHTMLSetter(__classPrivateFieldGet(this, _Validator_templates, "f").right, rightString);
return deepIsEqualNode(__classPrivateFieldGet(this, _Validator_templates, "f").left, __classPrivateFieldGet(this, _Validator_templates, "f").right);
};
this.isSharedElement = element => element === DocumentHeadGetter(__classPrivateFieldGet(this, _Validator_document, "f")) || element === DocumentBodyGetter(__classPrivateFieldGet(this, _Validator_document, "f")) || element === DocumentDocumentElementGetter(__classPrivateFieldGet(this, _Validator_document, "f"));
this.isSharedElementChild = element => element instanceof __classPrivateFieldGet(this, _Validator_constructors, "f").HTMLLinkElement || element instanceof __classPrivateFieldGet(this, _Validator_constructors, "f").HTMLScriptElement;
this.isMediaSourceObject = object => // MediaSource may not be defined in some browsers
__classPrivateFieldGet(this, _Validator_constructors, "f").MediaSource && object instanceof __classPrivateFieldGet(this, _Validator_constructors, "f").MediaSource;
const {
document,
HTMLLinkElement,
HTMLScriptElement,
MediaSource
} = globalObject;
__classPrivateFieldSet(this, _Validator_constructors, {
HTMLLinkElement,
HTMLScriptElement,
MediaSource
}, "f");
__classPrivateFieldSet(this, _Validator_document, document, "f");
__classPrivateFieldSet(this, _Validator_templates, {
left: DocumentCreateElement(__classPrivateFieldGet(this, _Validator_document, "f"), 'template'),
right: DocumentCreateElement(__classPrivateFieldGet(this, _Validator_document, "f"), 'template')
}, "f");
}
}
function isSharedElement(element, doc = document$1) {
return element === DocumentHeadGetter(doc) || element === DocumentBodyGetter(doc);
_Validator_document = new WeakMap(), _Validator_constructors = new WeakMap(), _Validator_templates = new WeakMap();
function getValidator(globalObject) {
let validator = shared.WeakMapGet(globalObjectToValidatorMap, globalObject);
if (!validator) {
validator = new Validator(globalObject);
shared.WeakMapSet(globalObjectToValidatorMap, globalObject, validator);
}
return validator;
}

@@ -335,2 +422,13 @@

const {
createDocument: DOMImplementationProtoCreateDocument
} = DOMImplementation.prototype;
function DOMImplementationCreateDocument(domImplementation, ...args) {
return shared.ReflectApply(DOMImplementationProtoCreateDocument, domImplementation, args);
}
const {
parseFromString: DOMParserProtoParseFromString
} = DOMParser.prototype;
const DOMTokenListProtoValueGetter = shared.ObjectLookupOwnGetter(DOMTokenList.prototype, 'value');

@@ -479,2 +577,6 @@

} = NamedNodeMap.prototype;
const NAMESPACE_DEFAULT = 'default';
const NAMESPACE_SVG = 'http://www.w3.org/2000/svg';
const NAMESPACE_XHTML = 'http://www.w3.org/1999/xhtml';
const NAMESPACE_XLINK = 'http://www.w3.org/1999/xlink';
const {

@@ -492,2 +594,10 @@ createContextualFragment: RangeProtoCreateContextualFragment

const {
set: ShadowRootProtoInnerHTMLSetter
} = shared.ReflectGetOwnPropertyDescriptor(ShadowRoot.prototype, 'innerHTML');
function ShadowRootInnerHTMLSetter(el, html) {
shared.ReflectApply(ShadowRootProtoInnerHTMLSetter, el, [html]);
}
const {
key: StorageProtoKey,

@@ -499,12 +609,11 @@ getItem: StorageProtoGetItem,

/**
* The following provides a temporary solution to handle
* "Magic Object" behavior in Safari prior to version 15.
* The following detection is part of a temporary solution to handle
* "Magic Object" behavior in Safari <= 14.
*
* Properties of HTMLElement.prototype.style will lose their
* "magic" (ie. updating the element's style="" attribute) if
* a style property is written via Define Property operation.
* Properties of HTMLElement.prototype.style, and other CSS style declaration
* objects, will lose their "magic" (i.e. updating the element's style="" attribute)
* if a style property is assigned by a Define Property operation.
*
* In order to prevent near-membrane from using Reflect.defineProperty,
* we must send a signal that tells it to use Reflect.set in very
* limited special cases.
* This marker will signal to the membrane that it must use a Set operation,
* instead of a Define Property operation.
*

@@ -516,2 +625,4 @@ */

shared.ReflectDefineProperty(div.style, 'color', {
// @ts-ignore: TS doesn't like __proto__ on property descriptors.
__proto__: null,
value: 'red'

@@ -532,3 +643,3 @@ });

} = URL;
const ALLOW_LIST_PATCHED = ['opener', 'parent', 'postMessage'];
const ALLOW_LIST_PATCHED = ['opener', 'parent'];
const ALLOW_LIST_RAW = ['close', 'closed', 'focus'];

@@ -568,29 +679,34 @@ const DEFAULT_OVERWRITTEN_VALUE = {};

const key = ALLOW_LIST_RAW[i];
const originalDescriptor = shared.ReflectGetOwnPropertyDescriptor(rawWindow, key);
const unsafeDesc = shared.ReflectGetOwnPropertyDescriptor(rawWindow, key);
if (originalDescriptor) {
shared.ReflectSetPrototypeOf(originalDescriptor, null);
if (unsafeDesc) {
const safeDesc = shared.toSafeDescriptor(unsafeDesc);
const {
value: originalValue
} = originalDescriptor;
} = safeDesc;
if (typeof originalValue === 'function') {
const bound = shared.FunctionBind(originalValue, rawWindow);
shared.ReflectDefineProperty(bound, 'name', shared.ReflectGetOwnPropertyDescriptor(originalValue, 'name'));
originalDescriptor.value = bound;
const unsafeNameDesc = shared.ReflectGetOwnPropertyDescriptor(originalValue, 'name');
if (unsafeNameDesc) {
shared.ReflectDefineProperty(bound, 'name', shared.toSafeDescriptor(unsafeNameDesc));
}
unsafeDesc.value = bound;
} else {
const {
get: originalDescriptorGetter,
set: originalDescriptorSetter
} = originalDescriptor;
get: getter,
set: setter
} = safeDesc;
let overwrittenValue = DEFAULT_OVERWRITTEN_VALUE;
if (typeof originalDescriptorGetter === 'function') {
originalDescriptor.get = function get() {
return overwrittenValue === DEFAULT_OVERWRITTEN_VALUE ? shared.ReflectApply(originalDescriptorGetter, rawWindow, shared.emptyArray) : overwrittenValue;
if (typeof getter === 'function') {
safeDesc.get = function get() {
return overwrittenValue === DEFAULT_OVERWRITTEN_VALUE ? shared.ReflectApply(getter, rawWindow, shared.emptyArray) : overwrittenValue;
};
}
if (typeof originalDescriptorSetter === 'function') {
originalDescriptor.set = function set(value) {
if (typeof setter === 'function') {
safeDesc.set = function set(value) {
overwrittenValue = value;

@@ -601,3 +717,3 @@ };

shared.ReflectDefineProperty(patchedWindow, key, originalDescriptor);
shared.ReflectDefineProperty(patchedWindow, key, safeDesc);
}

@@ -608,17 +724,16 @@ }

const key = ALLOW_LIST_PATCHED[i];
const originalDescriptor = shared.ReflectGetOwnPropertyDescriptor(rawWindow, key);
const unsafeDesc = shared.ReflectGetOwnPropertyDescriptor(rawWindow, key);
if (originalDescriptor) {
shared.ReflectSetPrototypeOf(originalDescriptor, null);
if (unsafeDesc) {
const safeDesc = shared.toSafeDescriptor(unsafeDesc);
const {
get: originalDescriptorGetter,
set: originalDescriptorSetter,
value: originalDescriptorValue
} = originalDescriptor;
get: getter,
set: setter
} = safeDesc;
let overwrittenValue = DEFAULT_OVERWRITTEN_VALUE;
if (typeof originalDescriptorGetter === 'function') {
originalDescriptor.get = function get() {
if (typeof getter === 'function') {
safeDesc.get = function get() {
if (overwrittenValue === DEFAULT_OVERWRITTEN_VALUE) {
return getPatchedWindow(shared.ReflectApply(originalDescriptorGetter, rawWindow, shared.emptyArray));
return getPatchedWindow(shared.ReflectApply(getter, rawWindow, shared.emptyArray));
}

@@ -630,4 +745,4 @@

if (typeof originalDescriptorSetter === 'function') {
originalDescriptor.set = function set(value) {
if (typeof setter === 'function') {
safeDesc.set = function set(value) {
overwrittenValue = value;

@@ -637,10 +752,21 @@ };

if (key === 'postMessage' && typeof originalDescriptorValue === 'function') {
originalDescriptor.value = function postMessage(...args) {
return shared.ReflectApply(patchedWindowPostMessageValue, rawWindow, args);
};
}
shared.ReflectDefineProperty(patchedWindow, key, safeDesc);
}
}
shared.ReflectDefineProperty(patchedWindow, key, originalDescriptor);
const unsafePostMessageDesc = shared.ReflectGetOwnPropertyDescriptor(rawWindow, 'postMessage');
if (unsafePostMessageDesc) {
const safeDesc = shared.toSafeDescriptor(unsafePostMessageDesc);
const {
value: originalValue
} = safeDesc;
if (typeof originalValue === 'function') {
safeDesc.value = function postMessage(...args) {
return shared.ReflectApply(patchedWindowPostMessageValue, rawWindow, args);
};
}
shared.ReflectDefineProperty(patchedWindow, 'postMessage', safeDesc);
}

@@ -780,2 +906,4 @@

exports.CustomElementRegistryProtoGet = CustomElementRegistryProtoGet;
exports.DOMImplementationCreateDocument = DOMImplementationCreateDocument;
exports.DOMParserProtoParseFromString = DOMParserProtoParseFromString;
exports.DOMTokenListValueGetter = DOMTokenListValueGetter;

@@ -788,5 +916,7 @@ exports.DocumentBodyGetter = DocumentBodyGetter;

exports.DocumentCreateElementNS = DocumentCreateElementNS;
exports.DocumentDocumentElementGetter = DocumentDocumentElementGetter;
exports.DocumentFragmentGetElementById = DocumentFragmentGetElementById;
exports.DocumentGetElementById = DocumentGetElementById;
exports.DocumentHeadGetter = DocumentHeadGetter;
exports.DocumentImplementation = DocumentImplementation;
exports.DocumentProtoExecCommand = DocumentProtoExecCommand;

@@ -797,2 +927,3 @@ exports.ElementAttributesGetter = ElementAttributesGetter;

exports.ElementGetAttributeNodeNS = ElementGetAttributeNodeNS;
exports.ElementGetNamespaceURI = ElementGetNamespaceURI;
exports.ElementInnerHTMLGetter = ElementInnerHTMLGetter;

@@ -803,3 +934,2 @@ exports.ElementInnerHTMLSetter = ElementInnerHTMLSetter;

exports.ElementProtoAttachShadow = ElementProtoAttachShadow;
exports.ElementProtoInsertAdjacentHTML = ElementProtoInsertAdjacentHTML;
exports.ElementProtoSetAttribute = ElementProtoSetAttribute;

@@ -842,2 +972,6 @@ exports.ElementProtoSetAttributeNS = ElementProtoSetAttributeNS;

exports.MessageEventSourceGetter = MessageEventSourceGetter;
exports.NAMESPACE_DEFAULT = NAMESPACE_DEFAULT;
exports.NAMESPACE_SVG = NAMESPACE_SVG;
exports.NAMESPACE_XHTML = NAMESPACE_XHTML;
exports.NAMESPACE_XLINK = NAMESPACE_XLINK;
exports.NamedNodeMapProtoSetNamedItem = NamedNodeMapProtoSetNamedItem;

@@ -856,2 +990,3 @@ exports.NodeAppendChild = NodeAppendChild;

exports.SVGElementDatasetGetter = SVGElementDatasetGetter;
exports.ShadowRootInnerHTMLSetter = ShadowRootInnerHTMLSetter;
exports.StorageProtoGetItem = StorageProtoGetItem;

@@ -883,4 +1018,3 @@ exports.StorageProtoKey = StorageProtoKey;

exports.getPatchedWindow = getPatchedWindow;
exports.isEqualDomString = isEqualDomString;
exports.isSharedElement = isSharedElement;
exports.getValidator = getValidator;
exports.isWindow = isWindow;

@@ -891,2 +1025,2 @@ exports.isWindowLike = isWindowLike;

exports.patchedWindowPostMessageValue = patchedWindowPostMessageValue;
/*! version: 0.14.20 */
/*! version: 0.14.21 */
/*!
* Copyright (C) 2019 salesforce.com, inc.
*/
import { ObjectLookupOwnGetter, ReflectGetOwnPropertyDescriptor, ReflectApply, emptyArray, ObjectLookupOwnSetter, StringToUpperCase, JSONParse, JSONStringify, StringToLowerCase, ObjectLookupOwnValue, ReflectDefineProperty, WeakMapCtor, isObject, WeakMapGet, WeakMapSet, ObjectHasOwnProperty, ReflectSetPrototypeOf, FunctionBind } from '@locker/shared';
import { ObjectLookupOwnGetter, ReflectGetOwnPropertyDescriptor, ReflectApply, emptyArray, ObjectLookupOwnSetter, StringToUpperCase, WeakMapCtor, WeakMapGet, WeakMapSet, JSONParse, JSONStringify, StringToLowerCase, ObjectLookupOwnValue, ReflectDefineProperty, isObject, ObjectHasOwnProperty, toSafeDescriptor, FunctionBind } from '@locker/shared';
const AttrProtoNameGetter = ObjectLookupOwnGetter(Attr.prototype, 'name');

@@ -32,3 +32,31 @@ const AttrProtoNamespaceURIGetter = ObjectLookupOwnGetter(Attr.prototype, 'namespaceURI');

}
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
function __classPrivateFieldGet(receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}
function __classPrivateFieldSet(receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
}
const {

@@ -45,3 +73,5 @@ get: DocumentProtoCookieGetter,

const DocumentProtoBodyGetter = ObjectLookupOwnGetter(Document.prototype, 'body');
const DocumentProtoDocumentElementGetter = ObjectLookupOwnGetter(Document.prototype, 'documentElement');
const DocumentProtoHeadGetter = ObjectLookupOwnGetter(Document.prototype, 'head');
const DocumentProtoImplementationGetter = ObjectLookupOwnGetter(Document.prototype, 'implementation');
const {

@@ -63,2 +93,6 @@ execCommand: DocumentProtoExecCommand

function DocumentImplementation(doc) {
return ReflectApply(DocumentProtoImplementationGetter, doc, emptyArray);
}
function DocumentCreateComment(doc, data = '') {

@@ -76,2 +110,6 @@ return ReflectApply(DocumentProtoCreateComment, doc, [data]);

function DocumentDocumentElementGetter(doc) {
return ReflectApply(DocumentProtoDocumentElementGetter, doc, emptyArray);
}
function DocumentGetElementById(doc, id) {

@@ -95,3 +133,2 @@ return ReflectApply(DocumentProtoGetElementById, doc, [id]);

attachShadow: ElementProtoAttachShadow,
insertAdjacentHTML: ElementProtoInsertAdjacentHTML,
setAttribute: ElementProtoSetAttribute,

@@ -119,2 +156,3 @@ setAttributeNS: ElementProtoSetAttributeNS,

const ElementProtoAttributesGetter = ObjectLookupOwnGetter(Element.prototype, 'attributes');
const ElementProtoGetNamespaceURI = ObjectLookupOwnGetter(Element.prototype, 'namespaceURI');

@@ -181,2 +219,6 @@ function ElementClosest(el, selectors) {

function ElementGetNamespaceURI(el) {
return ReflectApply(ElementProtoGetNamespaceURI, el, emptyArray);
}
const HTMLTemplateElementProtoContentGetter = ObjectLookupOwnGetter(HTMLTemplateElement.prototype, 'content');

@@ -238,7 +280,3 @@

const {
document: document$1
} = window;
const leftTpl = DocumentCreateElement(document$1, 'template');
const rightTpl = DocumentCreateElement(document$1, 'template');
var _Validator_document, _Validator_constructors, _Validator_templates;

@@ -269,10 +307,59 @@ function deepIsEqualNode(leftRoot, rightRoot) {

function isEqualDomString(leftString, rightString) {
ElementInnerHTMLSetter(leftTpl, leftString);
ElementInnerHTMLSetter(rightTpl, rightString);
return deepIsEqualNode(leftTpl, rightTpl);
const globalObjectToValidatorMap = new WeakMapCtor();
class Validator {
constructor(globalObject) {
_Validator_document.set(this, void 0);
_Validator_constructors.set(this, void 0);
_Validator_templates.set(this, void 0);
this.isEqualDomString = (leftString, rightString) => {
ElementInnerHTMLSetter(__classPrivateFieldGet(this, _Validator_templates, "f").left, leftString);
ElementInnerHTMLSetter(__classPrivateFieldGet(this, _Validator_templates, "f").right, rightString);
return deepIsEqualNode(__classPrivateFieldGet(this, _Validator_templates, "f").left, __classPrivateFieldGet(this, _Validator_templates, "f").right);
};
this.isSharedElement = element => element === DocumentHeadGetter(__classPrivateFieldGet(this, _Validator_document, "f")) || element === DocumentBodyGetter(__classPrivateFieldGet(this, _Validator_document, "f")) || element === DocumentDocumentElementGetter(__classPrivateFieldGet(this, _Validator_document, "f"));
this.isSharedElementChild = element => element instanceof __classPrivateFieldGet(this, _Validator_constructors, "f").HTMLLinkElement || element instanceof __classPrivateFieldGet(this, _Validator_constructors, "f").HTMLScriptElement;
this.isMediaSourceObject = object => // MediaSource may not be defined in some browsers
__classPrivateFieldGet(this, _Validator_constructors, "f").MediaSource && object instanceof __classPrivateFieldGet(this, _Validator_constructors, "f").MediaSource;
const {
document,
HTMLLinkElement,
HTMLScriptElement,
MediaSource
} = globalObject;
__classPrivateFieldSet(this, _Validator_constructors, {
HTMLLinkElement,
HTMLScriptElement,
MediaSource
}, "f");
__classPrivateFieldSet(this, _Validator_document, document, "f");
__classPrivateFieldSet(this, _Validator_templates, {
left: DocumentCreateElement(__classPrivateFieldGet(this, _Validator_document, "f"), 'template'),
right: DocumentCreateElement(__classPrivateFieldGet(this, _Validator_document, "f"), 'template')
}, "f");
}
}
function isSharedElement(element, doc = document$1) {
return element === DocumentHeadGetter(doc) || element === DocumentBodyGetter(doc);
_Validator_document = new WeakMap(), _Validator_constructors = new WeakMap(), _Validator_templates = new WeakMap();
function getValidator(globalObject) {
let validator = WeakMapGet(globalObjectToValidatorMap, globalObject);
if (!validator) {
validator = new Validator(globalObject);
WeakMapSet(globalObjectToValidatorMap, globalObject, validator);
}
return validator;
}

@@ -328,2 +415,13 @@

const {
createDocument: DOMImplementationProtoCreateDocument
} = DOMImplementation.prototype;
function DOMImplementationCreateDocument(domImplementation, ...args) {
return ReflectApply(DOMImplementationProtoCreateDocument, domImplementation, args);
}
const {
parseFromString: DOMParserProtoParseFromString
} = DOMParser.prototype;
const DOMTokenListProtoValueGetter = ObjectLookupOwnGetter(DOMTokenList.prototype, 'value');

@@ -472,2 +570,6 @@

} = NamedNodeMap.prototype;
const NAMESPACE_DEFAULT = 'default';
const NAMESPACE_SVG = 'http://www.w3.org/2000/svg';
const NAMESPACE_XHTML = 'http://www.w3.org/1999/xhtml';
const NAMESPACE_XLINK = 'http://www.w3.org/1999/xlink';
const {

@@ -485,2 +587,10 @@ createContextualFragment: RangeProtoCreateContextualFragment

const {
set: ShadowRootProtoInnerHTMLSetter
} = ReflectGetOwnPropertyDescriptor(ShadowRoot.prototype, 'innerHTML');
function ShadowRootInnerHTMLSetter(el, html) {
ReflectApply(ShadowRootProtoInnerHTMLSetter, el, [html]);
}
const {
key: StorageProtoKey,

@@ -492,12 +602,11 @@ getItem: StorageProtoGetItem,

/**
* The following provides a temporary solution to handle
* "Magic Object" behavior in Safari prior to version 15.
* The following detection is part of a temporary solution to handle
* "Magic Object" behavior in Safari <= 14.
*
* Properties of HTMLElement.prototype.style will lose their
* "magic" (ie. updating the element's style="" attribute) if
* a style property is written via Define Property operation.
* Properties of HTMLElement.prototype.style, and other CSS style declaration
* objects, will lose their "magic" (i.e. updating the element's style="" attribute)
* if a style property is assigned by a Define Property operation.
*
* In order to prevent near-membrane from using Reflect.defineProperty,
* we must send a signal that tells it to use Reflect.set in very
* limited special cases.
* This marker will signal to the membrane that it must use a Set operation,
* instead of a Define Property operation.
*

@@ -509,2 +618,4 @@ */

ReflectDefineProperty(div.style, 'color', {
// @ts-ignore: TS doesn't like __proto__ on property descriptors.
__proto__: null,
value: 'red'

@@ -525,3 +636,3 @@ });

} = URL;
const ALLOW_LIST_PATCHED = ['opener', 'parent', 'postMessage'];
const ALLOW_LIST_PATCHED = ['opener', 'parent'];
const ALLOW_LIST_RAW = ['close', 'closed', 'focus'];

@@ -561,29 +672,34 @@ const DEFAULT_OVERWRITTEN_VALUE = {};

const key = ALLOW_LIST_RAW[i];
const originalDescriptor = ReflectGetOwnPropertyDescriptor(rawWindow, key);
const unsafeDesc = ReflectGetOwnPropertyDescriptor(rawWindow, key);
if (originalDescriptor) {
ReflectSetPrototypeOf(originalDescriptor, null);
if (unsafeDesc) {
const safeDesc = toSafeDescriptor(unsafeDesc);
const {
value: originalValue
} = originalDescriptor;
} = safeDesc;
if (typeof originalValue === 'function') {
const bound = FunctionBind(originalValue, rawWindow);
ReflectDefineProperty(bound, 'name', ReflectGetOwnPropertyDescriptor(originalValue, 'name'));
originalDescriptor.value = bound;
const unsafeNameDesc = ReflectGetOwnPropertyDescriptor(originalValue, 'name');
if (unsafeNameDesc) {
ReflectDefineProperty(bound, 'name', toSafeDescriptor(unsafeNameDesc));
}
unsafeDesc.value = bound;
} else {
const {
get: originalDescriptorGetter,
set: originalDescriptorSetter
} = originalDescriptor;
get: getter,
set: setter
} = safeDesc;
let overwrittenValue = DEFAULT_OVERWRITTEN_VALUE;
if (typeof originalDescriptorGetter === 'function') {
originalDescriptor.get = function get() {
return overwrittenValue === DEFAULT_OVERWRITTEN_VALUE ? ReflectApply(originalDescriptorGetter, rawWindow, emptyArray) : overwrittenValue;
if (typeof getter === 'function') {
safeDesc.get = function get() {
return overwrittenValue === DEFAULT_OVERWRITTEN_VALUE ? ReflectApply(getter, rawWindow, emptyArray) : overwrittenValue;
};
}
if (typeof originalDescriptorSetter === 'function') {
originalDescriptor.set = function set(value) {
if (typeof setter === 'function') {
safeDesc.set = function set(value) {
overwrittenValue = value;

@@ -594,3 +710,3 @@ };

ReflectDefineProperty(patchedWindow, key, originalDescriptor);
ReflectDefineProperty(patchedWindow, key, safeDesc);
}

@@ -601,17 +717,16 @@ }

const key = ALLOW_LIST_PATCHED[i];
const originalDescriptor = ReflectGetOwnPropertyDescriptor(rawWindow, key);
const unsafeDesc = ReflectGetOwnPropertyDescriptor(rawWindow, key);
if (originalDescriptor) {
ReflectSetPrototypeOf(originalDescriptor, null);
if (unsafeDesc) {
const safeDesc = toSafeDescriptor(unsafeDesc);
const {
get: originalDescriptorGetter,
set: originalDescriptorSetter,
value: originalDescriptorValue
} = originalDescriptor;
get: getter,
set: setter
} = safeDesc;
let overwrittenValue = DEFAULT_OVERWRITTEN_VALUE;
if (typeof originalDescriptorGetter === 'function') {
originalDescriptor.get = function get() {
if (typeof getter === 'function') {
safeDesc.get = function get() {
if (overwrittenValue === DEFAULT_OVERWRITTEN_VALUE) {
return getPatchedWindow(ReflectApply(originalDescriptorGetter, rawWindow, emptyArray));
return getPatchedWindow(ReflectApply(getter, rawWindow, emptyArray));
}

@@ -623,4 +738,4 @@

if (typeof originalDescriptorSetter === 'function') {
originalDescriptor.set = function set(value) {
if (typeof setter === 'function') {
safeDesc.set = function set(value) {
overwrittenValue = value;

@@ -630,10 +745,21 @@ };

if (key === 'postMessage' && typeof originalDescriptorValue === 'function') {
originalDescriptor.value = function postMessage(...args) {
return ReflectApply(patchedWindowPostMessageValue, rawWindow, args);
};
}
ReflectDefineProperty(patchedWindow, key, safeDesc);
}
}
ReflectDefineProperty(patchedWindow, key, originalDescriptor);
const unsafePostMessageDesc = ReflectGetOwnPropertyDescriptor(rawWindow, 'postMessage');
if (unsafePostMessageDesc) {
const safeDesc = toSafeDescriptor(unsafePostMessageDesc);
const {
value: originalValue
} = safeDesc;
if (typeof originalValue === 'function') {
safeDesc.value = function postMessage(...args) {
return ReflectApply(patchedWindowPostMessageValue, rawWindow, args);
};
}
ReflectDefineProperty(patchedWindow, 'postMessage', safeDesc);
}

@@ -758,3 +884,3 @@

export { AttrNameGetter, AttrNamespaceURIGetter, AttrOwnerElementGetter, AttrValueGetter, AttrValueSetter, BlobCtor, BlobSizeGetter, BlobSlice, BlobTypeGetter, CookieStoreProtoDelete, CookieStoreProtoGet, CookieStoreProtoGetAll, CookieStoreProtoSet, CustomElementRegistryProtoDefine, CustomElementRegistryProtoGet, DOMTokenListValueGetter, DocumentBodyGetter, DocumentCookieGetter, DocumentCookieSetter, DocumentCreateComment, DocumentCreateElement, DocumentCreateElementNS, DocumentFragmentGetElementById, DocumentGetElementById, DocumentHeadGetter, DocumentProtoExecCommand, ElementAttributesGetter, ElementClosest, ElementGetAttributeNode, ElementGetAttributeNodeNS, ElementInnerHTMLGetter, ElementInnerHTMLSetter, ElementOuterHTMLGetter, ElementOuterHTMLSetter, ElementProtoAttachShadow, ElementProtoInsertAdjacentHTML, ElementProtoSetAttribute, ElementProtoSetAttributeNS, ElementProtoSetAttributeNode, ElementQuerySelector, ElementRemove, ElementRemoveAttributeNode, ElementSetAttribute, ElementSetAttributeNS, ElementSetAttributeNode, ElementSetAttributeNodeNS, EventCurrentTargetGetter, EventProtoComposedPath, EventTargetAddEventListener, HAS_BREAKABLE_CSS_STYLE_DECLARATION_MAGIC_OBJECT, HTMLAnchorElementHostnameGetter, HTMLAnchorElementHrefGetter, HTMLAnchorElementHrefSetter, HTMLAnchorElementPathnameGetter, HTMLAnchorElementProtocolGetter, HTMLElementDatasetGetter, HTMLElementInnerTextSetter, HTMLElementOuterTextSetter, HTMLElementStyleGetter, HTMLFrameElementContentDocumentGetter, HTMLFrameElementContentWindowGetter, HTMLIFrameElementContentDocumentGetter, HTMLIFrameElementContentWindowGetter, HTMLIFrameElementSrcSetter, HTMLLinkElementRelListSetter, HTMLLinkElementRelSetter, HTMLObjectElementContentDocumentGetter, HTMLObjectElementContentWindowGetter, HTMLScriptElementProtoSrcGetter, HTMLScriptElementProtoSrcSetter, HTMLTemplateElementContentGetter, JSONClone, MessageEventSourceGetter, NamedNodeMapProtoSetNamedItem, NodeAppendChild, NodeChildNodesGetter, NodeClone, NodeFirstChildGetter, NodeIsEqualNode, NodeLastChildGetter, NodeNameGetter, NodeOwnerDocumentGetter, NodeTextContentSetter, RangeProtoCreateContextualFragment, RequestURLGetter, SVGElementDatasetGetter, StorageProtoGetItem, StorageProtoKey, StorageProtoRemoveItem, StorageProtoSetItem, URLCreateObjectURL, URLRevokeObjectURL, WindowClearInterval, WindowLengthGetter, WindowOpenerGetter, WindowParentGetter, WindowSelfGetter, WindowSetInterval, WindowStaticDecodeURIComponent, WindowStaticEncodeURIComponent, WindowStaticFetch, WindowStaticOpen, WindowStaticSetInterval, WindowStaticSetTimeout, XhrCtor, XhrOpen, XhrProtoOpen, XhrResponseTextGetter, XhrSend, XhrStatusGetter, XhrWithCredentialsSetter, getPatchedWindow, isEqualDomString, isSharedElement, isWindow, isWindowLike, nsCookieKey, nsCookieRootKey, patchedWindowPostMessageValue };
/*! version: 0.14.20 */
export { AttrNameGetter, AttrNamespaceURIGetter, AttrOwnerElementGetter, AttrValueGetter, AttrValueSetter, BlobCtor, BlobSizeGetter, BlobSlice, BlobTypeGetter, CookieStoreProtoDelete, CookieStoreProtoGet, CookieStoreProtoGetAll, CookieStoreProtoSet, CustomElementRegistryProtoDefine, CustomElementRegistryProtoGet, DOMImplementationCreateDocument, DOMParserProtoParseFromString, DOMTokenListValueGetter, DocumentBodyGetter, DocumentCookieGetter, DocumentCookieSetter, DocumentCreateComment, DocumentCreateElement, DocumentCreateElementNS, DocumentDocumentElementGetter, DocumentFragmentGetElementById, DocumentGetElementById, DocumentHeadGetter, DocumentImplementation, DocumentProtoExecCommand, ElementAttributesGetter, ElementClosest, ElementGetAttributeNode, ElementGetAttributeNodeNS, ElementGetNamespaceURI, ElementInnerHTMLGetter, ElementInnerHTMLSetter, ElementOuterHTMLGetter, ElementOuterHTMLSetter, ElementProtoAttachShadow, ElementProtoSetAttribute, ElementProtoSetAttributeNS, ElementProtoSetAttributeNode, ElementQuerySelector, ElementRemove, ElementRemoveAttributeNode, ElementSetAttribute, ElementSetAttributeNS, ElementSetAttributeNode, ElementSetAttributeNodeNS, EventCurrentTargetGetter, EventProtoComposedPath, EventTargetAddEventListener, HAS_BREAKABLE_CSS_STYLE_DECLARATION_MAGIC_OBJECT, HTMLAnchorElementHostnameGetter, HTMLAnchorElementHrefGetter, HTMLAnchorElementHrefSetter, HTMLAnchorElementPathnameGetter, HTMLAnchorElementProtocolGetter, HTMLElementDatasetGetter, HTMLElementInnerTextSetter, HTMLElementOuterTextSetter, HTMLElementStyleGetter, HTMLFrameElementContentDocumentGetter, HTMLFrameElementContentWindowGetter, HTMLIFrameElementContentDocumentGetter, HTMLIFrameElementContentWindowGetter, HTMLIFrameElementSrcSetter, HTMLLinkElementRelListSetter, HTMLLinkElementRelSetter, HTMLObjectElementContentDocumentGetter, HTMLObjectElementContentWindowGetter, HTMLScriptElementProtoSrcGetter, HTMLScriptElementProtoSrcSetter, HTMLTemplateElementContentGetter, JSONClone, MessageEventSourceGetter, NAMESPACE_DEFAULT, NAMESPACE_SVG, NAMESPACE_XHTML, NAMESPACE_XLINK, NamedNodeMapProtoSetNamedItem, NodeAppendChild, NodeChildNodesGetter, NodeClone, NodeFirstChildGetter, NodeIsEqualNode, NodeLastChildGetter, NodeNameGetter, NodeOwnerDocumentGetter, NodeTextContentSetter, RangeProtoCreateContextualFragment, RequestURLGetter, SVGElementDatasetGetter, ShadowRootInnerHTMLSetter, StorageProtoGetItem, StorageProtoKey, StorageProtoRemoveItem, StorageProtoSetItem, URLCreateObjectURL, URLRevokeObjectURL, WindowClearInterval, WindowLengthGetter, WindowOpenerGetter, WindowParentGetter, WindowSelfGetter, WindowSetInterval, WindowStaticDecodeURIComponent, WindowStaticEncodeURIComponent, WindowStaticFetch, WindowStaticOpen, WindowStaticSetInterval, WindowStaticSetTimeout, XhrCtor, XhrOpen, XhrProtoOpen, XhrResponseTextGetter, XhrSend, XhrStatusGetter, XhrWithCredentialsSetter, getPatchedWindow, getValidator, isWindow, isWindowLike, nsCookieKey, nsCookieRootKey, patchedWindowPostMessageValue };
/*! version: 0.14.21 */
{
"name": "@locker/shared-dom",
"version": "0.14.20",
"version": "0.14.21",
"license": "Salesforce Developer Agreement",

@@ -20,3 +20,3 @@ "author": "Salesforce UI Security Team",

"dependencies": {
"@locker/shared": "0.14.20"
"@locker/shared": "0.14.21"
},

@@ -27,3 +27,3 @@ "files": [

],
"gitHead": "293789c383e41efa0b3f2a96e8330e61321e2956"
"gitHead": "fc65225812f2c777feec425d009f8a46032939da"
}

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

export declare function isEqualDomString(leftString: string, rightString: string): boolean;
export declare function isSharedElement(element: Element | HTMLElement | Node, doc?: Document): boolean;
import { GlobalObject } from './types';
export declare function getValidator(globalObject: GlobalObject): any;
export declare function JSONClone(value: any): any;
//# sourceMappingURL=basic.d.ts.map

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

export declare const CustomElementRegistryProtoDefine: (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions | undefined) => void, CustomElementRegistryProtoGet: (name: string) => any;
export declare const CustomElementRegistryProtoDefine: (name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions | undefined) => void, CustomElementRegistryProtoGet: (name: string) => CustomElementConstructor | undefined;
//# sourceMappingURL=CustomElementRegistry.d.ts.map

@@ -5,5 +5,7 @@ export declare const DocumentProtoExecCommand: (commandId: string, showUI?: boolean | undefined, value?: string | undefined) => boolean;

export declare function DocumentCookieSetter(doc: Document, newCookie: string): void;
export declare function DocumentImplementation(doc: Document): typeof Document.prototype.implementation;
export declare function DocumentCreateComment(doc: Document, data?: string): ReturnType<typeof Document.prototype.createComment>;
export declare function DocumentCreateElement(doc: Document, ...args: Parameters<typeof Document.prototype.createElement>): ReturnType<typeof Document.prototype.createElement>;
export declare function DocumentCreateElementNS(doc: Document, ...args: Parameters<typeof Document.prototype.createElementNS>): ReturnType<typeof Document.prototype.createElementNS>;
export declare function DocumentDocumentElementGetter(doc: Document): typeof Document.prototype.documentElement;
export declare function DocumentGetElementById(doc: Document, id: string): ReturnType<typeof Document.prototype.getElementById>;

@@ -10,0 +12,0 @@ export declare function DocumentHeadGetter(doc: Document): typeof Document.prototype.head;

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

export declare const ElementProtoAttachShadow: (init: ShadowRootInit) => ShadowRoot, ElementProtoInsertAdjacentHTML: (where: InsertPosition, html: string) => void, ElementProtoSetAttribute: (qualifiedName: string, value: string) => void, ElementProtoSetAttributeNS: (namespace: string | null, qualifiedName: string, value: string) => void, ElementProtoSetAttributeNode: (attr: Attr) => Attr | null;
export declare const ElementProtoAttachShadow: (init: ShadowRootInit) => ShadowRoot, ElementProtoSetAttribute: (qualifiedName: string, value: string) => void, ElementProtoSetAttributeNS: (namespace: string | null, qualifiedName: string, value: string) => void, ElementProtoSetAttributeNode: (attr: Attr) => Attr | null;
export declare function ElementClosest(el: Element, selectors: string): ReturnType<typeof Element.prototype.closest>;

@@ -11,3 +11,3 @@ export declare function ElementInnerHTMLGetter(el: Element): typeof Element.prototype.innerHTML;

export declare function ElementGetAttributeNodeNS(el: Element, namespace: string, nodeName: string): ReturnType<typeof Element.prototype.getAttributeNodeNS>;
export declare function ElementRemove(el: Element): Element;
export declare function ElementRemove(el: Element): ReturnType<typeof Element.prototype.remove>;
export declare function ElementRemoveAttributeNode(el: Element, attrNode: Attr): ReturnType<typeof Element.prototype.removeAttributeNode>;

@@ -18,2 +18,3 @@ export declare function ElementSetAttribute(el: Element, name: string, value: string): ReturnType<typeof Element.prototype.setAttribute>;

export declare function ElementSetAttributeNS(el: Element, namespace: string, name: string, value: string): ReturnType<typeof Element.prototype.setAttributeNS>;
export declare function ElementGetNamespaceURI(el: Element): typeof Element.prototype.namespaceURI;
//# sourceMappingURL=Element.d.ts.map

@@ -8,2 +8,4 @@ export * from './Attr';

export * from './DocumentFragment';
export * from './DOMImplementation';
export * from './DOMParser';
export * from './DOMTokenList';

@@ -23,5 +25,7 @@ export * from './Element';

export * from './NamedNodeMap';
export * from './namespaces';
export * from './Node';
export * from './Range';
export * from './Request';
export * from './ShadowRoot';
export * from './Storage';

@@ -28,0 +32,0 @@ export * from './support';

/**
* The following provides a temporary solution to handle
* "Magic Object" behavior in Safari prior to version 15.
* The following detection is part of a temporary solution to handle
* "Magic Object" behavior in Safari <= 14.
*
* Properties of HTMLElement.prototype.style will lose their
* "magic" (ie. updating the element's style="" attribute) if
* a style property is written via Define Property operation.
* Properties of HTMLElement.prototype.style, and other CSS style declaration
* objects, will lose their "magic" (i.e. updating the element's style="" attribute)
* if a style property is assigned by a Define Property operation.
*
* In order to prevent near-membrane from using Reflect.defineProperty,
* we must send a signal that tells it to use Reflect.set in very
* limited special cases.
* This marker will signal to the membrane that it must use a Set operation,
* instead of a Define Property operation.
*

@@ -13,0 +12,0 @@ */

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

export declare const URLCreateObjectURL: (object: any) => string, URLRevokeObjectURL: (url: string) => void;
export declare const URLCreateObjectURL: (obj: Blob | MediaSource) => string, URLRevokeObjectURL: (url: string) => void;
//# sourceMappingURL=URL.d.ts.map
import { GlobalObject } from './types';
export declare function patchedWindowPostMessageValue(this: GlobalObject, ...args: any[]): void;
export declare const WindowStaticDecodeURIComponent: typeof decodeURIComponent, WindowStaticEncodeURIComponent: typeof encodeURIComponent, WindowStaticFetch: ((input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>) & typeof fetch, WindowStaticOpen: ((url?: string | undefined, target?: string | undefined, features?: string | undefined, replace?: boolean | undefined) => Window | null) & typeof open, WindowStaticSetInterval: ((handler: TimerHandler, timeout?: number | undefined, ...arguments: any[]) => number) & typeof setInterval, WindowStaticSetTimeout: ((handler: TimerHandler, timeout?: number | undefined, ...arguments: any[]) => number) & typeof setTimeout;
export declare const WindowStaticDecodeURIComponent: typeof decodeURIComponent, WindowStaticEncodeURIComponent: typeof encodeURIComponent, WindowStaticFetch: ((input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>) & typeof fetch, WindowStaticOpen: ((url?: string | URL | undefined, target?: string | undefined, features?: string | undefined) => Window | null) & typeof open, WindowStaticSetInterval: ((handler: TimerHandler, timeout?: number | undefined, ...arguments: any[]) => number) & typeof setInterval, WindowStaticSetTimeout: ((handler: TimerHandler, timeout?: number | undefined, ...arguments: any[]) => number) & typeof setTimeout;
export declare function getPatchedWindow<T extends GlobalObject | null>(win: T): T;

@@ -5,0 +5,0 @@ export declare function isWindowLike(value: any): value is typeof globalThis;

@@ -11,4 +11,4 @@ export declare const XhrCtor: {

export declare const XhrProtoOpen: {
(method: string, url: string): void;
(method: string, url: string, async: boolean, username?: string | null | undefined, password?: string | null | undefined): void;
(method: string, url: string | URL): void;
(method: string, url: string | URL, async: boolean, username?: string | null | undefined, password?: string | null | undefined): void;
};

@@ -15,0 +15,0 @@ export declare function XhrOpen(xhr: XMLHttpRequest, requestMethod: string, url: string, async?: boolean): ReturnType<typeof XMLHttpRequest.prototype.open>;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc