itee-validators 5.3.9 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/builds/itee-validators.cjs.js +278 -277
  3. package/builds/itee-validators.cjs.js.map +1 -1
  4. package/builds/itee-validators.cjs.min.js +144 -144
  5. package/builds/itee-validators.esm.js +210 -205
  6. package/builds/itee-validators.esm.js.map +1 -1
  7. package/builds/itee-validators.esm.min.js +97 -97
  8. package/builds/itee-validators.iife.js +210 -205
  9. package/builds/itee-validators.iife.js.map +1 -1
  10. package/builds/itee-validators.iife.min.js +115 -115
  11. package/package.json +3 -1
  12. package/sources/cores/arrays/isArray.js +4 -4
  13. package/sources/cores/arrays/isArrayOfArray.js +2 -2
  14. package/sources/cores/arrays/isArrayOfBoolean.js +2 -2
  15. package/sources/cores/arrays/isArrayOfFunction.js +2 -2
  16. package/sources/cores/arrays/isArrayOfMultiElement.js +1 -1
  17. package/sources/cores/arrays/isArrayOfNull.js +2 -2
  18. package/sources/cores/arrays/isArrayOfNumber.js +2 -2
  19. package/sources/cores/arrays/isArrayOfObject.js +2 -2
  20. package/sources/cores/arrays/isArrayOfSingleElement.js +1 -1
  21. package/sources/cores/arrays/isArrayOfString.js +3 -3
  22. package/sources/cores/arrays/isArrayOfUndefined.js +2 -2
  23. package/sources/cores/arrays/isEmptyArray.js +2 -2
  24. package/sources/cores/booleans/isBoolean.js +4 -4
  25. package/sources/cores/booleans/isTrue.js +2 -2
  26. package/sources/cores/cores.js +91 -91
  27. package/sources/cores/functions/isFunction.js +2 -2
  28. package/sources/cores/numbers/isInfinite.js +13 -19
  29. package/sources/cores/numbers/isMax.js +2 -2
  30. package/sources/cores/numbers/isMin.js +2 -2
  31. package/sources/cores/numbers/isNumber.js +15 -15
  32. package/sources/cores/numbers/isSafeInteger.js +2 -2
  33. package/sources/cores/numbers/isZero.js +3 -3
  34. package/sources/cores/objects/isEmptyObject.js +2 -2
  35. package/sources/cores/objects/isObject.js +2 -2
  36. package/sources/cores/strings/isBlankString.js +2 -2
  37. package/sources/cores/strings/isEmptyString.js +2 -2
  38. package/sources/cores/strings/isString.js +7 -7
  39. package/sources/cores/symbols/isSymbol.js +2 -2
  40. package/sources/cores/tests/isTestUnitGenerator.js +10 -10
  41. package/sources/cores/typed-arrays/isArrayBuffer.js +2 -2
  42. package/sources/cores/typed-arrays/isBigInt64Array.js +2 -2
  43. package/sources/cores/typed-arrays/isBigUint64Array.js +2 -2
  44. package/sources/cores/typed-arrays/isFloat32Array.js +2 -2
  45. package/sources/cores/typed-arrays/isFloat64Array.js +2 -2
  46. package/sources/cores/typed-arrays/isInt16Array.js +2 -2
  47. package/sources/cores/typed-arrays/isInt32Array.js +2 -2
  48. package/sources/cores/typed-arrays/isInt8Array.js +2 -2
  49. package/sources/cores/typed-arrays/isUint16Array.js +2 -2
  50. package/sources/cores/typed-arrays/isUint32Array.js +2 -2
  51. package/sources/cores/typed-arrays/isUint8Array.js +2 -2
  52. package/sources/cores/typed-arrays/isUint8ClampedArray.js +2 -2
  53. package/sources/cores/voids/isDefined.js +2 -2
  54. package/sources/cores/voids/isEmpty.js +2 -2
  55. package/sources/cores/voids/isNull.js +3 -3
  56. package/sources/cores/voids/isUndefined.js +2 -2
  57. package/sources/dom/isEventTarget.js +2 -2
  58. package/sources/file-system/block-devices/isBlockDevicePath.js +9 -9
  59. package/sources/file-system/block-devices/isValidBlockDevicePath.js +2 -2
  60. package/sources/file-system/character-devices/isCharacterDevicePath.js +9 -9
  61. package/sources/file-system/character-devices/isValidCharacterDevicePath.js +2 -2
  62. package/sources/file-system/directories/isDirectoryPath.js +9 -9
  63. package/sources/file-system/directories/isEmptyDirectory.js +4 -4
  64. package/sources/file-system/directories/isValidDirectoryPath.js +2 -2
  65. package/sources/file-system/fifo-pipes/isFIFOPath.js +9 -9
  66. package/sources/file-system/fifo-pipes/isValidFIFOPath.js +2 -2
  67. package/sources/file-system/files/isEmptyFile.js +9 -9
  68. package/sources/file-system/files/isFilePath.js +9 -9
  69. package/sources/file-system/files/isValidFilePath.js +2 -2
  70. package/sources/file-system/paths/isValidPath.js +4 -4
  71. package/sources/file-system/sockets/isSocketPath.js +9 -9
  72. package/sources/file-system/sockets/isValidSocketPath.js +2 -2
  73. package/sources/file-system/symbolic-links/isSymbolicLinkPath.js +9 -9
  74. package/sources/file-system/symbolic-links/isValidSymbolicLinkPath.js +2 -2
  75. package/sources/itee-validators.js +1 -14
  76. package/sources/physics/temperatures/isCelsius.js +2 -2
  77. package/sources/physics/temperatures/isFahrenheit.js +2 -2
  78. package/sources/physics/temperatures/isKelvin.js +2 -2
  79. package/sources/physics/temperatures/isTemperature.js +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"itee-validators.cjs.js","sources":["../sources/cores/arrays/isArray.js","../sources/cores/arrays/isEmptyArray.js","../sources/cores/arrays/isArrayOfArray.js","../sources/cores/booleans/isBoolean.js","../sources/cores/arrays/isArrayOfBoolean.js","../sources/cores/functions/isFunction.js","../sources/cores/arrays/isArrayOfFunction.js","../sources/cores/arrays/isArrayOfMultiElement.js","../sources/cores/voids/isNull.js","../sources/cores/arrays/isArrayOfNull.js","../sources/cores/voids/isDefined.js","../sources/cores/numbers/isInfinite.js","../sources/cores/numbers/isZero.js","../sources/cores/numbers/isNumber.js","../sources/cores/arrays/isArrayOfNumber.js","../sources/cores/objects/isObject.js","../sources/cores/arrays/isArrayOfObject.js","../sources/cores/arrays/isArrayOfSingleElement.js","../sources/cores/strings/isString.js","../sources/cores/arrays/isArrayOfString.js","../sources/cores/voids/isUndefined.js","../sources/cores/arrays/isArrayOfUndefined.js","../sources/cores/booleans/isTrue.js","../sources/cores/numbers/isMax.js","../sources/cores/numbers/isMin.js","../sources/cores/numbers/isSafeInteger.js","../sources/cores/objects/isEmptyObject.js","../sources/cores/strings/isEmptyString.js","../sources/cores/strings/isBlankString.js","../sources/cores/symbols/isSymbol.js","../sources/cores/voids/isEmpty.js","../sources/cores/cores.js","../sources/cores/typed-arrays/isArrayBuffer.js","../sources/cores/typed-arrays/isBigInt64Array.js","../sources/cores/typed-arrays/isBigUint64Array.js","../sources/cores/typed-arrays/isFloat32Array.js","../sources/cores/typed-arrays/isFloat64Array.js","../sources/cores/typed-arrays/isInt16Array.js","../sources/cores/typed-arrays/isInt32Array.js","../sources/cores/typed-arrays/isInt8Array.js","../sources/cores/typed-arrays/isUint16Array.js","../sources/cores/typed-arrays/isUint32Array.js","../sources/cores/typed-arrays/isUint8Array.js","../sources/cores/typed-arrays/isUint8ClampedArray.js","../sources/physics/temperatures/constants.js","../sources/physics/temperatures/isCelsius.js","../sources/physics/temperatures/isFahrenheit.js","../sources/physics/temperatures/isKelvin.js","../sources/physics/temperatures/isTemperature.js","../sources/file-system/block-devices/isBlockDevicePath.js","../sources/file-system/paths/isValidPath.js","../sources/file-system/block-devices/isValidBlockDevicePath.js","../sources/file-system/character-devices/isCharacterDevicePath.js","../sources/file-system/character-devices/isValidCharacterDevicePath.js","../sources/file-system/directories/isDirectoryPath.js","../sources/file-system/directories/isEmptyDirectory.js","../sources/file-system/directories/isValidDirectoryPath.js","../sources/file-system/fifo-pipes/isFIFOPath.js","../sources/file-system/fifo-pipes/isValidFIFOPath.js","../sources/file-system/files/isFilePath.js","../sources/file-system/files/isEmptyFile.js","../sources/file-system/files/isValidFilePath.js","../sources/file-system/sockets/isSocketPath.js","../sources/file-system/sockets/isValidSocketPath.js","../sources/file-system/symbolic-links/isSymbolicLinkPath.js","../sources/file-system/symbolic-links/isValidSymbolicLinkPath.js"],"sourcesContent":["/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArray\n * @desc Export functions to validate if a value is an array or not\n * @example {@lang javascript}\n *\n * import { isArray } from 'itee-validators'\n *\n * if( isArray( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is an array\n *\n * @param data {*} The data to check against the array type\n * @returns {boolean} true if data is array, false otherwise\n */\nexport function isArray ( data ) {\n return Array.isArray( data )\n}\n\n/**\n * Check if given data is not an array\n *\n * @param data {*} The data to check against the array type\n * @returns {boolean} true if data is not array, false otherwise\n */\nexport function isNotArray ( data ) {\n return !Array.isArray( data )\n}\n\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isArray_0 ( data ) {\n return data instanceof Array\n}\n\nexport function isNotArray_0 ( data ) {\n return !isArray( data )\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isEmptyArray\n * @desc Export function to validate if a value is an array of null length or not\n * @example\n *\n * import { isEmptyArray } from 'itee-validators'\n *\n * if( isEmptyArray( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotArray } from './isArray'\n\n/**\n * Check if given data is an empty array\n *\n * @param data {*} The data to check against the empty array\n * @returns {boolean} true if data is an empty array, false otherwise\n */\nexport function isEmptyArray ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n\n return ( data.length === 0 )\n\n}\n\n/**\n * Check if given data is not an empty array\n *\n * @param data {*} The data to check against the empty array\n * @returns {boolean} true if data is not an empty array, false otherwise\n */\nexport function isNotEmptyArray ( data ) {\n\n if ( isNotArray( data ) ) { return true }\n\n return ( data.length > 0 )\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfArray\n * @desc Export function to validate if a value is an array of array or not\n * @example\n *\n * import { isArrayOfArray } from 'itee-validators'\n *\n * if( isArrayOfArray( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport {\n isArray,\n isNotArray\n} from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is an array of array\n *\n * @param data {*} The data to check against the array of array type\n * @returns {boolean} true if data is an array of array, false otherwise\n */\nexport function isArrayOfArray ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotArray( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an array of array\n *\n * @param data {*} The data to check against the array of array type\n * @returns {boolean} true if data is not an array of array, false otherwise\n */\nexport function isNotArrayOfArray ( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isArray( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/booleans/isBoolean\n * @desc Export function to validate if a value is a boolean or not\n * @example\n *\n * import { isBoolean } from 'itee-validators'\n *\n * if( isBoolean( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a boolean\n *\n * @param data {*} The data to check against the booleaness\n * @returns {boolean} true if data is a boolean, false otherwise.\n */\nexport function isBoolean ( data ) {\n return ( typeof data === 'boolean' )\n}\n\n/**\n * Check if given data is not a boolean\n *\n * @param data {*} The data to check against the booleaness\n * @returns {boolean} true if data is not a boolean, false otherwise.\n */\nexport function isNotBoolean ( data ) {\n return ( typeof data !== 'boolean' )\n}\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isBoolean_alt ( data ) {\n return typeof data === 'boolean' || ( typeof data === 'object' && data !== null && typeof data.valueOf() === 'boolean' )\n}\n\nexport function isNotBoolean_negbase ( data ) {\n return !isBoolean( data )\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfBoolean\n * @desc Export function to validate if a value is an array of booleans or not\n * @example\n *\n * import { isArrayOfBoolean } from 'itee-validators'\n *\n * if( isArrayOfBoolean( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotBoolean } from '../booleans/isBoolean'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are boolean\n *\n * @param data {*} The data to check against the array of booleans\n * @returns {boolean} true if data is not an empty array where all values are boolean, false otherwise\n */\nexport function isArrayOfBoolean ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotBoolean( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not boolean\n *\n * @param data {*} The data to check against the array of booleans\n * @returns {boolean} true if data is not an empty array where all values are not boolean, false otherwise\n */\nexport function isNotArrayOfBoolean ( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotBoolean( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/functions/isFunction\n * @desc Export function to validate if a value is a function or not\n * @example\n *\n * import { isFunction } from 'itee-validators'\n *\n * if( isFunction( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a function\n *\n * @param data {*} The data to check against the functionality\n * @returns {boolean} true if data is a function, false otherwise.\n */\nexport function isFunction ( data ) {\n return ( typeof data === 'function' )\n}\n\n/**\n * Check if given data is not a function\n *\n * @param data {*} The data to check against the functionality\n * @returns {boolean} true if data is not a function, false otherwise.\n */\nexport function isNotFunction ( data ) {\n return ( typeof data !== 'function' )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfBoolean\n * @desc Export function to validate if a value is an array of functions or not\n * @example\n *\n * import { isArrayOfFunction } from 'itee-validators'\n *\n * if( isArrayOfFunction( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotFunction } from '../functions/isFunction'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are functions\n *\n * @param data {*} The data to check against the array of functions\n * @returns {boolean} true if data is not an empty array where all values are functions, false otherwise\n */\nexport function isArrayOfFunction ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotFunction( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not functions\n *\n * @param data {*} The data to check against the array of functions\n * @returns {boolean} true if data is not an empty array where all values are not functions, false otherwise\n */\nexport function isNotArrayOfFunction ( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotFunction( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfMultiElement\n * @desc Export function to validate if a value is an array with more than one value\n * @example\n *\n * import { isArrayOfMultiElement } from 'itee-validators'\n *\n * if( isArrayOfMultiElement( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotArray } from './isArray'\n\n/**\n * Check if given data is an array with multiples values\n *\n * @param data {*} The data to check against the single valued array\n * @returns {boolean} true if data is an array with multiples values, false otherwise\n */\nexport function isArrayOfMultiElement ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n\n return ( data.length > 1 )\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/voids/isNull\n * @desc Export function to validate if a value is null or not\n * @example\n *\n * import { isNull } from 'itee-validators'\n *\n * if( isNull( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is null\n *\n * @param data {*} The data to check against the nullity\n * @returns {boolean} true if data is null, false otherwise.\n */\nexport function isNull ( data ) {\n return ( data === null )\n}\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isNull_0 ( value ) {\n return Object.is( value, null )\n}\n\n// #endif\n\n/**\n * Check if given data is not null\n *\n * @param data {*} The data to check against the nullity\n * @returns {boolean} true if data is not null, false otherwise.\n */\nexport function isNotNull ( data ) {\n return ( data !== null )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfNull\n * @desc Export function to validate if a value is an array of null values or not\n * @example\n *\n * import { isArrayOfNull } from 'itee-validators'\n *\n * if( isArrayOfNull( value ) ) {\n * //...\n * } else {\n * //...\n * } *\n */\n\nimport { isNotNull } from '../voids/isNull'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are null\n *\n * @param data {*} The data to check against the array of null type\n * @returns {boolean} true if data is not an empty array where all values are null, false otherwise\n */\nexport function isArrayOfNull ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotNull( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not null\n *\n * @param data {*} The data to check against the array of null type\n * @returns {boolean} true if data is not an empty array where all values are not null, false otherwise\n */\nexport function isNotArrayOfNull ( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotNull( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/voids/isDefined\n * @desc Export function to validate if a value is a defined or not\n * @example\n *\n * import { isDefined } from 'itee-validators'\n *\n * if( isDefined( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is not null and not undefined\n *\n * @param data {*} The data to check against the existence\n * @returns {boolean} true if data is not null and not undefined, false otherwise.\n */\nexport function isDefined ( data ) {\n return ( ( data !== null ) && ( typeof data !== 'undefined' ) )\n}\n\n/**\n * Check if given data is null or undefined\n *\n * @param data {*} The data to check against the existence\n * @returns {boolean} true if data is null or undefined, false otherwise.\n */\nexport function isNotDefined ( data ) {\n return ( ( data === null ) || ( typeof data === 'undefined' ) )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isInfinite\n * @desc Export function to validate if a value is a finite or infinite number\n * @example\n *\n * import { isInfinite } from 'itee-validators'\n *\n * if( isInfinite( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotNumber } from './isNumber'\n\n/**\n * Check if the given data is an infinite number\n *\n * @param data {*} The data to check against the infinite state\n * @returns {boolean} true if data is infinite, false otherwise\n */\nexport function isInfinite ( data ) {\n\n // Todo: is required to check notnumber ?\n if ( isNotNumber( data ) ) { return false }\n if ( Number.isNaN( data ) ) { return false }\n\n return !Number.isFinite( data )\n}\n\n/**\n * Check if the given data is an infinite negative number\n *\n * @param data {*} The data to check against the negative infinite state\n * @returns {boolean} true if data is negative infinite, false otherwise\n */\nexport function isInfiniteNegative ( data ) {\n return ( data === Number.NEGATIVE_INFINITY )\n}\n\n/**\n * Check if the given data is an infinite positive number\n *\n * @param data {*} The data to check against the positive infinite state\n * @returns {boolean} true if data is positive infinite, false otherwise\n */\nexport function isInfinitePositive ( data ) {\n return ( data === Number.POSITIVE_INFINITY )\n}\n\n/**\n * Check if the given data is a finite number\n *\n * @param data {*} The data to check against the finite state\n * @returns {boolean} true if data is finite, false otherwise\n */\nexport function isFinite ( data ) {\n return Number.isFinite( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isZero\n * @desc Export function to validate if a value is zero, with a special sign\n * @example\n *\n * import { isZero } from 'itee-validators'\n *\n * if( isZero( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n// Todo: negations\n\n/**\n * Check if the given data is zero\n *\n * @param data {*} The data to check against the zero value\n * @returns {boolean} true if data is zero, false otherwise\n */\nexport function isZero ( data ) {\n //Todo protect truthy values\n return ( data === 0 )\n}\n\n/**\n * Check if the given data is a positive zero\n *\n * @param data {*} The data to check against the positive zero value\n * @returns {boolean} true if data is a positive zero, false otherwise\n */\nexport function isZeroPositive ( data ) {\n return ( data === 0 && ( 1 / data ) === Number.POSITIVE_INFINITY )\n}\n\n/**\n * Check if the given data is a negative zero\n *\n * @param data {*} The data to check against the negative zero value\n * @returns {boolean} true if data is a negative zero, false otherwise\n */\nexport function isZeroNegative ( data ) {\n return ( data === 0 && ( 1 / data ) === Number.NEGATIVE_INFINITY )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isNumber\n * @desc Export function to validate if a value is a number, or with special sign\n * @example\n *\n * import { isNumber } from 'itee-validators'\n *\n * if( isNumber( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n// Todo: Negations\n//Todo: isInRange(x, y, value, xInclusive, yInclusive)\n//Todo: isInRangeZeroOne(value, zeroInclusive, oneInclusive) //inclusive\n\nimport { isNotDefined } from '../voids/isDefined'\nimport {\n isInfinite,\n isInfinitePositive\n} from './isInfinite'\nimport { isZeroPositive } from './isZero'\n\n/**\n * Check if given data is a number\n *\n * @param data {*} The data to check against the maximum safe integer state\n * @returns {boolean} true if data is a number, false otherwise.\n */\nexport function isNumber ( data ) {\n\n if ( isNotDefined( data ) ) { return false }\n\n return ( data.constructor === Number )\n\n}\n\n/**\n * Check if the data is a positive number\n *\n * @param data {*} The data to check against the positivity\n * @returns {boolean} true if data is a positive number, false otherwise.\n */\nexport function isNumberPositive ( data ) {\n\n if ( isNotNumber( data ) ) { return false }\n\n // Todo: Math.sign\n return ( data > 0 || isZeroPositive( data ) || isInfinitePositive( data ) )\n\n}\n\n/**\n * Check if the data is a negative number\n *\n * @param data {*} The data to check against the negativity\n * @returns {boolean} true if data is a negative number, false otherwise.\n */\nexport function isNumberNegative ( data ) {\n return ( isNumber( data ) && data < 0 )\n}\n\n/**\n * Check if given data is not a number\n *\n * @param data {*} The data to check against the number type\n * @returns {boolean} true if data is not of type number or not a number, false otherwise.\n */\nexport function isNotNumber ( data ) {\n return !( isNumber( data ) )\n}\n\n/**\n * Check if the given data is an integer number\n *\n * @param data {*} The data to check against the integer state\n * @returns {boolean} true if data is an integer, false otherwise\n */\nexport function isInteger ( data ) {\n return Number.isInteger( data )\n}\n\n/**\n * Check if given data is a floating point number\n *\n * @param data {*} The data to check against the floating point\n * @returns {boolean} true if data is a float, false otherwise\n */\nexport function isFloat ( data ) {\n\n if ( isNotNumber( data ) ) { return false }\n if ( Number.isNaN( data ) ) { return false }\n if ( isInfinite( data ) ) { return false}\n\n return data % 1 !== 0\n\n}\n\n/**\n * Check if given data is not a number\n *\n * @param data {*} The data to check against the NaN state\n * @returns {boolean} true if data is not a number, false otherwise.\n */\nexport function isNaN ( data ) {\n return Number.isNaN( data )\n}\n\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isNumber_0 ( data ) {\n return ( typeof data === 'number' && !Number.isNaN( data ) )\n}\n\nexport function isNumber_1 ( data ) {\n return ( Number( data ) === data )\n}\n\n///\n\nexport function isInteger_0 ( data ) {\n return ( data === 0 && ( 1 / data ) === Number.POSITIVE_INFINITY )\n}\n\nexport function isInteger_1 ( data ) {\n return data % 1 === 0\n}\n\nexport function isInteger_2 ( n ) {\n return n === +n && n === ( n | 0 )\n}\n\nexport function isInteger_3 ( nVal ) {\n return typeof nVal === 'number' && isFinite( nVal ) && nVal > -9007199254740992 && nVal < 9007199254740992 && Math.floor( nVal ) === nVal\n}\n\n///\n\nexport function isFloat_1 ( n ) {\n return n === +n && n !== ( n | 0 )\n}\n\nexport function isFloat_2 ( x ) {\n return !!( x % 1 )\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfBoolean\n * @desc Export function to validate if a value is an array of numbers or not\n * @example\n *\n * import { isArrayOfNumber } from 'itee-validators'\n *\n * if( isArrayOfNumber( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotNumber } from '../numbers/isNumber'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are numbers\n *\n * @param data {*} The data to check against the array of numbers\n * @returns {boolean} true if data is not an empty array where all values are numbers, false otherwise\n */\nexport function isArrayOfNumber ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotNumber( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not numbers\n *\n * @param data {*} The data to check against the array of numbers\n * @returns {boolean} true if data is not an empty array where all values are not numbers, false otherwise\n */\nexport function isNotArrayOfNumber ( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotNumber( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/objects/isObject\n * @desc Export function to validate if a value is an object\n * @example\n *\n * import { isObject } from 'itee-validators'\n *\n * if( isObject( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotDefined } from '../voids/isDefined'\n\n/**\n * Check if given data is an object\n *\n * @param data {*} The data to check against the object type\n * @returns {boolean} true if data is object, false otherwise\n */\nexport function isObject ( data ) {\n\n if ( isNotDefined( data ) ) { return false }\n\n return ( data.constructor === Object )\n}\n\n/**\n * Check if given data is not an object\n *\n * @param data {*} The data to check against the object type\n * @returns {boolean} true if data is not an object, false otherwise\n */\nexport function isNotObject ( data ) {\n return !isObject( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfObject\n * @desc Export function to validate if a value is an array of objects or not\n * @example\n *\n * import { isArrayOfObject } from 'itee-validators'\n *\n * if( isArrayOfObject( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotObject } from '../objects/isObject'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is an array where all values are of object type\n *\n * @param data {*} The data to check against the array of object type\n * @returns {boolean} true if data is an array where all values are of object type, false otherwise\n */\nexport function isArrayOfObject ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotObject( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an array where all values are of object type\n *\n * @param data {*} The data to check against the array of object type\n * @returns {boolean} true if data is not an array where all values are of object type, false otherwise\n */\nexport function isNotArrayOfObject ( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotObject( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfSingleElement\n * @desc Export function to validate if a value is an array of single value or not\n * @example\n *\n * import { isArrayOfSingleElement } from 'itee-validators'\n *\n * if( isArrayOfSingleElement( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotArray } from './isArray'\n\n/**\n * Check if given data is an array with a single value\n *\n * @param data {*} The data to check against the single valued array\n * @returns {boolean} true if data is an array with a single value, false otherwise\n */\nexport function isArrayOfSingleElement ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n\n if ( data.length !== 1 ) {\n return false\n }\n\n return true\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/strings/isString\n * @desc Export function to validate if a value is a string\n * @example\n *\n * import { isString } from 'itee-validators'\n *\n * if( isString( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a string\n *\n * @param data {*} The data to check against the string type\n * @returns {boolean} true if data is a string, false otherwise.\n */\nexport function isString ( data ) {\n return ( typeof data === 'string' || data instanceof String )\n}\n\n/**\n * Check if given data is not a string\n *\n * @param data {*} The data to check against the string type\n * @returns {boolean} true if data is not a string, false otherwise.\n */\nexport function isNotString ( data ) {\n return !isString( data )\n}\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isString_0 ( val ) {\n return ( typeof val === 'string' )\n}\n\nexport function isString_1 ( val ) {\n return ( typeof val === 'string' || ( ( !!val && typeof val === 'object' ) && Object.prototype.toString.call( val ) === '[object String]' ) )\n}\n\nexport function isString_2 ( val ) {\n return ( Object.prototype.toString.call( val ) === '[object String]' )\n}\n\nexport function isString_3 ( val ) {\n return ( val !== null && val !== undefined && val.constructor === String )\n}\n\nexport function isString_4 ( val ) {\n return ( val === val + '' )\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfString\n * @desc Export function to validate if a value is an array of string or not\n * @example\n *\n * import { isArrayOfString } from 'itee-validators'\n *\n * if( isArrayOfString( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotString } from '../strings/isString'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are string\n *\n * @param data {*} The data to check against the array of strings\n * @returns {boolean} true if data is not an empty array where all values are string, false otherwise\n */\nexport function isArrayOfString ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotString( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not string\n *\n * @param data {*} The data to check against the array of strings\n * @returns {boolean} true if data is not an empty array where all values are not string, false otherwise\n */\nexport function isNotArrayOfString ( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotString( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isArrayOfString_1 ( data ) {\n\n if ( !Array.isArray( data ) ) {\n return false\n }\n\n const dataLength = data.length\n if ( dataLength === 0 ) {\n return false\n }\n\n for ( let index = 0, arrayLength = data.length ; index < arrayLength ; index += 1 ) {\n if ( typeof data[ index ] !== 'string' ) {\n return false\n }\n }\n\n return true\n\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/voids/isUndefined\n * @desc Export function to validate if a value is a void\n * @example\n *\n * import { isNull } from 'itee-validators'\n *\n * if( isNull( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is undefined\n *\n * @param data {*} The data to check against the undefiness\n * @returns {boolean} true if data is undefined, false otherwise.\n */\nexport function isUndefined ( data ) {\n return ( typeof data === 'undefined' )\n}\n\n/**\n * Check if given data is defined\n *\n * @param data {*} The data to check against the undefiness\n * @returns {boolean} true if data is defined, false otherwise.\n */\nexport function isNotUndefined ( data ) {\n return ( typeof data !== 'undefined' )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfUndefined\n * @desc Export function to validate if a value is an array of undefined values or not\n * @example\n *\n * import { isArrayOfUndefined } from 'itee-validators'\n *\n * if( isArrayOfUndefined( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotUndefined } from '../voids/isUndefined'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are undefined\n *\n * @param data {*} The data to check against the array of undefined\n * @returns {boolean} true if data is not an empty array where all values are undefined, false otherwise\n */\nexport function isArrayOfUndefined ( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotUndefined( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are defined\n *\n * @param data {*} The data to check against the array of undefined\n * @returns {boolean} true if data is not an empty array where all values are defined, false otherwise\n */\nexport function isNotArrayOfUndefined ( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotUndefined( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/booleans/isTrue\n * @desc Export function to validate if a value is a boolean set to true or false\n * @example\n *\n * import { isTrue } from 'itee-validators'\n *\n * if( isTrue( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isBoolean } from './isBoolean'\n\n/**\n * Check if given data is a boolean with value to true\n *\n * @param data {*} The data to check against true value\n * @returns {boolean} true if data is a boolean set to true, false otherwise.\n */\nexport function isTrue ( data ) {\n return ( isBoolean( data ) && ( data === true ) )\n}\n\n/**\n * Check if given data is a boolean with value to false\n *\n * @param data {*} The data to check against false value\n * @returns {boolean} true if data is a boolean set to false, false otherwise.\n */\nexport function isFalse ( data ) {\n return ( isBoolean( data ) && ( data === false ) )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isMax\n * @desc Export function to validate if a value is a maximum javascript number\n * @example\n *\n * import { isMaxPositive } from 'itee-validators'\n *\n * if( isMaxPositive( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if the given data is a maximum positive number\n *\n * @param data {*} The data to check against the positive maximum state\n * @returns {boolean} true if data is positive maximum, false otherwise\n */\nexport function isMaxPositive ( data ) {\n return ( data === Number.MAX_VALUE )\n}\n\n/**\n * Check if the given data is a maximum negative number\n *\n * @param data {*} The data to check against the maximum infinite state\n * @returns {boolean} true if data is negative maximum, false otherwise\n */\nexport function isMaxNegative ( data ) {\n return ( data === -Number.MAX_VALUE )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isMin\n * @desc Export function to validate if a value is a minimum javascript number\n * @example\n *\n * import { isMaxPositive } from 'itee-validators'\n *\n * if( isMaxPositive( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if the given data is a minimum positive number\n *\n * @param data {*} The data to check against the positive minimum state\n * @returns {boolean} true if data is positive minimum, false otherwise\n */\nexport function isMinPositive ( data ) {\n return ( data === Number.MIN_VALUE )\n}\n\n/**\n * Check if the given data is a minimum negative number\n *\n * @param data {*} The data to check against the minimum infinite state\n * @returns {boolean} true if data is negative minimum, false otherwise\n */\nexport function isMinNegative ( data ) {\n return ( data === -Number.MIN_VALUE )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isSafeInteger\n * @desc Export function to validate if a value is a safe integer number\n * @example\n *\n * import { isMaxSafeInteger } from 'itee-validators'\n *\n * if( isMaxSafeInteger( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if the given data is a maximum safe integer number\n *\n * @param data {*} The data to check against the maximum safe integer state\n * @returns {boolean} true if data is a maximum safe integer, false otherwise\n */\nexport function isMaxSafeInteger ( data ) {\n return ( data === Number.MAX_SAFE_INTEGER )\n}\n\n// Todo: Neg\n\n/**\n * Check if the given data is a minimum safe integer number\n *\n * @param data {*} The data to check against the minimum safe integer state\n * @returns {boolean} true if data is a minimum safe integer, false otherwise\n */\nexport function isMinSafeInteger ( data ) {\n return ( data === Number.MIN_SAFE_INTEGER )\n}\n\n// Todo: Neg\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/objects/isEmptyObject\n * @desc Export function to validate if a value is an empty object\n * @example\n *\n * import { isEmptyObject } from 'itee-validators'\n *\n * if( isEmptyObject( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotObject } from './isObject'\n\n/**\n * Check if given data is an empty object\n *\n * @param data {*} The data to check against the emptiness of the object\n * @returns {boolean} true if data is an empty object, false otherwise\n */\nexport function isEmptyObject ( data ) {\n\n if ( isNotObject( data ) ) { return false }\n\n if ( data.length === 0 ) {\n return true\n }\n\n // Otherwise, does it have any properties of its own?\n for ( let key in data ) {\n if ( Object.prototype.hasOwnProperty.call( data, key ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty object\n *\n * @param data {*} The data to check against the emptiness of the object\n * @returns {boolean} true if data is not an empty object, false otherwise\n */\nexport function isNotEmptyObject ( data ) {\n return !( isEmptyObject( data ) )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/strings/isEmptyString\n * @desc Export function to validate if a value is a empty string\n * @example\n *\n * import { isEmptyString } from 'itee-validators'\n *\n * if( isEmptyString( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotString } from './isString'\n\n/**\n * Check if given data is an empty string\n *\n * @param data {*} The data to check against the emptiness of the string\n * @returns {boolean} true if data is an empty string, false otherwise.\n */\nexport function isEmptyString ( data ) {\n\n if ( isNotString( data ) ) {\n return false\n }\n\n return ( data.length === 0 )\n\n}\n\n/**\n * Check if given data is not an empty string\n *\n * @param data {*} The data to check against the emptiness of the string\n * @returns {boolean} true if data is not an empty string, false otherwise.\n */\nexport function isNotEmptyString ( data ) {\n\n return !( isEmptyString( data ) )\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/strings/isBlankString\n * @desc Export function to validate if a value is a blank string\n * @example\n *\n * import { isBlankString } from 'itee-validators'\n *\n * if( isBlankString( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isEmptyString } from './isEmptyString'\nimport { isNotString } from './isString'\n\n/**\n * Check if the given data is a blank string\n *\n * @param data {*} The data to check against the blankness of the string\n * @returns {boolean} true if data is a blank string, false otherwise.\n */\nexport function isBlankString ( data ) {\n\n if ( isNotString( data ) ) { return false }\n if ( isEmptyString( data ) ) { return false }\n\n return ( !/\\S/.test( data ) )\n}\n\n/**\n * Check if the given data is not a blank string\n *\n * @param data {*} The data to check against the blankness of the string\n * @returns {boolean} true if data is not a blank string, false otherwise.\n */\nexport function isNotBlankString ( data ) {\n\n return !( isBlankString( data ) )\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/symbols/isSymbol\n * @desc Export function to validate if a value is a symbol\n * @example\n *\n * import { isSymbol } from 'itee-validators'\n *\n * if( isSymbol( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a symbol\n *\n * @param data {*} The data to check against the symbol type\n * @returns {boolean} true if data is a symbol, false otherwise.\n */\nexport function isSymbol ( data ) {\n return ( typeof data === 'symbol' )\n}\n\n/**\n * Check if given data is not a symbol\n *\n * @param data {*} The data to check against the symbol type\n * @returns {boolean} true if data is not a symbol, false otherwise.\n */\nexport function isNotSymbol ( data ) {\n return ( typeof data !== 'symbol' )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/voids/isEmpty\n * @desc Export function to validate if a value could be considered as empty\n * @example\n *\n * import { isEmpty } from 'itee-validators'\n *\n * if( isEmpty( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isEmptyArray } from '../arrays/isEmptyArray'\nimport { isEmptyObject } from '../objects/isEmptyObject'\nimport { isEmptyString } from '../strings/isEmptyString'\nimport { isNotDefined } from './isDefined'\n\n/**\n * Check emptiness of given data\n *\n * See: https://stackoverflow.com/questions/4346186/how-to-determine-if-a-function-is-empty\n *\n * @param data {*} The data to check against the emptiness\n * @returns {boolean} true if data is considered as empty, false otherwise.\n */\nexport function isEmpty ( data ) {\n\n if ( isNotDefined( data ) ) { return false }\n if ( isEmptyString( data ) ) { return true}\n if ( isEmptyArray( data ) ) { return true }\n if ( isEmptyObject( data ) ) { return true }\n\n return false\n\n}\n\n/**\n * Check fullness of given data\n *\n * @param data {*} The data to check against the emptiness\n * @returns {boolean} true if data is considered as not empty, false otherwise.\n */\nexport function isNotEmpty ( data ) {\n return !isEmpty( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/cores\n * @description Export the Validator singleton instance that allow to validate complex data structure\n * @example\n *\n const validator = Itee.Validators.Validator\n\n // Using unique function for One registered type\n // Usefull when a simple data structure is used multiple times\n validator.add( 'ColorType', color => {\n\n const r = color.r\n if ( color.r === undefined || Itee.Validators.isNotNumber( r ) ) {\n return false\n }\n\n const g = color.g\n if ( color.g === undefined || Itee.Validators.isNotNumber( g ) ) {\n return false\n }\n\n const b = color.b\n if ( color.b === undefined || Itee.Validators.isNotNumber( b ) ) {\n return false\n }\n\n return true\n } )\n\n // Using schema composition\n // Usefull for design validation schema faster and based on previous declared validation types\n validator.add( 'Range_0_255', ( value ) => {\n\n if ( Itee.Validators.isNotNumber( value ) ) {\n return false\n }\n\n return !(value <= 0 || value > 255)\n\n } )\n\n validator.add( 'ColorSchema', {\n r: {\n required: true,\n type: 'Range_0_255'\n },\n g: {\n required: true,\n type: 'Range_0_255'\n },\n b: {\n required: true,\n type: 'Range_0_255'\n }\n } )\n\n validator.add( 'ColorStructure', {\n color_from_type: {\n type: 'ColorType'\n },\n col_from_schema: {\n type: 'ColorSchema'\n },\n col_from_fn: {\n // Inner function\n\t // Usefull for specific validation requirement that cannot match other previous validation schema or type\n fn: function ColorValidator ( color ) {\n\n const r = color.r\n if ( color.r === undefined || Itee.Validators.isNotNumber( r ) ) {\n return false\n }\n\n const g = color.g\n if ( color.g === undefined || Itee.Validators.isNotNumber( g ) ) {\n return false\n }\n\n const b = color.b\n if ( color.b === undefined || Itee.Validators.isNotNumber( b ) ) {\n return false\n }\n\n return true\n }\n }\n } )\n\n // The data to validate\n const colorStruct = {\n color_from_type: {\n r: 0,\n g: 1,\n b: 2\n },\n col_from_schema: {\n r: 10,\n g: 20,\n b: 30\n },\n col_from_fn: {\n r: 0,\n g: 127,\n b: 255\n }\n }\n\n // Execute\n\n try {\n\n if ( validator.check( colorStruct, 'ColorStructure' ) ) {\n alert( 'ColorStructure is valid !' )\n } else {\n alert( validator.errors )\n }\n\n} catch ( err ) {\n alert( err )\n}\n *\n */\n\nimport { isArray } from './arrays/_arrays'\nimport { isBoolean } from './booleans/_booleans'\nimport {\n isFunction,\n isNotFunction\n} from './functions/_functions'\nimport {\n isFloat,\n isInteger,\n isNumber\n} from './numbers/_numbers'\nimport {\n isNotObject,\n isObject\n} from './objects/_objects'\nimport {\n isNotString,\n isString\n} from './strings/_strings'\nimport { isSymbol } from './symbols/_symbols'\nimport {\n isDefined,\n isNotDefined\n} from './voids/_voids'\n\nclass Validator {\n\n constructor () {\n\n /**\n * The validators store, by default it contains validators for Boolean, Number, Integer, Float, Array, String, Object, Symbol and Function\n *\n * @type {object}\n */\n this.validators = {\n Boolean: isBoolean,\n Number: isNumber,\n Integer: isInteger,\n Float: isFloat,\n Array: isArray,\n String: isString,\n Object: isObject,\n Symbol: isSymbol,\n Function: isFunction\n }\n\n /**\n * The list of errors occured during the check\n *\n * @type {Array.<string>}\n */\n this.errors = []\n\n }\n\n /**\n * Add a new validator schema to the validator instance\n *\n * @param type {string} - A string that represent the type of data to validate\n * @param validator {(function|object)} - A function or validation schema that represent the type of data to validate\n */\n add ( type, validator ) {\n\n if ( isNotString( type ) ) { throw new TypeError( `Validator: Expect type to be a string` ) }\n if ( isNotFunction( validator ) && isNotObject( validator ) ) { throw new TypeError( `Validator: Expect validator to be an object or a function` ) }\n if ( isDefined( this.validators[ type ] ) ) { throw new TypeError( `Validator: a validator is already defined for type '${ type }'` ) }\n\n this.validators[ type ] = validator\n\n }\n\n /**\n * To remove a registered type\n *\n * @param type {string} - The type to remove\n */\n remove ( type ) {\n\n delete this.validators[ type ]\n\n }\n\n /**\n * Allow to known the available types store in current validator instance\n *\n * @return {Array.<string>} - The list of registered type\n */\n getAvalaibleTypes () {\n\n const availablesTypes = []\n\n for ( let key in this.validators ) {\n availablesTypes.push( key )\n }\n\n return availablesTypes\n\n }\n\n /**\n * Will perform a deep structural comparison between the given data and the validation schema of the given type\n *\n * @param data {*} - The data to validate\n * @param type {string} - The type of the validation schema to apply\n * @param breakOnError {boolean} - Return on first validation error ( true by default )\n * @return {boolean} - Return true is the data is validated, false otherwise\n */\n check ( data, type, breakOnError = true ) {\n\n const validator = this.validators[ type ]\n if ( isNotDefined( validator ) ) {\n throw new TypeError( `Validator: Unable to find schema validation of type '${ type }'` )\n }\n\n let result = true\n if ( isFunction( validator ) ) {\n\n result = validator( data )\n\n } else if ( isObject( validator ) ) {\n\n let subResult = true\n for ( let key in validator ) {\n\n const subValidator = validator[ key ]\n if ( isNotDefined( subValidator ) ) {\n throw new TypeError( `Validator: Missing validator for key '${ key }' of type '${ type }'` )\n }\n\n const value = data[ key ]\n const isRequired = subValidator.required\n if ( isNotDefined( value ) ) {\n if ( isRequired ) {\n subResult = false\n } else {\n continue\n }\n }\n\n // In case of overriden validation function check it first\n let validatorFunction = subValidator.fn\n if ( isDefined( validatorFunction ) ) {\n\n if ( isNotFunction( validatorFunction ) ) {\n throw new TypeError( `Validator: Invalid validation function for '${ key }' with type '${ type }'` )\n }\n\n subResult = validatorFunction( value )\n\n } else {\n\n subResult = this.check( value, subValidator.type, breakOnError )\n\n }\n\n if ( subResult === false ) {\n\n this.errors.push( `Validator: Invalid property '${ key }' of type '${ subValidator.type }' with value '${ value }' in object of type '${ type }'` )\n result = false\n if ( breakOnError ) {\n break\n }\n\n }\n\n }\n\n } else {\n\n throw new TypeError( `Validator: Unknown validator of type '${ type }'` )\n\n }\n\n return result\n\n }\n\n}\n\n/**\n * The singleton instance\n *\n * @type {Validator}\n */\nlet validatorInstance = undefined\nif ( isNotDefined( validatorInstance ) ) {\n validatorInstance = new Validator()\n}\n\nexport { validatorInstance as Validator }\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isArrayBuffer\n * @desc Export function to validate if a value is a array buffer\n * @example\n *\n * import { isArrayBuffer } from 'itee-validators'\n *\n * if( isArrayBuffer( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a array buffer\n *\n * @param data {*} The data to check against the array buffer type\n * @returns {boolean} true if data is a array buffer, false otherwise.\n */\nexport function isArrayBuffer ( data ) {\n return ( data instanceof ArrayBuffer )\n}\n\n/**\n * Check if given data is not a array buffer\n *\n * @param data {*} The data to check against the array buffer type\n * @returns {boolean} true if data is not a array buffer, false otherwise.\n */\nexport function isNotArrayBuffer ( data ) {\n return !isArrayBuffer( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isBigInt64Array\n * @desc Export function to validate if a value is a big int 64 array buffer\n * @example\n *\n * import { isBigInt64Array } from 'itee-validators'\n *\n * if( isBigInt64Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a big int 64 array\n *\n * @param data {*} The data to check against the big int 64 array type\n * @returns {boolean} true if data is a big int 64 array, false otherwise.\n */\nexport function isBigInt64Array ( data ) {\n return ( data instanceof BigInt64Array )\n}\n\n/**\n * Check if given data is not a big int 64 array\n *\n * @param data {*} The data to check against the big int 64 array type\n * @returns {boolean} true if data is not a big int 64 array, false otherwise.\n */\nexport function isNotBigInt64Array ( data ) {\n return !isBigInt64Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isBigUint64Array\n * @desc Export function to validate if a value is a big unsigned int 64 array buffer\n * @example\n *\n * import { isBigUint64Array } from 'itee-validators'\n *\n * if( isBigUint64Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a big unsigned int 64 array\n *\n * @param data {*} The data to check against the big unsigned int 64 array type\n * @returns {boolean} true if data is a big unsigned int 64 array, false otherwise.\n */\nexport function isBigUint64Array ( data ) {\n return ( data instanceof BigUint64Array )\n}\n\n/**\n * Check if given data is not a big unsigned int 64 array\n *\n * @param data {*} The data to check against the big unsigned int 64 array type\n * @returns {boolean} true if data is not a big unsigned int 64 array, false otherwise.\n */\nexport function isNotBigUint64Array ( data ) {\n return !isBigUint64Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isFloat32Array\n * @desc Export function to validate if a value is a float 32 array buffer\n * @example\n *\n * import { isFloat32Array } from 'itee-validators'\n *\n * if( isFloat32Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a float 32 array\n *\n * @param data {*} The data to check against the float 32 array type\n * @returns {boolean} true if data is a float 32 array , false otherwise.\n */\nexport function isFloat32Array ( data ) {\n return ( data instanceof Float32Array )\n}\n\n/**\n * Check if given data is not a float 32 array\n *\n * @param data {*} The data to check against the float 32 array type\n * @returns {boolean} true if data is not a float 32 array , false otherwise.\n */\nexport function isNotFloat32Array ( data ) {\n return !isFloat32Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isFloat64Array\n * @desc Export function to validate if a value is a float 64 array buffer\n * @example\n *\n * import { isFloat64Array } from 'itee-validators'\n *\n * if( isFloat64Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a float 64 array\n *\n * @param data {*} The data to check against the float 64 array type\n * @returns {boolean} true if data is a float 64 array , false otherwise.\n */\nexport function isFloat64Array ( data ) {\n return ( data instanceof Float64Array )\n}\n\n/**\n * Check if given data is not a float 64 array\n *\n * @param data {*} The data to check against the float 64 array type\n * @returns {boolean} true if data is not a float 64 array , false otherwise.\n */\nexport function isNotFloat64Array ( data ) {\n return !isFloat64Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isInt16Array\n * @desc Export function to validate if a value is a int 16 array buffer\n * @example\n *\n * import { isInt16Array } from 'itee-validators'\n *\n * if( isInt16Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a int 16 array\n *\n * @param data {*} The data to check against the int 16 array type\n * @returns {boolean} true if data is a int 16 array , false otherwise.\n */\nexport function isInt16Array ( data ) {\n return ( data instanceof Int16Array )\n}\n\n/**\n * Check if given data is not a int 16 array\n *\n * @param data {*} The data to check against the int 16 array type\n * @returns {boolean} true if data is not a int 16 array , false otherwise.\n */\nexport function isNotInt16Array ( data ) {\n return !isInt16Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isInt32Array\n * @desc Export function to validate if a value is a int 32 array buffer\n * @example\n *\n * import { isInt32Array } from 'itee-validators'\n *\n * if( isInt32Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a int 32 array\n *\n * @param data {*} The data to check against the int 32 array type\n * @returns {boolean} true if data is a int 32 array , false otherwise.\n */\nexport function isInt32Array ( data ) {\n return ( data instanceof Int32Array )\n}\n\n/**\n * Check if given data is not a int 32 array\n *\n * @param data {*} The data to check against the int 32 array type\n * @returns {boolean} true if data is not a int 32 array , false otherwise.\n */\nexport function isNotInt32Array ( data ) {\n return !isInt32Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isInt8Array\n * @desc Export function to validate if a value is a int 8 array buffer\n * @example\n *\n * import { isInt8Array } from 'itee-validators'\n *\n * if( isInt8Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a int 8 array\n *\n * @param data {*} The data to check against the int 8 array type\n * @returns {boolean} true if data is a int 8 array , false otherwise.\n */\nexport function isInt8Array ( data ) {\n return ( data instanceof Int8Array )\n}\n\n/**\n * Check if given data is not a int 8 array\n *\n * @param data {*} The data to check against the int 8 array type\n * @returns {boolean} true if data is not a int 8 array , false otherwise.\n */\nexport function isNotInt8Array ( data ) {\n return !isInt8Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isUint16Array\n * @desc Export function to validate if a value is a unsigned int 16 array buffer\n * @example\n *\n * import { isUint16Array } from 'itee-validators'\n *\n * if( isUint16Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a unsigned int 16 array\n *\n * @param data {*} The data to check against the unsigned int 16 array type\n * @returns {boolean} true if data is a unsigned int 16 array , false otherwise.\n */\nexport function isUint16Array ( data ) {\n return ( data instanceof Uint16Array )\n}\n\n/**\n * Check if given data is not a unsigned int 16 array\n *\n * @param data {*} The data to check against the unsigned int 16 array type\n * @returns {boolean} true if data is not a unsigned int 16 array , false otherwise.\n */\nexport function isNotUint16Array ( data ) {\n return !isUint16Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isUint32Array\n * @desc Export function to validate if a value is a unsigned int 32 array buffer\n * @example\n *\n * import { isUint32Array } from 'itee-validators'\n *\n * if( isUint32Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a unsigned int 32 array\n *\n * @param data {*} The data to check against the unsigned int 32 array type\n * @returns {boolean} true if data is a unsigned int 32 array , false otherwise.\n */\nexport function isUint32Array ( data ) {\n return ( data instanceof Uint32Array )\n}\n\n/**\n * Check if given data is not a unsigned int 32 array\n *\n * @param data {*} The data to check against the unsigned int 32 array type\n * @returns {boolean} true if data is not a unsigned int 32 array , false otherwise.\n */\nexport function isNotUint32Array ( data ) {\n return !isUint32Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isUint8Array\n * @desc Export function to validate if a value is a unsigned int 8 array buffer\n * @example\n *\n * import { isUint8Array } from 'itee-validators'\n *\n * if( isUint8Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a unsigned int 8 array\n *\n * @param data {*} The data to check against the unsigned int 8 array type\n * @returns {boolean} true if data is a unsigned int 8 array , false otherwise.\n */\nexport function isUint8Array ( data ) {\n return ( data instanceof Uint8Array )\n}\n\n/**\n * Check if given data is not a unsigned int 8 array\n *\n * @param data {*} The data to check against the unsigned int 8 array type\n * @returns {boolean} true if data is not a unsigned int 8 array , false otherwise.\n */\nexport function isNotUint8Array ( data ) {\n return !isUint8Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isUint8ClampedArray\n * @desc Export function to validate if a value is a unsigned clamped int 8 array buffer\n * @example\n *\n * import { isUint8ClampedArray } from 'itee-validators'\n *\n * if( isUint8ClampedArray( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a unsigned clamped int 8 array\n *\n * @param data {*} The data to check against the unsigned clamped int 8 array type\n * @returns {boolean} true if data is a unsigned clamped int 8 array , false otherwise.\n */\nexport function isUint8ClampedArray ( data ) {\n return ( data instanceof Uint8ClampedArray )\n}\n\n/**\n * Check if given data is not a unsigned clamped int 8 array\n *\n * @param data {*} The data to check against the unsigned clamped int 8 array type\n * @returns {boolean} true if data is not a unsigned clamped int 8 array , false otherwise.\n */\nexport function isNotUint8ClampedArray ( data ) {\n return !isUint8ClampedArray( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/constants\n * @desc Export constants about temperatures\n *\n */\n\n/**\n * @const\n * @type {number}\n * @default 0.00000000045\n * @desc This value corresponding to the absolute zero kelvin value\n */\nexport const ABSOLUTE_ZERO_KELVIN = 0.00000000045\n\n/**\n * @const\n * @type {number}\n * @default -273.14999999955\n * @desc This value corresponding to the absolute zero celsius value\n */\nexport const ABSOLUTE_ZERO_CELSIUS = -273.14999999955\n\n/**\n * @const\n * @type {number}\n * @default -459.67\n * @desc This value corresponding to the absolute zero fahrenheit value\n */\nexport const ABSOLUTE_ZERO_FAHRENHEIT = -459.67\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/temperatures\n * @desc Export function to validate if a value is a Celsius temperature\n * @example\n *\n * import { isCelsius } from 'itee-validators'\n *\n * if( isCelsius( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNumber } from '../../cores/numbers/isNumber'\nimport { ABSOLUTE_ZERO_CELSIUS } from './constants'\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isCelsius ( data ) {\n return ( isNumber( data ) && data >= ABSOLUTE_ZERO_CELSIUS )\n}\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isNotCelsius ( data ) {\n return !isCelsius( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/temperatures\n * @desc Export function to validate if a value is a Fahrenheit temperature\n * @example\n *\n * import { isFahrenheit } from 'itee-validators'\n *\n * if( isFahrenheit( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNumber } from '../../cores/numbers/isNumber'\nimport { ABSOLUTE_ZERO_FAHRENHEIT } from './constants'\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isFahrenheit ( data ) {\n return ( isNumber( data ) && data >= ABSOLUTE_ZERO_FAHRENHEIT )\n}\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isNotFahrenheit ( data ) {\n return !isFahrenheit( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/temperatures\n * @desc Export function to validate if a value is a kelvin temperature\n * @example\n *\n * import { isKelvin } from 'itee-validators'\n *\n * if( isKelvin( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNumber } from '../../cores/numbers/isNumber'\nimport { ABSOLUTE_ZERO_KELVIN } from './constants'\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isKelvin ( data ) {\n return ( isNumber( data ) && data >= ABSOLUTE_ZERO_KELVIN )\n}\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isNotKelvin ( data ) {\n return !isKelvin( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/temperatures\n * @desc Export function to validate if a value is a temperature\n * @example\n *\n * import { isTemperature } from 'itee-validators'\n *\n * if( isTemperature( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport {\n isCelsius,\n isNotCelsius\n} from './isCelsius'\nimport {\n isFahrenheit,\n isNotFahrenheit\n} from './isFahrenheit'\nimport {\n isKelvin,\n isNotKelvin\n} from './isKelvin'\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isTemperature ( data ) {\n return ( isKelvin( data ) || isCelsius( data ) || isFahrenheit( data ) )\n}\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isNotTemperature ( data ) {\n return ( isNotKelvin( data ) && isNotCelsius( data ) && isNotFahrenheit( data ) )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/block-devices/isBlockDevicePath\n * @description Export function to validate if a value is a block device path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isBlockDevicePath } from 'itee-validators'\n *\n * if( isBlockDevicePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport {isNotString} from '../../cores/strings/isString';\n\n/**\n * Check if given path is a block device path\n *\n * @param path {string|Buffer|URL} The data to check against the block device path type\n * @returns {boolean} true if path is a block device path, false otherwise\n */\nexport function isBlockDevicePath ( path ) {\n if( isNotString(path) && !(path instanceof Buffer) && !(path instanceof URL) ) {\n throw new TypeError('Invalid path type! Expect string, buffer or url.')\n }\n\n const stat = fs.statSync( path, { throwIfNoEntry: false } )\n return isDefined(stat) && stat.isBlockDevice()\n}\n\n/**\n * Check if given path is not a block device path\n *\n * @param path {string|Buffer|URL} The data to check against the block device path type\n * @returns {boolean} true if path is not a block device path, false otherwise\n */\nexport function isNotBlockDevicePath ( path ) {\n return !isBlockDevicePath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/paths/isValidPath\n * @description Export function to validate if a value is a valid path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isValidPath } from 'itee-validators'\n *\n * if( isValidPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\n\n/**\n * Check if given data is a valid file path\n *\n * @param data {*} The data to check against the path type\n * @returns {boolean} true if data is a valid path, false otherwise\n */\nexport function isValidPath ( data ) {\n return fs.existsSync( data )\n}\n\n/**\n * Check if given data is not a valid file path\n *\n * @param data {*} The data to check against the path type\n * @returns {boolean} true if data is a valid path, false otherwise\n */\nexport function isInvalidPath ( data ) {\n return !isValidPath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/block-devices/isValidBlockDevicePath\n * @description Export function to validate if a value is a valid block device path.\n * @example\n *\n * import { isValidBlockDevicePath } from 'itee-validators'\n *\n * if( isValidBlockDevicePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isBlockDevicePath } from './isBlockDevicePath'\n\n/**\n * Check if given data is a valid block device path\n *\n * @param data {*} The data to check against the block device path type\n * @returns {boolean} true if data is a valid block device path, false otherwise\n */\nexport function isValidBlockDevicePath ( data ) {\n return ( isValidPath( data ) && isBlockDevicePath( data ) )\n}\n\n/**\n * Check if given data is an invalid block device path\n *\n * @param data {*} The data to check against the block device path type\n * @returns {boolean} true if data is an invalid block device path, false otherwise\n */\nexport function isInvalidBlockDevicePath ( data ) {\n return !isValidBlockDevicePath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/character-devices/isCharacterDevicePath\n * @description Export function to validate if a value is a character device path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isCharacterDevicePath } from 'itee-validators'\n *\n * if( isCharacterDevicePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport {isNotString} from '../../cores/strings/isString';\n\n/**\n * Check if given path is a character device path\n *\n * @param path {string|Buffer|URL} The data to check against the character device path type\n * @returns {boolean} true if path is a character device path, false otherwise\n */\nexport function isCharacterDevicePath ( path ) {\n if( isNotString(path) && !(path instanceof Buffer) && !(path instanceof URL) ) {\n throw new TypeError('Invalid path type! Expect string, buffer or url.')\n }\n\n const stat = fs.statSync( path, { throwIfNoEntry: false } )\n return isDefined(stat) && stat.isCharacterDevice()\n}\n\n/**\n * Check if given path is not a character device path\n *\n * @param path {string|Buffer|URL} The data to check against the character device path type\n * @returns {boolean} true if path is not a character device path, false otherwise\n */\nexport function isNotCharacterDevicePath ( path ) {\n return !isCharacterDevicePath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/character-devices/isValidCharacterDevicePath\n * @description Export function to validate if a value is a valid character device path\n * @example\n *\n * import { isValidCharacterDevicePath } from 'itee-validators'\n *\n * if( isValidCharacterDevicePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isCharacterDevicePath } from './isCharacterDevicePath'\n\n/**\n * Check if given data is a valid character device path\n *\n * @param data {*} The data to check against the character device path type\n * @returns {boolean} true if data is a valid character device path, false otherwise\n */\nexport function isValidCharacterDevicePath ( data ) {\n return ( isValidPath( data ) && isCharacterDevicePath( data ) )\n}\n\n/**\n * Check if given data is an invalid character device path\n *\n * @param data {*} The data to check against the character device path type\n * @returns {boolean} true if data is an invalid character device path, false otherwise\n */\nexport function isInvalidCharacterDevicePath ( data ) {\n return !isValidCharacterDevicePath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/directories/isDirectoryPath\n * @description Export function to validate if a value is a directories path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isDirectoryPath } from 'itee-validators'\n *\n * if( isDirectoryPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport {isNotString} from '../../cores/strings/isString';\n\n/**\n * Check if given path is a directory path\n *\n * @param path {string|Buffer|URL} The data to check against the directory path type\n * @returns {boolean} true if path is a directory path, false otherwise\n */\nexport function isDirectoryPath ( path ) {\n if( isNotString(path) && !(path instanceof Buffer) && !(path instanceof URL) ) {\n throw new TypeError('Invalid path type! Expect string, buffer or url.')\n }\n\n const stat = fs.statSync( path, { throwIfNoEntry: false } )\n return isDefined(stat) && stat.isDirectory()\n}\n\n/**\n * Check if given path is a not directory path\n *\n * @param path {string|Buffer|URL} The data to check against the directory path type\n * @returns {boolean} true if path is a not directory path, false otherwise\n */\nexport function isNotDirectoryPath ( path ) {\n return !isDirectoryPath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/directories/isEmptyDirectory\n * @description Export function to validate if a value is a empty directories\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isEmptyDirectory } from 'itee-validators'\n *\n * if( isEmptyDirectory( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\nimport { isDirectoryPath } from './isDirectoryPath'\n\n/**\n * Check if given directory path is an empty directory\n *\n * @param directoryPath {string|Buffer|URL} The directory path to check the emptiness\n * @returns {boolean} true if directory is empty, false otherwise\n */\nexport function isEmptyDirectory ( directoryPath ) {\n return isDirectoryPath(directoryPath) && ( fs.readdirSync( directoryPath ).length === 0 )\n}\n\n/**\n * Check if given directory path is not an empty directory\n *\n * @param directoryPath {string|Buffer|URL} The directory path to check the emptiness\n * @returns {boolean} true if directory is not empty, false otherwise\n */\nexport function isNotEmptyDirectory ( directoryPath ) {\n return !isEmptyDirectory( directoryPath )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/directories/isValidDirectoryPath\n * @description Export function to validate if a value is a valid directory path\n * @example\n *\n * import { isValidDirectoryPath } from 'itee-validators'\n *\n * if( isValidDirectoryPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isDirectoryPath } from './isDirectoryPath'\n\n/**\n * Check if given data is a valid directory path\n *\n * @param data {*} The data to check against the directory path type\n * @returns {boolean} true if data is a valid directory path, false otherwise\n */\nexport function isValidDirectoryPath ( data ) {\n return ( isValidPath( data ) && isDirectoryPath( data ) )\n}\n\n/**\n * Check if given data is an invalid directory path\n *\n * @param data {*} The data to check against the directory path type\n * @returns {boolean} true if data is an invalid directory path, false otherwise\n */\nexport function isInvalidDirectoryPath ( data ) {\n return !isValidDirectoryPath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/fifo-pipes/isFIFOPath\n * @description Export function to validate if a value is a fifo pipes path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isFIFOPath } from 'itee-validators'\n *\n * if( isFIFOPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport {isNotString} from '../../cores/strings/isString';\n\n/**\n * Check if given path is a fifo path\n *\n * @param path {string|Buffer|URL} The data to check against the fifo path type\n * @returns {boolean} true if path is a fifo path, false otherwise\n */\nexport function isFIFOPath ( path ) {\n if( isNotString(path) && !(path instanceof Buffer) && !(path instanceof URL) ) {\n throw new TypeError('Invalid path type! Expect string, buffer or url.')\n }\n\n const stat = fs.statSync( path, { throwIfNoEntry: false } )\n return isDefined(stat) && stat.isFIFO()\n}\n\n/**\n * Check if given path is not a fifo path\n *\n * @param path {string|Buffer|URL} The data to check against the fifo path type\n * @returns {boolean} true if path is not a fifo path, false otherwise\n */\nexport function isNotFIFOPath ( path ) {\n return !isFIFOPath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/fifo-pipes/isValidFIFOPath\n * @description Export function to validate if a value is a valid fifo pipes path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isValidFIFOPath } from 'itee-validators'\n *\n * if( isValidFIFOPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isFIFOPath } from './isFIFOPath'\n\n/**\n * Check if given data is a valid fifo path\n *\n * @param data {*} The data to check against the fifo path type\n * @returns {boolean} true if data is a valid fifo path, false otherwise\n */\nexport function isValidFIFOPath ( data ) {\n return ( isValidPath( data ) && isFIFOPath( data ) )\n}\n\n/**\n * Check if given data is an invalid fifo path\n *\n * @param data {*} The data to check against the fifo path type\n * @returns {boolean} true if data is an invalid fifo path, false otherwise\n */\nexport function isInvalidFIFOPath ( data ) {\n return !isValidFIFOPath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/files/isFilePath\n * @description Export function to validate if a value is a file path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isFilePath } from 'itee-validators'\n *\n * if( isFilePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport {isNotString} from '../../cores/strings/isString';\n\n/**\n * Check if given path is a file path\n *\n * @param path {string|Buffer|URL} The data to check against the file path type\n * @returns {boolean} true if path is a file path, false otherwise\n */\nexport function isFilePath ( path ) {\n if( isNotString(path) && !(path instanceof Buffer) && !(path instanceof URL) ) {\n throw new TypeError('Invalid path type! Expect string, buffer or url.')\n }\n\n const stat = fs.statSync( path, { throwIfNoEntry: false } )\n return isDefined(stat) && stat.isFile()\n}\n\n/**\n * Check if given path is not a file path\n *\n * @param path {string|Buffer|URL} The data to check against the file path type\n * @returns {boolean} true if path is not a file path, false otherwise\n */\nexport function isNotFilePath ( path ) {\n return !isFilePath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/files/isEmptyFile\n * @description Export function to validate if a value is an empty file\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isEmptyFile } from 'itee-validators'\n *\n * if( isEmptyFile( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\nimport { isFilePath } from './isFilePath'\nimport {isNotString} from '../../cores/strings/isString';\n\n/**\n * Check if given file path is an empty file more or less a threshold in bytes.\n *\n * @param filePath {string|Buffer|URL} The directory path to check the emptiness\n * @param threshold {number} An amount of byte below which it consider the file as empty ( 0 as default ).\n * @returns {boolean} true if file is empty, false otherwise\n */\nexport function isEmptyFile ( filePath, threshold = 0 ) {\n if( isNotString(filePath) && !(filePath instanceof Buffer) && !(filePath instanceof URL) ) {\n throw new TypeError('Invalid path type! Expect string, buffer or url.')\n }\n\n return isFilePath(filePath) && ( fs.statSync( filePath ).size <= threshold )\n}\n\n/**\n * Check if given file path is not an empty file more or less a threshold in bytes.\n *\n * @param filePath {string|Buffer|URL} The directory path to check the emptiness\n * @param threshold {number} An amount of byte above which it consider the file as not empty ( 0 as default ).\n * @returns {boolean} true if file is not empty, false otherwise\n */\nexport function isNotEmptyFile ( filePath, threshold = 0 ) {\n return !isEmptyFile(filePath, threshold)\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/files/isValidFilePath\n * @description Export function to validate if a value is a valid file path\n * @example\n *\n * import { isValidFilePath } from 'itee-validators'\n *\n * if( isValidFilePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isFilePath } from './isFilePath'\n\n/**\n * Check if given data is a valid file path\n *\n * @param data {*} The data to check against the file path type\n * @returns {boolean} true if data is a valid file path, false otherwise\n */\nexport function isValidFilePath ( data ) {\n return ( isValidPath( data ) && isFilePath( data ) )\n}\n\n/**\n * Check if given data is an invalid file path\n *\n * @param data {*} The data to check against the file path type\n * @returns {boolean} true if data is an invalid file path, false otherwise\n */\nexport function isInvalidFilePath ( data ) {\n return !isValidFilePath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/sockets/isSocketPath\n * @description Export function to validate if a value is a socket path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isSocketPath } from 'itee-validators'\n *\n * if( isSocketPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport {isNotString} from '../../cores/strings/isString';\n\n/**\n * Check if given path is a socket path\n *\n * @param path {string|Buffer|URL} The data to check against the socket path type\n * @returns {boolean} true if path is a socket path, false otherwise\n */\nexport function isSocketPath ( path ) {\n if( isNotString(path) && !(path instanceof Buffer) && !(path instanceof URL) ) {\n throw new TypeError('Invalid path type! Expect string, buffer or url.')\n }\n\n const stat = fs.statSync( path, { throwIfNoEntry: false } )\n return isDefined(stat) && stat.isSocket()\n}\n\n/**\n * Check if given path is not a socket path\n *\n * @param path {string|Buffer|URL} The data to check against the socket path type\n * @returns {boolean} true if path is not a socket path, false otherwise\n */\nexport function isNotSocketPath ( path ) {\n return !isSocketPath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/sockets/isValidSocketPath\n * @description Export function to validate if a value is a valid socket path\n * @example\n *\n * import { isValidSocketPath } from 'itee-validators'\n *\n * if( isValidSocketPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isSocketPath } from './isSocketPath'\n\n/**\n * Check if given data is a valid socket path\n *\n * @param data {*} The data to check against the socket path type\n * @returns {boolean} true if data is a valid socket path, false otherwise\n */\nexport function isValidSocketPath ( data ) {\n return ( isValidPath( data ) && isSocketPath( data ) )\n}\n\n/**\n * Check if given data is an invalid socket path\n *\n * @param data {*} The data to check against the socket path type\n * @returns {boolean} true if data is an invalid socket path, false otherwise\n */\nexport function isInvalidSocketPath ( data ) {\n return !isValidSocketPath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/symbolic-links/isSocketPath\n * @description Export function to validate if a value is a symbolic links path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isSymbolicLinkPath } from 'itee-validators'\n *\n * if( isSymbolicLinkPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport fs from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport {isNotString} from '../../cores/strings/isString';\n\n/**\n * Check if given path is a symbolic link path\n *\n * @param path {string|Buffer|URL} The data to check against the symbolic link path type\n * @returns {boolean} true if path is a symbolic link path, false otherwise\n */\nexport function isSymbolicLinkPath ( path ) {\n if( isNotString(path) && !(path instanceof Buffer) && !(path instanceof URL) ) {\n throw new TypeError('Invalid path type! Expect string, buffer or url.')\n }\n\n const stat = fs.statSync( path, { throwIfNoEntry: false } )\n return isDefined(stat) && stat.isSymbolicLink()\n}\n\n/**\n * Check if given path is not a symbolic link path\n *\n * @param path {string|Buffer|URL} The data to check against the symbolic link path type\n * @returns {boolean} true if path is not a symbolic link path, false otherwise\n */\nexport function isNotSymbolicLinkPath ( path ) {\n return !isSymbolicLinkPath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/symbolic-links/isSocketPath\n * @description Export function to validate if a value is a valid symbolic links path\n * @example\n *\n * import { isValidSymbolicLinkPath } from 'itee-validators'\n *\n * if( isValidSymbolicLinkPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isSymbolicLinkPath } from './isSymbolicLinkPath'\n\n/**\n * Check if given data is a valid symbolic link path\n *\n * @param data {*} The data to check against the symbolic link path type\n * @returns {boolean} true if data is a valid symbolic link path, false otherwise\n */\nexport function isValidSymbolicLinkPath ( data ) {\n return ( isValidPath( data ) && isSymbolicLinkPath( data ) )\n}\n\n/**\n * Check if given data is an invalid symbolic link path\n *\n * @param data {*} The data to check against the symbolic link path type\n * @returns {boolean} true if data is an invalid symbolic link path, false otherwise\n */\nexport function isInvalidSymbolicLinkPath ( data ) {\n return !isValidSymbolicLinkPath( data )\n}\n"],"names":["validatorInstance","fs"],"mappings":"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AACA;AACA;AACA;AACA;AACO,SAAS,OAAO,GAAG,IAAI,GAAG;AACjC,IAAI,SAAS,SAAS,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,KAAK,EAAE,EAAE;AACtD;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,SAAS,IAAI,KAAK,MAAM,CAAC,SAAS,EAAE;AACxC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;AACzC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,SAAS,IAAI,KAAK,MAAM,CAAC,SAAS,EAAE;AACxC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;AACzC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG,IAAI,GAAG;AAC1C,IAAI,SAAS,IAAI,KAAK,MAAM,CAAC,gBAAgB,EAAE;AAC/C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG,IAAI,GAAG;AAC1C,IAAI,SAAS,IAAI,KAAK,MAAM,CAAC,gBAAgB,EAAE;AAC/C,CAAC;AACD;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BA;AACA,MAAM,SAAS,CAAC;AAChB;AACA,IAAI,WAAW,CAAC,GAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG;AAC1B,YAAY,OAAO,GAAG,SAAS;AAC/B,YAAY,MAAM,IAAI,QAAQ;AAC9B,YAAY,OAAO,GAAG,SAAS;AAC/B,YAAY,KAAK,KAAK,OAAO;AAC7B,YAAY,KAAK,KAAK,OAAO;AAC7B,YAAY,MAAM,IAAI,QAAQ;AAC9B,YAAY,MAAM,IAAI,QAAQ;AAC9B,YAAY,MAAM,IAAI,QAAQ;AAC9B,YAAY,QAAQ,EAAE,UAAU;AAChC,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,GAAE;AACxB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG;AAC5B;AACA,QAAQ,KAAK,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,qCAAqC,CAAC,EAAE,EAAE;AACrG,QAAQ,KAAK,aAAa,EAAE,SAAS,EAAE,IAAI,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,yDAAyD,CAAC,EAAE,EAAE;AAC5J,QAAQ,KAAK,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,oDAAoD,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;AAC/I;AACA,QAAQ,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,UAAS;AAC3C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,EAAE,IAAI,GAAG;AACpB;AACA,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,GAAE;AACtC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,GAAG;AACzB;AACA,QAAQ,MAAM,eAAe,GAAG,GAAE;AAClC;AACA,QAAQ,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG;AAC3C,YAAY,eAAe,CAAC,IAAI,EAAE,GAAG,GAAE;AACvC,SAAS;AACT;AACA,QAAQ,OAAO,eAAe;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG;AAC9C;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,GAAE;AACjD,QAAQ,KAAK,YAAY,EAAE,SAAS,EAAE,GAAG;AACzC,YAAY,MAAM,IAAI,SAAS,EAAE,CAAC,qDAAqD,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE;AACpG,SAAS;AACT;AACA,QAAQ,IAAI,MAAM,GAAG,KAAI;AACzB,QAAQ,KAAK,UAAU,EAAE,SAAS,EAAE,GAAG;AACvC;AACA,YAAY,MAAM,GAAG,SAAS,EAAE,IAAI,GAAE;AACtC;AACA,SAAS,MAAM,KAAK,QAAQ,EAAE,SAAS,EAAE,GAAG;AAC5C;AACA,YAAY,IAAI,SAAS,GAAG,KAAI;AAChC,YAAY,MAAM,IAAI,GAAG,IAAI,SAAS,GAAG;AACzC;AACA,gBAAgB,MAAM,YAAY,GAAG,SAAS,EAAE,GAAG,GAAE;AACrD,gBAAgB,KAAK,YAAY,EAAE,YAAY,EAAE,GAAG;AACpD,oBAAoB,MAAM,IAAI,SAAS,EAAE,CAAC,sCAAsC,GAAG,GAAG,EAAE,WAAW,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE;AAChH,iBAAiB;AACjB;AACA,gBAAgB,MAAM,KAAK,QAAQ,IAAI,EAAE,GAAG,GAAE;AAC9C,gBAAgB,MAAM,UAAU,GAAG,YAAY,CAAC,SAAQ;AACxD,gBAAgB,KAAK,YAAY,EAAE,KAAK,EAAE,GAAG;AAC7C,oBAAoB,KAAK,UAAU,GAAG;AACtC,wBAAwB,SAAS,GAAG,MAAK;AACzC,qBAAqB,MAAM;AAC3B,wBAAwB,QAAQ;AAChC,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,gBAAgB,IAAI,iBAAiB,GAAG,YAAY,CAAC,GAAE;AACvD,gBAAgB,KAAK,SAAS,EAAE,iBAAiB,EAAE,GAAG;AACtD;AACA,oBAAoB,KAAK,aAAa,EAAE,iBAAiB,EAAE,GAAG;AAC9D,wBAAwB,MAAM,IAAI,SAAS,EAAE,CAAC,4CAA4C,GAAG,GAAG,EAAE,aAAa,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE;AAC5H,qBAAqB;AACrB;AACA,oBAAoB,SAAS,GAAG,iBAAiB,EAAE,KAAK,GAAE;AAC1D;AACA,iBAAiB,MAAM;AACvB;AACA,oBAAoB,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,YAAY,GAAE;AACpF;AACA,iBAAiB;AACjB;AACA,gBAAgB,KAAK,SAAS,KAAK,KAAK,GAAG;AAC3C;AACA,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,6BAA6B,GAAG,GAAG,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,KAAK,EAAE,qBAAqB,GAAG,IAAI,EAAE,CAAC,CAAC,GAAE;AACvK,oBAAoB,MAAM,GAAG,MAAK;AAClC,oBAAoB,KAAK,YAAY,GAAG;AACxC,wBAAwB,KAAK;AAC7B,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,SAAS,MAAM;AACf;AACA,YAAY,MAAM,IAAI,SAAS,EAAE,CAAC,sCAAsC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE;AACrF;AACA,SAAS;AACT;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACIA,iBAAiB,GAAG,UAAS;AACjC,KAAK,YAAY,EAAEA,iBAAiB,EAAE,GAAG;AACzC,IAAIA,iBAAiB,GAAG,IAAI,SAAS,GAAE;AACvC;;ACzTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,SAAS,IAAI,YAAY,WAAW,EAAE;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG,IAAI,GAAG;AAC1C,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE;AACjC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,GAAG,IAAI,GAAG;AACzC,IAAI,SAAS,IAAI,YAAY,aAAa,EAAE;AAC5C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,kBAAkB,GAAG,IAAI,GAAG;AAC5C,IAAI,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE;AACnC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG,IAAI,GAAG;AAC1C,IAAI,SAAS,IAAI,YAAY,cAAc,EAAE;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,GAAG,IAAI,GAAG;AAC7C,IAAI,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE;AACpC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,GAAG,IAAI,GAAG;AACxC,IAAI,SAAS,IAAI,YAAY,YAAY,EAAE;AAC3C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,GAAG,IAAI,GAAG;AAC3C,IAAI,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE;AAClC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,GAAG,IAAI,GAAG;AACxC,IAAI,SAAS,IAAI,YAAY,YAAY,EAAE;AAC3C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,GAAG,IAAI,GAAG;AAC3C,IAAI,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE;AAClC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,GAAG,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,YAAY,UAAU,EAAE;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,GAAG,IAAI,GAAG;AACzC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE;AAChC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,GAAG,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,YAAY,UAAU,EAAE;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,GAAG,IAAI,GAAG;AACzC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE;AAChC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW,GAAG,IAAI,GAAG;AACrC,IAAI,SAAS,IAAI,YAAY,SAAS,EAAE;AACxC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,GAAG,IAAI,GAAG;AACxC,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE;AAC/B;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,SAAS,IAAI,YAAY,WAAW,EAAE;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG,IAAI,GAAG;AAC1C,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE;AACjC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,SAAS,IAAI,YAAY,WAAW,EAAE;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG,IAAI,GAAG;AAC1C,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE;AACjC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,GAAG,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,YAAY,UAAU,EAAE;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,GAAG,IAAI,GAAG;AACzC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE;AAChC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,GAAG,IAAI,GAAG;AAC7C,IAAI,SAAS,IAAI,YAAY,iBAAiB,EAAE;AAChD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,sBAAsB,GAAG,IAAI,GAAG;AAChD,IAAI,OAAO,CAAC,mBAAmB,EAAE,IAAI,EAAE;AACvC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,oBAAoB,GAAG,cAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,qBAAqB,GAAG,CAAC,gBAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,wBAAwB,GAAG,CAAC;;AC/BzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,SAAS,GAAG,IAAI,GAAG;AACnC,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,qBAAqB,EAAE;AAChE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,GAAG,IAAI,GAAG;AACtC,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE;AAC7B;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,GAAG,IAAI,GAAG;AACtC,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,wBAAwB,EAAE;AACnE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,GAAG,IAAI,GAAG;AACzC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE;AAChC;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,QAAQ,GAAG,IAAI,GAAG;AAClC,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,oBAAoB,EAAE;AAC/D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW,GAAG,IAAI,GAAG;AACrC,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE;AAC5B;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAcA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,SAAS,EAAE,IAAI,EAAE,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE;AAC5E,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG,IAAI,GAAG;AAC1C,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,YAAY,EAAE,IAAI,EAAE,IAAI,eAAe,EAAE,IAAI,EAAE,EAAE;AACrF;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,GAAG,IAAI,GAAG;AAC3C,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,GAAG;AACnF,QAAQ,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC;AAC/E,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAGC,sBAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,GAAE;AAC/D,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE;AAClD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,oBAAoB,GAAG,IAAI,GAAG;AAC9C,IAAI,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE;AACrC;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW,GAAG,IAAI,GAAG;AACrC,IAAI,OAAOA,sBAAE,CAAC,UAAU,EAAE,IAAI,EAAE;AAChC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE;AAC/B;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,sBAAsB,GAAG,IAAI,GAAG;AAChD,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,iBAAiB,EAAE,IAAI,EAAE,EAAE;AAC/D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,wBAAwB,GAAG,IAAI,GAAG;AAClD,IAAI,OAAO,CAAC,sBAAsB,EAAE,IAAI,EAAE;AAC1C;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,qBAAqB,GAAG,IAAI,GAAG;AAC/C,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,GAAG;AACnF,QAAQ,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC;AAC/E,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAGA,sBAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,GAAE;AAC/D,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACtD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,wBAAwB,GAAG,IAAI,GAAG;AAClD,IAAI,OAAO,CAAC,qBAAqB,EAAE,IAAI,EAAE;AACzC;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,0BAA0B,GAAG,IAAI,GAAG;AACpD,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,qBAAqB,EAAE,IAAI,EAAE,EAAE;AACnE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,4BAA4B,GAAG,IAAI,GAAG;AACtD,IAAI,OAAO,CAAC,0BAA0B,EAAE,IAAI,EAAE;AAC9C;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,GAAG,IAAI,GAAG;AACzC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,GAAG;AACnF,QAAQ,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC;AAC/E,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAGA,sBAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,GAAE;AAC/D,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE;AAChD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,kBAAkB,GAAG,IAAI,GAAG;AAC5C,IAAI,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE;AACnC;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,GAAG,aAAa,GAAG;AACnD,IAAI,OAAO,eAAe,CAAC,aAAa,CAAC,MAAMA,sBAAE,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7F,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,GAAG,aAAa,GAAG;AACtD,IAAI,OAAO,CAAC,gBAAgB,EAAE,aAAa,EAAE;AAC7C;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,oBAAoB,GAAG,IAAI,GAAG;AAC9C,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,eAAe,EAAE,IAAI,EAAE,EAAE;AAC7D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,sBAAsB,GAAG,IAAI,GAAG;AAChD,IAAI,OAAO,CAAC,oBAAoB,EAAE,IAAI,EAAE;AACxC;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,UAAU,GAAG,IAAI,GAAG;AACpC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,GAAG;AACnF,QAAQ,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC;AAC/E,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAGA,sBAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,GAAE;AAC/D,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AAC3C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE;AAC9B;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,GAAG,IAAI,GAAG;AACzC,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,GAAG,IAAI,GAAG;AAC3C,IAAI,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE;AACnC;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,UAAU,GAAG,IAAI,GAAG;AACpC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,GAAG;AACnF,QAAQ,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC;AAC/E,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAGA,sBAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,GAAE;AAC/D,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AAC3C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,GAAG,IAAI,GAAG;AACvC,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE;AAC9B;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW,GAAG,QAAQ,EAAE,SAAS,GAAG,CAAC,GAAG;AACxD,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,YAAY,MAAM,CAAC,IAAI,EAAE,QAAQ,YAAY,GAAG,CAAC,GAAG;AAC/F,QAAQ,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC;AAC/E,KAAK;AACL;AACA,IAAI,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAMA,sBAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAI,IAAI,SAAS,EAAE;AAChF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,GAAG,QAAQ,EAAE,SAAS,GAAG,CAAC,GAAG;AAC3D,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC5C;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,GAAG,IAAI,GAAG;AACzC,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,GAAG,IAAI,GAAG;AAC3C,IAAI,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE;AACnC;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,GAAG,IAAI,GAAG;AACtC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,GAAG;AACnF,QAAQ,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC;AAC/E,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAGA,sBAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,GAAE;AAC/D,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,GAAG,IAAI,GAAG;AACzC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE;AAChC;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,GAAG,IAAI,GAAG;AAC3C,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,YAAY,EAAE,IAAI,EAAE,EAAE;AAC1D,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,GAAG,IAAI,GAAG;AAC7C,IAAI,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE;AACrC;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,kBAAkB,GAAG,IAAI,GAAG;AAC5C,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,YAAY,MAAM,CAAC,IAAI,EAAE,IAAI,YAAY,GAAG,CAAC,GAAG;AACnF,QAAQ,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC;AAC/E,KAAK;AACL;AACA,IAAI,MAAM,IAAI,GAAGA,sBAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,GAAE;AAC/D,IAAI,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;AACnD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,qBAAqB,GAAG,IAAI,GAAG;AAC/C,IAAI,OAAO,CAAC,kBAAkB,EAAE,IAAI,EAAE;AACtC;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,uBAAuB,GAAG,IAAI,GAAG;AACjD,IAAI,SAAS,WAAW,EAAE,IAAI,EAAE,IAAI,kBAAkB,EAAE,IAAI,EAAE,EAAE;AAChE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,yBAAyB,GAAG,IAAI,GAAG;AACnD,IAAI,OAAO,CAAC,uBAAuB,EAAE,IAAI,EAAE;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"itee-validators.cjs.js","sources":["../sources/cores/arrays/isArray.js","../sources/cores/arrays/isEmptyArray.js","../sources/cores/arrays/isArrayOfArray.js","../sources/cores/booleans/isBoolean.js","../sources/cores/arrays/isArrayOfBoolean.js","../sources/cores/functions/isFunction.js","../sources/cores/arrays/isArrayOfFunction.js","../sources/cores/arrays/isArrayOfMultiElement.js","../sources/cores/voids/isNull.js","../sources/cores/arrays/isArrayOfNull.js","../sources/cores/voids/isDefined.js","../sources/cores/numbers/isInfinite.js","../sources/cores/numbers/isZero.js","../sources/cores/numbers/isNumber.js","../sources/cores/arrays/isArrayOfNumber.js","../sources/cores/objects/isObject.js","../sources/cores/arrays/isArrayOfObject.js","../sources/cores/arrays/isArrayOfSingleElement.js","../sources/cores/strings/isString.js","../sources/cores/arrays/isArrayOfString.js","../sources/cores/voids/isUndefined.js","../sources/cores/arrays/isArrayOfUndefined.js","../sources/cores/booleans/isTrue.js","../sources/cores/numbers/isMax.js","../sources/cores/numbers/isMin.js","../sources/cores/numbers/isSafeInteger.js","../sources/cores/objects/isEmptyObject.js","../sources/cores/strings/isEmptyString.js","../sources/cores/strings/isBlankString.js","../sources/cores/symbols/isSymbol.js","../sources/cores/voids/isEmpty.js","../sources/cores/cores.js","../sources/cores/typed-arrays/isArrayBuffer.js","../sources/cores/typed-arrays/isBigInt64Array.js","../sources/cores/typed-arrays/isBigUint64Array.js","../sources/cores/typed-arrays/isFloat32Array.js","../sources/cores/typed-arrays/isFloat64Array.js","../sources/cores/typed-arrays/isInt16Array.js","../sources/cores/typed-arrays/isInt32Array.js","../sources/cores/typed-arrays/isInt8Array.js","../sources/cores/typed-arrays/isUint16Array.js","../sources/cores/typed-arrays/isUint32Array.js","../sources/cores/typed-arrays/isUint8Array.js","../sources/cores/typed-arrays/isUint8ClampedArray.js","../sources/physics/temperatures/constants.js","../sources/physics/temperatures/isCelsius.js","../sources/physics/temperatures/isFahrenheit.js","../sources/physics/temperatures/isKelvin.js","../sources/physics/temperatures/isTemperature.js","../sources/file-system/block-devices/isBlockDevicePath.js","../sources/file-system/paths/isValidPath.js","../sources/file-system/block-devices/isValidBlockDevicePath.js","../sources/file-system/character-devices/isCharacterDevicePath.js","../sources/file-system/character-devices/isValidCharacterDevicePath.js","../sources/file-system/directories/isDirectoryPath.js","../sources/file-system/directories/isEmptyDirectory.js","../sources/file-system/directories/isValidDirectoryPath.js","../sources/file-system/fifo-pipes/isFIFOPath.js","../sources/file-system/fifo-pipes/isValidFIFOPath.js","../sources/file-system/files/isFilePath.js","../sources/file-system/files/isEmptyFile.js","../sources/file-system/files/isValidFilePath.js","../sources/file-system/sockets/isSocketPath.js","../sources/file-system/sockets/isValidSocketPath.js","../sources/file-system/symbolic-links/isSymbolicLinkPath.js","../sources/file-system/symbolic-links/isValidSymbolicLinkPath.js"],"sourcesContent":["/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArray\n * @desc Export functions to validate if a value is an array or not\n * @example {@lang javascript}\n *\n * import { isArray } from 'itee-validators'\n *\n * if( isArray( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is an array\n *\n * @param data {*} The data to check against the array type\n * @returns {boolean} true if data is array, false otherwise\n */\nexport function isArray( data ) {\n return Array.isArray( data )\n}\n\n/**\n * Check if given data is not an array\n *\n * @param data {*} The data to check against the array type\n * @returns {boolean} true if data is not array, false otherwise\n */\nexport function isNotArray( data ) {\n return !Array.isArray( data )\n}\n\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isArray_0( data ) {\n return data instanceof Array\n}\n\nexport function isNotArray_0( data ) {\n return !isArray( data )\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isEmptyArray\n * @desc Export function to validate if a value is an array of null length or not\n * @example\n *\n * import { isEmptyArray } from 'itee-validators'\n *\n * if( isEmptyArray( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotArray } from './isArray'\n\n/**\n * Check if given data is an empty array\n *\n * @param data {*} The data to check against the empty array\n * @returns {boolean} true if data is an empty array, false otherwise\n */\nexport function isEmptyArray( data ) {\n\n if ( isNotArray( data ) ) { return false }\n\n return ( data.length === 0 )\n\n}\n\n/**\n * Check if given data is not an empty array\n *\n * @param data {*} The data to check against the empty array\n * @returns {boolean} true if data is not an empty array, false otherwise\n */\nexport function isNotEmptyArray( data ) {\n\n if ( isNotArray( data ) ) { return true }\n\n return ( data.length > 0 )\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfArray\n * @desc Export function to validate if a value is an array of array or not\n * @example\n *\n * import { isArrayOfArray } from 'itee-validators'\n *\n * if( isArrayOfArray( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport {\n isArray,\n isNotArray\n} from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is an array of array\n *\n * @param data {*} The data to check against the array of array type\n * @returns {boolean} true if data is an array of array, false otherwise\n */\nexport function isArrayOfArray( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotArray( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an array of array\n *\n * @param data {*} The data to check against the array of array type\n * @returns {boolean} true if data is not an array of array, false otherwise\n */\nexport function isNotArrayOfArray( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isArray( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/booleans/isBoolean\n * @desc Export function to validate if a value is a boolean or not\n * @example\n *\n * import { isBoolean } from 'itee-validators'\n *\n * if( isBoolean( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a boolean\n *\n * @param data {*} The data to check against the booleaness\n * @returns {boolean} true if data is a boolean, false otherwise.\n */\nexport function isBoolean( data ) {\n return ( typeof data === 'boolean' )\n}\n\n/**\n * Check if given data is not a boolean\n *\n * @param data {*} The data to check against the booleaness\n * @returns {boolean} true if data is not a boolean, false otherwise.\n */\nexport function isNotBoolean( data ) {\n return ( typeof data !== 'boolean' )\n}\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isBoolean_alt( data ) {\n return typeof data === 'boolean' || ( typeof data === 'object' && data !== null && typeof data.valueOf() === 'boolean' )\n}\n\nexport function isNotBoolean_negbase( data ) {\n return !isBoolean( data )\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfBoolean\n * @desc Export function to validate if a value is an array of booleans or not\n * @example\n *\n * import { isArrayOfBoolean } from 'itee-validators'\n *\n * if( isArrayOfBoolean( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotBoolean } from '../booleans/isBoolean'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are boolean\n *\n * @param data {*} The data to check against the array of booleans\n * @returns {boolean} true if data is not an empty array where all values are boolean, false otherwise\n */\nexport function isArrayOfBoolean( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotBoolean( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not boolean\n *\n * @param data {*} The data to check against the array of booleans\n * @returns {boolean} true if data is not an empty array where all values are not boolean, false otherwise\n */\nexport function isNotArrayOfBoolean( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotBoolean( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/functions/isFunction\n * @desc Export function to validate if a value is a function or not\n * @example\n *\n * import { isFunction } from 'itee-validators'\n *\n * if( isFunction( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a function\n *\n * @param data {*} The data to check against the functionality\n * @returns {boolean} true if data is a function, false otherwise.\n */\nexport function isFunction( data ) {\n return ( typeof data === 'function' )\n}\n\n/**\n * Check if given data is not a function\n *\n * @param data {*} The data to check against the functionality\n * @returns {boolean} true if data is not a function, false otherwise.\n */\nexport function isNotFunction( data ) {\n return ( typeof data !== 'function' )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfBoolean\n * @desc Export function to validate if a value is an array of functions or not\n * @example\n *\n * import { isArrayOfFunction } from 'itee-validators'\n *\n * if( isArrayOfFunction( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotFunction } from '../functions/isFunction'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are functions\n *\n * @param data {*} The data to check against the array of functions\n * @returns {boolean} true if data is not an empty array where all values are functions, false otherwise\n */\nexport function isArrayOfFunction( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotFunction( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not functions\n *\n * @param data {*} The data to check against the array of functions\n * @returns {boolean} true if data is not an empty array where all values are not functions, false otherwise\n */\nexport function isNotArrayOfFunction( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotFunction( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfMultiElement\n * @desc Export function to validate if a value is an array with more than one value\n * @example\n *\n * import { isArrayOfMultiElement } from 'itee-validators'\n *\n * if( isArrayOfMultiElement( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotArray } from './isArray'\n\n/**\n * Check if given data is an array with multiples values\n *\n * @param data {*} The data to check against the single valued array\n * @returns {boolean} true if data is an array with multiples values, false otherwise\n */\nexport function isArrayOfMultiElement( data ) {\n\n if ( isNotArray( data ) ) { return false }\n\n return ( data.length > 1 )\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/voids/isNull\n * @desc Export function to validate if a value is null or not\n * @example\n *\n * import { isNull } from 'itee-validators'\n *\n * if( isNull( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is null\n *\n * @param data {*} The data to check against the nullity\n * @returns {boolean} true if data is null, false otherwise.\n */\nexport function isNull( data ) {\n return ( data === null )\n}\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isNull_0( value ) {\n return Object.is( value, null )\n}\n\n// #endif\n\n/**\n * Check if given data is not null\n *\n * @param data {*} The data to check against the nullity\n * @returns {boolean} true if data is not null, false otherwise.\n */\nexport function isNotNull( data ) {\n return ( data !== null )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfNull\n * @desc Export function to validate if a value is an array of null values or not\n * @example\n *\n * import { isArrayOfNull } from 'itee-validators'\n *\n * if( isArrayOfNull( value ) ) {\n * //...\n * } else {\n * //...\n * } *\n */\n\nimport { isNotNull } from '../voids/isNull'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are null\n *\n * @param data {*} The data to check against the array of null type\n * @returns {boolean} true if data is not an empty array where all values are null, false otherwise\n */\nexport function isArrayOfNull( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotNull( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not null\n *\n * @param data {*} The data to check against the array of null type\n * @returns {boolean} true if data is not an empty array where all values are not null, false otherwise\n */\nexport function isNotArrayOfNull( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotNull( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/voids/isDefined\n * @desc Export function to validate if a value is a defined or not\n * @example\n *\n * import { isDefined } from 'itee-validators'\n *\n * if( isDefined( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is not null and not undefined\n *\n * @param data {*} The data to check against the existence\n * @returns {boolean} true if data is not null and not undefined, false otherwise.\n */\nexport function isDefined( data ) {\n return ( ( data !== null ) && ( typeof data !== 'undefined' ) )\n}\n\n/**\n * Check if given data is null or undefined\n *\n * @param data {*} The data to check against the existence\n * @returns {boolean} true if data is null or undefined, false otherwise.\n */\nexport function isNotDefined( data ) {\n return ( ( data === null ) || ( typeof data === 'undefined' ) )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isInfinite\n * @desc Export function to validate if a value is a finite or infinite number\n * @example\n *\n * import { isInfinite } from 'itee-validators'\n *\n * if( isInfinite( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n\n/**\n * Check if the given data is an infinite negative number\n *\n * @param data {*} The data to check against the negative infinite state\n * @returns {boolean} true if data is negative infinite, false otherwise\n */\nexport function isInfiniteNegative( data ) {\n return ( data === Number.NEGATIVE_INFINITY )\n}\n\n/**\n * Check if the given data is an infinite positive number\n *\n * @param data {*} The data to check against the positive infinite state\n * @returns {boolean} true if data is positive infinite, false otherwise\n */\nexport function isInfinitePositive( data ) {\n return ( data === Number.POSITIVE_INFINITY )\n}\n\n/**\n * Check if the given data is an infinite number\n *\n * @param data {*} The data to check against the infinite state\n * @returns {boolean} true if data is infinite, false otherwise\n */\nexport function isInfinite( data ) {\n return isInfiniteNegative( data ) || isInfinitePositive( data )\n}\n\n/**\n * Check if the given data is a finite number\n *\n * @param data {*} The data to check against the finite state\n * @returns {boolean} true if data is finite, false otherwise\n */\nexport function isFinite( data ) {\n return Number.isFinite( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isZero\n * @desc Export function to validate if a value is zero, with a special sign\n * @example\n *\n * import { isZero } from 'itee-validators'\n *\n * if( isZero( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n// Todo: negations\n\n/**\n * Check if the given data is zero\n *\n * @param data {*} The data to check against the zero value\n * @returns {boolean} true if data is zero, false otherwise\n */\nexport function isZero( data ) {\n //Todo protect truthy values\n return ( data === 0 )\n}\n\n/**\n * Check if the given data is a positive zero\n *\n * @param data {*} The data to check against the positive zero value\n * @returns {boolean} true if data is a positive zero, false otherwise\n */\nexport function isZeroPositive( data ) {\n return ( data === 0 && ( 1 / data ) === Number.POSITIVE_INFINITY )\n}\n\n/**\n * Check if the given data is a negative zero\n *\n * @param data {*} The data to check against the negative zero value\n * @returns {boolean} true if data is a negative zero, false otherwise\n */\nexport function isZeroNegative( data ) {\n return ( data === 0 && ( 1 / data ) === Number.NEGATIVE_INFINITY )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isNumber\n * @desc Export function to validate if a value is a number, or with special sign\n * @example\n *\n * import { isNumber } from 'itee-validators'\n *\n * if( isNumber( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n// Todo: Negations\n//Todo: isInRange(x, y, value, xInclusive, yInclusive)\n//Todo: isInRangeZeroOne(value, zeroInclusive, oneInclusive) //inclusive\n\nimport { isNotDefined } from '../voids/isDefined'\nimport {\n isInfinite,\n isInfinitePositive\n} from './isInfinite'\nimport { isZeroPositive } from './isZero'\n\n/**\n * Check if given data is a number\n *\n * @param data {*} The data to check against the maximum safe integer state\n * @returns {boolean} true if data is a number, false otherwise.\n */\nexport function isNumber( data ) {\n\n if ( isNotDefined( data ) ) { return false }\n\n return ( data.constructor === Number )\n\n}\n\n/**\n * Check if the data is a positive number\n *\n * @param data {*} The data to check against the positivity\n * @returns {boolean} true if data is a positive number, false otherwise.\n */\nexport function isNumberPositive( data ) {\n\n if ( isNotNumber( data ) ) { return false }\n\n // Todo: Math.sign\n return ( data > 0 || isZeroPositive( data ) || isInfinitePositive( data ) )\n\n}\n\n/**\n * Check if the data is a negative number\n *\n * @param data {*} The data to check against the negativity\n * @returns {boolean} true if data is a negative number, false otherwise.\n */\nexport function isNumberNegative( data ) {\n return ( isNumber( data ) && data < 0 )\n}\n\n/**\n * Check if given data is not a number\n *\n * @param data {*} The data to check against the number type\n * @returns {boolean} true if data is not of type number or not a number, false otherwise.\n */\nexport function isNotNumber( data ) {\n return !( isNumber( data ) )\n}\n\n/**\n * Check if the given data is an integer number\n *\n * @param data {*} The data to check against the integer state\n * @returns {boolean} true if data is an integer, false otherwise\n */\nexport function isInteger( data ) {\n return Number.isInteger( data )\n}\n\n/**\n * Check if given data is a floating point number\n *\n * @param data {*} The data to check against the floating point\n * @returns {boolean} true if data is a float, false otherwise\n */\nexport function isFloat( data ) {\n\n if ( isNotNumber( data ) ) { return false }\n if ( Number.isNaN( data ) ) { return false }\n if ( isInfinite( data ) ) { return false}\n\n return data % 1 !== 0\n\n}\n\n/**\n * Check if given data is not a number\n *\n * @param data {*} The data to check against the NaN state\n * @returns {boolean} true if data is not a number, false otherwise.\n */\nexport function isNaN( data ) {\n return Number.isNaN( data )\n}\n\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isNumber_0( data ) {\n return ( typeof data === 'number' && !Number.isNaN( data ) )\n}\n\nexport function isNumber_1( data ) {\n return ( Number( data ) === data )\n}\n\n///\n\nexport function isInteger_0( data ) {\n return ( data === 0 && ( 1 / data ) === Number.POSITIVE_INFINITY )\n}\n\nexport function isInteger_1( data ) {\n return data % 1 === 0\n}\n\nexport function isInteger_2( n ) {\n return n === +n && n === ( n | 0 )\n}\n\nexport function isInteger_3( nVal ) {\n return typeof nVal === 'number' && isFinite( nVal ) && nVal > -9007199254740992 && nVal < 9007199254740992 && Math.floor( nVal ) === nVal\n}\n\n///\n\nexport function isFloat_1( n ) {\n return n === +n && n !== ( n | 0 )\n}\n\nexport function isFloat_2( x ) {\n return !!( x % 1 )\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfBoolean\n * @desc Export function to validate if a value is an array of numbers or not\n * @example\n *\n * import { isArrayOfNumber } from 'itee-validators'\n *\n * if( isArrayOfNumber( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotNumber } from '../numbers/isNumber'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are numbers\n *\n * @param data {*} The data to check against the array of numbers\n * @returns {boolean} true if data is not an empty array where all values are numbers, false otherwise\n */\nexport function isArrayOfNumber( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotNumber( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not numbers\n *\n * @param data {*} The data to check against the array of numbers\n * @returns {boolean} true if data is not an empty array where all values are not numbers, false otherwise\n */\nexport function isNotArrayOfNumber( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotNumber( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/objects/isObject\n * @desc Export function to validate if a value is an object\n * @example\n *\n * import { isObject } from 'itee-validators'\n *\n * if( isObject( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotDefined } from '../voids/isDefined'\n\n/**\n * Check if given data is an object\n *\n * @param data {*} The data to check against the object type\n * @returns {boolean} true if data is object, false otherwise\n */\nexport function isObject( data ) {\n\n if ( isNotDefined( data ) ) { return false }\n\n return ( data.constructor === Object )\n}\n\n/**\n * Check if given data is not an object\n *\n * @param data {*} The data to check against the object type\n * @returns {boolean} true if data is not an object, false otherwise\n */\nexport function isNotObject( data ) {\n return !isObject( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfObject\n * @desc Export function to validate if a value is an array of objects or not\n * @example\n *\n * import { isArrayOfObject } from 'itee-validators'\n *\n * if( isArrayOfObject( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotObject } from '../objects/isObject'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is an array where all values are of object type\n *\n * @param data {*} The data to check against the array of object type\n * @returns {boolean} true if data is an array where all values are of object type, false otherwise\n */\nexport function isArrayOfObject( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotObject( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an array where all values are of object type\n *\n * @param data {*} The data to check against the array of object type\n * @returns {boolean} true if data is not an array where all values are of object type, false otherwise\n */\nexport function isNotArrayOfObject( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotObject( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfSingleElement\n * @desc Export function to validate if a value is an array of single value or not\n * @example\n *\n * import { isArrayOfSingleElement } from 'itee-validators'\n *\n * if( isArrayOfSingleElement( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotArray } from './isArray'\n\n/**\n * Check if given data is an array with a single value\n *\n * @param data {*} The data to check against the single valued array\n * @returns {boolean} true if data is an array with a single value, false otherwise\n */\nexport function isArrayOfSingleElement( data ) {\n\n if ( isNotArray( data ) ) { return false }\n\n if ( data.length !== 1 ) {\n return false\n }\n\n return true\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/strings/isString\n * @desc Export function to validate if a value is a string\n * @example\n *\n * import { isString } from 'itee-validators'\n *\n * if( isString( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a string\n *\n * @param data {*} The data to check against the string type\n * @returns {boolean} true if data is a string, false otherwise.\n */\nexport function isString( data ) {\n return ( typeof data === 'string' || data instanceof String )\n}\n\n/**\n * Check if given data is not a string\n *\n * @param data {*} The data to check against the string type\n * @returns {boolean} true if data is not a string, false otherwise.\n */\nexport function isNotString( data ) {\n return !isString( data )\n}\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isString_0( val ) {\n return ( typeof val === 'string' )\n}\n\nexport function isString_1( val ) {\n return ( typeof val === 'string' || ( ( !!val && typeof val === 'object' ) && Object.prototype.toString.call( val ) === '[object String]' ) )\n}\n\nexport function isString_2( val ) {\n return ( Object.prototype.toString.call( val ) === '[object String]' )\n}\n\nexport function isString_3( val ) {\n return ( val !== null && val !== undefined && val.constructor === String )\n}\n\nexport function isString_4( val ) {\n return ( val === val + '' )\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfString\n * @desc Export function to validate if a value is an array of string or not\n * @example\n *\n * import { isArrayOfString } from 'itee-validators'\n *\n * if( isArrayOfString( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotString } from '../strings/isString'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are string\n *\n * @param data {*} The data to check against the array of strings\n * @returns {boolean} true if data is not an empty array where all values are string, false otherwise\n */\nexport function isArrayOfString( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotString( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are not string\n *\n * @param data {*} The data to check against the array of strings\n * @returns {boolean} true if data is not an empty array where all values are not string, false otherwise\n */\nexport function isNotArrayOfString( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotString( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n\n// #if IS_REMOVE_ON_BUILD\n\nexport function isArrayOfString_1( data ) {\n\n if ( !Array.isArray( data ) ) {\n return false\n }\n\n const dataLength = data.length\n if ( dataLength === 0 ) {\n return false\n }\n\n for ( let index = 0, arrayLength = data.length ; index < arrayLength ; index += 1 ) {\n if ( typeof data[ index ] !== 'string' ) {\n return false\n }\n }\n\n return true\n\n}\n\n// #endif\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/voids/isUndefined\n * @desc Export function to validate if a value is a void\n * @example\n *\n * import { isNull } from 'itee-validators'\n *\n * if( isNull( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is undefined\n *\n * @param data {*} The data to check against the undefiness\n * @returns {boolean} true if data is undefined, false otherwise.\n */\nexport function isUndefined( data ) {\n return ( typeof data === 'undefined' )\n}\n\n/**\n * Check if given data is defined\n *\n * @param data {*} The data to check against the undefiness\n * @returns {boolean} true if data is defined, false otherwise.\n */\nexport function isNotUndefined( data ) {\n return ( typeof data !== 'undefined' )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/arrays/isArrayOfUndefined\n * @desc Export function to validate if a value is an array of undefined values or not\n * @example\n *\n * import { isArrayOfUndefined } from 'itee-validators'\n *\n * if( isArrayOfUndefined( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotUndefined } from '../voids/isUndefined'\nimport { isNotArray } from './isArray'\nimport { isEmptyArray } from './isEmptyArray'\n\n/**\n * Check if given data is not an empty array where all values are undefined\n *\n * @param data {*} The data to check against the array of undefined\n * @returns {boolean} true if data is not an empty array where all values are undefined, false otherwise\n */\nexport function isArrayOfUndefined( data ) {\n\n if ( isNotArray( data ) ) { return false }\n if ( isEmptyArray( data ) ) { return false }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotUndefined( data[ index ] ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty array where all values are defined\n *\n * @param data {*} The data to check against the array of undefined\n * @returns {boolean} true if data is not an empty array where all values are defined, false otherwise\n */\nexport function isNotArrayOfUndefined( data ) {\n\n if ( isNotArray( data ) ) { return true }\n if ( isEmptyArray( data ) ) { return true }\n\n for ( let index = 0, dataLength = data.length ; index < dataLength ; index++ ) {\n if ( isNotUndefined( data[ index ] ) ) {\n return true\n }\n }\n\n return false\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/booleans/isTrue\n * @desc Export function to validate if a value is a boolean set to true or false\n * @example\n *\n * import { isTrue } from 'itee-validators'\n *\n * if( isTrue( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isBoolean } from './isBoolean'\n\n/**\n * Check if given data is a boolean with value to true\n *\n * @param data {*} The data to check against true value\n * @returns {boolean} true if data is a boolean set to true, false otherwise.\n */\nexport function isTrue( data ) {\n return ( isBoolean( data ) && ( data === true ) )\n}\n\n/**\n * Check if given data is a boolean with value to false\n *\n * @param data {*} The data to check against false value\n * @returns {boolean} true if data is a boolean set to false, false otherwise.\n */\nexport function isFalse( data ) {\n return ( isBoolean( data ) && ( data === false ) )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isMax\n * @desc Export function to validate if a value is a maximum javascript number\n * @example\n *\n * import { isMaxPositive } from 'itee-validators'\n *\n * if( isMaxPositive( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if the given data is a maximum positive number\n *\n * @param data {*} The data to check against the positive maximum state\n * @returns {boolean} true if data is positive maximum, false otherwise\n */\nexport function isMaxPositive( data ) {\n return ( data === Number.MAX_VALUE )\n}\n\n/**\n * Check if the given data is a maximum negative number\n *\n * @param data {*} The data to check against the maximum infinite state\n * @returns {boolean} true if data is negative maximum, false otherwise\n */\nexport function isMaxNegative( data ) {\n return ( data === -Number.MAX_VALUE )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isMin\n * @desc Export function to validate if a value is a minimum javascript number\n * @example\n *\n * import { isMaxPositive } from 'itee-validators'\n *\n * if( isMaxPositive( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if the given data is a minimum positive number\n *\n * @param data {*} The data to check against the positive minimum state\n * @returns {boolean} true if data is positive minimum, false otherwise\n */\nexport function isMinPositive( data ) {\n return ( data === Number.MIN_VALUE )\n}\n\n/**\n * Check if the given data is a minimum negative number\n *\n * @param data {*} The data to check against the minimum infinite state\n * @returns {boolean} true if data is negative minimum, false otherwise\n */\nexport function isMinNegative( data ) {\n return ( data === -Number.MIN_VALUE )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/numbers/isSafeInteger\n * @desc Export function to validate if a value is a safe integer number\n * @example\n *\n * import { isMaxSafeInteger } from 'itee-validators'\n *\n * if( isMaxSafeInteger( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if the given data is a maximum safe integer number\n *\n * @param data {*} The data to check against the maximum safe integer state\n * @returns {boolean} true if data is a maximum safe integer, false otherwise\n */\nexport function isMaxSafeInteger( data ) {\n return ( data === Number.MAX_SAFE_INTEGER )\n}\n\n// Todo: Neg\n\n/**\n * Check if the given data is a minimum safe integer number\n *\n * @param data {*} The data to check against the minimum safe integer state\n * @returns {boolean} true if data is a minimum safe integer, false otherwise\n */\nexport function isMinSafeInteger( data ) {\n return ( data === Number.MIN_SAFE_INTEGER )\n}\n\n// Todo: Neg\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/objects/isEmptyObject\n * @desc Export function to validate if a value is an empty object\n * @example\n *\n * import { isEmptyObject } from 'itee-validators'\n *\n * if( isEmptyObject( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotObject } from './isObject'\n\n/**\n * Check if given data is an empty object\n *\n * @param data {*} The data to check against the emptiness of the object\n * @returns {boolean} true if data is an empty object, false otherwise\n */\nexport function isEmptyObject( data ) {\n\n if ( isNotObject( data ) ) { return false }\n\n if ( data.length === 0 ) {\n return true\n }\n\n // Otherwise, does it have any properties of its own?\n for ( let key in data ) {\n if ( Object.prototype.hasOwnProperty.call( data, key ) ) {\n return false\n }\n }\n\n return true\n\n}\n\n/**\n * Check if given data is not an empty object\n *\n * @param data {*} The data to check against the emptiness of the object\n * @returns {boolean} true if data is not an empty object, false otherwise\n */\nexport function isNotEmptyObject( data ) {\n return !( isEmptyObject( data ) )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/strings/isEmptyString\n * @desc Export function to validate if a value is a empty string\n * @example\n *\n * import { isEmptyString } from 'itee-validators'\n *\n * if( isEmptyString( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNotString } from './isString'\n\n/**\n * Check if given data is an empty string\n *\n * @param data {*} The data to check against the emptiness of the string\n * @returns {boolean} true if data is an empty string, false otherwise.\n */\nexport function isEmptyString( data ) {\n\n if ( isNotString( data ) ) {\n return false\n }\n\n return ( data.length === 0 )\n\n}\n\n/**\n * Check if given data is not an empty string\n *\n * @param data {*} The data to check against the emptiness of the string\n * @returns {boolean} true if data is not an empty string, false otherwise.\n */\nexport function isNotEmptyString( data ) {\n\n return !( isEmptyString( data ) )\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/strings/isBlankString\n * @desc Export function to validate if a value is a blank string\n * @example\n *\n * import { isBlankString } from 'itee-validators'\n *\n * if( isBlankString( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isEmptyString } from './isEmptyString'\nimport { isNotString } from './isString'\n\n/**\n * Check if the given data is a blank string\n *\n * @param data {*} The data to check against the blankness of the string\n * @returns {boolean} true if data is a blank string, false otherwise.\n */\nexport function isBlankString( data ) {\n\n if ( isNotString( data ) ) { return false }\n if ( isEmptyString( data ) ) { return false }\n\n return ( !/\\S/.test( data ) )\n}\n\n/**\n * Check if the given data is not a blank string\n *\n * @param data {*} The data to check against the blankness of the string\n * @returns {boolean} true if data is not a blank string, false otherwise.\n */\nexport function isNotBlankString( data ) {\n\n return !( isBlankString( data ) )\n\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/symbols/isSymbol\n * @desc Export function to validate if a value is a symbol\n * @example\n *\n * import { isSymbol } from 'itee-validators'\n *\n * if( isSymbol( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a symbol\n *\n * @param data {*} The data to check against the symbol type\n * @returns {boolean} true if data is a symbol, false otherwise.\n */\nexport function isSymbol( data ) {\n return ( typeof data === 'symbol' )\n}\n\n/**\n * Check if given data is not a symbol\n *\n * @param data {*} The data to check against the symbol type\n * @returns {boolean} true if data is not a symbol, false otherwise.\n */\nexport function isNotSymbol( data ) {\n return ( typeof data !== 'symbol' )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/voids/isEmpty\n * @desc Export function to validate if a value could be considered as empty\n * @example\n *\n * import { isEmpty } from 'itee-validators'\n *\n * if( isEmpty( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isEmptyArray } from '../arrays/isEmptyArray'\nimport { isEmptyObject } from '../objects/isEmptyObject'\nimport { isEmptyString } from '../strings/isEmptyString'\nimport { isNotDefined } from './isDefined'\n\n/**\n * Check emptiness of given data\n *\n * See: https://stackoverflow.com/questions/4346186/how-to-determine-if-a-function-is-empty\n *\n * @param data {*} The data to check against the emptiness\n * @returns {boolean} true if data is considered as empty, false otherwise.\n */\nexport function isEmpty( data ) {\n\n if ( isNotDefined( data ) ) { return false }\n if ( isEmptyString( data ) ) { return true}\n if ( isEmptyArray( data ) ) { return true }\n if ( isEmptyObject( data ) ) { return true }\n\n return false\n\n}\n\n/**\n * Check fullness of given data\n *\n * @param data {*} The data to check against the emptiness\n * @returns {boolean} true if data is considered as not empty, false otherwise.\n */\nexport function isNotEmpty( data ) {\n return !isEmpty( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/cores\n * @description Export the Validator singleton instance that allow to validate complex data structure\n * @example\n *\n const validator = Itee.Validators.Validator\n\n // Using unique function for One registered type\n // Usefull when a simple data structure is used multiple times\n validator.add( 'ColorType', color => {\n\n const r = color.r\n if ( color.r === undefined || Itee.Validators.isNotNumber( r ) ) {\n return false\n }\n\n const g = color.g\n if ( color.g === undefined || Itee.Validators.isNotNumber( g ) ) {\n return false\n }\n\n const b = color.b\n if ( color.b === undefined || Itee.Validators.isNotNumber( b ) ) {\n return false\n }\n\n return true\n } )\n\n // Using schema composition\n // Usefull for design validation schema faster and based on previous declared validation types\n validator.add( 'Range_0_255', ( value ) => {\n\n if ( Itee.Validators.isNotNumber( value ) ) {\n return false\n }\n\n return !(value <= 0 || value > 255)\n\n } )\n\n validator.add( 'ColorSchema', {\n r: {\n required: true,\n type: 'Range_0_255'\n },\n g: {\n required: true,\n type: 'Range_0_255'\n },\n b: {\n required: true,\n type: 'Range_0_255'\n }\n } )\n\n validator.add( 'ColorStructure', {\n color_from_type: {\n type: 'ColorType'\n },\n col_from_schema: {\n type: 'ColorSchema'\n },\n col_from_fn: {\n // Inner function\n // Usefull for specific validation requirement that cannot match other previous validation schema or type\n fn: function ColorValidator ( color ) {\n\n const r = color.r\n if ( color.r === undefined || Itee.Validators.isNotNumber( r ) ) {\n return false\n }\n\n const g = color.g\n if ( color.g === undefined || Itee.Validators.isNotNumber( g ) ) {\n return false\n }\n\n const b = color.b\n if ( color.b === undefined || Itee.Validators.isNotNumber( b ) ) {\n return false\n }\n\n return true\n }\n }\n } )\n\n // The data to validate\n const colorStruct = {\n color_from_type: {\n r: 0,\n g: 1,\n b: 2\n },\n col_from_schema: {\n r: 10,\n g: 20,\n b: 30\n },\n col_from_fn: {\n r: 0,\n g: 127,\n b: 255\n }\n }\n\n // Execute\n\n try {\n\n if ( validator.check( colorStruct, 'ColorStructure' ) ) {\n alert( 'ColorStructure is valid !' )\n } else {\n alert( validator.errors )\n }\n\n } catch ( err ) {\n alert( err )\n }\n *\n */\n\nimport { isArray } from './arrays/_arrays'\nimport { isBoolean } from './booleans/_booleans'\nimport {\n isFunction,\n isNotFunction\n} from './functions/_functions'\nimport {\n isFloat,\n isInteger,\n isNumber\n} from './numbers/_numbers'\nimport {\n isNotObject,\n isObject\n} from './objects/_objects'\nimport {\n isNotString,\n isString\n} from './strings/_strings'\nimport { isSymbol } from './symbols/_symbols'\nimport {\n isDefined,\n isNotDefined\n} from './voids/_voids'\n\nclass Validator {\n\n constructor() {\n\n /**\n * The validators store, by default it contains validators for Boolean, Number, Integer, Float, Array, String, Object, Symbol and Function\n *\n * @type {object}\n */\n this.validators = {\n Boolean: isBoolean,\n Number: isNumber,\n Integer: isInteger,\n Float: isFloat,\n Array: isArray,\n String: isString,\n Object: isObject,\n Symbol: isSymbol,\n Function: isFunction\n }\n\n /**\n * The list of errors occured during the check\n *\n * @type {Array.<string>}\n */\n this.errors = []\n\n }\n\n /**\n * Add a new validator schema to the validator instance\n *\n * @param type {string} - A string that represent the type of data to validate\n * @param validator {(function|object)} - A function or validation schema that represent the type of data to validate\n */\n add( type, validator ) {\n\n if ( isNotString( type ) ) { throw new TypeError( `Validator: Expect type to be a string` ) }\n if ( isNotFunction( validator ) && isNotObject( validator ) ) { throw new TypeError( `Validator: Expect validator to be an object or a function` ) }\n if ( isDefined( this.validators[ type ] ) ) { throw new TypeError( `Validator: a validator is already defined for type '${ type }'` ) }\n\n this.validators[ type ] = validator\n\n }\n\n /**\n * To remove a registered type\n *\n * @param type {string} - The type to remove\n */\n remove( type ) {\n\n delete this.validators[ type ]\n\n }\n\n /**\n * Allow to known the available types store in current validator instance\n *\n * @return {Array.<string>} - The list of registered type\n */\n getAvalaibleTypes() {\n\n const availablesTypes = []\n\n for ( let key in this.validators ) {\n availablesTypes.push( key )\n }\n\n return availablesTypes\n\n }\n\n /**\n * Will perform a deep structural comparison between the given data and the validation schema of the given type\n *\n * @param data {*} - The data to validate\n * @param type {string} - The type of the validation schema to apply\n * @param breakOnError {boolean} - Return on first validation error ( true by default )\n * @return {boolean} - Return true is the data is validated, false otherwise\n */\n check( data, type, breakOnError = true ) {\n\n const validator = this.validators[ type ]\n if ( isNotDefined( validator ) ) {\n throw new TypeError( `Validator: Unable to find schema validation of type '${ type }'` )\n }\n\n let result = true\n if ( isFunction( validator ) ) {\n\n result = validator( data )\n\n } else if ( isObject( validator ) ) {\n\n let subResult = true\n for ( let key in validator ) {\n\n const subValidator = validator[ key ]\n if ( isNotDefined( subValidator ) ) {\n throw new TypeError( `Validator: Missing validator for key '${ key }' of type '${ type }'` )\n }\n\n const value = data[ key ]\n const isRequired = subValidator.required\n if ( isNotDefined( value ) ) {\n if ( isRequired ) {\n subResult = false\n } else {\n continue\n }\n }\n\n // In case of overriden validation function check it first\n let validatorFunction = subValidator.fn\n if ( isDefined( validatorFunction ) ) {\n\n if ( isNotFunction( validatorFunction ) ) {\n throw new TypeError( `Validator: Invalid validation function for '${ key }' with type '${ type }'` )\n }\n\n subResult = validatorFunction( value )\n\n } else {\n\n subResult = this.check( value, subValidator.type, breakOnError )\n\n }\n\n if ( subResult === false ) {\n\n this.errors.push( `Validator: Invalid property '${ key }' of type '${ subValidator.type }' with value '${ value }' in object of type '${ type }'` )\n result = false\n if ( breakOnError ) {\n break\n }\n\n }\n\n }\n\n } else {\n\n throw new TypeError( `Validator: Unknown validator of type '${ type }'` )\n\n }\n\n return result\n\n }\n\n}\n\n/**\n * The singleton instance\n *\n * @type {Validator}\n */\nlet validatorInstance = undefined\nif ( isNotDefined( validatorInstance ) ) {\n validatorInstance = new Validator()\n}\n\nexport { validatorInstance as Validator }\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isArrayBuffer\n * @desc Export function to validate if a value is a array buffer\n * @example\n *\n * import { isArrayBuffer } from 'itee-validators'\n *\n * if( isArrayBuffer( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a array buffer\n *\n * @param data {*} The data to check against the array buffer type\n * @returns {boolean} true if data is a array buffer, false otherwise.\n */\nexport function isArrayBuffer( data ) {\n return ( data instanceof ArrayBuffer )\n}\n\n/**\n * Check if given data is not a array buffer\n *\n * @param data {*} The data to check against the array buffer type\n * @returns {boolean} true if data is not a array buffer, false otherwise.\n */\nexport function isNotArrayBuffer( data ) {\n return !isArrayBuffer( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isBigInt64Array\n * @desc Export function to validate if a value is a big int 64 array buffer\n * @example\n *\n * import { isBigInt64Array } from 'itee-validators'\n *\n * if( isBigInt64Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a big int 64 array\n *\n * @param data {*} The data to check against the big int 64 array type\n * @returns {boolean} true if data is a big int 64 array, false otherwise.\n */\nexport function isBigInt64Array( data ) {\n return ( data instanceof BigInt64Array )\n}\n\n/**\n * Check if given data is not a big int 64 array\n *\n * @param data {*} The data to check against the big int 64 array type\n * @returns {boolean} true if data is not a big int 64 array, false otherwise.\n */\nexport function isNotBigInt64Array( data ) {\n return !isBigInt64Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isBigUint64Array\n * @desc Export function to validate if a value is a big unsigned int 64 array buffer\n * @example\n *\n * import { isBigUint64Array } from 'itee-validators'\n *\n * if( isBigUint64Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a big unsigned int 64 array\n *\n * @param data {*} The data to check against the big unsigned int 64 array type\n * @returns {boolean} true if data is a big unsigned int 64 array, false otherwise.\n */\nexport function isBigUint64Array( data ) {\n return ( data instanceof BigUint64Array )\n}\n\n/**\n * Check if given data is not a big unsigned int 64 array\n *\n * @param data {*} The data to check against the big unsigned int 64 array type\n * @returns {boolean} true if data is not a big unsigned int 64 array, false otherwise.\n */\nexport function isNotBigUint64Array( data ) {\n return !isBigUint64Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isFloat32Array\n * @desc Export function to validate if a value is a float 32 array buffer\n * @example\n *\n * import { isFloat32Array } from 'itee-validators'\n *\n * if( isFloat32Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a float 32 array\n *\n * @param data {*} The data to check against the float 32 array type\n * @returns {boolean} true if data is a float 32 array , false otherwise.\n */\nexport function isFloat32Array( data ) {\n return ( data instanceof Float32Array )\n}\n\n/**\n * Check if given data is not a float 32 array\n *\n * @param data {*} The data to check against the float 32 array type\n * @returns {boolean} true if data is not a float 32 array , false otherwise.\n */\nexport function isNotFloat32Array( data ) {\n return !isFloat32Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isFloat64Array\n * @desc Export function to validate if a value is a float 64 array buffer\n * @example\n *\n * import { isFloat64Array } from 'itee-validators'\n *\n * if( isFloat64Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a float 64 array\n *\n * @param data {*} The data to check against the float 64 array type\n * @returns {boolean} true if data is a float 64 array , false otherwise.\n */\nexport function isFloat64Array( data ) {\n return ( data instanceof Float64Array )\n}\n\n/**\n * Check if given data is not a float 64 array\n *\n * @param data {*} The data to check against the float 64 array type\n * @returns {boolean} true if data is not a float 64 array , false otherwise.\n */\nexport function isNotFloat64Array( data ) {\n return !isFloat64Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isInt16Array\n * @desc Export function to validate if a value is a int 16 array buffer\n * @example\n *\n * import { isInt16Array } from 'itee-validators'\n *\n * if( isInt16Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a int 16 array\n *\n * @param data {*} The data to check against the int 16 array type\n * @returns {boolean} true if data is a int 16 array , false otherwise.\n */\nexport function isInt16Array( data ) {\n return ( data instanceof Int16Array )\n}\n\n/**\n * Check if given data is not a int 16 array\n *\n * @param data {*} The data to check against the int 16 array type\n * @returns {boolean} true if data is not a int 16 array , false otherwise.\n */\nexport function isNotInt16Array( data ) {\n return !isInt16Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isInt32Array\n * @desc Export function to validate if a value is a int 32 array buffer\n * @example\n *\n * import { isInt32Array } from 'itee-validators'\n *\n * if( isInt32Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a int 32 array\n *\n * @param data {*} The data to check against the int 32 array type\n * @returns {boolean} true if data is a int 32 array , false otherwise.\n */\nexport function isInt32Array( data ) {\n return ( data instanceof Int32Array )\n}\n\n/**\n * Check if given data is not a int 32 array\n *\n * @param data {*} The data to check against the int 32 array type\n * @returns {boolean} true if data is not a int 32 array , false otherwise.\n */\nexport function isNotInt32Array( data ) {\n return !isInt32Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isInt8Array\n * @desc Export function to validate if a value is a int 8 array buffer\n * @example\n *\n * import { isInt8Array } from 'itee-validators'\n *\n * if( isInt8Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a int 8 array\n *\n * @param data {*} The data to check against the int 8 array type\n * @returns {boolean} true if data is a int 8 array , false otherwise.\n */\nexport function isInt8Array( data ) {\n return ( data instanceof Int8Array )\n}\n\n/**\n * Check if given data is not a int 8 array\n *\n * @param data {*} The data to check against the int 8 array type\n * @returns {boolean} true if data is not a int 8 array , false otherwise.\n */\nexport function isNotInt8Array( data ) {\n return !isInt8Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isUint16Array\n * @desc Export function to validate if a value is a unsigned int 16 array buffer\n * @example\n *\n * import { isUint16Array } from 'itee-validators'\n *\n * if( isUint16Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a unsigned int 16 array\n *\n * @param data {*} The data to check against the unsigned int 16 array type\n * @returns {boolean} true if data is a unsigned int 16 array , false otherwise.\n */\nexport function isUint16Array( data ) {\n return ( data instanceof Uint16Array )\n}\n\n/**\n * Check if given data is not a unsigned int 16 array\n *\n * @param data {*} The data to check against the unsigned int 16 array type\n * @returns {boolean} true if data is not a unsigned int 16 array , false otherwise.\n */\nexport function isNotUint16Array( data ) {\n return !isUint16Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isUint32Array\n * @desc Export function to validate if a value is a unsigned int 32 array buffer\n * @example\n *\n * import { isUint32Array } from 'itee-validators'\n *\n * if( isUint32Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a unsigned int 32 array\n *\n * @param data {*} The data to check against the unsigned int 32 array type\n * @returns {boolean} true if data is a unsigned int 32 array , false otherwise.\n */\nexport function isUint32Array( data ) {\n return ( data instanceof Uint32Array )\n}\n\n/**\n * Check if given data is not a unsigned int 32 array\n *\n * @param data {*} The data to check against the unsigned int 32 array type\n * @returns {boolean} true if data is not a unsigned int 32 array , false otherwise.\n */\nexport function isNotUint32Array( data ) {\n return !isUint32Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isUint8Array\n * @desc Export function to validate if a value is a unsigned int 8 array buffer\n * @example\n *\n * import { isUint8Array } from 'itee-validators'\n *\n * if( isUint8Array( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a unsigned int 8 array\n *\n * @param data {*} The data to check against the unsigned int 8 array type\n * @returns {boolean} true if data is a unsigned int 8 array , false otherwise.\n */\nexport function isUint8Array( data ) {\n return ( data instanceof Uint8Array )\n}\n\n/**\n * Check if given data is not a unsigned int 8 array\n *\n * @param data {*} The data to check against the unsigned int 8 array type\n * @returns {boolean} true if data is not a unsigned int 8 array , false otherwise.\n */\nexport function isNotUint8Array( data ) {\n return !isUint8Array( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/cores/typed-arrays/isUint8ClampedArray\n * @desc Export function to validate if a value is a unsigned clamped int 8 array buffer\n * @example\n *\n * import { isUint8ClampedArray } from 'itee-validators'\n *\n * if( isUint8ClampedArray( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\n/**\n * Check if given data is a unsigned clamped int 8 array\n *\n * @param data {*} The data to check against the unsigned clamped int 8 array type\n * @returns {boolean} true if data is a unsigned clamped int 8 array , false otherwise.\n */\nexport function isUint8ClampedArray( data ) {\n return ( data instanceof Uint8ClampedArray )\n}\n\n/**\n * Check if given data is not a unsigned clamped int 8 array\n *\n * @param data {*} The data to check against the unsigned clamped int 8 array type\n * @returns {boolean} true if data is not a unsigned clamped int 8 array , false otherwise.\n */\nexport function isNotUint8ClampedArray( data ) {\n return !isUint8ClampedArray( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/constants\n * @desc Export constants about temperatures\n *\n */\n\n/**\n * @const\n * @type {number}\n * @default 0.00000000045\n * @desc This value corresponding to the absolute zero kelvin value\n */\nexport const ABSOLUTE_ZERO_KELVIN = 0.00000000045\n\n/**\n * @const\n * @type {number}\n * @default -273.14999999955\n * @desc This value corresponding to the absolute zero celsius value\n */\nexport const ABSOLUTE_ZERO_CELSIUS = -273.14999999955\n\n/**\n * @const\n * @type {number}\n * @default -459.67\n * @desc This value corresponding to the absolute zero fahrenheit value\n */\nexport const ABSOLUTE_ZERO_FAHRENHEIT = -459.67\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/temperatures\n * @desc Export function to validate if a value is a Celsius temperature\n * @example\n *\n * import { isCelsius } from 'itee-validators'\n *\n * if( isCelsius( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNumber } from '../../cores/numbers/isNumber'\nimport { ABSOLUTE_ZERO_CELSIUS } from './constants'\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isCelsius( data ) {\n return ( isNumber( data ) && data >= ABSOLUTE_ZERO_CELSIUS )\n}\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isNotCelsius( data ) {\n return !isCelsius( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/temperatures\n * @desc Export function to validate if a value is a Fahrenheit temperature\n * @example\n *\n * import { isFahrenheit } from 'itee-validators'\n *\n * if( isFahrenheit( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNumber } from '../../cores/numbers/isNumber'\nimport { ABSOLUTE_ZERO_FAHRENHEIT } from './constants'\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isFahrenheit( data ) {\n return ( isNumber( data ) && data >= ABSOLUTE_ZERO_FAHRENHEIT )\n}\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isNotFahrenheit( data ) {\n return !isFahrenheit( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/temperatures\n * @desc Export function to validate if a value is a kelvin temperature\n * @example\n *\n * import { isKelvin } from 'itee-validators'\n *\n * if( isKelvin( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isNumber } from '../../cores/numbers/isNumber'\nimport { ABSOLUTE_ZERO_KELVIN } from './constants'\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isKelvin( data ) {\n return ( isNumber( data ) && data >= ABSOLUTE_ZERO_KELVIN )\n}\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isNotKelvin( data ) {\n return !isKelvin( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/physics/temperatures\n * @desc Export function to validate if a value is a temperature\n * @example\n *\n * import { isTemperature } from 'itee-validators'\n *\n * if( isTemperature( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport {\n isCelsius,\n isNotCelsius\n} from './isCelsius'\nimport {\n isFahrenheit,\n isNotFahrenheit\n} from './isFahrenheit'\nimport {\n isKelvin,\n isNotKelvin\n} from './isKelvin'\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isTemperature( data ) {\n return ( isKelvin( data ) || isCelsius( data ) || isFahrenheit( data ) )\n}\n\n/**\n *\n * @param data {*}\n * @return {boolean}\n */\nexport function isNotTemperature( data ) {\n return ( isNotKelvin( data ) && isNotCelsius( data ) && isNotFahrenheit( data ) )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/block-devices/isBlockDevicePath\n * @description Export function to validate if a value is a block device path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isBlockDevicePath } from 'itee-validators'\n *\n * if( isBlockDevicePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { statSync } from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport { isNotString } from '../../cores/strings/isString'\n\n/**\n * Check if given path is a block device path\n *\n * @param path {string|Buffer|URL} The data to check against the block device path type\n * @returns {boolean} true if path is a block device path, false otherwise\n */\nexport function isBlockDevicePath( path ) {\n if ( isNotString( path ) && !( path instanceof Buffer ) && !( path instanceof URL ) ) {\n throw new TypeError( 'Invalid path type! Expect string, buffer or url.' )\n }\n\n const stat = statSync( path, { throwIfNoEntry: false } )\n return isDefined( stat ) && stat.isBlockDevice()\n}\n\n/**\n * Check if given path is not a block device path\n *\n * @param path {string|Buffer|URL} The data to check against the block device path type\n * @returns {boolean} true if path is not a block device path, false otherwise\n */\nexport function isNotBlockDevicePath( path ) {\n return !isBlockDevicePath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/paths/isValidPath\n * @description Export function to validate if a value is a valid path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isValidPath } from 'itee-validators'\n *\n * if( isValidPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { existsSync } from 'fs'\n\n/**\n * Check if given data is a valid file path\n *\n * @param data {*} The data to check against the path type\n * @returns {boolean} true if data is a valid path, false otherwise\n */\nexport function isValidPath( data ) {\n return existsSync( data )\n}\n\n/**\n * Check if given data is not a valid file path\n *\n * @param data {*} The data to check against the path type\n * @returns {boolean} true if data is a valid path, false otherwise\n */\nexport function isInvalidPath( data ) {\n return !isValidPath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/block-devices/isValidBlockDevicePath\n * @description Export function to validate if a value is a valid block device path.\n * @example\n *\n * import { isValidBlockDevicePath } from 'itee-validators'\n *\n * if( isValidBlockDevicePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isBlockDevicePath } from './isBlockDevicePath'\n\n/**\n * Check if given data is a valid block device path\n *\n * @param data {*} The data to check against the block device path type\n * @returns {boolean} true if data is a valid block device path, false otherwise\n */\nexport function isValidBlockDevicePath( data ) {\n return ( isValidPath( data ) && isBlockDevicePath( data ) )\n}\n\n/**\n * Check if given data is an invalid block device path\n *\n * @param data {*} The data to check against the block device path type\n * @returns {boolean} true if data is an invalid block device path, false otherwise\n */\nexport function isInvalidBlockDevicePath( data ) {\n return !isValidBlockDevicePath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/character-devices/isCharacterDevicePath\n * @description Export function to validate if a value is a character device path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isCharacterDevicePath } from 'itee-validators'\n *\n * if( isCharacterDevicePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { statSync } from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport { isNotString } from '../../cores/strings/isString'\n\n/**\n * Check if given path is a character device path\n *\n * @param path {string|Buffer|URL} The data to check against the character device path type\n * @returns {boolean} true if path is a character device path, false otherwise\n */\nexport function isCharacterDevicePath( path ) {\n if ( isNotString( path ) && !( path instanceof Buffer ) && !( path instanceof URL ) ) {\n throw new TypeError( 'Invalid path type! Expect string, buffer or url.' )\n }\n\n const stat = statSync( path, { throwIfNoEntry: false } )\n return isDefined( stat ) && stat.isCharacterDevice()\n}\n\n/**\n * Check if given path is not a character device path\n *\n * @param path {string|Buffer|URL} The data to check against the character device path type\n * @returns {boolean} true if path is not a character device path, false otherwise\n */\nexport function isNotCharacterDevicePath( path ) {\n return !isCharacterDevicePath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/character-devices/isValidCharacterDevicePath\n * @description Export function to validate if a value is a valid character device path\n * @example\n *\n * import { isValidCharacterDevicePath } from 'itee-validators'\n *\n * if( isValidCharacterDevicePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isCharacterDevicePath } from './isCharacterDevicePath'\n\n/**\n * Check if given data is a valid character device path\n *\n * @param data {*} The data to check against the character device path type\n * @returns {boolean} true if data is a valid character device path, false otherwise\n */\nexport function isValidCharacterDevicePath( data ) {\n return ( isValidPath( data ) && isCharacterDevicePath( data ) )\n}\n\n/**\n * Check if given data is an invalid character device path\n *\n * @param data {*} The data to check against the character device path type\n * @returns {boolean} true if data is an invalid character device path, false otherwise\n */\nexport function isInvalidCharacterDevicePath( data ) {\n return !isValidCharacterDevicePath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/directories/isDirectoryPath\n * @description Export function to validate if a value is a directories path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isDirectoryPath } from 'itee-validators'\n *\n * if( isDirectoryPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { statSync } from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport { isNotString } from '../../cores/strings/isString'\n\n/**\n * Check if given path is a directory path\n *\n * @param path {string|Buffer|URL} The data to check against the directory path type\n * @returns {boolean} true if path is a directory path, false otherwise\n */\nexport function isDirectoryPath( path ) {\n if ( isNotString( path ) && !( path instanceof Buffer ) && !( path instanceof URL ) ) {\n throw new TypeError( 'Invalid path type! Expect string, buffer or url.' )\n }\n\n const stat = statSync( path, { throwIfNoEntry: false } )\n return isDefined( stat ) && stat.isDirectory()\n}\n\n/**\n * Check if given path is a not directory path\n *\n * @param path {string|Buffer|URL} The data to check against the directory path type\n * @returns {boolean} true if path is a not directory path, false otherwise\n */\nexport function isNotDirectoryPath( path ) {\n return !isDirectoryPath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/directories/isEmptyDirectory\n * @description Export function to validate if a value is a empty directories\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isEmptyDirectory } from 'itee-validators'\n *\n * if( isEmptyDirectory( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { readdirSync } from 'fs'\nimport { isDirectoryPath } from './isDirectoryPath'\n\n/**\n * Check if given directory path is an empty directory\n *\n * @param directoryPath {string|Buffer|URL} The directory path to check the emptiness\n * @returns {boolean} true if directory is empty, false otherwise\n */\nexport function isEmptyDirectory( directoryPath ) {\n return isDirectoryPath( directoryPath ) && ( readdirSync( directoryPath ).length === 0 )\n}\n\n/**\n * Check if given directory path is not an empty directory\n *\n * @param directoryPath {string|Buffer|URL} The directory path to check the emptiness\n * @returns {boolean} true if directory is not empty, false otherwise\n */\nexport function isNotEmptyDirectory( directoryPath ) {\n return !isEmptyDirectory( directoryPath )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/directories/isValidDirectoryPath\n * @description Export function to validate if a value is a valid directory path\n * @example\n *\n * import { isValidDirectoryPath } from 'itee-validators'\n *\n * if( isValidDirectoryPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isDirectoryPath } from './isDirectoryPath'\n\n/**\n * Check if given data is a valid directory path\n *\n * @param data {*} The data to check against the directory path type\n * @returns {boolean} true if data is a valid directory path, false otherwise\n */\nexport function isValidDirectoryPath( data ) {\n return ( isValidPath( data ) && isDirectoryPath( data ) )\n}\n\n/**\n * Check if given data is an invalid directory path\n *\n * @param data {*} The data to check against the directory path type\n * @returns {boolean} true if data is an invalid directory path, false otherwise\n */\nexport function isInvalidDirectoryPath( data ) {\n return !isValidDirectoryPath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/fifo-pipes/isFIFOPath\n * @description Export function to validate if a value is a fifo pipes path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isFIFOPath } from 'itee-validators'\n *\n * if( isFIFOPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { statSync } from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport { isNotString } from '../../cores/strings/isString'\n\n/**\n * Check if given path is a fifo path\n *\n * @param path {string|Buffer|URL} The data to check against the fifo path type\n * @returns {boolean} true if path is a fifo path, false otherwise\n */\nexport function isFIFOPath( path ) {\n if ( isNotString( path ) && !( path instanceof Buffer ) && !( path instanceof URL ) ) {\n throw new TypeError( 'Invalid path type! Expect string, buffer or url.' )\n }\n\n const stat = statSync( path, { throwIfNoEntry: false } )\n return isDefined( stat ) && stat.isFIFO()\n}\n\n/**\n * Check if given path is not a fifo path\n *\n * @param path {string|Buffer|URL} The data to check against the fifo path type\n * @returns {boolean} true if path is not a fifo path, false otherwise\n */\nexport function isNotFIFOPath( path ) {\n return !isFIFOPath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/fifo-pipes/isValidFIFOPath\n * @description Export function to validate if a value is a valid fifo pipes path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isValidFIFOPath } from 'itee-validators'\n *\n * if( isValidFIFOPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isFIFOPath } from './isFIFOPath'\n\n/**\n * Check if given data is a valid fifo path\n *\n * @param data {*} The data to check against the fifo path type\n * @returns {boolean} true if data is a valid fifo path, false otherwise\n */\nexport function isValidFIFOPath( data ) {\n return ( isValidPath( data ) && isFIFOPath( data ) )\n}\n\n/**\n * Check if given data is an invalid fifo path\n *\n * @param data {*} The data to check against the fifo path type\n * @returns {boolean} true if data is an invalid fifo path, false otherwise\n */\nexport function isInvalidFIFOPath( data ) {\n return !isValidFIFOPath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/files/isFilePath\n * @description Export function to validate if a value is a file path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isFilePath } from 'itee-validators'\n *\n * if( isFilePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { statSync } from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport { isNotString } from '../../cores/strings/isString'\n\n/**\n * Check if given path is a file path\n *\n * @param path {string|Buffer|URL} The data to check against the file path type\n * @returns {boolean} true if path is a file path, false otherwise\n */\nexport function isFilePath( path ) {\n if ( isNotString( path ) && !( path instanceof Buffer ) && !( path instanceof URL ) ) {\n throw new TypeError( 'Invalid path type! Expect string, buffer or url.' )\n }\n\n const stat = statSync( path, { throwIfNoEntry: false } )\n return isDefined( stat ) && stat.isFile()\n}\n\n/**\n * Check if given path is not a file path\n *\n * @param path {string|Buffer|URL} The data to check against the file path type\n * @returns {boolean} true if path is not a file path, false otherwise\n */\nexport function isNotFilePath( path ) {\n return !isFilePath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/files/isEmptyFile\n * @description Export function to validate if a value is an empty file\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isEmptyFile } from 'itee-validators'\n *\n * if( isEmptyFile( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { statSync } from 'fs'\nimport { isFilePath } from './isFilePath'\nimport { isNotString } from '../../cores/strings/isString'\n\n/**\n * Check if given file path is an empty file more or less a threshold in bytes.\n *\n * @param filePath {string|Buffer|URL} The directory path to check the emptiness\n * @param threshold {number} An amount of byte below which it consider the file as empty ( 0 as default ).\n * @returns {boolean} true if file is empty, false otherwise\n */\nexport function isEmptyFile( filePath, threshold = 0 ) {\n if ( isNotString( filePath ) && !( filePath instanceof Buffer ) && !( filePath instanceof URL ) ) {\n throw new TypeError( 'Invalid path type! Expect string, buffer or url.' )\n }\n\n return isFilePath( filePath ) && ( statSync( filePath ).size <= threshold )\n}\n\n/**\n * Check if given file path is not an empty file more or less a threshold in bytes.\n *\n * @param filePath {string|Buffer|URL} The directory path to check the emptiness\n * @param threshold {number} An amount of byte above which it consider the file as not empty ( 0 as default ).\n * @returns {boolean} true if file is not empty, false otherwise\n */\nexport function isNotEmptyFile( filePath, threshold = 0 ) {\n return !isEmptyFile( filePath, threshold )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/files/isValidFilePath\n * @description Export function to validate if a value is a valid file path\n * @example\n *\n * import { isValidFilePath } from 'itee-validators'\n *\n * if( isValidFilePath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isFilePath } from './isFilePath'\n\n/**\n * Check if given data is a valid file path\n *\n * @param data {*} The data to check against the file path type\n * @returns {boolean} true if data is a valid file path, false otherwise\n */\nexport function isValidFilePath( data ) {\n return ( isValidPath( data ) && isFilePath( data ) )\n}\n\n/**\n * Check if given data is an invalid file path\n *\n * @param data {*} The data to check against the file path type\n * @returns {boolean} true if data is an invalid file path, false otherwise\n */\nexport function isInvalidFilePath( data ) {\n return !isValidFilePath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/sockets/isSocketPath\n * @description Export function to validate if a value is a socket path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isSocketPath } from 'itee-validators'\n *\n * if( isSocketPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { statSync } from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport { isNotString } from '../../cores/strings/isString'\n\n/**\n * Check if given path is a socket path\n *\n * @param path {string|Buffer|URL} The data to check against the socket path type\n * @returns {boolean} true if path is a socket path, false otherwise\n */\nexport function isSocketPath( path ) {\n if ( isNotString( path ) && !( path instanceof Buffer ) && !( path instanceof URL ) ) {\n throw new TypeError( 'Invalid path type! Expect string, buffer or url.' )\n }\n\n const stat = statSync( path, { throwIfNoEntry: false } )\n return isDefined( stat ) && stat.isSocket()\n}\n\n/**\n * Check if given path is not a socket path\n *\n * @param path {string|Buffer|URL} The data to check against the socket path type\n * @returns {boolean} true if path is not a socket path, false otherwise\n */\nexport function isNotSocketPath( path ) {\n return !isSocketPath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/sockets/isValidSocketPath\n * @description Export function to validate if a value is a valid socket path\n * @example\n *\n * import { isValidSocketPath } from 'itee-validators'\n *\n * if( isValidSocketPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isSocketPath } from './isSocketPath'\n\n/**\n * Check if given data is a valid socket path\n *\n * @param data {*} The data to check against the socket path type\n * @returns {boolean} true if data is a valid socket path, false otherwise\n */\nexport function isValidSocketPath( data ) {\n return ( isValidPath( data ) && isSocketPath( data ) )\n}\n\n/**\n * Check if given data is an invalid socket path\n *\n * @param data {*} The data to check against the socket path type\n * @returns {boolean} true if data is an invalid socket path, false otherwise\n */\nexport function isInvalidSocketPath( data ) {\n return !isValidSocketPath( data )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/symbolic-links/isSocketPath\n * @description Export function to validate if a value is a symbolic links path\n *\n * @requires {@link module: [fs]{@link https://nodejs.org/api/fs.html}}\n *\n * @example\n *\n * import { isSymbolicLinkPath } from 'itee-validators'\n *\n * if( isSymbolicLinkPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { statSync } from 'fs'\nimport { isDefined } from '../../cores/voids/isDefined'\nimport { isNotString } from '../../cores/strings/isString'\n\n/**\n * Check if given path is a symbolic link path\n *\n * @param path {string|Buffer|URL} The data to check against the symbolic link path type\n * @returns {boolean} true if path is a symbolic link path, false otherwise\n */\nexport function isSymbolicLinkPath( path ) {\n if ( isNotString( path ) && !( path instanceof Buffer ) && !( path instanceof URL ) ) {\n throw new TypeError( 'Invalid path type! Expect string, buffer or url.' )\n }\n\n const stat = statSync( path, { throwIfNoEntry: false } )\n return isDefined( stat ) && stat.isSymbolicLink()\n}\n\n/**\n * Check if given path is not a symbolic link path\n *\n * @param path {string|Buffer|URL} The data to check against the symbolic link path type\n * @returns {boolean} true if path is not a symbolic link path, false otherwise\n */\nexport function isNotSymbolicLinkPath( path ) {\n return !isSymbolicLinkPath( path )\n}\n","/**\n * @author [Tristan Valcke]{@link https://github.com/Itee}\n * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}\n *\n * @module sources/file-system/symbolic-links/isSocketPath\n * @description Export function to validate if a value is a valid symbolic links path\n * @example\n *\n * import { isValidSymbolicLinkPath } from 'itee-validators'\n *\n * if( isValidSymbolicLinkPath( value ) ) {\n * //...\n * } else {\n * //...\n * }\n *\n */\n\nimport { isValidPath } from '../paths/isValidPath'\nimport { isSymbolicLinkPath } from './isSymbolicLinkPath'\n\n/**\n * Check if given data is a valid symbolic link path\n *\n * @param data {*} The data to check against the symbolic link path type\n * @returns {boolean} true if data is a valid symbolic link path, false otherwise\n */\nexport function isValidSymbolicLinkPath( data ) {\n return ( isValidPath( data ) && isSymbolicLinkPath( data ) )\n}\n\n/**\n * Check if given data is an invalid symbolic link path\n *\n * @param data {*} The data to check against the symbolic link path type\n * @returns {boolean} true if data is an invalid symbolic link path, false otherwise\n */\nexport function isInvalidSymbolicLinkPath( data ) {\n return !isValidSymbolicLinkPath( data )\n}\n"],"names":["validatorInstance","statSync","existsSync","readdirSync"],"mappings":"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ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,KAAK,MAAM,CAAC,SAAS,EAAE;AACxC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;AACzC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,KAAK,MAAM,CAAC,SAAS,EAAE;AACxC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;AACzC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,EAAE,IAAI,GAAG;AACzC,IAAI,SAAS,IAAI,KAAK,MAAM,CAAC,gBAAgB,EAAE;AAC/C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,EAAE,IAAI,GAAG;AACzC,IAAI,SAAS,IAAI,KAAK,MAAM,CAAC,gBAAgB,EAAE;AAC/C,CAAC;AACD;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC;AACA,IAAI,KAAK,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,KAAK,EAAE;AAC/C;AACA,IAAI,KAAK,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG;AAC7B,QAAQ,OAAO,IAAI;AACnB,KAAK;AACL;AACA;AACA,IAAI,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG;AAC5B,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG;AACjE,YAAY,OAAO,KAAK;AACxB,SAAS;AACT,KAAK;AACL;AACA,IAAI,OAAO,IAAI;AACf;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,EAAE,IAAI,GAAG;AACzC,IAAI,OAAO,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE;AACrC;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC;AACA,IAAI,KAAK,WAAW,EAAE,IAAI,EAAE,GAAG;AAC/B,QAAQ,OAAO,KAAK;AACpB,KAAK;AACL;AACA,IAAI,SAAS,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAChC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,EAAE,IAAI,GAAG;AACzC;AACA,IAAI,OAAO,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE;AACrC;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC;AACA,IAAI,KAAK,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,KAAK,EAAE;AAC/C,IAAI,KAAK,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,KAAK,EAAE;AACjD;AACA,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;AACjC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,EAAE,IAAI,GAAG;AACzC;AACA,IAAI,OAAO,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE;AACrC;AACA;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,QAAQ,EAAE,IAAI,GAAG;AACjC,IAAI,SAAS,OAAO,IAAI,KAAK,QAAQ,EAAE;AACvC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW,EAAE,IAAI,GAAG;AACpC,IAAI,SAAS,OAAO,IAAI,KAAK,QAAQ,EAAE;AACvC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,OAAO,EAAE,IAAI,GAAG;AAChC;AACA,IAAI,KAAK,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,KAAK,EAAE;AAChD,IAAI,KAAK,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,CAAC;AAC/C,IAAI,KAAK,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,EAAE;AAC/C,IAAI,KAAK,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,EAAE;AAChD;AACA,IAAI,OAAO,KAAK;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,UAAU,EAAE,IAAI,GAAG;AACnC,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE;AAC3B;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA0BA;AACA,MAAM,SAAS,CAAC;AAChB;AACA,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG;AAC1B,YAAY,OAAO,GAAG,SAAS;AAC/B,YAAY,MAAM,IAAI,QAAQ;AAC9B,YAAY,OAAO,GAAG,SAAS;AAC/B,YAAY,KAAK,KAAK,OAAO;AAC7B,YAAY,KAAK,KAAK,OAAO;AAC7B,YAAY,MAAM,IAAI,QAAQ;AAC9B,YAAY,MAAM,IAAI,QAAQ;AAC9B,YAAY,MAAM,IAAI,QAAQ;AAC9B,YAAY,QAAQ,EAAE,UAAU;AAChC,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,GAAE;AACxB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,GAAG;AAC3B;AACA,QAAQ,KAAK,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,qCAAqC,CAAC,EAAE,EAAE;AACrG,QAAQ,KAAK,aAAa,EAAE,SAAS,EAAE,IAAI,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,IAAI,SAAS,EAAE,CAAC,yDAAyD,CAAC,EAAE,EAAE;AAC5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C,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE;AACrF;AACA,SAAS;AACT;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACIA,iBAAiB,GAAG,UAAS;AACjC,KAAK,YAAY,EAAEA,iBAAiB,EAAE,GAAG;AACzC,IAAIA,iBAAiB,GAAG,IAAI,SAAS,GAAE;AACvC;;ACzTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,YAAY,WAAW,EAAE;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,EAAE,IAAI,GAAG;AACzC,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE;AACjC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,EAAE,IAAI,GAAG;AACxC,IAAI,SAAS,IAAI,YAAY,aAAa,EAAE;AAC5C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,kBAAkB,EAAE,IAAI,GAAG;AAC3C,IAAI,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE;AACnC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,EAAE,IAAI,GAAG;AACzC,IAAI,SAAS,IAAI,YAAY,cAAc,EAAE;AAC7C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,EAAE,IAAI,GAAG;AAC5C,IAAI,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE;AACpC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,EAAE,IAAI,GAAG;AACvC,IAAI,SAAS,IAAI,YAAY,YAAY,EAAE;AAC3C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,EAAE,IAAI,GAAG;AAC1C,IAAI,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE;AAClC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,EAAE,IAAI,GAAG;AACvC,IAAI,SAAS,IAAI,YAAY,YAAY,EAAE;AAC3C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,EAAE,IAAI,GAAG;AAC1C,IAAI,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE;AAClC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,EAAE,IAAI,GAAG;AACrC,IAAI,SAAS,IAAI,YAAY,UAAU,EAAE;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,EAAE,IAAI,GAAG;AACxC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE;AAChC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,EAAE,IAAI,GAAG;AACrC,IAAI,SAAS,IAAI,YAAY,UAAU,EAAE;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,EAAE,IAAI,GAAG;AACxC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE;AAChC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,WAAW,EAAE,IAAI,GAAG;AACpC,IAAI,SAAS,IAAI,YAAY,SAAS,EAAE;AACxC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,EAAE,IAAI,GAAG;AACvC,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE;AAC/B;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,YAAY,WAAW,EAAE;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,EAAE,IAAI,GAAG;AACzC,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE;AACjC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,aAAa,EAAE,IAAI,GAAG;AACtC,IAAI,SAAS,IAAI,YAAY,WAAW,EAAE;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,EAAE,IAAI,GAAG;AACzC,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE;AACjC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,EAAE,IAAI,GAAG;AACrC,IAAI,SAAS,IAAI,YAAY,UAAU,EAAE;AACzC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,EAAE,IAAI,GAAG;AACxC,IAAI,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE;AAChC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,mBAAmB,EAAE,IAAI,GAAG;AAC5C,IAAI,SAAS,IAAI,YAAY,iBAAiB,EAAE;AAChD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,sBAAsB,EAAE,IAAI,GAAG;AAC/C,IAAI,OAAO,CAAC,mBAAmB,EAAE,IAAI,EAAE;AACvC;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,oBAAoB,GAAG,cAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,qBAAqB,GAAG,CAAC,gBAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,wBAAwB,GAAG,CAAC;;AC/BzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,SAAS,EAAE,IAAI,GAAG;AAClC,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,qBAAqB,EAAE;AAChE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,EAAE,IAAI,GAAG;AACrC,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE;AAC7B;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,YAAY,EAAE,IAAI,GAAG;AACrC,IAAI,SAAS,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,wBAAwB,EAAE;AACnE,CAAC;AACD;AACA;AACA;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"}