@lengkapp/edge 0.0.42 → 0.0.43

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.
package/README.md CHANGED
@@ -47,7 +47,6 @@ Inspired by Hono, `@lengkapp/edge` aims for the same class of performance while
47
47
  - **Opt-in device fingerprint** via `_id` — Canvas, WebGL, Audio, font probe, and basic navigator signals, hashed once per page; sent as `X-DeviceId` on `_get` / `_post` and as `?_did=` on `_go` / `_open`
48
48
  - **Event, load, and visibility triggers** – `click` (default), `load`, `visible`, or any DOM event name
49
49
  - **JSON and form bodies** – `_json="a,b,c"` or `_form="#signup"`
50
- - **Scalable Translation** – `_translate={indentifier}`, based on `html lang={lang-id}` it will look for `/t/{lang-id}/{identifier}.jon`
51
50
  - **Built-in loading and error states** – deferred spinner, skeleton loader, abortable requests, one-click retry
52
51
  - **View Transitions aware** – swaps run inside `document.startViewTransition` when available
53
52
  - **Zero dependencies**
package/dist/README.md CHANGED
@@ -47,7 +47,6 @@ Inspired by Hono, `@lengkapp/edge` aims for the same class of performance while
47
47
  - **Opt-in device fingerprint** via `_id` — Canvas, WebGL, Audio, font probe, and basic navigator signals, hashed once per page; sent as `X-DeviceId` on `_get` / `_post` and as `?_did=` on `_go` / `_open`
48
48
  - **Event, load, and visibility triggers** – `click` (default), `load`, `visible`, or any DOM event name
49
49
  - **JSON and form bodies** – `_json="a,b,c"` or `_form="#signup"`
50
- - **Scalable Translation** – `_translate={indentifier}`, based on `html lang={lang-id}` it will look for `/t/{lang-id}/{identifier}.jon`
51
50
  - **Built-in loading and error states** – deferred spinner, skeleton loader, abortable requests, one-click retry
52
51
  - **View Transitions aware** – swaps run inside `document.startViewTransition` when available
53
52
  - **Zero dependencies**
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @lengkapp/edge v0.0.42
2
+ * @lengkapp/edge v0.0.43
3
3
  * MIT License
4
4
  *
5
5
  * LengkApp Edge License
@@ -30,4 +30,4 @@
30
30
  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
31
31
  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32
32
  */
