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

dr-js

Package Overview
Dependencies
Maintainers
1
Versions
243
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dr-js - npm Package Compare versions

Comparing version 0.20.3 to 0.20.4-dev.0

4

library/common/error.js

@@ -8,4 +8,4 @@ exports.rethrowError=(r=>{console.warn(r)

exports.catchSync=((r,...t)=>{let e,o
try{e=r(...t)}catch(r){o=r}return{result:e,error:o}})
try{e=r(...t)}catch(r){o=r||new Error}return{result:e,error:o}})
exports.catchAsync=(async(r,...t)=>{let e,o
try{e=await r(...t)}catch(r){o=r}return{result:e,error:o}})
try{e=await r(...t)}catch(r){o=r||new Error}return{result:e,error:o}})

@@ -1,13 +0,13 @@

exports.createHub=(()=>{let e=new Set
exports.createHub=(()=>{const e=new Set
return{clear:()=>e.clear(),subscribe:t=>{e.add(t)},unsubscribe:t=>{e.delete(t)},send:t=>e.forEach(e=>e(t))}})
const e=()=>{const e=new Map
return{setMap:e,clear:()=>e.clear(),addListener:(t,r)=>{const n=e.get(t)
n?n.add(r):e.set(t,new Set([r]))},removeListener:(t,r)=>{const n=e.get(t)
return{setMap:e,clear:()=>e.clear(),on:(t,r)=>{const n=e.get(t)
n?n.add(r):e.set(t,new Set([r]))},off:(t,r)=>{const n=e.get(t)
n&&n.delete(r)
n&&0===n.size&&e.delete(t)}}}
exports.createEventTarget=(()=>{const{setMap:t,clear:r,addListener:n,removeListener:s}=e()
return{clear:r,addEventListener:n,removeEventListener:s,dispatchEvent:e=>{const r=t.get(e.type)
r&&r.forEach(t=>t(e))}}})
exports.createEventEmitter=(()=>{const{setMap:t,clear:r,addListener:n,removeListener:s}=e()
return{clear:r,addListener:n,removeListener:s,removeAllListeners:(...e)=>{e.length?e.forEach(e=>t.delete(e)):t.clear()},emit:(e,...r)=>{const n=t.get(e)
n&&n.forEach(e=>e(...r))},on:n,off:s}})
exports.createEventTarget=(()=>{const{setMap:t,clear:r,on:n,off:s}=e()
return{clear:r,dispatchEvent:e=>{const r=t.get(e.type)
r&&r.forEach(t=>t(e))},addEventListener:n,removeEventListener:s}})
exports.createEventEmitter=(()=>{const{setMap:t,clear:r,on:n,off:s}=e()
return{clear:r,emit:(e,...r)=>{const n=t.get(e)
n&&n.forEach(e=>e(...r))},on:n,off:s,addListener:n,removeListener:s,removeAllListeners:(...e)=>{e.length?e.forEach(e=>t.delete(e)):t.clear()}}})

@@ -1,11 +0,11 @@

exports.receiveBufferAsync=(e=>new Promise((r,n)=>{const t=[]
exports.receiveBufferAsync=(e=>new Promise((r,o)=>{const n=[]
e.on("error",o)
e.on("data",e=>n.push(e))
e.on("end",()=>{e.off("error",o)
r(Buffer.concat(n))})}))
exports.sendBufferAsync=((e,r)=>new Promise((o,n)=>{if(0===r.length)return o()
e.on("error",n)
e.on("data",e=>t.push(e))
e.on("end",()=>{e.removeListener("error",n)
r(Buffer.concat(t))})}))
exports.sendBufferAsync=((e,r)=>new Promise((n,t)=>{if(0===r.length)return n()
e.on("error",t)
e.write(r,()=>{e.removeListener("error",t)
n()})}))
exports.toArrayBuffer=(e=>{const{buffer:r,byteOffset:n,byteLength:t}=e
return r.byteLength===t?r:r.slice(n,n+t)})
e.write(r,()=>{e.off("error",n)
o()})}))
exports.toArrayBuffer=(e=>{const{buffer:r,byteOffset:o,byteLength:n}=e
return r.byteLength===n?r:r.slice(o,o+n)})
var e=require("stream")
exports.pipeStreamAsync=((e,r)=>new Promise((n,o)=>{r.on("error",o)
r.on("end",()=>{r.removeListener("error",o)
n()})
exports.pipeStreamAsync=((e,r)=>new Promise((o,n)=>{r.on("error",n)
r.on("end",()=>{r.off("error",n)
o()})
r.pipe(e)}))
exports.bufferToStream=(r=>{const n=new e.Duplex
n.push(r)
n.push(null)
return n})
exports.bufferToStream=(r=>{const o=new e.Duplex
o.push(r)
o.push(null)
return o})

@@ -24,3 +24,3 @@ var e=require("crypto")

return{server:a,option:s,start:async()=>!a.listening&&new Promise((e,r)=>{a.on("error",r)
a.listen(s.port,s.hostname,()=>{a.removeListener("error",r)
a.listen(s.port,s.hostname,()=>{a.off("error",r)
e()})}),stop:async()=>a.listening&&new Promise(e=>a.close(e))}})

@@ -27,0 +27,0 @@ const p=(e,r)=>e.setState({error:r})

@@ -1,27 +0,27 @@

var e=require("net")
exports.createTCPProxyServer=(({hostname:t="localhost",port:o,targetHostname:r="localhost",targetPort:n,getTargetOption:s=(e=>({hostname:r,port:n}))})=>{const a=(0,e.createServer)()
const c={hostname:t,port:o,getTargetOption:s}
var t=require("net")
exports.createTCPProxyServer=(({hostname:o="localhost",port:e,targetHostname:r="localhost",targetPort:n,getTargetOption:s=(t=>({hostname:r,port:n}))})=>{const a=(0,t.createServer)()
const c={hostname:o,port:e,getTargetOption:s}
const i=new Set
a.on("connection",async t=>{let o=[]
const r=e=>o.push(e)
const n=()=>{i.delete(t)
a.on("connection",async o=>{let e=[]
const r=t=>e.push(t)
const n=()=>{i.delete(o)
a.destroy()}
t.on("error",n)
t.on("close",n)
t.on("data",r)
i.add(t)
const a=new e.Socket
const c=()=>t.destroy()
o.on("error",n)
o.on("close",n)
o.on("data",r)
i.add(o)
const a=new t.Socket
const c=()=>o.destroy()
a.on("error",c)
a.on("close",c)
a.on("data",e=>t.write(e))
const l=await s(t)
a.connect(l.port,l.hostname,()=>{for(const e of o)a.write(e)
o=null
t.removeListener("data",r)
t.on("data",e=>a.write(e))})})
return{server:a,option:c,socketSet:i,start:async()=>!a.listening&&new Promise((e,r)=>{a.on("error",r)
a.listen(o,t,()=>{a.removeListener("error",r)
e()})}),stop:async()=>a.listening&&new Promise(e=>{i.forEach(e=>e.destroy())
a.on("data",t=>o.write(t))
const l=await s(o)
a.connect(l.port,l.hostname,()=>{for(const t of e)a.write(t)
e=null
o.off("data",r)
o.on("data",t=>a.write(t))})})
return{server:a,option:c,socketSet:i,start:async()=>!a.listening&&new Promise((t,r)=>{a.on("error",r)
a.listen(e,o,()=>{a.off("error",r)
t()})}),stop:async()=>a.listening&&new Promise(t=>{i.forEach(t=>t.destroy())
i.clear()
a.close(e)})}})
a.close(t)})}})

@@ -10,10 +10,10 @@ var e=require("crypto")

let c
const u=()=>{o=Promise.resolve("HEAD")
const f=()=>{o=Promise.resolve("HEAD")
s=null
c=null}
u()
const f=(e,t)=>o=o.then(e,t)
const i=(o,u,f,i)=>{const{FINQuadBit:E,opcodeQuadBitMask:d}=o
const{length:_}=f
const A=E<<4|u&d
f()
const u=(e,t)=>o=o.then(e,t)
const E=(o,f,u,E)=>{const{FINQuadBit:i,opcodeQuadBitMask:d}=o
const{length:_}=u
const A=i<<4|f&d
let h,F

@@ -25,3 +25,3 @@ if(_<=125){h=_

F=8}if(_>t)throw new Error(`[encodeFrame] dataBuffer length ${_} exceeds limit: ${t}`)
const P=i===r.DO_MASK_DATA
const P=E===r.DO_MASK_DATA
const M=P?4:0

@@ -34,13 +34,13 @@ const B=P&&_?(0,e.randomBytes)(4):l

P&&B.copy(s,2+F)
c=f
c=u
P&&_&&a(c,B)}
return{clear:u,setFrameLengthLimit:e=>{t=e},queuePromise:f,encodeFrame:i,encodeCloseFrame:(e=1e3,t="",n)=>{const o=Buffer.byteLength(t)
return{clear:f,setFrameLengthLimit:e=>{t=e},queuePromise:u,encodeFrame:E,encodeCloseFrame:(e=1e3,t="",n)=>{const o=Buffer.byteLength(t)
const l=Buffer.allocUnsafe(2+o)
l.writeUInt16BE(e,0,!0)
l.write(t,2,o)
i(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_CLOSE,l,n)},encodePingFrame:(e,t)=>i(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_PING,e,t),encodePongFrame:(e,t)=>i(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_PONG,e,t),sendEncodedFrame:e=>{const t=s
E(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_CLOSE,l,n)},encodePingFrame:(e,t)=>E(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_PING,e,t),encodePongFrame:(e,t)=>E(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_PONG,e,t),sendEncodedFrame:e=>{const t=s
const r=c
s=null
c=null
return f(()=>new Promise((n,o)=>{const l=()=>{e.removeListener("error",o)
return u(()=>new Promise((n,o)=>{const l=()=>{e.off("error",o)
n()}

@@ -58,14 +58,14 @@ e.on("error",o)

const o=(e,r)=>t=t.then(e,r)
return{clear:n,setFrameLengthLimit:t=>{e=t},queuePromise:o,listenAndReceiveFrame:(t,l,a=n)=>{const{pushChunkDataBuffer:c,decode:u,resetDecode:f,getDecodeFrame:i}=s(e)
let E=null
return{clear:n,setFrameLengthLimit:t=>{e=t},queuePromise:o,listenAndReceiveFrame:(t,l,a=n)=>{const{pushChunkDataBuffer:c,decode:f,resetDecode:u,getDecodeFrame:E}=s(e)
let i=null
let d=null
const _=()=>{d&&t.removeListener("error",d)
E=null
const _=()=>{d&&t.off("error",d)
i=null
d=null
f()}
u()}
const A=e=>{_()
a(e)}
const h=()=>{if(E)return
const h=()=>{if(i)return
const e=new Promise((e,r)=>{t.on("error",r)
E=e
i=e
d=r})

@@ -75,4 +75,4 @@ o(()=>e.then(l),A)}

c(e)
for(;u();){const e=i()
if(null!==e){E(e)
for(;f();){const e=E()
if(null!==e){i(e)
_()

@@ -83,3 +83,3 @@ h()}}}

r=(()=>{_()
t.removeListener("data",F)})}}})
t.off("data",F)})}}})
const s=e=>{const{pushChunkDataBuffer:t,hasChunkDataBuffer:l,getMergedChunkDataBuffer:s}=(()=>{let e=[]

@@ -102,6 +102,6 @@ let t=0

let c=0
let f=null
let u=null
let f=null
let i=!1
let E=null
let E=!1
let i=null
let d=null

@@ -112,12 +112,12 @@ let _=0

const o=127&t
u=8==(t>>>12&8)?n===r.DATA_TYPE_MAP.OPCODE_CONTINUATION?r.FRAME_TYPE_CONFIG_MAP.FRAME_LAST:r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE:n===r.DATA_TYPE_MAP.OPCODE_CONTINUATION?r.FRAME_TYPE_CONFIG_MAP.FRAME_MORE:r.FRAME_TYPE_CONFIG_MAP.FRAME_FIRST
f=n
i=0!=(128&t)
f=8==(t>>>12&8)?n===r.DATA_TYPE_MAP.OPCODE_CONTINUATION?r.FRAME_TYPE_CONFIG_MAP.FRAME_LAST:r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE:n===r.DATA_TYPE_MAP.OPCODE_CONTINUATION?r.FRAME_TYPE_CONFIG_MAP.FRAME_MORE:r.FRAME_TYPE_CONFIG_MAP.FRAME_FIRST
u=n
E=0!=(128&t)
if(0===o){_=0
c=i?3:5}else if(o<=125){if((_=o)>e)throw new Error(`[decode] dataBuffer length ${_} exceeds limit: ${e}`)
c=i?3:4}else c=126===o?1:2
c=E?3:5}else if(o<=125){if((_=o)>e)throw new Error(`[decode] dataBuffer length ${_} exceeds limit: ${e}`)
c=E?3:4}else c=126===o?1:2
return!0}break
case 1:if(l(2)){const t=s(2)
if((_=t.readUInt16BE(0,!0))>e)throw new Error(`[decode] dataBuffer length ${_} exceeds limit: ${e}`)
c=i?3:4
c=E?3:4
return!0}break

@@ -127,17 +127,17 @@ case 2:if(l(8)){const t=s(8)

if(_>e)throw new Error(`[decode] dataBuffer length ${_} exceeds limit: ${e}`)
c=i?3:4
c=E?3:4
return!0}break
case 3:if(l(4)){E=s(4)
case 3:if(l(4)){i=s(4)
c=_?4:5
return!0}break
case 4:if(l(_)){d=s(_)
i&&a(d,E)
E&&a(d,i)
c=5
return!0}}return!1},resetDecode:()=>{c=0
f=null
u=null
f=null
i=!1
E=null
E=!1
i=null
d=null
_=0},getDecodeFrame:()=>5!==c?null:{isFIN:8===u.FINQuadBit,dataType:f,dataBuffer:d,dataBufferLength:_}}}
_=0},getDecodeFrame:()=>5!==c?null:{isFIN:8===f.FINQuadBit,dataType:u,dataBuffer:d,dataBufferLength:_}}}
const a=(e,t)=>{for(let r=0,n=e.length;r<n;r++)e[r]^=t[3&r]}

@@ -9,14 +9,14 @@ var e=require("../../../common/module/Event")

const l=(0,r.createFrameReceiver)(s)
let f=null
let m=null
let E=null
let f=null
let T=0
const P=e=>{if(3!==T){0===T&&a.writable&&a.write("HTTP/1.1 400 Bad Request\r\nconnection: close\r\n\r\n")
T=3
f&&clearTimeout(f)
m&&clearTimeout(m)
E&&clearTimeout(E)
f&&clearTimeout(f)
f=null
m=null
E=null
f=null
u.queuePromise(n,n)

@@ -26,4 +26,4 @@ l.queuePromise(n,n)

l.clear()
a.removeListener("error",g)
a.removeListener("end",g)
a.off("error",g)
a.off("end",g)
a.on("error",n)

@@ -37,3 +37,3 @@ a.destroyed||a.destroy()

const r=e.dataBufferLength>=3&&e.dataBuffer.slice(2,e.dataBufferLength).toString()||""
return g(t,r)}case t.DATA_TYPE_MAP.OPCODE_PING:return C(e.dataBuffer)
return g(t,r)}case t.DATA_TYPE_MAP.OPCODE_PING:return L(e.dataBuffer)
case t.DATA_TYPE_MAP.OPCODE_PONG:return M()}const r=(e=>{F||(F=e.dataType)

@@ -50,23 +50,23 @@ _.push(e.dataBuffer)

r&&i.emit(t.WEB_SOCKET_EVENT_MAP.FRAME,r)
d&&L()}
d&&B()}
const g=(e=1e3,t="")=>{if(3!==T){if(2===T)return P()
if(1!==T&&2!==T)throw new Error(`[close] error readyState = ${T}`)
T=2
m=setTimeout(P,5e3)
f=setTimeout(P,5e3)
u.encodeCloseFrame(e,t,c)
1e3===e?u.sendEncodedFrame(a).catch(P):u.sendEncodedFrame(a).then(P,P)}}
const L=()=>{E&&clearTimeout(E)
E=setTimeout(h,6e4)}
const B=()=>{f&&clearTimeout(f)
f=setTimeout(()=>g(1006,"pong timeout"),6e4)}
const h=(e=o)=>{if(1===T){B()
const B=()=>{m&&clearTimeout(m)
m=setTimeout(C,6e4)}
const h=()=>{E&&clearTimeout(E)
E=setTimeout(()=>g(1006,"pong timeout"),6e4)}
const C=(e=o)=>{if(1===T){h()
u.encodePingFrame(e,c)
return u.sendEncodedFrame(a)}}
const C=(e=o)=>{if(1===T){u.encodePongFrame(e,c)
const L=(e=o)=>{if(1===T){u.encodePongFrame(e,c)
return u.sendEncodedFrame(a)}}
const M=()=>{f&&clearTimeout(f)
f=null
if(d)L()
else{E&&clearTimeout(E)
E=null}}
const M=()=>{E&&clearTimeout(E)
E=null
if(d)B()
else{m&&clearTimeout(m)
m=null}}
return Object.assign({CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},i,{socket:a,frameLengthLimit:s,sendFrameMaskType:c,getReadyState:()=>T,setReadyState:e=>{T=e},setFrameLengthLimit:e=>{u.setFrameLengthLimit(e)

@@ -78,2 +78,2 @@ l.setFrameLengthLimit(e)

u.encodeFrame(t.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,t.DATA_TYPE_MAP.OPCODE_BINARY,e,c)
return u.sendEncodedFrame(a)},setNextPing:L,setNextPong:B,sendPing:h,sendPong:C})})
return u.sendEncodedFrame(a)},setNextPing:B,setNextPong:h,sendPing:C,sendPong:L})})

@@ -6,3 +6,3 @@ var e=require("../../common/error")

const o=t=>{for(const r of Array.from(n))(0,e.catchSync)(r,t)}
const c=async t=>{a()
const c=async t=>{i()
for(const n of Array.from(r))await(0,e.catchAsync)(n,t)

@@ -12,14 +12,14 @@ o(t)

let s=!1
const i=()=>{s=!0
const a=()=>{s=!0
t.forEach(({event:e,listener:t})=>process.on(e,t))}
const a=()=>{s=!1
t.forEach(({event:e,listener:t})=>process.removeListener(e,t))}
const i=()=>{s=!1
t.forEach(({event:e,listener:t})=>process.off(e,t))}
exports.clearExitListener=(()=>{n.clear()
r.clear()
a()})
i()})
exports.addExitListenerSync=((...e)=>{e.forEach(e=>n.add(e))
!s&&i()})
!s&&a()})
exports.addExitListenerAsync=((...e)=>{e.forEach(e=>r.add(e))
!s&&i()})
!s&&a()})
exports.deleteExitListenerSync=((...e)=>{e.forEach(e=>n.delete(e))})
exports.deleteExitListenerAsync=((...e)=>{e.forEach(e=>r.delete(e))})

@@ -20,3 +20,3 @@ const rethrowError = error => {

} catch (error) {
resultError = error;
resultError = error || new Error();
}

@@ -33,3 +33,3 @@ return {

} catch (error) {
resultError = error;
resultError = error || new Error();
}

@@ -36,0 +36,0 @@ return {

const createHub = () => {
let set = new Set();
const set = new Set();
return {

@@ -19,7 +19,7 @@ clear: () => set.clear(),

clear: () => setMap.clear(),
addListener: (type, listener) => {
on: (type, listener) => {
const listenerSet = setMap.get(type);
listenerSet ? listenerSet.add(listener) : setMap.set(type, new Set([ listener ]));
},
removeListener: (type, listener) => {
off: (type, listener) => {
const listenerSet = setMap.get(type);

@@ -32,22 +32,17 @@ listenerSet && listenerSet.delete(listener);

const createEventTarget = () => {
const {setMap, clear, addListener: addEventListener, removeListener: removeEventListener} = createEventBase();
const {setMap, clear, on, off} = createEventBase();
return {
clear,
addEventListener,
removeEventListener,
dispatchEvent: event => {
const listenerSet = setMap.get(event.type);
listenerSet && listenerSet.forEach(listener => listener(event));
}
},
addEventListener: on,
removeEventListener: off
};
};
const createEventEmitter = () => {
const {setMap, clear, addListener, removeListener} = createEventBase();
const {setMap, clear, on, off} = createEventBase();
return {
clear,
addListener,
removeListener,
removeAllListeners: (...eventNameList) => {
eventNameList.length ? eventNameList.forEach(eventName => setMap.delete(eventName)) : setMap.clear();
},
emit: (eventName, ...args) => {

@@ -57,6 +52,11 @@ const listenerSet = setMap.get(eventName);

},
on: addListener,
off: removeListener
on,
off,
addListener: on,
removeListener: off,
removeAllListeners: (...eventNameList) => {
eventNameList.length ? eventNameList.forEach(eventName => setMap.delete(eventName)) : setMap.clear();
}
};
};
export { createHub, createEventTarget, createEventEmitter };

@@ -6,3 +6,3 @@ const receiveBufferAsync = readableStream => new Promise((resolve, reject) => {

readableStream.on("end", () => {
readableStream.removeListener("error", reject);
readableStream.off("error", reject);
resolve(Buffer.concat(data));

@@ -15,3 +15,3 @@ });

writableStream.write(buffer, () => {
writableStream.removeListener("error", reject);
writableStream.off("error", reject);
resolve();

@@ -18,0 +18,0 @@ });

@@ -5,3 +5,3 @@ import { Duplex } from "stream";

readableStream.on("end", () => {
readableStream.removeListener("error", reject);
readableStream.off("error", reject);
resolve();

@@ -8,0 +8,0 @@ });

@@ -48,3 +48,3 @@ import { constants } from "crypto";

server.listen(option.port, option.hostname, () => {
server.removeListener("error", reject);
server.off("error", reject);
resolve();

@@ -51,0 +51,0 @@ });

@@ -33,3 +33,3 @@ import { createServer, Socket } from "net";

preConnectDataList = null;
socket.removeListener("data", preConnectListener);
socket.off("data", preConnectListener);
socket.on("data", data => targetSocket.write(data));

@@ -45,3 +45,3 @@ });

server.listen(port, hostname, () => {
server.removeListener("error", reject);
server.off("error", reject);
resolve();

@@ -48,0 +48,0 @@ });

@@ -70,3 +70,3 @@ import { randomBytes } from "crypto";

const onDataSend = () => {
socket.removeListener("error", reject);
socket.off("error", reject);
resolve();

@@ -104,3 +104,3 @@ };

const resetReceive = () => {
receiveReject && socket.removeListener("error", receiveReject);
receiveReject && socket.off("error", receiveReject);
receiveResolve = null;

@@ -139,3 +139,3 @@ receiveReject = null;

resetReceive();
socket.removeListener("data", onSocketData);
socket.off("data", onSocketData);
});

@@ -142,0 +142,0 @@ }

@@ -28,4 +28,4 @@ import { createEventEmitter } from "../../../common/module/Event";

frameReceiver.clear();
socket.removeListener("error", close);
socket.removeListener("end", close);
socket.off("error", close);
socket.off("end", close);
socket.on("error", NULL_ERROR_LISTENER);

@@ -32,0 +32,0 @@ socket.destroyed || socket.destroy();

@@ -46,3 +46,3 @@ import { catchAsync, catchSync } from "../../common/error";

isBind = !1;
EXIT_LISTENER_LIST.forEach(({event, listener}) => process.removeListener(event, listener));
EXIT_LISTENER_LIST.forEach(({event, listener}) => process.off(event, listener));
};

@@ -49,0 +49,0 @@ const clearExitListener = () => {

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

{"name":"dr-js","version":"0.20.3","description":"A collection of strange functions","author":"dr-js","license":"MIT","keywords":["Dr","Dr-js","JavaScript"],"repository":"github:dr-js/dr-js","bin":"bin/index.js","browser":"library/Dr.browser.js","engines":{"node":">=8.12","npm":">=6"},"sideEffects":false}
{"name":"dr-js","version":"0.20.4-dev.0","description":"A collection of strange functions","author":"dr-js","license":"MIT","keywords":["Dr","Dr-js","JavaScript"],"repository":"github:dr-js/dr-js","bin":"bin/index.js","browser":"library/Dr.browser.js","engines":{"node":">=10.15","npm":">=6"},"sideEffects":false}

Sorry, the diff of this file is too big to display

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