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

driver-worker

Package Overview
Dependencies
Maintainers
3
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

driver-worker - npm Package Compare versions

Comparing version 0.6.6-2 to 0.6.6-3

lib/set-style.js

244

lib/dom-renderer.js

@@ -8,2 +8,6 @@ "use strict";

var _setStyle = _interopRequireDefault(require("./set-style"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

@@ -30,113 +34,23 @@

} : true;
var UNBUBBLES = ['appear', 'disappear', 'scroll', 'blur', 'focus', 'load', 'unload', 'resize'];
function isUnbubbleEvent(evtName) {
return UNBUBBLES.indexOf(evtName) !== -1;
}
var PREFIX_PROPS = {
flex: true,
alignItems: true,
alignSelf: true,
flexDirection: true,
justifyContent: true,
flexWrap: true,
lineClamp: true,
textSizeAdjust: true,
textDecorationLine: true,
textDecorationColor: true,
textDecorationStyle: true,
textDecorationSkip: true,
writingMode: true,
animatin: true,
animationName: true,
animationDuration: true,
animationTimingFunction: true,
animationDelay: true,
animationIterationCount: true,
animationDirection: true,
animationFillMode: true,
animationPlayState: true,
transform: true,
transformOrigin: true,
transformStyle: true,
perspective: true,
perspectiveOrigin: true,
backfaceVisibility: true,
appearance: true,
userSelect: true,
columns: true,
columnWidth: true,
columnCount: true,
columnGap: true,
columnRule: true,
columnRuleWidth: true,
columnRuleStyle: true,
columnRuleColor: true,
columnSpan: true,
columnFill: true,
columnBreakBefore: true,
columnBreakAfter: true,
columnBreakInside: true
var NO_BUBBLES_EVENTS = {
// Resource Events and Progress Events
load: true,
error: true,
unload: true,
abort: true,
loadstart: true,
progress: true,
loadend: true,
// Focus Events
blur: true,
focus: true,
// View Events
scroll: true,
// Not bubles on elements
appear: true,
disappear: true,
// Uncategorized events
invalid: true
};
var PREFIX_PROP_VALS = {
position: 'sticky',
display: 'flex'
};
var StylePrefixer = {
shouldPrefix: function shouldPrefix(prop) {
return PREFIX_PROPS[prop] || PREFIX_PROP_VALS[prop];
}
};
Object.keys(PREFIX_PROPS).forEach(function (prop) {
StylePrefixer[prop] = function (value) {
var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
style['webkit' + prop[0].toUpperCase() + prop.slice(1)] = value;
style[prop] = value;
return style;
};
});
Object.keys(PREFIX_PROP_VALS).forEach(function (prop) {
var rule = PREFIX_PROPS[prop];
StylePrefixer[prop] = function (value) {
var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
if (value === rule) {
style[prop] = ['-webkit-' + rule, rule];
} else {
style[prop] = value;
}
return style;
};
});
function applyCompatibleStyle(node, styleObject) {
var tranformedStyles = {};
for (var prop in styleObject) {
var val = styleObject[prop];
if (StylePrefixer.shouldPrefix(prop)) {
StylePrefixer[prop](val, tranformedStyles);
} else {
tranformedStyles[prop] = val;
}
}
for (var _prop in tranformedStyles) {
var transformValue = tranformedStyles[_prop]; // if browser only accept -webkit-flex
// node.style.display = 'flex' will not work
if (Array.isArray(transformValue)) {
for (var i = 0; i < transformValue.length; i++) {
node.style[_prop] = transformValue[i];
}
} else {
node.style[_prop] = transformValue;
}
}
}
var _default = function _default(_ref) {

@@ -149,11 +63,20 @@ var worker = _ref.worker,

function getNode(node) {
if (!node) return null;
if (node.nodeName === 'BODY') return document.body;
return NODES.get(node.$$id);
function setNode(vnode, node) {
node.$$id = vnode.$$id;
return NODES.set(vnode.$$id, node);
}
function _addEvent(name, vnode) {
if (isUnbubbleEvent(name)) {
addUnbubbleEvent(name, vnode);
function getNode(vnode) {
if (!vnode) return null;
if (vnode.nodeName === 'BODY') return document.body;
return NODES.get(vnode.$$id);
}
function deleteNode(vnode) {
return NODES.delete(vnode.$$id);
}
function _addEvent(node, name) {
if (NO_BUBBLES_EVENTS[name]) {
addNoBubblesEventListener(node, name);
} else {

@@ -172,5 +95,5 @@ var registeredCount = registeredEventCounts[name];

function _removeEvent(name, vnode) {
if (isUnbubbleEvent(name)) {
removeUnbubbleEvent(name, vnode);
function _removeEvent(node, name) {
if (NO_BUBBLES_EVENTS[name]) {
removeNoBubblesEventListener(node, name);
} else {

@@ -185,36 +108,29 @@ registeredEventCounts[name]--;

var unbubbleEventStore = {};
function addNoBubblesEventListener(node, name) {
function listener(evt) {
var target = {
$$id: node.$$id
};
worker.postMessage({
type: 'event',
event: {
type: name,
target: target,
currentTarget: target,
detail: evt.detail
}
});
}
function addUnbubbleEvent(name, vnode) {
var evtStore = unbubbleEventStore[name] = unbubbleEventStore[name] || {}; // el may not add to DOM Tree
setTimeout(function () {
var el = getNode(vnode);
if (el) {
el.addEventListener(name, evtStore[vnode.$$id] = function (evt) {
var target = {
$$id: el.$$id
};
worker.postMessage({
type: 'event',
event: {
type: name,
target: target,
currentTarget: target,
detail: evt.detail
}
});
});
}
}, 0);
;
node["__$".concat(name, "_listener__")] = listener;
node.addEventListener(name, listener);
}
function removeUnbubbleEvent(name, vnode) {
var evtStore = unbubbleEventStore[name] = unbubbleEventStore[name] || {};
function removeNoBubblesEventListener(node, name) {
var listener = node["__$".concat(name, "_listener__")];
if (evtStore[vnode.$$id]) {
var el = getNode(vnode);
el && el.removeEventListener(name, evtStore[vnode.$$id]);
delete evtStore[vnode.$$id];
if (listener) {
node.removeEventListener(name, listener);
node["__$".concat(name, "_listener__")] = null;
}

@@ -326,3 +242,3 @@ }

if (vnode.style) {
applyCompatibleStyle(node, vnode.style);
(0, _setStyle.default)(node, vnode.style);
}

@@ -350,3 +266,3 @@

for (var _i2 = 0; _i2 < vnode.events.length; _i2++) {
_addEvent(vnode.events[_i2], vnode);
_addEvent(node, vnode.events[_i2]);
}

@@ -358,4 +274,3 @@ }

node.$$id = vnode.$$id;
NODES.set(vnode.$$id, node);
setNode(vnode, node);
return node;

@@ -383,3 +298,5 @@ } // Returns "attributes" if it was an attribute mutation.

for (var i = removedNodes.length; i--;) {
parent.removeChild(getNode(removedNodes[i]));
var node = getNode(removedNodes[i]);
parent.removeChild(node);
deleteNode(node);
}

@@ -405,10 +322,9 @@ }

style = _ref3.style;
var vnode = target;
var node = getNode(vnode);
var node = getNode(target); // TODO: some with `createNode`, should processed by one method
if (style) {
applyCompatibleStyle(node, style);
(0, _setStyle.default)(node, style);
} else if (newValue == null) {
node.removeAttribute(attributeName);
} else if (_typeof(newValue) === 'object') {
} else if (_typeof(newValue) === 'object' || typeof newValue === 'boolean') {
node[attributeName] = newValue;

@@ -422,4 +338,3 @@ } else {

newValue = _ref4.newValue;
var vnode = target;
var node = getNode(vnode);
var node = getNode(target);
node[TEXT_CONTENT_ATTR] = newValue;

@@ -430,4 +345,5 @@ },

eventName = _ref5.eventName;
var node = getNode(target);
_addEvent(eventName, target);
_addEvent(node, eventName);
},

@@ -437,4 +353,5 @@ removeEvent: function removeEvent(_ref6) {

eventName = _ref6.eventName;
var node = getNode(target);
_removeEvent(eventName, target);
_removeEvent(node, eventName);
},

@@ -446,4 +363,3 @@ canvasRenderingContext2D: function canvasRenderingContext2D(_ref7) {

properties = _ref7.properties;
var vnode = target;
var canvas = getNode(vnode);
var canvas = getNode(target);
var context = canvas.getContext('2d');

@@ -450,0 +366,0 @@

{
"name": "driver-worker",
"version": "0.6.6-2",
"version": "0.6.6-3",
"description": "Worker driver for Rax",

@@ -5,0 +5,0 @@ "license": "BSD-3-Clause",

@@ -52,12 +52,12 @@ const global = typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : new Function('return this')();

function isProperty(node, prop, val) {
return typeof val === 'object' || (
return typeof val === 'object' ||
node.nodeType === 1 && BOOL_PROPERTY[node.nodeName] && BOOL_PROPERTY[node.nodeName][prop]
);
;
}
const setImmediate = global.setImmediate || function (cb) {
const setImmediate = global.setImmediate || function(cb) {
return setTimeout(cb, 0);
};
const requestAnimationFrame = global.requestAnimationFrame || function (cb) {
const requestAnimationFrame = global.requestAnimationFrame || function(cb) {
return setTimeout(cb, 16);

@@ -71,3 +71,3 @@ };

export default function () {
export default function() {
let observers = [];

@@ -553,6 +553,6 @@ let pendingMutations = false;

Object.defineProperty(this, property, {
get: function () {
get: function() {
return propertyValues[property];
},
set: function (value) {
set: function(value) {
propertyValues[property] = value;

@@ -559,0 +559,0 @@ }

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

import setStyle from './set-style';
// feature-detect support for event listener options

@@ -21,134 +23,44 @@ let supportsPassive = false;

const UNBUBBLES = [
'appear',
'disappear',
'scroll',
'blur',
'focus',
'load',
'unload',
'resize',
];
function isUnbubbleEvent(evtName) {
return UNBUBBLES.indexOf(evtName) !== -1;
}
const PREFIX_PROPS = {
flex: true,
alignItems: true,
alignSelf: true,
flexDirection: true,
justifyContent: true,
flexWrap: true,
lineClamp: true,
textSizeAdjust: true,
textDecorationLine: true,
textDecorationColor: true,
textDecorationStyle: true,
textDecorationSkip: true,
writingMode: true,
animatin: true,
animationName: true,
animationDuration: true,
animationTimingFunction: true,
animationDelay: true,
animationIterationCount: true,
animationDirection: true,
animationFillMode: true,
animationPlayState: true,
transform: true,
transformOrigin: true,
transformStyle: true,
perspective: true,
perspectiveOrigin: true,
backfaceVisibility: true,
appearance: true,
userSelect: true,
columns: true,
columnWidth: true,
columnCount: true,
columnGap: true,
columnRule: true,
columnRuleWidth: true,
columnRuleStyle: true,
columnRuleColor: true,
columnSpan: true,
columnFill: true,
columnBreakBefore: true,
columnBreakAfter: true,
columnBreakInside: true,
const NO_BUBBLES_EVENTS = {
// Resource Events and Progress Events
load: true,
error: true,
unload: true,
abort: true,
loadstart: true,
progress: true,
loadend: true,
// Focus Events
blur: true,
focus: true,
// View Events
scroll: true, // Not bubles on elements
appear: true,
disappear: true,
// Uncategorized events
invalid: true
};
const PREFIX_PROP_VALS = {
position: 'sticky',
display: 'flex',
};
export default ({ worker, tagNamePrefix = '' }) => {
const NODES = new Map();
const registeredEventCounts = {};
const StylePrefixer = {
shouldPrefix(prop) {
return PREFIX_PROPS[prop] || PREFIX_PROP_VALS[prop];
},
};
Object.keys(PREFIX_PROPS).forEach((prop) => {
StylePrefixer[prop] = (value, style = {}) => {
style['webkit' + prop[0].toUpperCase() + prop.slice(1)] = value;
style[prop] = value;
return style;
};
});
Object.keys(PREFIX_PROP_VALS).forEach((prop) => {
const rule = PREFIX_PROPS[prop];
StylePrefixer[prop] = (value, style = {}) => {
if (value === rule) {
style[prop] = ['-webkit-' + rule, rule];
} else {
style[prop] = value;
}
return style;
};
});
function applyCompatibleStyle(node, styleObject) {
let tranformedStyles = {};
for (let prop in styleObject) {
let val = styleObject[prop];
if (StylePrefixer.shouldPrefix(prop)) {
StylePrefixer[prop](val, tranformedStyles);
} else {
tranformedStyles[prop] = val;
}
function setNode(vnode, node) {
node.$$id = vnode.$$id;
return NODES.set(vnode.$$id, node);
}
for (let prop in tranformedStyles) {
const transformValue = tranformedStyles[prop];
// if browser only accept -webkit-flex
// node.style.display = 'flex' will not work
if (Array.isArray(transformValue)) {
for (let i = 0; i < transformValue.length; i++) {
node.style[prop] = transformValue[i];
}
} else {
node.style[prop] = transformValue;
}
function getNode(vnode) {
if (!vnode) return null;
if (vnode.nodeName === 'BODY') return document.body;
return NODES.get(vnode.$$id);
}
}
export default ({ worker, tagNamePrefix = '' }) => {
const NODES = new Map();
const registeredEventCounts = {};
function getNode(node) {
if (!node) return null;
if (node.nodeName === 'BODY') return document.body;
return NODES.get(node.$$id);
function deleteNode(vnode) {
return NODES.delete(vnode.$$id);
}
function addEvent(name, vnode) {
if (isUnbubbleEvent(name)) {
addUnbubbleEvent(name, vnode);
function addEvent(node, name) {
if (NO_BUBBLES_EVENTS[name]) {
addNoBubblesEventListener(node, name);
} else {

@@ -167,5 +79,5 @@ const registeredCount = registeredEventCounts[name];

function removeEvent(name, vnode) {
if (isUnbubbleEvent(name)) {
removeUnbubbleEvent(name, vnode);
function removeEvent(node, name) {
if (NO_BUBBLES_EVENTS[name]) {
removeNoBubblesEventListener(node, name);
} else {

@@ -179,31 +91,26 @@ registeredEventCounts[name]--;

const unbubbleEventStore = {};
function addUnbubbleEvent(name, vnode) {
const evtStore = unbubbleEventStore[name] = unbubbleEventStore[name] || {};
// el may not add to DOM Tree
setTimeout(() => {
const el = getNode(vnode);
if (el) {
el.addEventListener(name, evtStore[vnode.$$id] = function (evt) {
const target = { $$id: el.$$id };
worker.postMessage({
type: 'event',
event: {
type: name,
target,
currentTarget: target,
detail: evt.detail
}
});
});
}
}, 0);
function addNoBubblesEventListener(node, name) {
function listener(evt) {
const target = {
$$id: node.$$id
};
worker.postMessage({
type: 'event',
event: {
type: name,
target,
currentTarget: target,
detail: evt.detail
}
});
};
node[`__$${name}_listener__`] = listener;
node.addEventListener(name, listener);
}
function removeUnbubbleEvent(name, vnode) {
const evtStore = unbubbleEventStore[name] = unbubbleEventStore[name] || {};
if (evtStore[vnode.$$id]) {
const el = getNode(vnode);
el && el.removeEventListener(name, evtStore[vnode.$$id]);
delete evtStore[vnode.$$id];
function removeNoBubblesEventListener(node, name) {
const listener = node[`__$${name}_listener__`];
if (listener) {
node.removeEventListener(name, listener);
node[`__$${name}_listener__`] = null;
}

@@ -214,6 +121,4 @@ }

function getTouch(e) {
let t =
e.changedTouches && e.changedTouches[0] ||
e.touches && e.touches[0] ||
e;
let t = e.changedTouches && e.changedTouches[0] ||
e.touches && e.touches[0] || e;
return t && { pageX: t.pageX, pageY: t.pageY };

@@ -301,2 +206,3 @@ }

node = document.createElement(tagNamePrefix + vnode.nodeName);
if (vnode.className) {

@@ -307,3 +213,3 @@ node.className = vnode.className;

if (vnode.style) {
applyCompatibleStyle(node, vnode.style);
setStyle(node, vnode.style);
}

@@ -331,3 +237,3 @@

for (let i = 0; i < vnode.events.length; i++) {
addEvent(vnode.events[i], vnode);
addEvent(node, vnode.events[i]);
}

@@ -339,4 +245,3 @@ }

node.$$id = vnode.$$id;
NODES.set(vnode.$$id, node);
setNode(vnode, node);
return node;

@@ -358,3 +263,5 @@ }

for (let i = removedNodes.length; i--;) {
parent.removeChild(getNode(removedNodes[i]));
let node = getNode(removedNodes[i]);
parent.removeChild(node);
deleteNode(node);
}

@@ -377,10 +284,10 @@ }

attributes({ target, attributeName, newValue, style }) {
let vnode = target;
let node = getNode(vnode);
let node = getNode(target);
// TODO: some with `createNode`, should processed by one method
if (style) {
applyCompatibleStyle(node, style);
setStyle(node, style);
} else if (newValue == null) {
node.removeAttribute(attributeName);
} else if (typeof newValue === 'object') {
} else if (typeof newValue === 'object' || typeof newValue === 'boolean') {
node[attributeName] = newValue;

@@ -392,15 +299,15 @@ } else {

characterData({ target, newValue }) {
let vnode = target;
let node = getNode(vnode);
let node = getNode(target);
node[TEXT_CONTENT_ATTR] = newValue;
},
addEvent({ target, eventName }) {
addEvent(eventName, target);
let node = getNode(target);
addEvent(node, eventName);
},
removeEvent({ target, eventName }) {
removeEvent(eventName, target);
let node = getNode(target);
removeEvent(node, eventName);
},
canvasRenderingContext2D({ target, method, args, properties }) {
let vnode = target;
let canvas = getNode(vnode);
let canvas = getNode(target);
let context = canvas.getContext('2d');

@@ -407,0 +314,0 @@

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