{"version":3,"sources":["../../../../source/schema/groups/multiple-of/multiple-of.ts","../../../../source/schema/groups/integer/integer.ts","../../../../source/schema/groups/number/number.ts","../../../../source/schema/groups/zero/zero.ts"],"names":["z","INTEGER_SCHEMA","NEGATIVE_INTEGER_SCHEMA","POSITIVE_INTEGER_SCHEMA","validateInteger","value","isPrimitive","validatePrimitive","NUMBER_SCHEMA","validateNumber","ZERO_SCHEMA","NON_ZERO_SCHEMA","validateNonZero","isEven","number","isOdd","isMultipleOf","multiplier"],"mappings":"AAAA,OAAS,KAAAA,MAAS,MCClB,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,CCXA,OAAS,eAAAC,EAAa,qBAAAC,MAAyB,0CAE/C,OAAS,iBAAAC,MAAqB,0CAGvB,SAASC,EAAeJ,EAAyC,CACvE,OAAOE,EAAkBF,EAAO,QAAQ,CACzC,CCPA,OAAS,KAAAL,MAAS,MAEX,IAAMU,EAAcV,EAAE,QAAQ,CAAC,EACzBW,EAAkBX,EAAE,OAAO,EAAE,SAAS,EAAE,GAAGA,EAAE,OAAO,EAAE,SAAS,CAAC,EAUtE,SAASY,EAAgBP,EAAwC,CACvEM,EAAgB,MAAMN,CAAK,CAC5B,CHTO,SAASQ,EAAOC,EAAyB,CAC/C,OAAAV,EAAgBU,CAAM,EAEfA,EAAS,IAAM,CACvB,CAEO,SAASC,EAAMD,EAAyB,CAC9C,MAAO,CAACD,EAAOC,CAAM,CACtB,CAEO,SAASE,EAAaF,EAAgBG,EAA6B,CACzE,OAAAR,EAAeK,CAAM,EACrBF,EAAgBK,CAAU,EAEnBjB,EAAE,OAAO,EAAE,WAAWiB,CAAU,EAAE,UAAUH,CAAM,EAAE,OAC5D","sourcesContent":["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 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 { 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 { 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"]}