@hyperfixi/core 2.6.0 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/api/hyperscript-api.d.ts +6 -0
  2. package/dist/ast-utils/index.js +8 -8
  3. package/dist/ast-utils/index.mjs +8 -8
  4. package/dist/bundle-generator/index.js +12 -4
  5. package/dist/bundle-generator/index.mjs +12 -4
  6. package/dist/chunks/{bridge-fFLEvCQs.js → bridge-lZbOVRDD.js} +2 -2
  7. package/dist/chunks/browser-modular-DegkWQ8d.js +2 -0
  8. package/dist/chunks/{index-BRgVy8nY.js → index-i_j9Z-1e.js} +2 -2
  9. package/dist/commands/data/set.d.ts +1 -0
  10. package/dist/commands/index.js +156 -47
  11. package/dist/commands/index.mjs +156 -47
  12. package/dist/core/context.d.ts +4 -0
  13. package/dist/dom/attribute-processor.d.ts +1 -0
  14. package/dist/hyperfixi-browser-classic-i18n.js +1 -1
  15. package/dist/hyperfixi-browser-minimal.js +1 -1
  16. package/dist/hyperfixi-browser-standard.js +1 -1
  17. package/dist/hyperfixi-browser.js +1 -1
  18. package/dist/hyperfixi-classic-i18n.js +1 -1
  19. package/dist/hyperfixi-hx-v4.js +1 -1
  20. package/dist/hyperfixi-hx.js +1 -1
  21. package/dist/hyperfixi-hybrid-complete.js +1 -1
  22. package/dist/hyperfixi-hybrid-hx.js +1 -1
  23. package/dist/hyperfixi-lite-plus.js +1 -1
  24. package/dist/hyperfixi-lite.js +1 -1
  25. package/dist/hyperfixi-minimal.js +1 -1
  26. package/dist/hyperfixi-multilingual.js +1 -1
  27. package/dist/hyperfixi-standard.js +1 -1
  28. package/dist/hyperfixi.js +1 -1
  29. package/dist/hyperfixi.mjs +1 -1
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js +694 -459
  32. package/dist/index.min.js +1 -1
  33. package/dist/index.mjs +691 -460
  34. package/dist/lokascript-browser-classic-i18n.js +1 -1
  35. package/dist/lokascript-browser-minimal.js +1 -1
  36. package/dist/lokascript-browser-standard.js +1 -1
  37. package/dist/lokascript-browser.js +1 -1
  38. package/dist/lokascript-hybrid-complete.js +1 -1
  39. package/dist/lokascript-hybrid-hx.js +1 -1
  40. package/dist/lokascript-lite-plus.js +1 -1
  41. package/dist/lokascript-lite.js +1 -1
  42. package/dist/lokascript-multilingual.js +1 -1
  43. package/dist/parser/full-parser.js +70 -35
  44. package/dist/parser/full-parser.mjs +70 -35
  45. package/dist/parser/parser-types.d.ts +1 -1
  46. package/dist/parser/parser.d.ts +2 -0
  47. package/dist/parser/regex-parser.js +23 -14
  48. package/dist/parser/regex-parser.mjs +23 -14
  49. package/dist/registry/index.js +178 -45
  50. package/dist/registry/index.mjs +178 -45
  51. package/dist/types/core-context.d.ts +1 -0
  52. package/package.json +6 -6
  53. package/dist/chunks/browser-modular-BK3IOo93.js +0 -2
  54. package/dist/compatibility/browser-bundle.d.ts +0 -164