33
- !function(){"use strict";var r=document,e=window,t=null;function n(r){return!!r.hasAttribute("_id")&&(r.hasAttribute("_get")||r.hasAttribute("_post")||r.hasAttribute("_go")||r.hasAttribute("_open"))}function a(){return t||(t=function(){var t=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,(new Date).getTimezoneOffset(),navigator.hardwareConcurrency||"?",navigator.deviceMemory||"?"].join("|"),n=r.createElement("canvas"),a="",i=n.getContext&&n.getContext("2d");if(i){i.textBaseline="top",i.font="14px Arial",i.fillStyle="#f60",i.fillRect(125,1,62,20),i.fillStyle="#069",i.fillText("FP",2,15),i.fillStyle="rgba(102,204,0,0.7)",i.fillText("FP",4,17);try{a=n.toDataURL()}catch(r){a=""}}var o="";try{var s=n.getContext("webgl")||n.getContext("experimental-webgl");if(s){var f=s.getExtension("WEBGL_debug_renderer_info");o=f?s.getParameter(f.UNMASKED_VENDOR_WEBGL)+"~"+s.getParameter(f.UNMASKED_RENDERER_WEBGL):s.getParameter(s.VERSION)+"~"+s.getParameter(s.RENDERER)}}catch(r){o=""}var u=["Arial","Courier New","Times New Roman","Helvetica","Georgia","Verdana","Comic Sans MS","Trebuchet MS","Impact","Lucida Console"],c="",l=r.body||r.documentElement;if(l){for(var v=[],d=0;d<u.length;d++){var p=r.createElement("span");p.style.cssText='position:absolute;left:-9999px;visibility:hidden;font:72px "'+u[d]+'",monospace',p.textContent="mmmmmmmmmmlli",l.appendChild(p),v.push(p.offsetWidth),l.removeChild(p)}c=v.join(",")}return function(){var r=e.OfflineAudioContext||e.webkitOfflineAudioContext;if(!r)return Promise.resolve("");try{var t=new r(1,44100,44100),n=t.createOscillator();n.type="triangle",n.frequency.value=1e4;var a=t.createDynamicsCompressor();return a.threshold.value=-50,a.knee.value=40,a.ratio.value=12,a.attack.value=0,a.release.value=.25,n.connect(a),a.connect(t.destination),n.start(0),t.startRendering().then(function(r){for(var e=r.getChannelData(0),t=0,n=4500;n<5e3;n++)t+=Math.abs(e[n]);return t.toString()}).catch(function(){return""})}catch(r){return Promise.resolve("")}}().then(function(r){return function(r){if(!e.crypto||!e.crypto.subtle||!e.TextEncoder){for(var t=5381,n=0;n<r.length;n++)t=(t<<5)+t^r.charCodeAt(n);return Promise.resolve((t>>>0).toString(16))}var a=(new TextEncoder).encode(r);return e.crypto.subtle.digest("SHA-256",a).then(function(r){for(var e=new Uint8Array(r),t="",n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,"0");return t})}([t,a,o,c,r].join("||"))})}().catch(function(){return""})),t}var i="ax-app-style",o=["@keyframes ax-spin{to{transform:rotate(360deg)}}","@keyframes ax-shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}","@keyframes ax-fade-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}",".ax-state,.ax-state *,.ax-state *::before,.ax-state *::after{box-sizing:border-box;margin:0;padding:0}",".ax-state{","display:flex;flex-direction:column;align-items:center;justify-content:center;","gap:calc(var(--pad,1) * 12px);","width:100%;min-width:min(240px,100%);min-height:240px;","padding:calc(var(--pad,1) * 20px);","background:inherit;","color:var(--fg2,#71717a);","font-family:var(--font,system-ui,-apple-system,sans-serif);","font-size:var(--fs,14px);line-height:1.45;text-align:center;","transition:var(--t,all .25s ease);","-webkit-user-select:none;user-select:none;","}",".ax-state--loading,.ax-state--skeleton{animation:ax-fade-in 220ms ease-out both}",".ax-state svg{display:block;flex:0 0 auto;width:24px;height:24px}",".ax-state--loading svg{color:var(--p,#6d28d9);animation:ax-spin .85s linear infinite}",".ax-state--skeleton{align-items:stretch}",".ax-skel{display:flex;flex-direction:column;gap:calc(var(--pad,1) * 10px);width:100%}",".ax-skel-line{","height:12px;border-radius:calc(var(--br,10px) / 2);","background-color:transparent;","background-image:linear-gradient(90deg,","var(--sk1,#e4e4e7) 25%,var(--sk2,#f4f4f5) 37%,var(--sk1,#e4e4e7) 63%);","background-size:400% 100%;","animation:ax-shimmer 1.4s ease-in-out infinite;","}",".ax-state-text{font-size:var(--fs,14px);color:var(--fg2,#71717a);max-width:34ch}",".ax-state--skeleton .ax-state-text{align-self:center}",".ax-state--error{color:var(--fg,#18181b);animation:ax-fade-in 200ms ease-out both}",".ax-state--error .ax-state-text{color:var(--err,#ef4444)}",".ax-state-btn{","display:inline-flex;align-items:center;justify-content:center;","width:44px;height:44px;padding:0;font:inherit;color:var(--fg,#18181b);","border:none;","background:inherit;","cursor:pointer;transition:var(--t,all .25s ease);","}",".ax-state-btn:hover{color:var(--p,#6d28d9);border-color:var(--p,#6d28d9);box-shadow:var(--sh2,0 4px 12px rgba(0,0,0,.08))}",".ax-state-btn:focus-visible{outline:2px solid var(--p,#6d28d9);outline-offset:2px}",".ax-state-btn:active{transform:scale(.96)}",".ax-state-btn svg{transition:transform .25s ease}",".ax-state-btn:hover svg{transform:rotate(-45deg)}",".ax-hide{display:none !important}","@media (prefers-reduced-motion:reduce){",".ax-state,.ax-state--loading,.ax-state--skeleton,.ax-state--error{animation:none}",".ax-state--loading svg{animation-duration:2s}",".ax-skel-line{animation:none;background-image:none;background-color:var(--sk1,#e4e4e7)}",".ax-state-btn:hover svg{transform:none}","::view-transition-old(root),::view-transition-new(root){animation:none}","}"].join("\n");!function(){if(!r.getElementById(i)){var e=r.createElement("style");e.id=i,e.appendChild(r.createTextNode(o)),(r.head||r.documentElement).appendChild(e)}}();var s,f=new Set,u=new WeakSet,c=new WeakMap,l=new WeakMap,v="[_get],[_post],[_go],[_open]",d=["_in","_out","_before","_after"];function p(e){return new URL(e,r.baseURI).href}function m(r){return new Promise(function(e){var t=new FileReader;t.onload=function(){e({name:r.name,type:r.type||"application/octet-stream",size:r.size,data:t.result})},t.onerror=function(){e({name:r.name,type:r.type,size:r.size,data:null})},t.readAsDataURL(r)})}function g(r){if(r.disabled)return Promise.resolve(void 0);var e=r.type;if("file"===e){var t=r.files;return t&&t.length?r.multiple?Promise.all(Array.prototype.map.call(t,m)):m(t[0]):Promise.resolve(r.multiple?[]:null)}return"checkbox"===e?Promise.resolve(r.checked?r.value||"on":null):"radio"===e?Promise.resolve(r.checked?r.value:null):"SELECT"===r.tagName&&r.multiple?Promise.resolve(Array.prototype.map.call(r.selectedOptions,function(r){return r.value})):Promise.resolve(r.value)}function x(e){var t,n=null,a=null;for(t=0;t<d.length;t++)if(e.hasAttribute(d[t])){n=d[t],a=e.getAttribute(d[t]);break}if(!n)return null;var i=e;if(a&&"this"!==a)try{i=r.querySelector(a)}catch(r){return null}return i&&i.parentNode?{mode:n,el:i,parent:i.parentNode}:null}function h(r,e){"_before"===r.mode||"_out"===r.mode?r.parent.insertBefore(e,r.el):r.parent.insertBefore(e,r.el.nextSibling)}function b(r){var e=l.get(r);e&&(e.node&&e.node.parentNode&&e.node.parentNode.removeChild(e.node),e.target&&e.target.removeAttribute("aria-busy"),l.delete(r))}function w(r,e){var t=r.querySelector(".ax-state-btn");t&&t.addEventListener("click",function(r){r.preventDefault(),r.stopPropagation(),P(e)})}function k(e){var t=r.createElement("div");return t.className="ax-state ax-state--error",t.setAttribute("role","alert"),t.innerHTML='<button type="button" class="ax-state-btn" aria-label="Retry"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw preview-icon" aria-hidden="true"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/></svg></button><span class="ax-state-text">'+String(e).replace(/[&<>"']/g,function(r){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}[r]})+"</span>",t}function _(e){if("function"==typeof r.startViewTransition)try{return void r.startViewTransition(e)}catch(r){}e()}function y(r,t){if(r.hasAttribute("_go"))e.location.assign(t);else{var n=e.open(t,"_blank","noopener,noreferrer");n&&(n.opener=null)}}function P(e){if(function(r){return r.hasAttribute("_go")||r.hasAttribute("_open")}(e))!function(r){var e=function(r){var e=r.hasAttribute("_go")?r.getAttribute("_go"):r.getAttribute("_open");if(!(e=(e||"").trim())||"this"===e){var t=r.getAttribute("href");t&&(e=t)}return e?p(e):""}(r);e&&(n(r)?a().then(function(t){y(r,function(r,e){return e?r+(r.indexOf("?")>=0?"&":"?")+"_did="+encodeURIComponent(e):r}(e,t))}):y(r,e))}(e);else{var t=e.hasAttribute("_get"),i=e.getAttribute(t?"_get":"_post");if(null!==i&&x(e)){var o=c.get(e),s=new AbortController;c.set(e,s),o&&o.abort(),b(e);var u=0,d=setTimeout(function(){c.get(e)===s&&(function(e){var t=x(e);if(!t)return null;var n=(e.getAttribute("_loader")||"spinner").toLowerCase();if("none"===n||"off"===n||"false"===n)return null;t.el.classList.add("ax-hide"),t.el.setAttribute("aria-busy","true");var a=function(e){var t="skeleton"===e,n=r.createElement("div");return n.className="ax-state ax-state--"+(t?"skeleton":"loading"),n.setAttribute("role","status"),n.setAttribute("aria-live","polite"),n.setAttribute("aria-busy","true"),n.innerHTML=t?'<div class="ax-skel" aria-hidden="true"><span class="ax-skel-line" style="width:48%"></span><span class="ax-skel-line"></span><span class="ax-skel-line" style="width:86%"></span><span class="ax-skel-line" style="width:64%"></span></div><span class="ax-state-text">Loading…</span>':'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-loader-circle preview-icon" aria-hidden="true"><path d="M21 12a9 9 0 1 1-6.219-8.56"/></svg><span class="ax-state-text">Loading…</span>',n}(n);h(t,a),l.set(e,{node:a,target:t.el})}(e),u=performance.now())},100),m=parseInt(e.getAttribute("_timeout"),10);m>0||(m=2e4);var P=r.querySelector('meta[name="_csrf"]'),T=P?P.content:void 0,S={method:t?"GET":"POST",credentials:"same-origin",headers:T?{"x-csrf-token":T}:void 0,redirect:"follow",referrerPolicy:"same-origin",signal:s.signal},M=setTimeout(function(){s.abort()},m),j=Promise.resolve();if(!t)if(e.hasAttribute("_json"))j=function(e){var t=(e.getAttribute("_json")||"").trim();if(!t)return Promise.resolve(null);var n=t.split(",").map(function(r){return r.trim()}).filter(Boolean);if(!n.length)return Promise.resolve(null);var a=e.closest("form")||r;return Promise.all(n.map(function(e){return function(e,t){var n=r.getElementById(t);if(n&&e.contains(n))return g(n);var a=function(r,e){for(var t=r.querySelectorAll("input[name],select[name],textarea[name]"),n=[],a=0;a<t.length;a++)t[a].name===e&&n.push(t[a]);return n}(e,t);if(!a.length)return Promise.resolve(void 0);if(1===a.length)return g(a[0]);var i=a[0];if("radio"===i.type){for(var o=0;o<a.length;o++)if(a[o].checked)return Promise.resolve(a[o].value);return Promise.resolve(null)}if("checkbox"===i.type){for(var s=[],f=0;f<a.length;f++)a[f].checked&&!a[f].disabled&&s.push(a[f].value||"on");return Promise.resolve(s)}return g(i)}(a,e).then(function(r){return[e,r]})})).then(function(r){for(var e={},t=0;t<r.length;t++)void 0!==r[t][1]&&(e[r[t][0]]=r[t][1]);return JSON.stringify(e)})}(e).then(function(r){null!==r&&(S.headers["Content-Type"]="application/json",S.body=r)});else if(e.hasAttribute("_form")){var O=function(e){var t,n=e.getAttribute("_form");try{t=r.querySelector(n)||r.getElementById(n)}catch(r){t=null}return t?new FormData(t):null}(e);O&&(S.body=O)}n(e)&&(j=Promise.all([j,a()]).then(function(r){var e=r[1];e&&(S.headers["X-DeviceId"]=e)})),j.then(function(){return fetch(i,S)}).then(function(r){if(clearTimeout(M),!r.ok){var t=new Error("HTTP "+r.status);if(t.status=r.status,e.hasAttribute("_toast"))return r.text().then(function(r){throw t.toast=r,t});throw t}return r.text()}).then(function(t){clearTimeout(d),A(function(){var n=function(){b(e),t&&function(e,t){var n=x(e);if(n){var a=r.createElement("template");a.innerHTML=t;var i,o,s=a.content,u=[],c=[],l=[];for(o=s.querySelectorAll("script"),i=0;i<o.length;i++)u.push(o[i]),o[i].parentNode.removeChild(o[i]);for(o=s.querySelectorAll(v),i=0;i<o.length;i++)c.push(o[i]);for(o=s.querySelectorAll("[_translate]"),i=0;i<o.length;i++)l.push(o[i]);var d=n.el,m=n.parent;if("_in"===n.mode){for(;d.firstChild;)d.removeChild(d.firstChild);d.appendChild(s),d.classList.remove("ax-hide")}else"_out"===n.mode?m.replaceChild(s,d):"_before"===n.mode?(m.insertBefore(s,d),d.classList.remove("ax-hide")):(m.insertBefore(s,d.nextSibling),d.classList.remove("ax-hide"));for(i=0;i<c.length;i++)D(c[i]);for(i=0;i<l.length;i++)W(l[i]);W(d),function(e){for(var t=0;t<e.length;t++){var n=e[t],a=n.getAttribute("src");if(a){if(a=p(a),f.has(a))continue;f.add(a)}for(var i=r.createElement("script"),o=0;o<n.attributes.length;o++)i.setAttribute(n.attributes[o].name,n.attributes[o].value);a||(i.text=n.text),i.async=!1,r.head.appendChild(i)}}(u)}}(e,t)};l.get(e)?_(n):n()})}).catch(function(t){if(clearTimeout(M),clearTimeout(d),c.get(e)===s){if(t&&void 0!==t.toast){var n=function(e){var t=(e.getAttribute("_toast")||"").trim();if(!t)return null;if("this"===t)return e;try{return r.querySelector(t)}catch(r){return null}}(e);if(n)return void A(function(){b(e),n.innerHTML=t.toast})}var a;a=t&&"AbortError"===t.name?"Request timed out":t&&t.message?t.message:"Request failed",t&&"AbortError"!==t.name&&console.error("[app]",t),A(function(){!function(r,e){var t=l.get(r),n=function(){if(t&&t.node&&t.node.parentNode){var n=t.node,a=k(e);n.parentNode.replaceChild(a,n),t.target&&t.target.removeAttribute("aria-busy"),l.set(r,{node:a,target:t.target}),w(a,r)}else{var i=x(r);if(!i)return;i.el.classList.add("ax-hide"),i.el.setAttribute("aria-busy","true");var o=k(e);h(i,o),l.set(r,{node:o,target:i.el}),w(o,r)}};t?_(n):n()}(e,a)})}})}}function A(r){if(0!==u){var t=Math.max(0,240-(performance.now()-u));0===t?c.get(e)===s&&r():setTimeout(function(){c.get(e)===s&&r()},t)}else c.get(e)===s&&r()}}var T=Object.create(null),S=Object.create(null),M=new WeakMap,j=new WeakMap,O=new WeakMap,A=new Set,C=0,L=["title","placeholder","aria-label","alt"];function R(){var e=r.documentElement&&r.documentElement.getAttribute("lang");return e&&e.trim()||"en"}function E(r){for(var e in r)return!0;return!1}function I(r,e){for(var t=r.parentNode;t&&t!==e;){if(1===t.nodeType&&t.hasAttribute&&t.hasAttribute("_translate"))return!0;t=t.parentNode}return!1}function N(e){if(e&&e.isConnected){var t=e.getAttribute("_translate");if(t){var n=R();(function(r,e){if("en"===e)return Promise.resolve({});var t=e+"-"+r;if(void 0!==T[t])return Promise.resolve(T[t]);if(S[t])return S[t];var n="tr:"+e+"-"+r;try{var a=localStorage.getItem(n);if(null!==a){var i=JSON.parse(a);if(i&&"object"==typeof i&&E(i))return T[t]=i,Promise.resolve(i)}}catch(r){}var o=fetch("/t/"+encodeURIComponent(e)+"/"+encodeURIComponent(r)+".json",{credentials:"same-origin",headers:{Accept:"application/json"}}).then(function(r){if(404===r.status||410===r.status)return{};if(!r.ok)throw new Error("HTTP "+r.status);return r.json()}).then(function(r){if(r&&"object"==typeof r||(r={}),T[t]=r,E(r))try{localStorage.setItem(n,JSON.stringify(r))}catch(r){}else try{localStorage.removeItem(n)}catch(r){}return delete S[t],r}).catch(function(){return delete S[t],{}});return S[t]=o,o})(t,n).then(function(t){e.isConnected&&R()===n&&("en"===n||t&&E(t))&&function(e,t){for(var n,a=r.createTreeWalker(e,4,null,!1);n=a.nextNode();){var i=n.parentNode;if(i){var o=i.nodeName;if("SCRIPT"!==o&&"STYLE"!==o&&"NOSCRIPT"!==o&&!I(n,e)){M.has(n)||M.set(n,n.nodeValue);var s=M.get(n),f=String(s||"").trim();if(f){var u=t[f],c="string"==typeof u?u:f,l=(s.match(/^\s*/)||[""])[0]+c+(s.match(/\s*$/)||[""])[0];n.nodeValue!==l&&(O.set(n,l),n.nodeValue=l)}}}}for(var v=[e],d=e.querySelectorAll?e.querySelectorAll("*"):[],p=0;p<d.length;p++)v.push(d[p]);for(var m=0;m<v.length;m++){var g=v[m];if(1===g.nodeType&&(g===e||!I(g,e))){var x=j.get(g);x||(x=Object.create(null),j.set(g,x));for(var h=0;h<L.length;h++){var b=L[h];if(g.hasAttribute(b)){b in x||(x[b]=g.getAttribute(b));var w=x[b],k=String(w||"").trim();if(k){var _=t[k],y="string"==typeof _?_:k;g.getAttribute(b)!==y&&g.setAttribute(b,y)}}}}}}(e,t||{})})}}}function U(r){if(r&&r.isConnected&&"en"!==R()&&(A.add(r),!C)){var t=e.requestAnimationFrame||function(r){return setTimeout(r,16)};C=t(function(){C=0;var r=[];A.forEach(function(e){r.push(e)}),A.clear();for(var e=0;e<r.length;e++)N(r[e])})}}function W(r){if(r&&1===r.nodeType){r.hasAttribute&&r.hasAttribute("_translate")&&U(r);for(var e=r.querySelectorAll?r.querySelectorAll("[_translate]"):[],t=0;t<e.length;t++)U(e[t])}}function z(){for(var e=r.querySelectorAll("[_translate]"),t=0;t<e.length;t++)N(e[t])}function B(r){var e=r.getAttribute("_trigger");"load"===e||"visible"===e?P(r):r.addEventListener(e,function(e){if("click"===e.type){var t=r.tagName;"BUTTON"!==t&&"A"!==t||e.preventDefault()}P(r)})}function D(r){u.has(r)||(u.add(r),"click"!==(r.getAttribute("_trigger")||"click")&&("IntersectionObserver"in e?(s||(s=new IntersectionObserver(function(r){for(var e=0;e<r.length;e++)r[e].isIntersecting&&(s.unobserve(r[e].target),B(r[e].target))},{rootMargin:"300px"})),s.observe(r)):B(r)))}function F(r){for(var e=r.querySelectorAll(v),t=0;t<e.length;t++)D(e[t])}e.MutationObserver&&new MutationObserver(function(e){for(var t=0;t<e.length;t++){var n=e[t];if("attributes"!==n.type){if("characterData"!==n.type||O.get(n.target)!==n.target.nodeValue){var a=n.target;if(a&&3===a.nodeType&&(a=a.parentNode),a&&a.closest){var i=a.closest("[_translate]");i&&U(i)}if("childList"===n.type&&n.addedNodes)for(var o=0;o<n.addedNodes.length;o++){var s=n.addedNodes[o];s&&1===s.nodeType&&W(s)}}}else if("lang"===n.attributeName&&n.target===r.documentElement)return void z()}}).observe(r.documentElement,{childList:!0,subtree:!0,characterData:!0,attributes:!0,attributeFilter:["lang"]}),r.addEventListener("click",function(r){if(!r.target.closest(".ax-state")){var e=r.target.closest(v);if(e&&"click"===(e.getAttribute("_trigger")||"click")&&!(e.hasAttribute("_go")&&"A"===e.tagName&&e.getAttribute("href")&&(0!==r.button||r.metaKey||r.ctrlKey||r.shiftKey||r.altKey))){var t=e.tagName;"BUTTON"!==t&&"A"!==t||r.preventDefault(),P(e)}}},!0),function(){for(var e=r.querySelectorAll("script[src]"),t=0;t<e.length;t++)f.add(p(e[t].src));r.querySelector("[_id]")&&a(),"loading"===r.readyState?r.addEventListener("DOMContentLoaded",function(){F(r),W(r.documentElement)}):(F(r),W(r.documentElement))}()}();
33
+ !function(){"use strict";var e=document,r=window,t=null;function n(e){return!!e.hasAttribute("_id")&&(e.hasAttribute("_get")||e.hasAttribute("_post")||e.hasAttribute("_go")||e.hasAttribute("_open"))}function a(){return t||(t=function(){var t=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,(new Date).getTimezoneOffset(),navigator.hardwareConcurrency||"?",navigator.deviceMemory||"?"].join("|"),n=e.createElement("canvas"),a="",i=n.getContext&&n.getContext("2d");if(i){i.textBaseline="top",i.font="14px Arial",i.fillStyle="#f60",i.fillRect(125,1,62,20),i.fillStyle="#069",i.fillText("FP",2,15),i.fillStyle="rgba(102,204,0,0.7)",i.fillText("FP",4,17);try{a=n.toDataURL()}catch(e){a=""}}var o="";try{var s=e.createElement("canvas"),u=s.getContext("webgl")||s.getContext("experimental-webgl");if(u){var c=u.getExtension("WEBGL_debug_renderer_info");o=c?u.getParameter(c.UNMASKED_VENDOR_WEBGL)+"~"+u.getParameter(c.UNMASKED_RENDERER_WEBGL):u.getParameter(u.VERSION)+"~"+u.getParameter(u.RENDERER)}}catch(e){o=""}var l=["Arial","Courier New","Times New Roman","Helvetica","Georgia","Verdana","Comic Sans MS","Trebuchet MS","Impact","Lucida Console"],f="",v=e.body||e.documentElement;if(v){var d,m=[];for(d=0;d<l.length;d++){var p=e.createElement("span");p.style.cssText='position:absolute;left:-9999px;visibility:hidden;font:72px "'+l[d]+'",monospace',p.textContent="mmmmmmmmmmlli",v.appendChild(p),m.push(p)}var x=[];for(d=0;d<m.length;d++)x.push(m[d].offsetWidth);for(d=0;d<m.length;d++)v.removeChild(m[d]);f=x.join(",")}return function(){var e=r.OfflineAudioContext||r.webkitOfflineAudioContext;if(!e)return Promise.resolve("");try{var t=new e(1,44100,44100),n=t.createOscillator();n.type="triangle",n.frequency.value=1e4;var a=t.createDynamicsCompressor();return a.threshold.value=-50,a.knee.value=40,a.ratio.value=12,a.attack.value=0,a.release.value=.25,n.connect(a),a.connect(t.destination),n.start(0),t.startRendering().then(function(e){for(var r=e.getChannelData(0),t=0,n=4500;n<5e3;n++)t+=Math.abs(r[n]);return t.toString()}).catch(function(){return""})}catch(e){return Promise.resolve("")}}().then(function(e){return function(e){if(!r.crypto||!r.crypto.subtle||!r.TextEncoder){for(var t=5381,n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);return Promise.resolve((t>>>0).toString(16))}var a=(new TextEncoder).encode(e);return r.crypto.subtle.digest("SHA-256",a).then(function(e){for(var r=new Uint8Array(e),t="",n=0;n<r.length;n++)t+=r[n].toString(16).padStart(2,"0");return t})}([t,a,o,f,e].join("||"))})}().catch(function(){return""})),t}var i="ax-app-style",o=["@keyframes ax-spin{to{transform:rotate(360deg)}}","@keyframes ax-shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}","@keyframes ax-fade-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}",".ax-state,.ax-state *,.ax-state *::before,.ax-state *::after{box-sizing:border-box;margin:0;padding:0}",".ax-state{","display:flex;flex-direction:column;align-items:center;justify-content:center;","gap:calc(var(--pad,1) * 12px);","width:100%;min-width:min(240px,100%);min-height:240px;","padding:calc(var(--pad,1) * 20px);","background:inherit;","color:var(--fg2,#71717a);","font-family:var(--font,system-ui,-apple-system,sans-serif);","font-size:var(--fs,14px);line-height:1.45;text-align:center;","transition:var(--t,all .25s ease);","-webkit-user-select:none;user-select:none;","}",".ax-state--loading,.ax-state--skeleton{animation:ax-fade-in 220ms ease-out both}",".ax-state svg{display:block;flex:0 0 auto;width:24px;height:24px}",".ax-state--loading svg{color:var(--p,#6d28d9);animation:ax-spin .85s linear infinite}",".ax-state--skeleton{align-items:stretch}",".ax-skel{display:flex;flex-direction:column;gap:calc(var(--pad,1) * 10px);width:100%}",".ax-skel-line{","height:12px;border-radius:calc(var(--br,10px) / 2);","background-color:transparent;","background-image:linear-gradient(90deg,","var(--sk1,#e4e4e7) 25%,var(--sk2,#f4f4f5) 37%,var(--sk1,#e4e4e7) 63%);","background-size:400% 100%;","animation:ax-shimmer 1.4s ease-in-out infinite;","}",".ax-state-text{font-size:var(--fs,14px);color:var(--fg2,#71717a);max-width:34ch}",".ax-state--skeleton .ax-state-text{align-self:center}",".ax-state--error{color:var(--fg,#18181b);animation:ax-fade-in 200ms ease-out both}",".ax-state--error .ax-state-text{color:var(--err,#ef4444)}",".ax-state-btn{","display:inline-flex;align-items:center;justify-content:center;","width:44px;height:44px;padding:0;font:inherit;color:var(--fg,#18181b);","border:none;","background:inherit;","cursor:pointer;transition:var(--t,all .25s ease);","}",".ax-state-btn:hover{color:var(--p,#6d28d9);border-color:var(--p,#6d28d9);box-shadow:var(--sh2,0 4px 12px rgba(0,0,0,.08))}",".ax-state-btn:focus-visible{outline:2px solid var(--p,#6d28d9);outline-offset:2px}",".ax-state-btn:active{transform:scale(.96)}",".ax-state-btn svg{transition:transform .25s ease}",".ax-state-btn:hover svg{transform:rotate(-45deg)}",".ax-hide{display:none !important}","@media (prefers-reduced-motion:reduce){",".ax-state,.ax-state--loading,.ax-state--skeleton,.ax-state--error{animation:none}",".ax-state--loading svg{animation-duration:2s}",".ax-skel-line{animation:none;background-image:none;background-color:var(--sk1,#e4e4e7)}",".ax-state-btn:hover svg{transform:none}","::view-transition-old(root),::view-transition-new(root){animation:none}","}"].join("\n");!function(){if(!e.getElementById(i)){var r=e.createElement("style");r.id=i,r.appendChild(e.createTextNode(o)),(e.head||e.documentElement).appendChild(r)}}();var s,u=new Set,c=new WeakSet,l=new WeakMap,f=new WeakMap,v="[_get],[_post],[_go],[_open]",d=["_in","_out","_before","_after"],m=!1,p=void 0;function x(r){return new URL(r,e.baseURI).href}function g(e){return new Promise(function(r){var t=new FileReader;t.onload=function(){r({name:e.name,type:e.type||"application/octet-stream",size:e.size,data:t.result})},t.onerror=function(){r({name:e.name,type:e.type,size:e.size,data:null})},t.readAsDataURL(e)})}function h(e){if(e.disabled)return Promise.resolve(void 0);var r=e.type;if("file"===r){var t=e.files;return t&&t.length?e.multiple?Promise.all(Array.prototype.map.call(t,g)):g(t[0]):Promise.resolve(e.multiple?[]:null)}return"checkbox"===r?Promise.resolve(e.checked?e.value||"on":null):"radio"===r?Promise.resolve(e.checked?e.value:null):"SELECT"===e.tagName&&e.multiple?Promise.resolve(Array.prototype.map.call(e.selectedOptions,function(e){return e.value})):Promise.resolve(e.value)}function b(r){var t,n=null,a=null;for(t=0;t<d.length;t++)if(r.hasAttribute(d[t])){n=d[t],a=r.getAttribute(d[t]);break}if(!n)return null;var i=r;if(a&&"this"!==a)try{i=e.querySelector(a)}catch(e){return null}return i&&i.parentNode?{mode:n,el:i}:null}function k(e,r){var t=e.el.parentNode;t&&("_before"===e.mode||"_out"===e.mode?t.insertBefore(r,e.el):t.insertBefore(r,e.el.nextSibling))}function w(e){var r=f.get(e);r&&(r.node&&r.node.parentNode&&r.node.parentNode.removeChild(r.node),r.target&&r.target.removeAttribute("aria-busy"),f.delete(e))}function _(e,r){var t=e.querySelector(".ax-state-btn");t&&t.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation(),A(r)})}function y(r){var t=e.createElement("div");return t.className="ax-state ax-state--error",t.setAttribute("role","alert"),t.innerHTML='<button type="button" class="ax-state-btn" aria-label="Retry"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-ccw preview-icon" aria-hidden="true"><path d="M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"/><path d="M3 3v5h5"/></svg></button><span class="ax-state-text">'+String(r).replace(/[&<>"']/g,function(e){return{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}[e]})+"</span>",t}function P(r){if("function"==typeof e.startViewTransition)try{return void e.startViewTransition(r)}catch(e){}r()}function T(e,t){if(e.hasAttribute("_go"))r.location.assign(t);else{var n=r.open(t,"_blank","noopener,noreferrer");n&&(n.opener=null)}}function A(r){if(function(e){return e.hasAttribute("_go")||e.hasAttribute("_open")}(r))!function(e){var r=function(e){var r=e.hasAttribute("_go")?e.getAttribute("_go"):e.getAttribute("_open");if(!(r=(r||"").trim())||"this"===r){var t=e.getAttribute("href");t&&(r=t)}return r?x(r):""}(e);r&&(n(e)?a().then(function(t){T(e,function(e,r){return r?e+(e.indexOf("?")>=0?"&":"?")+"_did="+encodeURIComponent(r):e}(r,t))}):T(e,r))}(r);else{var t=r.hasAttribute("_get"),i=r.getAttribute(t?"_get":"_post");if(null!==i){var o=b(r);if(o){var s=l.get(r),c=new AbortController;l.set(r,c),s&&s.abort(),w(r);var d=0,g=setTimeout(function(){l.get(r)===c&&(function(r,t){if(!(t=t||b(r))||!t.el.parentNode)return null;var n=(r.getAttribute("_loader")||"spinner").toLowerCase();if("none"===n||"off"===n||"false"===n)return null;t.el.classList.add("ax-hide"),t.el.setAttribute("aria-busy","true");var a=function(r){var t="skeleton"===r,n=e.createElement("div");return n.className="ax-state ax-state--"+(t?"skeleton":"loading"),n.setAttribute("role","status"),n.setAttribute("aria-live","polite"),n.setAttribute("aria-busy","true"),n.innerHTML=t?'<div class="ax-skel" aria-hidden="true"><span class="ax-skel-line" style="width:48%"></span><span class="ax-skel-line"></span><span class="ax-skel-line" style="width:86%"></span><span class="ax-skel-line" style="width:64%"></span></div><span class="ax-state-text">Loading…</span>':'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-loader-circle preview-icon" aria-hidden="true"><path d="M21 12a9 9 0 1 1-6.219-8.56"/></svg><span class="ax-state-text">Loading…</span>',n}(n);k(t,a),f.set(r,{node:a,target:t.el})}(r,o),d=performance.now())},100),A=parseInt(r.getAttribute("_timeout"),10);A>0||(A=2e4);var M=function(){if(!m){m=!0;var r=e.querySelector('meta[name="_csrf"]');p=r?r.content:void 0}return p}(),C={method:t?"GET":"POST",credentials:"same-origin",headers:M?{"x-csrf-token":M}:{},redirect:"follow",referrerPolicy:"same-origin",signal:c.signal},j=null,E=Promise.resolve();if(!t)if(r.hasAttribute("_json"))E=function(r){var t=(r.getAttribute("_json")||"").trim();if(!t)return Promise.resolve(null);var n=t.split(",").map(function(e){return e.trim()}).filter(Boolean);if(!n.length)return Promise.resolve(null);var a=r.closest("form")||e,i=function(e){for(var r=Object.create(null),t=e.querySelectorAll("input[name],select[name],textarea[name]"),n=0;n<t.length;n++){var a=t[n].name;(r[a]||(r[a]=[])).push(t[n])}return r}(a);return Promise.all(n.map(function(r){return function(r,t,n){var a=e.getElementById(t);if(a&&r.contains(a))return h(a);var i=n[t];if(!i||!i.length)return Promise.resolve(void 0);if(1===i.length)return h(i[0]);var o=i[0];if("radio"===o.type){for(var s=0;s<i.length;s++)if(i[s].checked)return Promise.resolve(i[s].value);return Promise.resolve(null)}if("checkbox"===o.type){for(var u=[],c=0;c<i.length;c++)i[c].checked&&!i[c].disabled&&u.push(i[c].value||"on");return Promise.resolve(u)}return h(o)}(a,r,i).then(function(e){return[r,e]})})).then(function(e){for(var r={},t=0;t<e.length;t++)void 0!==e[t][1]&&(r[e[t][0]]=e[t][1]);return JSON.stringify(r)})}(r).then(function(e){null!==e&&(C.headers["Content-Type"]="application/json",C.body=e)});else if(r.hasAttribute("_form")){var L=function(r){var t,n=r.getAttribute("_form");try{t=e.querySelector(n)||e.getElementById(n)}catch(e){t=null}return t?new FormData(t):null}(r);L&&(C.body=L)}n(r)&&(E=Promise.all([E,a()]).then(function(e){var r=e[1];r&&(C.headers["X-DeviceId"]=r)})),E.then(function(){return j=setTimeout(function(){c.abort()},A),fetch(i,C)}).then(function(e){if(j&&clearTimeout(j),!e.ok){var t=new Error("HTTP "+e.status);if(t.status=e.status,r.hasAttribute("_toast"))return e.text().then(function(e){throw t.toast=e,t});throw t}return e.text()}).then(function(t){clearTimeout(g),O(function(){var n=function(){w(r),t&&function(r,t,n){if(n=n||b(r)){var a=n.el,i=a.parentNode;if(i){var o=e.createElement("template");o.innerHTML=t;var s,c,l=o.content,f=[],d=[];for(c=l.querySelectorAll("script"),s=0;s<c.length;s++)f.push(c[s]),c[s].parentNode.removeChild(c[s]);for(c=l.querySelectorAll(v),s=0;s<c.length;s++)d.push(c[s]);if("_in"===n.mode){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(l),a.classList.remove("ax-hide")}else"_out"===n.mode?i.replaceChild(l,a):"_before"===n.mode?(i.insertBefore(l,a),a.classList.remove("ax-hide")):(i.insertBefore(l,a.nextSibling),a.classList.remove("ax-hide"));for(s=0;s<d.length;s++)S(d[s]);!function(r){for(var t=0;t<r.length;t++){var n=r[t],a=n.getAttribute("src");if(a){if(a=x(a),u.has(a))continue;u.add(a)}for(var i=e.createElement("script"),o=0;o<n.attributes.length;o++)i.setAttribute(n.attributes[o].name,n.attributes[o].value);a||(i.text=n.text),i.async=!1,e.head.appendChild(i)}}(f)}}}(r,t,o)};f.get(r)?P(n):n()})}).catch(function(t){if(j&&clearTimeout(j),clearTimeout(g),l.get(r)===c){if(t&&void 0!==t.toast){var n=function(r){var t=(r.getAttribute("_toast")||"").trim();if(!t)return null;if("this"===t)return r;try{return e.querySelector(t)}catch(e){return null}}(r);if(n)return void O(function(){w(r),n.innerHTML=t.toast})}var a;a=t&&"AbortError"===t.name?"Request timed out":t&&t.message?t.message:"Request failed",t&&"AbortError"!==t.name&&console.error("[app]",t),O(function(){!function(e,r,t){var n=f.get(e),a=function(){if(n&&n.node&&n.node.parentNode){var a=n.node,i=y(r);a.parentNode.replaceChild(i,a),n.target&&n.target.removeAttribute("aria-busy"),f.set(e,{node:i,target:n.target}),_(i,e)}else{if(!(t=t||b(e))||!t.el.parentNode)return;t.el.classList.add("ax-hide"),t.el.setAttribute("aria-busy","true");var o=y(r);k(t,o),f.set(e,{node:o,target:t.el}),_(o,e)}};n?P(a):a()}(r,a,o)})}})}}}function O(e){if(0!==d){var t=Math.max(0,240-(performance.now()-d));0===t?l.get(r)===c&&e():setTimeout(function(){l.get(r)===c&&e()},t)}else l.get(r)===c&&e()}}function M(e){var r=e.getAttribute("_trigger");"load"===r||"visible"===r?A(e):e.addEventListener(r,function(r){if("click"===r.type){var t=e.tagName;"BUTTON"!==t&&"A"!==t||r.preventDefault()}A(e)})}function S(e){c.has(e)||(c.add(e),"click"!==(e.getAttribute("_trigger")||"click")&&("IntersectionObserver"in r?(s||(s=new IntersectionObserver(function(e){for(var r=0;r<e.length;r++)e[r].isIntersecting&&(s.unobserve(e[r].target),M(e[r].target))},{rootMargin:"300px"})),s.observe(e)):M(e)))}function C(e){for(var r=e.querySelectorAll(v),t=0;t<r.length;t++)S(r[t])}e.addEventListener("click",function(e){var r=e.target.closest(v);if(r&&!(r.closest(".ax-state")||"click"!==(r.getAttribute("_trigger")||"click")||r.hasAttribute("_go")&&"A"===r.tagName&&r.getAttribute("href")&&(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey))){var t=r.tagName;"BUTTON"!==t&&"A"!==t||e.preventDefault(),A(r)}},!0),function(){for(var t=e.querySelectorAll("script[src]"),n=0;n<t.length;n++)u.add(x(t[n].src));if(e.querySelector("[_id]")){var i=r.requestIdleCallback;i?i.call(r,a,{timeout:2e3}):setTimeout(a,1)}"loading"===e.readyState?e.addEventListener("DOMContentLoaded",function(){C(e)}):C(e)}()}();
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @lengkapp/edge v0.0.42
2
+ * @lengkapp/edge v0.0.43
3
3
  * MIT License
4
4
  *
5
5
  * LengkApp Edge License
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @lengkapp/edge v0.0.42
2
+ * @lengkapp/edge v0.0.43
3
3
  * MIT License
4
4
  *
5
5
  * LengkApp Edge License
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lengkapp/edge",
3
- "version": "0.0.42",
3
+ "version": "0.0.43",
4
4
  "description": "Edge framework used by Lengkapp",
5
5
  "main": "dist/edge-server.js",
6
6
  "types": "dist/edge-server.d.ts",