UNPKG

node-red-contrib-home-assistant-websocket

Version:
2 lines (1 loc) 3.27 kB
"use strict";var s=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var p=(t,e)=>{for(var n in e)s(t,n,{get:e[n],enumerable:!0})},l=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of d(e))!g.call(t,o)&&o!==n&&s(t,o,{get:()=>e[o],enumerable:!(r=m(e,o))||r.enumerable});return t};var h=t=>l(s({},"__esModule",{value:!0}),t);var z={};p(z,{addEventListeners:()=>y,checkValidServerConfig:()=>C,containsMustache:()=>D,getEntitiesFromJsonata:()=>_,getTimeInMilliseconds:()=>a,getWaitStatusText:()=>w,isNodeRedEnvVar:()=>$,isValidDate:()=>N,parseTime:()=>A,parseValueToBoolean:()=>v,removeEventListeners:()=>L,shouldInclude:()=>E,shouldIncludeEvent:()=>b,toCamelCase:()=>x,validEntityId:()=>c});module.exports=h(z);var i=require("../globals");function E(t,e,n){if(!t||!e&&!n)return!0;let r=!e,o=!1;return e&&e.test(t)&&(r=!0),n&&n.test(t)&&(o=!0),r&&!o}function b(t,e,n){if(!e)return!0;if(typeof e=="string"){if(n==="substring")return t.includes(e);if(n==="regex")return new RegExp(e).test(t)}return Array.isArray(e)?e.includes(t):t===e}function x(t){const e=/[A-Z][a-z]+|[A-Z]+(?=[A-Z][a-z])|[A-Z]+|[a-z]+|[0-9]+/g,n=r=>r.charAt(0).toUpperCase()+r.slice(1);return(t.match(e)??[]).map((r,o)=>o===0?r.toLocaleLowerCase():n(r.toLowerCase())).join("")}function w(t,e){const n=a(t,e);switch(e){case"milliseconds":return`waiting for ${t} milliseconds`;case"hours":case"days":return`waiting until ${u(n)}`;case"minutes":default:return`waiting for ${t} ${e}: ${u(n)}`}}function a(t,e){switch(e){case"milliseconds":return t;case"minutes":return t*6e4;case"hours":return t*36e5;case"days":return t*864e5;default:return t*1e3}}function u(t=0){const e=Date.now()+t;return new Date(e).toLocaleDateString("en-US",{month:"short",day:"numeric",hour12:!1,hour:"numeric",minute:"numeric",second:"numeric"})}function N(t){const e=new Date(t);return e instanceof Date&&!isNaN(e.getTime())}function A(t){const e=/^(0?\d|1\d|2[0-3]):([0-5]\d)(?::([0-5]\d))?$/,n=t.match(e);if(!n)return;const[,r,o,f=0]=n;return{hour:Number(r),minutes:Number(o),seconds:Number(f)}}function _(t){const e=/\$entities\((?:'([^']*)'|"([^"]*)")\)/g,n=t.matchAll(e);return new Set(Array.from(n).map(r=>r[1]||r[2]).filter(r=>c(r)))}function y(t,e){e&&t.forEach(([n,r])=>{e.on(n,r)})}function L(t,e){e&&t.forEach(([n,r])=>{e.off(n,r)})}function c(t){return/^(?!.+__)(?!_)[\da-z_]+(?<!_)\.(?!_)[\da-z_]+(?<!_)$/.test(t)}function $(t){return/^\$\{[a-zA-Z_][a-zA-Z0-9_]*\}$/.test(t)}function C(t,e){if(!i.RED.nodes.getNode(e??""))throw t.status({fill:"red",shape:"dot",text:i.RED._("home-assistant.status.error")}),new Error("Server config node not found");return!0}function D(t){return/{{(?:(?!}}).+)}}/g.test(t)}function v(t){if(typeof t=="boolean")return t;if(typeof t=="number")return!!t;if(typeof t=="string"){const e=t.trim().toLowerCase();if(e==="true")return!0;if(e==="false")return!1;const n=Number(e);if(!isNaN(n))return!!n}return!1}0&&(module.exports={addEventListeners,checkValidServerConfig,containsMustache,getEntitiesFromJsonata,getTimeInMilliseconds,getWaitStatusText,isNodeRedEnvVar,isValidDate,parseTime,parseValueToBoolean,removeEventListeners,shouldInclude,shouldIncludeEvent,toCamelCase,validEntityId});