diff --git a/core/template/errors.js b/core/template/errors.js index e1fd59a..1890090 100644 --- a/core/template/errors.js +++ b/core/template/errors.js @@ -55,7 +55,7 @@ export function runIllegalAttrsPropWarning(prop) { use it as property of the "events" object, like: { - tag: "button", text: "Click me", events: { ${prop}: () => { //Some code here } } + tag: "button", text: "Some text", events: { ${prop}: () => { //Some code here } } } `; diff --git a/inter.js b/inter.js index 375e719..a61a0be 100644 --- a/inter.js +++ b/inter.js @@ -1,6 +1,6 @@ /** * Interjs - * Version - 2.1.4 + * Version - 2.1.5 * MIT LICENSED BY - Denis Power * Repo - https://github.com/interjs/inter * 2021 - 2023 @@ -64,7 +64,7 @@ use it as property of the "events" object, like: { - tag: "button", text: "Click me", events: { ${prop}: () => { //Some code here } } + tag: "button", text: "Some text", events: { ${prop}: () => { //Some code here } } } `; @@ -295,7 +295,7 @@ function runNotDefinedIfPropWarning(propValue, child, data) { ParserWarning(` The conditional rendering parser found - an element wich has the "_if" attribute and the value + an element which has the "_if" attribute and the value of this attribute is not a conditional property. { @@ -780,6 +780,7 @@ for (const refName in data) { if (reservedRefNames.has(refName)) { runReservedRefNameWarning(refName); + delete data[refName]; continue; } @@ -887,9 +888,17 @@ runRefParsing(getId(IN), proxyTarget, refParser); + function runObserveCallBack(refName, value, oldValue) { + if (refParser.observed.size == 1 && !reservedRefNames.has(refName)) { + const callBack = refParser.observed.get("callBack"); + + callBack(refName, value, oldValue); + } + } + const reactor = new Proxy(proxyTarget, { set(target, key, value, proxy) { - if (target[key] == value) return false; + if (key in target && target[key] == value) return false; const oldValue = target[key]; @@ -897,13 +906,7 @@ value = value.call(proxy); } Reflect.set(...arguments); - - if (refParser.observed.size == 1) { - const callBack = refParser.observed.get("callBack"); - - callBack(key, value, oldValue); - } - + runObserveCallBack(key, value, oldValue); if (!(key in proxy)) { // Dynamic ref. @@ -940,11 +943,7 @@ proxyTarget[refName] = refValue; } - if (refParser.observed.size == 1) { - const callBack = refParser.observed.get("callBack"); - - callBack(refName, refValue, oldRefValue); - } + runObserveCallBack(refName, refValue, oldRefValue); } } else runInvalidSetRefsValueError(o); }, @@ -1563,6 +1562,14 @@ } } + function runObserveCallBack(prop, value) { + if (observer.size == 1) { + const callBack = observer.get("callBack"); + + callBack(prop, value); + } + } + const reservedProps = new Set(["setConds", "observe"]); const observer = new Map(); const proxyTarget = Object.assign({}, data); @@ -1571,6 +1578,7 @@ const reactor = new Proxy(proxyTarget, { set(target, prop, value) { + if (prop in target && target[prop] == value) return false; if (!(prop in data) && !reservedProps.has(prop)) { runNotDefinedConditionalPropWarning(prop); @@ -1588,11 +1596,7 @@ if (!reservedProps.has(prop)) { checkWhatToRender(proxyTarget, prop); - if (observer.size == 1) { - const callBack = observer.get("callBack"); - - callBack(prop, value); - } + runObserveCallBack(prop, value); } return true; @@ -1637,7 +1641,11 @@ if (!hasOwnProperty(this, prop)) runNotDefinedConditionalPropWarning(prop); + if (this[prop] == cond) continue; + proxyTarget[prop] = cond; + + runObserveCallBack(prop, cond); } checkWhatToRender(proxyTarget); @@ -2761,7 +2769,7 @@ const oldAttrsArray = Object.keys(oldAttributes), newAttrsArray = Object.keys(newAttributes), greater = getGreater(oldAttrsArray, newAttrsArray), - specialAttrs = new Set(["value", "current", "checked"]); + specialAttrs = new Set(["value", "currentTime", "checked"]); for (let i = 0; greater.length > i; i++) { const oldAttrName = oldAttrsArray[i], @@ -2773,7 +2781,12 @@ else if (!isDefined(newAttrValue) || isFalse(newAttrValue)) removeAttr(newAttrName); else if (isDefined(newAttrValue) && !isFalse(newAttrValue)) { - if (newAttrValue !== oldAttrValue) { + if ( + (newAttrName.startsWith("on") && validDomEvent(newAttrName)) || + newAttrName == "style" + ) + runIllegalAttrsPropWarning(newAttrName); + else if (newAttrName !== oldAttrName || newAttrValue !== oldAttrValue) { if (specialAttrs.has(newAttrName)) target[newAttrName] = newAttrValue; else target.setAttribute(newAttrName, newAttrValue); } @@ -3316,5 +3329,5 @@ window.template = template; window.toAttrs = toAttrs; window.Backend = Backend; - console.log("The global version 2.1.4 of Inter was loaded successfully."); + console.log("The global version 2.1.5 of Inter was loaded successfully."); })(); diff --git a/inter.min.js b/inter.min.js index fe31b27..fd53013 100644 --- a/inter.min.js +++ b/inter.min.js @@ -1,7 +1,7 @@ /** * Interjs - * Version - 2.1.4 + * Version - 2.1.5 * MIT LICENSED BY - Denis Power * Repo - https://github.com/interjs/inter * 2021-2023 @@ -9,4 +9,4 @@ * */ -!function(){function e(e){Y(`The "${e}" event was not created because\n its handler is not a function, in the tempate function.`)}function t(e){Y(`"${e}" doesn't seem to be a valid dom event.`)}function n(e){Y(`"${e}" doesn't seem to be a valid style name.`)}function o(e){M(`"${z(e)}" is an invalid tag name,\n in the template function.`)}function r(){M('The "events", "attrs" and "styles" options in the template function\n must be plain Javascript objects, and you didn\'t define\n one or more of those options as plain Javascript object.')}function i(e){q(`"${e}" is a reserved property, do not create a property with this name.`)}function s(e){M(`The value of "setProps" must be a plain Javascript object, and you\n defined "${z(e)}" as its value`)}function a(){H("Inter failed to define the reactivity,\n because the Array of the each option is not configurable.")}function c(e){M(`"${z(e)}" is not a valid value for the "each" option in renderList.\n The values that are accepted in "each" option, are:\n Array.\n Plain js object.\n Number.\n Map.\n Set.`)}function f(){q('The "otherArray" property was deprecated since version 2.1.0,\n use the "setEach" property instead.')}function l(){M('The template function is not being returned inside the "do" method in\n renderList(reactive listing), just return the template function.')}function t(e){q(`There's not any event named "${e}" in Ajax request.`)}function u(){M('The arguments of "okay", "error" and "response" methods must be\n functions.')}function d(e){q(`"${e}" is a reserved reference name, use others names.`)}function h(e){q(`"${e}" was not defined as conditional property.`)}function p(e){H(`The value of a conditional property must be boolean(true/false),\n and the value of "${e}" property is not boolean.`)}function m(e){Y(`The conditional rendering parser found a/an "${O(e)}"\n element which has more than one conditional atribute, it's forbidden.`)}function b(e,t,n){Y(`\n \n The conditional rendering parser found\n an element with the "_ifNot" attribute and the value\n of this attribute is not a conditional property.\n \n {\n element: ${e.nodeName.toLowerCase()},\n _ifNot: ${t},\n data: ${Object.keys(n)}\n }\n \n `)}function y(e){Y(`a/an "${O(e)}" element has the "_elseIf" attribute,\n but it does not come after an element with the "_if" or a valid "_elseIf" attribute.`)}function g(e,t,n){Y(`\n The conditional rendering parser found\n an element wich has the "_if" attribute and the value\n of this attribute is not a conditional property.\n \n {\n element: ${t.nodeName.toLowerCase()},\n _if: ${e},\n data: ${Object.keys(n)}\n }\n \n `)}function v(e){q(` \n The "${e}" property was not defined in the manager object.\n `)}function w(e){return A(e)&&e.element&&e[Symbol.for("template")]}function j(e){return Object.isFrozen(e)||Object.isSealed(e)||!Object.isExtensible(e)}function A(e){return"[object Object]"==Object.prototype.toString.apply(e,void 0)}function O(e){return e.nodeName.toLowerCase()}function x(e){return e instanceof Set}function C(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function T(e){return e instanceof Map}function S(e){return null!=e}function I(e){return Object.is(e,!0)}function $(e){return Object.is(e,!1)}function k(e){return"function"==typeof e}function R(e){return 0==Object.keys(e).length}function P(e){return e instanceof HTMLElement}function N(e){return e in HTMLElement.prototype}function E(e){return e in document.createElement("p").style}function _(e){return document.createTextNode(e)}function L(e){return"string"==typeof e}function B(e,t,n){return A(e)&&A(t)&&A(n)}function J(e){"string"!=typeof e&&M("The value of the id attribute must be a string.");const t=document.getElementById(e);if(null!=t)return t;H(`There's not an element on the document with id "${e}".`)}function z(e){return void 0===e||"symbol"==typeof e||"bigint"==typeof e||"boolean"==typeof e||"function"==typeof e||"number"==typeof e||"string"==typeof e?typeof e:function(e){const t=S(e)&&Object.prototype.toString.call(e).startsWith("[object");return t?Object.prototype.toString.call(e).replace("[object","").replace("]","").replace(/\s/g,"").toLowerCase():"null"}(e)}function M(e){throw new SyntaxError(`Inter syntaxError : ${e}`)}function H(e){throw new Error(`Inter error: ${e}`)}function q(e){console.warn(`Inter warning: ${e}`)}function Y(e){console.error(`Inter parser error: ${e}`)}function D(e){return Array.isArray(e)}function W(e){return 1==e||0==e}function F(e){return e instanceof Array||A(e)||e instanceof Map||e instanceof Set||"number"==typeof e}function U(e){this.source=function(e){const t={values:new Array,type:void 0};if(D(e))t.values=e,t.type="array";else if(A(e))t.values=Object.entries(e),t.type="object";else if(e instanceof Map)e.forEach(((e,n)=>{t.values.push([n,e])})),t.type="object";else if(e instanceof Set)t.values=Array.from(e),t.type="set";else if("number"==typeof e){for(let n=0;n{const n=e.replace("{","").replace("}","").trim();t.add(n)})),Array.from(t)}function Q(e,t){return new RegExp(`{\\s*${t}\\s*}`).test(e)}U.prototype.each=function(e){let t=-1;for(const n of this.source.values)t++,e(n,t,this.source.type)};const V=new Set(["currentTime","value"]);function Z(e,t,n){const o=e.getElementsByTagName("*");function r(e){function o(e){for(const o in t)if(e.textContent.trim().length>0&&Q(e.textContent,o)){const t={target:e,text:e.textContent};n.add(t);break}}if(1==e.nodeType)for(const t of e.childNodes)t.hasChildNodes()&&1==t.nodeType?r(t):o(t);else 3==e.nodeType&&o(e)}function i(e){const o={target:e,attrs:Object.create(null),refs:t};for(const r of e.attributes)for(const i in t)if(Q(r.value,i)){V.has(r.name)?(n.specialAttrs.add({target:e,attr:{[r.name]:r.value}}),e.removeAttribute(r.name)):o.attrs[r.name]=r.value;break}var r;r=o.attrs,Object.keys(r).length>0&&n.add(o,!0)}const s=function(e){const t=new Set;if(e.hasChildNodes())for(const n of e.childNodes)3==n.nodeType&&n.textContent.trim().length>0&&G(n.textContent)&&t.add(n);return Array.from(t)}(e);if(s.length>0)for(const e of s)r(e);for(const e of o)r(e),i(e);n.updateRefs()}function ee(e){return null==e}function te(e){return e.replace("{...","").replace("}","")}function ne(e,t){return C(e,t)}function oe(e){return/{(:?\.){3}(:?\S+)}/.test(e)}function re(e){return/{(:?[\s\S]+)}/.test(e)}function ie(e,t){const n=new Set(["value","currentTime"]),o=e=>!n.has(e),r=e=>e.startsWith("on")&&N(e),i=new Map;for(const[n,s]of Object.entries(t))!o(n)||r(n)||ee(s)?o(n)||ee(s)?r(n)&&!ee(s)&&ce(e,n,s,t):ae(e,n,s):se(e,n,s),fe(t,n,s,e,i);var s;s=t,Object.defineProperty(s,"setAttrs",{set(e){A(e)||function(e){M(`\n "${z(e)}" is an invalid value for the "setAttrs" property.\n The "setAttrs" property only accepts a plain Javascript object as its\n value.\n `)}(e);for(const[t,n]of Object.entries(e))C(this,t)?this[t]=n:v(t)}}),function(e,t){Object.defineProperty(e,"observe",{value:e=>0===t.size&&(k(e)||M(`The argument of the observe method must be a function,\n and you defined ${z(e)} as its argument.`),t.set("observeCallBack",e),!0)})}(t,i)}function se(e,t,n){ee(n)||n===(()=>e.getAttribute(t))?ee(n)&&e.hasAttribute(t)&&e.removeAttribute(t):e.setAttribute(t,n)}function ae(e,t,n){S(n)?e[t]=n:ee(n)&&(e[t]="")}function ce(e,t,n,o){S(n)&&!k(n)?function(e,t){M(`\n "${z(t)}" is an invalid\n handler for the "${e}" event, you must\n define only a function as the handler of a dom event.\n `)}(t,n):ee(n)?e[t]=void 0:e[t]=e=>n.call(o,e)}function fe(e,t,n,o,r){const i=new Set(["value","currentTime","checked"]),s=()=>!i.has(t),a=()=>t.startsWith("on")&&N(t),c=()=>!s();let f=n;Object.defineProperty(e,t,{set(e){a()?ce(o,t,e,this):s()?se(o,t,e):c()&&ae(o,t,e),f=e;const n=r.get("observeCallBack");r.has("observeCallBack")&&n(t,e)},get:()=>c()?o[t]:a()?(function(e){q(`\n you are trying to get the value of "${e}",\n it's an event, and you can not get the value of an event.\n `)}(t),!1):f})}function le(e){const t=new Array;return e.childNodes.forEach((e=>{(1==e.nodeType||3==e.nodeType&&0==!e.textContent.trim().length)&&t.push(e)})),t}function ue(e){q(`"${e}" is a reserved property, you can not use it as a conditional property.`)}const de={store:new Set,set(e){for(const t of e)S(t)&&this.store.add(t)},getSize(){const e=this.store.size;return this.store.clear(),e}};function he(e){const t=e.getAttribute("_if"),n=e.getAttribute("_elseIf"),o=e.getAttribute("_ifNot"),r=!!e.hasAttribute("_else")||void 0;return de.set([t,n,o,r]),de.getSize()>1}function pe(e){const t=e.hasAttribute("_if"),n=e.hasAttribute("_elseIf"),o=e.hasAttribute("_ifNot"),r=e.hasAttribute("_else");return!(t||n||o||r)}function me(n,o){Object.entries(n).forEach((n=>{const[r,i]=n;N(r)?k(i)?o[r]=i:e(r):t(r)}))}function be(e,t){Object.entries(e).forEach((e=>{let[n,o]=e,r=!1;const i=new Set(["value","currentTime","checked"]);(n.startsWith("on")&&N(n)||"style"==n)&&(!function(e){const t=`You shoud not use "${e}" as an attribute name, it seems to be a dom event,\n use it as property of the "events" object, like:\n\n {\n tag: "button", text: "Click me", events: { ${e}: () => { //Some code here } }\n }\n `;q(e.startsWith("on")?t:'You should not use the style attribute(in attrs object) to create styles for the element,\n use the "styles" object instead, like:\n\n {\n tag: "p", text: "Some text", styles: { color: "green" }\n }\n ')}(n),r=!0);const s=e=>{S(e)&&!$(e)&&(i.has(n)?t[n]=e:t.setAttribute(n,e)),t.template.attrs[n]=e};r||(k(o)?(o=o(),s(o)):s(o))}))}function ye(e,t){Object.entries(e).forEach((e=>{const[o,r]=e;if(E(o)){const e=k(r)?r():r;S(e)&&(t.style[o]=e,t.template.styles[o]=e)}else n(o)}))}function ge(e,t,n){if(S(e)&&0==t.length){const t=k(e)?_(e()):_(e);S(t)&&n.appendChild(t)}else S(e)&&t.length>0?(Y("The template parser found an element \n with both the text property and the children property,\n and in this case Inter ignores the text property."),we(n,t)):t.length>0&&we(n,t)}function ve(e,t,n){let{tag:i,text:s,attrs:a={},events:c={},styles:f={},children:l=[]}=e;i=k(i)?i():i,s=k(s)?s():s;C(e,"renderIf")&&!t&&Y("You can not conditionally render the main\n container in the template function."),L(i)||o(i),B(a,f,c)||r();const u=document.createElement(i);return u.template=Object.assign(e,{target:u,tag:i,text:s}),t&&(u.index=n),be(a,u),me(c,u),ye(f,u),ge(s,l,u),u}function we(e,t){let n=-1;for(const i of t){let{tag:t,text:s,attrs:a={},events:c={},styles:f={},children:l=[],renderIf:u}=i;if(n++,i.index=n,t=k(t)?t():t,s=k(s)?s():s,X(u)&&C(i,"renderIf"))continue;L(t)||o(t),B(a,f,c)||r();const d=document.createElement(t);d.index=n,d.template=Object.assign(i,{target:d,tag:t,text:s}),be(a,d),me(c,d),ye(f,d),ge(s,l,d),e.appendChild(d)}}function je(e,t){A(e)?function(e,t){const n=new Set(["setProps","defineProps","deleteProps"]);function o(t){for(const{name:n,setHandler:o}of t)Object.defineProperty(e,n,{set:o})}function r(n){let o=e[n];e[n]=void 0,Object.defineProperty(e,n,{set(e){o=e,t(),je(e,t)},get:()=>o,configurable:!0})}function a(o){D(o)||function(e){M(`The value of "deleteProps" must be an Array object, and you\n defined "${z(e)}" as its value`)}(o);for(const t of o)"string"==typeof t&&C(e,t)&&(n.has(t)||delete e[t]);t()}function c(o){A(o)||function(e){M(`The value of "defineProps" must be a plain Javascript object, and you\n defined "${z(e)}" as its value`)}(o);for(const[i,s]of Object.entries(o))i in this||n.has(i)||(e[i]=s,r(i)),t()}function f(o){A(o)||s(o);for(const[r,i]of Object.entries(o))n.has(r)||(e[r]=i),je(i,t)}if(Oe(e))return!0;if(j(e))return q("Inter failed to define reactivity\n in a plain Javascript object, because it is not configurable."),!1;for(const o of Object.keys(e))n.has(o)&&i(o),r(o),je(e[o],t);o([{name:"defineProps",setHandler:c},{name:"setProps",setHandler:f},{name:"deleteProps",setHandler:a}]),Ae(e)}(e,t):D(e)?function(e,t){if(Oe(e))return!1;const n=["push","unshift","pop","shift","splice","sort","reverse"];e.mutationInfo=void 0;for(const o of n)Object.defineProperty(e,o,{value(e,n,...r){"pop"==o?this.mutationInfo={method:"pop",renderingSystem:t}:"shift"==o?this.mutationInfo={method:"shift",renderingSystem:t}:"push"==o?this.mutationInfo={method:"push",itemsLength:arguments.length,renderingSystem:t}:"unshift"==o?this.mutationInfo={method:"unshift",itemsLength:arguments.length,renderingSystem:t}:"splice"==o&&(this.mutationInfo={method:"splice",start:e,deleteCount:n,itemsLength:S(r)?r.length:0,renderingSystem:t});const i=Array.prototype[o].apply(this,arguments);if(t(),this.mutationInfo={method:void 0,removeInfo:[],do:void 0,newData:[],from:void 0,to:void 0},"push"===o||"unshift"===o)for(const e of arguments)je(e,t);else if("splice"===o&&S(r))for(const e of r)je(e,t);return i}});(function(e,t){for(const n of e)je(n,t)})(e,t),Ae(e),function(e){Object.defineProperty(e,"map",{value(e){const t=new Array;t.reactor=this;let n=-1;for(const o of this){n++;const r=e(o,n,this);t.push(r)}return t}})}(e)}(e,t):T(e)?$e(e,t):x(e)&&ke(e,t)}function Ae(e){if(Oe(e))return!1;const t=Symbol.for("reactive");Object.defineProperty(e,t,{get:()=>!0})}function Oe(e){return C(e,Symbol.for("reactive"))}function xe(e){A(e)?function(e,t,n){const o=Object.keys(e);o.some(((e,o)=>{e==t&&Ce(n,o)}))}(...arguments):x(e)?function(e,t,n){const o=Array.from(e);o.some(((e,o)=>{e==t&&Ce(n,o)}))}(...arguments):function(e,t,n){let o=-1;e.forEach((()=>{o++;arguments[1]==t&&Ce(n,o)}))}(...arguments)}function Ce(e,t){const n=e.children[t];P(n)&&e.removeChild(n)}function Te(e,t){const n=Symbol.for("observe");"function"==typeof e[n]&&e[n](S(t)?t:e)}function Se(e,t){Object.defineProperty(e,"setProps",{set(n){A(n)||s();for(const[o,r]of Object.entries(n))A(e)?this[o]=r:T(e)&&e.set(o,r),je(r,t);A(e)&&t()}})}function Ie(e,t,n){j(e)&&a(),Se(e,t);const o=new Set(["observe"]),r=new Set(["setEach","setProps"]);return Ae(e),new Proxy(e,{set(n,i,s,a){return!o.has(i)&&(Reflect.set(...arguments),function(e){return!r.has(e)}(i)&&(t(),Te(e,a),"number"!=typeof s&&F(s)&&je(s,t)),!0)},get(){return Reflect.get(...arguments)},deleteProperty(o,r,i){if(r in o)return xe(o,r,n),Reflect.deleteProperty(...arguments),t(),Te(e,i),!0;q(`You are trying to delete the "${r}" property in the list\n reactor, but that property does not exist in the list reactor.`)}})}function $e(e,t,n,o){if(Oe(e))return!1;const r=["set","delete","clear"];for(const i of r)Object.defineProperty(e,i,{value(){"delete"==i&&n&&xe(this,arguments[0],o);const e=Map.prototype[i].apply(this,arguments);if(n&&Te(this),t(),"set"==i){je(arguments[1],t)}return e}});!function(e,t){e.forEach((e=>{je(e,t)}))}(e,t),Ae(e),n&&Se(e,t)}function ke(e,t,n,o){if(Oe(e))return!1;const r=["add","clear","delete"];for(const i of r)Object.defineProperty(e,i,{value(){"delete"==i&&n&&xe(this,arguments[0],o);const e=Set.prototype[i].apply(this,arguments);return t(),n&&Te(this),"add"===i&&je(arguments[0],t),e}});!function(e,t){e.forEach((e=>{je(e,t)}))}(e,t),Ae(e)}function Re(e){return"function"==typeof e&&(e=e()),e}function Pe(e,t){Object.assign(e,t)}function Ne(e,t){return e.length>t.length?e:t}function Ee(e,t,n){function o(t){e.hasAttribute(t)?e.removeAttribute(t):a.has(t)&&("checked"===t?e.checked=!1:e[t]="")}const r=Object.keys(t),i=Object.keys(n),s=Ne(r,i),a=new Set(["value","current","checked"]);for(let c=0;s.length>c;c++){const s=r[c],f=i[c],l=Re(t[s]),u=Re(n[f]);s in n?!S(u)||$(u)?o(f):S(u)&&!$(u)&&u!==l&&(a.has(f)?e[f]=u:e.setAttribute(f,u)):o(s),t[s]=u}}function _e(e,t,o){const r=Object.keys(t),i=Object.keys(o),s=Ne(r,i);for(let a=0;s.length>a;a++){const s=r[a],c=i[a],f=Re(t[s]),l=Re(o[c]);if(s in o&&S(l))S(l)&&l!==f&&(E(c)?(e.style[c]=l,e.style[c]!==l&&Y(`"${l}" is an invalid value for the "${c}" style.`)):n(c));else{const t=e.style[s],n=e.getAttribute("style");S(t)&&0!==t.trim().length&&(e.style[s]=null),n&&0==n.trim().length&&e.removeAttribute("style")}t[s]=l}}function Le(n,o,r){const i=Object.keys(o),s=Object.keys(r),a=Ne(i,s);for(let o=0;a.length>o;o++){const a=i[o],c=s[o];a in r&&S(r[a])||(n[a]=void 0),k(r[c])||!N(c)?S(r[c])&&(N(c)?n[c]=r[c]:t(c)):(n[a]=void 0,e(c))}}function Be(e,t,n){for(let o=0;ot){e.insertBefore(n,r);break}}}function Je(e,t,n){const o=Array.from(e),r=Array.from(t);for(let f=0;fO?Be(n,O,e):n.appendChild(e)}if(n&&(x=n.children[n.children.length-1]),h.length!==g.length){const{reactor:k}=h;if(null!=k){const{mutationInfo:{method:R,start:P,deleteCount:N,itemsLength:E}}=k;function s(){let e=E;for(;e>0;e--){const t=h[h.length-e];A.appendChild(ve(t,!0,t.index)),g.push(t)}}function a(e){function t(e,t){for(let o=t-1;o>-1;o--){const t=A.children[e],r=h[o],i=ve(r,!0,r.index);t?A.insertBefore(i,t):A.appendChild(i),n.unshift(r)}}const n=new Array;if("splice"==e&&0==N&&E>0)t(P,E),g.splice(P,N,...n);else if("splice"==e&&N>0){for(let e=0;e0)a(R);else if(null==N){ze(A,{source:{values:h}})}}else if(A&&null!=A.parentNode){const B=ve(l,!0,O);n.replaceChild(B,A),Object.assign(u,l),u.target=B;continue}}if(I===$)X(y)&&C(l,"renderIf")?A&&null!=A.parentNode&&n.removeChild(A):X(y)||(A&&null==A.parentNode?i():A||i()),h.length==g.length&&0!==h.length&&(d=!0,Je(h,g,A)),S!==T&&A&&!d&&(A.textContent=T,u.text=T),u.tag=I,A&&(Ee(A,w,m),_e(A,j,b),Le(A,v,p));else{const J=ve(l,!0,O);Object.assign(u,l),A&&null!=A.parentNode&&(n.replaceChild(J,A),u.target=J)}}}function ze(e,t){if(e.children.length>t.source.values.length){let n=e.children.length-t.source.values.length;for(;n--;){const t=e.children.length-1,n=e.children[t];e.removeChild(n)}}}function Me(e,t,n,o,r){e.open(t,n,!0,o,r)}function He(e,t){const n={};return e.replace(/(:?[\S]+):/g,(e=>{var o,r;e=e.replace(":",""),t.getResponseHeader(e)&&((o=n)[r=e]=void 0,Object.defineProperty(o,r,{get:()=>t.getResponseHeader(r)}))})),Object.freeze(n)}function qe(){void 0===new.target&&H("Backend is a constructor, call it with the new keyword.")}qe.prototype={get[Symbol.toStringTag](){return"Ajax"},request(e){A(e)||M(`The argument of [Backend instance].request method\n must be a plain javascript object, and you defined "${z(e)}"\n as its argument.`);const{type:n,path:o,events:r={},timeout:i,withCredentials:s,body:a=null,headers:c={},security:f}=e,l=new Set(["connect","trace"]);S(n)&&"string"==typeof n||M('You must define the type(method) of request, in Ajax with the "type" option and\n it must be a string.'),S(o)&&"string"==typeof o||M('You must define the path where the request will be sent, with the "path" option and \n it must be a string.'),l.has(o.toLowerCase())&&function(e){H(`"${e}" is an unsupported request type in Ajax.`)}(n);const d=new Map;let h=!1;function p(){const e=new XMLHttpRequest,l=n.toUpperCase(),u=new Set(["onprogress","ontimeout","onabort"]),p={get status(){return e.status},get statusText(){return e.statusText},get headers(){return He(e.getAllResponseHeaders(),e)},get data(){return function(e){if(void 0!==e)try{return JSON.parse(e)}catch(t){return e}}(e.responseText)},get[Symbol.toStringTag](){return"AjaxResponse"},isObj:()=>function(e){try{return A(JSON.parse(e))}catch(e){return!1}}(e.responseText)};A(f)&&Object.keys(f).length>=2&&(f.username&&f.password?(Me(e,l,o,f.username,f.password),h=!0):q('Invalid "security" object, security object must have the username and passoword \n properties.')),h||(Me(e,l,o),h=!0),A(c)||function(e){M(`the "headers" property must be an object, and\n you defined it as : ${z(e)}.`)}(c),A(r)||function(e){M(`the "events" property must be an object, and\n you defined it as : ${z(e)}.`)}(r),R(c)||function(e,t){Object.entries(e).forEach((([e,n])=>{t.setRequestHeader(e,n)}))}(c,e),R(r)||function(e,n,o){Object.entries(n).forEach((([n,r])=>{o.has(n)?"onprogress"!==n?e[n]=()=>{r()}:e.onprogress=t=>{const n={abort:()=>e.abort(),progress:100*t.loaded/t.total};r(n)}:t(n)}))}(e,r,u),e.onreadystatechange=function(){4==this.readyState&&(200==this.status?d.has("okay")&&d.get("okay")(p):d.has("error")&&d.get("error")(p))},W(s)&&(e.withCredentials=s),"number"!=typeof i&&(e.timeout=i),e.send(function(e){return S(e)?e instanceof FormData||"string"==typeof e?e:JSON.stringify(e):null}(a))}const m={okay(e){k(e)||u(),d.set("okay",e),p()},error(e){k(e)||u(),d.set("error",e),p()},response(e,t){const n=arguments.length;n<2&&function(e){M(`The response method must have two arguments and you only\n defined ${e} argument.`)}(n),k(e)||k(t)||u(),d.set("okay",e),d.set("error",t),p()}};return m}},Object.freeze(qe.prototype),window.Ref=function(e){if(null!=new.target)M("Do not call the Ref function with the new keyword.");else{if(A(e)){const{in:t,data:n}=e;"string"!=typeof t&&M("The value of the 'in' property on the Ref function must be a string."),A(n)||M("The value of the 'data' property on the Ref function must be a plain Javascript object. ");const o=new Set(["setRefs","observe"]);for(const e in n)o.has(e)?d(e):k(n[e])&&(n[e]=n[e].call(n));const r=Object.assign({},n),i={attrs:new Set,texts:new Set,specialAttrs:new Set,observed:new Map,refs:r,hadIteratedOverSpecialAttrs:!1,add(e,t){t?this.attrs.add(e):this.texts.add(e)},updateSpecialAttrs(){for(const e of this.specialAttrs){const{target:t}=e;let[n,o]=Object.entries(e.attr)[0];const r=K(o);for(const e of r){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(o=o.replace(t,this.refs[e]),!G(o))break}t[n]=o}},updateAttrRef(){for(const e of this.attrs){const{target:t,attrs:n}=e;for(let[e,o]of Object.entries(n)){const n=K(o);for(const e of n)if(e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(o=o.replace(t,this.refs[e]),!G(o))break}t.getAttribute(e)!==o&&t.setAttribute(e,o)}}},updateTextRef(){if(this.texts.size>0)for(const e of this.texts){let{target:t,text:n}=e;const o=K(n);for(const e of o)if(e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(n=n.replace(t,this.refs[e]),!G(n))break}t.textContent!==n&&(t.textContent=n)}},updateRefs(){this.texts.size>0&&this.updateTextRef(),this.attrs.size>0&&this.updateAttrRef(),this.specialAttrs.size>0&&this.updateSpecialAttrs()}};Z(J(t),r,i);const s=new Proxy(r,{set(e,n,o,s){if(e[n]==o)return!1;const a=e[n];if(k(o)&&(o=o.call(s)),Reflect.set(...arguments),1==i.observed.size){i.observed.get("callBack")(n,o,a)}if(n in s)return i.updateRefs(),!0;Z(J(t),r,i)},get:(...e)=>Reflect.get(...e)});return Object.defineProperties(s,{setRefs:{set(e){if(A(e)){const t=new Set(["setRefs","observe"]);for(const[o,a]of Object.entries(e)){if(t.has(o)){d(o);continue}const e=n[o];if(k(a)?r[o]=a.call(s):r[o]=a,1==i.observed.size){i.observed.get("callBack")(o,a,e)}}}else M(`"${z(e)}" is not a valid value for the "setRefs" property.\n The value of the setRefs property must be a plain Javascript object.`)},enumerable:!1},observe:{value:e=>(k(e)||M("The argument of [Reference reactor].observe() must be a function."),0===i.observed.size&&(i.observed.set("callBack",e),!0)),enumerable:!1,writable:!1}}),s}M("The argument of the Ref function must be a plain Javascript object.")}},window.renderIf=function(e){if(A(e)||M("The argument of renderIf must be a plain Javascript object."),void 0===new.target){const{in:t,data:n}=e,o=new Set(["setConds","observe"]),r=J(t),i=new Set;"string"!=typeof t&&M('The value of the "in" property in the renderIf function\n must be a string.'),A(n)||M('The value of the "data" property on the renderIf function \n must be a plain Javascript object.');for(let[e,t]of Object.entries(n))o.has(e)?ue(e):(t=k(t)?t.call(n):t,W(t)||p(e),n[e]=t);!function e(t){let o=-1;const r={target:void 0,if:void 0,else:void 0,ifNot:void 0,elseIfs:new Set,index:void 0,lastRendered:{target:void 0,prop:void 0},conditionalProps:new Set,rootElement:t,set setOptions(e){for(const[t,n]of Object.entries(e))this[t]=n,"if"==t&&S(n)&&this.conditionalProps.add(n)},canCache(){return null!=this.if},addElseIf(e){const{elseIf:t}=e;this.conditionalProps.has(t)?function(e){H(`\n Two elements with the "_elseIf" attribute can not have the same conditional property.\n Property: "${e}"\n `)}(t):(this.elseIfs.add(e),this.conditionalProps.add(t))},deleteData(){this.setOptions={target:void 0,if:void 0,else:void 0,ifNot:void 0,index:void 0},this.elseIfs.clear(),this.conditionalProps.clear()},getOptions(){const e=Object.assign({},this);return e.elseIfs=Array.from(this.elseIfs),e.conditionalProps=Array.from(this.conditionalProps),this.deleteData(),e}},s=()=>{i.add(r.getOptions())},a=le(t),c=a.length;for(const t of a){o++,t.index=o;const i=c-1==o;if(3!=t.nodeType)if(pe(t)||t.parentNode.removeChild(t),t.children.length>0&&e(t),he(t))m(t);else if(pe(t)&&r.canCache())s();else{if(t.hasAttribute("_ifNot")){const e=t.getAttribute("_ifNot");if(C(n,e)){t.removeAttribute("_ifNot"),r.canCache()&&s(),r.setOptions={ifNot:e,target:t,index:o},s();continue}b(t,e,n)}else if(t.hasAttribute("_else"))r.if?(r.else=t,t.removeAttribute("_else"),s()):Y('The parser found an element with the "_else" attribute,\n but there is not an element with the "_if" or a valid "_elseIf" attribute before it.');else if(t.hasAttribute("_elseIf")){const e=t.getAttribute("_elseIf");t.removeAttribute("_elseIf"),r.if?C(n,e)?r.addElseIf({target:t,index:o,elseIf:e}):Y(`The conditional rendering parser found an element which has the "_elseIf"\n conditional property whose the value is: "${e}",\n but you did not define any conditional property with that name.\n \n `):y(t)}else if(t.hasAttribute("_if")){r.canCache()&&s();const e=t.getAttribute("_if");if(t.removeAttribute("_if"),!C(n,e)){g(e,t,n);continue}r.setOptions={if:e,target:t,index:o}}i&&r.canCache()&&s()}else r.canCache()&&s()}}(r);const s=function(e,t){const n=Array.from(e);function o(e,t){if(!($(f[t])||e.length<2))for(const n of e){I(f[n])&&n!==t&&(f[n]=!1)}}function r(e,t){function n(){return null!=t.lastRendered.target.parentNode}let o=!1;for(const{target:r,elseIf:i}of e){const e=t.lastRendered;if(e.target&&I(f[e.prop])){o=!0;break}e.target&&$(f[e.prop])&&n()&&(t.rootElement.removeChild(e.target),t.lastRendered={prop:void 0,target:void 0}),I(f[i])&&(s(t.rootElement,r),t.lastRendered={prop:i,target:r},o=!0,e.target&&!S(e.prop)&&n()&&t.rootElement.removeChild(e.target))}return o}function i(e,t){for(const i of n){const{target:n,if:a,elseIfs:c,else:f,ifNot:l,rootElement:u}=i,d=Array.from(i.conditionalProps);if(S(t)&&o(d,t),l)$(e[l])&&null==n.parentNode?u.textContent.trim().length>0?s(u,n):u.appendChild(n):n.parentNode==u&&I(e[l])&&u.removeChild(n);else if($(e[a]))if(n.parentNode!=u||f){if(f||c.length>0){const e=r(c,i);null!=n.parentNode&&u.removeChild(n),e&&f&&null!=f.parentNode?f.parentNode.removeChild(f):!e&&f&&null==f.parentNode&&(s(u,f),i.lastRendered={target:f,prop:void 0})}}else u.removeChild(n),r(c,i);else if(I(e[a])&&null==n.parentNode){f&&null!=f.parentNode?(u.removeChild(f),s(u,n)):s(u,n);const{target:e}=i.lastRendered;P(e)&&null!=e.parentNode&&!e.isSameNode(n)&&e.parentNode.removeChild(e),i.lastRendered={target:n,prop:a}}}}function s(e,t){const n=le(e),o=n[n.length-1];if(t&&null==t.parentNode)if(o&&o.index>t.index){for(const o of n)if(o.index>t.index){e.insertBefore(t,o);break}}else e.appendChild(t)}const a=new Set(["setConds","observe"]),c=new Map,f=Object.assign({},t);i(f);const l=new Proxy(f,{set(e,n,o){if(!(n in t)&&!a.has(n))return h(n),!1;if(!W(o)&&!a.has(n))return p(n),!1;if(Reflect.set(e,n,o),!a.has(n)&&(i(f,n),1==c.size)){c.get("callBack")(n,o)}return!0},deleteProperty:()=>!1});return Object.defineProperties(l,{observe:{value:e=>(k(e)||M("The argument of [renderIf reactor].observe()\n must be a function."),0==c.size&&(c.set("callBack",e),!0)),enumerable:!1,writable:!1},setConds:{set(e){A(e)||M(`The value of [renderIf reactor].setConds must be\n a plain Javascript object, and you defined ${z(e)}\n as its value.`);for(let[n,o]of Object.entries(e))a.has(n)?ue(n):(o=k(o)?o.call(t):o,W(o)||p(n),C(this,n)||h(n),f[n]=o);i(f)},enumerable:!1}}),l}(i,n);return s}H("renderIf is not a constructor, do not call it with\n the new keyword.")},window.renderList=function(e){function t(e,t,n){return D(e)?(function(e){if(Oe(e))return!1;function t(e,t){if(S(t)&&"number"!=typeof t&&M("The second argument of [LIST REACTOR].addItems must be a number."),D(e)||M("The first argument of [LIST REACTOR ].addItems must be an Array."),!S(t)||t>this.length-1)for(const t of e)this.push(t);else if(0==t||t<0)for(let t=e.length-1;t>-1;t--)this.unshift(e[t]);else for(let n=e.length-1;n>-1;n--)this.splice(t,0,e[n])}const n=[{name:"otherArray",handler:d},{name:"addItems",handler:t}];for(const{name:t,handler:o}of n)p(e,t,"addItems"==t?{value:o}:{set(){"otherArray"===t&&f(),o(...arguments)}})}(e),function(e,t){j(e)&&a();const n=new Set(["otherArray","addItems","setEach"]);return new Proxy(e,{set(o,r,i,s){return n.has(r)?(Reflect.set(...arguments),!0):(Reflect.set(...arguments),Te(e,s),t(),"number"!=typeof i&&F(i)&&je(i,t),!0)},get:(e,t)=>e[t]})}(e,t)):A(e)?Ie(e,t,n):x(e)?(ke(e,t,!0,n),e):T(e)?($e(e,t,!0,n),e):void 0}void 0!==new.target&&M('renderList is not a constructor, do not call\n it with the "new" keyword.'),A(e)||M("The options(the argument of renderList) must be a plain Javascript object.");let{in:n,each:o,do:r}=e;const i=J(n);(function(e){return"string"==typeof e})(n)||M("The 'in' option in renderList must be a string."),F(o)||c(o),k(r)||M("The value of the 'do' option in renderList must be only a function.");let s,u=!0;function d(e){F(e)||c(e);const t=Symbol.for("observe");if(e[t]=o[t],o=e,Oe(e)||h(),m(),Te(o),"number"!=typeof o){new U(o).each(((e,t,n)=>{"object"==n?je(e[1],m):"array"!=n&&"set"!=n||je(e,m)}))}}function h(){if(Oe(o))return!1;Object.defineProperties(o,{setEach:{set:d},observe:{value(e){const t=Symbol.for("observe");return"function"!=typeof this[t]&&(k(e)?(Object.defineProperty(this,t,{value:e,configurable:!1}),!0):void M("The argument of the observe method must be a function."))}}}),s=t(o,m,i),D(o)&&function(e,t,n,o,r){function i(e,i,s){const a=o.call(r,e,i,r),c=ve(a.element),f=t.children[s];w(a)||l(),c&&S(s)?t.insertBefore(c,f):t.appendChild(c),je(e,n)}const s=[{name:"unshift",handler:function(){const t=Array.prototype.unshift.apply(e,arguments);if(arguments.length>1){let e=arguments.length-1;for(;e>-1;e--)i(arguments[e],0,0)}else 1==arguments.length&&i(...arguments,0,0);return n(),Te(e),t}},{name:"shift",handler:function(){const o=Array.prototype.shift.apply(e,void 0),r=t.children[0];return r&&(t.removeChild(r),n(),Te(e)),o}},{name:"push",handler:function(){const t=Array.prototype.push.apply(e,arguments);if(1==arguments.length)i(...arguments,e.length-1);else if(arguments.length>1)for(const t of arguments)i(t,e.length-1);return n(),Te(e),t}},{name:"pop",handler:function(){const o=Array.prototype.pop.apply(e,arguments),r=t.children,i=r[r.length-1];return i&&(t.removeChild(i),n(),Te(e)),o}},{name:"splice",handler:function(o,r,...s){const a=Array.prototype.splice.apply(e,arguments);function c(){const e=r;for(let n=0;n-1;e--)i(s[e],e,o)}return r>0&&s.length>0&&(c(),f()),0==s.length?c():0==r&&s.length>0&&f(),n(),Te(e),a}}];if(j(e))return!1;if(Oe(e))return!1;for(const{name:t,handler:n}of s)Object.defineProperty(e,t,{value:n})}(o,i,m,r,s),Ae(o)}function p(e,t,n){Object.defineProperty(e,t,n)}function m(){const e=new U(o);ze(i,e),e.each(((e,t,n)=>{let o;if(u&&je("object"!==n?e:e[1],m),o="array"===n?r.call(s,e,t,s):"object"===n?r.call(s,e[0],e[1],s):"number"===n?r(e):r.call(s,e,s),w(o)){const e=i.children[t];P(e)?e.template?function(e,t,n){const o={children:!0,continue:!0};(function(e,t,n){const{attrs:o={},events:r={},styles:i={},children:s}=e,{attrs:a={},events:c={},styles:f={},children:l,target:u}=t,d=u.parentNode,h=Re(e.text),p=Re(t.text),m=Re(e.tag),b=Re(t.tag);if(m!==b){const o=ve(e);d.replaceChild(o,u),n.children=!1,Pe(t,e),t.target=o}else if(y=s,g=l,D(y)&&!D(g)||!D(y)&&D(g)){const o=ve(e);d.replaceChild(o,u),n.children=!1,Pe(t,e),t.target=o}else if(function(e,t){return D(e)&&D(t)}(s,l)&&s.length!==l.length){const o=ve(e);d.replaceChild(o,u),n.children=!1,Pe(t,e),t.target=o}else S(s)||S(l)||h!==p&&(u.textContent=h,Pe(t,e));var y,g;Ee(u,a,o),Le(u,c,r),_e(u,f,i)})(e,t,o),o.children&&e.children&&e.children.length>0&&Je(e.children,t.children,n)}(o.element,e.template,e):(q("Avoid manipulating what Inter manipulates."),i.replaceChild(ve(o.element),e)):i.appendChild(ve(o.element))}else l()}))}return"number"!=typeof o&&h(),m(),u=!1,s},window.template=function(e){if(A(e)){return{[Symbol.for("template")]:!0,element:e}}M(`The argument of the template function must be a plain Javascript object,\n but you defined "${z(e)}" as its argument.\n \n `)},window.toAttrs=function(e){if(void 0!==new.target)M('the "toAttrs" function is not a constructor, do not call it with the\n new keyword.');else{if(A(e)){const{in:t,data:n}=e;return function(e,t){const n=e.getElementsByTagName("*");for(const e of n)if(1==e.attributes.length){const{name:n}=e.attributes[0];if(re(n)&&oe(n)){const o=te(n);e.removeAttribute(n),ne(t,o)?ie(e,t[o]):Y(`\n The attribute manager parser found an attribute manager\n named "${o}", but you did not define it in the "data" object.\n `)}}}(J(t),n),n}M(`"${z(e)}" is an invalid argument for\n "toAttrs" function, the argument must be a plain Javascript object.`)}},window.Backend=qe,console.log("The global version 2.1.4 of Inter was loaded successfully.")}(); \ No newline at end of file +!function(){function e(e){Y(`The "${e}" event was not created because\n its handler is not a function, in the tempate function.`)}function t(e){Y(`"${e}" doesn't seem to be a valid dom event.`)}function n(e){Y(`"${e}" doesn't seem to be a valid style name.`)}function o(e){H(`"${M(e)}" is an invalid tag name,\n in the template function.`)}function r(){H('The "events", "attrs" and "styles" options in the template function\n must be plain Javascript objects, and you didn\'t define\n one or more of those options as plain Javascript object.')}function i(e){const t=`You shoud not use "${e}" as an attribute name, it seems to be a dom event,\n use it as property of the "events" object, like:\n\n {\n tag: "button", text: "Some text", events: { ${e}: () => { //Some code here } }\n }\n `;W(e.startsWith("on")?t:'You should not use the style attribute(in attrs object) to create styles for the element,\n use the "styles" object instead, like:\n\n {\n tag: "p", text: "Some text", styles: { color: "green" }\n }\n')}function s(e){W(`"${e}" is a reserved property, do not create a property with this name.`)}function a(e){H(`The value of "setProps" must be a plain Javascript object, and you\n defined "${M(e)}" as its value`)}function c(){q("Inter failed to define the reactivity,\n because the Array of the each option is not configurable.")}function f(e){H(`"${M(e)}" is not a valid value for the "each" option in renderList.\n The values that are accepted in "each" option, are:\n Array.\n Plain js object.\n Number.\n Map.\n Set.`)}function l(){W('The "otherArray" property was deprecated since version 2.1.0,\n use the "setEach" property instead.')}function u(){H('The template function is not being returned inside the "do" method in\n renderList(reactive listing), just return the template function.')}function t(e){W(`There's not any event named "${e}" in Ajax request.`)}function d(){H('The arguments of "okay", "error" and "response" methods must be\n functions.')}function h(e){W(`"${e}" is a reserved reference name, use others names.`)}function p(e){W(`"${e}" was not defined as conditional property.`)}function m(e){q(`The value of a conditional property must be boolean(true/false),\n and the value of "${e}" property is not boolean.`)}function b(e){Y(`The conditional rendering parser found a/an "${x(e)}"\n element which has more than one conditional atribute, it's forbidden.`)}function y(e,t,n){Y(`\n \n The conditional rendering parser found\n an element with the "_ifNot" attribute and the value\n of this attribute is not a conditional property.\n \n {\n element: ${e.nodeName.toLowerCase()},\n _ifNot: ${t},\n data: ${Object.keys(n)}\n }\n \n `)}function g(e){Y(`a/an "${x(e)}" element has the "_elseIf" attribute,\n but it does not come after an element with the "_if" or a valid "_elseIf" attribute.`)}function v(e,t,n){Y(`\n The conditional rendering parser found\n an element which has the "_if" attribute and the value\n of this attribute is not a conditional property.\n \n {\n element: ${t.nodeName.toLowerCase()},\n _if: ${e},\n data: ${Object.keys(n)}\n }\n \n `)}function w(e){W(` \n The "${e}" property was not defined in the manager object.\n `)}function j(e){return O(e)&&e.element&&e[Symbol.for("template")]}function A(e){return Object.isFrozen(e)||Object.isSealed(e)||!Object.isExtensible(e)}function O(e){return"[object Object]"==Object.prototype.toString.apply(e,void 0)}function x(e){return e.nodeName.toLowerCase()}function T(e){return e instanceof Set}function C(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function S(e){return e instanceof Map}function I(e){return null!=e}function $(e){return Object.is(e,!0)}function k(e){return Object.is(e,!1)}function R(e){return"function"==typeof e}function P(e){return 0==Object.keys(e).length}function N(e){return e instanceof HTMLElement}function E(e){return e in HTMLElement.prototype}function _(e){return e in document.createElement("p").style}function L(e){return document.createTextNode(e)}function J(e){return"string"==typeof e}function B(e,t,n){return O(e)&&O(t)&&O(n)}function z(e){"string"!=typeof e&&H("The value of the id attribute must be a string.");const t=document.getElementById(e);if(null!=t)return t;q(`There's not an element on the document with id "${e}".`)}function M(e){return void 0===e||"symbol"==typeof e||"bigint"==typeof e||"boolean"==typeof e||"function"==typeof e||"number"==typeof e||"string"==typeof e?typeof e:function(e){const t=I(e)&&Object.prototype.toString.call(e).startsWith("[object");return t?Object.prototype.toString.call(e).replace("[object","").replace("]","").replace(/\s/g,"").toLowerCase():"null"}(e)}function H(e){throw new SyntaxError(`Inter syntaxError : ${e}`)}function q(e){throw new Error(`Inter error: ${e}`)}function W(e){console.warn(`Inter warning: ${e}`)}function Y(e){console.error(`Inter parser error: ${e}`)}function D(e){return Array.isArray(e)}function F(e){return 1==e||0==e}function U(e){return e instanceof Array||O(e)||e instanceof Map||e instanceof Set||"number"==typeof e}function X(e){this.source=function(e){const t={values:new Array,type:void 0};if(D(e))t.values=e,t.type="array";else if(O(e))t.values=Object.entries(e),t.type="object";else if(e instanceof Map)e.forEach(((e,n)=>{t.values.push([n,e])})),t.type="object";else if(e instanceof Set)t.values=Array.from(e),t.type="set";else if("number"==typeof e){for(let n=0;n{const n=e.replace("{","").replace("}","").trim();t.add(n)})),Array.from(t)}function V(e,t){return new RegExp(`{\\s*${t}\\s*}`).test(e)}X.prototype.each=function(e){let t=-1;for(const n of this.source.values)t++,e(n,t,this.source.type)};const Z=new Set(["currentTime","value"]);function ee(e,t,n){const o=e.getElementsByTagName("*");function r(e){function o(e){for(const o in t)if(e.textContent.trim().length>0&&V(e.textContent,o)){const t={target:e,text:e.textContent};n.add(t);break}}if(1==e.nodeType)for(const t of e.childNodes)t.hasChildNodes()&&1==t.nodeType?r(t):o(t);else 3==e.nodeType&&o(e)}function i(e){const o={target:e,attrs:Object.create(null),refs:t};for(const r of e.attributes)for(const i in t)if(V(r.value,i)){Z.has(r.name)?(n.specialAttrs.add({target:e,attr:{[r.name]:r.value}}),e.removeAttribute(r.name)):o.attrs[r.name]=r.value;break}var r;r=o.attrs,Object.keys(r).length>0&&n.add(o,!0)}const s=function(e){const t=new Set;if(e.hasChildNodes())for(const n of e.childNodes)3==n.nodeType&&n.textContent.trim().length>0&&K(n.textContent)&&t.add(n);return Array.from(t)}(e);if(s.length>0)for(const e of s)r(e);for(const e of o)r(e),i(e);n.updateRefs()}function te(e){return null==e}function ne(e){return e.replace("{...","").replace("}","")}function oe(e,t){return C(e,t)}function re(e){return/{(:?\.){3}(:?\S+)}/.test(e)}function ie(e){return/{(:?[\s\S]+)}/.test(e)}function se(e,t){const n=new Set(["value","currentTime"]),o=e=>!n.has(e),r=e=>e.startsWith("on")&&E(e),i=new Map;for(const[n,s]of Object.entries(t))!o(n)||r(n)||te(s)?o(n)||te(s)?r(n)&&!te(s)&&fe(e,n,s,t):ce(e,n,s):ae(e,n,s),le(t,n,s,e,i);var s;s=t,Object.defineProperty(s,"setAttrs",{set(e){O(e)||function(e){H(`\n "${M(e)}" is an invalid value for the "setAttrs" property.\n The "setAttrs" property only accepts a plain Javascript object as its\n value.\n `)}(e);for(const[t,n]of Object.entries(e))C(this,t)?this[t]=n:w(t)}}),function(e,t){Object.defineProperty(e,"observe",{value:e=>0===t.size&&(R(e)||H(`The argument of the observe method must be a function,\n and you defined ${M(e)} as its argument.`),t.set("observeCallBack",e),!0)})}(t,i)}function ae(e,t,n){te(n)||n===(()=>e.getAttribute(t))?te(n)&&e.hasAttribute(t)&&e.removeAttribute(t):e.setAttribute(t,n)}function ce(e,t,n){I(n)?e[t]=n:te(n)&&(e[t]="")}function fe(e,t,n,o){I(n)&&!R(n)?function(e,t){H(`\n "${M(t)}" is an invalid\n handler for the "${e}" event, you must\n define only a function as the handler of a dom event.\n `)}(t,n):te(n)?e[t]=void 0:e[t]=e=>n.call(o,e)}function le(e,t,n,o,r){const i=new Set(["value","currentTime","checked"]),s=()=>!i.has(t),a=()=>t.startsWith("on")&&E(t),c=()=>!s();let f=n;Object.defineProperty(e,t,{set(e){a()?fe(o,t,e,this):s()?ae(o,t,e):c()&&ce(o,t,e),f=e;const n=r.get("observeCallBack");r.has("observeCallBack")&&n(t,e)},get:()=>c()?o[t]:a()?(function(e){W(`\n you are trying to get the value of "${e}",\n it's an event, and you can not get the value of an event.\n `)}(t),!1):f})}function ue(e){const t=new Array;return e.childNodes.forEach((e=>{(1==e.nodeType||3==e.nodeType&&0==!e.textContent.trim().length)&&t.push(e)})),t}function de(e){W(`"${e}" is a reserved property, you can not use it as a conditional property.`)}const he={store:new Set,set(e){for(const t of e)I(t)&&this.store.add(t)},getSize(){const e=this.store.size;return this.store.clear(),e}};function pe(e){const t=e.getAttribute("_if"),n=e.getAttribute("_elseIf"),o=e.getAttribute("_ifNot"),r=!!e.hasAttribute("_else")||void 0;return he.set([t,n,o,r]),he.getSize()>1}function me(e){const t=e.hasAttribute("_if"),n=e.hasAttribute("_elseIf"),o=e.hasAttribute("_ifNot"),r=e.hasAttribute("_else");return!(t||n||o||r)}function be(n,o){Object.entries(n).forEach((n=>{const[r,i]=n;E(r)?R(i)?o[r]=i:e(r):t(r)}))}function ye(e,t){Object.entries(e).forEach((e=>{let[n,o]=e,r=!1;const s=new Set(["value","currentTime","checked"]);(n.startsWith("on")&&E(n)||"style"==n)&&(i(n),r=!0);const a=e=>{I(e)&&!k(e)&&(s.has(n)?t[n]=e:t.setAttribute(n,e)),t.template.attrs[n]=e};r||(R(o)?(o=o(),a(o)):a(o))}))}function ge(e,t){Object.entries(e).forEach((e=>{const[o,r]=e;if(_(o)){const e=R(r)?r():r;I(e)&&(t.style[o]=e,t.template.styles[o]=e)}else n(o)}))}function ve(e,t,n){if(I(e)&&0==t.length){const t=R(e)?L(e()):L(e);I(t)&&n.appendChild(t)}else I(e)&&t.length>0?(Y("The template parser found an element \n with both the text property and the children property,\n and in this case Inter ignores the text property."),je(n,t)):t.length>0&&je(n,t)}function we(e,t,n){let{tag:i,text:s,attrs:a={},events:c={},styles:f={},children:l=[]}=e;i=R(i)?i():i,s=R(s)?s():s;C(e,"renderIf")&&!t&&Y("You can not conditionally render the main\n container in the template function."),J(i)||o(i),B(a,f,c)||r();const u=document.createElement(i);return u.template=Object.assign(e,{target:u,tag:i,text:s}),t&&(u.index=n),ye(a,u),be(c,u),ge(f,u),ve(s,l,u),u}function je(e,t){let n=-1;for(const i of t){let{tag:t,text:s,attrs:a={},events:c={},styles:f={},children:l=[],renderIf:u}=i;if(n++,i.index=n,t=R(t)?t():t,s=R(s)?s():s,G(u)&&C(i,"renderIf"))continue;J(t)||o(t),B(a,f,c)||r();const d=document.createElement(t);d.index=n,d.template=Object.assign(i,{target:d,tag:t,text:s}),ye(a,d),be(c,d),ge(f,d),ve(s,l,d),e.appendChild(d)}}function Ae(e,t){O(e)?function(e,t){const n=new Set(["setProps","defineProps","deleteProps"]);function o(t){for(const{name:n,setHandler:o}of t)Object.defineProperty(e,n,{set:o})}function r(n){let o=e[n];e[n]=void 0,Object.defineProperty(e,n,{set(e){o=e,t(),Ae(e,t)},get:()=>o,configurable:!0})}function i(o){D(o)||function(e){H(`The value of "deleteProps" must be an Array object, and you\n defined "${M(e)}" as its value`)}(o);for(const t of o)"string"==typeof t&&C(e,t)&&(n.has(t)||delete e[t]);t()}function c(o){O(o)||function(e){H(`The value of "defineProps" must be a plain Javascript object, and you\n defined "${M(e)}" as its value`)}(o);for(const[i,s]of Object.entries(o))i in this||n.has(i)||(e[i]=s,r(i)),t()}function f(o){O(o)||a(o);for(const[r,i]of Object.entries(o))n.has(r)||(e[r]=i),Ae(i,t)}if(xe(e))return!0;if(A(e))return W("Inter failed to define reactivity\n in a plain Javascript object, because it is not configurable."),!1;for(const o of Object.keys(e))n.has(o)&&s(o),r(o),Ae(e[o],t);o([{name:"defineProps",setHandler:c},{name:"setProps",setHandler:f},{name:"deleteProps",setHandler:i}]),Oe(e)}(e,t):D(e)?function(e,t){if(xe(e))return!1;const n=["push","unshift","pop","shift","splice","sort","reverse"];e.mutationInfo=void 0;for(const o of n)Object.defineProperty(e,o,{value(e,n,...r){"pop"==o?this.mutationInfo={method:"pop",renderingSystem:t}:"shift"==o?this.mutationInfo={method:"shift",renderingSystem:t}:"push"==o?this.mutationInfo={method:"push",itemsLength:arguments.length,renderingSystem:t}:"unshift"==o?this.mutationInfo={method:"unshift",itemsLength:arguments.length,renderingSystem:t}:"splice"==o&&(this.mutationInfo={method:"splice",start:e,deleteCount:n,itemsLength:I(r)?r.length:0,renderingSystem:t});const i=Array.prototype[o].apply(this,arguments);if(t(),this.mutationInfo={method:void 0,removeInfo:[],do:void 0,newData:[],from:void 0,to:void 0},"push"===o||"unshift"===o)for(const e of arguments)Ae(e,t);else if("splice"===o&&I(r))for(const e of r)Ae(e,t);return i}});(function(e,t){for(const n of e)Ae(n,t)})(e,t),Oe(e),function(e){Object.defineProperty(e,"map",{value(e){const t=new Array;t.reactor=this;let n=-1;for(const o of this){n++;const r=e(o,n,this);t.push(r)}return t}})}(e)}(e,t):S(e)?ke(e,t):T(e)&&Re(e,t)}function Oe(e){if(xe(e))return!1;const t=Symbol.for("reactive");Object.defineProperty(e,t,{get:()=>!0})}function xe(e){return C(e,Symbol.for("reactive"))}function Te(e){O(e)?function(e,t,n){const o=Object.keys(e);o.some(((e,o)=>{e==t&&Ce(n,o)}))}(...arguments):T(e)?function(e,t,n){const o=Array.from(e);o.some(((e,o)=>{e==t&&Ce(n,o)}))}(...arguments):function(e,t,n){let o=-1;e.forEach((()=>{o++;arguments[1]==t&&Ce(n,o)}))}(...arguments)}function Ce(e,t){const n=e.children[t];N(n)&&e.removeChild(n)}function Se(e,t){const n=Symbol.for("observe");"function"==typeof e[n]&&e[n](I(t)?t:e)}function Ie(e,t){Object.defineProperty(e,"setProps",{set(n){O(n)||a();for(const[o,r]of Object.entries(n))O(e)?this[o]=r:S(e)&&e.set(o,r),Ae(r,t);O(e)&&t()}})}function $e(e,t,n){A(e)&&c(),Ie(e,t);const o=new Set(["observe"]),r=new Set(["setEach","setProps"]);return Oe(e),new Proxy(e,{set(n,i,s,a){return!o.has(i)&&(Reflect.set(...arguments),function(e){return!r.has(e)}(i)&&(t(),Se(e,a),"number"!=typeof s&&U(s)&&Ae(s,t)),!0)},get(){return Reflect.get(...arguments)},deleteProperty(o,r,i){if(r in o)return Te(o,r,n),Reflect.deleteProperty(...arguments),t(),Se(e,i),!0;W(`You are trying to delete the "${r}" property in the list\n reactor, but that property does not exist in the list reactor.`)}})}function ke(e,t,n,o){if(xe(e))return!1;const r=["set","delete","clear"];for(const i of r)Object.defineProperty(e,i,{value(){"delete"==i&&n&&Te(this,arguments[0],o);const e=Map.prototype[i].apply(this,arguments);if(n&&Se(this),t(),"set"==i){Ae(arguments[1],t)}return e}});!function(e,t){e.forEach((e=>{Ae(e,t)}))}(e,t),Oe(e),n&&Ie(e,t)}function Re(e,t,n,o){if(xe(e))return!1;const r=["add","clear","delete"];for(const i of r)Object.defineProperty(e,i,{value(){"delete"==i&&n&&Te(this,arguments[0],o);const e=Set.prototype[i].apply(this,arguments);return t(),n&&Se(this),"add"===i&&Ae(arguments[0],t),e}});!function(e,t){e.forEach((e=>{Ae(e,t)}))}(e,t),Oe(e)}function Pe(e){return"function"==typeof e&&(e=e()),e}function Ne(e,t){Object.assign(e,t)}function Ee(e,t){return e.length>t.length?e:t}function _e(e,t,n){function o(t){e.hasAttribute(t)?e.removeAttribute(t):c.has(t)&&("checked"===t?e.checked=!1:e[t]="")}const r=Object.keys(t),s=Object.keys(n),a=Ee(r,s),c=new Set(["value","currentTime","checked"]);for(let f=0;a.length>f;f++){const a=r[f],l=s[f],u=Pe(t[a]),d=Pe(n[l]);a in n?!I(d)||k(d)?o(l):I(d)&&!k(d)&&(l.startsWith("on")&&E(l)||"style"==l?i(l):l===a&&d===u||(c.has(l)?e[l]=d:e.setAttribute(l,d))):o(a),t[a]=d}}function Le(e,t,o){const r=Object.keys(t),i=Object.keys(o),s=Ee(r,i);for(let a=0;s.length>a;a++){const s=r[a],c=i[a],f=Pe(t[s]),l=Pe(o[c]);if(s in o&&I(l))I(l)&&l!==f&&(_(c)?(e.style[c]=l,e.style[c]!==l&&Y(`"${l}" is an invalid value for the "${c}" style.`)):n(c));else{const t=e.style[s],n=e.getAttribute("style");I(t)&&0!==t.trim().length&&(e.style[s]=null),n&&0==n.trim().length&&e.removeAttribute("style")}t[s]=l}}function Je(n,o,r){const i=Object.keys(o),s=Object.keys(r),a=Ee(i,s);for(let o=0;a.length>o;o++){const a=i[o],c=s[o];a in r&&I(r[a])||(n[a]=void 0),R(r[c])||!E(c)?I(r[c])&&(E(c)?n[c]=r[c]:t(c)):(n[a]=void 0,e(c))}}function Be(e,t,n){for(let o=0;ot){e.insertBefore(n,r);break}}}function ze(e,t,n){const o=Array.from(e),r=Array.from(t);for(let f=0;fO?Be(n,O,e):n.appendChild(e)}if(n&&(x=n.children[n.children.length-1]),h.length!==g.length){const{reactor:k}=h;if(null!=k){const{mutationInfo:{method:R,start:P,deleteCount:N,itemsLength:E}}=k;function s(){let e=E;for(;e>0;e--){const t=h[h.length-e];A.appendChild(we(t,!0,t.index)),g.push(t)}}function a(e){function t(e,t){for(let o=t-1;o>-1;o--){const t=A.children[e],r=h[o],i=we(r,!0,r.index);t?A.insertBefore(i,t):A.appendChild(i),n.unshift(r)}}const n=new Array;if("splice"==e&&0==N&&E>0)t(P,E),g.splice(P,N,...n);else if("splice"==e&&N>0){for(let e=0;e0)a(R);else if(null==N){Me(A,{source:{values:h}})}}else if(A&&null!=A.parentNode){const J=we(l,!0,O);n.replaceChild(J,A),Object.assign(u,l),u.target=J;continue}}if(I===$)G(y)&&C(l,"renderIf")?A&&null!=A.parentNode&&n.removeChild(A):G(y)||(A&&null==A.parentNode?i():A||i()),h.length==g.length&&0!==h.length&&(d=!0,ze(h,g,A)),S!==T&&A&&!d&&(A.textContent=T,u.text=T),u.tag=I,A&&(_e(A,w,m),Le(A,j,b),Je(A,v,p));else{const B=we(l,!0,O);Object.assign(u,l),A&&null!=A.parentNode&&(n.replaceChild(B,A),u.target=B)}}}function Me(e,t){if(e.children.length>t.source.values.length){let n=e.children.length-t.source.values.length;for(;n--;){const t=e.children.length-1,n=e.children[t];e.removeChild(n)}}}function He(e,t,n,o,r){e.open(t,n,!0,o,r)}function qe(e,t){const n={};return e.replace(/(:?[\S]+):/g,(e=>{var o,r;e=e.replace(":",""),t.getResponseHeader(e)&&((o=n)[r=e]=void 0,Object.defineProperty(o,r,{get:()=>t.getResponseHeader(r)}))})),Object.freeze(n)}function We(){void 0===new.target&&q("Backend is a constructor, call it with the new keyword.")}We.prototype={get[Symbol.toStringTag](){return"Ajax"},request(e){O(e)||H(`The argument of [Backend instance].request method\n must be a plain javascript object, and you defined "${M(e)}"\n as its argument.`);const{type:n,path:o,events:r={},timeout:i,withCredentials:s,body:a=null,headers:c={},security:f}=e,l=new Set(["connect","trace"]);I(n)&&"string"==typeof n||H('You must define the type(method) of request, in Ajax with the "type" option and\n it must be a string.'),I(o)&&"string"==typeof o||H('You must define the path where the request will be sent, with the "path" option and \n it must be a string.'),l.has(o.toLowerCase())&&function(e){q(`"${e}" is an unsupported request type in Ajax.`)}(n);const u=new Map;let h=!1;function p(){const e=new XMLHttpRequest,l=n.toUpperCase(),d=new Set(["onprogress","ontimeout","onabort"]),p={get status(){return e.status},get statusText(){return e.statusText},get headers(){return qe(e.getAllResponseHeaders(),e)},get data(){return function(e){if(void 0!==e)try{return JSON.parse(e)}catch(t){return e}}(e.responseText)},get[Symbol.toStringTag](){return"AjaxResponse"},isObj:()=>function(e){try{return O(JSON.parse(e))}catch(e){return!1}}(e.responseText)};O(f)&&Object.keys(f).length>=2&&(f.username&&f.password?(He(e,l,o,f.username,f.password),h=!0):W('Invalid "security" object, security object must have the username and passoword \n properties.')),h||(He(e,l,o),h=!0),O(c)||function(e){H(`the "headers" property must be an object, and\n you defined it as : ${M(e)}.`)}(c),O(r)||function(e){H(`the "events" property must be an object, and\n you defined it as : ${M(e)}.`)}(r),P(c)||function(e,t){Object.entries(e).forEach((([e,n])=>{t.setRequestHeader(e,n)}))}(c,e),P(r)||function(e,n,o){Object.entries(n).forEach((([n,r])=>{o.has(n)?"onprogress"!==n?e[n]=()=>{r()}:e.onprogress=t=>{const n={abort:()=>e.abort(),progress:100*t.loaded/t.total};r(n)}:t(n)}))}(e,r,d),e.onreadystatechange=function(){4==this.readyState&&(200==this.status?u.has("okay")&&u.get("okay")(p):u.has("error")&&u.get("error")(p))},F(s)&&(e.withCredentials=s),"number"!=typeof i&&(e.timeout=i),e.send(function(e){return I(e)?e instanceof FormData||"string"==typeof e?e:JSON.stringify(e):null}(a))}const m={okay(e){R(e)||d(),u.set("okay",e),p()},error(e){R(e)||d(),u.set("error",e),p()},response(e,t){const n=arguments.length;n<2&&function(e){H(`The response method must have two arguments and you only\n defined ${e} argument.`)}(n),R(e)||R(t)||d(),u.set("okay",e),u.set("error",t),p()}};return m}},Object.freeze(We.prototype),window.Ref=function(e){if(null!=new.target)H("Do not call the Ref function with the new keyword.");else{if(O(e)){const{in:n,data:o}=e;"string"!=typeof n&&H("The value of the 'in' property on the Ref function must be a string."),O(o)||H("The value of the 'data' property on the Ref function must be a plain Javascript object. ");const r=new Set(["setRefs","observe"]);for(const c in o)r.has(c)?(h(c),delete o[c]):R(o[c])&&(o[c]=o[c].call(o));const i=Object.assign({},o),s={attrs:new Set,texts:new Set,specialAttrs:new Set,observed:new Map,refs:i,hadIteratedOverSpecialAttrs:!1,add(e,t){t?this.attrs.add(e):this.texts.add(e)},updateSpecialAttrs(){for(const e of this.specialAttrs){const{target:t}=e;let[n,o]=Object.entries(e.attr)[0];const r=Q(o);for(const e of r){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(o=o.replace(t,this.refs[e]),!K(o))break}t[n]=o}},updateAttrRef(){for(const e of this.attrs){const{target:t,attrs:n}=e;for(let[e,o]of Object.entries(n)){const n=Q(o);for(const e of n)if(e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(o=o.replace(t,this.refs[e]),!K(o))break}t.getAttribute(e)!==o&&t.setAttribute(e,o)}}},updateTextRef(){if(this.texts.size>0)for(const e of this.texts){let{target:t,text:n}=e;const o=Q(n);for(const e of o)if(e in this.refs){const t=new RegExp(`{\\s*(:?${e})\\s*}`,"g");if(n=n.replace(t,this.refs[e]),!K(n))break}t.textContent!==n&&(t.textContent=n)}},updateRefs(){this.texts.size>0&&this.updateTextRef(),this.attrs.size>0&&this.updateAttrRef(),this.specialAttrs.size>0&&this.updateSpecialAttrs()}};function t(e,t,n){if(1==s.observed.size&&!r.has(e)){s.observed.get("callBack")(e,t,n)}}ee(z(n),i,s);const a=new Proxy(i,{set(e,o,r,a){if(o in e&&e[o]==r)return!1;const c=e[o];if(R(r)&&(r=r.call(a)),Reflect.set(...arguments),t(o,r,c),o in a)return s.updateRefs(),!0;ee(z(n),i,s)},get:(...e)=>Reflect.get(...e)});return Object.defineProperties(a,{setRefs:{set(e){if(O(e)){const n=new Set(["setRefs","observe"]);for(const[r,s]of Object.entries(e)){if(n.has(r)){h(r);continue}const e=o[r];R(s)?i[r]=s.call(a):i[r]=s,t(r,s,e)}}else H(`"${M(e)}" is not a valid value for the "setRefs" property.\n The value of the setRefs property must be a plain Javascript object.`)},enumerable:!1},observe:{value:e=>(R(e)||H("The argument of [Reference reactor].observe() must be a function."),0===s.observed.size&&(s.observed.set("callBack",e),!0)),enumerable:!1,writable:!1}}),a}H("The argument of the Ref function must be a plain Javascript object.")}},window.renderIf=function(e){if(O(e)||H("The argument of renderIf must be a plain Javascript object."),void 0===new.target){const{in:t,data:n}=e,o=new Set(["setConds","observe"]),r=z(t),i=new Set;"string"!=typeof t&&H('The value of the "in" property in the renderIf function\n must be a string.'),O(n)||H('The value of the "data" property on the renderIf function \n must be a plain Javascript object.');for(let[e,t]of Object.entries(n))o.has(e)?de(e):(t=R(t)?t.call(n):t,F(t)||m(e),n[e]=t);!function e(t){let o=-1;const r={target:void 0,if:void 0,else:void 0,ifNot:void 0,elseIfs:new Set,index:void 0,lastRendered:{target:void 0,prop:void 0},conditionalProps:new Set,rootElement:t,set setOptions(e){for(const[t,n]of Object.entries(e))this[t]=n,"if"==t&&I(n)&&this.conditionalProps.add(n)},canCache(){return null!=this.if},addElseIf(e){const{elseIf:t}=e;this.conditionalProps.has(t)?function(e){q(`\n Two elements with the "_elseIf" attribute can not have the same conditional property.\n Property: "${e}"\n `)}(t):(this.elseIfs.add(e),this.conditionalProps.add(t))},deleteData(){this.setOptions={target:void 0,if:void 0,else:void 0,ifNot:void 0,index:void 0},this.elseIfs.clear(),this.conditionalProps.clear()},getOptions(){const e=Object.assign({},this);return e.elseIfs=Array.from(this.elseIfs),e.conditionalProps=Array.from(this.conditionalProps),this.deleteData(),e}},s=()=>{i.add(r.getOptions())},a=ue(t),c=a.length;for(const t of a){o++,t.index=o;const i=c-1==o;if(3!=t.nodeType)if(me(t)||t.parentNode.removeChild(t),t.children.length>0&&e(t),pe(t))b(t);else if(me(t)&&r.canCache())s();else{if(t.hasAttribute("_ifNot")){const e=t.getAttribute("_ifNot");if(C(n,e)){t.removeAttribute("_ifNot"),r.canCache()&&s(),r.setOptions={ifNot:e,target:t,index:o},s();continue}y(t,e,n)}else if(t.hasAttribute("_else"))r.if?(r.else=t,t.removeAttribute("_else"),s()):Y('The parser found an element with the "_else" attribute,\n but there is not an element with the "_if" or a valid "_elseIf" attribute before it.');else if(t.hasAttribute("_elseIf")){const e=t.getAttribute("_elseIf");t.removeAttribute("_elseIf"),r.if?C(n,e)?r.addElseIf({target:t,index:o,elseIf:e}):Y(`The conditional rendering parser found an element which has the "_elseIf"\n conditional property whose the value is: "${e}",\n but you did not define any conditional property with that name.\n \n `):g(t)}else if(t.hasAttribute("_if")){r.canCache()&&s();const e=t.getAttribute("_if");if(t.removeAttribute("_if"),!C(n,e)){v(e,t,n);continue}r.setOptions={if:e,target:t,index:o}}i&&r.canCache()&&s()}else r.canCache()&&s()}}(r);const s=function(e,t){const n=Array.from(e);function o(e,t){if(!(k(l[t])||e.length<2))for(const n of e){$(l[n])&&n!==t&&(l[n]=!1)}}function r(e,t){function n(){return null!=t.lastRendered.target.parentNode}let o=!1;for(const{target:r,elseIf:i}of e){const e=t.lastRendered;if(e.target&&$(l[e.prop])){o=!0;break}e.target&&k(l[e.prop])&&n()&&(t.rootElement.removeChild(e.target),t.lastRendered={prop:void 0,target:void 0}),$(l[i])&&(s(t.rootElement,r),t.lastRendered={prop:i,target:r},o=!0,e.target&&!I(e.prop)&&n()&&t.rootElement.removeChild(e.target))}return o}function i(e,t){for(const i of n){const{target:n,if:a,elseIfs:c,else:f,ifNot:l,rootElement:u}=i,d=Array.from(i.conditionalProps);if(I(t)&&o(d,t),l)k(e[l])&&null==n.parentNode?u.textContent.trim().length>0?s(u,n):u.appendChild(n):n.parentNode==u&&$(e[l])&&u.removeChild(n);else if(k(e[a]))if(n.parentNode!=u||f){if(f||c.length>0){const e=r(c,i);null!=n.parentNode&&u.removeChild(n),e&&f&&null!=f.parentNode?f.parentNode.removeChild(f):!e&&f&&null==f.parentNode&&(s(u,f),i.lastRendered={target:f,prop:void 0})}}else u.removeChild(n),r(c,i);else if($(e[a])&&null==n.parentNode){f&&null!=f.parentNode?(u.removeChild(f),s(u,n)):s(u,n);const{target:e}=i.lastRendered;N(e)&&null!=e.parentNode&&!e.isSameNode(n)&&e.parentNode.removeChild(e),i.lastRendered={target:n,prop:a}}}}function s(e,t){const n=ue(e),o=n[n.length-1];if(t&&null==t.parentNode)if(o&&o.index>t.index){for(const o of n)if(o.index>t.index){e.insertBefore(t,o);break}}else e.appendChild(t)}function a(e,t){if(1==f.size){f.get("callBack")(e,t)}}const c=new Set(["setConds","observe"]),f=new Map,l=Object.assign({},t);i(l);const u=new Proxy(l,{set:(e,n,o)=>(!(n in e)||e[n]!=o)&&(n in t||c.has(n)?F(o)||c.has(n)?(Reflect.set(e,n,o),c.has(n)||(i(l,n),a(n,o)),!0):(m(n),!1):(p(n),!1)),deleteProperty:()=>!1});return Object.defineProperties(u,{observe:{value:e=>(R(e)||H("The argument of [renderIf reactor].observe()\n must be a function."),0==f.size&&(f.set("callBack",e),!0)),enumerable:!1,writable:!1},setConds:{set(e){O(e)||H(`The value of [renderIf reactor].setConds must be\n a plain Javascript object, and you defined ${M(e)}\n as its value.`);for(let[n,o]of Object.entries(e))c.has(n)?de(n):(o=R(o)?o.call(t):o,F(o)||m(n),C(this,n)||p(n),this[n]!=o&&(l[n]=o,a(n,o)));i(l)},enumerable:!1}}),u}(i,n);return s}q("renderIf is not a constructor, do not call it with\n the new keyword.")},window.renderList=function(e){function t(e,t,n){return D(e)?(function(e){if(xe(e))return!1;function t(e,t){if(I(t)&&"number"!=typeof t&&H("The second argument of [LIST REACTOR].addItems must be a number."),D(e)||H("The first argument of [LIST REACTOR ].addItems must be an Array."),!I(t)||t>this.length-1)for(const t of e)this.push(t);else if(0==t||t<0)for(let t=e.length-1;t>-1;t--)this.unshift(e[t]);else for(let n=e.length-1;n>-1;n--)this.splice(t,0,e[n])}const n=[{name:"otherArray",handler:d},{name:"addItems",handler:t}];for(const{name:t,handler:o}of n)p(e,t,"addItems"==t?{value:o}:{set(){"otherArray"===t&&l(),o(...arguments)}})}(e),function(e,t){A(e)&&c();const n=new Set(["otherArray","addItems","setEach"]);return new Proxy(e,{set(o,r,i,s){return n.has(r)?(Reflect.set(...arguments),!0):(Reflect.set(...arguments),Se(e,s),t(),"number"!=typeof i&&U(i)&&Ae(i,t),!0)},get:(e,t)=>e[t]})}(e,t)):O(e)?$e(e,t,n):T(e)?(Re(e,t,!0,n),e):S(e)?(ke(e,t,!0,n),e):void 0}void 0!==new.target&&H('renderList is not a constructor, do not call\n it with the "new" keyword.'),O(e)||H("The options(the argument of renderList) must be a plain Javascript object.");let{in:n,each:o,do:r}=e;const i=z(n);(function(e){return"string"==typeof e})(n)||H("The 'in' option in renderList must be a string."),U(o)||f(o),R(r)||H("The value of the 'do' option in renderList must be only a function.");let s,a=!0;function d(e){U(e)||f(e);const t=Symbol.for("observe");if(e[t]=o[t],o=e,xe(e)||h(),m(),Se(o),"number"!=typeof o){new X(o).each(((e,t,n)=>{"object"==n?Ae(e[1],m):"array"!=n&&"set"!=n||Ae(e,m)}))}}function h(){if(xe(o))return!1;Object.defineProperties(o,{setEach:{set:d},observe:{value(e){const t=Symbol.for("observe");return"function"!=typeof this[t]&&(R(e)?(Object.defineProperty(this,t,{value:e,configurable:!1}),!0):void H("The argument of the observe method must be a function."))}}}),s=t(o,m,i),D(o)&&function(e,t,n,o,r){function i(e,i,s){const a=o.call(r,e,i,r),c=we(a.element),f=t.children[s];j(a)||u(),c&&I(s)?t.insertBefore(c,f):t.appendChild(c),Ae(e,n)}const s=[{name:"unshift",handler:function(){const t=Array.prototype.unshift.apply(e,arguments);if(arguments.length>1){let e=arguments.length-1;for(;e>-1;e--)i(arguments[e],0,0)}else 1==arguments.length&&i(...arguments,0,0);return n(),Se(e),t}},{name:"shift",handler:function(){const o=Array.prototype.shift.apply(e,void 0),r=t.children[0];return r&&(t.removeChild(r),n(),Se(e)),o}},{name:"push",handler:function(){const t=Array.prototype.push.apply(e,arguments);if(1==arguments.length)i(...arguments,e.length-1);else if(arguments.length>1)for(const t of arguments)i(t,e.length-1);return n(),Se(e),t}},{name:"pop",handler:function(){const o=Array.prototype.pop.apply(e,arguments),r=t.children,i=r[r.length-1];return i&&(t.removeChild(i),n(),Se(e)),o}},{name:"splice",handler:function(o,r,...s){const a=Array.prototype.splice.apply(e,arguments);function c(){const e=r;for(let n=0;n-1;e--)i(s[e],e,o)}return r>0&&s.length>0&&(c(),f()),0==s.length?c():0==r&&s.length>0&&f(),n(),Se(e),a}}];if(A(e))return!1;if(xe(e))return!1;for(const{name:t,handler:n}of s)Object.defineProperty(e,t,{value:n})}(o,i,m,r,s),Oe(o)}function p(e,t,n){Object.defineProperty(e,t,n)}function m(){const e=new X(o);Me(i,e),e.each(((e,t,n)=>{let o;if(a&&Ae("object"!==n?e:e[1],m),o="array"===n?r.call(s,e,t,s):"object"===n?r.call(s,e[0],e[1],s):"number"===n?r(e):r.call(s,e,s),j(o)){const e=i.children[t];N(e)?e.template?function(e,t,n){const o={children:!0,continue:!0};(function(e,t,n){const{attrs:o={},events:r={},styles:i={},children:s}=e,{attrs:a={},events:c={},styles:f={},children:l,target:u}=t,d=u.parentNode,h=Pe(e.text),p=Pe(t.text),m=Pe(e.tag),b=Pe(t.tag);if(m!==b){const o=we(e);d.replaceChild(o,u),n.children=!1,Ne(t,e),t.target=o}else if(y=s,g=l,D(y)&&!D(g)||!D(y)&&D(g)){const o=we(e);d.replaceChild(o,u),n.children=!1,Ne(t,e),t.target=o}else if(function(e,t){return D(e)&&D(t)}(s,l)&&s.length!==l.length){const o=we(e);d.replaceChild(o,u),n.children=!1,Ne(t,e),t.target=o}else I(s)||I(l)||h!==p&&(u.textContent=h,Ne(t,e));var y,g;_e(u,a,o),Je(u,c,r),Le(u,f,i)})(e,t,o),o.children&&e.children&&e.children.length>0&&ze(e.children,t.children,n)}(o.element,e.template,e):(W("Avoid manipulating what Inter manipulates."),i.replaceChild(we(o.element),e)):i.appendChild(we(o.element))}else u()}))}return"number"!=typeof o&&h(),m(),a=!1,s},window.template=function(e){if(O(e)){return{[Symbol.for("template")]:!0,element:e}}H(`The argument of the template function must be a plain Javascript object,\n but you defined "${M(e)}" as its argument.\n \n `)},window.toAttrs=function(e){if(void 0!==new.target)H('the "toAttrs" function is not a constructor, do not call it with the\n new keyword.');else{if(O(e)){const{in:t,data:n}=e;return function(e,t){const n=e.getElementsByTagName("*");for(const e of n)if(1==e.attributes.length){const{name:n}=e.attributes[0];if(ie(n)&&re(n)){const o=ne(n);e.removeAttribute(n),oe(t,o)?se(e,t[o]):Y(`\n The attribute manager parser found an attribute manager\n named "${o}", but you did not define it in the "data" object.\n `)}}}(z(t),n),n}H(`"${M(e)}" is an invalid argument for\n "toAttrs" function, the argument must be a plain Javascript object.`)}},window.Backend=We,console.log("The global version 2.1.5 of Inter was loaded successfully.")}(); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index cf8a166..51cbb59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1 +1 @@ -{"name":"inter","version":"2.1.4","lockfileVersion":1,"requires":true,"dependencies":{"@eslint/eslintrc":{"version":"1.4.1","resolved":"https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz","integrity":"sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==","dev":true,"requires":{"ajv":"^6.12.4","debug":"^4.3.2","espree":"^9.4.0","globals":"^13.19.0","ignore":"^5.2.0","import-fresh":"^3.2.1","js-yaml":"^4.1.0","minimatch":"^3.1.2","strip-json-comments":"^3.1.1"}},"@humanwhocodes/config-array":{"version":"0.11.8","resolved":"https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz","integrity":"sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==","dev":true,"requires":{"@humanwhocodes/object-schema":"^1.2.1","debug":"^4.1.1","minimatch":"^3.0.5"}},"@humanwhocodes/module-importer":{"version":"1.0.1","resolved":"https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz","integrity":"sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==","dev":true},"@humanwhocodes/object-schema":{"version":"1.2.1","resolved":"https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz","integrity":"sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==","dev":true},"@nodelib/fs.scandir":{"version":"2.1.5","resolved":"https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz","integrity":"sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==","dev":true,"requires":{"@nodelib/fs.stat":"2.0.5","run-parallel":"^1.1.9"}},"@nodelib/fs.stat":{"version":"2.0.5","resolved":"https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz","integrity":"sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==","dev":true},"@nodelib/fs.walk":{"version":"1.2.8","resolved":"https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz","integrity":"sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==","dev":true,"requires":{"@nodelib/fs.scandir":"2.1.5","fastq":"^1.6.0"}},"acorn":{"version":"8.8.1","resolved":"https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz","integrity":"sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==","dev":true},"acorn-jsx":{"version":"5.3.2","resolved":"https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz","integrity":"sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==","dev":true},"ajv":{"version":"6.12.6","resolved":"https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz","integrity":"sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==","dev":true,"requires":{"fast-deep-equal":"^3.1.1","fast-json-stable-stringify":"^2.0.0","json-schema-traverse":"^0.4.1","uri-js":"^4.2.2"}},"ansi-regex":{"version":"5.0.1","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz","integrity":"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==","dev":true},"ansi-styles":{"version":"4.3.0","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz","integrity":"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==","dev":true,"requires":{"color-convert":"^2.0.1"}},"argparse":{"version":"2.0.1","resolved":"https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz","integrity":"sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==","dev":true},"balanced-match":{"version":"1.0.2","resolved":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz","integrity":"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==","dev":true},"brace-expansion":{"version":"1.1.11","resolved":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz","integrity":"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==","dev":true,"requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"callsites":{"version":"3.1.0","resolved":"https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz","integrity":"sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==","dev":true},"chalk":{"version":"4.1.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz","integrity":"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==","dev":true,"requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}},"color-convert":{"version":"2.0.1","resolved":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","integrity":"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==","dev":true,"requires":{"color-name":"~1.1.4"}},"color-name":{"version":"1.1.4","resolved":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","integrity":"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==","dev":true},"concat-map":{"version":"0.0.1","resolved":"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz","integrity":"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==","dev":true},"cross-spawn":{"version":"7.0.3","resolved":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz","integrity":"sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==","dev":true,"requires":{"path-key":"^3.1.0","shebang-command":"^2.0.0","which":"^2.0.1"}},"debug":{"version":"4.3.4","resolved":"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz","integrity":"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==","dev":true,"requires":{"ms":"2.1.2"}},"deep-is":{"version":"0.1.4","resolved":"https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz","integrity":"sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==","dev":true},"doctrine":{"version":"3.0.0","resolved":"https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz","integrity":"sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==","dev":true,"requires":{"esutils":"^2.0.2"}},"escape-string-regexp":{"version":"4.0.0","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz","integrity":"sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==","dev":true},"eslint":{"version":"8.32.0","resolved":"https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz","integrity":"sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==","dev":true,"requires":{"@eslint/eslintrc":"^1.4.1","@humanwhocodes/config-array":"^0.11.8","@humanwhocodes/module-importer":"^1.0.1","@nodelib/fs.walk":"^1.2.8","ajv":"^6.10.0","chalk":"^4.0.0","cross-spawn":"^7.0.2","debug":"^4.3.2","doctrine":"^3.0.0","escape-string-regexp":"^4.0.0","eslint-scope":"^7.1.1","eslint-utils":"^3.0.0","eslint-visitor-keys":"^3.3.0","espree":"^9.4.0","esquery":"^1.4.0","esutils":"^2.0.2","fast-deep-equal":"^3.1.3","file-entry-cache":"^6.0.1","find-up":"^5.0.0","glob-parent":"^6.0.2","globals":"^13.19.0","grapheme-splitter":"^1.0.4","ignore":"^5.2.0","import-fresh":"^3.0.0","imurmurhash":"^0.1.4","is-glob":"^4.0.0","is-path-inside":"^3.0.3","js-sdsl":"^4.1.4","js-yaml":"^4.1.0","json-stable-stringify-without-jsonify":"^1.0.1","levn":"^0.4.1","lodash.merge":"^4.6.2","minimatch":"^3.1.2","natural-compare":"^1.4.0","optionator":"^0.9.1","regexpp":"^3.2.0","strip-ansi":"^6.0.1","strip-json-comments":"^3.1.0","text-table":"^0.2.0"}},"eslint-scope":{"version":"7.1.1","resolved":"https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz","integrity":"sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==","dev":true,"requires":{"esrecurse":"^4.3.0","estraverse":"^5.2.0"}},"eslint-utils":{"version":"3.0.0","resolved":"https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz","integrity":"sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==","dev":true,"requires":{"eslint-visitor-keys":"^2.0.0"},"dependencies":{"eslint-visitor-keys":{"version":"2.1.0","resolved":"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz","integrity":"sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==","dev":true}}},"eslint-visitor-keys":{"version":"3.3.0","resolved":"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz","integrity":"sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==","dev":true},"espree":{"version":"9.4.1","resolved":"https://registry.npmjs.org/espree/-/espree-9.4.1.tgz","integrity":"sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==","dev":true,"requires":{"acorn":"^8.8.0","acorn-jsx":"^5.3.2","eslint-visitor-keys":"^3.3.0"}},"esquery":{"version":"1.4.0","resolved":"https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz","integrity":"sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==","dev":true,"requires":{"estraverse":"^5.1.0"}},"esrecurse":{"version":"4.3.0","resolved":"https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz","integrity":"sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==","dev":true,"requires":{"estraverse":"^5.2.0"}},"estraverse":{"version":"5.3.0","resolved":"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz","integrity":"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==","dev":true},"esutils":{"version":"2.0.3","resolved":"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz","integrity":"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==","dev":true},"fast-deep-equal":{"version":"3.1.3","resolved":"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz","integrity":"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==","dev":true},"fast-json-stable-stringify":{"version":"2.1.0","resolved":"https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz","integrity":"sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==","dev":true},"fast-levenshtein":{"version":"2.0.6","resolved":"https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz","integrity":"sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==","dev":true},"fastq":{"version":"1.15.0","resolved":"https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz","integrity":"sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==","dev":true,"requires":{"reusify":"^1.0.4"}},"file-entry-cache":{"version":"6.0.1","resolved":"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz","integrity":"sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==","dev":true,"requires":{"flat-cache":"^3.0.4"}},"find-up":{"version":"5.0.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz","integrity":"sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==","dev":true,"requires":{"locate-path":"^6.0.0","path-exists":"^4.0.0"}},"flat-cache":{"version":"3.0.4","resolved":"https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz","integrity":"sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==","dev":true,"requires":{"flatted":"^3.1.0","rimraf":"^3.0.2"}},"flatted":{"version":"3.2.7","resolved":"https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz","integrity":"sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==","dev":true},"fs.realpath":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz","integrity":"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==","dev":true},"glob":{"version":"7.2.3","resolved":"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz","integrity":"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==","dev":true,"requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.1.1","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"glob-parent":{"version":"6.0.2","resolved":"https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz","integrity":"sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==","dev":true,"requires":{"is-glob":"^4.0.3"}},"globals":{"version":"13.19.0","resolved":"https://registry.npmjs.org/globals/-/globals-13.19.0.tgz","integrity":"sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==","dev":true,"requires":{"type-fest":"^0.20.2"}},"grapheme-splitter":{"version":"1.0.4","resolved":"https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz","integrity":"sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==","dev":true},"has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==","dev":true},"ignore":{"version":"5.2.4","resolved":"https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz","integrity":"sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==","dev":true},"import-fresh":{"version":"3.3.0","resolved":"https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz","integrity":"sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==","dev":true,"requires":{"parent-module":"^1.0.0","resolve-from":"^4.0.0"}},"imurmurhash":{"version":"0.1.4","resolved":"https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz","integrity":"sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==","dev":true},"inflight":{"version":"1.0.6","resolved":"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz","integrity":"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==","dev":true,"requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==","dev":true},"is-extglob":{"version":"2.1.1","resolved":"https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz","integrity":"sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==","dev":true},"is-glob":{"version":"4.0.3","resolved":"https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz","integrity":"sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==","dev":true,"requires":{"is-extglob":"^2.1.1"}},"is-path-inside":{"version":"3.0.3","resolved":"https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz","integrity":"sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==","dev":true},"isexe":{"version":"2.0.0","resolved":"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz","integrity":"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==","dev":true},"js-sdsl":{"version":"4.3.0","resolved":"https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz","integrity":"sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==","dev":true},"js-yaml":{"version":"4.1.0","resolved":"https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz","integrity":"sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==","dev":true,"requires":{"argparse":"^2.0.1"}},"json-schema-traverse":{"version":"0.4.1","resolved":"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz","integrity":"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==","dev":true},"json-stable-stringify-without-jsonify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz","integrity":"sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==","dev":true},"levn":{"version":"0.4.1","resolved":"https://registry.npmjs.org/levn/-/levn-0.4.1.tgz","integrity":"sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==","dev":true,"requires":{"prelude-ls":"^1.2.1","type-check":"~0.4.0"}},"locate-path":{"version":"6.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz","integrity":"sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==","dev":true,"requires":{"p-locate":"^5.0.0"}},"lodash.merge":{"version":"4.6.2","resolved":"https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz","integrity":"sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==","dev":true},"minimatch":{"version":"3.1.2","resolved":"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz","integrity":"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==","dev":true,"requires":{"brace-expansion":"^1.1.7"}},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==","dev":true},"natural-compare":{"version":"1.4.0","resolved":"https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz","integrity":"sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==","dev":true},"once":{"version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==","dev":true,"requires":{"wrappy":"1"}},"optionator":{"version":"0.9.1","resolved":"https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz","integrity":"sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==","dev":true,"requires":{"deep-is":"^0.1.3","fast-levenshtein":"^2.0.6","levn":"^0.4.1","prelude-ls":"^1.2.1","type-check":"^0.4.0","word-wrap":"^1.2.3"}},"p-limit":{"version":"3.1.0","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz","integrity":"sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==","dev":true,"requires":{"yocto-queue":"^0.1.0"}},"p-locate":{"version":"5.0.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz","integrity":"sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==","dev":true,"requires":{"p-limit":"^3.0.2"}},"parent-module":{"version":"1.0.1","resolved":"https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz","integrity":"sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==","dev":true,"requires":{"callsites":"^3.0.0"}},"path-exists":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz","integrity":"sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==","dev":true},"path-is-absolute":{"version":"1.0.1","resolved":"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz","integrity":"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==","dev":true},"path-key":{"version":"3.1.1","resolved":"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz","integrity":"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==","dev":true},"prelude-ls":{"version":"1.2.1","resolved":"https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz","integrity":"sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==","dev":true},"prettier":{"version":"2.8.3","resolved":"https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz","integrity":"sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==","dev":true},"punycode":{"version":"2.3.0","resolved":"https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz","integrity":"sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==","dev":true},"queue-microtask":{"version":"1.2.3","resolved":"https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz","integrity":"sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==","dev":true},"regexpp":{"version":"3.2.0","resolved":"https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz","integrity":"sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==","dev":true},"resolve-from":{"version":"4.0.0","resolved":"https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz","integrity":"sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==","dev":true},"reusify":{"version":"1.0.4","resolved":"https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz","integrity":"sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==","dev":true},"rimraf":{"version":"3.0.2","resolved":"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz","integrity":"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==","dev":true,"requires":{"glob":"^7.1.3"}},"run-parallel":{"version":"1.2.0","resolved":"https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz","integrity":"sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==","dev":true,"requires":{"queue-microtask":"^1.2.2"}},"shebang-command":{"version":"2.0.0","resolved":"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz","integrity":"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==","dev":true,"requires":{"shebang-regex":"^3.0.0"}},"shebang-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz","integrity":"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==","dev":true},"strip-ansi":{"version":"6.0.1","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz","integrity":"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==","dev":true,"requires":{"ansi-regex":"^5.0.1"}},"strip-json-comments":{"version":"3.1.1","resolved":"https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz","integrity":"sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==","dev":true},"supports-color":{"version":"7.2.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz","integrity":"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==","dev":true,"requires":{"has-flag":"^4.0.0"}},"text-table":{"version":"0.2.0","resolved":"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz","integrity":"sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==","dev":true},"type-check":{"version":"0.4.0","resolved":"https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz","integrity":"sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==","dev":true,"requires":{"prelude-ls":"^1.2.1"}},"type-fest":{"version":"0.20.2","resolved":"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz","integrity":"sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==","dev":true},"uri-js":{"version":"4.4.1","resolved":"https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz","integrity":"sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==","dev":true,"requires":{"punycode":"^2.1.0"}},"which":{"version":"2.0.2","resolved":"https://registry.npmjs.org/which/-/which-2.0.2.tgz","integrity":"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==","dev":true,"requires":{"isexe":"^2.0.0"}},"word-wrap":{"version":"1.2.3","resolved":"https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz","integrity":"sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==","dev":true},"wrappy":{"version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==","dev":true},"yocto-queue":{"version":"0.1.0","resolved":"https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz","integrity":"sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==","dev":true}}} \ No newline at end of file +{"name":"inter","version":"2.1.5","lockfileVersion":1,"requires":true,"dependencies":{"@eslint/eslintrc":{"version":"1.4.1","resolved":"https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz","integrity":"sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==","dev":true,"requires":{"ajv":"^6.12.4","debug":"^4.3.2","espree":"^9.4.0","globals":"^13.19.0","ignore":"^5.2.0","import-fresh":"^3.2.1","js-yaml":"^4.1.0","minimatch":"^3.1.2","strip-json-comments":"^3.1.1"}},"@humanwhocodes/config-array":{"version":"0.11.8","resolved":"https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz","integrity":"sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==","dev":true,"requires":{"@humanwhocodes/object-schema":"^1.2.1","debug":"^4.1.1","minimatch":"^3.0.5"}},"@humanwhocodes/module-importer":{"version":"1.0.1","resolved":"https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz","integrity":"sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==","dev":true},"@humanwhocodes/object-schema":{"version":"1.2.1","resolved":"https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz","integrity":"sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==","dev":true},"@nodelib/fs.scandir":{"version":"2.1.5","resolved":"https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz","integrity":"sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==","dev":true,"requires":{"@nodelib/fs.stat":"2.0.5","run-parallel":"^1.1.9"}},"@nodelib/fs.stat":{"version":"2.0.5","resolved":"https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz","integrity":"sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==","dev":true},"@nodelib/fs.walk":{"version":"1.2.8","resolved":"https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz","integrity":"sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==","dev":true,"requires":{"@nodelib/fs.scandir":"2.1.5","fastq":"^1.6.0"}},"acorn":{"version":"8.8.1","resolved":"https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz","integrity":"sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==","dev":true},"acorn-jsx":{"version":"5.3.2","resolved":"https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz","integrity":"sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==","dev":true},"ajv":{"version":"6.12.6","resolved":"https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz","integrity":"sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==","dev":true,"requires":{"fast-deep-equal":"^3.1.1","fast-json-stable-stringify":"^2.0.0","json-schema-traverse":"^0.4.1","uri-js":"^4.2.2"}},"ansi-regex":{"version":"5.0.1","resolved":"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz","integrity":"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==","dev":true},"ansi-styles":{"version":"4.3.0","resolved":"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz","integrity":"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==","dev":true,"requires":{"color-convert":"^2.0.1"}},"argparse":{"version":"2.0.1","resolved":"https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz","integrity":"sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==","dev":true},"balanced-match":{"version":"1.0.2","resolved":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz","integrity":"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==","dev":true},"brace-expansion":{"version":"1.1.11","resolved":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz","integrity":"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==","dev":true,"requires":{"balanced-match":"^1.0.0","concat-map":"0.0.1"}},"callsites":{"version":"3.1.0","resolved":"https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz","integrity":"sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==","dev":true},"chalk":{"version":"4.1.2","resolved":"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz","integrity":"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==","dev":true,"requires":{"ansi-styles":"^4.1.0","supports-color":"^7.1.0"}},"color-convert":{"version":"2.0.1","resolved":"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz","integrity":"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==","dev":true,"requires":{"color-name":"~1.1.4"}},"color-name":{"version":"1.1.4","resolved":"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz","integrity":"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==","dev":true},"concat-map":{"version":"0.0.1","resolved":"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz","integrity":"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==","dev":true},"cross-spawn":{"version":"7.0.3","resolved":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz","integrity":"sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==","dev":true,"requires":{"path-key":"^3.1.0","shebang-command":"^2.0.0","which":"^2.0.1"}},"debug":{"version":"4.3.4","resolved":"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz","integrity":"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==","dev":true,"requires":{"ms":"2.1.2"}},"deep-is":{"version":"0.1.4","resolved":"https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz","integrity":"sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==","dev":true},"doctrine":{"version":"3.0.0","resolved":"https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz","integrity":"sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==","dev":true,"requires":{"esutils":"^2.0.2"}},"escape-string-regexp":{"version":"4.0.0","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz","integrity":"sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==","dev":true},"eslint":{"version":"8.32.0","resolved":"https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz","integrity":"sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==","dev":true,"requires":{"@eslint/eslintrc":"^1.4.1","@humanwhocodes/config-array":"^0.11.8","@humanwhocodes/module-importer":"^1.0.1","@nodelib/fs.walk":"^1.2.8","ajv":"^6.10.0","chalk":"^4.0.0","cross-spawn":"^7.0.2","debug":"^4.3.2","doctrine":"^3.0.0","escape-string-regexp":"^4.0.0","eslint-scope":"^7.1.1","eslint-utils":"^3.0.0","eslint-visitor-keys":"^3.3.0","espree":"^9.4.0","esquery":"^1.4.0","esutils":"^2.0.2","fast-deep-equal":"^3.1.3","file-entry-cache":"^6.0.1","find-up":"^5.0.0","glob-parent":"^6.0.2","globals":"^13.19.0","grapheme-splitter":"^1.0.4","ignore":"^5.2.0","import-fresh":"^3.0.0","imurmurhash":"^0.1.4","is-glob":"^4.0.0","is-path-inside":"^3.0.3","js-sdsl":"^4.1.4","js-yaml":"^4.1.0","json-stable-stringify-without-jsonify":"^1.0.1","levn":"^0.4.1","lodash.merge":"^4.6.2","minimatch":"^3.1.2","natural-compare":"^1.4.0","optionator":"^0.9.1","regexpp":"^3.2.0","strip-ansi":"^6.0.1","strip-json-comments":"^3.1.0","text-table":"^0.2.0"}},"eslint-scope":{"version":"7.1.1","resolved":"https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz","integrity":"sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==","dev":true,"requires":{"esrecurse":"^4.3.0","estraverse":"^5.2.0"}},"eslint-utils":{"version":"3.0.0","resolved":"https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz","integrity":"sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==","dev":true,"requires":{"eslint-visitor-keys":"^2.0.0"},"dependencies":{"eslint-visitor-keys":{"version":"2.1.0","resolved":"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz","integrity":"sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==","dev":true}}},"eslint-visitor-keys":{"version":"3.3.0","resolved":"https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz","integrity":"sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==","dev":true},"espree":{"version":"9.4.1","resolved":"https://registry.npmjs.org/espree/-/espree-9.4.1.tgz","integrity":"sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==","dev":true,"requires":{"acorn":"^8.8.0","acorn-jsx":"^5.3.2","eslint-visitor-keys":"^3.3.0"}},"esquery":{"version":"1.4.0","resolved":"https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz","integrity":"sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==","dev":true,"requires":{"estraverse":"^5.1.0"}},"esrecurse":{"version":"4.3.0","resolved":"https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz","integrity":"sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==","dev":true,"requires":{"estraverse":"^5.2.0"}},"estraverse":{"version":"5.3.0","resolved":"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz","integrity":"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==","dev":true},"esutils":{"version":"2.0.3","resolved":"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz","integrity":"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==","dev":true},"fast-deep-equal":{"version":"3.1.3","resolved":"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz","integrity":"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==","dev":true},"fast-json-stable-stringify":{"version":"2.1.0","resolved":"https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz","integrity":"sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==","dev":true},"fast-levenshtein":{"version":"2.0.6","resolved":"https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz","integrity":"sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==","dev":true},"fastq":{"version":"1.15.0","resolved":"https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz","integrity":"sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==","dev":true,"requires":{"reusify":"^1.0.4"}},"file-entry-cache":{"version":"6.0.1","resolved":"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz","integrity":"sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==","dev":true,"requires":{"flat-cache":"^3.0.4"}},"find-up":{"version":"5.0.0","resolved":"https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz","integrity":"sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==","dev":true,"requires":{"locate-path":"^6.0.0","path-exists":"^4.0.0"}},"flat-cache":{"version":"3.0.4","resolved":"https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz","integrity":"sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==","dev":true,"requires":{"flatted":"^3.1.0","rimraf":"^3.0.2"}},"flatted":{"version":"3.2.7","resolved":"https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz","integrity":"sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==","dev":true},"fs.realpath":{"version":"1.0.0","resolved":"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz","integrity":"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==","dev":true},"glob":{"version":"7.2.3","resolved":"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz","integrity":"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==","dev":true,"requires":{"fs.realpath":"^1.0.0","inflight":"^1.0.4","inherits":"2","minimatch":"^3.1.1","once":"^1.3.0","path-is-absolute":"^1.0.0"}},"glob-parent":{"version":"6.0.2","resolved":"https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz","integrity":"sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==","dev":true,"requires":{"is-glob":"^4.0.3"}},"globals":{"version":"13.19.0","resolved":"https://registry.npmjs.org/globals/-/globals-13.19.0.tgz","integrity":"sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==","dev":true,"requires":{"type-fest":"^0.20.2"}},"grapheme-splitter":{"version":"1.0.4","resolved":"https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz","integrity":"sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==","dev":true},"has-flag":{"version":"4.0.0","resolved":"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz","integrity":"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==","dev":true},"ignore":{"version":"5.2.4","resolved":"https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz","integrity":"sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==","dev":true},"import-fresh":{"version":"3.3.0","resolved":"https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz","integrity":"sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==","dev":true,"requires":{"parent-module":"^1.0.0","resolve-from":"^4.0.0"}},"imurmurhash":{"version":"0.1.4","resolved":"https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz","integrity":"sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==","dev":true},"inflight":{"version":"1.0.6","resolved":"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz","integrity":"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==","dev":true,"requires":{"once":"^1.3.0","wrappy":"1"}},"inherits":{"version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==","dev":true},"is-extglob":{"version":"2.1.1","resolved":"https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz","integrity":"sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==","dev":true},"is-glob":{"version":"4.0.3","resolved":"https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz","integrity":"sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==","dev":true,"requires":{"is-extglob":"^2.1.1"}},"is-path-inside":{"version":"3.0.3","resolved":"https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz","integrity":"sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==","dev":true},"isexe":{"version":"2.0.0","resolved":"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz","integrity":"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==","dev":true},"js-sdsl":{"version":"4.3.0","resolved":"https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz","integrity":"sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==","dev":true},"js-yaml":{"version":"4.1.0","resolved":"https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz","integrity":"sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==","dev":true,"requires":{"argparse":"^2.0.1"}},"json-schema-traverse":{"version":"0.4.1","resolved":"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz","integrity":"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==","dev":true},"json-stable-stringify-without-jsonify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz","integrity":"sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==","dev":true},"levn":{"version":"0.4.1","resolved":"https://registry.npmjs.org/levn/-/levn-0.4.1.tgz","integrity":"sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==","dev":true,"requires":{"prelude-ls":"^1.2.1","type-check":"~0.4.0"}},"locate-path":{"version":"6.0.0","resolved":"https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz","integrity":"sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==","dev":true,"requires":{"p-locate":"^5.0.0"}},"lodash.merge":{"version":"4.6.2","resolved":"https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz","integrity":"sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==","dev":true},"minimatch":{"version":"3.1.2","resolved":"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz","integrity":"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==","dev":true,"requires":{"brace-expansion":"^1.1.7"}},"ms":{"version":"2.1.2","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz","integrity":"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==","dev":true},"natural-compare":{"version":"1.4.0","resolved":"https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz","integrity":"sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==","dev":true},"once":{"version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==","dev":true,"requires":{"wrappy":"1"}},"optionator":{"version":"0.9.1","resolved":"https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz","integrity":"sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==","dev":true,"requires":{"deep-is":"^0.1.3","fast-levenshtein":"^2.0.6","levn":"^0.4.1","prelude-ls":"^1.2.1","type-check":"^0.4.0","word-wrap":"^1.2.3"}},"p-limit":{"version":"3.1.0","resolved":"https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz","integrity":"sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==","dev":true,"requires":{"yocto-queue":"^0.1.0"}},"p-locate":{"version":"5.0.0","resolved":"https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz","integrity":"sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==","dev":true,"requires":{"p-limit":"^3.0.2"}},"parent-module":{"version":"1.0.1","resolved":"https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz","integrity":"sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==","dev":true,"requires":{"callsites":"^3.0.0"}},"path-exists":{"version":"4.0.0","resolved":"https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz","integrity":"sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==","dev":true},"path-is-absolute":{"version":"1.0.1","resolved":"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz","integrity":"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==","dev":true},"path-key":{"version":"3.1.1","resolved":"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz","integrity":"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==","dev":true},"prelude-ls":{"version":"1.2.1","resolved":"https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz","integrity":"sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==","dev":true},"prettier":{"version":"2.8.3","resolved":"https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz","integrity":"sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==","dev":true},"punycode":{"version":"2.3.0","resolved":"https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz","integrity":"sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==","dev":true},"queue-microtask":{"version":"1.2.3","resolved":"https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz","integrity":"sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==","dev":true},"regexpp":{"version":"3.2.0","resolved":"https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz","integrity":"sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==","dev":true},"resolve-from":{"version":"4.0.0","resolved":"https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz","integrity":"sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==","dev":true},"reusify":{"version":"1.0.4","resolved":"https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz","integrity":"sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==","dev":true},"rimraf":{"version":"3.0.2","resolved":"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz","integrity":"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==","dev":true,"requires":{"glob":"^7.1.3"}},"run-parallel":{"version":"1.2.0","resolved":"https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz","integrity":"sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==","dev":true,"requires":{"queue-microtask":"^1.2.2"}},"shebang-command":{"version":"2.0.0","resolved":"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz","integrity":"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==","dev":true,"requires":{"shebang-regex":"^3.0.0"}},"shebang-regex":{"version":"3.0.0","resolved":"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz","integrity":"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==","dev":true},"strip-ansi":{"version":"6.0.1","resolved":"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz","integrity":"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==","dev":true,"requires":{"ansi-regex":"^5.0.1"}},"strip-json-comments":{"version":"3.1.1","resolved":"https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz","integrity":"sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==","dev":true},"supports-color":{"version":"7.2.0","resolved":"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz","integrity":"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==","dev":true,"requires":{"has-flag":"^4.0.0"}},"text-table":{"version":"0.2.0","resolved":"https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz","integrity":"sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==","dev":true},"type-check":{"version":"0.4.0","resolved":"https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz","integrity":"sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==","dev":true,"requires":{"prelude-ls":"^1.2.1"}},"type-fest":{"version":"0.20.2","resolved":"https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz","integrity":"sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==","dev":true},"uri-js":{"version":"4.4.1","resolved":"https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz","integrity":"sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==","dev":true,"requires":{"punycode":"^2.1.0"}},"which":{"version":"2.0.2","resolved":"https://registry.npmjs.org/which/-/which-2.0.2.tgz","integrity":"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==","dev":true,"requires":{"isexe":"^2.0.0"}},"word-wrap":{"version":"1.2.3","resolved":"https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz","integrity":"sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==","dev":true},"wrappy":{"version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==","dev":true},"yocto-queue":{"version":"0.1.0","resolved":"https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz","integrity":"sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==","dev":true}}} \ No newline at end of file diff --git a/package.json b/package.json index 0d7ce4b..2e7780d 100644 --- a/package.json +++ b/package.json @@ -1 +1 @@ -{"name":"inter","version":"2.1.4","description":"The javascript framework to build highly interactive front-end web applications.","author":"Denis Power","license":"MIT","jsdelivr":"inter.min.js","repository":{"type":"git","url":"git+https://github.com/interjs/inter.git"},"homepage":"https://interjs.github.io","bugs":{"url":"https://github.com/interjs/inter/issues"},"main":"inter.js","keywords":["interjs","inter"],"devDependencies":{"eslint":"^8.32.0","prettier":"^2.8.3"}} \ No newline at end of file +{"name":"inter","version":"2.1.5","description":"The javascript framework to build highly interactive front-end web applications.","author":"Denis Power","license":"MIT","jsdelivr":"inter.min.js","repository":{"type":"git","url":"git+https://github.com/interjs/inter.git"},"homepage":"https://interjs.github.io","bugs":{"url":"https://github.com/interjs/inter/issues"},"main":"inter.js","keywords":["interjs","inter"],"devDependencies":{"eslint":"^8.32.0","prettier":"^2.8.3"}} \ No newline at end of file