SyntaxLite_min

Library for simplifying code logic and syntax (Lite)

Tento skript by neměl být instalován přímo. Jedná se o knihovnu, kterou by měly jiné skripty využívat pomocí meta příkazu // @require https://update.greasyfork.org/scripts/487608/1670307/SyntaxLite_min.js

// ==UserScript==
// @name         SyntaxLite
// @version      2025.10.02
// @author       Canaan HS
// @description  Library for simplifying code logic and syntax (Lite)
// @namespace    https://greasyfork.org/users/989635
// @match        *://*/*
// @license      MPL-2.0
// ==/UserScript==
const Lib=(()=>{function x(a=document,b,c){if(1!==a?.nodeType&&9!==a?.nodeType)return c?[]:void 0;const e=b[0],d=b.slice(1);if(/[ .#:[\]>+~*,()^$=]/.test(d))return c?a.querySelectorAll(b):a.querySelector(b);if(!c&&"#"===e)return 9===a.nodeType?a.getElementById(d):a.querySelector(b);if("."===b[0])return a=a.getElementsByClassName(d),c?[...a]:a[0];a=a.getElementsByTagName(b);return c?[...a]:a[0]}async function T(a,b,c=crypto.randomUUID(),e=!0){if(e||!I.has(c)){var d=document.getElementById(c);d||(d=
document.createElement(a),d.id=c,(a=J.head)?a.appendChild(d):U("head").then(g=>{g.appendChild(d)}));d.textContent+=b;I.add(c)}}async function U(a,b=null,c={}){const e=Array.isArray(a)?V.queryMap:V.queryElement,{raf:d=!1,all:g=!1,timeout:h=8,throttle:f=0,debounce:m=50,visibility:k=!0,subtree:l=!0,childList:n=!0,attributes:q=!0,characterData:p=!1,timeoutResult:u=!1,root:t=document}=c||{};return new Promise((r,v)=>{const E=async function(){let y,w;if(d){let A;const G=()=>{(w=e(a,g))?(cancelAnimationFrame(A),
clearTimeout(y),b?.(w),r(w)):A=requestAnimationFrame(G)};A=requestAnimationFrame(G);y=setTimeout(()=>{cancelAnimationFrame(A);u&&(b?.(w),r(w))},1E3*h)}else{const [A,G]=0<f?[K,f]:[L,m],M=new MutationObserver(A(()=>{if(w=e(a,g))M.disconnect(),clearTimeout(y),b?.(w),r(w)},G));M.observe(t,{subtree:l,childList:n,attributes:q,characterData:p});y=setTimeout(()=>{M.disconnect();u&&(b?.(w),r(w))},1E3*h)}};k&&"hidden"===document.visibilityState?document.addEventListener("visibilitychange",()=>E(),{once:!0}):
E()})}function W(a){if(!a||!a.trim())return 0;if(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(a)){var b=(new Date(a)).getTime();if(!isNaN(b))return Math.floor(b/1E3)}b=new Date;var c=[...a.matchAll(/(\d+)\s*([YyMDdhms])/g)];if(0===c.length)return 0;var e=a=0,d=0,g=0,h=0,f=0;for(const m of c){c=parseInt(m[1],10);const k=m[2];switch(k.toLowerCase()){case "y":a+=c;break;case "d":d+=c;break;case "h":g+=c;break;case "s":f+=c;break;default:"M"===k?e+=c:"m"===k&&(h+=c)}}b.setFullYear(b.getFullYear()+a);
b.setMonth(b.getMonth()+e);b.setDate(b.getDate()+d);b.setHours(b.getHours()+g);b.setMinutes(b.getMinutes()+h);b.setSeconds(b.getSeconds()+f);return Math.floor(b.getTime()/1E3)}function N(a,b,c,{space:e=0,expireStr:d}={}){const g=F(c);c={type:g,data:X[g]?.(c)??c};(d=W(d))&&(c.expire=d);a(b,JSON.stringify(c,null,e))}function O(a,b,c,{autoRemove:e=!1,removeer:d}={}){a=a(b);if(null==a)return c;try{a=JSON.parse(a);const g=a instanceof Object;if(g&&a.expire&&Date.now()>1E3*a.expire)return d(b),c;let h,
f;g?(h=a.type??"Object",f=a.data??a):(h=F(a),f=a);const m=Y[h]?.(f)??f;e&&d(b);return m}catch{return"object"===typeof a&&J.isEmpty(a)||"string"===typeof a&&a.startsWith("[object")?c:a}}function K(a,b){let c=0;return(...e)=>{const d=Date.now();d-c>=b&&(c=d,a(...e))}}function L(a,b){let c=null;return(...e)=>{clearTimeout(c);c=setTimeout(function(){a(...e)},b)}}function Z(a){a=new Blob([a],{type:"application/javascript"});const b=URL.createObjectURL(a),c=new Worker(b),e=c.terminate;c.terminate=function(){e.call(c);
URL.revokeObjectURL(b)};return c}function P(){function a(f){return new Promise((m,k)=>{const l=new Blob([f],{type:"application/octet-stream"}),n=new FileReader;n.onload=function(q){q=q.target.result;q=q.substring(q.indexOf(",")+1);m(q)};n.onerror=function(q){k(q)};n.readAsDataURL(l)})}function b(f,m,k){return new Promise(l=>{const n=g++;h.set(n,l);c.postMessage({type:f,data:m,level:k,requestId:n},[m.buffer])})}let c=Z('importScripts("https://cdnjs.cloudflare.com/ajax/libs/pako/2.1.0/pako.min.js");onmessage = function(e) {const { type, data, level, requestId } = e.data;const bytes = type === "compress" ? pako.deflate(data, { level }) : pako.inflate(data);postMessage({ data: bytes, requestId: requestId }, [bytes.buffer]);}');
const e=new TextEncoder,d=new TextDecoder;let g=0;const h=new Map;c.onmessage=f=>{const {requestId:m,data:k}=f.data;h.has(m)&&(h.get(m)(k),h.delete(m))};return{async destroyWorker(){c&&(c.terminate(),c=null)},async compress(f,{level:m=5,base64:k=!0,stringify:l=!0}={}){if(null==f)return f;f=await b("compress",e.encode(l?JSON.stringify(f):f),m);return k?await a(f):f},async decompress(f,m=!0){if(null==f)return f;if(!(f instanceof Uint8Array)){f=atob(f);const k=f.length,l=new Uint8Array(k);let n;for(n=
0;n<k;n++)l[n]=f.charCodeAt(n);f=l}f=await b("decompress",f);f=d.decode(f);return m?JSON.parse(f):f}}}const da=new DOMParser,F=a=>Object.prototype.toString.call(a).slice(8,-1);[Document.prototype,Element.prototype].forEach(a=>{a.$q=function(b){return x(this,b,!1)};a.$qa=function(b){return x(this,b,!0)}});const Q={$text(a=null){return null===a?this?.textContent?.trim():this.textContent=a?.trim()??""},$copy(a=!0){return this.cloneNode(a)},$iHtml(a=null){return null===a?this.innerHTML:this.innerHTML=
a},$oHtml(a=null){return null===a?this.outerHTML:this.outerHTML=a},$iAdjacent(a,b="beforeend"){null!=a&&(1===a.nodeType?this.insertAdjacentElement(b,a):this.insertAdjacentHTML(b,a))},$sAttr(a,b){this.setAttribute(a,b)},$dAttr(a){this.removeAttribute(a)},$gAttr(a){return this.getAttribute(a)},$hAttr(a){return this.hasAttribute(a)},$addClass(...a){this.classList.add(...a)},$delClass(...a){this.classList.remove(...a)},$toggleClass(a,b){this.classList.toggle(a,b)},$replaceClass(a,b){this.classList.replace(a,
b)},$hasClass(a){return this.classList.contains(a)}};Object.assign(Node.prototype,Q);const aa=Object.keys(Q)[0];Object.defineProperty(Object.prototype,aa,{value:function(a=null){return Q[aa].call(this,a)},writable:!0,configurable:!0});const J={$q:document.$q.bind(document),$Q:(a,b)=>x(a,b,!1),$qa:document.$qa.bind(document),$Qa:(a,b)=>x(a,b,!0),html:document.documentElement,get head(){const a=document.head;a&&Object.defineProperty(this,"head",{value:a,writable:!1});return a},get body(){const a=document.body;
a&&Object.defineProperty(this,"body",{value:a,writable:!1});return a},img:document.images,link:document.links,script:document.scripts,style:document.styleSheets,$url:location.href,get url(){return location.href},$origin:location.origin,get origin(){return location.origin},$domain:location.hostname,get domain(){return location.hostname},$lang:navigator.language,get lang(){return navigator.language},$agen:navigator.userAgent,get agen(){return navigator.userAgent},isEmpty(a){for(const b in a)return!1;
return!0},createDomFragment:a=>document.createRange().createContextualFragment(a),get createFragment(){return document.createDocumentFragment()},title:(a=null)=>null===a?document.title:document.title=a,cookie:(a=null)=>null===a?document.cookie:document.cookie=a,createUrl:a=>URL.createObjectURL(a),_on:(a,b)=>{const c={};for(const e of Object.keys(b)){let d=b[e];d&&("function"===typeof d&&(d={listen:d}),d.listen&&(a.addEventListener(e,d.listen,d.add),c[e]=()=>a.removeEventListener(e,d.listen,d.add)))}return c},
createElement(a,b,c,e){const [d,g,h={},f="beforeend"]="string"===typeof a?[void 0,a,b,c]:[a,b,c,e];if(g){var {class:m,text:k="",rows:l,cols:n,on:q={},style:p={},attr:u={},...t}=h;a=document.createElement(g);a.textContent=k;m&&(a.className=m);void 0!==l&&(a.rowSpan=l);void 0!==n&&(a.colSpan=n);Object.assign(a,t);"string"===typeof p?a.style.cssText=p:Object.assign(a.style,p);for(const v in u)a.setAttribute(v,u[v]);var r="object"!==typeof q||this.isEmpty(q)?{}:this._on(a,q);Object.assign(a,{on(v,E,y){this.addEventListener(v,
E,y);Object.assign(r,{[v]:()=>this.removeEventListener(v,E,y)})},off(v){r[v]?.();delete r[v]},offAll(){Object.keys(r).forEach(v=>{r[v]();delete r[v]})}});return 1===d?.nodeType?d.insertAdjacentElement(f,a):a}}},B=new Map,R={log:(...a)=>console.log(...a),warn:(...a)=>console.warn(...a),table:(...a)=>console.table(...a),trace:(...a)=>console.trace(...a),debug:(...a)=>console.debug(...a),error:(...a)=>console.error(...a),count:a=>console.count(a)},I=new Set,H=new Map,V={queryMap:(a,b)=>{a=a.map(c=>x(document,
c,b));return b?a.every(c=>0<c.length)&&a:a.every(Boolean)&&a},queryElement:(a,b)=>{a=x(document,a,b);return(b?0<a.length:a)&&a}},Y={Set:a=>new Set(a),Map:a=>new Map(a),Date:a=>new Date(a)},X={Set:a=>a instanceof Set?[...a]:a,Map:a=>a instanceof Map?[...a]:a,Date:a=>a instanceof Date?a.toISOString():a},ba=localStorage.removeItem.bind(localStorage),ea=localStorage.setItem.bind(localStorage),fa=localStorage.getItem.bind(localStorage),ca=sessionStorage.removeItem.bind(sessionStorage),ha=sessionStorage.setItem.bind(sessionStorage),
ia=sessionStorage.getItem.bind(sessionStorage);let C=null;const S={ko:"Korea","ko-KR":"Korea",ja:"Japan","ja-JP":"Japan",ru:"Russia","ru-RU":"Russia",en:"English","en-US":"English","en-GB":"English","en-AU":"English","en-CA":"English","en-NZ":"English","en-IE":"English","en-ZA":"English","en-IN":"English",zh:"Simplified","zh-CN":"Simplified","zh-SG":"Simplified","zh-MY":"Simplified","zh-TW":"Traditional","zh-HK":"Traditional","zh-MO":"Traditional"},z=new Set,D=new Map;return function(...a){const b=
{};for(const c of a)c&&Object.defineProperties(b,Object.getOwnPropertyDescriptors(c));return b}({get sX(){return window.scrollX},get sY(){return window.scrollY},get iW(){return window.innerWidth},get iH(){return window.innerHeight},get platform(){let a;a=void 0!==navigator.userAgentData?.mobile?navigator.userAgentData.mobile?"Mobile":"Desktop":window.matchMedia?.("(max-width: 767px), (pointer: coarse)")?.matches?"Mobile":/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)?
"Mobile":"Desktop";Object.defineProperty(this,"platform",{value:a,writable:!1});return a}},J,{addStyle:(a,b,c)=>T("style",a,b,c),addScript:(a,b,c)=>T("script",a,b,c),delLocal:a=>ba(a),setLocal:(a,b,c)=>N(ea,a,b,{expireStr:c}),getLocal:(a,b,c)=>O(fa,a,b,{autoRemove:c,removeer:ba}),delSession:a=>ca(a),setSession:(a,b,c)=>N(ha,a,b,{expireStr:c}),getSession:(a,b,c)=>O(ia,a,b,{autoRemove:c,removeer:ca}),delV:a=>GM_deleteValue(a),allV:()=>{var a=GM_listValues();return null==a?null:a},setV:(a,b)=>GM_setValue(a,
b),getV:(a,b)=>{a=GM_getValue(a,b);return null==a?null:a},setJV:(a,b,{space:c,expireStr:e}={})=>N(GM_setValue,a,b,{space:c,expireStr:e}),getJV:(a,b,c)=>O(GM_getValue,a,b,{autoRemove:c,removeer:GM_deleteValue}),eventRecord:B,addRecord:I,observerRecord:H,$type:F,onE:async function(a,b,c,e={},d=null){try{"string"===typeof a&&(a=x(document,a));let g=b.split(/\s*[,|/]\s*/).filter(Boolean);if(0===g.length)throw Error("No event types provided");if(1===g.length)a.addEventListener(b,c,e);else{let h=null;const f=
m=>{clearTimeout(h);h=setTimeout(()=>c(m),15)};g.forEach(m=>a.addEventListener(m,f,e))}d?.(!0)}catch{d?.(!1)}},onEvent:async function(a,b,c,e={}){const {mark:d,...g}=e;"string"===typeof a&&(a=x(document,a));e=d??a;const h=B.get(e);h?.has(b)||(a.addEventListener(b,c,g),h||B.set(e,new Map),B.get(e).set(b,c))},offEvent:async function(a,b,c){"string"===typeof a&&(a=x(document,a));c=c??a;const e=B.get(c)?.get(b);e&&(a.removeEventListener(b,e),B.get(c).delete(b))},onUrlChange:function(a,b=15){function c(l){clearTimeout(d);
h||"urlchange"!==l||(h=!0);d=setTimeout(()=>{h&&e(!1,!0);a({type:l,url:location.href,domain:location.hostname})},Math.max(15,b))}function e(l=!0,n=!1){n&&g||(clearTimeout(d),history.pushState=f,history.replaceState=m,l&&window.removeEventListener("urlchange",k.urlchange),window.removeEventListener("popstate",k.popstate),window.removeEventListener("hashchange",k.hashchange),g=!0)}let d=null,g=!1,h=!1;const f=history.pushState,m=history.replaceState,k={urlchange:()=>c("urlchange"),popstate:()=>c("popstate"),
hashchange:()=>c("hashchange")};window.addEventListener("urlchange",k.urlchange);window.addEventListener("popstate",k.popstate);window.addEventListener("hashchange",k.hashchange);history.pushState=function(){f.apply(this,arguments);c("pushState")};history.replaceState=function(){m.apply(this,arguments);c("replacestate")};return{off:e}},log:function(...a){if(0!==a.length){var b={},c=a,e={dev:!0,group:null,collapsed:!0};if(1<a.length){const k=a[0],l=a.at(-1),n=k?.constructor===Object,q=l?.constructor===
Object;if(q&&!n)b=l,c=a.slice(0,-1);else if(n&&!q)b=k,c=a.slice(1);else if(n&&q){const p=new Set(Object.keys(e));b=Object.keys(k).filter(u=>p.has(u)).length;Object.keys(l).filter(u=>p.has(u)).length>b?(b=l,c=a.slice(0,-1)):(b=k,c=a.slice(1))}}var {dev:d,group:g,collapsed:h}={...e,...b};if(!d||0===c.length)return new Proxy({},{get(){}});var f=k=>{"count"===k?R.count(c[0]):(k=R[k]||R.log,g?(h?console.groupCollapsed(g):console.group(g),k(...c),console.groupEnd()):k(...c))},m=setTimeout(()=>f("log",c));
return new Proxy({},{get(k,l){clearTimeout(m);f(l,c)}})}},$observer:async function(a,b,c={},e=null){const {mark:d="",debounce:g=0,throttle:h=100,subtree:f=!0,childList:m=!0,attributes:k=!0,characterData:l=!1}=c||{};if(d&&(c=H.get(d))){if(c.target===a)return;c.ob.disconnect();H.delete(d)}const [n,q]=0<g?[L,g]:[K,h];c={subtree:f,childList:m,attributes:k,characterData:l};const p=new MutationObserver(n(()=>{b()},q));p.observe(a,c);d&&H.set(d,{target:a,ob:p});e?.({ob:p,op:c})},waitEl:U,openDB:async function(a=
"StorageDB",b=1){return new Promise((c,e)=>{const d=indexedDB.open(a,b),g=a.replace(/db$/i,"").toLowerCase();d.onupgradeneeded=h=>{h=h.target.result;h.objectStoreNames.contains(g)||h.createObjectStore(g)};d.onsuccess=h=>{async function f(k){return new Promise((l,n)=>{const q=m.transaction(g,"readwrite").objectStore(g).delete(k);q.onsuccess=()=>l(q.result);q.onerror=()=>n(q.error)})}const m=h.target.result;c({set:async function(k,l,{compress:n=!0,expireStr:q}={}){const p={};n?(C??=P(),n=F(l),p.type=
n,p.data=await C.compress(X[n]?.(l)??l,{base64:!1}),p.compressed=!0):p.data=l;if(l=W(q))p.expire=l;return new Promise((u,t)=>{const r=m.transaction(g,"readwrite").objectStore(g).put(p,k);r.onsuccess=()=>u(r.result);r.onerror=()=>t(r.error)})},get:async function(k,l=null,n=!1){const q=m.transaction(g,"readonly").objectStore(g),p=await new Promise((u,t)=>{const r=q.get(k);r.onsuccess=()=>u(r.result);r.onerror=()=>t(l)});if(null==p)return l;try{const u=p instanceof Object;if(u&&p.expire&&Date.now()>
1E3*p.expire)return f(k),l;let t;if(u){if(t=p.data??p,p.compressed){C??=P();t=await C.decompress(t);const r=p.type||F(t);t=Y[r]?.(t)??t}}else t=p;n&&f(k);return t}catch{return p}},del:f,destroy:function(){m&&(m.close(),indexedDB.deleteDatabase(a),C.destroyWorker(),setTimeout(()=>C=null,100))}})};d.onerror=()=>e(d.error)})},$throttle:K,$debounce:L,createWorker:Z,createStrCompress:P,outputJson:async function(a,b,c=null){try{a="string"===typeof a?a:JSON.stringify(a,null,4);b="string"===typeof b?b.endsWith(".json")?
b:`${b}.json`:`Untitled-${crypto.randomUUID().slice(9,23)}.json`;const e=new Blob([a],{type:"application/json"}),d=document.createElement("a");d.href=URL.createObjectURL(e);d.download=b;d.click();URL.revokeObjectURL(d.href);d.remove();c?.({State:!0})}catch(e){c?.({State:!1,Info:e})}},runTime:function(a=null,{lable:b="Elapsed Time:",log:c=!0,format:e=!0,style:d="\u001b[1m\u001b[36m%s\u001b[0m"}={}){if(!a)return performance.now();a=e?`${((performance.now()-a)/1E3).toPrecision(3)}s`:performance.now()-
a;return c?console.log(d,`${b} ${a}`):a},getDate:function(a=null){const b=new Date,c={year:b.getFullYear(),month:`${b.getMonth()+1}`.padStart(2,"0"),date:`${b.getDate()}`.padStart(2,"0"),hour:`${b.getHours()}`.padStart(2,"0"),minute:`${b.getMinutes()}`.padStart(2,"0"),second:`${b.getSeconds()}`.padStart(2,"0")};return(e=>e.replace(/{([^}]+)}/g,(d,g)=>c[g]??"Error"))("string"===typeof a?a:"{year}-{month}-{date} {hour}:{minute}:{second}")},translMatcher:function(a,b=navigator.language,c="en-US"){return a[S[b]]??
a[S[c]]??a[S["en-US"]]},regMenu:function(a,b={}){let {name:c="regMenu",index:e=1,reset:d=!1}=b||{};d&&([...z].map(g=>GM_unregisterMenuCommand(g)),z.clear());for(let [g,h]of Object.entries(a))a=`${c}-${e++}`,"function"===typeof h&&(h={func:h}),GM_registerMenuCommand(g,()=>{h.func()},{id:a,title:h.desc,autoClose:h.close,accessKey:h.hotkey}),z.add(a)},unMenu:async function(a){null==a?([...z].map(b=>GM_unregisterMenuCommand(b)),z.clear()):Array.isArray(a)?a.forEach(b=>{z.delete(b)&&GM_unregisterMenuCommand(b)}):
z.delete(a)&&GM_unregisterMenuCommand(a)},storageListen:function(a,b){a.forEach(c=>{if(!D.has(c)){const e=GM_addValueChangeListener(c,function(d,g,h,f){b({key:d,ov:g,nv:h,far:f})});D.set(c,e)}});return{off(c){const e=D.get(c);e&&(GM_removeValueChangeListener(e),D.delete(c))},offAll(){for(const c of D.values())GM_removeValueChangeListener(c);D.clear()}}},sleep:a=>new Promise(b=>setTimeout(b,a)),domParse:a=>da.parseFromString(a,"text/html")})})();