Socket
Socket
Sign inDemoInstall

angular-luminate-utils

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-luminate-utils - npm Package Compare versions

Comparing version 1.1.1 to 1.1.2

2

dist/js/angular-luminate-utils.js
(function() {
angular.module('ngLuminateUtils', []).constant('APP_INFO', {
version: '1.1.0'
version: '1.1.2'
});

@@ -5,0 +5,0 @@

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

!function(){angular.module("ngLuminateUtils",[]).constant("APP_INFO",{version:"1.1.0"}),angular.module("ngLuminateUtils").provider("$luminateUtilsConfig",function(){var n=this;n.setPath=function(e){var t;return null==e&&(e={}),angular.isString(e.secure)?(e.secure=e.secure.toLowerCase(),(t=e.secure.indexOf("/site/")===e.secure.length-6||e.secure.indexOf("/admin/")===e.secure.length-7)?n.path={secure:e.secure}:t||new Error("Invalid secure path.")):new Error("You must specify a secure path."),n},n.setKey=function(e){return angular.isString(e)?n.apiKey=e:new Error("API Key must be a string but was "+typeof e),n},n.setLocale=function(e){return angular.isString(e)?"en_US"!==e&&"es_US"!==e&&"en_CA"!==e&&"fr_CA"!==e&&"en_GB"!==e&&"en_AU"!==e||(n.locale=e):new Error("Locale must be a string but was "+typeof e),n},n.setDefaultRequestData=function(e){return angular.isString(e)?n.defaultRequestData=e:new Error("Request data must be a string but was "+typeof e),n},n.setDefaultRequestHandler=function(e){return angular.isFunction(e)?n.defaultRequestHandler=e:new Error("Request handler must be a function but was "+typeof e),n},n.$get=function(){return n}}),angular.module("ngLuminateUtils").factory("$luminateMessageCatalog",["$q","$luminateUtilsConfig","$luminateRequestHandler","$luminateRest",function(t,l,g,c){return{get:function(e){var n,a,r,u,s,i=this,o=l.locale||"default";return angular.isString(e)||angular.isArray(e)?(angular.isArray(e)||(e=[e]),n={},u=0,angular.forEach(e,function(e){var t=e.split(":");return 2!==t.length?new Error("Invalid Message Catalog bundle/key pair "+e):(e=g.sanitizeString(t[0],!0,!0),t=g.sanitizeString(t[1],!0,!0),n[e]||(n[e]={},u++),n[e].requestedKeys||(n[e].requestedKeys=[]),n[e].requestedKeys.push(t),n[e].newKeys||(n[e].newKeys=[]),i.messageCatalogCache||(i.messageCatalogCache={}),i.messageCatalogCache[o]||(i.messageCatalogCache[o]={}),i.messageCatalogCache[o][e]||(i.messageCatalogCache[o][e]={}),angular.isString(i.messageCatalogCache[o][e][t])?void 0:n[e].newKeys.push(t))}),0===n.length?g.rejectInvalidRequest("No Message Catalog bundles defined."):(a=t.defer(),r=0,s={},angular.forEach(n,function(t,n){return s[n]={},angular.forEach(t.requestedKeys,function(e){if(i.messageCatalogCache[o][n][e])return s[n][e]=i.messageCatalogCache[o][n][e]}),0!==t.newKeys.length?c.request({api:"content",data:"method=getMessageBundle&bundle="+n+"&keys="+t.newKeys.join(","),requiresAuth:!0}).then(function(e){e=null!=(e=e.data.getMessageBundleResponse)?e.values:void 0;if(e?(angular.isArray(e)||(e=[e]),angular.forEach(e,function(e){var t=e.value;return 0===t.indexOf("Message not found for key: ")&&(t=""),i.messageCatalogCache[o][n][e.key]=t,s[n][e.key]=t})):angular.forEach(t.newKeys,function(e){return i.messageCatalogCache[o][n][e]="",s[n][e]=""}),++r===u)return a.resolve(s)}):++r===u?a.resolve(s):void 0}),a.promise)):g.rejectInvalidRequest("Message Catalog entries must be a string or array but was "+typeof e)},flushCache:function(){return _this.messageCatalogCache={},_this}}}]),angular.module("ngLuminateUtils").factory("$luminateRequestHandler",["$q",function(n){return{sanitizeString:function(e,t,n){return n||(e=angular.element("<div>"+e+"</div>").text()),e=!t?e.replace(/\[\[/g,"").replace(/\]\]/g,"").replace(/::/g,""):e},rejectInvalidRequest:function(e){var t;return null==e&&(e="Invalid request."),(t=n.defer()).reject(e),t.promise}}}]),angular.module("ngLuminateUtils").factory("$luminateRest",["$http","$q","$timeout","APP_INFO","$luminateUtilsConfig","$luminateRequestHandler",function(c,a,d,f,m,p){return{getAuthToken:function(e){var n=this;return!n.authToken||e?(n.authTokenPending=!0,n.request({api:"cons",data:"method=getLoginUrl"}).then(function(e){var t;return n.routingId=null!=(t=e.data.getLoginUrlResponse)?t.routing_id:void 0,n.jsessionId=null!=(t=e.data.getLoginUrlResponse)?t.JSESSIONID:void 0,n.authToken=(null!=(e=e.data.getLoginUrlResponse)?e.token:void 0)||"",n.authTokenPending=!1,a.resolve(n.authToken)})):(n.authTokenPending=!1,a.resolve(n.authToken))},request:function(e){var n,a,r,t,u=this,s=(e=null==e?{}:e).api,i=e.data,o=e.formData,l=e.requiresAuth,g=e.contentType;return g=o&&!g||"multipart/form-data"===(null!=g?g.split(";")[0]:void 0)?"multipart/form-data":"application/x-www-form-urlencoded; charset=UTF-8",m.path.secure?m.apiKey?angular.isString(s)?"CRAddressBookAPI"!==(s="addressbook"===(t=s.toLowerCase())||"advocacy"===t||"cons"===t||"content"===t||"datasync"===t||"donation"===t||"group"===t||"orgevent"===t||"recurring"===t||"survey"===t||"teamraiser"===t?(s="CR"+s.toLowerCase().charAt(0).toUpperCase()+s.toLowerCase().slice(1).toLowerCase()+"API").replace("Addressbook","AddressBook").replace("Datasync","DataSync").replace("Orgevent","OrgEvent"):s)&&"SRAddressBookAPI"!==s&&"CRAdvocacyAPI"!==s&&"SRAdvocacyAPI"!==s&&"CRConsAPI"!==s&&"SRConsAPI"!==s&&"CRContentAPI"!==s&&"SRContentAPI"!==s&&"CRDataSyncAPI"!==s&&"SRDataSyncAPI"!==s&&"CRDonationAPI"!==s&&"SRDonationAPI"!==s&&"CRGroupAPI"!==s&&"SRGroupAPI"!==s&&"CROrgEventAPI"!==s&&"SROrgEventAPI"!==s&&"CRRecurringAPI"!==s&&"SRRecurringAPI"!==s&&"CRSurveyAPI"!==s&&"SRSurveyAPI"!==s&&"CRTeamraiserAPI"!==s&&"SRTeamraiserAPI"!==s?p.rejectInvalidRequest("Invalid API servlet "+s):o&&!angular.isObject(o)?p.rejectInvalidRequest("Request formData must be an object but was "+typeof o):o||angular.isString(i)?(""!==(i=o&&!i?"":i)&&(i+="&"),i+="v=1.0&response_format=json&suppress_response_codes=true&api_key="+m.apiKey,n=-1!==("&"+i).indexOf("&method=getLoginUrl&"),a=-1!==("&"+i).indexOf("&method=login&"),r=-1!==("&"+i).indexOf("&method=logout&"),n||u.authToken?(t=m.path.secure+s,u.routingId&&(t+=";jsessionid="+u.routingId),m.locale&&(i+="&s_locale="+m.locale),m.defaultRequestData&&(i+="&"+m.defaultRequestData),u.jsessionId&&(i+="&JSESSIONID="+u.jsessionId),l&&(i+="&auth="+u.authToken),null!=f&&f.version&&(i+="&ng_luminate_utils="+f.version),i+="&ts="+(new Date).getTime(),o&&angular.forEach(i.split("&"),function(e){var t=e.split("="),e=t[0],t=t[1]||"";return o.append(e,t)}),t={method:"POST",url:t,data:o||i,headers:{"Content-Type":"multipart/form-data"===g?void 0:g},withCredentials:!0},"multipart/form-data"===g&&(t.transformRequest=angular.identity),c(t).then(function(e){var t=e;return a||r?u.getAuthToken(!0).then(function(){return n||!m.defaultRequestHandler?t:m.defaultRequestHandler(t)}):n||!m.defaultRequestHandler?t:m.defaultRequestHandler(t)})):u.authTokenPending?d(function(){return u.request(e)},250):u.getAuthToken(!1).then(function(){return u.request(e)})):p.rejectInvalidRequest("Request data must be a string but was "+typeof i):p.rejectInvalidRequest("API servlet must be a string but was "+typeof s):p.rejectInvalidRequest("You must specify both an API Key."):p.rejectInvalidRequest("You must specify a secure path.")}}}]),angular.module("ngLuminateUtils").factory("$luminateSessionVar",["$luminateRequestHandler","$luminateTemplateTag",function(n,a){return{get:function(e){var t;return angular.isString(e)?(t=0===(e=n.sanitizeString(e,!(t=""))).indexOf("[[")&&e.lastIndexOf("]]")===e.length-2?"[[E80:"+e+"]]":"[[S80:"+e+"]]",a.parse(t).then(function(e){return n.sanitizeString(e,!0)})):n.rejectInvalidRequest("Session variable name must be a string but was "+typeof e)},set:function(e,t){return null==t&&(t=""),angular.isString(e)?!angular.isString(t)&&isNaN(t)?n.rejectInvalidRequest("Session variable value must be a string or number but was "+typeof t):(e=n.sanitizeString(e,!0,!0),t=n.sanitizeString(t,!0),a.parse("[[U1:"+e+"="+t+"]]")):n.rejectInvalidRequest("Session variable name must be a string but was "+typeof e)}}}]),angular.module("ngLuminateUtils").factory("$luminateTemplateTag",["$q","$luminateRequestHandler","$luminateRest",function(n,a,r){return{parse:function(e){var t;return null==e&&(e=""),angular.isString(e)?""===e?((t=n.defer()).resolve(""),t.promise):(e=a.sanitizeString(e,!0),r.request({api:"content",data:"method=getTagInfo&content="+e,requiresAuth:!0}).then(function(e){e=(null!=(e=e.data.getTagInfoResponse)?e.preview:void 0)||"";return n.resolve(e)})):a.rejectInvalidRequest("Template tag must be a string but was "+typeof e)}}}]),angular.module("ngLuminateUtils").directive("luminateInclude",function(){return{scope:{filename:"="},template:'<div ng-bind-html="includeContent" ng-cloak></div>',replace:!0,controller:["$scope","$sce","$luminateRequestHandler","$luminateTemplateTag",function(n,a,r,u){var s=function(){var e,t=n.filename;return angular.isString(t)?(e=-1<(t=r.sanitizeString(t,!(e=""))).indexOf("[[")&&t.indexOf("]]")>t.indexOf("[[")?"[[E84:"+t+"]]":"[[S84:"+(t=r.sanitizeString(t))+"]]",u.parse(e).then(function(e){return n.includeContent=a.trustAsHtml(e)})):r.rejectInvalidRequest("Filename must be a string but was "+typeof t)};return s(),n.$watch("filename",function(e,t){if(e!==t)return s()})}]}}),angular.module("ngLuminateUtils").directive("luminateReusable",function(){return{scope:{pagename:"="},template:'<div ng-bind-html="reusableContent" ng-cloak></div>',replace:!0,controller:["$scope","$sce","$luminateRequestHandler","$luminateTemplateTag",function(n,a,r,u){var s=function(){var e,t=n.pagename;return angular.isString(t)?(e=-1<(t=r.sanitizeString(t,!(e=""))).indexOf("[[")&&t.indexOf("]]")>t.indexOf("[[")?"[[E51:"+t+"]]":"[[S51:"+(t=r.sanitizeString(t))+"]]",u.parse(e).then(function(e){return n.reusableContent=a.trustAsHtml(e)})):r.rejectInvalidRequest("Pagename must be a string but was "+typeof t)};return s(),n.$watch("pagename",function(e,t){if(e!==t)return s()})}]}})}.call(this);
!function(){angular.module("ngLuminateUtils",[]).constant("APP_INFO",{version:"1.1.2"}),angular.module("ngLuminateUtils").provider("$luminateUtilsConfig",function(){var n=this;n.setPath=function(e){var t;return null==e&&(e={}),angular.isString(e.secure)?(e.secure=e.secure.toLowerCase(),(t=e.secure.indexOf("/site/")===e.secure.length-6||e.secure.indexOf("/admin/")===e.secure.length-7)?n.path={secure:e.secure}:t||new Error("Invalid secure path.")):new Error("You must specify a secure path."),n},n.setKey=function(e){return angular.isString(e)?n.apiKey=e:new Error("API Key must be a string but was "+typeof e),n},n.setLocale=function(e){return angular.isString(e)?"en_US"!==e&&"es_US"!==e&&"en_CA"!==e&&"fr_CA"!==e&&"en_GB"!==e&&"en_AU"!==e||(n.locale=e):new Error("Locale must be a string but was "+typeof e),n},n.setDefaultRequestData=function(e){return angular.isString(e)?n.defaultRequestData=e:new Error("Request data must be a string but was "+typeof e),n},n.setDefaultRequestHandler=function(e){return angular.isFunction(e)?n.defaultRequestHandler=e:new Error("Request handler must be a function but was "+typeof e),n},n.$get=function(){return n}}),angular.module("ngLuminateUtils").factory("$luminateMessageCatalog",["$q","$luminateUtilsConfig","$luminateRequestHandler","$luminateRest",function(t,l,g,c){return{get:function(e){var n,a,r,u,s,i=this,o=l.locale||"default";return angular.isString(e)||angular.isArray(e)?(angular.isArray(e)||(e=[e]),n={},u=0,angular.forEach(e,function(e){var t=e.split(":");return 2!==t.length?new Error("Invalid Message Catalog bundle/key pair "+e):(e=g.sanitizeString(t[0],!0,!0),t=g.sanitizeString(t[1],!0,!0),n[e]||(n[e]={},u++),n[e].requestedKeys||(n[e].requestedKeys=[]),n[e].requestedKeys.push(t),n[e].newKeys||(n[e].newKeys=[]),i.messageCatalogCache||(i.messageCatalogCache={}),i.messageCatalogCache[o]||(i.messageCatalogCache[o]={}),i.messageCatalogCache[o][e]||(i.messageCatalogCache[o][e]={}),angular.isString(i.messageCatalogCache[o][e][t])?void 0:n[e].newKeys.push(t))}),0===n.length?g.rejectInvalidRequest("No Message Catalog bundles defined."):(a=t.defer(),r=0,s={},angular.forEach(n,function(t,n){return s[n]={},angular.forEach(t.requestedKeys,function(e){if(i.messageCatalogCache[o][n][e])return s[n][e]=i.messageCatalogCache[o][n][e]}),0!==t.newKeys.length?c.request({api:"content",data:"method=getMessageBundle&bundle="+n+"&keys="+t.newKeys.join(","),requiresAuth:!0}).then(function(e){e=null!=(e=e.data.getMessageBundleResponse)?e.values:void 0;if(e?(angular.isArray(e)||(e=[e]),angular.forEach(e,function(e){var t=e.value;return 0===t.indexOf("Message not found for key: ")&&(t=""),i.messageCatalogCache[o][n][e.key]=t,s[n][e.key]=t})):angular.forEach(t.newKeys,function(e){return i.messageCatalogCache[o][n][e]="",s[n][e]=""}),++r===u)return a.resolve(s)}):++r===u?a.resolve(s):void 0}),a.promise)):g.rejectInvalidRequest("Message Catalog entries must be a string or array but was "+typeof e)},flushCache:function(){return _this.messageCatalogCache={},_this}}}]),angular.module("ngLuminateUtils").factory("$luminateRequestHandler",["$q",function(n){return{sanitizeString:function(e,t,n){return n||(e=angular.element("<div>"+e+"</div>").text()),e=!t?e.replace(/\[\[/g,"").replace(/\]\]/g,"").replace(/::/g,""):e},rejectInvalidRequest:function(e){var t;return null==e&&(e="Invalid request."),(t=n.defer()).reject(e),t.promise}}}]),angular.module("ngLuminateUtils").factory("$luminateRest",["$http","$q","$timeout","APP_INFO","$luminateUtilsConfig","$luminateRequestHandler",function(c,a,d,f,m,p){return{getAuthToken:function(e){var n=this;return!n.authToken||e?(n.authTokenPending=!0,n.request({api:"cons",data:"method=getLoginUrl"}).then(function(e){var t;return n.routingId=null!=(t=e.data.getLoginUrlResponse)?t.routing_id:void 0,n.jsessionId=null!=(t=e.data.getLoginUrlResponse)?t.JSESSIONID:void 0,n.authToken=(null!=(e=e.data.getLoginUrlResponse)?e.token:void 0)||"",n.authTokenPending=!1,a.resolve(n.authToken)})):(n.authTokenPending=!1,a.resolve(n.authToken))},request:function(e){var n,a,r,t,u=this,s=(e=null==e?{}:e).api,i=e.data,o=e.formData,l=e.requiresAuth,g=e.contentType;return g=o&&!g||"multipart/form-data"===(null!=g?g.split(";")[0]:void 0)?"multipart/form-data":"application/x-www-form-urlencoded; charset=UTF-8",m.path.secure?m.apiKey?angular.isString(s)?"CRAddressBookAPI"!==(s="addressbook"===(t=s.toLowerCase())||"advocacy"===t||"cons"===t||"content"===t||"datasync"===t||"donation"===t||"group"===t||"orgevent"===t||"recurring"===t||"survey"===t||"teamraiser"===t?(s="CR"+s.toLowerCase().charAt(0).toUpperCase()+s.toLowerCase().slice(1).toLowerCase()+"API").replace("Addressbook","AddressBook").replace("Datasync","DataSync").replace("Orgevent","OrgEvent"):s)&&"SRAddressBookAPI"!==s&&"CRAdvocacyAPI"!==s&&"SRAdvocacyAPI"!==s&&"CRConsAPI"!==s&&"SRConsAPI"!==s&&"CRContentAPI"!==s&&"SRContentAPI"!==s&&"CRDataSyncAPI"!==s&&"SRDataSyncAPI"!==s&&"CRDonationAPI"!==s&&"SRDonationAPI"!==s&&"CRGroupAPI"!==s&&"SRGroupAPI"!==s&&"CROrgEventAPI"!==s&&"SROrgEventAPI"!==s&&"CRRecurringAPI"!==s&&"SRRecurringAPI"!==s&&"CRSurveyAPI"!==s&&"SRSurveyAPI"!==s&&"CRTeamraiserAPI"!==s&&"SRTeamraiserAPI"!==s?p.rejectInvalidRequest("Invalid API servlet "+s):o&&!angular.isObject(o)?p.rejectInvalidRequest("Request formData must be an object but was "+typeof o):o||angular.isString(i)?(""!==(i=o&&!i?"":i)&&(i+="&"),i+="v=1.0&response_format=json&suppress_response_codes=true&api_key="+m.apiKey,n=-1!==("&"+i).indexOf("&method=getLoginUrl&"),a=-1!==("&"+i).indexOf("&method=login&"),r=-1!==("&"+i).indexOf("&method=logout&"),n||u.authToken?(t=m.path.secure+s,u.routingId&&(t+=";jsessionid="+u.routingId),m.locale&&(i+="&s_locale="+m.locale),m.defaultRequestData&&(i+="&"+m.defaultRequestData),u.jsessionId&&(i+="&JSESSIONID="+u.jsessionId),l&&(i+="&auth="+u.authToken),null!=f&&f.version&&(i+="&ng_luminate_utils="+f.version),i+="&ts="+(new Date).getTime(),o&&angular.forEach(i.split("&"),function(e){var t=e.split("="),e=t[0],t=t[1]||"";return o.append(e,t)}),t={method:"POST",url:t,data:o||i,headers:{"Content-Type":"multipart/form-data"===g?void 0:g},withCredentials:!0},"multipart/form-data"===g&&(t.transformRequest=angular.identity),c(t).then(function(e){var t=e;return a||r?u.getAuthToken(!0).then(function(){return n||!m.defaultRequestHandler?t:m.defaultRequestHandler(t)}):n||!m.defaultRequestHandler?t:m.defaultRequestHandler(t)})):u.authTokenPending?d(function(){return u.request(e)},250):u.getAuthToken(!1).then(function(){return u.request(e)})):p.rejectInvalidRequest("Request data must be a string but was "+typeof i):p.rejectInvalidRequest("API servlet must be a string but was "+typeof s):p.rejectInvalidRequest("You must specify both an API Key."):p.rejectInvalidRequest("You must specify a secure path.")}}}]),angular.module("ngLuminateUtils").factory("$luminateSessionVar",["$luminateRequestHandler","$luminateTemplateTag",function(n,a){return{get:function(e){var t;return angular.isString(e)?(t=0===(e=n.sanitizeString(e,!(t=""))).indexOf("[[")&&e.lastIndexOf("]]")===e.length-2?"[[E80:"+e+"]]":"[[S80:"+e+"]]",a.parse(t).then(function(e){return n.sanitizeString(e,!0)})):n.rejectInvalidRequest("Session variable name must be a string but was "+typeof e)},set:function(e,t){return null==t&&(t=""),angular.isString(e)?!angular.isString(t)&&isNaN(t)?n.rejectInvalidRequest("Session variable value must be a string or number but was "+typeof t):(e=n.sanitizeString(e,!0,!0),t=n.sanitizeString(t,!0),a.parse("[[U1:"+e+"="+t+"]]")):n.rejectInvalidRequest("Session variable name must be a string but was "+typeof e)}}}]),angular.module("ngLuminateUtils").factory("$luminateTemplateTag",["$q","$luminateRequestHandler","$luminateRest",function(n,a,r){return{parse:function(e){var t;return null==e&&(e=""),angular.isString(e)?""===e?((t=n.defer()).resolve(""),t.promise):(e=a.sanitizeString(e,!0),r.request({api:"content",data:"method=getTagInfo&content="+e,requiresAuth:!0}).then(function(e){e=(null!=(e=e.data.getTagInfoResponse)?e.preview:void 0)||"";return n.resolve(e)})):a.rejectInvalidRequest("Template tag must be a string but was "+typeof e)}}}]),angular.module("ngLuminateUtils").directive("luminateInclude",function(){return{scope:{filename:"="},template:'<div ng-bind-html="includeContent" ng-cloak></div>',replace:!0,controller:["$scope","$sce","$luminateRequestHandler","$luminateTemplateTag",function(n,a,r,u){var s=function(){var e,t=n.filename;return angular.isString(t)?(e=-1<(t=r.sanitizeString(t,!(e=""))).indexOf("[[")&&t.indexOf("]]")>t.indexOf("[[")?"[[E84:"+t+"]]":"[[S84:"+(t=r.sanitizeString(t))+"]]",u.parse(e).then(function(e){return n.includeContent=a.trustAsHtml(e)})):r.rejectInvalidRequest("Filename must be a string but was "+typeof t)};return s(),n.$watch("filename",function(e,t){if(e!==t)return s()})}]}}),angular.module("ngLuminateUtils").directive("luminateReusable",function(){return{scope:{pagename:"="},template:'<div ng-bind-html="reusableContent" ng-cloak></div>',replace:!0,controller:["$scope","$sce","$luminateRequestHandler","$luminateTemplateTag",function(n,a,r,u){var s=function(){var e,t=n.pagename;return angular.isString(t)?(e=-1<(t=r.sanitizeString(t,!(e=""))).indexOf("[[")&&t.indexOf("]]")>t.indexOf("[[")?"[[E51:"+t+"]]":"[[S51:"+(t=r.sanitizeString(t))+"]]",u.parse(e).then(function(e){return n.reusableContent=a.trustAsHtml(e)})):r.rejectInvalidRequest("Pagename must be a string but was "+typeof t)};return s(),n.$watch("pagename",function(e,t){if(e!==t)return s()})}]}})}.call(this);
{
"name": "angular-luminate-utils",
"description": "Luminate Online utilities for AngularJS 1.x apps.",
"version": "1.1.1",
"version": "1.1.2",
"license": "MIT",

@@ -6,0 +6,0 @@ "repository": [

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