UNPKG

@sfirew/minecraft-motd-parser

Version:

Minecraft Server MOTD Parser, can convert to html, json, text.

2 lines 6.37 kB
var S=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames,k=Object.getOwnPropertySymbols;var R=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable;var j=(t,e,o)=>e in t?S(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,L=(t,e)=>{for(var o in e||(e={}))R.call(e,o)&&j(t,o,e[o]);if(k)for(var o of k(e))X.call(e,o)&&j(t,o,e[o]);return t};var K=(t,e)=>{for(var o in e)S(t,o,{get:e[o],enumerable:!0})},$=(t,e,o,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of _(e))!R.call(t,n)&&n!==o&&S(t,n,{get:()=>e[n],enumerable:!(s=J(e,n))||s.enumerable});return t};var G=t=>$(S({},"__esModule",{value:!0}),t);var I={};K(I,{JSONRender:()=>b,JSONToCleanedText:()=>y,JSONToHTML:()=>g,autoCleanToText:()=>C,autoToHTML:()=>O,baseColorCodeRegex:()=>u,cleanCodes:()=>m,cleanHtmlTags:()=>w,default:()=>B,htmlStringFormatting:()=>A,isMotdJSONType:()=>F,textToHTML:()=>x,textToJSON:()=>h});module.exports=G(I);var u=/([§][0-9a-fA-FklmnorKLMNOR])/g;function F(t){if(!t||typeof t!="object"||Array.isArray(t))return!1;let e="text"in t,o="translate"in t,s="extra"in t&&Array.isArray(t.extra);return e||o||s}function A(t){return!t||typeof t!="string"?"":t.replace(/&(?!(?:amp|lt|gt|quot|#39|#x[0-9A-Fa-f]+|#[0-9]+);)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/\n/g,"<br/>")}function w(t){if(!t||typeof t!="string")return"";let e="",o=new Set(["script","style","noscript","iframe","object","embed","applet","svg","math","foreignobject"]),s;(T=>(T[T.TEXT=0]="TEXT",T[T.TAG=1]="TAG",T[T.SKIP_BLOCK=2]="SKIP_BLOCK",T[T.COMMENT=3]="COMMENT"))(s||(s={}));let n=0,l="",f="",a=t.length;for(let r=0;r<a;r++){let p=t[r];if(n===0&&p==="<"){if(t.slice(r,r+4)==="<!--"){n=3;continue}let i=r+1,c=!1;for(i<a&&t[i]==="/"&&(c=!0,i++);i<a&&/\s/.test(t[i]);)i++;let T=i;for(;i<a&&/[A-Za-z0-9-]/.test(t[i]);)i++;l=t.slice(T,i).toLowerCase(),!c&&o.has(l)?(n=2,f=`</${l}>`):n=1;continue}if(n===1){p===">"&&(n=0);continue}if(n===3){t.slice(r,r+3)==="-->"&&(r+=2,n=0);continue}if(n===2){p==="<"&&t.slice(r,r+f.length).toLowerCase()===f&&(r+=f.length-1,n=0);continue}n===0&&(e+=p)}return e.trim()}function m(t){let e=/(?:§)([0-9a-fA-FklmnorFKLMNOR])/g,o="";return o=t.replace(e,""),o}var E={"\xA7k":"obfuscated;","\xA7l":"font-weight: bold;","\xA7m":"text-decoration: line-through;","\xA7n":"text-decoration: underline;","\xA7o":"font-style: italic;","\xA7r":"color: inherit;text-decoration: none !important;font-weight:normal!important;font-style: normal!important;"},H={bold:"font-weight: bold;",italic:"font-style: italic;",underlined:"text-decoration:underline;",strikethrough:"text-decoration: line-through;",obfuscated:"mc_obfuscated;",reset:"color: inherit;text-decoration: none !important;font-weight:normal!important;font-style: normal!important;"},M={"\xA7k":"obfuscated","\xA7l":"bold","\xA7m":"strikethrough","\xA7n":"underlined","\xA7o":"italic","\xA7r":"reset"},d={"\xA70":"#000000","\xA71":"#0000AA","\xA72":"#00AA00","\xA73":"#00AAAA","\xA74":"#AA0000","\xA75":"#AA00AA","\xA76":"#FFAA00","\xA77":"#AAAAAA","\xA78":"#555555","\xA79":"#5555FF","\xA7a":"#55FF55","\xA7b":"#55FFFF","\xA7c":"#FF5555","\xA7d":"#FF55FF","\xA7e":"#FFFF55","\xA7f":"#FFFFFF"},N={black:"#000000",dark_blue:"#0000AA",dark_green:"#00AA00",dark_aqua:"#00AAAA",dark_red:"#AA0000",dark_purple:"#AA00AA",gold:"#FFAA00",gray:"#AAAAAA",dark_gray:"#555555",blue:"#5555FF",green:"#55FF55",aqua:"#55FFFF",red:"#FF5555",light_purple:"#FF55FF",yellow:"#FFFF55",white:"#FFFFFF"};function x(t){let e=u,o=new RegExp(e.source),s=t.split(o).filter(a=>a!==""),n="",l="",f="";return s.forEach(a=>{let r=a.toLowerCase();if(Object.hasOwn(d,r))l=d[r],r==="\xA7f"&&(n="");else if(Object.hasOwn(E,r))r==="\xA7r"?(l="",n=""):n+=E[r];else{let p="",i=a;l!==""&&(p=`color:${l};`),i!==""&&(i=A(i),p.length!==0||n.length!==0?f+=`<span style="${p}${n}">${i}</span>`:f+=i)}}),f}function g(t){let e="",o="",s="";for(let l of Object.keys(t)){if(l=l.toLowerCase(),Object.hasOwn(H,l)&&t[l]&&(s+=String(H[l])),l==="color"){let f=t[l],a="";if(typeof f=="string")if(Object.hasOwn(N,f))a=N[f];else if(Object.hasOwn(d,f))a=d[f];else{let r=f.match(/^#([-+]?0+|\+?0*[1-9A-Fa-f][0-9A-Fa-f]{0,5})$/);r!==null&&(a="#"+r[1].replace(/^[-+]?0*/,"").padStart(6,"0"))}a!==""&&(o=`color:${a};`)}if(l==="extra"&&typeof t.extra=="object"){(typeof t.text=="string"||typeof t.text=="number")&&(e+=x(String(t.text)));for(let f of t.extra)typeof f=="string"?e+=x(f):F(f)&&(e+=g(f))}}if(t.extra===void 0&&t.text!==void 0){let l=t.text;(typeof t.text=="string"||typeof t.text=="number")&&(e+=x(String(l)))}let n="";return s.length!==0||o.length!==0?n=`<span style="${o+s}">${e}</span>`:n=e,n}function y(t){let e="";for(let o of Object.keys(t))if(o=o.toLowerCase(),o==="extra"&&typeof t.extra=="object"){(typeof t.text=="string"||typeof t.text=="number")&&(e+=m(String(t.text)));for(let s of t.extra)typeof s=="string"?e+=m(s):F(s)&&(e+=y(s))}if(t.extra===void 0&&t.text!==void 0){let o=t.text;(typeof t.text=="string"||typeof t.text=="number")&&(e+=m(String(o)))}return e}function h(t){let e=t,o=u,s=new RegExp(o.source),n=e.split(s),l="",f="",a={text:"",extra:[]};n.forEach(p=>{let i=p.toLowerCase();if(Object.hasOwn(d,i))f=d[i],i==="\xA7f"&&(l="");else if(Object.hasOwn(M,i))i==="\xA7r"?(l="",f=""):l=M[i];else{let c={text:"",extra:[]};l!==""&&(c[l]=!0),c.text=p,f!==""&&(c.color=f),typeof a.extra=="object"&&a.extra.push(c)}});let r=[];return a.extra&&(a.extra.length>1?a.extra.forEach((p,i)=>{var c;p.text===""?a.extra&&typeof a.extra[i+1]=="object"&&r.push(L(L({},p),a.extra[i+1])):p.text!==((c=r[r.length-1])==null?void 0:c.text)&&r.push(p)}):r.push(a.extra[0])),r=r.filter(p=>p.text!==""),{text:a.text,extra:r}}function b(t){return g(t)}function O(t){return typeof t=="object"?b(t):typeof t=="string"?x(t):"unknown motd data type"}function q(t){return typeof t=="object"?y(t):typeof t=="string"?m(t):"unknown motd data type"}var C=q;var P={textToHTML:x,textToJSON:h,JSONToHTML:g,JSONRender:b,autoToHTML:O,htmlStringFormatting:A,cleanCodes:m,cleanHtmlTags:w,JSONToCleanedText:y,autoCleanToText:C},B=P;0&&(module.exports={JSONRender,JSONToCleanedText,JSONToHTML,autoCleanToText,autoToHTML,baseColorCodeRegex,cleanCodes,cleanHtmlTags,htmlStringFormatting,isMotdJSONType,textToHTML,textToJSON}); //# sourceMappingURL=index.js.map