Socket
Socket
Sign inDemoInstall

dom-mutator

Package Overview
Dependencies
0
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.0 to 0.2.1

32

dist/dom-mutator.cjs.development.js

@@ -65,5 +65,9 @@ 'use strict';

var transformContainer = /*#__PURE__*/document.createElement('div');
var transformContainer;
function getTransformedHTML(html) {
if (!transformContainer) {
transformContainer = document.createElement('div');
}
transformContainer.innerHTML = html;

@@ -269,9 +273,16 @@ return transformContainer.innerHTML;

var observer = /*#__PURE__*/new MutationObserver(function () {
refreshAllElementSets();
});
var observer;
function disconnectGlobalObserver() {
observer.disconnect();
observer && observer.disconnect();
}
function connectGlobalObserver() {
/* istanbul ignore next */
if (typeof document === 'undefined') return;
if (!observer) {
observer = new MutationObserver(function () {
refreshAllElementSets();
});
}
refreshAllElementSets();

@@ -287,7 +298,14 @@ observer.observe(document.body, {

function mutate(selector, type, value) {
// Invalid mutation
/* istanbul ignore next */
if (typeof document === 'undefined') {
// Not in a browser
return function () {// do nothing
};
} // Invalid mutation
var attr = getAttribute(type, value);
if (!attr) {
return function () {// nothing
return function () {// do nothing
};

@@ -294,0 +312,0 @@ }

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

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e={},t=new Map,n=1,r=/^([a-zA-Z:_][a-zA-Z0-9:_.-]*)\s*=\s*"([^"]*)"/;function a(e,n){var r=t.get(e);if(r||t.set(e,r={}),!r[n]){var a={externalValue:s(e,n),lastValue:"",observer:new MutationObserver((function(){var t=s(e,n);t!==a.lastValue&&(a.externalValue=t,i(e,n))})),mutations:[]};r[n]=a,a.observer.observe(e,function(e){return"html"===e?{childList:!0,subtree:!0,attributes:!1,characterData:!1}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[e]}}(n))}return r[n]}var u=document.createElement("div");function s(e,t){return"html"===t?e.innerHTML:"className"===t?e.className:e.getAttribute(t)||""}function i(t,n){var u=a(t,n),i=u.externalValue;u.mutations.forEach((function(t){var n=e[t];n&&(i=function(e,t){if("addClass"===e.type){var n=t.split(" ");return e.value.split(" ").forEach((function(e){n.includes(e)||n.push(e)})),n.filter(Boolean).join(" ")}if("removeClass"===e.type){var a=t.split(" "),u=e.value.split(" ");return a.filter((function(e){return!u.includes(e)})).join(" ")}if("setHTML"===e.type)return e.value;if("appendHTML"===e.type)return t+e.value;if("setAttribute"===e.type){var s=r.exec(e.value);return(null==s?void 0:s[2])||""}return t}(n,i))}));var l=s(t,n);i!==l&&(u.lastValue=i,function(e,t,n){"html"===t?e.innerHTML=n:"className"===t?n?e.className=n:e.removeAttribute("class"):n?e.setAttribute(t,n):e.removeAttribute(t)}(t,n,i))}function l(e,t){if(["addClass","removeClass"].includes(e))return"className";if(["appendHTML","setHTML"].includes(e))return"html";if("setAttribute"===e){var n=r.exec(t);if(null!=n&&n[1]){var a=n[1];return"class"===a||"classname"===a?"className":a}}return""}function c(n,r){var u=e[n];if(u){u.elements.delete(r);var s=l(u.type,u.value),c=a(r,s),o=c.mutations.indexOf(n);-1!==o&&c.mutations.splice(o,1),i(r,s),c.mutations.length||function(e,n){var r=t.get(e);r&&(r[n]&&r[n].observer.disconnect(),delete r[n])}(r,s)}}function o(t){var n=e[t];if(n){var r=new Set(n.elements),u=new Set;document.body.querySelectorAll(n.selector).forEach((function(n){u.add(n),r.has(n)||function(t,n){var r=e[t];if(r){r.elements.add(n);var u=l(r.type,r.value);a(n,u).mutations.push(t),i(n,u)}}(t,n)})),r.forEach((function(e){u.has(e)||c(t,e)}))}}function f(){Object.keys(e).forEach((function(e){o(e)}))}var v=new MutationObserver((function(){f()}));function d(){f(),v.observe(document.body,{childList:!0,subtree:!0,attributes:!1,characterData:!1})}d(),exports.connectGlobalObserver=d,exports.default=function(t,r,a){if(!l(r,a))return function(){};var s=function(t,r,a){"appendHTML"!==r&&"setHTML"!==r||(u.innerHTML=a,a=u.innerHTML);var s=""+n++;return e[s]={selector:t,type:r,value:a,elements:new Set},o(s),s}(t,r,a);return function(){!function(t){var n=e[t];n&&(new Set(n.elements).forEach((function(e){c(t,e)})),e[t].elements.clear(),delete e[t])}(s)}},exports.disconnectGlobalObserver=function(){v.disconnect()};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t,n={},r=new Map,a=1,u=/^([a-zA-Z:_][a-zA-Z0-9:_.-]*)\s*=\s*"([^"]*)"/;function i(e,t){var n=r.get(e);if(n||r.set(e,n={}),!n[t]){var a={externalValue:s(e,t),lastValue:"",observer:new MutationObserver((function(){var n=s(e,t);n!==a.lastValue&&(a.externalValue=n,l(e,t))})),mutations:[]};n[t]=a,a.observer.observe(e,function(e){return"html"===e?{childList:!0,subtree:!0,attributes:!1,characterData:!1}:{childList:!1,subtree:!1,attributes:!0,attributeFilter:[e]}}(t))}return n[t]}function s(e,t){return"html"===t?e.innerHTML:"className"===t?e.className:e.getAttribute(t)||""}function l(e,t){var r=i(e,t),a=r.externalValue;r.mutations.forEach((function(e){var t=n[e];t&&(a=function(e,t){if("addClass"===e.type){var n=t.split(" ");return e.value.split(" ").forEach((function(e){n.includes(e)||n.push(e)})),n.filter(Boolean).join(" ")}if("removeClass"===e.type){var r=t.split(" "),a=e.value.split(" ");return r.filter((function(e){return!a.includes(e)})).join(" ")}if("setHTML"===e.type)return e.value;if("appendHTML"===e.type)return t+e.value;if("setAttribute"===e.type){var i=u.exec(e.value);return(null==i?void 0:i[2])||""}return t}(t,a))}));var l=s(e,t);a!==l&&(r.lastValue=a,function(e,t,n){"html"===t?e.innerHTML=n:"className"===t?n?e.className=n:e.removeAttribute("class"):n?e.setAttribute(t,n):e.removeAttribute(t)}(e,t,a))}function o(e,t){if(["addClass","removeClass"].includes(e))return"className";if(["appendHTML","setHTML"].includes(e))return"html";if("setAttribute"===e){var n=u.exec(t);if(null!=n&&n[1]){var r=n[1];return"class"===r||"classname"===r?"className":r}}return""}function c(e,t){var a=n[e];if(a){a.elements.delete(t);var u=o(a.type,a.value),s=i(t,u),c=s.mutations.indexOf(e);-1!==c&&s.mutations.splice(c,1),l(t,u),s.mutations.length||function(e,t){var n=r.get(e);n&&(n[t]&&n[t].observer.disconnect(),delete n[t])}(t,u)}}function f(e){var t=n[e];if(t){var r=new Set(t.elements),a=new Set;document.body.querySelectorAll(t.selector).forEach((function(t){a.add(t),r.has(t)||function(e,t){var r=n[e];if(r){r.elements.add(t);var a=o(r.type,r.value);i(t,a).mutations.push(e),l(t,a)}}(e,t)})),r.forEach((function(t){a.has(t)||c(e,t)}))}}function v(){Object.keys(n).forEach((function(e){f(e)}))}function d(){"undefined"!=typeof document&&(t||(t=new MutationObserver((function(){v()}))),v(),t.observe(document.body,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}d(),exports.connectGlobalObserver=d,exports.default=function(t,r,u){if("undefined"==typeof document)return function(){};if(!o(r,u))return function(){};var i=function(t,r,u){var i;"appendHTML"!==r&&"setHTML"!==r||(i=u,e||(e=document.createElement("div")),e.innerHTML=i,u=e.innerHTML);var s=""+a++;return n[s]={selector:t,type:r,value:u,elements:new Set},f(s),s}(t,r,u);return function(){!function(e){var t=n[e];t&&(new Set(t.elements).forEach((function(t){c(e,t)})),n[e].elements.clear(),delete n[e])}(i)}},exports.disconnectGlobalObserver=function(){t&&t.disconnect()};
//# sourceMappingURL=dom-mutator.cjs.production.min.js.map

@@ -61,5 +61,9 @@ var mutations = {};

var transformContainer = /*#__PURE__*/document.createElement('div');
var transformContainer;
function getTransformedHTML(html) {
if (!transformContainer) {
transformContainer = document.createElement('div');
}
transformContainer.innerHTML = html;

@@ -265,9 +269,16 @@ return transformContainer.innerHTML;

var observer = /*#__PURE__*/new MutationObserver(function () {
refreshAllElementSets();
});
var observer;
function disconnectGlobalObserver() {
observer.disconnect();
observer && observer.disconnect();
}
function connectGlobalObserver() {
/* istanbul ignore next */
if (typeof document === 'undefined') return;
if (!observer) {
observer = new MutationObserver(function () {
refreshAllElementSets();
});
}
refreshAllElementSets();

@@ -283,7 +294,14 @@ observer.observe(document.body, {

function mutate(selector, type, value) {
// Invalid mutation
/* istanbul ignore next */
if (typeof document === 'undefined') {
// Not in a browser
return function () {// do nothing
};
} // Invalid mutation
var attr = getAttribute(type, value);
if (!attr) {
return function () {// nothing
return function () {// do nothing
};

@@ -290,0 +308,0 @@ }

{
"version": "0.2.0",
"version": "0.2.1",
"license": "MIT",

@@ -4,0 +4,0 @@ "main": "dist/index.js",

@@ -86,4 +86,7 @@ export type MutationType =

const transformContainer = document.createElement('div');
let transformContainer: HTMLDivElement;
function getTransformedHTML(html: string) {
if (!transformContainer) {
transformContainer = document.createElement('div');
}
transformContainer.innerHTML = html;

@@ -281,9 +284,16 @@ return transformContainer.innerHTML;

// Observer for elements that don't exist in the DOM yet
const observer = new MutationObserver(() => {
refreshAllElementSets();
});
let observer: MutationObserver;
export function disconnectGlobalObserver() {
observer.disconnect();
observer && observer.disconnect();
}
export function connectGlobalObserver() {
/* istanbul ignore next */
if (typeof document === 'undefined') return;
if (!observer) {
observer = new MutationObserver(() => {
refreshAllElementSets();
});
}
refreshAllElementSets();

@@ -304,2 +314,10 @@ observer.observe(document.body, {

): () => void {
/* istanbul ignore next */
if (typeof document === 'undefined') {
// Not in a browser
return () => {
// do nothing
};
}
// Invalid mutation

@@ -309,3 +327,3 @@ const attr = getAttribute(type, value);

return () => {
// nothing
// do nothing
};

@@ -312,0 +330,0 @@ }

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc