let isArray=value=>{try{return Array.isArray(value)}catch{return!1}},isMap=value=>{try{return"[object Map]"===Object.prototype.toString.call(value)}catch{return!1}},isNil=value=>{try{return null==value}catch{return!1}},isBoolean=value=>{try{return"[object Boolean]"===Object.prototype.toString.call(value)}catch{return!1}},isNull=value=>{try{return null===value}catch{return!1}},isNumber=value=>{try{return"[object Number]"===Object.prototype.toString.call(value)&&Math.abs(value)!==1/0&&!Number.isNaN(value)}catch{return!1}},objectConstructor={}.constructor,isObject=value=>{try{return"[object Object]"===Object.prototype.toString.call(value)&&null!==value&&value.constructor===objectConstructor}catch{return!1}},isString=value=>{try{return"[object String]"===Object.prototype.toString.call(value)}catch{return!1}},isAllowedJSONProperty=value=>{if(isString(value)||isNumber(value)||isBoolean(value)||isNull(value))return!0;if(isArray(value)){for(var item of value)if(!isAllowedJSONProperty(item))return!1;return!0}if(isObject(value)){for(var key in value)if(!isString(key)||!isAllowedJSONProperty(value[key]))return!1;return!0}return!1},isPojo=value=>{try{return!isArray(value)&&!isObject(value)||isNil(value)?!1:isAllowedJSONProperty(value)}catch{return!1}},isSet=value=>{try{return"[object Set]"===Object.prototype.toString.call(value)}catch{return!1}},isEmpty=value=>{try{return isNil(value)?!0:isString(value)?""===value:isArray(value)?!value.length:isPojo(value)?!Object.keys(value).length:!(!isMap(value)&&!isSet(value)||value.size)}catch{return!1}};exports.isEmpty=isEmpty;