UNPKG

@keload/node-red-contrib-ultimate-toolkit

Version:
10 lines (9 loc) 22.8 kB
var z=Object.defineProperty;var Nr=Object.getOwnPropertyDescriptor;var Sr=Object.getOwnPropertyNames;var Dr=Object.prototype.hasOwnProperty;var Cr=(t,r)=>{for(var e in r)z(t,e,{get:r[e],enumerable:!0})},Er=(t,r,e,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Sr(r))!Dr.call(t,n)&&n!==e&&z(t,n,{get:()=>r[n],enumerable:!(o=Nr(r,n))||o.enumerable});return t};var Tr=t=>Er(z({},"__esModule",{value:!0}),t);var Kr={};Cr(Kr,{default:()=>qr});module.exports=Tr(Kr);function Wt(t,r){return typeof t=="boolean"?t?[r,null]:[null,r]:(console.warn("Payload must be a boolean (true or false)."),[null,null])}function Zt(t){return new Promise(r=>{try{RED.util.evaluateNodeProperty(t.value,t.type,t.node,t.msg,(e,o)=>{r([e,o])})}catch(e){r([e,void 0])}})}function L(t,r){let e={};for(let o=0;o<t.length;o++){let n=t[o],i=r(n);Object.hasOwn(e,i)||(e[i]=[]),e[i].push(n)}return e}function V(t,r){let e={};for(let o=0;o<t.length;o++){let n=t[o],i=r(n);e[i]=n}return e}function q(t){let r=t.slice();for(let e=r.length-1;e>=1;e--){let o=Math.floor(Math.random()*(e+1));[r[e],r[o]]=[r[o],r[e]]}return r}function zt(t){return typeof t=="symbol"||t instanceof Symbol}function d(t){return zt(t)?NaN:Number(t)}function Lt(t){return t?(t=d(t),t===1/0||t===-1/0?(t<0?-1:1)*Number.MAX_VALUE:t===t?t:0):t===0?t:0}function S(t){let r=Lt(t),e=r%1;return e?r-e:r}function K(t,r,e){return r=e||r===void 0?1:S(r),t.slice(0,r)}function J(t,r,e){return r=e||r===void 0?1:S(r),r<=0||t.length===0?[]:t.slice(-r)}var B=class extends Error{constructor(r="The operation was aborted"){super(r),this.name="AbortError"}};function X(t,{signal:r}={}){return new Promise((e,o)=>{let n=()=>{o(new B)},i=()=>{clearTimeout(m),n()};if(r!=null&&r.aborted)return n();let m=setTimeout(()=>{r==null||r.removeEventListener("abort",i),e()},t);r==null||r.addEventListener("abort",i,{once:!0})})}function Vt(t,r,e){return e==null?Math.min(t,r):Math.min(Math.max(t,r),e)}function F(t){let r=0;for(let e=0;e<t.length;e++)r+=t[e];return r}function G(t){if(t.length===0)return NaN;let r=t.slice().sort((o,n)=>o-n),e=Math.floor(r.length/2);return r.length%2===0?(r[e-1]+r[e])/2:r[e]}function Q(t){if(!t||typeof t!="object")return!1;let r=Object.getPrototypeOf(t);return r===null||r===Object.prototype||Object.getPrototypeOf(r)===null?Object.prototype.toString.call(t)==="[object Object]":!1}function k(t){return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}var Pr=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function h(t){var r;return Array.from((r=t.match(Pr))!=null?r:[])}function tt(t){let r=h(t);if(r.length===0)return"";let[e,...o]=r;return`${e.toLowerCase()}${o.map(n=>k(n)).join("")}`}function rt(t){return h(t).map(e=>e.toLowerCase()).join("_")}function et(t){return typeof Buffer!="undefined"&&Buffer.isBuffer(t)}function ot(t,r){return t===r||Number.isNaN(t)&&Number.isNaN(r)}function qt(t){return t==null}function nt(t){return h(t).map(e=>e.toUpperCase()).join("_")}var vr={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function it(t){return t.replace(/[&<>"']/g,r=>vr[r])}function st(t){return h(t).map(e=>e.toLowerCase()).join("-")}function ft(t){return h(t).map(e=>e.toLowerCase()).join(" ")}function mt(t){return t.substring(0,1).toLowerCase()+t.substring(1)}function at(t){return h(t).map(e=>k(e)).join("")}function pt(t){let r=h(t.trim()),e="";for(let o=0;o<r.length;o++){let n=r[o];e&&(e+=" "),e+=n[0].toUpperCase()+n.slice(1).toLowerCase()}return e}function D(t,r){if(r===void 0)return t.trimEnd();let e=t.length;switch(typeof r){case"string":{if(r.length!==1)throw new Error("The 'chars' parameter should be a single character string.");for(;e>0&&t[e-1]===r;)e--;break}case"object":for(;e>0&&r.includes(t[e-1]);)e--}return t.substring(0,e)}function C(t,r){if(r===void 0)return t.trimStart();let e=0;switch(typeof r){case"string":{for(;e<t.length&&t[e]===r;)e++;break}case"object":for(;e<t.length&&r.includes(t[e]);)e++}return t.substring(e)}function ut(t,r){return r===void 0?t.trim():C(D(t,r),r)}var Ir={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"};function ct(t){return t.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g,r=>Ir[r]||"'")}function lt(t){let r=h(t),e="";for(let o=0;o<r.length;o++)e+=r[o].toUpperCase(),o<r.length-1&&(e+=" ");return e}function dt(t){return t.substring(0,1).toUpperCase()+t.substring(1)}async function xt(t){try{return[null,await t()]}catch(r){return[r,null]}}var Kt=Array.isArray,Jt=t=>!!t&&t.constructor===Object;var gt=(t,r,e="asc")=>{if(!t)return[];let o=(i,m)=>`${r(i)}`.localeCompare(r(m)),n=(i,m)=>`${r(m)}`.localeCompare(r(i));return t.slice().sort(e==="desc"?n:o)};var ht=(t,r)=>{let e=t.reduce((o,n)=>{let i=r?r(n):n;return o[i]||(o[i]=n),o},{});return Object.values(e)};var yt=(t,r,e,o)=>{var u;if(!t&&!r)return[];if(!t)return[r];if(!r)return[...t];let n=e?(a,c)=>e(a,c)===e(r,c):a=>a===r;return t.find(n)?t.filter((a,c)=>!n(a,c)):((u=o==null?void 0:o.strategy)!=null?u:"append")==="append"?[...t,r]:[r,...t]};var wt=t=>{if(!t)return[];let r=(e,o)=>Jt(e)?Object.entries(e).flatMap(([n,i])=>r(i,[...o,n])):Kt(e)?e.flatMap((n,i)=>r(n,[...o,`${i}`])):[o.join(".")];return r(t,[])};var bt=(t,r)=>Math.floor(Math.random()*(r-t+1)+t);function Xt(t,r,e=!0,o=["nodeId"]){return t.map(n=>Object.fromEntries(Object.entries(n).filter(([i])=>i.startsWith(r)||o.includes(i)).map(([i,m])=>[e?i.replace(r,""):i,m])))[0]}function Mt(t){return t!=null?t:""}function $(t){return` \u{1F4D6} <a href="https://radash-docs.vercel.app/docs/${t}" target="_blank">View documentation on <span class="font-bold">Radash</span> <i class="fa fa-external-link"></a></i> `}function N(t){return` \u{1F4D6} <a href="https://es-toolkit.slash.page/reference/${t}.html" target="_blank">View documentation on <span class="font-bold">ES Toolkit</span> <i class="fa fa-external-link"></a></i> `}var kt={array_utilities:{toggle:{docs:$("array/toggle")},shuffle:{docs:N("array/shuffle")},groupBy:{mainValue:{label:"Property"},docs:N("array/groupBy")},keyBy:{mainValue:{label:"Property"},docs:N("array/keyBy")},unique:{mainValue:{label:"Property"},docs:$("array/unique")},take:{mainValue:{label:"Count"},docs:N("array/take")},takeRight:{mainValue:{label:"Count"},docs:N("array/takeRight")},getRandomItem:{docs:"Get a random item from input array"}},date_utilities:{now:{description:"Returns the current date with lot of formatting options",docs:"If token is provided, <code>Format</code> will not be used",revealClasses:["dateUtilities_now"],configArgs:"dateUtilities"},format:{description:"Return formatted date from a date",docs:"If token is provided, <code>Format</code> will not be used",revealClasses:["dateUtilities_now"],configArgs:"dateUtilities"},timeRange:{description:"Routes messages depending on the time",docs:"Time range checker that validates if current time is<br>between given start and end times (HH:mm format).",revealClasses:["dateUtilities_timeRange"],configArgs:"dateUtilities",forceSplitBooleanOutputs:!0},currentTimezone:{description:"Returns the current timezone"}},string_utilities:{camelCase:{},capitalize:{},constantCase:{},escape:{},kebabCase:{},lowerCase:{},lowerFirst:{},pascalCase:{},snakeCase:{},startCase:{},trim:{},trimEnd:{},trimStart:{},unescape:{},upperCase:{},upperFirst:{},words:{}},utility_functions:{toNumber:{},toNumberNonStrict:{label:"toNumber (non-strict)",docs:"If the value is not a number, it will return the original value"},toString:{},toSafeInteger:{},toBoolean:{},toBooleanNumber:{},gt:{mainValue:{},canSplitBooleanOutputs:!0,inverseReturnValue:!0},gte:{mainValue:{},canSplitBooleanOutputs:!0,inverseReturnValue:!0},lt:{mainValue:{},canSplitBooleanOutputs:!0,inverseReturnValue:!0},lte:{mainValue:{},canSplitBooleanOutputs:!0,inverseReturnValue:!0},eq:{mainValue:{},canSplitBooleanOutputs:!0,inverseReturnValue:!0},size:{docs:"Returns the size of an array, string, or object."}},predicates:{isBoolean:{canSplitBooleanOutputs:!0,inverseReturnValue:!0},isNaN:{label:"Is NaN",canSplitBooleanOutputs:!0,inverseReturnValue:!0},isNil:{canSplitBooleanOutputs:!0,inverseReturnValue:!0},isNull:{canSplitBooleanOutputs:!0,inverseReturnValue:!0},isNumber:{canSplitBooleanOutputs:!0,inverseReturnValue:!0},isString:{canSplitBooleanOutputs:!0,inverseReturnValue:!0},isUndefined:{canSplitBooleanOutputs:!0,inverseReturnValue:!0},isIp:{canSplitBooleanOutputs:!0,inverseReturnValue:!0},isUrl:{canSplitBooleanOutputs:!0,inverseReturnValue:!0},isBuffer:{canSplitBooleanOutputs:!0,inverseReturnValue:!0}},object_utilities:{getKeys:{docs:$("object/keys")}},network_utilities:{ipInformation:{description:"Fetches detailed information about an IP address",docs:"By default is your current IP address"},ipVersion:{description:"Returns IP version (4, 6, or 0 if invalid) for a given IP address string"},networkInterfaces:{description:"Lists all network interfaces of the current machine (ethernet, wifi, etc.)"}},math_utilities:{abs:{},acos:{},asin:{},atan:{},ceil:{},cos:{},exp:{},floor:{},log:{},max:{},mean:{},min:{},median:{},random:{},round:{},sin:{},sum:{docs:N("math/sum")},tan:{},trunc:{}},async_utilities:{delay:{description:"Delays the message by the specified amount of time",mainValue:{label:"Milliseconds"}}},tools:{cyclicCounter:{description:"A customizable cyclic counter node for Node-RED that iterates through a defined sequence of numbers and can reset after a set timeout. It allows flexible control over the counter's behavior, making it useful in a variety of automation scenarios.",revealClasses:["tools_cyclicCounter"],configArgs:"tools",addNodeIdToConfigArgs:!0}}};var $n=gt(Object.keys(kt),t=>t);function Gt(t,r){var n,i;let e=(i=(n=kt)==null?void 0:n[t])==null?void 0:i[r],o=` ${Mt(e==null?void 0:e.description)} <br><br> ${Mt(e==null?void 0:e.docs)} `.trim();return{...e,nodeDocs:o}}var Qt={toggle:yt,shuffle:q,groupBy:(t,r)=>{let e=r;return L(t,o=>o[e.trim()])},keyBy:(t,r)=>{let e=r;return V(t,o=>o[e.trim()])},unique:(t,r)=>{let e=r;return ht(t,o=>o[e.trim()])},take:(t,r)=>K(t,r),takeRight:(t,r)=>J(t,r),getRandomItem:t=>{if(!t.length)return null;let r=t.length-1;return t[bt(0,r)]}};var tr={delay:(t,r)=>X(r)};var Nt=/^([0-9]{4})-([0-1][0-9])(?:-([0-3][0-9]))?(?:[T ]?([0-2][0-9])(?::([0-5][0-9]))?(?::([0-5][0-9]))?)?(?:\.[0-9]+)?(Z|(?:\+|\-)[0-9]{2}:?[0-9]{2})?$/;function St(t){let r=t.match(Nt);if(r){let e=Number(r[2]);if(e<1||e>12)return!1;if(typeof r[3]!==void 0){let o=Number(r[3]);if(o<1||o>31)return!1}if(typeof r[4]!==void 0){let o=Number(r[4]);if(o<0||o>23)return!1}return!0}return!1}function Rr(t){let r=t.match(Nt);return r&&typeof r[4]=="undefined"?t+="T00:00:00":t}function f(t){if(t||(t=new Date),t instanceof Date){let r=new Date(t);return r.setMilliseconds(0),r}if(t=t.trim(),St(t))return new Date(Rr(t));throw new Error(`Non ISO 8601 compliant date (${t}).`)}var T="1999-03-04T02:05:01.000Z",A=new Map,Dt=[["YYYY",{year:"numeric"}],["YY",{year:"2-digit"}],["MMMM",{month:"long"}],["MMM",{month:"short"}],["MM",{month:"2-digit"}],["M",{month:"numeric"}],["DD",{day:"2-digit"}],["D",{day:"numeric"}],["dddd",{weekday:"long"}],["ddd",{weekday:"short"}],["d",{weekday:"narrow"}],["mm",{minute:"2-digit"}],["m",{minute:"numeric"}],["ss",{second:"2-digit"}],["s",{second:"numeric"}],["ZZ",{timeZoneName:"long"}],["Z",{timeZoneName:"short"}]],Ct=[["HH",{hour:"2-digit"}],["H",{hour:"numeric"}]],Et=[["hh",{hour:"2-digit"}],["h",{hour:"numeric"}],["a",{dayPeriod:"narrow"}],["A",{dayPeriod:"narrow"}]];function Tt(t){if(/^[+-]\d{2}:\d{2}/.test(t))return 6;if(/^[+-]\d{4}/.test(t))return 5;throw new Error("Invalid offset format")}var Fr=["MMMM","MMM","dddd","ddd"],l=new Map([...Dt,...Ct,...Et].map(t=>[t[0],t])),Pt=new Map,vt=["full","long","medium","short"];function w(t){return t.type==="literal"&&(t.value=t.value.normalize("NFKC")),t}function rr(t,r,e,o=!1,n=null){let i=$r(t,r,e,o),m=f(t);function u({partName:a,partValue:c,token:s}){if(a==="literal")return c;let p=i[a];if(a==="hour"&&s==="H")return p.replace(/^0/,"")||"0";if(["mm","ss","MM"].includes(s)&&p.length===1)return`0${p}`;if(a==="dayPeriod"){let g=P(m.getUTCHours()<12?"am":"pm",e);return s==="A"?g.toUpperCase():g.toLowerCase()}return a==="timeZoneName"?n!=null?n:It(-1*m.getTimezoneOffset(),s):p}return r.map(a=>({...a,value:u(a)}))}function $r(t,r,e,o=!1){let n=f(t),i=r.filter(s=>s.hour12),m=r.filter(s=>!s.hour12),u=[],a=[];function c(s,p=!1){let g=`${e}-u-hc-${p?"h12":"h23"}`;if(u.push(...new Intl.DateTimeFormat(g,s.reduce((x,y)=>y.partName==="literal"?x:(o&&Fr.includes(y.token)&&a.push(y),Object.assign(x,y.option)),{timeZone:"UTC"})).formatToParts(n).map(w)),o&&a.length)for(let x of a){let y=[];switch(x.token){case"MMMM":y=new Intl.DateTimeFormat(g,{dateStyle:"long",timeZone:"UTC"}).formatToParts(n).map(w);break;case"MMM":y=new Intl.DateTimeFormat(g,{dateStyle:"medium",timeZone:"UTC"}).formatToParts(n).map(w);break}let M=y.find(Z=>Z.type===x.partName),Ht=u.findIndex(Z=>Z.type===x.partName);M&&Ht>-1&&(u[Ht]=M)}}return i.length&&c(i,!0),m.length&&c(m),u.reduce((s,p)=>(s[p.type]=p.value,s),{})}function It(t,r="Z"){let e=String(Math.floor(Math.abs(t/60))).padStart(2,"0"),o=String(Math.abs(t%60)).padStart(2,"0"),n=t<0?"-":"+";return r==="ZZ"?`${n}${e}${o}`:`${n}${e}:${o}`}function er(t,r){or(t,r);let[e,o,n,i]=t.match(/([+-])([0-3][0-9]):?([0-6][0-9])/),m=Number(n)*60+Number(i);return o==="+"?m:-m}function or(t,r="Z"){if(!(o=>{switch(o){case"Z":return/^([+-])[0-3][0-9]:[0-6][0-9]$/.test(t);case"ZZ":return/^([+-])[0-3][0-9][0-6][0-9]$/.test(t)}})(r))throw new Error(`Invalid offset: ${t}`);return t}function nr(t){return typeof t=="string"?t.includes("ZZ")?"ZZ":"Z":"time"in t&&t.time==="full"?"Z":"ZZ"}function P(t,r){let e=Pt.get(r);if(e&&e[t])return e[t];let o=new Date(T);o.setUTCHours(t==="am"?5:20);let i=new Intl.DateTimeFormat(r,{timeStyle:"full",timeZone:"UTC",hour12:!0}).formatToParts(o).map(w).find(m=>m.type==="dayPeriod");if(i){let m=e||{};return Pt.set(r,Object.assign(m,{[t]:i.value})),i.value}return t}function j(t,r="+00:00"){let e=f(t),o=(()=>{switch(Tt(r)){case 5:return"ZZ";case 6:return"Z"}})(),n=er(r,o);return new Date(e.getTime()+n*1e3*60)}function Y(){return Intl.DateTimeFormat().resolvedOptions().timeZone}function ir(t,r){let e=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZone:r,hourCycle:"h23"}).formatToParts(t).map(w),o={};return e.forEach(n=>{o[n.type]=n.value}),new Date(`${o.year}-${o.month}-${o.day}T${o.hour}:${o.minute}:${o.second}Z`)}function v(t,r="UTC",e="device",o="Z"){var n;e=e==="device"?(n=Y())!=null?n:"utc":e;let i=f(t),m=ir(i,r),u=ir(i,e),a=Math.round((u.getTime()-m.getTime())/1e3/60);return It(a,o)}function I(t,r){if(vt.includes(t)||typeof t=="object")return Ar(t,r);let e=t,o=0,n=s=>{if(s[2]||(s[2]=new RegExp(`(.)?(${s[0]})`,"g")),s[2].test(e)){let p=0;return e=e.replace(s[2],(g,x,y)=>x==="\\"?y:`${typeof x=="string"?x:""}{!${p++?o:o++}!}`),!!p}return!1};function i(s){let p=s.map(x=>x.partName),g=new Set(p);if(p.length>g.size)throw new Error("Cannot reuse format tokens.");return s}function m(s,[p,g,x]){let y=Object.keys(g)[0],M=g[y];return{option:g,partName:y,partValue:M,token:p,pattern:x,hour12:s}}let u=Dt.filter(n).concat(Ct.filter(n)).map(m.bind(null,!1)),a=i(u.concat(Et.filter(n).map(m.bind(null,!0)))),c=/^\{!(\d+)!\}$/;return e.split(/(\{!\d+!\})/).map(s=>{let p=s.match(c);return p?a[Number(p[1])]:{option:{literal:s},partName:"literal",partValue:s,token:s,pattern:new RegExp(""),hour12:!1}}).filter(s=>!(s.partName==="literal"&&s.partValue===""))}function Ar(t,r){let e={timeZone:"UTC"};typeof t=="string"?e.dateStyle=t:("date"in t&&(e.dateStyle=t.date),"time"in t&&(e.timeStyle=t.time));let o=new Intl.DateTimeFormat(r,e),n=o.formatToParts(new Date(T)).map(w),m=o.formatToParts(new Date("1999-04-05T23:05:01.000Z")).map(w).find(a=>a.type==="hour"),u=m&&m.value==="23"?24:12;return n.map(a=>{let c=a.type,s=jr(a.type,a.value,r,a.type==="hour"?u:void 0,e);if(s===void 0)return;let p=s[1][c];if(p)return s[2]||(s[2]=new RegExp(`${s[0]}`,"g")),{option:{[c]:p},partName:c,partValue:p,token:s[0],pattern:s[2],hour12:u===12}}).filter(a=>!!a)}function jr(t,r,e,o,n){let i=r.length,m=!isNaN(Number(r)),u;switch(t){case"year":return i===2?l.get("YY"):l.get("YYYY");case"month":if(m)return i===1?l.get("M"):l.get("MM");switch(u=sr(e,t,r),u){case"long":return l.get("MMMM");default:return l.get("MMM")}case"day":return i===1?l.get("D"):l.get("DD");case"weekday":switch(u=sr(e,t,r),u){case"narrow":return l.get("d");case"short":return l.get("ddd");default:return l.get("dddd")}case"hour":return o===12?i===1?l.get("h"):l.get("hh"):i===1?l.get("H"):l.get("HH");case"minute":return i===1?l.get("m"):l.get("mm");case"second":return i===1?l.get("s"):l.get("ss");case"dayPeriod":return/^[A-Z]+$/u.test(r)?l.get("A"):l.get("a");case"literal":return[r,{literal:r},new RegExp("")];case"timeZoneName":return n.timeStyle==="full"?l.get("Z"):l.get("ZZ");default:return}}function sr(t,r,e){if(!A.has(t)){let n=new Date(T),i=[3,8,9,7,6,4,3],m=["weekday","month","dayPeriod"],u=["long","short","narrow"],a={};for(let c=0;c<12;c++){n.setMonth(0+c),c in i&&n.setDate(i[c]),n.setUTCHours(8+c);for(let s of u){let p=new Intl.DateTimeFormat(t,m.reduce((g,x)=>Object.assign(g,{[x]:s}),{hour12:!0,timeZone:"UTC"})).formatToParts(n).map(w);if(s==="long"||s==="short"){let x=new Intl.DateTimeFormat(t,{dateStyle:s==="short"?"medium":"long",timeZone:"UTC"}).formatToParts(n).map(w).find(M=>M.type==="month"),y=p.findIndex(M=>M.type==="month");y>-1&&x&&(p[y]=x)}p.forEach(g=>{if(g.type==="literal")return;let x=g.type;a[x]=Object.assign(a[x]||{},{[g.value]:s})})}}A.set(t,a)}let o=A.get(t);return o?o[r][e]:void 0}function Ot(t,r="+00:00"){let e=r.slice(0,1)==="+";return j(t,r.replace(e?"+":"-",e?"-":"+"))}function fr(){return Intl.DateTimeFormat().resolvedOptions().locale}function b(t,r="long",e="device",o=!1,n){let i,m;return typeof t=="object"&&!(t instanceof Date)&&({date:t,format:r,locale:e,genitive:o,partFilter:n,tz:i}=t),r==="ISO8601"?f(t).toISOString():(i&&(m=v(t,"utc",i,nr(r))),i!=null||(i=Y()),(i==null?void 0:i.toLowerCase())!=="utc"&&(t=Ot(t,v(t,i,"utc"))),(!e||e==="device")&&(e=fr()),rr(t,I(r,e).filter(n!=null?n:()=>!0),e,o,m).map(u=>u.value).join(""))}function Vr(){let t=Intl.DateTimeFormat().resolvedOptions().timeZone;return RED.settings.timezone||process.env.TZ||t}function mr(t,r){let e=f(t);return r!=null&&r.nowFormatToken.trim()?b(e,r.nowFormatToken.trim()):{timestamp:()=>Date.now(),full:()=>b(e,"full"),long:()=>b(e,"long"),medium:()=>b(e,"medium"),short:()=>b(e,"short"),iso8601:()=>e.toISOString(),utcString:()=>e.toUTCString()}[r.nowFormat]()}var ar={now:(t,r)=>mr(new Date,r),format:(t,r)=>{if(!t)throw new Error("payloadDate is required");return mr(t,r)},timeRange:(t,r)=>{let e=b(new Date,"HH:mm");if(!(r!=null&&r.rangeStartTime)||!(r!=null&&r.rangeEndTime))throw new Error("rangeStartTime and rangeEndTime are required");return(r==null?void 0:r.rangeStartTime)>(r==null?void 0:r.rangeEndTime)?e>=(r==null?void 0:r.rangeStartTime)||e<=(r==null?void 0:r.rangeEndTime):e>=(r==null?void 0:r.rangeStartTime)&&e<=(r==null?void 0:r.rangeEndTime)},currentTimezone:Vr};var pr={abs:Math.abs,acos:Math.acos,asin:Math.asin,atan:Math.atan,ceil:Math.ceil,cos:Math.cos,exp:Math.exp,floor:Math.floor,log:Math.log,max:t=>Math.max(...t),mean:t=>F(t)/t.length,median:G,min:t=>Math.min(...t),random:Math.random,round:Math.round,sin:Math.sin,sum:F,tan:Math.tan,trunc:Math.trunc};var Rt=require("node:net"),ur=require("node:os"),cr={ipInformation:async t=>{if(t!==void 0&&!(0,Rt.isIP)(t))throw new Error("Invalid IP address");return(await fetch(`http://ip-api.com/json/${t||""}`)).json()},ipVersion:Rt.isIP,networkInterfaces:ur.networkInterfaces};var lr={getKeys:wt};var dr=require("node:net"),xr=require("node:url");var Bt=t=>Number.isNaN(t),gr={isBoolean:t=>typeof t=="boolean",isBuffer:et,isNaN:Bt,isNil:t=>t==null,isNull:t=>t===null,isNumber:t=>typeof t=="number",isString:t=>typeof t=="string",isUndefined:t=>t===void 0,isIp:t=>!!(0,dr.isIP)(t),isUrl:t=>{try{return new xr.URL(t),!0}catch(r){return!1}}};var hr={camelCase:tt,capitalize:k,constantCase:nt,escape:it,kebabCase:st,lowerCase:ft,lowerFirst:mt,pascalCase:at,snakeCase:rt,startCase:pt,trim:ut,trimEnd:D,trimStart:C,unescape:ct,upperCase:lt,upperFirst:dt,words:h};var U=new Map,R=new Map,H={cyclicCounter:(t,...r)=>{let o=Xt(r,"cyclicCounter-"),n=Number(o.maxCount),i=o.nodeId,m=Number(o.resetDelay)||0,u=U.get(i)||1,a=u%n+1;if(U.set(i,a),R.has(i)&&clearTimeout(R.get(i)),m>0){let c=setTimeout(()=>{U.delete(i),R.delete(i)},m);R.set(i,c)}return u},clearCounter:()=>{R.clear(),U.clear()}};function W(t){if(t==null)return"";if(typeof t=="string")return t;if(Array.isArray(t))return t.map(W).join(",");let r=String(t);return r==="0"&&Object.is(Number(t),-0)?"-0":r}function yr(t,r,e){return Number.isNaN(r)&&(r=0),Number.isNaN(e)&&(e=0),Vt(t,r,e)}function Ft(t){return qt(t)?0:t instanceof Map||t instanceof Set?t.size:Object.keys(t).length}var $t=Number.MAX_SAFE_INTEGER;function At(t,r){return typeof t=="string"&&typeof r=="string"?t>r:d(t)>d(r)}function jt(t,r){return typeof t=="string"&&typeof r=="string"?t>=r:d(t)>=d(r)}function Yt(t,r){return typeof t=="string"&&typeof r=="string"?t<r:d(t)<d(r)}function _t(t,r){return typeof t=="string"&&typeof r=="string"?t<=r:d(t)<=d(r)}function Ut(t){return t==null?0:yr(S(t),-$t,$t)}var wr={toNumber:d,toNumberNonStrict:t=>Bt(d(t))?t:d(t),toString:W,toSafeInteger:Ut,toBoolean:t=>!!t,toBooleanNumber:t=>t?0:1,gt:(...t)=>{let[r,e]=t.map(d);return At(r,e)},gte:(...t)=>{let[r,e]=t.map(d);return jt(r,e)},lt:(...t)=>{let[r,e]=t.map(d);return Yt(r,e)},lte:(...t)=>{let[r,e]=t.map(d);return _t(r,e)},eq:ot,size:Ft};var br={array_utilities:Qt,async_utilities:tr,date_utilities:ar,math_utilities:pr,network_utilities:cr,object_utilities:lr,predicates:gr,string_utilities:hr,utility_functions:wr,tools:H};function Mr(t){RED.nodes.createNode(this,t),this.on("input",async r=>{let e=[],[,o]=await Zt({msg:r,type:t.entryType,node:this,value:t.entry});e.push(o);let n=Gt(t.category,t.function);if(n!=null&&n.mainValue&&e.push(t.mainValue),n!=null&&n.configArgs){let p=t[n==null?void 0:n.configArgs];Q(p)&&(n!=null&&n.addNodeIdToConfigArgs)&&(p.nodeId=this.id),e.push(p)}let i=br[t.category][t.function],[m,u]=await xt(async()=>await i(...e));if(m){this.error(m,r),this.status({fill:"red",shape:"ring",text:"Error"});return}this.status({});let a={nodeParams:{callWith:e,callFunction:t.function}},c=n!=null&&n.inverseReturnValue&&t.inverseReturnValue?!u:u,s={...r,payload:c,...a};if(n!=null&&n.canSplitBooleanOutputs&&t.splitBooleanOutputs||n!=null&&n.forceSplitBooleanOutputs){let p=Wt(!!c,s);this.send(p)}else this.send(s)}),this.on("close",()=>{H.clearCounter()})}var kr={};var qr=async t=>{global.RED=t,global.RED.nodes.registerType("main",Mr,{credentials:kr})};