Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

postal

Package Overview
Dependencies
Maintainers
1
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

postal - npm Package Compare versions

Comparing version 0.10.1 to 0.10.2

5

changelog.md

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

##v0.10.2
* Empty topic subscriptions arrays (on `postal.subscriptions.whateverChannel`) will be removed during unsubscription if the subscriber being removed is the last subscriber.
* Empty channel objects (on `postal.susbcriptions`) will be removed during unsubscription if no topic binding properties exist on the channel any longer.
* Special thanks to @sergiopereiraTT for adding these features. :smile:
##v0.10.1

@@ -2,0 +7,0 @@ * Apparently IE 8 doesn't allow "catch" to be used as a method/prop name, unless you utilize bracket notation. (Seriously - With IE6 now a distant memory, I long for the day that IE 8 is *dead*.) @swaff was kind enough to catch this and submit a patch to take care of it.

20

lib/postal.js
/**
* postal - Pub/Sub library providing wildcard subscriptions, complex message handling, etc. Works server and client-side.
* Author: Jim Cowart (http://freshbrewedcode.com/jimcowart)
* Version: v0.10.1
* Version: v0.10.2
* Url: http://github.com/postaljs/postal.js

@@ -396,3 +396,3 @@ * License(s): MIT, GPL

var subs = Array.prototype.slice.call(arguments, 0);
var subDef;
var subDef, channelSubs, topicSubs;
while (subDef = subs.shift()) {

@@ -403,8 +403,10 @@ if (pubInProgress) {

}
if (this.subscriptions[subDef.channel] && this.subscriptions[subDef.channel][subDef.topic]) {
var len = this.subscriptions[subDef.channel][subDef.topic].length;
channelSubs = this.subscriptions[subDef.channel];
topicSubs = channelSubs && channelSubs[subDef.topic];
if (topicSubs) {
var len = topicSubs.length;
idx = 0;
while (idx < len) {
if (this.subscriptions[subDef.channel][subDef.topic][idx] === subDef) {
this.subscriptions[subDef.channel][subDef.topic].splice(idx, 1);
if (topicSubs[idx] === subDef) {
topicSubs.splice(idx, 1);
break;

@@ -414,2 +416,8 @@ }

}
if (topicSubs.length === 0) {
delete channelSubs[subDef.topic];
if (_.isEmpty(channelSubs)) {
delete this.subscriptions[subDef.channel];
}
}
}

@@ -416,0 +424,0 @@ _postal.publish(getSystemMessage("removed", subDef));

/**
* postal - Pub/Sub library providing wildcard subscriptions, complex message handling, etc. Works server and client-side.
* Author: Jim Cowart (http://freshbrewedcode.com/jimcowart)
* Version: v0.10.1
* Version: v0.10.2
* Url: http://github.com/postaljs/postal.js
* License(s): MIT, GPL
*/
(function(t,n){"object"==typeof module&&module.exports?module.exports=n(require("lodash"),require("conduitjs"),this):"function"==typeof define&&define.amd?define(["lodash","conduitjs"],function(i,e){return n(i,e,t)}):t.postal=n(t._,t.Conduit,t)})(this,function(t,n,i){function e(){for(;y.length;)u.unsubscribe(y.shift())}function c(t,n){return{channel:u.configuration.SYSTEM_CHANNEL,topic:"subscription."+t,data:{event:"subscription."+t,channel:n.channel,topic:n.topic}}}function r(n){return"function"==typeof n?n:n?function(i){var e=0,c=0;return t.each(n,function(t,r){e+=1,("topic"===r&&u.configuration.resolver.compare(i.topic,n.topic)||"context"===r&&n.context===(i.callback.context&&i.callback.context()||i.context)||i[r]===n[r])&&(c+=1)}),e===c}:function(){return!0}}function o(t){var n,i=new f(t.channel||this.configuration.DEFAULT_CHANNEL,t.topic,t.callback),e=this.subscriptions[i.channel];return e||(e=this.subscriptions[i.channel]={}),n=this.subscriptions[i.channel][i.topic],n||(n=this.subscriptions[i.channel][i.topic]=[]),n.push(i),i}function s(n){++m,n.channel=n.channel||this.configuration.DEFAULT_CHANNEL,n.timeStamp=new Date,t.each(this.wireTaps,function(t){t(n.data,n)}),this.subscriptions[n.channel]&&t.each(this.subscriptions[n.channel],function(t){for(var i,e=0,c=t.length;c>e;)(i=t[e++])&&w(i,n)}),0===--m&&e()}function a(){for(var t,n=0,i=Array.prototype.slice.call(arguments,0);t=i.shift();){if(m)return void y.push(t);if(this.subscriptions[t.channel]&&this.subscriptions[t.channel][t.topic]){var e=this.subscriptions[t.channel][t.topic].length;for(n=0;e>n;){if(this.subscriptions[t.channel][t.topic][n]===t){this.subscriptions[t.channel][t.topic].splice(n,1);break}n+=1}}u.publish(c("removed",t))}}var u,h=i.postal,l=function(t){this.channel=t||u.configuration.DEFAULT_CHANNEL,this.initialize()};l.prototype.initialize=function(){var t=this.publish;this.publish=new n.Async({target:t,context:this})},l.prototype.subscribe=function(){return u.subscribe({channel:this.channel,topic:1===arguments.length?arguments[0].topic:arguments[0],callback:1===arguments.length?arguments[0].callback:arguments[1]})},l.prototype.publish=function(){var t=1===arguments.length?"[object String]"===Object.prototype.toString.call(arguments[0])?{topic:arguments[0]}:arguments[0]:{topic:arguments[0],data:arguments[1]};t.channel=this.channel,u.publish(t)};var f=function(t,n,i){if(3!==arguments.length)throw new Error("You must provide a channel, topic and callback when creating a SubscriptionDefinition instance.");if(0===n.length)throw new Error("Topics cannot be empty");this.channel=t,this.topic=n,this.subscribe(i)},p=function(){var n;return function(i){var e=!1;return t.isString(i)?(e=i===n,n=i):(e=t.isEqual(i,n),n=t.clone(i)),!e}},b=function(){var n=[];return function(i){var e=!t.any(n,function(n){return t.isObject(i)||t.isArray(i)?t.isEqual(i,n):i===n});return e&&n.push(i),e}},d={withDelay:function(n){if(t.isNaN(n))throw"Milliseconds must be a number";return{name:"withDelay",fn:function(t,i,e){setTimeout(function(){t(i,e)},n)}}},defer:function(){return this.withDelay(0)},stopAfter:function(n,i){if(t.isNaN(n)||0>=n)throw"The value provided to disposeAfter (maxCalls) must be a number greater than zero.";var e=t.after(n,i);return{name:"stopAfter",fn:function(t,n,i){e(),t(n,i)}}},withThrottle:function(n){if(t.isNaN(n))throw"Milliseconds must be a number";return{name:"withThrottle",fn:t.throttle(function(t,n,i){t(n,i)},n)}},withDebounce:function(n,i){if(t.isNaN(n))throw"Milliseconds must be a number";return{name:"debounce",fn:t.debounce(function(t,n,i){t(n,i)},n,!!i)}},withConstraint:function(n){if(!t.isFunction(n))throw"Predicate constraint must be a function";return{name:"withConstraint",fn:function(t,i,e){n.call(this,i,e)&&t.call(this,i,e)}}},distinct:function(t){t=t||{};var n=function(t){return t[0]},i=t.all?new b(n):new p(n);return{name:"distinct",fn:function(t,n,e){i(n)&&t(n,e)}}}};f.prototype={after:function(){return this.callback.after.apply(this,arguments),this},before:function(){return this.callback.before.apply(this,arguments),this},"catch":function(t){var n=this.callback.target(),i=function(){try{n.apply(this,arguments)}catch(i){t(i,arguments[0])}};return this.callback.target(i),this},defer:function(){return this.callback.before(d.defer()),this},disposeAfter:function(t){var n=this;return n.callback.before(d.stopAfter(t,function(){n.unsubscribe.call(n)})),n},distinctUntilChanged:function(){return this.callback.before(d.distinct()),this},distinct:function(){return this.callback.before(d.distinct({all:!0})),this},logError:function(){if(console){var t;t=console.warn?console.warn:console.log,this["catch"](t)}return this},once:function(){return this.disposeAfter(1),this},subscribe:function(t){return this.callback=new n.Async({target:t,context:this}),this},unsubscribe:function(){this.inactive||(this.inactive=!0,u.unsubscribe(this))},withConstraint:function(t){return this.callback.before(d.withConstraint(t)),this},withConstraints:function(t){for(;t.length;)this.callback.before(d.withConstraint(t.shift()));return this},withDebounce:function(t,n){return this.callback.before(d.withDebounce(t,n)),this},withDelay:function(t){return this.callback.before(d.withDelay(t)),this},withThrottle:function(t){return this.callback.before(d.withThrottle(t)),this},withContext:function(t){return this.callback.context(t),this}};var g={cache:{},regex:{},compare:function(n,i){var e,c,r,o=this.cache[i]&&this.cache[i][n];return"undefined"!=typeof o?o:((c=this.regex[n])||(e="^"+t.map(n.split("."),function(t){var n="";return r&&(n="#"!==r?"\\.\\b":"\\b"),n+="#"===t?"[\\s\\S]*":"*"===t?"[^.]+":t,r=t,n}).join("")+"$",c=this.regex[n]=new RegExp(e)),this.cache[i]=this.cache[i]||{},this.cache[i][n]=o=c.test(i),o)},reset:function(){this.cache={},this.regex={}}},w=function(t,n){!t.inactive&&u.configuration.resolver.compare(t.topic,n.topic)&&t.callback(n.data,n)},m=0,y=[];if(u={configuration:{resolver:g,DEFAULT_CHANNEL:"/",SYSTEM_CHANNEL:"postal"},subscriptions:{},wireTaps:[],ChannelDefinition:l,SubscriptionDefinition:f,channel:function(t){return new l(t)},addWireTap:function(t){var n=this;return n.wireTaps.push(t),function(){var i=n.wireTaps.indexOf(t);-1!==i&&n.wireTaps.splice(i,1)}},noConflict:function(){if("undefined"==typeof window||"undefined"!=typeof window&&"function"==typeof define&&define.amd)throw new Error("noConflict can only be used in browser clients which aren't using AMD modules");return i.postal=h,this},getSubscribersFor:function(n){var i=[];return t.each(this.subscriptions,function(e){t.each(e,function(e){i=i.concat(t.filter(e,r(n)))})}),i},reset:function(){this.unsubscribeFor(),this.configuration.resolver.reset(),this.subscriptions={}},unsubscribeFor:function(t){var n=[];this.subscriptions&&(n=this.getSubscribersFor(t),this.unsubscribe.apply(this,n))}},u.subscribe=new n.Sync({target:o,context:u}),u.publish=n.Async({target:s,context:u}),u.unsubscribe=new n.Sync({target:a,context:u}),u.subscribe.after(function(t){u.publish(c("created",t))}),u.subscriptions[u.configuration.SYSTEM_CHANNEL]={},u.linkChannels=function(n,i){var e=[],c=this;return n=t.isArray(n)?n:[n],i=t.isArray(i)?i:[i],t.each(n,function(n){var r=n.topic||"#";t.each(i,function(i){var o=i.channel||c.configuration.DEFAULT_CHANNEL;e.push(c.subscribe({channel:n.channel||c.configuration.DEFAULT_CHANNEL,topic:r,callback:function(n,e){var r=t.clone(e);r.topic=t.isFunction(i.topic)?i.topic(e.topic):i.topic||e.topic,r.channel=o,r.data=n,c.publish(r)}}))})}),e},i&&Object.prototype.hasOwnProperty.call(i,"__postalReady__")&&t.isArray(i.__postalReady__))for(;i.__postalReady__.length;)i.__postalReady__.shift().onReady(u);return u});
(function(t,n){"object"==typeof module&&module.exports?module.exports=n(require("lodash"),require("conduitjs"),this):"function"==typeof define&&define.amd?define(["lodash","conduitjs"],function(i,e){return n(i,e,t)}):t.postal=n(t._,t.Conduit,t)})(this,function(t,n,i){function e(){for(;y.length;)u.unsubscribe(y.shift())}function r(t,n){return{channel:u.configuration.SYSTEM_CHANNEL,topic:"subscription."+t,data:{event:"subscription."+t,channel:n.channel,topic:n.topic}}}function c(n){return"function"==typeof n?n:n?function(i){var e=0,r=0;return t.each(n,function(t,c){e+=1,("topic"===c&&u.configuration.resolver.compare(i.topic,n.topic)||"context"===c&&n.context===(i.callback.context&&i.callback.context()||i.context)||i[c]===n[c])&&(r+=1)}),e===r}:function(){return!0}}function o(t){var n,i=new f(t.channel||this.configuration.DEFAULT_CHANNEL,t.topic,t.callback),e=this.subscriptions[i.channel];return e||(e=this.subscriptions[i.channel]={}),n=this.subscriptions[i.channel][i.topic],n||(n=this.subscriptions[i.channel][i.topic]=[]),n.push(i),i}function s(n){++m,n.channel=n.channel||this.configuration.DEFAULT_CHANNEL,n.timeStamp=new Date,t.each(this.wireTaps,function(t){t(n.data,n)}),this.subscriptions[n.channel]&&t.each(this.subscriptions[n.channel],function(t){for(var i,e=0,r=t.length;r>e;)(i=t[e++])&&w(i,n)}),0===--m&&e()}function a(){for(var n,i,e,c=0,o=Array.prototype.slice.call(arguments,0);n=o.shift();){if(m)return void y.push(n);if(i=this.subscriptions[n.channel],e=i&&i[n.topic]){var s=e.length;for(c=0;s>c;){if(e[c]===n){e.splice(c,1);break}c+=1}0===e.length&&(delete i[n.topic],t.isEmpty(i)&&delete this.subscriptions[n.channel])}u.publish(r("removed",n))}}var u,h=i.postal,l=function(t){this.channel=t||u.configuration.DEFAULT_CHANNEL,this.initialize()};l.prototype.initialize=function(){var t=this.publish;this.publish=new n.Async({target:t,context:this})},l.prototype.subscribe=function(){return u.subscribe({channel:this.channel,topic:1===arguments.length?arguments[0].topic:arguments[0],callback:1===arguments.length?arguments[0].callback:arguments[1]})},l.prototype.publish=function(){var t=1===arguments.length?"[object String]"===Object.prototype.toString.call(arguments[0])?{topic:arguments[0]}:arguments[0]:{topic:arguments[0],data:arguments[1]};t.channel=this.channel,u.publish(t)};var f=function(t,n,i){if(3!==arguments.length)throw new Error("You must provide a channel, topic and callback when creating a SubscriptionDefinition instance.");if(0===n.length)throw new Error("Topics cannot be empty");this.channel=t,this.topic=n,this.subscribe(i)},p=function(){var n;return function(i){var e=!1;return t.isString(i)?(e=i===n,n=i):(e=t.isEqual(i,n),n=t.clone(i)),!e}},b=function(){var n=[];return function(i){var e=!t.any(n,function(n){return t.isObject(i)||t.isArray(i)?t.isEqual(i,n):i===n});return e&&n.push(i),e}},d={withDelay:function(n){if(t.isNaN(n))throw"Milliseconds must be a number";return{name:"withDelay",fn:function(t,i,e){setTimeout(function(){t(i,e)},n)}}},defer:function(){return this.withDelay(0)},stopAfter:function(n,i){if(t.isNaN(n)||0>=n)throw"The value provided to disposeAfter (maxCalls) must be a number greater than zero.";var e=t.after(n,i);return{name:"stopAfter",fn:function(t,n,i){e(),t(n,i)}}},withThrottle:function(n){if(t.isNaN(n))throw"Milliseconds must be a number";return{name:"withThrottle",fn:t.throttle(function(t,n,i){t(n,i)},n)}},withDebounce:function(n,i){if(t.isNaN(n))throw"Milliseconds must be a number";return{name:"debounce",fn:t.debounce(function(t,n,i){t(n,i)},n,!!i)}},withConstraint:function(n){if(!t.isFunction(n))throw"Predicate constraint must be a function";return{name:"withConstraint",fn:function(t,i,e){n.call(this,i,e)&&t.call(this,i,e)}}},distinct:function(t){t=t||{};var n=function(t){return t[0]},i=t.all?new b(n):new p(n);return{name:"distinct",fn:function(t,n,e){i(n)&&t(n,e)}}}};f.prototype={after:function(){return this.callback.after.apply(this,arguments),this},before:function(){return this.callback.before.apply(this,arguments),this},"catch":function(t){var n=this.callback.target(),i=function(){try{n.apply(this,arguments)}catch(i){t(i,arguments[0])}};return this.callback.target(i),this},defer:function(){return this.callback.before(d.defer()),this},disposeAfter:function(t){var n=this;return n.callback.before(d.stopAfter(t,function(){n.unsubscribe.call(n)})),n},distinctUntilChanged:function(){return this.callback.before(d.distinct()),this},distinct:function(){return this.callback.before(d.distinct({all:!0})),this},logError:function(){if(console){var t;t=console.warn?console.warn:console.log,this["catch"](t)}return this},once:function(){return this.disposeAfter(1),this},subscribe:function(t){return this.callback=new n.Async({target:t,context:this}),this},unsubscribe:function(){this.inactive||(this.inactive=!0,u.unsubscribe(this))},withConstraint:function(t){return this.callback.before(d.withConstraint(t)),this},withConstraints:function(t){for(;t.length;)this.callback.before(d.withConstraint(t.shift()));return this},withDebounce:function(t,n){return this.callback.before(d.withDebounce(t,n)),this},withDelay:function(t){return this.callback.before(d.withDelay(t)),this},withThrottle:function(t){return this.callback.before(d.withThrottle(t)),this},withContext:function(t){return this.callback.context(t),this}};var g={cache:{},regex:{},compare:function(n,i){var e,r,c,o=this.cache[i]&&this.cache[i][n];return"undefined"!=typeof o?o:((r=this.regex[n])||(e="^"+t.map(n.split("."),function(t){var n="";return c&&(n="#"!==c?"\\.\\b":"\\b"),n+="#"===t?"[\\s\\S]*":"*"===t?"[^.]+":t,c=t,n}).join("")+"$",r=this.regex[n]=new RegExp(e)),this.cache[i]=this.cache[i]||{},this.cache[i][n]=o=r.test(i),o)},reset:function(){this.cache={},this.regex={}}},w=function(t,n){!t.inactive&&u.configuration.resolver.compare(t.topic,n.topic)&&t.callback(n.data,n)},m=0,y=[];if(u={configuration:{resolver:g,DEFAULT_CHANNEL:"/",SYSTEM_CHANNEL:"postal"},subscriptions:{},wireTaps:[],ChannelDefinition:l,SubscriptionDefinition:f,channel:function(t){return new l(t)},addWireTap:function(t){var n=this;return n.wireTaps.push(t),function(){var i=n.wireTaps.indexOf(t);-1!==i&&n.wireTaps.splice(i,1)}},noConflict:function(){if("undefined"==typeof window||"undefined"!=typeof window&&"function"==typeof define&&define.amd)throw new Error("noConflict can only be used in browser clients which aren't using AMD modules");return i.postal=h,this},getSubscribersFor:function(n){var i=[];return t.each(this.subscriptions,function(e){t.each(e,function(e){i=i.concat(t.filter(e,c(n)))})}),i},reset:function(){this.unsubscribeFor(),this.configuration.resolver.reset(),this.subscriptions={}},unsubscribeFor:function(t){var n=[];this.subscriptions&&(n=this.getSubscribersFor(t),this.unsubscribe.apply(this,n))}},u.subscribe=new n.Sync({target:o,context:u}),u.publish=n.Async({target:s,context:u}),u.unsubscribe=new n.Sync({target:a,context:u}),u.subscribe.after(function(t){u.publish(r("created",t))}),u.subscriptions[u.configuration.SYSTEM_CHANNEL]={},u.linkChannels=function(n,i){var e=[],r=this;return n=t.isArray(n)?n:[n],i=t.isArray(i)?i:[i],t.each(n,function(n){var c=n.topic||"#";t.each(i,function(i){var o=i.channel||r.configuration.DEFAULT_CHANNEL;e.push(r.subscribe({channel:n.channel||r.configuration.DEFAULT_CHANNEL,topic:c,callback:function(n,e){var c=t.clone(e);c.topic=t.isFunction(i.topic)?i.topic(e.topic):i.topic||e.topic,c.channel=o,c.data=n,r.publish(c)}}))})}),e},i&&Object.prototype.hasOwnProperty.call(i,"__postalReady__")&&t.isArray(i.__postalReady__))for(;i.__postalReady__.length;)i.__postalReady__.shift().onReady(u);return u});
{
"name": "postal",
"description": "Pub/Sub library providing wildcard subscriptions, complex message handling, etc. Works server and client-side.",
"version": "0.10.1",
"version": "0.10.2",
"homepage": "http://github.com/postaljs/postal.js",

@@ -45,2 +45,5 @@ "repository": {

"url": "https://github.com/swaff"
}, {
"name": "Sergio Pereira",
"url": "https://github.com/sergiopereiraTT"
}],

