UNPKG

simple-icons

Version:

SVG icons for popular brands https://simpleicons.org

9 lines (7 loc) 3.53 kB
var w=Object.create;var i=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var L=(e,r)=>{for(var t in r)i(e,t,{get:r[t],enumerable:!0})},u=(e,r,t,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of T(r))!_.call(e,o)&&o!==t&&i(e,o,{get:()=>r[o],enumerable:!(l=A(r,o))||l.enumerable});return e};var f=(e,r,t)=>(t=e!=null?w(y(e)):{},u(r||!e||!e.__esModule?i(t,"default",{value:e,enumerable:!0}):t,e)),R=e=>u(i({},"__esModule",{value:!0}),e);var z={};L(z,{SVG_PATH_REGEX:()=>N,collator:()=>b,getIconSlug:()=>S,getIconsData:()=>F,getIconsDataPath:()=>g,getIconsDataString:()=>x,getThirdPartyExtensions:()=>j,getThirdPartyLibraries:()=>D,htmlFriendlyToTitle:()=>G,normalizeColor:()=>M,normalizeNewlines:()=>m,slugToVariableName:()=>P,svgToPath:()=>C,titleToHtmlFriendly:()=>I,titleToSlug:()=>E});module.exports=R(z);var s=f(require("node:fs/promises")),p=f(require("node:path"));const c={},h={"+":"plus",".":"dot","&":"and",\u0111:"d",\u0127:"h",\u0131:"i",\u0138:"k",\u0140:"l",\u0142:"l",\u00DF:"ss",\u0167:"t",\u00F8:"o"},U=new RegExp(`[${Object.keys(h).join("")}]`,"g"),$=/[^a-z\d]/g,N=/^m[-mzlhvcsqtae\d,. ]+$/i,S=e=>e.slug||E(e.title),C=e=>e.split('"',8)[7],E=e=>e.toLowerCase().replaceAll(U,r=>h[r]).normalize("NFD").replaceAll($,""),P=e=>`si${e[0].toUpperCase()}${e.slice(1)}`,I=e=>e.replaceAll("&","&amp;").replaceAll('"',"&quot;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll(/./g,r=>{const t=r.codePointAt(0)||0;return t>127?`&#${t};`:r}),G=e=>e.replaceAll(/&#(\d+);/g,(r,t)=>String.fromCodePoint(Number.parseInt(t,10))).replaceAll(/&(quot|amp|lt|gt);/g,(r,t)=>({quot:'"',amp:"&",lt:"<",gt:">"})[t]),g=()=>p.default.resolve(c.dirname,"data","simple-icons.json"),x=()=>s.default.readFile(g(),"utf8"),F=async()=>{const e=await x();return JSON.parse(e)},m=e=>e.replaceAll(`\r `,` `),M=e=>{let r=e.replace("#","").toUpperCase();return r.length<6?r=[...r.slice(0,3)].map(t=>t.repeat(2)).join(""):r.length>6&&(r=r.slice(0,6)),r},j=async()=>m(await s.default.readFile(p.default.join(c.dirname,"README.md"),"utf8")).split("## Third-Party Extensions")[1].split(`| `)[0].split(`| |`).slice(2).map(e=>{const[r,t]=e.split(" | "),l=r.split('<img src="')[0],o=/\[(.+)]/.exec(l)?.[1];if(o===void 0)throw new Error(`Module name improperly parsed from line: ${e}`);const n=/\((.+)\)/.exec(l)?.[1];if(n===void 0)throw new Error(`Module URL improperly parsed from line: ${e}`);const a=/\[(.+)]/.exec(t)?.[1];if(a===void 0)throw new Error(`Author improperly parsed from line: ${e}`);const d=/\((.+)\)/.exec(t)?.[1];if(d===void 0)throw new Error(`Author URL improperly parsed from line: ${e}`);return{module:{name:o,url:n},author:{name:a,url:d}}}),D=async()=>m(await s.default.readFile(p.default.join(c.dirname,"README.md"),"utf8")).split("## Third-Party Libraries")[1].split(`| `)[0].split(`| |`).slice(2).map(e=>{let[r,t]=e.split(" | ");r=r.split('<img src="')[0];const l=/\[(.+)]/.exec(r)?.[1];if(l===void 0)throw new Error(`Module name improperly parsed from line: ${e}`);const o=/\((.+)\)/.exec(r)?.[1];if(o===void 0)throw new Error(`Module URL improperly parsed from line: ${e}`);const n=/\[(.+)]/.exec(t)?.[1];if(n===void 0)throw new Error(`Author improperly parsed from line: ${e}`);const a=/\((.+)\)/.exec(t)?.[1];if(a===void 0)throw new Error(`Author URL improperly parsed from line: ${e}`);return{module:{name:l,url:o},author:{name:n,url:a}}}),b=new Intl.Collator("en",{usage:"search",caseFirst:"upper"});