{"version":3,"sources":["../source/schema/groups/integer/integer.ts","../source/math/math.ts","../source/schema/groups/number/number.ts","../source/misc/misc.ts","../source/random/random.ts","../source/round/round.ts","../source/schema/groups/finite/finite.ts","../source/schema/groups/float/float.ts","../source/schema/groups/infinity/infinity.ts","../source/schema/groups/multiple-of/multiple-of.ts","../source/schema/groups/zero/zero.ts","../source/schema/groups/nan/nan.ts","../source/schema/groups/negative/negative.ts","../source/schema/groups/positive/positive.ts","../source/schema/groups/safe/safe.ts"],"names":["z","INTEGER_SCHEMA","NEGATIVE_INTEGER_SCHEMA","POSITIVE_INTEGER_SCHEMA","validateInteger","value","validateNegativeInteger","validatePositiveInteger","isInteger","isNegativeInteger","isPositiveInteger","fibonacci","number","isPrimitive","validatePrimitive","NUMBER_SCHEMA","validateNumber","isNumber","isHappyNumber","seen","sum","digit","IN_NODE","getRandomIntNumber","options","max","min","random","getSafeRandomNumber","getRandomNumber","getRandomValues","roundUpNumber","decimals","roundDownNumber","FINITE_NUMBER_SCHEMA","validateFiniteNumber","isFiniteNumber","FLOAT_NUMBER_SCHEMA","n","validateFloatNumber","isFloatNumber","NEGATIVE_INFINITY_SCHEMA","POSITIVE_INFINITY_SCHEMA","INFINITY_SCHEMA","validateInfinity","isInfinity","isNegativeInfinity","isPositiveInfinity","ZERO_SCHEMA","NON_ZERO_SCHEMA","validateZero","validateNonZero","isZero","isNegativeZero","isPositiveZero","isNonZero","isEven","isOdd","isMultipleOf","multiplier","NAN_SCHEMA","validateNaN","isItNaN","NEGATIVE_NUMBER_SCHEMA","NON_POSITIVE_NUMBER_SCHEMA","validateNegativeNumber","isNegativeNumber","validateNonPositiveNumber","isNonPositiveNumber","POSITIVE_NUMBER_SCHEMA","NON_NEGATIVE_NUMBER_SCHEMA","validatePositiveNumber","isPositiveNumber","validateNonNegativeNumber","isNonNegativeNumber","SAFE_NUMBER_SCHEMA","MAX_SAFE_NUMBER_SCHEMA","MIN_SAFE_NUMBER_SCHEMA","validateSafeNumber","isSafeNumber","validateMaxSafeNumber","isMaxSafeNumber","validateMinSafeNumber","isMinSafeNumber"],"mappings":"AACA,OAAS,KAAAA,MAAS,MAIX,IAAMC,EAAiBD,EAAE,OAAO,EAAE,IAAI,EAChCE,EAA0BF,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EACpDG,EAA0BH,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAE1D,SAASI,EAAkCC,EAAuC,CACxFJ,EAAe,MAAMI,CAAK,CAC3B,CAEO,SAASC,EAA0CD,EAAiD,CAC1GH,EAAwB,MAAMG,CAAK,CACpC,CAEO,SAASE,EAA0CF,EAAoD,CAC7GF,EAAwB,MAAME,CAAK,CACpC,CAEO,SAASG,EAA4BH,EAA+B,CAC1E,OAAOJ,EAAe,UAAUI,CAAK,EAAE,OACxC,CAEO,SAASI,EAAoCJ,EAAyC,CAC5F,OAAOH,EAAwB,UAAUG,CAAK,EAAE,OACjD,CAEO,SAASK,EAAoCL,EAA4C,CAC/F,OAAOF,EAAwB,UAAUE,CAAK,EAAE,OACjD,CC5BO,SAASM,EAAUC,EAAwB,CAGjD,OAFAL,EAAwBK,CAAM,EAE1BA,IAAW,GAAKA,IAAW,EACvB,EAGDD,EAAUC,EAAS,CAAC,EAAID,EAAUC,EAAS,CAAC,CACpD,CCXA,OAAS,eAAAC,EAAa,qBAAAC,MAAyB,0CAE/C,OAAS,iBAAAC,OAAqB,0CAGvB,SAASC,EAAeX,EAAyC,CACvE,OAAOS,EAAkBT,EAAO,QAAQ,CACzC,CAGO,SAASY,GAASZ,EAAiC,CACzD,OAAOQ,EAAYR,EAAO,QAAQ,CACnC,CCTO,SAASa,GAAcN,EAAyB,CACtDI,EAAeJ,CAAM,EAErB,IAAMO,EAAoB,IAAI,IAE9B,KAAOP,IAAW,GAAK,CAACO,EAAK,IAAIP,CAAM,GACtCO,EAAK,IAAIP,CAAM,EACfA,EAAS,CAAC,GAAGA,EAAO,SAAS,CAAC,EAAE,OAAO,CAACQ,EAAKC,IAAUD,EAAM,OAAOC,CAAK,GAAK,EAAG,CAAC,EAGnF,OAAOT,IAAW,CACnB,CCdA,OAAS,WAAAU,MAAe,+CAcxB,eAAsBC,GAAmBC,EAA+B,CAAC,EAAoB,CAC5F,GAAM,CAAE,IAAAC,EAAM,OAAO,iBAAkB,IAAAC,EAAM,OAAO,gBAAiB,EAAIF,EAEnEG,EAAS,MAAMC,EAAoB,EACzC,OAAO,KAAK,MAAMD,GAAUF,EAAMC,EAAM,GAAKA,CAAG,CACjD,CAGA,eAAsBG,GAAgBL,EAA+B,CAAC,EAAoB,CACzF,GAAM,CAAE,IAAAC,EAAM,OAAO,iBAAkB,IAAAC,EAAM,OAAO,gBAAiB,EAAIF,EAEzE,OAAQ,MAAMI,EAAoB,GAAMH,EAAMC,GAAOA,CACtD,CAEA,eAAeE,GAAuC,CACrD,IAAID,EAEJ,GAAIL,EAAS,CACZ,GAAM,CAAE,gBAAAQ,CAAgB,EAAI,KAAM,QAAO,QAAa,EAEtDH,EAASG,EAAgB,IAAI,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,OAEjDH,EAAS,WAAW,OAAO,gBAAgB,IAAI,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,EAQpE,OAAOA,GAAU,WAAgB,EAClC,CCrCO,SAASI,GAAc1B,EAAemB,EAAiC,CAAC,EAAW,CACzFR,EAAeX,CAAK,EAEpB,GAAM,CAAE,SAAA2B,EAAW,CAAE,EAAIR,EAEzB,MAAO,EAAO,KAAK,MAAM,EAAOnB,EAAQ,IAAM2B,EAAS,EAAI,KAAOA,EACnE,CAGO,SAASC,GAAgB5B,EAAemB,EAAiC,CAAC,EAAW,CAC3FR,EAAeX,CAAK,EAEpB,GAAM,CAAE,SAAA2B,EAAW,CAAE,EAAIR,EAEzB,MAAO,EAAO,KAAK,MAAM,OAAO,WAAWnB,EAAQ,IAAM2B,CAAQ,CAAC,EAAI,KAAOA,EAC9E,CCtBA,OAAS,MAAS,MAIX,IAAME,EAAuB,EAAE,OAAO,EAAE,OAAO,EAE/C,SAASC,GAAuC9B,EAAsC,CAC5F6B,EAAqB,MAAM7B,CAAK,CACjC,CAEO,SAAS+B,GAAiC/B,EAA8B,CAC9E,OAAO6B,EAAqB,UAAU7B,CAAK,EAAE,OAC9C,CCZA,OAAS,KAAAL,MAAS,MAElB,IAAMqC,EAAsBrC,EAAE,OAAO,EAAE,OAAQsC,GACvC,CAACtC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAUsC,CAAC,EAAE,SAAWtC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAUsC,CAAC,EAAE,QAChF,0BAA0B,EAItB,SAASC,GAAsClC,EAAqC,CAC1FgC,EAAoB,MAAMhC,CAAK,CAChC,CAEO,SAASmC,GAAgCnC,EAA6B,CAC5E,OAAOgC,EAAoB,UAAUhC,CAAK,EAAE,OAC7C,CCdA,OAAS,KAAAL,MAAS,MAKX,IAAMyC,EAA2BzC,EAAE,QAAQ,OAAO,iBAAiB,EAC7D0C,EAA2B1C,EAAE,QAAQ,OAAO,iBAAiB,EAC7D2C,EAAkBF,EAAyB,GAAGC,CAAwB,EAE5E,SAASE,GAAiBvC,EAA2C,CAC3EsC,EAAgB,MAAMtC,CAAK,CAC5B,CAEO,SAASwC,GAAWxC,EAAmC,CAC7D,OAAOsC,EAAgB,UAAUtC,CAAK,EAAE,OACzC,CAEO,SAASyC,GAAmBzC,EAA2C,CAC7E,OAAOoC,EAAyB,UAAUpC,CAAK,EAAE,OAClD,CAEO,SAAS0C,GAAmB1C,EAA2C,CAC7E,OAAOqC,EAAyB,UAAUrC,CAAK,EAAE,OAClD,CCxBA,OAAS,KAAAL,MAAS,MCAlB,OAAS,KAAAA,MAAS,MAEX,IAAMgD,EAAchD,EAAE,QAAQ,CAAC,EACzBiD,EAAkBjD,EAAE,OAAO,EAAE,SAAS,EAAE,GAAGA,EAAE,OAAO,EAAE,SAAS,CAAC,EAMtE,SAASkD,EAAa7C,EAAsC,CAClE2C,EAAY,MAAM3C,CAAK,CACxB,CAEO,SAAS8C,EAAgB9C,EAAwC,CACvE4C,EAAgB,MAAM5C,CAAK,CAC5B,CAEO,SAAS+C,GAAO/C,EAA8B,CACpD,OAAO2C,EAAY,UAAU3C,CAAK,EAAE,OACrC,CAEO,SAASgD,EAAehD,EAAsC,CACpE,OAAA6C,EAAa7C,CAAK,EAEX,OAAO,GAAG,GAAIA,CAAK,CAC3B,CAEO,SAASiD,GAAejD,EAAsC,CACpE,MAAO,CAACgD,EAAehD,CAAK,CAC7B,CAEO,SAASkD,GAAUlD,EAAgC,CACzD,OAAO4C,EAAgB,UAAU5C,CAAK,EAAE,OACzC,CD3BO,SAASmD,EAAO5C,EAAyB,CAC/C,OAAAR,EAAgBQ,CAAM,EAEfA,EAAS,IAAM,CACvB,CAEO,SAAS6C,GAAM7C,EAAyB,CAC9C,MAAO,CAAC4C,EAAO5C,CAAM,CACtB,CAEO,SAAS8C,GAAa9C,EAAgB+C,EAA6B,CACzE,OAAA3C,EAAeJ,CAAM,EACrBuC,EAAgBQ,CAAU,EAEnB3D,EAAE,OAAO,EAAE,WAAW2D,CAAU,EAAE,UAAU/C,CAAM,EAAE,OAC5D,CErBA,OAAS,KAAAZ,MAAS,MAIX,IAAM4D,EAAa5D,EAAE,IAAI,EAEzB,SAAS6D,GAAYxD,EAAqC,CAChEuD,EAAW,MAAMvD,CAAK,CACvB,CAEO,SAASyD,GAAQzD,EAA6B,CACpD,OAAOuD,EAAW,UAAUvD,CAAK,EAAE,OACpC,CCXA,OAAS,KAAAL,MAAS,MAIX,IAAM+D,EAAyB/D,EAAE,OAAO,EAAE,SAAS,EAC7CgE,EAA6BhE,EAAE,OAAO,EAAE,YAAY,EAE1D,SAASiE,GAAyC5D,EAAwC,CAChG0D,EAAuB,MAAM1D,CAAK,CACnC,CAEO,SAAS6D,GAAmC7D,EAAgC,CAClF,OAAO0D,EAAuB,UAAU1D,CAAK,EAAE,OAChD,CAEO,SAAS8D,GAA4C9D,EAAwC,CACnG2D,EAA2B,MAAM3D,CAAK,CACvC,CAEO,SAAS+D,GAAsC/D,EAAgC,CACrF,OAAO2D,EAA2B,UAAU3D,CAAK,EAAE,OACpD,CCrBA,OAAS,KAAAL,MAAS,MAIX,IAAMqE,EAAyBrE,EAAE,OAAO,EAAE,SAAS,EAC7CsE,EAA6BtE,EAAE,OAAO,EAAE,YAAY,EAE1D,SAASuE,GAAyClE,EAA2C,CACnGgE,EAAuB,MAAMhE,CAAK,CACnC,CAEO,SAASmE,GAAmCnE,EAAmC,CACrF,OAAOgE,EAAuB,UAAUhE,CAAK,EAAE,OAChD,CAEO,SAASoE,GAA4CpE,EAA2C,CACtGiE,EAA2B,MAAMjE,CAAK,CACvC,CAEO,SAASqE,GAAsCrE,EAAmC,CACxF,OAAOiE,EAA2B,UAAUjE,CAAK,EAAE,OACpD,CCtBA,OAAS,KAAAL,MAAS,MAKX,IAAM2E,EAAqB3E,EAAE,OAAO,EAAE,KAAK,EACrC4E,EAAyB5E,EAAE,QAAQ,OAAO,gBAAkC,EAC5E6E,EAAyB7E,EAAE,QAAQ,OAAO,gBAAkC,EAElF,SAAS8E,GAAmBzE,EAAwC,CAC1EsE,EAAmB,MAAMtE,CAAK,CAC/B,CAEO,SAAS0E,GAAa1E,EAAgC,CAC5D,OAAOsE,EAAmB,UAAUtE,CAAK,EAAE,OAC5C,CAEO,SAAS2E,GAAsB3E,EAAgD,CACrFuE,EAAuB,MAAMvE,CAAK,CACnC,CAEO,SAAS4E,GAAgB5E,EAAwC,CACvE,OAAOuE,EAAuB,UAAUvE,CAAK,EAAE,OAChD,CAEO,SAAS6E,GAAsB7E,EAAgD,CACrFwE,EAAuB,MAAMxE,CAAK,CACnC,CAEO,SAAS8E,GAAgB9E,EAAwC,CACvE,OAAOwE,EAAuB,UAAUxE,CAAK,EAAE,OAChD","sourcesContent":["import type { Integer, Negative, NonNegative } from \"type-fest/source/numeric\";\nimport { z } from \"zod\";\n\nexport type { Integer } from \"type-fest/source/numeric\";\n\nexport const INTEGER_SCHEMA = z.number().int();\nexport const NEGATIVE_INTEGER_SCHEMA = z.number().int().negative();\nexport const POSITIVE_INTEGER_SCHEMA = z.number().int().positive();\n\nexport function validateInteger<N extends number>(value: N): asserts value is Integer<N> {\n\tINTEGER_SCHEMA.parse(value);\n}\n\nexport function validateNegativeInteger<N extends number>(value: N): asserts value is Negative<Integer<N>> {\n\tNEGATIVE_INTEGER_SCHEMA.parse(value);\n}\n\nexport function validatePositiveInteger<N extends number>(value: N): asserts value is NonNegative<Integer<N>> {\n\tPOSITIVE_INTEGER_SCHEMA.parse(value);\n}\n\nexport function isInteger<N extends number>(value: N): value is Integer<N> {\n\treturn INTEGER_SCHEMA.safeParse(value).success;\n}\n\nexport function isNegativeInteger<N extends number>(value: N): value is Negative<Integer<N>> {\n\treturn NEGATIVE_INTEGER_SCHEMA.safeParse(value).success;\n}\n\nexport function isPositiveInteger<N extends number>(value: N): value is NonNegative<Integer<N>> {\n\treturn POSITIVE_INTEGER_SCHEMA.safeParse(value).success;\n}\n","import { validatePositiveInteger } from \"../schema/groups/integer/integer.ts\";\n\n/** @see {@link https://en.wikipedia.org/wiki/Fibonacci_number} Fibonacci number */\nexport function fibonacci(number: number): number {\n\tvalidatePositiveInteger(number);\n\n\tif (number === 1 || number === 2) {\n\t\treturn 1;\n\t}\n\n\treturn fibonacci(number - 1) + fibonacci(number - 2);\n}\n","import { isPrimitive, validatePrimitive } from \"@terminal-nerds/snippets-type/primitive\";\n\nexport { NUMBER_SCHEMA } from \"@terminal-nerds/snippets-type/primitive\";\n\n/** NOTE: This snippet doesn't consider `NaN` as number! */\nexport function validateNumber(value: unknown): asserts value is number {\n\treturn validatePrimitive(value, \"number\");\n}\n\n/** NOTE: This snippet doesn't consider `NaN` as number! */\nexport function isNumber(value: unknown): value is number {\n\treturn isPrimitive(value, \"number\");\n}\n","import { validateNumber } from \"../schema/groups/number/number.ts\";\n\n/** @see {@link https://en.wikipedia.org/wiki/Happy_number} Happy number */\nexport function isHappyNumber(number: number): boolean {\n\tvalidateNumber(number);\n\n\tconst seen: Set<number> = new Set<number>();\n\n\twhile (number !== 1 && !seen.has(number)) {\n\t\tseen.add(number);\n\t\tnumber = [...number.toString()].reduce((sum, digit) => sum + Number(digit) ** 2, 0);\n\t}\n\n\treturn number === 1;\n}\n","import { IN_NODE } from \"@terminal-nerds/snippets-runtime/environment\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\nimport type { MaxSafeInteger, MinSafeInteger } from \"../schema/groups/safe/safe.ts\";\n\n/* prettier-ignore */\nexport interface RandomNumberOptions {\n    /** @defaultValue {@link MaxSafeInteger} */\n    max?: number;\n    /** @defaultValue {@link MinSafeInteger} */\n    min?: number;\n}\n\n/** Get a random **integer** number from the specified range. */\nexport async function getRandomIntNumber(options: RandomNumberOptions = {}): Promise<number> {\n\tconst { max = Number.MAX_SAFE_INTEGER, min = Number.MIN_SAFE_INTEGER } = options;\n\n\tconst random = await getSafeRandomNumber();\n\treturn Math.floor(random * (max - min + 1) + min);\n}\n\n/** Get a random number **_(with decimals!)_** from the specified range. */\nexport async function getRandomNumber(options: RandomNumberOptions = {}): Promise<number> {\n\tconst { max = Number.MAX_SAFE_INTEGER, min = Number.MIN_SAFE_INTEGER } = options;\n\n\treturn (await getSafeRandomNumber()) * (max - min) + min;\n}\n\nasync function getSafeRandomNumber(): Promise<number> {\n\tlet random: number;\n\n\tif (IN_NODE) {\n\t\tconst { getRandomValues } = await import(\"node:crypto\");\n\n\t\trandom = getRandomValues(new Uint32Array(1)).at(0) as number;\n\t} else {\n\t\trandom = globalThis.crypto.getRandomValues(new Uint32Array(1)).at(0) as number;\n\t}\n\n\t/**\n\t * NOTE: `0xff_ff_ff_ff`  aka (`0xFFFFFFF`) - Uint32 Max value represent in hexadecimal format\n\t * `+1` - because Math.random is inclusive of 0, but not 1\n\t * Credits: https://stackoverflow.com/a/62792582\n\t */\n\treturn random / (0xff_ff_ff_ff + 1);\n}\n","import { validateNumber } from \"../schema/groups/number/number.ts\";\n\nexport interface RoundingNumberOptions {\n\t/** @defaultValue `2` */\n\tdecimals?: number;\n}\n\n/** Round **UP** number to specific decimals length. */\nexport function roundUpNumber(value: number, options: RoundingNumberOptions = {}): number {\n\tvalidateNumber(value);\n\n\tconst { decimals = 2 } = options;\n\n\treturn Number(Math.round(Number(value + \"e\" + decimals)) + \"e-\" + decimals);\n}\n\n/** Round **DOWN** number to specific decimals length. */\nexport function roundDownNumber(value: number, options: RoundingNumberOptions = {}): number {\n\tvalidateNumber(value);\n\n\tconst { decimals = 2 } = options;\n\n\treturn Number(Math.floor(Number.parseFloat(value + \"e\" + decimals)) + \"e-\" + decimals);\n}\n","import type { Finite } from \"type-fest/source/numeric\";\nimport { z } from \"zod\";\n\nexport type { Finite } from \"type-fest/source/numeric\";\n\nexport const FINITE_NUMBER_SCHEMA = z.number().finite();\n\nexport function validateFiniteNumber<N extends number>(value: N): asserts value is Finite<N> {\n\tFINITE_NUMBER_SCHEMA.parse(value);\n}\n\nexport function isFiniteNumber<N extends number>(value: N): value is Finite<N> {\n\treturn FINITE_NUMBER_SCHEMA.safeParse(value).success;\n}\n","import type { Float } from \"type-fest/source/numeric\";\nimport { z } from \"zod\";\n\nconst FLOAT_NUMBER_SCHEMA = z.number().refine((n) => {\n\treturn !z.number().int().safeParse(n).success && z.number().finite().safeParse(n).success;\n}, \"should not be an integer\");\n\nexport type { Float } from \"type-fest/source/numeric\";\n\nexport function validateFloatNumber<N extends number>(value: N): asserts value is Float<N> {\n\tFLOAT_NUMBER_SCHEMA.parse(value);\n}\n\nexport function isFloatNumber<N extends number>(value: N): value is Float<N> {\n\treturn FLOAT_NUMBER_SCHEMA.safeParse(value).success;\n}\n","import type { NegativeInfinity, PositiveInfinity } from \"type-fest/source/numeric\";\nimport { z } from \"zod\";\n\nexport type { NegativeInfinity, PositiveInfinity } from \"type-fest/source/numeric\";\nexport type Infinity = NegativeInfinity | PositiveInfinity;\n\nexport const NEGATIVE_INFINITY_SCHEMA = z.literal(Number.POSITIVE_INFINITY);\nexport const POSITIVE_INFINITY_SCHEMA = z.literal(Number.NEGATIVE_INFINITY);\nexport const INFINITY_SCHEMA = NEGATIVE_INFINITY_SCHEMA.or(POSITIVE_INFINITY_SCHEMA);\n\nexport function validateInfinity(value: unknown): asserts value is Infinity {\n\tINFINITY_SCHEMA.parse(value);\n}\n\nexport function isInfinity(value: unknown): value is Infinity {\n\treturn INFINITY_SCHEMA.safeParse(value).success;\n}\n\nexport function isNegativeInfinity(value: unknown): value is NegativeInfinity {\n\treturn NEGATIVE_INFINITY_SCHEMA.safeParse(value).success;\n}\n\nexport function isPositiveInfinity(value: unknown): value is PositiveInfinity {\n\treturn POSITIVE_INFINITY_SCHEMA.safeParse(value).success;\n}\n","import { z } from \"zod\";\n\nimport { validateInteger } from \"../integer/integer.ts\";\nimport { validateNumber } from \"../number/number.ts\";\nimport { validateNonZero } from \"../zero/zero.ts\";\n\nexport function isEven(number: number): boolean {\n\tvalidateInteger(number);\n\n\treturn number % 2 === 0;\n}\n\nexport function isOdd(number: number): boolean {\n\treturn !isEven(number);\n}\n\nexport function isMultipleOf(number: number, multiplier: number): boolean {\n\tvalidateNumber(number);\n\tvalidateNonZero(multiplier);\n\n\treturn z.number().multipleOf(multiplier).safeParse(number).success;\n}\n","import { z } from \"zod\";\n\nexport const ZERO_SCHEMA = z.literal(0);\nexport const NON_ZERO_SCHEMA = z.number().negative().or(z.number().positive());\n\nexport type Zero = NegativeZero | PositiveZero;\nexport type PositiveZero = 0;\nexport type NegativeZero = -0;\n\nexport function validateZero(value: number): asserts value is Zero {\n\tZERO_SCHEMA.parse(value);\n}\n\nexport function validateNonZero(value: number): asserts value is number {\n\tNON_ZERO_SCHEMA.parse(value);\n}\n\nexport function isZero(value: number): value is Zero {\n\treturn ZERO_SCHEMA.safeParse(value).success;\n}\n\nexport function isNegativeZero(value: number): value is NegativeZero {\n\tvalidateZero(value);\n\n\treturn Object.is(-0, value);\n}\n\nexport function isPositiveZero(value: number): value is PositiveZero {\n\treturn !isNegativeZero(value);\n}\n\nexport function isNonZero(value: number): value is number {\n\treturn NON_ZERO_SCHEMA.safeParse(value).success;\n}\n","import { z } from \"zod\";\n\nexport type NaN = typeof Number.NaN;\n\nexport const NAN_SCHEMA = z.nan();\n\nexport function validateNaN(value: number): asserts value is NaN {\n\tNAN_SCHEMA.parse(value);\n}\n\nexport function isItNaN(value: number): value is NaN {\n\treturn NAN_SCHEMA.safeParse(value).success;\n}\n","import type { Negative } from \"type-fest/source/numeric\";\nimport { z } from \"zod\";\n\nexport type { Negative } from \"type-fest/source/numeric\";\n\nexport const NEGATIVE_NUMBER_SCHEMA = z.number().negative();\nexport const NON_POSITIVE_NUMBER_SCHEMA = z.number().nonpositive();\n\nexport function validateNegativeNumber<N extends number>(value: N): asserts value is Negative<N> {\n\tNEGATIVE_NUMBER_SCHEMA.parse(value);\n}\n\nexport function isNegativeNumber<N extends number>(value: N): value is Negative<N> {\n\treturn NEGATIVE_NUMBER_SCHEMA.safeParse(value).success;\n}\n\nexport function validateNonPositiveNumber<N extends number>(value: N): asserts value is Negative<N> {\n\tNON_POSITIVE_NUMBER_SCHEMA.parse(value);\n}\n\nexport function isNonPositiveNumber<N extends number>(value: N): value is Negative<N> {\n\treturn NON_POSITIVE_NUMBER_SCHEMA.safeParse(value).success;\n}\n","import type { NonNegative } from \"type-fest/source/numeric\";\nimport { z } from \"zod\";\n\nexport type { NonNegative } from \"type-fest/source/numeric\";\n\nexport const POSITIVE_NUMBER_SCHEMA = z.number().positive();\nexport const NON_NEGATIVE_NUMBER_SCHEMA = z.number().nonnegative();\n\nexport function validatePositiveNumber<N extends number>(value: N): asserts value is NonNegative<N> {\n\tPOSITIVE_NUMBER_SCHEMA.parse(value);\n}\n\nexport function isPositiveNumber<N extends number>(value: N): value is NonNegative<N> {\n\treturn POSITIVE_NUMBER_SCHEMA.safeParse(value).success;\n}\n\nexport function validateNonNegativeNumber<N extends number>(value: N): asserts value is NonNegative<N> {\n\tNON_NEGATIVE_NUMBER_SCHEMA.parse(value);\n}\n\nexport function isNonNegativeNumber<N extends number>(value: N): value is NonNegative<N> {\n\treturn NON_NEGATIVE_NUMBER_SCHEMA.safeParse(value).success;\n}\n","import { z } from \"zod\";\n\nexport type MaxSafeInteger = 9_007_199_254_740_991;\nexport type MinSafeInteger = -9_007_199_254_740_991;\n\nexport const SAFE_NUMBER_SCHEMA = z.number().safe();\nexport const MAX_SAFE_NUMBER_SCHEMA = z.literal(Number.MAX_SAFE_INTEGER as MaxSafeInteger);\nexport const MIN_SAFE_NUMBER_SCHEMA = z.literal(Number.MIN_SAFE_INTEGER as MinSafeInteger);\n\nexport function validateSafeNumber(value: number): asserts value is number {\n\tSAFE_NUMBER_SCHEMA.parse(value);\n}\n\nexport function isSafeNumber(value: number): value is number {\n\treturn SAFE_NUMBER_SCHEMA.safeParse(value).success;\n}\n\nexport function validateMaxSafeNumber(value: number): asserts value is MaxSafeInteger {\n\tMAX_SAFE_NUMBER_SCHEMA.parse(value);\n}\n\nexport function isMaxSafeNumber(value: number): value is MaxSafeInteger {\n\treturn MAX_SAFE_NUMBER_SCHEMA.safeParse(value).success;\n}\n\nexport function validateMinSafeNumber(value: number): asserts value is MinSafeInteger {\n\tMIN_SAFE_NUMBER_SCHEMA.parse(value);\n}\n\nexport function isMinSafeNumber(value: number): value is MinSafeInteger {\n\treturn MIN_SAFE_NUMBER_SCHEMA.safeParse(value).success;\n}\n"]}