@@ -47,0 +50,0 @@ "keywords": [

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

__history = [{"date":"Wed, 21 May 2014 05:51:54 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 05:52:04 GMT","total":{"sloc":491,"maintainability":70.74204872894647},"average":{"sloc":491,"maintainability":"70.74"}},{"date":"Wed, 21 May 2014 06:01:54 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:04:16 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:06:41 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:31:53 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 19 Jun 2014 02:49:09 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}}]
__history = [{"date":"Wed, 21 May 2014 05:51:54 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 05:52:04 GMT","total":{"sloc":491,"maintainability":70.74204872894647},"average":{"sloc":491,"maintainability":"70.74"}},{"date":"Wed, 21 May 2014 06:01:54 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:04:16 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:06:41 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:31:53 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 19 Jun 2014 02:49:09 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 30 Jul 2014 22:00:23 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 30 Jul 2014 22:00:30 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 31 Jul 2014 16:28:21 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 31 Jul 2014 16:28:31 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 31 Jul 2014 17:10:55 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}}]

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

[{"date":"Wed, 21 May 2014 05:51:54 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 05:52:04 GMT","total":{"sloc":491,"maintainability":70.74204872894647},"average":{"sloc":491,"maintainability":"70.74"}},{"date":"Wed, 21 May 2014 06:01:54 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:04:16 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:06:41 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:31:53 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 19 Jun 2014 02:49:09 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}}]
[{"date":"Wed, 21 May 2014 05:51:54 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 05:52:04 GMT","total":{"sloc":491,"maintainability":70.74204872894647},"average":{"sloc":491,"maintainability":"70.74"}},{"date":"Wed, 21 May 2014 06:01:54 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:04:16 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:06:41 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 21 May 2014 06:31:53 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 19 Jun 2014 02:49:09 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 30 Jul 2014 22:00:23 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Wed, 30 Jul 2014 22:00:30 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 31 Jul 2014 16:28:21 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 31 Jul 2014 16:28:31 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}},{"date":"Thu, 31 Jul 2014 17:10:55 GMT","total":{"sloc":0,"maintainability":0},"average":{"sloc":0,"maintainability":"NaN"}}]
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