@@ -1 +1 @@
1
- !function(){"use strict";const e={flip:"toggle",switch:"toggle",display:"show",reveal:"show",conceal:"hide",increase:"increment",decrease:"decrement",fire:"trigger",dispatch:"send",navigate:"go",goto:"go"},n={clicked:"click",pressed:"keydown",changed:"change",submitted:"submit",loaded:"load"};function t(n){const t=n.toLowerCase();return e[t]||t}function r(e){const t=e.toLowerCase();return n[t]||t}function s(e){const n=e.trim(),t=n.match(/^on\s+(\w+)(?:\s+from\s+([^\s]+))?\s+(.+)$/i);if(t)return{event:r(t[1]),filter:t[2],commands:o(t[3])};const s=n.match(/^every\s+(\d+)(ms|s)?\s+(.+)$/i);if(s)return{event:"interval:"+("s"===s[2]?1e3*parseInt(s[1]):parseInt(s[1])),commands:o(s[3])};const i=n.match(/^init\s+(.+)$/i);return i?{event:"init",commands:o(i[1])}:o(n)}function o(e){return e.split(/\s+(?:then|and)\s+/i).map(i).filter(Boolean)}function i(e){const n=e.trim();if(!n)return null;let r;if(r=n.match(/^(\w+)\s+(\.\w+|\w+)(?:\s+on\s+(.+))?$/i),r&&"toggle"===t(r[1]))return{name:"toggle",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(\.\w+|\w+)(?:\s+to\s+(.+))?$/i),r&&"add"===t(r[1]))return{name:"add",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(\.\w+)(?:\s+from\s+(.+))?$/i),r&&"remove"===t(r[1]))return{name:"remove",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(.+)$/i),r&&"remove"===t(r[1]))return{name:"remove",args:[],target:r[2]};if(r=n.match(/^(\w+)\s+(\.\w+)\s+from\s+(.+)$/i),r&&"take"===t(r[1]))return{name:"take",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s+(into|before|after)\s+(.+)$/i),r&&"put"===t(r[1]))return{name:"put",args:[r[2]||r[3]||r[4]],modifier:r[5],target:r[6]};if(r=n.match(/^(\w+)\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s+to\s+(.+)$/i),r&&"append"===t(r[1]))return{name:"append",args:[r[2]||r[3]||r[4]],target:r[5]};if(r=n.match(/^(\w+)\s+(.+?)\s+to\s+(.+)$/i),r&&"set"===t(r[1]))return{name:"set",args:[r[2],r[3]]};if(r=n.match(/^(\w+)\s+(.+?)(?:\s+by\s+(\d+))?$/i),r&&("increment"===t(r[1])||"decrement"===t(r[1])))return{name:t(r[1]),args:[r[2],r[3]||"1"]};if(r=n.match(/^(\w+)\s+(.+)$/i),r&&"log"===t(r[1]))return{name:"log",args:[r[2]]};if(r=n.match(/^(\w+)\s+(\w+)(?:\s+to\s+(.+))?$/i),r&&("send"===t(r[1])||"trigger"===t(r[1])))return{name:"send",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(\d+)(ms|s)?$/i),r&&"wait"===t(r[1]))return{name:"wait",args:[""+("s"===r[3]?1e3*parseInt(r[2]):parseInt(r[2]))]};if(r=n.match(/^(\w+)(?:\s+(.+))?$/i),r&&("focus"===t(r[1])||"blur"===t(r[1])))return{name:t(r[1]),args:[],target:r[2]};if(r=n.match(/^(\w+)\s+(?:to\s+(?:url\s+)?)?(.+)$/i),r&&"go"===t(r[1]))return{name:"go",args:[r[2]]};if(r=n.match(/^(\w+)(?:\s+(.+))?$/i),r&&("show"===t(r[1])||"hide"===t(r[1]))){const e=r[2];return"show"===t(r[1])?{name:"remove",args:[".hidden"],target:e}:{name:"add",args:[".hidden"],target:e}}if(r=n.match(/^(if|unless)\s+(.+?)\s+(toggle|add|remove|put|set|log|send|wait|show|hide|increment|decrement|focus|blur|go|take|append)\s+(.+)$/i),r){const e=i(`${r[3]} ${r[4]}`);if(e)return e.modifier=r[1].toLowerCase(),e.args.unshift(r[2]),e}const s=n.split(/\s+/);return s.length>0?{name:t(s[0]),args:s.slice(1)}:null}function a(e,n){if(!e)return n;const t=e.trim();if("me"===t)return n;if("body"===t)return document.body;if(t.startsWith("#")||t.startsWith(".")||t.startsWith("[")){const e=document.querySelectorAll(t);return 1===e.length?e[0]:Array.from(e)}return/^\w+$/.test(t)&&document.getElementById(t)?document.getElementById(t):n}function c(e){return e.startsWith(".")?e.slice(1):e}function u(e,n,t){if(!e)return;const r=e.trim();if(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'"))return r.slice(1,-1);if(/^-?\d+(\.\d+)?$/.test(r))return parseFloat(r);if("true"===r)return 1;if("false"===r)return 0;if("null"===r)return null;if(r.startsWith(":"))return t.get(r.slice(1));if("me"===r)return n;if("my"===r)return n;if("body"===r)return document.body;const s=r.match(/^(me|my)\.(\w+)$/);if(s)return n[s[2]];const o=r.match(/^([#.\w]+)(?:'s|\.)\s*(\w+)$/);if(o){const e=a(o[1],n);if(e&&!Array.isArray(e))return e[o[2]]}return r}function f(e,n,t){const r=e.trim(),s=r.match(/^(me|my)\s+has\s+\.(\w+)$/i);if(s)return n.classList.contains(s[2]);const o=r.match(/^(me|my)\.(\w+)$/i);return o?!!n[o[2]]:r.startsWith(":")?!!t.get(r.slice(1)):!!u(r,n,t)}async function d(e,n,t){const r=a(e.target,n),s=Array.isArray(r)?r:r?[r]:[n];switch(e.name){case"toggle":{const n=c(e.args[0]);for(const e of s)e.classList.toggle(n);return 1===s.length?s[0]:s}case"add":{const n=c(e.args[0]);for(const e of s)e.classList.add(n);return 1===s.length?s[0]:s}case"remove":if(e.args[0]){const n=c(e.args[0]);for(const e of s)e.classList.remove(n)}else for(const e of s)e.remove();return null;case"take":{const t=c(e.args[0]),r=a(e.target,n),s=Array.isArray(r)?r:r?[r]:[];for(const e of s)e.classList.remove(t);return n.classList.add(t),n}case"put":{const r=u(e.args[0],n,t);for(const n of s)switch(e.modifier?.toLowerCase()){case"into":default:n.innerHTML=r+"";break;case"before":n.insertAdjacentHTML("beforebegin",r+"");break;case"after":n.insertAdjacentHTML("afterend",r+"")}return 1===s.length?s[0]:s}case"append":{const r=u(e.args[0],n,t);for(const e of s)e.insertAdjacentHTML("beforeend",r+"");return 1===s.length?s[0]:s}case"set":{const[r,s]=e.args,o=u(s,n,t);if(r.startsWith(":"))return t.set(r.slice(1),o),o;const i=r.match(/^(.+?)(?:'s|\.)\s*(\w+)$/);if(i){const e=a(i[1],n);if(e)return e[i[2]]=o,e}return o}case"increment":{const[r,s]=e.args,o=parseInt(s)||1;if(r.startsWith(":")){const e=t.get(r.slice(1))||0;return t.set(r.slice(1),e+o),e+o}const i=r.match(/^(.+?)(?:'s|\.)\s*(\w+)$/);if(i){const e=a(i[1],n);if(e)return e[i[2]]=(parseInt(e[i[2]])||0)+o,e[i[2]]}const c=a(r,n);if(c&&!Array.isArray(c)){const e=parseInt(c.textContent||"0")||0;return c.textContent=e+o+"",e+o}return null}case"decrement":{const[r,s]=e.args,o=parseInt(s)||1;if(r.startsWith(":")){const e=t.get(r.slice(1))||0;return t.set(r.slice(1),e-o),e-o}const i=r.match(/^(.+?)(?:'s|\.)\s*(\w+)$/);if(i){const e=a(i[1],n);if(e)return e[i[2]]=(parseInt(e[i[2]])||0)-o,e[i[2]]}const c=a(r,n);if(c&&!Array.isArray(c)){const e=parseInt(c.textContent||"0")||0;return c.textContent=e-o+"",e-o}return null}case"focus":for(const e of s)e.focus();return 1===s.length?s[0]:s;case"blur":for(const e of s)e.blur();return 1===s.length?s[0]:s;case"go":{const n=e.args[0]?.trim();if("back"===n)history.back();else if("forward"===n)history.forward();else if(n){const e=n.replace(/^["']|["']$/g,"");window.location.href=e}return null}case"log":{const r=u(e.args.join(" "),n,t);return console.log(r),r}case"send":{const n=new CustomEvent(e.args[0],{bubbles:1});for(const e of s)e.dispatchEvent(n);return n}case"wait":{const n=parseInt(e.args[0])||0;return await new Promise(e=>setTimeout(e,n)),n}default:return console.warn("Unknown command: "+e.name),null}}async function m(e,n,t=new Map){if(Array.isArray(e)){let r;for(const s of e){if("if"===s.modifier||"unless"===s.modifier){const e=f(s.args[0],n,t);if(!("if"===s.modifier?e:!e))continue;s.args.shift()}r=await d(s,n,t)}return r}const r=e,s=r.filter?document.querySelector(r.filter):n,o=r.event;if(o.startsWith("interval:")){const e=parseInt(o.split(":")[1]);return setInterval(async()=>{const e=new Map(t);for(const t of r.commands)await d(t,n,e)},e),n}if("init"===o){const e=new Map(t);for(const t of r.commands)await d(t,n,e);return n}return s&&s.addEventListener(o,async e=>{const s=new Map(t);s.set("event",e);for(const e of r.commands)await d(e,n,s)}),n}function l(e=document){const n=e.querySelectorAll("[_]");for(const e of n){const n=e.getAttribute("_");if(n)try{m(s(n),e)}catch(e){console.error("HyperFixi Lite+ error:",e,"Code:",n)}}}"undefined"!=typeof window&&(window.hyperfixi={version:"1.0.0-lite-plus",parse:s,execute:async(e,n)=>{const t=n||document.body;return m(s(e),t)},init:l,process:l,addAliases:n=>{Object.assign(e,n)},addEventAliases:e=>{Object.assign(n,e)},commands:["add","remove","toggle","take","put","append","set","increment","decrement","show","hide","focus","blur","log","send","trigger","wait","go"]},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>l()):l())}();
1
+ !function(){"use strict";const e={flip:"toggle",switch:"toggle",display:"show",reveal:"show",conceal:"hide",increase:"increment",decrease:"decrement",fire:"trigger",dispatch:"send",navigate:"go",goto:"go"},n={clicked:"click",pressed:"keydown",changed:"change",submitted:"submit",loaded:"load"};function t(n){const t=n.toLowerCase();return e[t]||t}function r(e){const t=e.toLowerCase();return n[t]||t}function s(e){const n=e.trim(),t=n.match(/^on\s+(\w+)(?:\s+from\s+([^\s]+))?\s+(.+)$/i);if(t)return{event:r(t[1]),filter:t[2],commands:o(t[3])};const s=n.match(/^every\s+(\d+)(ms|s)?\s+(.+)$/i);if(s)return{event:"interval:"+("s"===s[2]?1e3*parseInt(s[1]):parseInt(s[1])),commands:o(s[3])};const i=n.match(/^init\s+(.+)$/i);return i?{event:"init",commands:o(i[1])}:o(n)}function o(e){return e.split(/\s+(?:then|and)\s+/i).map(i).filter(Boolean)}function i(e){const n=e.trim();if(!n)return null;let r;if(r=n.match(/^(\w+)\s+(\.\w+|\w+)(?:\s+on\s+(.+))?$/i),r&&"toggle"===t(r[1]))return{name:"toggle",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(\.\w+|\w+)(?:\s+to\s+(.+))?$/i),r&&"add"===t(r[1]))return{name:"add",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(\.\w+)(?:\s+from\s+(.+))?$/i),r&&"remove"===t(r[1]))return{name:"remove",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(.+)$/i),r&&"remove"===t(r[1]))return{name:"remove",args:[],target:r[2]};if(r=n.match(/^(\w+)\s+(\.\w+)\s+from\s+(.+)$/i),r&&"take"===t(r[1]))return{name:"take",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s+(into|before|after)\s+(.+)$/i),r&&"put"===t(r[1]))return{name:"put",args:[r[2]||r[3]||r[4]],modifier:r[5],target:r[6]};if(r=n.match(/^(\w+)\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s+to\s+(.+)$/i),r&&"append"===t(r[1]))return{name:"append",args:[r[2]||r[3]||r[4]],target:r[5]};if(r=n.match(/^(\w+)\s+(.+?)\s+to\s+(.+)$/i),r&&"set"===t(r[1]))return{name:"set",args:[r[2],r[3]]};if(r=n.match(/^(\w+)\s+(.+?)(?:\s+by\s+(\d+))?$/i),r&&("increment"===t(r[1])||"decrement"===t(r[1])))return{name:t(r[1]),args:[r[2],r[3]||"1"]};if(r=n.match(/^(\w+)\s+(.+)$/i),r&&"log"===t(r[1]))return{name:"log",args:[r[2]]};if(r=n.match(/^(\w+)\s+(\w+)(?:\s+to\s+(.+))?$/i),r&&("send"===t(r[1])||"trigger"===t(r[1])))return{name:"send",args:[r[2]],target:r[3]};if(r=n.match(/^(\w+)\s+(\d+)(ms|s)?$/i),r&&"wait"===t(r[1]))return{name:"wait",args:[""+("s"===r[3]?1e3*parseInt(r[2]):parseInt(r[2]))]};if(r=n.match(/^(\w+)(?:\s+(.+))?$/i),r&&("focus"===t(r[1])||"blur"===t(r[1])))return{name:t(r[1]),args:[],target:r[2]};if(r=n.match(/^(\w+)\s+(?:to\s+(?:url\s+)?)?(.+)$/i),r&&"go"===t(r[1]))return{name:"go",args:[r[2]]};if(r=n.match(/^(\w+)(?:\s+(.+))?$/i),r&&("show"===t(r[1])||"hide"===t(r[1]))){const e=r[2];return"show"===t(r[1])?{name:"remove",args:[".hidden"],target:e}:{name:"add",args:[".hidden"],target:e}}if(r=n.match(/^(if|unless)\s+(.+?)\s+(toggle|add|remove|put|set|log|send|wait|show|hide|increment|decrement|focus|blur|go|take|append)\s+(.+)$/i),r){const e=i(`${r[3]} ${r[4]}`);if(e)return e.modifier=r[1].toLowerCase(),e.args.unshift(r[2]),e}const s=n.split(/\s+/);return s.length>0?{name:t(s[0]),args:s.slice(1)}:null}const a=new WeakMap;function c(e){let n=a.get(e);return n||(n=new Map,a.set(e,n)),n}function u(e,n){if(!e)return n;const t=e.trim();if("me"===t)return n;if("body"===t)return document.body;if(t.startsWith("#")||t.startsWith(".")||t.startsWith("[")){const e=document.querySelectorAll(t);return 1===e.length?e[0]:Array.from(e)}return/^\w+$/.test(t)&&document.getElementById(t)?document.getElementById(t):n}function f(e){return e.startsWith(".")?e.slice(1):e}function d(e,n,t){if(!e)return;const r=e.trim();if(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'"))return r.slice(1,-1);if(/^-?\d+(\.\d+)?$/.test(r))return parseFloat(r);if("true"===r)return 1;if("false"===r)return 0;if("null"===r)return null;if(r.startsWith(":"))return c(n).get(r.slice(1));if("me"===r)return n;if("my"===r)return n;if("body"===r)return document.body;const s=r.match(/^(me|my)\.(\w+)$/);if(s)return n[s[2]];const o=r.match(/^([#.\w]+)(?:'s|\.)\s*(\w+)$/);if(o){const e=u(o[1],n);if(e&&!Array.isArray(e))return e[o[2]]}return r}function m(e,n,t){const r=e.trim(),s=r.match(/^(me|my)\s+has\s+\.(\w+)$/i);if(s)return n.classList.contains(s[2]);const o=r.match(/^(me|my)\.(\w+)$/i);return o?!!n[o[2]]:r.startsWith(":")?!!c(n).get(r.slice(1)):!!d(r,n)}async function l(e,n,t){const r=u(e.target,n),s=Array.isArray(r)?r:r?[r]:[n];switch(e.name){case"toggle":{const n=f(e.args[0]);for(const e of s)e.classList.toggle(n);return 1===s.length?s[0]:s}case"add":{const n=f(e.args[0]);for(const e of s)e.classList.add(n);return 1===s.length?s[0]:s}case"remove":if(e.args[0]){const n=f(e.args[0]);for(const e of s)e.classList.remove(n)}else for(const e of s)e.remove();return null;case"take":{const t=f(e.args[0]),r=u(e.target,n),s=Array.isArray(r)?r:r?[r]:[];for(const e of s)e.classList.remove(t);return n.classList.add(t),n}case"put":{const t=d(e.args[0],n);for(const n of s)switch(e.modifier?.toLowerCase()){case"into":default:n.innerHTML=t+"";break;case"before":n.insertAdjacentHTML("beforebegin",t+"");break;case"after":n.insertAdjacentHTML("afterend",t+"")}return 1===s.length?s[0]:s}case"append":{const t=d(e.args[0],n);for(const e of s)e.insertAdjacentHTML("beforeend",t+"");return 1===s.length?s[0]:s}case"set":{const[t,r]=e.args,s=d(r,n);if(t.startsWith(":"))return c(n).set(t.slice(1),s),s;const o=t.match(/^(.+?)(?:'s|\.)\s*(\w+)$/);if(o){const e=u(o[1],n);if(e)return e[o[2]]=s,e}return s}case"increment":{const[t,r]=e.args,s=parseInt(r)||1;if(t.startsWith(":")){const e=c(n).get(t.slice(1))||0;return c(n).set(t.slice(1),e+s),e+s}const o=t.match(/^(.+?)(?:'s|\.)\s*(\w+)$/);if(o){const e=u(o[1],n);if(e)return e[o[2]]=(parseInt(e[o[2]])||0)+s,e[o[2]]}const i=u(t,n);if(i&&!Array.isArray(i)){const e=parseInt(i.textContent||"0")||0;return i.textContent=e+s+"",e+s}return null}case"decrement":{const[t,r]=e.args,s=parseInt(r)||1;if(t.startsWith(":")){const e=c(n).get(t.slice(1))||0;return c(n).set(t.slice(1),e-s),e-s}const o=t.match(/^(.+?)(?:'s|\.)\s*(\w+)$/);if(o){const e=u(o[1],n);if(e)return e[o[2]]=(parseInt(e[o[2]])||0)-s,e[o[2]]}const i=u(t,n);if(i&&!Array.isArray(i)){const e=parseInt(i.textContent||"0")||0;return i.textContent=e-s+"",e-s}return null}case"focus":for(const e of s)e.focus();return 1===s.length?s[0]:s;case"blur":for(const e of s)e.blur();return 1===s.length?s[0]:s;case"go":{const n=e.args[0]?.trim();if("back"===n)history.back();else if("forward"===n)history.forward();else if(n){const e=n.replace(/^["']|["']$/g,"");window.location.href=e}return null}case"log":{const t=d(e.args.join(" "),n);return console.log(t),t}case"send":{const n=new CustomEvent(e.args[0],{bubbles:1});for(const e of s)e.dispatchEvent(n);return n}case"wait":{const n=parseInt(e.args[0])||0;return await new Promise(e=>setTimeout(e,n)),n}default:return console.warn("Unknown command: "+e.name),null}}async function w(e,n,t=new Map){if(Array.isArray(e)){let t;for(const r of e){if("if"===r.modifier||"unless"===r.modifier){const e=m(r.args[0],n);if(!("if"===r.modifier?e:!e))continue;r.args.shift()}t=await l(r,n)}return t}const r=e,s=r.filter?document.querySelector(r.filter):n,o=r.event;if(o.startsWith("interval:")){const e=parseInt(o.split(":")[1]);return setInterval(async()=>{new Map(t);for(const e of r.commands)await l(e,n)},e),n}if("init"===o){new Map(t);for(const e of r.commands)await l(e,n);return n}return s&&s.addEventListener(o,async e=>{new Map(t).set("event",e);for(const e of r.commands)await l(e,n)}),n}function g(e=document){const n=e.querySelectorAll("[_]");for(const e of n){const n=e.getAttribute("_");if(n)try{w(s(n),e)}catch(e){console.error("HyperFixi Lite+ error:",e,"Code:",n)}}}"undefined"!=typeof window&&(window.hyperfixi={version:"1.0.0-lite-plus",parse:s,execute:async(e,n)=>{const t=n||document.body;return w(s(e),t)},init:g,process:g,addAliases:n=>{Object.assign(e,n)},addEventAliases:e=>{Object.assign(n,e)},commands:["add","remove","toggle","take","put","append","set","increment","decrement","show","hide","focus","blur","log","send","trigger","wait","go"]},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>g()):g())}();
@@ -1 +1 @@
1
- !function(){"use strict";function e(e){const t=e.trim(),r=t.match(/^on\s+(\w+)(?:\s+from\s+([^\s]+))?\s+(.+)$/i);if(r)return{event:r[1],filter:r[2],commands:n(r[3])};const s=t.match(/^every\s+(\d+)(ms|s)?\s+(.+)$/i);if(s)return{event:"interval:"+("s"===s[2]?1e3*parseInt(s[1]):parseInt(s[1])),commands:n(s[3])};const o=t.match(/^init\s+(.+)$/i);return o?{event:"init",commands:n(o[1])}:n(t)}function n(e){return e.split(/\s+(?:then|and)\s+/i).map(t).filter(Boolean)}function t(e){const n=e.trim();if(!n)return null;let r=n.match(/^toggle\s+(\.\w+|\w+)(?:\s+on\s+(.+))?$/i);if(r)return{name:"toggle",args:[r[1]],target:r[2]};if(r=n.match(/^add\s+(\.\w+|\w+)(?:\s+to\s+(.+))?$/i),r)return{name:"add",args:[r[1]],target:r[2]};if(r=n.match(/^remove\s+(\.\w+)(?:\s+from\s+(.+))?$/i),r)return{name:"remove",args:[r[1]],target:r[2]};if(r=n.match(/^remove\s+(.+)$/i),r)return{name:"remove",args:[],target:r[1]};if(r=n.match(/^put\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s+(into|before|after)\s+(.+)$/i),r)return{name:"put",args:[r[1]||r[2]||r[3]],modifier:r[4],target:r[5]};if(r=n.match(/^set\s+(.+?)\s+to\s+(.+)$/i),r)return{name:"set",args:[r[1],r[2]]};if(r=n.match(/^log\s+(.+)$/i),r)return{name:"log",args:[r[1]]};if(r=n.match(/^send\s+(\w+)(?:\s+to\s+(.+))?$/i),r)return{name:"send",args:[r[1]],target:r[2]};if(r=n.match(/^wait\s+(\d+)(ms|s)?$/i),r)return{name:"wait",args:[""+("s"===r[2]?1e3*parseInt(r[1]):parseInt(r[1]))]};if(r=n.match(/^(if|unless)\s+(.+?)\s+(toggle|add|remove|put|set|log|send|wait)\s+(.+)$/i),r){const e=t(`${r[3]} ${r[4]}`);if(e)return e.modifier=r[1].toLowerCase(),e.args.unshift(r[2]),e}if(r=n.match(/^(show|hide)(?:\s+(.+))?$/i),r){const e=r[2];return"show"===r[1].toLowerCase()?{name:"remove",args:[".hidden"],target:e}:{name:"add",args:[".hidden"],target:e}}const s=n.split(/\s+/);return s.length>0?{name:s[0],args:s.slice(1)}:null}function r(e,n){if(!e)return n;const t=e.trim();if("me"===t)return n;if("body"===t)return document.body;if(t.startsWith("#")||t.startsWith(".")||t.startsWith("[")){const e=document.querySelectorAll(t);return 1===e.length?e[0]:Array.from(e)}return/^\w+$/.test(t)&&document.getElementById(t)?document.getElementById(t):n}function s(e){return e.startsWith(".")?e.slice(1):e}async function o(e,n,t){const o=r(e.target,n),a=Array.isArray(o)?o:o?[o]:[n];switch(e.name){case"toggle":{const n=s(e.args[0]);for(const e of a)e.classList.toggle(n);return 1===a.length?a[0]:a}case"add":{const n=s(e.args[0]);for(const e of a)e.classList.add(n);return 1===a.length?a[0]:a}case"remove":if(e.args[0]){const n=s(e.args[0]);for(const e of a)e.classList.remove(n)}else for(const e of a)e.remove();return null;case"put":{const r=i(e.args[0],n,t);for(const n of a)switch(e.modifier?.toLowerCase()){case"into":default:n.innerHTML=r+"";break;case"before":n.insertAdjacentHTML("beforebegin",r+"");break;case"after":n.insertAdjacentHTML("afterend",r+"")}return 1===a.length?a[0]:a}case"set":{const[s,o]=e.args,a=i(o,n,t);if(s.startsWith(":"))return t.set(s.slice(1),a),a;const c=s.match(/^(.+?)(?:'s|\.)\s*(\w+)$/);if(c){const e=r(c[1],n);if(e)return e[c[2]]=a,e}return a}case"log":{const r=i(e.args.join(" "),n,t);return console.log(r),r}case"send":{const n=new CustomEvent(e.args[0],{bubbles:1});for(const e of a)e.dispatchEvent(n);return n}case"wait":{const n=parseInt(e.args[0])||0;return await new Promise(e=>setTimeout(e,n)),n}default:return console.warn("Unknown command: "+e.name),null}}function i(e,n,t){if(!e)return;const r=e.trim();if(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'"))return r.slice(1,-1);if(/^-?\d+(\.\d+)?$/.test(r))return parseFloat(r);if("true"===r)return 1;if("false"===r)return 0;if("null"===r)return null;if(r.startsWith(":"))return t.get(r.slice(1));if("me"===r)return n;if("my"===r)return n;if("body"===r)return document.body;const s=r.match(/^(me|my)\.(\w+)$/);return s?n[s[2]]:r}async function a(e,n,t=new Map){if(Array.isArray(e)){let r;for(const s of e){if("if"===s.modifier||"unless"===s.modifier){const e=c(s.args[0],n,t);if(!("if"===s.modifier?e:!e))continue;s.args.shift()}r=await o(s,n,t)}return r}const r=e,s=r.filter?document.querySelector(r.filter):n,i=r.event;if(i.startsWith("interval:")){const e=parseInt(i.split(":")[1]);return setInterval(async()=>{const e=new Map(t);for(const t of r.commands)await o(t,n,e)},e),n}if("init"===i){const e=new Map(t);for(const t of r.commands)await o(t,n,e);return n}return s&&s.addEventListener(i,async e=>{const s=new Map(t);s.set("event",e);for(const e of r.commands)await o(e,n,s)}),n}function c(e,n,t){const r=e.trim(),s=r.match(/^(me|my)\s+has\s+\.(\w+)$/i);if(s)return n.classList.contains(s[2]);const o=r.match(/^(me|my)\.(\w+)$/i);return o?!!n[o[2]]:r.startsWith(":")?!!t.get(r.slice(1)):!!i(r,n,t)}function u(n=document){const t=n.querySelectorAll("[_]");for(const n of t){const t=n.getAttribute("_");if(t)try{a(e(t),n)}catch(e){console.error("HyperFixi Lite error:",e,"Code:",t)}}}"undefined"!=typeof window&&(window.hyperfixi={version:"1.0.0-lite",parse:e,execute:async(n,t)=>{const r=t||document.body;return a(e(n),r)},init:u,process:u,commands:["add","remove","toggle","put","set","log","send","wait"]},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>u()):u())}();
1
+ !function(){"use strict";function e(e){const t=e.trim(),r=t.match(/^on\s+(\w+)(?:\s+from\s+([^\s]+))?\s+(.+)$/i);if(r)return{event:r[1],filter:r[2],commands:n(r[3])};const s=t.match(/^every\s+(\d+)(ms|s)?\s+(.+)$/i);if(s)return{event:"interval:"+("s"===s[2]?1e3*parseInt(s[1]):parseInt(s[1])),commands:n(s[3])};const o=t.match(/^init\s+(.+)$/i);return o?{event:"init",commands:n(o[1])}:n(t)}function n(e){return e.split(/\s+(?:then|and)\s+/i).map(t).filter(Boolean)}function t(e){const n=e.trim();if(!n)return null;let r=n.match(/^toggle\s+(\.\w+|\w+)(?:\s+on\s+(.+))?$/i);if(r)return{name:"toggle",args:[r[1]],target:r[2]};if(r=n.match(/^add\s+(\.\w+|\w+)(?:\s+to\s+(.+))?$/i),r)return{name:"add",args:[r[1]],target:r[2]};if(r=n.match(/^remove\s+(\.\w+)(?:\s+from\s+(.+))?$/i),r)return{name:"remove",args:[r[1]],target:r[2]};if(r=n.match(/^remove\s+(.+)$/i),r)return{name:"remove",args:[],target:r[1]};if(r=n.match(/^put\s+(?:"([^"]+)"|'([^']+)'|(\S+))\s+(into|before|after)\s+(.+)$/i),r)return{name:"put",args:[r[1]||r[2]||r[3]],modifier:r[4],target:r[5]};if(r=n.match(/^set\s+(.+?)\s+to\s+(.+)$/i),r)return{name:"set",args:[r[1],r[2]]};if(r=n.match(/^log\s+(.+)$/i),r)return{name:"log",args:[r[1]]};if(r=n.match(/^send\s+(\w+)(?:\s+to\s+(.+))?$/i),r)return{name:"send",args:[r[1]],target:r[2]};if(r=n.match(/^wait\s+(\d+)(ms|s)?$/i),r)return{name:"wait",args:[""+("s"===r[2]?1e3*parseInt(r[1]):parseInt(r[1]))]};if(r=n.match(/^(if|unless)\s+(.+?)\s+(toggle|add|remove|put|set|log|send|wait)\s+(.+)$/i),r){const e=t(`${r[3]} ${r[4]}`);if(e)return e.modifier=r[1].toLowerCase(),e.args.unshift(r[2]),e}if(r=n.match(/^(show|hide)(?:\s+(.+))?$/i),r){const e=r[2];return"show"===r[1].toLowerCase()?{name:"remove",args:[".hidden"],target:e}:{name:"add",args:[".hidden"],target:e}}const s=n.split(/\s+/);return s.length>0?{name:s[0],args:s.slice(1)}:null}const r=new WeakMap;function s(e){let n=r.get(e);return n||(n=new Map,r.set(e,n)),n}function o(e,n){if(!e)return n;const t=e.trim();if("me"===t)return n;if("body"===t)return document.body;if(t.startsWith("#")||t.startsWith(".")||t.startsWith("[")){const e=document.querySelectorAll(t);return 1===e.length?e[0]:Array.from(e)}return/^\w+$/.test(t)&&document.getElementById(t)?document.getElementById(t):n}function i(e){return e.startsWith(".")?e.slice(1):e}async function a(e,n,t){const r=o(e.target,n),a=Array.isArray(r)?r:r?[r]:[n];switch(e.name){case"toggle":{const n=i(e.args[0]);for(const e of a)e.classList.toggle(n);return 1===a.length?a[0]:a}case"add":{const n=i(e.args[0]);for(const e of a)e.classList.add(n);return 1===a.length?a[0]:a}case"remove":if(e.args[0]){const n=i(e.args[0]);for(const e of a)e.classList.remove(n)}else for(const e of a)e.remove();return null;case"put":{const t=u(e.args[0],n);for(const n of a)switch(e.modifier?.toLowerCase()){case"into":default:n.innerHTML=t+"";break;case"before":n.insertAdjacentHTML("beforebegin",t+"");break;case"after":n.insertAdjacentHTML("afterend",t+"")}return 1===a.length?a[0]:a}case"set":{const[t,r]=e.args,i=u(r,n);if(t.startsWith(":"))return s(n).set(t.slice(1),i),i;const a=t.match(/^(.+?)(?:'s|\.)\s*(\w+)$/);if(a){const e=o(a[1],n);if(e)return e[a[2]]=i,e}return i}case"log":{const t=u(e.args.join(" "),n);return console.log(t),t}case"send":{const n=new CustomEvent(e.args[0],{bubbles:1});for(const e of a)e.dispatchEvent(n);return n}case"wait":{const n=parseInt(e.args[0])||0;return await new Promise(e=>setTimeout(e,n)),n}default:return console.warn("Unknown command: "+e.name),null}}function u(e,n,t){if(!e)return;const r=e.trim();if(r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'"))return r.slice(1,-1);if(/^-?\d+(\.\d+)?$/.test(r))return parseFloat(r);if("true"===r)return 1;if("false"===r)return 0;if("null"===r)return null;if(r.startsWith(":"))return s(n).get(r.slice(1));if("me"===r)return n;if("my"===r)return n;if("body"===r)return document.body;const o=r.match(/^(me|my)\.(\w+)$/);return o?n[o[2]]:r}async function c(e,n,t=new Map){if(Array.isArray(e)){let t;for(const r of e){if("if"===r.modifier||"unless"===r.modifier){const e=f(r.args[0],n);if(!("if"===r.modifier?e:!e))continue;r.args.shift()}t=await a(r,n)}return t}const r=e,s=r.filter?document.querySelector(r.filter):n,o=r.event;if(o.startsWith("interval:")){const e=parseInt(o.split(":")[1]);return setInterval(async()=>{new Map(t);for(const e of r.commands)await a(e,n)},e),n}if("init"===o){new Map(t);for(const e of r.commands)await a(e,n);return n}return s&&s.addEventListener(o,async e=>{new Map(t).set("event",e);for(const e of r.commands)await a(e,n)}),n}function f(e,n,t){const r=e.trim(),o=r.match(/^(me|my)\s+has\s+\.(\w+)$/i);if(o)return n.classList.contains(o[2]);const i=r.match(/^(me|my)\.(\w+)$/i);return i?!!n[i[2]]:r.startsWith(":")?!!s(n).get(r.slice(1)):!!u(r,n)}function m(n=document){const t=n.querySelectorAll("[_]");for(const n of t){const t=n.getAttribute("_");if(t)try{c(e(t),n)}catch(e){console.error("HyperFixi Lite error:",e,"Code:",t)}}}"undefined"!=typeof window&&(window.hyperfixi={version:"1.0.0-lite",parse:e,execute:async(n,t)=>{const r=t||document.body;return c(e(n),r)},init:m,process:m,commands:["add","remove","toggle","put","set","log","send","wait"]},"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>m()):m())}();