{"version":3,"file":"index.cjs.development.cjs","sources":["../src/index.ts","../src/index.cts"],"sourcesContent":["/*!\n * to-regex-range <https://github.com/micromatch/to-regex-range>\n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nimport { isUnSafeNumLike as isNumber } from '@lazy-assert/check-basic';\n\nexport interface IOptions\n{\n\t/**\n\t * Wrap the returned value in parentheses when there is more than one regex condition. Useful when you're dynamically generating ranges.\n\t *\n\t * @example\n\t * console.log(toRegexRange('-10', '10'));\n\t * //=> -[1-9]|-?10|[0-9]\n\t *\n\t * console.log(toRegexRange('-10', '10', { capture: true }));\n\t * //=> (-[1-9]|-?10|[0-9])\n\t */\n\tcapture?: boolean,\n\t/**\n\t * Use the regex shorthand for [0-9]:\n\t *\n\t * @example\n\t * console.log(toRegexRange('0', '999999'));\n\t * //=> [0-9]|[1-9][0-9]{1,5}\n\t *\n\t * console.log(toRegexRange('0', '999999', { shorthand: true }));\n\t * //=> \\d|[1-9]\\d{1,5}\n\t */\n\tshorthand?: boolean,\n\t/**\n\t * @default true\n\t * This option relaxes matching for leading zeros when when ranges are zero-padded.\n\t * @example\n\t * const source = toRegexRange('-0010', '0010');\n\t * const regex = new RegExp(`^${source}$`);\n\t * console.log(regex.test('-10')); //=> true\n\t * console.log(regex.test('-010')); //=> true\n\t * console.log(regex.test('-0010')); //=> true\n\t * console.log(regex.test('10')); //=> true\n\t * console.log(regex.test('010')); //=> true\n\t * console.log(regex.test('0010')); //=> true\n\t * @example When `relaxZeros` is false, matching is strict:\n\t * const source = toRegexRange('-0010', '0010', { relaxZeros: false });\n\t * const regex = new RegExp(`^${source}$`);\n\t * console.log(regex.test('-10')); //=> false\n\t * console.log(regex.test('-010')); //=> false\n\t * console.log(regex.test('-0010')); //=> true\n\t * console.log(regex.test('10')); //=> false\n\t * console.log(regex.test('010')); //=> false\n\t * console.log(regex.test('0010')); //=> true\n\t */\n\trelaxZeros?: boolean,\n\n\tstrictZeros?: boolean,\n\twrap?: boolean,\n}\n\nexport const SymCache = Symbol.for('SymCache');\n\nfunction isAllowedValue(value: unknown)\n{\n\tif (isNumber(value) === true)\n\t{\n\t\tif (typeof value === 'string')\n\t\t{\n\t\t\treturn /^-?\\d+$/.test(value);\n\t\t}\n\n\t\treturn true\n\t}\n\n\treturn false\n}\n\nexport function toRegexRange(min: number | string, max?: number | string, options?: IOptions): string\n{\n\tif (!isAllowedValue(min))\n\t{\n\t\tthrow new TypeError(`toRegexRange: expected the first argument '${min}' to be a number like.`);\n\t}\n\n\tif (max === void 0 || min === max)\n\t{\n\t\treturn String(min);\n\t}\n\n\tif (!isAllowedValue(max))\n\t{\n\t\tthrow new TypeError(`toRegexRange: expected the second argument '${max}' to be a number like.`);\n\t}\n\n\tmin = String(min);\n\tmax = String(max);\n\n\tlet opts: IOptions = { relaxZeros: true, ...options };\n\tif (typeof opts.strictZeros === 'boolean')\n\t{\n\t\topts.relaxZeros = opts.strictZeros === false;\n\t}\n\n\tlet relax = String(opts.relaxZeros);\n\tlet shorthand = String(opts.shorthand);\n\tlet capture = String(opts.capture);\n\tlet wrap = String(opts.wrap);\n\tlet cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap;\n\n\tif (toRegexRange[SymCache].hasOwnProperty(cacheKey))\n\t{\n\t\t// @ts-ignore\n\t\treturn toRegexRange[SymCache][cacheKey].result;\n\t}\n\n\t// @ts-ignore\n\tlet a = Math.min(min, max);\n\t// @ts-ignore\n\tlet b = Math.max(min, max);\n\n\tif (Math.abs(a - b) === 1)\n\t{\n\t\tlet result = min + '|' + max;\n\t\tif (opts.capture)\n\t\t{\n\t\t\treturn `(${result})`;\n\t\t}\n\t\tif (opts.wrap === false)\n\t\t{\n\t\t\treturn result;\n\t\t}\n\t\treturn `(?:${result})`;\n\t}\n\n\tlet isPadded = hasPadding(min) || hasPadding(max);\n\tlet state: any = { min, max, a, b };\n\tlet positives = [];\n\tlet negatives = [];\n\n\tif (isPadded)\n\t{\n\t\tstate.isPadded = isPadded;\n\t\tstate.maxLen = String(state.max).length;\n\t}\n\n\tif (a < 0)\n\t{\n\t\tlet newMin = b < 0 ? Math.abs(b) : 1;\n\t\tnegatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n\t\ta = state.a = 0;\n\t}\n\n\tif (b >= 0)\n\t{\n\t\tpositives = splitToPatterns(a, b, state, opts);\n\t}\n\n\tstate.negatives = negatives;\n\tstate.positives = positives;\n\tstate.result = collatePatterns(negatives, positives, opts);\n\n\tif (opts.capture === true)\n\t{\n\t\tstate.result = `(${state.result})`;\n\t}\n\telse if (opts.wrap !== false && (positives.length + negatives.length) > 1)\n\t{\n\t\tstate.result = `(?:${state.result})`;\n\t}\n\n\ttoRegexRange[SymCache][cacheKey] = state;\n\treturn state.result;\n}\n\nfunction collatePatterns(neg, pos, options)\n{\n\tlet onlyNegative = filterPatterns(neg, pos, '-', false, options) || [];\n\tlet onlyPositive = filterPatterns(pos, neg, '', false, options) || [];\n\tlet intersected = filterPatterns(neg, pos, '-?', true, options) || [];\n\tlet subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n\treturn subpatterns.join('|');\n}\n\nfunction splitToRanges(min, max)\n{\n\tlet nines = 1;\n\tlet zeros = 1;\n\n\tlet stop = countNines(min, nines);\n\tlet stops: any = new Set([max]);\n\n\twhile (min <= stop && stop <= max)\n\t{\n\t\tstops.add(stop);\n\t\tnines += 1;\n\t\tstop = countNines(min, nines);\n\t}\n\n\tstop = countZeros(max + 1, zeros) - 1;\n\n\twhile (min < stop && stop <= max)\n\t{\n\t\tstops.add(stop);\n\t\tzeros += 1;\n\t\tstop = countZeros(max + 1, zeros) - 1;\n\t}\n\n\tstops = [...stops];\n\tstops.sort(compare);\n\treturn stops;\n}\n\n/**\n * Convert a range to a regex pattern\n * @param {Number} `start`\n * @param {Number} `stop`\n * @return {String}\n */\n\nfunction rangeToPattern(start, stop, options)\n{\n\tif (start === stop)\n\t{\n\t\treturn { pattern: start, count: [], digits: 0 };\n\t}\n\n\tlet zipped = zip(start, stop);\n\tlet digits = zipped.length;\n\tlet pattern = '';\n\tlet count = 0;\n\n\tfor (let i = 0; i < digits; i++)\n\t{\n\t\tlet [startDigit, stopDigit] = zipped[i];\n\n\t\tif (startDigit === stopDigit)\n\t\t{\n\t\t\tpattern += startDigit;\n\n\t\t}\n\t\telse if (startDigit !== '0' || stopDigit !== '9')\n\t\t{\n\t\t\tpattern += toCharacterClass(startDigit, stopDigit, options);\n\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcount++;\n\t\t}\n\t}\n\n\tif (count)\n\t{\n\t\tpattern += options.shorthand === true ? '\\\\d' : '[0-9]';\n\t}\n\n\treturn { pattern, count: [count], digits };\n}\n\nfunction splitToPatterns(min, max, tok, options)\n{\n\tlet ranges = splitToRanges(min, max) as any as any[];\n\tlet tokens = [];\n\tlet start = min;\n\tlet prev;\n\n\tfor (let i = 0; i < ranges.length; i++)\n\t{\n\t\tlet max = ranges[i];\n\t\tlet obj = rangeToPattern(String(start), String(max), options) as any;\n\t\tlet zeros = '';\n\n\t\tif (!tok.isPadded && prev && prev.pattern === obj.pattern)\n\t\t{\n\t\t\tif (prev.count.length > 1)\n\t\t\t{\n\t\t\t\tprev.count.pop();\n\t\t\t}\n\n\t\t\tprev.count.push(obj.count[0]);\n\t\t\tprev.string = prev.pattern + toQuantifier(prev.count);\n\t\t\tstart = max + 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (tok.isPadded)\n\t\t{\n\t\t\tzeros = padZeros(max, tok, options);\n\t\t}\n\n\t\tobj.string = zeros + obj.pattern + toQuantifier(obj.count);\n\t\ttokens.push(obj);\n\t\tstart = max + 1;\n\t\tprev = obj;\n\t}\n\n\treturn tokens;\n}\n\nfunction filterPatterns(arr, comparison, prefix, intersection, options)\n{\n\tlet result = [];\n\n\tfor (let ele of arr)\n\t{\n\t\tlet { string } = ele;\n\n\t\t// only push if _both_ are negative...\n\t\tif (!intersection && !contains(comparison, 'string', string))\n\t\t{\n\t\t\tresult.push(prefix + string);\n\t\t}\n\n\t\t// or _both_ are positive\n\t\tif (intersection && contains(comparison, 'string', string))\n\t\t{\n\t\t\tresult.push(prefix + string);\n\t\t}\n\t}\n\treturn result;\n}\n\n/**\n * Zip strings\n */\n\nfunction zip(a, b)\n{\n\tlet arr = [];\n\tfor (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n\treturn arr;\n}\n\nfunction compare(a, b)\n{\n\treturn a > b ? 1 : b > a ? -1 : 0;\n}\n\nfunction contains(arr, key, val)\n{\n\treturn arr.some(ele => ele[key] === val);\n}\n\nfunction countNines(min, len)\n{\n\treturn Number(String(min).slice(0, -len) + '9'.repeat(len));\n}\n\nfunction countZeros(integer, zeros)\n{\n\treturn integer - (integer % Math.pow(10, zeros));\n}\n\nfunction toQuantifier(digits)\n{\n\tlet [start = 0, stop = ''] = digits;\n\tif (stop || start > 1)\n\t{\n\t\treturn `{${start + (stop ? ',' + stop : '')}}`;\n\t}\n\treturn '';\n}\n\nfunction toCharacterClass(a, b, options)\n{\n\treturn `[${a}${(b - a === 1) ? '' : '-'}${b}]`;\n}\n\nfunction hasPadding(str)\n{\n\treturn /^-?(0+)\\d/.test(str);\n}\n\nfunction padZeros(value, tok, options)\n{\n\tif (!tok.isPadded)\n\t{\n\t\treturn value;\n\t}\n\n\tlet diff = Math.abs(tok.maxLen - String(value).length);\n\tlet relax = options.relaxZeros !== false;\n\n\tswitch (diff)\n\t{\n\t\tcase 0:\n\t\t\treturn '';\n\t\tcase 1:\n\t\t\treturn relax ? '0?' : '0';\n\t\tcase 2:\n\t\t\treturn relax ? '0{0,2}' : '00';\n\t\tdefault:\n\t\t{\n\t\t\treturn relax ? `0{0,${diff}}` : `0{${diff}}`;\n\t\t}\n\t}\n}\n\n/**\n * Cache\n */\n\ntoRegexRange[SymCache] = {};\ntoRegexRange.clearCache = () => (toRegexRange[SymCache] = {});\n\nObject.defineProperty(toRegexRange, 'toRegexRange', { value: toRegexRange });\nObject.defineProperty(toRegexRange, 'default', { value: toRegexRange });\nObject.defineProperty(toRegexRange, 'SymCache', { value: SymCache });\n\n/**\n * Expose `toRegexRange`\n */\nexport default toRegexRange;\n","import { toRegexRange } from './index';\n// @ts-ignore\nexport = toRegexRange\n"],"names":["SymCache","Symbol","for","isAllowedValue","value","isNumber","test","toRegexRange","min","max","options","TypeError","String","opts","relaxZeros","strictZeros","relax","shorthand","capture","wrap","cacheKey","hasOwnProperty","result","a","Math","b","abs","isPadded","hasPadding","state","positives","negatives","maxLen","length","newMin","splitToPatterns","collatePatterns","neg","pos","onlyNegative","filterPatterns","onlyPositive","intersected","subpatterns","concat","join","splitToRanges","nines","zeros","stop","countNines","stops","Set","add","countZeros","sort","compare","rangeToPattern","start","pattern","count","digits","zipped","zip","i","startDigit","stopDigit","toCharacterClass","tok","ranges","tokens","prev","obj","pop","push","string","toQuantifier","padZeros","arr","comparison","prefix","intersection","ele","contains","key","val","some","len","Number","slice","repeat","integer","pow","str","diff","clearCache","Object","defineProperty"],"mappings":"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"}