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

forum-ch-17

Package Overview
Dependencies
Maintainers
1
Versions
72
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

forum-ch-17 - npm Package Compare versions

Comparing version 0.0.61 to 0.0.62

2

package.json
{
"name": "forum-ch-17",
"version": "0.0.61",
"version": "0.0.62",
"description": "",

@@ -5,0 +5,0 @@ "main": "vueComponents.js",

@@ -259,3 +259,3 @@ Vue.component('elemento-raza', {

name = 'Avanzado';
base = 4;
base = 2;
break;

@@ -265,3 +265,3 @@

name = 'Tecnológico';
base = 6;
base = 4;
break;

@@ -271,3 +271,3 @@

name = 'Biótico';
base = 6;
base = 4;
break;

@@ -282,3 +282,3 @@

name = 'Básico';
base = 2;
base = 0;
break;

@@ -285,0 +285,0 @@ }

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

Vue.component("elemento-raza",{props:["format","name","comodin"],data(){return{item:Object.values(forumRaces).find(e=>e.id.toLowerCase()===this.name.toLowerCase())}},template:'\n <div class="character-race">\n <strong>{{ item.name }}<template v-if="!format">:</template></strong>\n <ul v-if="format">\n <li v-for="message in item.content" v-html="message"></li>\n </ul>\n <template v-else v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n <template v-if="comodin"><br><small v-html="comodin"></small></template>\n </div>\n '}),Vue.component("elemento-grupo",{props:["format","name","comodin"],data(){return{item:Object.values(forumGroups).find(e=>e.id.toLowerCase()===this.name.toLowerCase())}},template:'\n <div class="character-group">\n <strong>{{ item.name }}<template v-if="!format">:</template></strong>\n <ul v-if="format">\n <li v-for="message in item.content" v-html="message"></li>\n </ul>\n <template v-else v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n <template v-if="comodin"><br><small v-html="comodin"></small></template>\n </div>\n '}),Vue.component("elemento-poderes",{props:["name"],data(){return{item:Object.values(forumPowers).flat().find(e=>e.name.toLowerCase()===this.name.toLowerCase())}},template:'\n <div class="character-power">\n <strong>{{ item.name }}</strong><br>\n <template v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n </div>\n '}),Vue.component("elemento-tienda",{props:["name"],data(){return{item:Object.values(forumItems).flat().find(e=>e.name.toLowerCase()===this.name.toLowerCase())}},template:'\n <div class="character-item">\n <strong>{{ item.name }}</strong><br>\n <span v-html="item.description"></span>. \n <template v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n </div>\n '}),Vue.component("listado-poderes",{props:["type"],data(){return{list:forumPowers[this.type].filter(e=>!1===e.hidden)}},template:'\n <ul>\n <li v-for="item in list" :key="item.name">\n <strong>{{ item.name }}</strong><br>\n <template v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n </li>\n </ul>\n '}),Vue.component("listado-tienda",{props:["type"],data(){return{list:forumItems[this.type].filter(e=>!1===e.hidden)}},template:'\n <ul>\n <li v-for="item in list" :key="item.name">\n <strong>{{ item.name }} (<em>{{ item.price }}</em>)</strong><br>\n <span v-html="item.description"></span>. \n <template v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n </li>\n </ul>\n '}),Vue.component("cuerpo-expediente",{props:["race","group","rank","attributes","efforts","proficiencies","powers","equipment","augments","comodinRace","comodinGroup","extraHearts","extraAttributes","extraEfforts","extraProficiencies","extraPowers"],computed:{characterBonus(){const e=parseInt(this.rank);return e<1?0:e<4?2:e<7?4:6},characterHearts(){const e=parseInt(this.rank),t=parseInt(this.extraHearts);return e<5?2+t:e<10?4+t:6+t},characterPowerCount(){const e=parseInt(this.rank),t=parseInt(this.extraPowers.split(",").filter(e=>""!==e).length);return e<1?0+t:e<4?1+t:e<5?2+t:e<7?3+t:e<10?4+t:5+t},characterAttributes(){return this.attributes.split(",").map((e,t)=>{let a,r;switch(t){case 1:a="Destreza",r="DES";break;case 2:a="Constitución",r="CON";break;case 3:a="Inteligencia",r="INT";break;case 4:a="Sabiduría",r="SAB";break;case 5:a="Carisma",r="CAR";break;default:a="Fuerza",r="FUE"}return{name:a,short:r,value:parseInt(e)}})},characterExtraAttributes(){return this.extraAttributes.split(",").map((e,t)=>{let a,r;switch(t){case 1:a="Destreza",r="DES";break;case 2:a="Constitución",r="CON";break;case 3:a="Inteligencia",r="INT";break;case 4:a="Sabiduría",r="SAB";break;case 5:a="Carisma",r="CAR";break;default:a="Fuerza",r="FUE"}return{name:a,short:r,value:parseInt(e)}})},characterEfforts(){return this.efforts.split(",").map((e,t)=>{let a,r;switch(t){case 1:a="Avanzado",r=4;break;case 2:a="Tecnológico",r=6;break;case 3:a="Biótico",r=6;break;case 4:a="Crítico",r=8;break;default:a="Básico",r=2}return{name:a,value:r+parseInt(e)}})},characterExtraEfforts(){return this.extraEfforts.split(",").map((e,t)=>{let a,r;switch(t){case 1:a="Avanzado",r=0;break;case 2:a="Tecnológico",r=0;break;case 3:a="Biótico",r=0;break;case 4:a="Crítico",r=0;break;default:a="Básico",r=0}return{name:a,value:r+parseInt(e)}})},characterProficiencies(){return[...this.proficiencies.split(",").map(e=>e.trim()),...this.extraProficiencies.split(",").map(e=>e.trim())]},characterAttributeSkills(){return this.characterAttributes.map(e=>{const{name:t,short:a,value:r}=e,n=this.characterExtraAttributes.find(e=>e.short===a).value;return{name:t,short:a,value:r+n+(this.characterProficiencies.indexOf(t)>-1?this.characterBonus:0)}})},characterGeneralSkills(){const e={FUE:["Atletismo"],DES:["Prestidigitación","Vehículos","Sigilo"],CON:[],INT:["Ciencia","Electrónica","Historia"],SAB:["Perspicacia","Supervivencia","Animales"],CAR:["Engaño","Intimidación","Persuasión"]};return Object.entries(e).map(e=>{const t=this.characterAttributes.find(t=>t.short===e[0]).value,a=this.characterExtraAttributes.find(t=>t.short===e[0]).value;return e[1].map(r=>({name:r,attribute:e[0],value:t+a+(this.characterProficiencies.indexOf(r)>-1?this.characterBonus:0)}))})},characterCombatSkills(){const e={FUE:["Contundentes","Escopetas","Pesadas"],DES:["Filo","Fusiles","Granadas","Pistolas","Rifles","Subfusiles"],CON:[],INT:["Tecnología"],SAB:["Biótica"],CAR:[]};return Object.entries(e).map(e=>{const t=this.characterAttributes.find(t=>t.short===e[0]).value,a=this.characterExtraAttributes.find(t=>t.short===e[0]).value;return e[1].map(r=>({name:r,attribute:e[0],value:t+a+(this.characterProficiencies.indexOf(r)>-1?this.characterBonus:0)}))})},characterPowers(){return[...this.powers.split(",").map(e=>e.trim()).filter(e=>""!==e),...this.extraPowers.split(",").map(e=>e.trim()).filter(e=>""!==e)].sort()},characterEquipment(){return this.equipment.split(",").sort().map(e=>e.trim()).filter(e=>""!==e)},characterAugments(){return this.augments.split(",").sort().map(e=>e.trim()).filter(e=>""!==e)}},template:'\n <cuerpo-interior title="Características">\n <div class="character-perks">\n <elemento-raza :name="race" :comodin="comodinRace" format="true"></elemento-raza>\n <elemento-grupo :name="group" :comodin="comodinGroup" format="true"></elemento-grupo>\n </div>\n <div class="character-header">\n <div class="character-header-element character-hearts">\n <div class="character-header-element-title">Corazones</div>\n <div class="character-header-element-content">\n <i v-for="n in characterHearts" class="fa-solid fa-heart"></i>\n </div>\n </div>\n <div class="character-header-element character-bonus">\n <div class="character-header-element-title">Bonificador</div>\n <div class="character-header-element-content">\n +{{ characterBonus }}\n </div>\n </div>\n </div>\n <div class="character-stats">\n <ul class="character-attributes no-style">\n <li v-for="(attribute, index) in characterAttributes" class="character-attribute">\n <div class="character-attribute-panel character-panel-main">\n <div class="character-attribute-main">\n <div class="character-attribute-value"><template v-if="attribute.value + characterExtraAttributes[index].value > -1">+</template>{{ attribute.value + characterExtraAttributes[index].value }}</div>\n <div class="character-attribute-name">{{ attribute.name }}</div>\n </div>\n <div class="character-attribute-sub">\n <div class="character-attribute-group">\n <div class="character-attribute-group-value">{{ attribute.value }}</div>\n <div class="character-attribute-group-name">Base</div>\n </div>\n <div class="character-attribute-group">\n <div class="character-attribute-group-value">{{ characterExtraAttributes[index].value }}</div>\n <div class="character-attribute-group-name">Extra</div>\n </div>\n </div>\n </div>\n <div class="character-attribute-panel">\n <div class="character-attribute-proficiencies">\n <ul class="proficency-list no-style">\n <li v-for="proficency in characterGeneralSkills[index]"><template v-if="proficency.value > -1">+</template>{{ proficency.value }} {{ proficency.name }}</li>\n </ul>\n <ul class="proficency-list no-style">\n <li v-for="proficency in characterCombatSkills[index]"><template v-if="proficency.value > -1">+</template>{{ proficency.value }} {{ proficency.name }}</li>\n </ul>\n </div>\n <div class="character-attribute-fallback">\n <small><template v-if="characterAttributeSkills[index].value > -1">+</template>{{ characterAttributeSkills[index].value }} en las <em>Tiradas de Salvación</em> de <strong>{{ characterAttributeSkills[index].name }}</strong></small>\n </div>\n </div>\n </li>\n </ul>\n <ul class="character-efforts no-style">\n <li v-for="(effort, index) in characterEfforts" class="character-effort">\n <div class="character-effort-panel character-panel-main">\n <div class="character-effort-main">\n <div class="character-effort-value"><template v-if="effort.value + characterExtraEfforts[index].value > -1">+</template>{{ effort.value + characterExtraEfforts[index].value }}</div>\n <div class="character-effort-name">Esfuerzo {{ effort.name }}</div>\n </div>\n <div class="character-effort-sub">\n <div class="character-effort-group">\n <div class="character-effort-group-value">{{ effort.value }}</div>\n <div class="character-effort-group-name">Base</div>\n </div>\n <div class="character-effort-group">\n <div class="character-effort-group-value">{{ characterExtraEfforts[index].value }}</div>\n <div class="character-effort-group-name">Extra</div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <div v-if="characterPowers.length" class="character-extras">\n <h4 class="character-extras-title">Poderes <span class="character-extras-count">({{ characterPowers.length }}/{{ characterPowerCount }})</span></h4>\n <ul class="character-extras-content character-powers no-style">\n <li v-for="power in characterPowers" class="character-extras-element">\n <elemento-poderes :name="power"></elemento-poderes>\n </li>\n </ul>\n </div>\n <div v-if="characterEquipment.length" class="character-extras">\n <h4 class="character-extras-title">Equipo <span class="character-extras-count">({{ characterEquipment.length }}/15)</span></h4>\n <ul class="character-extras-content character-equipment no-style">\n <li v-for="item in characterEquipment" class="character-extras-element">\n <elemento-tienda :name="item"></elemento-tienda>\n </li>\n </ul>\n </div>\n <div v-if="characterAugments.length" class="character-extras">\n <h4 class="character-extras-title">Aumentos <span class="character-extras-count">({{ characterAugments.length }}/{{ characterEfforts[1].value - 2 }})</span></h4>\n <ul class="character-extras-content character-augments no-style">\n <li v-for="item in characterAugments" class="character-extras-element">\n <elemento-tienda :name="item"></elemento-tienda>\n </li>\n </ul>\n </div>\n </cuerpo-interior>\n '});
Vue.component("elemento-raza",{props:["format","name","comodin"],data(){return{item:Object.values(forumRaces).find(e=>e.id.toLowerCase()===this.name.toLowerCase())}},template:'\n <div class="character-race">\n <strong>{{ item.name }}<template v-if="!format">:</template></strong>\n <ul v-if="format">\n <li v-for="message in item.content" v-html="message"></li>\n </ul>\n <template v-else v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n <template v-if="comodin"><br><small v-html="comodin"></small></template>\n </div>\n '}),Vue.component("elemento-grupo",{props:["format","name","comodin"],data(){return{item:Object.values(forumGroups).find(e=>e.id.toLowerCase()===this.name.toLowerCase())}},template:'\n <div class="character-group">\n <strong>{{ item.name }}<template v-if="!format">:</template></strong>\n <ul v-if="format">\n <li v-for="message in item.content" v-html="message"></li>\n </ul>\n <template v-else v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n <template v-if="comodin"><br><small v-html="comodin"></small></template>\n </div>\n '}),Vue.component("elemento-poderes",{props:["name"],data(){return{item:Object.values(forumPowers).flat().find(e=>e.name.toLowerCase()===this.name.toLowerCase())}},template:'\n <div class="character-power">\n <strong>{{ item.name }}</strong><br>\n <template v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n </div>\n '}),Vue.component("elemento-tienda",{props:["name"],data(){return{item:Object.values(forumItems).flat().find(e=>e.name.toLowerCase()===this.name.toLowerCase())}},template:'\n <div class="character-item">\n <strong>{{ item.name }}</strong><br>\n <span v-html="item.description"></span>. \n <template v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n </div>\n '}),Vue.component("listado-poderes",{props:["type"],data(){return{list:forumPowers[this.type].filter(e=>!1===e.hidden)}},template:'\n <ul>\n <li v-for="item in list" :key="item.name">\n <strong>{{ item.name }}</strong><br>\n <template v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n </li>\n </ul>\n '}),Vue.component("listado-tienda",{props:["type"],data(){return{list:forumItems[this.type].filter(e=>!1===e.hidden)}},template:'\n <ul>\n <li v-for="item in list" :key="item.name">\n <strong>{{ item.name }} (<em>{{ item.price }}</em>)</strong><br>\n <span v-html="item.description"></span>. \n <template v-for="message in item.content">\n <span v-html="message"></span>. \n </template>\n </li>\n </ul>\n '}),Vue.component("cuerpo-expediente",{props:["race","group","rank","attributes","efforts","proficiencies","powers","equipment","augments","comodinRace","comodinGroup","extraHearts","extraAttributes","extraEfforts","extraProficiencies","extraPowers"],computed:{characterBonus(){const e=parseInt(this.rank);return e<1?0:e<4?2:e<7?4:6},characterHearts(){const e=parseInt(this.rank),t=parseInt(this.extraHearts);return e<5?2+t:e<10?4+t:6+t},characterPowerCount(){const e=parseInt(this.rank),t=parseInt(this.extraPowers.split(",").filter(e=>""!==e).length);return e<1?0+t:e<4?1+t:e<5?2+t:e<7?3+t:e<10?4+t:5+t},characterAttributes(){return this.attributes.split(",").map((e,t)=>{let a,r;switch(t){case 1:a="Destreza",r="DES";break;case 2:a="Constitución",r="CON";break;case 3:a="Inteligencia",r="INT";break;case 4:a="Sabiduría",r="SAB";break;case 5:a="Carisma",r="CAR";break;default:a="Fuerza",r="FUE"}return{name:a,short:r,value:parseInt(e)}})},characterExtraAttributes(){return this.extraAttributes.split(",").map((e,t)=>{let a,r;switch(t){case 1:a="Destreza",r="DES";break;case 2:a="Constitución",r="CON";break;case 3:a="Inteligencia",r="INT";break;case 4:a="Sabiduría",r="SAB";break;case 5:a="Carisma",r="CAR";break;default:a="Fuerza",r="FUE"}return{name:a,short:r,value:parseInt(e)}})},characterEfforts(){return this.efforts.split(",").map((e,t)=>{let a,r;switch(t){case 1:a="Avanzado",r=2;break;case 2:a="Tecnológico",r=4;break;case 3:a="Biótico",r=4;break;case 4:a="Crítico",r=8;break;default:a="Básico",r=0}return{name:a,value:r+parseInt(e)}})},characterExtraEfforts(){return this.extraEfforts.split(",").map((e,t)=>{let a,r;switch(t){case 1:a="Avanzado",r=0;break;case 2:a="Tecnológico",r=0;break;case 3:a="Biótico",r=0;break;case 4:a="Crítico",r=0;break;default:a="Básico",r=0}return{name:a,value:r+parseInt(e)}})},characterProficiencies(){return[...this.proficiencies.split(",").map(e=>e.trim()),...this.extraProficiencies.split(",").map(e=>e.trim())]},characterAttributeSkills(){return this.characterAttributes.map(e=>{const{name:t,short:a,value:r}=e,n=this.characterExtraAttributes.find(e=>e.short===a).value;return{name:t,short:a,value:r+n+(this.characterProficiencies.indexOf(t)>-1?this.characterBonus:0)}})},characterGeneralSkills(){const e={FUE:["Atletismo"],DES:["Prestidigitación","Vehículos","Sigilo"],CON:[],INT:["Ciencia","Electrónica","Historia"],SAB:["Perspicacia","Supervivencia","Animales"],CAR:["Engaño","Intimidación","Persuasión"]};return Object.entries(e).map(e=>{const t=this.characterAttributes.find(t=>t.short===e[0]).value,a=this.characterExtraAttributes.find(t=>t.short===e[0]).value;return e[1].map(r=>({name:r,attribute:e[0],value:t+a+(this.characterProficiencies.indexOf(r)>-1?this.characterBonus:0)}))})},characterCombatSkills(){const e={FUE:["Contundentes","Escopetas","Pesadas"],DES:["Filo","Fusiles","Granadas","Pistolas","Rifles","Subfusiles"],CON:[],INT:["Tecnología"],SAB:["Biótica"],CAR:[]};return Object.entries(e).map(e=>{const t=this.characterAttributes.find(t=>t.short===e[0]).value,a=this.characterExtraAttributes.find(t=>t.short===e[0]).value;return e[1].map(r=>({name:r,attribute:e[0],value:t+a+(this.characterProficiencies.indexOf(r)>-1?this.characterBonus:0)}))})},characterPowers(){return[...this.powers.split(",").map(e=>e.trim()).filter(e=>""!==e),...this.extraPowers.split(",").map(e=>e.trim()).filter(e=>""!==e)].sort()},characterEquipment(){return this.equipment.split(",").sort().map(e=>e.trim()).filter(e=>""!==e)},characterAugments(){return this.augments.split(",").sort().map(e=>e.trim()).filter(e=>""!==e)}},template:'\n <cuerpo-interior title="Características">\n <div class="character-perks">\n <elemento-raza :name="race" :comodin="comodinRace" format="true"></elemento-raza>\n <elemento-grupo :name="group" :comodin="comodinGroup" format="true"></elemento-grupo>\n </div>\n <div class="character-header">\n <div class="character-header-element character-hearts">\n <div class="character-header-element-title">Corazones</div>\n <div class="character-header-element-content">\n <i v-for="n in characterHearts" class="fa-solid fa-heart"></i>\n </div>\n </div>\n <div class="character-header-element character-bonus">\n <div class="character-header-element-title">Bonificador</div>\n <div class="character-header-element-content">\n +{{ characterBonus }}\n </div>\n </div>\n </div>\n <div class="character-stats">\n <ul class="character-attributes no-style">\n <li v-for="(attribute, index) in characterAttributes" class="character-attribute">\n <div class="character-attribute-panel character-panel-main">\n <div class="character-attribute-main">\n <div class="character-attribute-value"><template v-if="attribute.value + characterExtraAttributes[index].value > -1">+</template>{{ attribute.value + characterExtraAttributes[index].value }}</div>\n <div class="character-attribute-name">{{ attribute.name }}</div>\n </div>\n <div class="character-attribute-sub">\n <div class="character-attribute-group">\n <div class="character-attribute-group-value">{{ attribute.value }}</div>\n <div class="character-attribute-group-name">Base</div>\n </div>\n <div class="character-attribute-group">\n <div class="character-attribute-group-value">{{ characterExtraAttributes[index].value }}</div>\n <div class="character-attribute-group-name">Extra</div>\n </div>\n </div>\n </div>\n <div class="character-attribute-panel">\n <div class="character-attribute-proficiencies">\n <ul class="proficency-list no-style">\n <li v-for="proficency in characterGeneralSkills[index]"><template v-if="proficency.value > -1">+</template>{{ proficency.value }} {{ proficency.name }}</li>\n </ul>\n <ul class="proficency-list no-style">\n <li v-for="proficency in characterCombatSkills[index]"><template v-if="proficency.value > -1">+</template>{{ proficency.value }} {{ proficency.name }}</li>\n </ul>\n </div>\n <div class="character-attribute-fallback">\n <small><template v-if="characterAttributeSkills[index].value > -1">+</template>{{ characterAttributeSkills[index].value }} en las <em>Tiradas de Salvación</em> de <strong>{{ characterAttributeSkills[index].name }}</strong></small>\n </div>\n </div>\n </li>\n </ul>\n <ul class="character-efforts no-style">\n <li v-for="(effort, index) in characterEfforts" class="character-effort">\n <div class="character-effort-panel character-panel-main">\n <div class="character-effort-main">\n <div class="character-effort-value"><template v-if="effort.value + characterExtraEfforts[index].value > -1">+</template>{{ effort.value + characterExtraEfforts[index].value }}</div>\n <div class="character-effort-name">Esfuerzo {{ effort.name }}</div>\n </div>\n <div class="character-effort-sub">\n <div class="character-effort-group">\n <div class="character-effort-group-value">{{ effort.value }}</div>\n <div class="character-effort-group-name">Base</div>\n </div>\n <div class="character-effort-group">\n <div class="character-effort-group-value">{{ characterExtraEfforts[index].value }}</div>\n <div class="character-effort-group-name">Extra</div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <div v-if="characterPowers.length" class="character-extras">\n <h4 class="character-extras-title">Poderes <span class="character-extras-count">({{ characterPowers.length }}/{{ characterPowerCount }})</span></h4>\n <ul class="character-extras-content character-powers no-style">\n <li v-for="power in characterPowers" class="character-extras-element">\n <elemento-poderes :name="power"></elemento-poderes>\n </li>\n </ul>\n </div>\n <div v-if="characterEquipment.length" class="character-extras">\n <h4 class="character-extras-title">Equipo <span class="character-extras-count">({{ characterEquipment.length }}/15)</span></h4>\n <ul class="character-extras-content character-equipment no-style">\n <li v-for="item in characterEquipment" class="character-extras-element">\n <elemento-tienda :name="item"></elemento-tienda>\n </li>\n </ul>\n </div>\n <div v-if="characterAugments.length" class="character-extras">\n <h4 class="character-extras-title">Aumentos <span class="character-extras-count">({{ characterAugments.length }}/{{ characterEfforts[1].value - 2 }})</span></h4>\n <ul class="character-extras-content character-augments no-style">\n <li v-for="item in characterAugments" class="character-extras-element">\n <elemento-tienda :name="item"></elemento-tienda>\n </li>\n </ul>\n </div>\n </cuerpo-interior>\n '});

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc