deverything 0.19.2 → 0.21.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/helpers/array.ts","../src/helpers/uniqueValues.ts","../src/helpers/arrayDiff.ts","../src/helpers/arrayIntersection.ts","../src/helpers/capitalize.ts","../src/helpers/clamp.ts","../src/regex/controlCharRegex.ts","../src/regex/invisibleWhitespaceRegex.ts","../src/regex/lineSeparatorRegex.ts","../src/regex/paragraphSeparatorRegex.ts","../src/helpers/cleanSpaces.ts","../src/helpers/first.ts","../src/helpers/getKeys.ts","../src/helpers/firstKey.ts","../src/helpers/firstValue.ts","../src/helpers/last.ts","../src/validators/isArray.ts","../src/validators/isBoolean.ts","../src/validators/isServer.ts","../src/validators/isClient.ts","../src/validators/isBrowser.ts","../src/validators/isString.ts","../src/validators/isEmail.ts","../src/validators/isObject.ts","../src/validators/isEmpty.ts","../src/validators/isFunction.ts","../src/validators/isJsDate.ts","../src/validators/isKey.ts","../src/validators/isNumber.ts","../src/validators/isSpacedString.ts","../src/validators/isNumeric.ts","../src/validators/isNumericId.ts","../src/validators/isPromise.ts","../src/validators/isPWA.ts","../src/validators/isReactElement.ts","../src/validators/isRegExp.ts","../src/validators/isSame.ts","../src/validators/isStringDate.ts","../src/validators/isUndefined.ts","../src/validators/isURL.ts","../src/validators/isUUID.ts","../src/validators/isValue.ts","../src/helpers/merge.ts","../src/helpers/moveToFirst.ts","../src/helpers/moveToLast.ts","../src/helpers/objectDiff.ts","../src/helpers/parseDate.ts","../src/helpers/pretty.ts","../src/helpers/promiseWithTimeout.ts","../src/helpers/sleep.ts","../src/helpers/toggleArray.ts","../src/helpers/truncate.ts","../src/constants/addresses.ts","../src/random/randomInt.ts","../src/random/randomArrayItem.ts","../src/random/randomAddress.ts","../src/random/randomAlphaNumericCode.ts","../src/random/randomBool.ts","../src/random/randomFloat.ts","../src/random/randomCoords.ts","../src/random/randomDate.ts","../src/constants/domains.ts","../src/constants/names.ts","../src/random/randomHandle.ts","../src/random/randomEmail.ts","../src/constants/unicode.ts","../src/random/randomEmoji.ts","../src/random/randomEnumKey.ts","../src/random/randomEnumValue.ts","../src/constants/words.ts","../src/random/randomWord.ts","../src/random/randomParagraph.ts","../src/random/randomFile.ts","../src/constants/hex.ts","../src/random/randomHexColor.ts","../src/random/randomHexValue.ts","../src/random/randomHtmlColorName.ts","../src/constants/banking.ts","../src/random/randomIBAN.ts","../src/random/randomIP.ts","../src/random/randomName.ts","../src/random/randomNumericCode.ts","../src/random/randomNumericId.ts","../src/random/randomPassword.ts","../src/random/randomUUID.ts"],"names":["array","length","mapFn","uniqueValues","arr","arrayDiff","arr1","arr2","value","arrayIntersection","capitalize","string","clamp","number","min","max","controlCharRegex","invisibleWhitespaceRegex","lineSeparatorRegex","paragraphSeparatorRegex","cleanSpaces","str","first","getKeys","arg","getEnumerableOwnPropertySymbols","symbol","firstKey","firstValue","last","isArray","isBoolean","isServer","isClient","isBrowser","isString","isEmail","isObject","isEmpty","isEmptyObject","isEmptyArray","isEmptyString","isFunction","isJsDate","isKey","key","obj","isInt","isEven","isOdd","isPositive","isNegative","isNumber","isSpacedString","s","isNumeric","isNumericId","id","isPromise","isPWA","canUseSymbol","REACT_ELEMENT_TYPE","isReactElement","isRegExp","isSame","value1","value2","index","keys","isStringDate","date","isUndefined","pattern","isURL","isUUID","isValue","merge","target","source","merger","moveToFirst","items","condition","resortedItems","i","firstItem","moveToLast","lastItem","objectDiff","leftObject","rightObject","diff","allKeys","parseDate","pretty","promiseWithTimeout","promise","timeoutMs","error","timeout","timeoutPromise","_","reject","sleep","timeMs","resolve","toggleArray","copy","acc","val","truncate","limit","ellipsis","argArray","UK_ADDRESSES","US_ADDRESSES","EUROPE_ADDRESSES","MIXED_ADDRESSES","ADDRESSES","randomInt","start","end","randomPositiveInt","randomNegativeInt","randomMaxSafeInt","randomMaxInt","randomPercentage","randomArrayItem","randomAddress","chars","randomAlphaNumericCode","randomBool","JS_MAX_DIGITS","randomFloat","decimals","float","randomCoords","randomLat","randomLng","randomDate","startDate","endDate","randomMaxDate","randomFutureDate","safeNow","randomPastDate","randomDateRange","DOMAIN_NAMES","ANIMAL_NAMES","TOOL_NAMES","WESTERN_FIRST_NAMES","WESTERN_LAST_NAMES","CYRILLIC_FIRST_NAMES","CYRILLIC_LAST_NAMES","JAPANESE_FIRST_NAMES","JAPANESE_LAST_NAMES","ARABIC_FIRST_NAMES","ARABIC_LAST_NAMES","FIRST_NAMES","LAST_NAMES","randomHandle","randomEmail","EMOJI_SAMPLE","SPECIAL_CHARACTERS","randomEmoji","randomEnumKey","enumObject","randomEnumValue","values","VERBS","NOUNS","ADJECTIVES","ADVERBS","LONG_WORDS","HTML_COLOR_NAME_SAMPLES","WORDS","randomWord","randomParagraph","fileExtensions","randomFile","name","extension","_extension","HEX_VALUES","randomHexColor","randomHexValue","randomHtmlColorName","IBAN_SAMPLES","randomIBAN","randomIP","randomName","randomFirstName","randomLastName","randomFullName","randomNumericCode","randomNumericId","randomPassword","randomUUID","digit12"],"mappings":"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S,IAAI,KAAK,QAAuB,EACrDqB,EAAUpB,GAAO,IAAI,KAAK,OAAsB,EACtD,OAAO,IAAI,KACTmB,EAAU,QAAQ,EAChB,KAAK,OAAO,GAAKC,EAAQ,QAAQ,EAAID,EAAU,QAAQ,EAC3D,CACF,EAEaE,GAAgB,CAACtB,EAAcC,IAAe,CACzD,IAAMmB,EAAYpB,GAAS,IAAI,KAAK,OAAsB,EACpDqB,EAAUpB,GAAO,IAAI,KAAK,MAAqB,EACrD,OAAOkB,EAAWC,EAAWC,CAAO,CACtC,EAEaE,GAAmB,IAAM,CAEpC,IAAMC,EAAU,IAAI,KAAK,IAAI,KAAK,EAAE,QAAQ,EAAI,EAAI,GAAsB,EAC1E,OAAOL,EAAWK,CAAO,CAC3B,EAEaC,GAAiB,IACrBN,EAAW,OAAW,IAAI,IAAM,EAG5BO,GAAkB,IAAM,CACnC,IAAMN,EAAYD,EAAW,EAG7B,MAAO,CACL,QAHcA,EAAWC,CAAS,EAIlC,UAAAA,CACF,CACF,ECvCO,IAAMO,EAAe,CAC1B,YACA,YACA,cACA,UACA,UACA,cACA,WACA,UACA,UACA,SACA,cACA,UACA,WACA,WACA,SACA,SACA,SACA,SACF,ECnBO,IAAMC,EAAe,CAC1B,YACA,UACA,WACA,UACA,QACA,OACA,SACF,EAEaC,EAAa,CACxB,MACA,SACA,QACA,SACA,SACA,SACA,MACA,cACA,QACF,EAEaC,EAAsB,CACjC,SACA,SACA,YACA,QACA,SACA,MACA,WACA,QACA,OACA,SACA,SACA,OACA,QACA,UACF,EAEaC,EAAqB,CAChC,WACA,QACA,QACA,UACA,UACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,WACA,QACF,EAEaC,GAAuB,CAClC,6CACA,iCACA,2BACA,uCACA,2BACA,yDACA,iCACA,6CACA,uCACA,uCACA,qBACA,gCACF,EAEaC,GAAsB,CACjC,mDACA,iCACA,uCACA,6CACA,iCACA,6CACA,iCACA,uCACA,qBACA,2BACA,uCACA,iCACA,2BACA,4CACF,EAEaC,GAAuB,CAClC,2BACA,qBACA,iCACA,iCACA,2BACA,qBACA,2BACA,qBACA,qBACA,iCACA,6CACA,sCACF,EAEaC,GAAsB,CACjC,uCACA,uCACA,iCACA,iCACA,iCACA,iCACA,qBACA,2BACA,2BACA,2BACA,2BACA,2BACA,qBACA,cACF,EAEaC,GAAqB,CAChC,uCACA,qBACA,2BACA,iCACA,2BACA,uCACA,qBACA,uCACA,uCACA,iCACA,6CACA,gCACF,EAEaC,GAAoB,CAC/B,6CACA,iCACA,uCACA,iCACA,uCACA,2BACA,uCACA,iCACA,2BACA,qBACA,2BACA,2BACA,uCACA,4CACF,EAEaC,EAAc,CACzB,GAAGR,EACH,GAAGE,GACH,GAAGE,GACH,GAAGE,EACL,EAEaG,EAAa,CACxB,GAAGR,EACH,GAAGE,GACH,GAAGE,GACH,GAAGE,EACL,EChKO,IAAMG,EAAe,KAExBjC,EAAgBuB,CAAmB,EACnC,IACAvB,EAAgBwB,CAAkB,GAClC,YAAY,EAAIhC,EAAU,GAAI,EAAE,ECJ7B,IAAM0C,GAAc,IACzB,GAAGD,EAAa,KAAKjC,EAAgBoB,CAAY,ICN5C,IAAMe,EAAe,CAC1B,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACF,EAEaC,EAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EChBlE,IAAMC,GAAc,IAClBrC,EAAgBmC,CAAY,ECD9B,IAAMG,GAAmCC,GACvCvC,EACL,OAAO,KAAKuC,CAAU,EAAE,OAAQzH,GAAQ,CAACU,EAAUV,CAAG,CAAC,CACzD,ECHK,IAAM0H,GACXD,GACe,CACf,IAAIE,EAAuB,CAAC,EAE5B,cAAO,OAAOF,CAAU,EAAE,QAAS9J,GAAU,CAEvCoC,EAAMpC,EAAO8J,CAAU,GAAK,CAACE,EAAO,SAAShK,CAAmB,GAClEgK,EAAO,KAAKF,EAAW9J,CAAgB,CAAC,CAC5C,CAAC,EAEMuH,EAAgByC,CAAM,CAC/B,ECfO,IAAMC,GAAQ,CACnB,QACA,SACA,SACA,aACA,UACA,UACA,MACA,QACA,MACA,SACA,SACA,QACA,QACA,UACA,SACA,SACA,QACA,QACA,QACA,KACA,KACA,OACA,MACF,EAEaC,GAAQ,CACnB,UACA,UACA,OACA,WACA,QACA,QACA,SACA,UACA,SACA,UACF,EAEaC,GAAa,CACxB,YACA,YACA,UACA,OACA,WACA,UACA,WACA,QACA,QACA,SACA,UACA,SACA,UACF,EAEaC,GAAU,CACrB,aACA,SACA,iBACA,aACA,WACA,aACA,YACA,eACA,gBACA,cACA,aACA,aACA,eACA,iBACF,EAEaC,GAAa,CACxB,gDACA,gCACA,iCACA,uCACA,+BACA,qCACA,6BACF,EAqEO,IAAMC,EAA0B,CACrC,YACA,OACA,aACA,QACA,QACA,SACA,QACA,OACA,aACA,QACA,YACA,YACA,aACA,YACA,QACA,gBACA,WACA,OACA,OACA,QACA,SACA,SACA,WACF,EAEaC,EAAQ,CACnB,GAAGN,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,EACL,EClLO,IAAMG,EAAa,IACjBjD,EAAgBgD,CAAK,ECAvB,IAAME,EAAkB,IACtBvK,EAAWV,EAAM,EAAG,IAAMgL,EAAW,CAAC,EAAE,KAAK,GAAG,CAAC,EAAI,ICD9D,IAAME,GAAiB,CAAC,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAM,EAGrDC,GAAa,CAAC,CACzB,KAAAC,EACA,UAAAC,CACF,EAGI,CAAC,IAAwB,CAC3B,GAAI,OAAO,MAAS,YAAa,OAEjC,IAAMC,EAAaD,GAAatD,EAAgBmD,EAAc,EAC9D,OAAO,IAAI,KACT,CAACD,EAAgB,CAAC,EAClB,GAAGG,GAAQJ,EAAW,KAAKM,IAC3B,CACE,KAAM,SAASA,GACjB,CACF,CACF,ECxBO,IAAMC,EAAa,CACxB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACF,ECbO,IAAMC,GAAiB,IACrB,IAAMxL,EAAM,EAAG,IAAM+H,EAAgBwD,CAAU,CAAC,EAAE,KAAK,EAAE,ECF3D,IAAME,GAAiB,IACrB1D,EAAgBwD,CAAU,ECD5B,IAAMG,EAAsB,IAC1B3D,EAAgB+C,CAAuB,ECJzC,IAAMa,EAAe,CAC1B,2BACA,uBACA,mBACA,yBACA,yBACA,+BACA,wBACA,yBACA,+BACA,2BACA,yBACA,+BACA,uBACA,2BACA,qBACA,qBACA,8BACA,yBACA,wBACF,ECjBO,IAAMC,GAAa,IACjB7D,EAAgB4D,CAAY,ECD9B,IAAME,GAAW,IACf7L,EAAM,EAAG,IAAMuH,EAAU,EAAG,GAAG,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,ECMvD,IAAMuE,GAAa,IACxB/D,EAAgB,CAAC,GAAGqB,EAAc,GAAGC,CAAU,CAAC,EAErC0C,GAAkB,IAAMhE,EAAgB+B,CAAW,EAEnDkC,GAAiB,IAAMjE,EAAgBgC,CAAU,EAEjDkC,GAAiB,IAC5BlE,EAAgBuB,CAAmB,EACnC,IACAvB,EAAgBwB,CAAkB,ECP7B,IAAM2C,GAAoB,CAAC,CAAE,OAAAjM,EAAS,CAAE,EAAyB,CAAC,IAAM,CAC7E,GAAIA,EAAS,EACX,MAAM,IAAI,MAAM,mDAAmD,EAErE,OAAOD,EAAMC,EAAQ,CAACoG,EAAGlC,IAAUoD,EAAWpD,EAAY,EAAJ,EAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAC1E,EClBA,IAAIV,GAAK,EAEI0I,EAAkB,IACtB1I,KCEF,IAAM2I,GAAiB,IAC5BV,EAAoB,EACpB3D,EAAgBoC,CAAkB,EAClC5C,EAAU,GAAI,EAAE,ECCX,IAAM8E,GAAa,IAAM,CAC9B,IAAM5I,EAAK0I,EAAgB,EAAE,SAAS,EAAE,SAAS,GAAI,GAAG,EAClDG,EAAU7I,EAAG,UAAU,EAAG,EAAE,EAElC,MAAO,uBADQA,EAAG,UAAU,GAAI,EAAE,KACM6I,GAC1C","sourcesContent":["export const array = <U extends (...args: any) => any>(\n length: number,\n mapFn: U\n): ReturnType<U>[] => {\n return Array.from({ length }, mapFn);\n};\n","export const uniqueValues = (arr: any[]) => {\n return [...new Set(arr)];\n};\n","import { uniqueValues } from \"./uniqueValues\";\n\nexport const arrayDiff = (arr1: any[], arr2: any[]) => {\n return uniqueValues(\n arr1\n .filter((value) => !arr2.includes(value))\n .concat(arr2.filter((value) => !arr1.includes(value)))\n );\n};\n","import { uniqueValues } from \"./uniqueValues\";\n\nexport const arrayIntersection = (arr1: any[], arr2: any[]) => {\n return uniqueValues(arr1.filter((value) => arr2.includes(value)));\n};\n","export const capitalize = (string: string) => {\n return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n};\n","export const clamp = ({\n number,\n min,\n max,\n}: {\n number: number;\n min: number;\n max: number;\n}) => {\n if (max < min && process.env.DEVERYTHING_WARNINGS) {\n console.warn(\"clamp: max < min\", { number, min, max });\n }\n\n if (number < min) {\n return min;\n }\n\n if (number > max) {\n return max;\n }\n\n return number;\n};\n","export const controlCharRegex = new RegExp(/\\p{C}/, \"gu\");\n\n// Charcodes:\n// [\n// 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 127, 129, 131, 133,\n// 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 173, 888,\n// 896, 898, 907, 909, 930, 1328, 1367, 1419, 1424, 1480, 1482, 1484, 1486, 1515,\n// 1517, 1525, 1527, 1529, 1531, 1533, 1535, 1537, 1539, 1541, 1564, 1757, 1806,\n// 1867, 1970, 1972, 1974, 1976, 1978, 1980, 1982, 2043, 2094, 2111, 2140, 2143,\n// 2155, 2157, 2159, 2191, 2193, 2195, 2197, 2199, 2274, 2436, 2445, 2449, 2473,\n// 2481, 2483, 2485, 2490, 2501, 2505, 2511, 2513, 2515, 2517, 2520, 2522, 2526,\n// 2532, 2559, 2564, 2571, 2573, 2577, 2601, 2609, 2612, 2615, 2618, 2621, 2627,\n// 2629, 2633, 2638, 2640, 2642, 2644, 2646, 2648, 2653, 2655, 2657, 2659, 2661,\n// 2679, 2681, 2683, 2685, 2687, 2692, 2702, 2706, 2729, 2737, 2740, 2746, 2758,\n// 2762, 2766, 2769, 2771, 2773, 2775, 2777, 2779, 2781, 2783, 2788, 2802, 2804,\n// 2806, 2808, 2816, 2820, 2829, 2833, 2857, 2865, 2868, 2874, 2885, 2889, 2894,\n// 2896, 2898, 2900, 2904, 2906, 2910, 2916, 2936, 2938, 2940, 2942, 2944, 2948,\n// 2955, 2957, 2961, 2966, 2968, 2971, 2973, 2976, 2978, 2981, 2983, 2987, 2989,\n// 3002, 3004, 3011, 3013, 3017, 3022, 3025, 3027, 3029, 3032, 3034, 3036, 3038,\n// 3040, 3042, 3044, 3067, 3069, 3071, 3085, 3089, 3113, 3130, 3141, 3145, 3150,\n// 3152, 3154, 3156, 3159, 3163, 3166, 3172, 3184, 3186, 3188, 3190, 3213, 3217,\n// 3241, 3252, 3258, 3269, 3273, 3278, 3280, 3282, 3284, 3287, 3289, 3291, 3295,\n// 3300, 3312, 3316, 3318, 3320, 3322, 3324, 3326, 3341, 3345, 3397, 3401, 3408,\n// 3410, 3428, 3456, 3460, 3479, 3481, 3506, 3516, 3518, 3527, 3529, 3531, 3533,\n// 3541, 3543, 3552, 3554, 3556, 3568, 3573, 3575, 3577, 3579, 3581, 3583, 3643,\n// 3645, 3676, 3678, 3680, 3682, 3684, 3686, 3688, 3690, 3692, 3694, 3696, 3698,\n// 3700, 3702, 3704, 3706, 3708, 3710, 3712, 3715, 3717, 3723, 3748, 3750, 3774,\n// 3781, 3783, 3791, 3802, 3808, 3810, 3812, 3814, 3816, 3818, 3820, 3822, 3824,\n// 3826, 3828, 3830, 3832, 3834, 3836, 3838, 3912, 3949, 3951, 3992, 4029, 4045,\n// 4059, 4061, 4063, 4065, 4067, 4069, 4071, 4073, 4075, 4077, 4079, 4081, 4083,\n// 4085, 4087, 4089, 4091, 4093, 4095, 4294, 4296, 4298, 4300, 4302, 4681, 4686,\n// 4695, 4697, 4702, 4745, 4750, 4785, 4790, 4799, 4801, 4806, 4823, 4881, 4886,\n// 4955, 4989, 4991, 5018, 5020, 5022, 5110, 5118, 5789, 5791, 5881, 5883, 5885,\n// 5887, 5910, 5912, 5914, 5916, 5918, 5943, 5945, 5947, 5949, 5951, 5972, 5974,\n// 5976, 5978, 5980, 5982, 5997, 6001, 6004, 6006, 6008, 6010, 6012, 6014, 6110,\n// 6122, 6124, 6126, 6138, 6140, 6142, 6158, 6170, 6172, 6174, 6265, 6267, 6269,\n// 6271, 6315, 6317, 6319, 6390, 6392, 6394, 6396, 6398, 6431, 6444, 6446, 6460,\n// 6462, 6465, 6467, 6510, 6517, 6519, 6521, 6523, 6525, 6527, 6572, 6574, 6602,\n// 6604, 6606, 6619, 6621, 6684, 6751, 6781, 6794, 6796, 6798, 6810, 6812, 6814,\n// 6830, 6863, 6865, 6867, 6869, 6871, 6873, 6875, 6877, 6879, 6881, 6883, 6885,\n// 6887, 6889, 6891, 6893, 6895, 6897, 6899, 6901, 6903, 6905, 6907, 6909, 6911,\n// 6989, 6991, 7039, 7156, 7158, 7160, 7162, 7224, 7226, 7242, 7244, 7305, 7307,\n// 7309, 7311, 7355, 7368, 7370, 7372, 7374, 7419, 7421, 7423, 7958, 7966, 8006,\n// 8014, 8024, 8026, 8028, 8030, 8062, 8117, 8133, 8148, 8156, 8176, 8181, 8191,\n// 8203, 8205, 8207, 8234, 8236, 8238, 8288, 8290, 8292, 8294, 8296, 8298, 8300,\n// 8302, 8306, 8335, 8349, 8351, 8385, 8387, 8389, 8391, 8393, 8395, 8397, 8399,\n// 8433, 8435, 8437, 8439, 8441, 8443, 8445, 8447, 8588, 8590, 9255, 9257, 9259,\n// 9261, 9263, 9265, 9267, 9269, 9271, 9273, 9275, 9277, 9279, 9291, 9293, 9295,\n// 9297, 9299, 9301, 9303, 9305, 9307, 9309, 9311, 11124, 11158, 11508, 11510,\n// 11512, 11558, 11560, 11562, 11564, 11566, 11624, 11626, 11628, 11630, 11633,\n// 11635, 11637, 11639, 11641, 11643, 11645, 11671, 11673, 11675, 11677, 11679,\n// 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11870, 11872, 11874,\n// 11876, 11878, 11880, 11882, 11884, 11886, 11888, 11890, 11892, 11894, 11896,\n// 11898, 11900, 11902, 11930, 12020, 12022, 12024, 12026, 12028, 12030, 12246,\n// 12248, 12250, 12252, 12254, 12256, 12258, 12260, 12262, 12264, 12266, 12268,\n// 12270, 12284, 12286, 12352, 12439, 12544, 12546, 12548, 12592, 12687, 12772,\n// 12774, 12776, 12778, 12780, 12782, 12831, 42125, 42127, 42183, 42185, 42187,\n// 42189, 42191, 42540, 42542, 42544, 42546, 42548, 42550, 42552, 42554, 42556,\n// 42558, 42744, 42746, 42748, 42750, 42955, 42957, 42959, 42962, 42964, 42970,\n// 42972, 42974, 42976, 42978, 42980, 42982, 42984, 42986, 42988, 42990, 42992,\n// 43053, 43055, 43066, 43068, 43070, 43128, 43130, 43132, 43134, 43206, 43208,\n// 43210, 43212, 43226, 43228, 43230, 43348, 43350, 43352, 43354, 43356, 43358,\n// 43389, 43391, 43470, 43482, 43484, 43519, 43575, 43577, 43579, 43581, 43583,\n// 43598, 43610, 43715, 43717, 43719, 43721, 43723, 43725, 43727, 43729, 43731,\n// 43733, 43735, 43737, 43767, 43769, 43771, 43773, 43775, 43783, 43791, 43799,\n// 43801, 43803, 43805, 43807, 43815, 43823, 43884, 43886, 44014, 44026, 44028,\n// 44030, 55204, 55206, 55208, 55210, 55212, 55214, 55239, 55241, 55292, 55294,\n// 55296, 55298, 55300, 55302, 55304, 55306, 55308, 55310, 55312, 55314, 55316,\n// 55318, 55320, 55322, 55324, 55326, 55328, 55330, 55332, 55334, 55336, 55338,\n// 55340, 55342, 55344, 55346, 55348, 55350, 55352, 55354, 55356, 55358, 55360,\n// 55362, 55364, 55366, 55368, 55370, 55372, 55374, 55376, 55378, 55380, 55382,\n// 55384, 55386, 55388, 55390, 55392, 55394, 55396, 55398, 55400, 55402, 55404,\n// 55406, 55408, 55410, 55412, 55414, 55416, 55418, 55420, 55422, 55424, 55426,\n// 55428, 55430, 55432, 55434, 55436, 55438, 55440, 55442, 55444, 55446, 55448,\n// 55450, 55452, 55454, 55456, 55458, 55460, 55462, 55464, 55466, 55468, 55470,\n// 55472, 55474, 55476, 55478, 55480, 55482, 55484, 55486, 55488, 55490, 55492,\n// 55494, 55496, 55498, 55500, 55502, 55504, 55506, 55508, 55510, 55512, 55514,\n// 55516, 55518, 55520, 55522, 55524, 55526, 55528, 55530, 55532, 55534, 55536,\n// 55538, 55540, 55542, 55544, 55546, 55548, 55550, 55552, 55554, 55556, 55558,\n// 55560, 55562, 55564, 55566, 55568, 55570, 55572, 55574, 55576, 55578, 55580,\n// 55582, 55584, 55586, 55588, 55590, 55592, 55594, 55596, 55598, 55600, 55602,\n// 55604, 55606, 55608, 55610, 55612, 55614, 55616, 55618, 55620, 55622, 55624,\n// 55626, 55628, 55630, 55632, 55634, 55636, 55638, 55640, 55642, 55644, 55646,\n// 55648, 55650, 55652, 55654, 55656, 55658, 55660, 55662, 55664, 55666, 55668,\n// 55670, 55672, 55674, 55676, 55678, 55680, 55682, 55684, 55686, 55688, 55690,\n// 55692, 55694, 55696, 55698, 55700, 55702, 55704, 55706, 55708, 55710, 55712,\n// 55714, 55716, 55718, 55720, 55722, 55724, 55726, 55728, 55730, 55732, 55734,\n// 55736, 55738, 55740, 55742, 55744, 55746, 55748, 55750, 55752, 55754, 55756,\n// 55758, 55760, 55762, 55764, 55766, 55768, 55770, 55772, 55774, 55776, 55778,\n// 55780, 55782, 55784, 55786, 55788, 55790, 55792, 55794, 55796, 55798, 55800,\n// 55802, 55804, 55806, 55808, 55810, 55812, 55814, 55816, 55818, 55820, 55822,\n// 55824, 55826, 55828, 55830, 55832, 55834, 55836, 55838, 55840, 55842, 55844,\n// 55846, 55848, 55850, 55852, 55854, 55856, 55858, 55860, 55862, 55864, 55866,\n// 55868, 55870, 55872, 55874, 55876, 55878, 55880, 55882, 55884, 55886, 55888,\n// 55890, 55892, 55894, 55896, 55898, 55900, 55902, 55904, 55906, 55908, 55910,\n// 55912, 55914, 55916, 55918, 55920, 55922, 55924, 55926, 55928, 55930, 55932,\n// 55934, 55936, 55938, 55940, 55942, 55944, 55946, 55948, 55950, 55952, 55954,\n// 55956, 55958, 55960, 55962, 55964, 55966, 55968, 55970, 55972, 55974, 55976,\n// 55978, 55980, 55982, 55984, 55986, 55988, 55990, 55992, 55994, 55996, 55998,\n// 56000, 56002, 56004, 56006, 56008, 56010, 56012, 56014, 56016, 56018, 56020,\n// 56022, 56024, 56026, 56028, 56030, 56032, 56034, 56036, 56038, 56040, 56042,\n// 56044, 56046, 56048, 56050, 56052, 56054, 56056, 56058, 56060, 56062, 56064,\n// 56066, 56068, 56070, 56072, 56074, 56076, 56078, 56080, 56082, 56084, 56086,\n// 56088, 56090, 56092, 56094, 56096, 56098, 56100, 56102, 56104, 56106, 56108,\n// 56110, 56112, 56114, 56116, 56118, 56120, 56122, 56124, 56126, 56128, 56130,\n// 56132, 56134, 56136, 56138, 56140, 56142, 56144, 56146, 56148, 56150, 56152,\n// 56154, 56156, 56158, 56160, 56162, 56164, 56166, 56168, 56170, 56172, 56174,\n// 56176, 56178, 56180, 56182, 56184, 56186, 56188, 56190, 56192, 56194, 56196,\n// 56198, 56200, 56202, 56204, 56206, 56208, 56210, 56212, 56214, 56216, 56218,\n// 56220, 56222, 56224, 56226, 56228, 56230, 56232, 56234, 56236, 56238, 56240,\n// 56242, 56244, 56246, 56248, 56250, 56252, 56254, 56256, 56258, 56260, 56262,\n// 56264, 56266, 56268, 56270, 56272, 56274, 56276, 56278, 56280, 56282, 56284,\n// 56286, 56288, 56290, 56292, 56294, 56296, 56298, 56300, 56302, 56304, 56306,\n// 56308, 56310, 56312, 56314, 56316, 56318, 56320, 56322, 56324, 56326, 56328,\n// 56330, 56332, 56334, 56336, 56338, 56340, 56342, 56344, 56346, 56348, 56350,\n// 56352, 56354, 56356, 56358, 56360, 56362, 56364, 56366, 56368, 56370, 56372,\n// 56374, 56376, 56378, 56380, 56382, 56384, 56386, 56388, 56390, 56392, 56394,\n// 56396, 56398, 56400, 56402, 56404, 56406, 56408, 56410, 56412, 56414, 56416,\n// 56418, 56420, 56422, 56424, 56426, 56428, 56430, 56432, 56434, 56436, 56438,\n// 56440, 56442, 56444, 56446, 56448, 56450, 56452, 56454, 56456, 56458, 56460,\n// 56462, 56464, 56466, 56468, 56470, 56472, 56474, 56476, 56478, 56480, 56482,\n// 56484, 56486, 56488, 56490, 56492, 56494, 56496, 56498, 56500, 56502, 56504,\n// 56506, 56508, 56510, 56512, 56514, 56516, 56518, 56520, 56522, 56524, 56526,\n// 56528, 56530, 56532, 56534, 56536, 56538, 56540, 56542, 56544, 56546, 56548,\n// 56550, 56552, 56554, 56556, 56558, 56560, 56562, 56564, 56566, 56568, 56570,\n// 56572, 56574, 56576, 56578, 56580, 56582, 56584, 56586, 56588, 56590, 56592,\n// 56594, 56596, 56598, 56600, 56602, 56604, 56606, 56608, 56610, 56612, 56614,\n// 56616, 56618, 56620, 56622, 56624, 56626, 56628, 56630, 56632, 56634, 56636,\n// 56638, 56640, 56642, 56644, 56646, 56648, 56650, 56652, 56654, 56656, 56658,\n// 56660, 56662, 56664, 56666, 56668, 56670, 56672, 56674, 56676, 56678, 56680,\n// 56682, 56684, 56686, 56688, 56690, 56692, 56694, 56696, 56698, 56700, 56702,\n// 56704, 56706, 56708, 56710, 56712, 56714, 56716, 56718, 56720, 56722, 56724,\n// 56726, 56728, 56730, 56732, 56734, 56736, 56738, 56740, 56742, 56744, 56746,\n// 56748, 56750, 56752, 56754, 56756, 56758, 56760, 56762, 56764, 56766, 56768,\n// 56770, 56772, 56774, 56776, 56778, 56780, 56782, 56784, 56786, 56788, 56790,\n// 56792, 56794, 56796, 56798, 56800, 56802, 56804, 56806, 56808, 56810, 56812,\n// 56814, 56816, 56818, 56820, 56822, 56824, 56826, 56828, 56830, 56832, 56834,\n// 56836, 56838, 56840, 56842, 56844, 56846, 56848, 56850, 56852, 56854, 56856,\n// 56858, 56860, 56862, 56864, 56866, 56868, 56870, 56872, 56874, 56876, 56878,\n// 56880, 56882, 56884, 56886, 56888, 56890, 56892, 56894, 56896, 56898, 56900,\n// 56902, 56904, 56906, 56908, 56910, 56912, 56914, 56916, 56918, 56920, 56922,\n// 56924, 56926, 56928, 56930, 56932, 56934, 56936, 56938, 56940, 56942, 56944,\n// 56946, 56948, 56950, 56952, 56954, 56956, 56958, 56960, 56962, 56964, 56966,\n// 56968, 56970, 56972, 56974, 56976, 56978, 56980, 56982, 56984, 56986, 56988,\n// 56990, 56992, 56994, 56996, 56998, 57000, 57002, 57004, 57006, 57008, 57010,\n// 57012, 57014, 57016, 57018, 57020, 57022, 57024, 57026, 57028, 57030, 57032,\n// 57034, 57036, 57038, 57040, 57042, 57044, 57046, 57048, 57050, 57052, 57054,\n// 57056, 57058, 57060, 57062, 57064, 57066, 57068, 57070, 57072, 57074, 57076,\n// 57078, 57080, 57082, 57084, 57086, 57088, 57090, 57092, 57094, 57096, 57098,\n// 57100, 57102, 57104, 57106, 57108, 57110, 57112, 57114, 57116, 57118, 57120,\n// 57122, 57124, 57126, 57128, 57130, 57132, 57134, 57136, 57138, 57140, 57142,\n// 57144, 57146, 57148, 57150, 57152, 57154, 57156, 57158, 57160, 57162, 57164,\n// 57166, 57168, 57170, 57172, 57174, 57176, 57178, 57180, 57182, 57184, 57186,\n// 57188, 57190, 57192, 57194, 57196, 57198, 57200, 57202, 57204, 57206, 57208,\n// 57210, 57212, 57214, 57216, 57218, 57220, 57222, 57224, 57226, 57228, 57230,\n// 57232, 57234, 57236, 57238, 57240, 57242, 57244, 57246, 57248, 57250, 57252,\n// 57254, 57256, 57258, 57260, 57262, 57264, 57266, 57268, 57270, 57272, 57274,\n// 57276, 57278, 57280, 57282, 57284, 57286, 57288, 57290, 57292, 57294, 57296,\n// 57298, 57300, 57302, 57304, 57306, 57308, 57310, 57312, 57314, 57316, 57318,\n// 57320, 57322, 57324, 57326, 57328, 57330, 57332, 57334, 57336, 57338, 57340,\n// 57342, 57344, 57346, 57348, 57350, 57352, 57354, 57356, 57358, 57360, 57362,\n// 57364, 57366, 57368, 57370, 57372, 57374, 57376, 57378, 57380, 57382, 57384,\n// 57386, 57388, 57390, 57392, 57394, 57396, 57398, 57400, 57402, 57404, 57406,\n// 57408, 57410, 57412, 57414, 57416, 57418, 57420, 57422, 57424, 57426, 57428,\n// 57430, 57432, 57434, 57436, 57438, 57440, 57442, 57444, 57446, 57448, 57450,\n// 57452, 57454, 57456, 57458, 57460, 57462, 57464, 57466, 57468, 57470, 57472,\n// 57474, 57476, 57478, 57480, 57482, 57484, 57486, 57488, 57490, 57492, 57494,\n// 57496, 57498, 57500, 57502, 57504, 57506, 57508, 57510, 57512, 57514, 57516,\n// 57518, 57520, 57522, 57524, 57526, 57528, 57530, 57532, 57534, 57536, 57538,\n// 57540, 57542, 57544, 57546, 57548, 57550, 57552, 57554, 57556, 57558, 57560,\n// 57562, 57564, 57566, 57568, 57570, 57572, 57574, 57576, 57578, 57580, 57582,\n// 57584, 57586, 57588, 57590, 57592, 57594, 57596, 57598, 57600, 57602, 57604,\n// 57606, 57608, 57610, 57612, 57614, 57616, 57618, 57620, 57622, 57624, 57626,\n// 57628, 57630, 57632, 57634, 57636, 57638, 57640, 57642, 57644, 57646, 57648,\n// 57650, 57652, 57654, 57656, 57658, 57660, 57662, 57664, 57666, 57668, 57670,\n// 57672, 57674, 57676, 57678, 57680, 57682, 57684, 57686, 57688, 57690, 57692,\n// 57694, 57696, 57698, 57700, 57702, 57704, 57706, 57708, 57710, 57712, 57714,\n// 57716, 57718, 57720, 57722, 57724, 57726, 57728, 57730, 57732, 57734, 57736,\n// 57738, 57740, 57742, 57744, 57746, 57748, 57750, 57752, 57754, 57756, 57758,\n// 57760, 57762, 57764, 57766, 57768, 57770, 57772, 57774, 57776, 57778, 57780,\n// 57782, 57784, 57786, 57788, 57790, 57792, 57794, 57796, 57798, 57800, 57802,\n// 57804, 57806, 57808, 57810, 57812, 57814, 57816, 57818, 57820, 57822, 57824,\n// 57826, 57828, 57830, 57832, 57834, 57836, 57838, 57840, 57842, 57844, 57846,\n// 57848, 57850, 57852, 57854, 57856, 57858, 57860, 57862, 57864, 57866, 57868,\n// 57870, 57872, 57874, 57876, 57878, 57880, 57882, 57884, 57886, 57888, 57890,\n// 57892, 57894, 57896, 57898, 57900, 57902, 57904, 57906, 57908, 57910, 57912,\n// 57914, 57916, 57918, 57920, 57922, 57924, 57926, 57928, 57930, 57932, 57934,\n// 57936, 57938, 57940, 57942, 57944, 57946, 57948, 57950, 57952, 57954, 57956,\n// 57958, 57960, 57962, 57964, 57966, 57968, 57970, 57972, 57974, 57976, 57978,\n// 57980, 57982, 57984, 57986, 57988, 57990, 57992, 57994, 57996, 57998, 58000,\n// 58002, 58004, 58006, 58008, 58010, 58012, 58014, 58016, 58018, 58020, 58022,\n// 58024, 58026, 58028, 58030, 58032, 58034, 58036, 58038, 58040, 58042, 58044,\n// 58046, 58048, 58050, 58052, 58054, 58056, 58058, 58060, 58062, 58064, 58066,\n// 58068, 58070, 58072, 58074, 58076, 58078, 58080, 58082, 58084, 58086, 58088,\n// 58090, 58092, 58094, 58096, 58098, 58100, 58102, 58104, 58106, 58108, 58110,\n// 58112, 58114, 58116, 58118, 58120, 58122, 58124, 58126, 58128, 58130, 58132,\n// 58134, 58136, 58138, 58140, 58142, 58144, 58146, 58148, 58150, 58152, 58154,\n// 58156, 58158, 58160, 58162, 58164, 58166, 58168, 58170, 58172, 58174, 58176,\n// 58178, 58180, 58182, 58184, 58186, 58188, 58190, 58192, 58194, 58196, 58198,\n// 58200, 58202, 58204, 58206, 58208, 58210, 58212, 58214, 58216, 58218, 58220,\n// 58222, 58224, 58226, 58228, 58230, 58232, 58234, 58236, 58238, 58240, 58242,\n// 58244, 58246, 58248, 58250, 58252, 58254, 58256, 58258, 58260, 58262, 58264,\n// 58266, 58268, 58270, 58272, 58274, 58276, 58278, 58280, 58282, 58284, 58286,\n// 58288, 58290, 58292, 58294, 58296, 58298, 58300, 58302, 58304, 58306, 58308,\n// 58310, 58312, 58314, 58316, 58318, 58320, 58322, 58324, 58326, 58328, 58330,\n// 58332, 58334, 58336, 58338, 58340, 58342, 58344, 58346, 58348, 58350, 58352,\n// 58354, 58356, 58358, 58360, 58362, 58364, 58366, 58368, 58370, 58372, 58374,\n// 58376, 58378, 58380, 58382, 58384, 58386, 58388, 58390, 58392, 58394, 58396,\n// 58398, 58400, 58402, 58404, 58406, 58408, 58410, 58412, 58414, 58416, 58418,\n// 58420, 58422, 58424, 58426, 58428, 58430, 58432, 58434, 58436, 58438, 58440,\n// 58442, 58444, 58446, 58448, 58450, 58452, 58454, 58456, 58458, 58460, 58462,\n// 58464, 58466, 58468, 58470, 58472, 58474, 58476, 58478, 58480, 58482, 58484,\n// 58486, 58488, 58490, 58492, 58494, 58496, 58498, 58500, 58502, 58504, 58506,\n// 58508, 58510, 58512, 58514, 58516, 58518, 58520, 58522, 58524, 58526, 58528,\n// 58530, 58532, 58534, 58536, 58538, 58540, 58542, 58544, 58546, 58548, 58550,\n// 58552, 58554, 58556, 58558, 58560, 58562, 58564, 58566, 58568, 58570, 58572,\n// 58574, 58576, 58578, 58580, 58582, 58584, 58586, 58588, 58590, 58592, 58594,\n// 58596, 58598, 58600, 58602, 58604, 58606, 58608, 58610, 58612, 58614, 58616,\n// 58618, 58620, 58622, 58624, 58626, 58628, 58630, 58632, 58634, 58636, 58638,\n// 58640, 58642, 58644, 58646, 58648, 58650, 58652, 58654, 58656, 58658, 58660,\n// 58662, 58664, 58666, 58668, 58670, 58672, 58674, 58676, 58678, 58680, 58682,\n// 58684, 58686, 58688, 58690, 58692, 58694, 58696, 58698, 58700, 58702, 58704,\n// 58706, 58708, 58710, 58712, 58714, 58716, 58718, 58720, 58722, 58724, 58726,\n// 58728, 58730, 58732, 58734, 58736, 58738, 58740, 58742, 58744, 58746, 58748,\n// 58750, 58752, 58754, 58756, 58758, 58760, 58762, 58764, 58766, 58768, 58770,\n// 58772, 58774, 58776, 58778, 58780, 58782, 58784, 58786, 58788, 58790, 58792,\n// 58794, 58796, 58798, 58800, 58802, 58804, 58806, 58808, 58810, 58812, 58814,\n// 58816, 58818, 58820, 58822, 58824, 58826, 58828, 58830, 58832, 58834, 58836,\n// 58838, 58840, 58842, 58844, 58846, 58848, 58850, 58852, 58854, 58856, 58858,\n// 58860, 58862, 58864, 58866, 58868, 58870, 58872, 58874, 58876, 58878, 58880,\n// 58882, 58884, 58886, 58888, 58890, 58892, 58894, 58896, 58898, 58900, 58902,\n// 58904, 58906, 58908, 58910, 58912, 58914, 58916, 58918, 58920, 58922, 58924,\n// 58926, 58928, 58930, 58932, 58934, 58936, 58938, 58940, 58942, 58944, 58946,\n// 58948, 58950, 58952, 58954, 58956, 58958, 58960, 58962, 58964, 58966, 58968,\n// 58970, 58972, 58974, 58976, 58978, 58980, 58982, 58984, 58986, 58988, 58990,\n// 58992, 58994, 58996, 58998, 59000, 59002, 59004, 59006, 59008, 59010, 59012,\n// 59014, 59016, 59018, 59020, 59022, 59024, 59026, 59028, 59030, 59032, 59034,\n// 59036, 59038, 59040, 59042, 59044, 59046, 59048, 59050, 59052, 59054, 59056,\n// 59058, 59060, 59062, 59064, 59066, 59068, 59070, 59072, 59074, 59076, 59078,\n// 59080, 59082, 59084, 59086, 59088, 59090, 59092, 59094, 59096, 59098, 59100,\n// 59102, 59104, 59106, 59108, 59110, 59112, 59114, 59116, 59118, 59120, 59122,\n// 59124, 59126, 59128, 59130, 59132, 59134, 59136, 59138, 59140, 59142, 59144,\n// 59146, 59148, 59150, 59152, 59154, 59156, 59158, 59160, 59162, 59164, 59166,\n// 59168, 59170, 59172, 59174, 59176, 59178, 59180, 59182, 59184, 59186, 59188,\n// 59190, 59192, 59194, 59196, 59198, 59200, 59202, 59204, 59206, 59208, 59210,\n// 59212, 59214, 59216, 59218, 59220, 59222, 59224, 59226, 59228, 59230, 59232,\n// 59234, 59236, 59238, 59240, 59242, 59244, 59246, 59248, 59250, 59252, 59254,\n// 59256, 59258, 59260, 59262, 59264, 59266, 59268, 59270, 59272, 59274, 59276,\n// 59278, 59280, 59282, 59284, 59286, 59288, 59290, 59292, 59294, 59296, 59298,\n// 59300, 59302, 59304, 59306, 59308, 59310, 59312, 59314, 59316, 59318, 59320,\n// 59322, 59324, 59326, 59328, 59330, 59332, 59334, 59336, 59338, 59340, 59342,\n// 59344, 59346, 59348, 59350, 59352, 59354, 59356, 59358, 59360, 59362, 59364,\n// 59366, 59368, 59370, 59372, 59374, 59376, 59378, 59380, 59382, 59384, 59386,\n// 59388, 59390, 59392, 59394, 59396, 59398, 59400, 59402, 59404, 59406, 59408,\n// 59410, 59412, 59414, 59416, 59418, 59420, 59422, 59424, 59426, 59428, 59430,\n// 59432, 59434, 59436, 59438, 59440, 59442, 59444, 59446, 59448, 59450, 59452,\n// 59454, 59456, 59458, 59460, 59462, 59464, 59466, 59468, 59470, 59472, 59474,\n// 59476, 59478, 59480, 59482, 59484, 59486, 59488, 59490, 59492, 59494, 59496,\n// 59498, 59500, 59502, 59504, 59506, 59508, 59510, 59512, 59514, 59516, 59518,\n// 59520, 59522, 59524, 59526, 59528, 59530, 59532, 59534, 59536, 59538, 59540,\n// 59542, 59544, 59546, 59548, 59550, 59552, 59554, 59556, 59558, 59560, 59562,\n// 59564, 59566, 59568, 59570, 59572, 59574, 59576, 59578, 59580, 59582, 59584,\n// 59586, 59588, 59590, 59592, 59594, 59596, 59598, 59600, 59602, 59604, 59606,\n// 59608, 59610, 59612, 59614, 59616, 59618, 59620, 59622, 59624, 59626, 59628,\n// 59630, 59632, 59634, 59636, 59638, 59640, 59642, 59644, 59646, 59648, 59650,\n// 59652, 59654, 59656, 59658, 59660, 59662, 59664, 59666, 59668, 59670, 59672,\n// 59674, 59676, 59678, 59680, 59682, 59684, 59686, 59688, 59690, 59692, 59694,\n// 59696, 59698, 59700, 59702, 59704, 59706, 59708, 59710, 59712, 59714, 59716,\n// 59718, 59720, 59722, 59724, 59726, 59728, 59730, 59732, 59734, 59736, 59738,\n// 59740, 59742, 59744, 59746, 59748, 59750, 59752, 59754, 59756, 59758, 59760,\n// 59762, 59764, 59766, 59768, 59770, 59772, 59774, 59776, 59778, 59780, 59782,\n// 59784, 59786, 59788, 59790, 59792, 59794, 59796, 59798, 59800, 59802, 59804,\n// 59806, 59808, 59810, 59812, 59814, 59816, 59818, 59820, 59822, 59824, 59826,\n// 59828, 59830, 59832, 59834, 59836, 59838, 59840, 59842, 59844, 59846, 59848,\n// 59850, 59852, 59854, 59856, 59858, 59860, 59862, 59864, 59866, 59868, 59870,\n// 59872, 59874, 59876, 59878, 59880, 59882, 59884, 59886, 59888, 59890, 59892,\n// 59894, 59896, 59898, 59900, 59902, 59904, 59906, 59908, 59910, 59912, 59914,\n// 59916, 59918, 59920, 59922, 59924, 59926, 59928, 59930, 59932, 59934, 59936,\n// 59938, 59940, 59942, 59944, 59946, 59948, 59950, 59952, 59954, 59956, 59958,\n// 59960, 59962, 59964, 59966, 59968, 59970, 59972, 59974, 59976, 59978, 59980,\n// 59982, 59984, 59986, 59988, 59990, 59992, 59994, 59996, 59998, 60000, 60002,\n// 60004, 60006, 60008, 60010, 60012, 60014, 60016, 60018, 60020, 60022, 60024,\n// 60026, 60028, 60030, 60032, 60034, 60036, 60038, 60040, 60042, 60044, 60046,\n// 60048, 60050, 60052, 60054, 60056, 60058, 60060, 60062, 60064, 60066, 60068,\n// 60070, 60072, 60074, 60076, 60078, 60080, 60082, 60084, 60086, 60088, 60090,\n// 60092, 60094, 60096, 60098, 60100, 60102, 60104, 60106, 60108, 60110, 60112,\n// 60114, 60116, 60118, 60120, 60122, 60124, 60126, 60128, 60130, 60132, 60134,\n// 60136, 60138, 60140, 60142, 60144, 60146, 60148, 60150, 60152, 60154, 60156,\n// 60158, 60160, 60162, 60164, 60166, 60168, 60170, 60172, 60174, 60176, 60178,\n// 60180, 60182, 60184, 60186, 60188, 60190, 60192, 60194, 60196, 60198, 60200,\n// 60202, 60204, 60206, 60208, 60210, 60212, 60214, 60216, 60218, 60220, 60222,\n// 60224, 60226, 60228, 60230, 60232, 60234, 60236, 60238, 60240, 60242, 60244,\n// 60246, 60248, 60250, 60252, 60254, 60256, 60258, 60260, 60262, 60264, 60266,\n// 60268, 60270, 60272, 60274, 60276, 60278, 60280, 60282, 60284, 60286, 60288,\n// 60290, 60292, 60294, 60296, 60298, 60300, 60302, 60304, 60306, 60308, 60310,\n// 60312, 60314, 60316, 60318, 60320, 60322, 60324, 60326, 60328, 60330, 60332,\n// 60334, 60336, 60338, 60340, 60342, 60344, 60346, 60348, 60350, 60352, 60354,\n// 60356, 60358, 60360, 60362, 60364, 60366, 60368, 60370, 60372, 60374, 60376,\n// 60378, 60380, 60382, 60384, 60386, 60388, 60390, 60392, 60394, 60396, 60398,\n// 60400, 60402, 60404, 60406, 60408, 60410, 60412, 60414, 60416, 60418, 60420,\n// 60422, 60424, 60426, 60428, 60430, 60432, 60434, 60436, 60438, 60440, 60442,\n// 60444, 60446, 60448, 60450, 60452, 60454, 60456, 60458, 60460, 60462, 60464,\n// 60466, 60468, 60470, 60472, 60474, 60476, 60478, 60480, 60482, 60484, 60486,\n// 60488, 60490, 60492, 60494, 60496, 60498, 60500, 60502, 60504, 60506, 60508,\n// 60510, 60512, 60514, 60516, 60518, 60520, 60522, 60524, 60526, 60528, 60530,\n// 60532, 60534, 60536, 60538, 60540, 60542, 60544, 60546, 60548, 60550, 60552,\n// 60554, 60556, 60558, 60560, 60562, 60564, 60566, 60568, 60570, 60572, 60574,\n// 60576, 60578, 60580, 60582, 60584, 60586, 60588, 60590, 60592, 60594, 60596,\n// 60598, 60600, 60602, 60604, 60606, 60608, 60610, 60612, 60614, 60616, 60618,\n// 60620, 60622, 60624, 60626, 60628, 60630, 60632, 60634, 60636, 60638, 60640,\n// 60642, 60644, 60646, 60648, 60650, 60652, 60654, 60656, 60658, 60660, 60662,\n// 60664, 60666, 60668, 60670, 60672, 60674, 60676, 60678, 60680, 60682, 60684,\n// 60686, 60688, 60690, 60692, 60694, 60696, 60698, 60700, 60702, 60704, 60706,\n// 60708, 60710, 60712, 60714, 60716, 60718, 60720, 60722, 60724, 60726, 60728,\n// 60730, 60732, 60734, 60736, 60738, 60740, 60742, 60744, 60746, 60748, 60750,\n// 60752, 60754, 60756, 60758, 60760, 60762, 60764, 60766, 60768, 60770, 60772,\n// 60774, 60776, 60778, 60780, 60782, 60784, 60786, 60788, 60790, 60792, 60794,\n// 60796, 60798, 60800, 60802, 60804, 60806, 60808, 60810, 60812, 60814, 60816,\n// 60818, 60820, 60822, 60824, 60826, 60828, 60830, 60832, 60834, 60836, 60838,\n// 60840, 60842, 60844, 60846, 60848, 60850, 60852, 60854, 60856, 60858, 60860,\n// 60862, 60864, 60866, 60868, 60870, 60872, 60874, 60876, 60878, 60880, 60882,\n// 60884, 60886, 60888, 60890, 60892, 60894, 60896, 60898, 60900, 60902, 60904,\n// 60906, 60908, 60910, 60912, 60914, 60916, 60918, 60920, 60922, 60924, 60926,\n// 60928, 60930, 60932, 60934, 60936, 60938, 60940, 60942, 60944, 60946, 60948,\n// 60950, 60952, 60954, 60956, 60958, 60960, 60962, 60964, 60966, 60968, 60970,\n// 60972, 60974, 60976, 60978, 60980, 60982, 60984, 60986, 60988, 60990, 60992,\n// 60994, 60996, 60998, 61000, 61002, 61004, 61006, 61008, 61010, 61012, 61014,\n// 61016, 61018, 61020, 61022, 61024, 61026, 61028, 61030, 61032, 61034, 61036,\n// 61038, 61040, 61042, 61044, 61046, 61048, 61050, 61052, 61054, 61056, 61058,\n// 61060, 61062, 61064, 61066, 61068, 61070, 61072, 61074, 61076, 61078, 61080,\n// 61082, 61084, 61086, 61088, 61090, 61092, 61094, 61096, 61098, 61100, 61102,\n// 61104, 61106, 61108, 61110, 61112, 61114, 61116, 61118, 61120, 61122, 61124,\n// 61126, 61128, 61130, 61132, 61134, 61136, 61138, 61140, 61142, 61144, 61146,\n// 61148, 61150, 61152, 61154, 61156, 61158, 61160, 61162, 61164, 61166, 61168,\n// 61170, 61172, 61174, 61176, 61178, 61180, 61182, 61184, 61186, 61188, 61190,\n// 61192, 61194, 61196, 61198, 61200, 61202, 61204, 61206, 61208, 61210, 61212,\n// 61214, 61216, 61218, 61220, 61222, 61224, 61226, 61228, 61230, 61232, 61234,\n// 61236, 61238, 61240, 61242, 61244, 61246, 61248, 61250, 61252, 61254, 61256,\n// 61258, 61260, 61262, 61264, 61266, 61268, 61270, 61272, 61274, 61276, 61278,\n// 61280, 61282, 61284, 61286, 61288, 61290, 61292, 61294, 61296, 61298, 61300,\n// 61302, 61304, 61306, 61308, 61310, 61312, 61314, 61316, 61318, 61320, 61322,\n// 61324, 61326, 61328, 61330, 61332, 61334, 61336, 61338, 61340, 61342, 61344,\n// 61346, 61348, 61350, 61352, 61354, 61356, 61358, 61360, 61362, 61364, 61366,\n// 61368, 61370, 61372, 61374, 61376, 61378, 61380, 61382, 61384, 61386, 61388,\n// 61390, 61392, 61394, 61396, 61398, 61400, 61402, 61404, 61406, 61408, 61410,\n// 61412, 61414, 61416, 61418, 61420, 61422, 61424, 61426, 61428, 61430, 61432,\n// 61434, 61436, 61438, 61440, 61442, 61444, 61446, 61448, 61450, 61452, 61454,\n// 61456, 61458, 61460, 61462, 61464, 61466, 61468, 61470, 61472, 61474, 61476,\n// 61478, 61480, 61482, 61484, 61486, 61488, 61490, 61492, 61494, 61496, 61498,\n// 61500, 61502, 61504, 61506, 61508, 61510, 61512, 61514, 61516, 61518, 61520,\n// 61522, 61524, 61526, 61528, 61530, 61532, 61534, 61536, 61538, 61540, 61542,\n// 61544, 61546, 61548, 61550, 61552, 61554, 61556, 61558, 61560, 61562, 61564,\n// 61566, 61568, 61570, 61572, 61574, 61576, 61578, 61580, 61582, 61584, 61586,\n// 61588, 61590, 61592, 61594, 61596, 61598, 61600, 61602, 61604, 61606, 61608,\n// 61610, 61612, 61614, 61616, 61618, 61620, 61622, 61624, 61626, 61628, 61630,\n// 61632, 61634, 61636, 61638, 61640, 61642, 61644, 61646, 61648, 61650, 61652,\n// 61654, 61656, 61658, 61660, 61662, 61664, 61666, 61668, 61670, 61672, 61674,\n// 61676, 61678, 61680, 61682, 61684, 61686, 61688, 61690, 61692, 61694, 61696,\n// 61698, 61700, 61702, 61704, 61706, 61708, 61710, 61712, 61714, 61716, 61718,\n// 61720, 61722, 61724, 61726, 61728, 61730, 61732, 61734, 61736, 61738, 61740,\n// 61742, 61744, 61746, 61748, 61750, 61752, 61754, 61756, 61758, 61760, 61762,\n// 61764, 61766, 61768, 61770, 61772, 61774, 61776, 61778, 61780, 61782, 61784,\n// 61786, 61788, 61790, 61792, 61794, 61796, 61798, 61800, 61802, 61804, 61806,\n// 61808, 61810, 61812, 61814, 61816, 61818, 61820, 61822, 61824, 61826, 61828,\n// 61830, 61832, 61834, 61836, 61838, 61840, 61842, 61844, 61846, 61848, 61850,\n// 61852, 61854, 61856, 61858, 61860, 61862, 61864, 61866, 61868, 61870, 61872,\n// 61874, 61876, 61878, 61880, 61882, 61884, 61886, 61888, 61890, 61892, 61894,\n// 61896, 61898, 61900, 61902, 61904, 61906, 61908, 61910, 61912, 61914, 61916,\n// 61918, 61920, 61922, 61924, 61926, 61928, 61930, 61932, 61934, 61936, 61938,\n// 61940, 61942, 61944, 61946, 61948, 61950, 61952, 61954, 61956, 61958, 61960,\n// 61962, 61964, 61966, 61968, 61970, 61972, 61974, 61976, 61978, 61980, 61982,\n// 61984, 61986, 61988, 61990, 61992, 61994, 61996, 61998, 62000, 62002, 62004,\n// 62006, 62008, 62010, 62012, 62014, 62016, 62018, 62020, 62022, 62024, 62026,\n// 62028, 62030, 62032, 62034, 62036, 62038, 62040, 62042, 62044, 62046, 62048,\n// 62050, 62052, 62054, 62056, 62058, 62060, 62062, 62064, 62066, 62068, 62070,\n// 62072, 62074, 62076, 62078, 62080, 62082, 62084, 62086, 62088, 62090, 62092,\n// 62094, 62096, 62098, 62100, 62102, 62104, 62106, 62108, 62110, 62112, 62114,\n// 62116, 62118, 62120, 62122, 62124, 62126, 62128, 62130, 62132, 62134, 62136,\n// 62138, 62140, 62142, 62144, 62146, 62148, 62150, 62152, 62154, 62156, 62158,\n// 62160, 62162, 62164, 62166, 62168, 62170, 62172, 62174, 62176, 62178, 62180,\n// 62182, 62184, 62186, 62188, 62190, 62192, 62194, 62196, 62198, 62200, 62202,\n// 62204, 62206, 62208, 62210, 62212, 62214, 62216, 62218, 62220, 62222, 62224,\n// 62226, 62228, 62230, 62232, 62234, 62236, 62238, 62240, 62242, 62244, 62246,\n// 62248, 62250, 62252, 62254, 62256, 62258, 62260, 62262, 62264, 62266, 62268,\n// 62270, 62272, 62274, 62276, 62278, 62280, 62282, 62284, 62286, 62288, 62290,\n// 62292, 62294, 62296, 62298, 62300, 62302, 62304, 62306, 62308, 62310, 62312,\n// 62314, 62316, 62318, 62320, 62322, 62324, 62326, 62328, 62330, 62332, 62334,\n// 62336, 62338, 62340, 62342, 62344, 62346, 62348, 62350, 62352, 62354, 62356,\n// 62358, 62360, 62362, 62364, 62366, 62368, 62370, 62372, 62374, 62376, 62378,\n// 62380, 62382, 62384, 62386, 62388, 62390, 62392, 62394, 62396, 62398, 62400,\n// 62402, 62404, 62406, 62408, 62410, 62412, 62414, 62416, 62418, 62420, 62422,\n// 62424, 62426, 62428, 62430, 62432, 62434, 62436, 62438, 62440, 62442, 62444,\n// 62446, 62448, 62450, 62452, 62454, 62456, 62458, 62460, 62462, 62464, 62466,\n// 62468, 62470, 62472, 62474, 62476, 62478, 62480, 62482, 62484, 62486, 62488,\n// 62490, 62492, 62494, 62496, 62498, 62500, 62502, 62504, 62506, 62508, 62510,\n// 62512, 62514, 62516, 62518, 62520, 62522, 62524, 62526, 62528, 62530, 62532,\n// 62534, 62536, 62538, 62540, 62542, 62544, 62546, 62548, 62550, 62552, 62554,\n// 62556, 62558, 62560, 62562, 62564, 62566, 62568, 62570, 62572, 62574, 62576,\n// 62578, 62580, 62582, 62584, 62586, 62588, 62590, 62592, 62594, 62596, 62598,\n// 62600, 62602, 62604, 62606, 62608, 62610, 62612, 62614, 62616, 62618, 62620,\n// 62622, 62624, 62626, 62628, 62630, 62632, 62634, 62636, 62638, 62640, 62642,\n// 62644, 62646, 62648, 62650, 62652, 62654, 62656, 62658, 62660, 62662, 62664,\n// 62666, 62668, 62670, 62672, 62674, 62676, 62678, 62680, 62682, 62684, 62686,\n// 62688, 62690, 62692, 62694, 62696, 62698, 62700, 62702, 62704, 62706, 62708,\n// 62710, 62712, 62714, 62716, 62718, 62720, 62722, 62724, 62726, 62728, 62730,\n// 62732, 62734, 62736, 62738, 62740, 62742, 62744, 62746, 62748, 62750, 62752,\n// 62754, 62756, 62758, 62760, 62762, 62764, 62766, 62768, 62770, 62772, 62774,\n// 62776, 62778, 62780, 62782, 62784, 62786, 62788, 62790, 62792, 62794, 62796,\n// 62798, 62800, 62802, 62804, 62806, 62808, 62810, 62812, 62814, 62816, 62818,\n// 62820, 62822, 62824, 62826, 62828, 62830, 62832, 62834, 62836, 62838, 62840,\n// 62842, 62844, 62846, 62848, 62850, 62852, 62854, 62856, 62858, 62860, 62862,\n// 62864, 62866, 62868, 62870, 62872, 62874, 62876, 62878, 62880, 62882, 62884,\n// 62886, 62888, 62890, 62892, 62894, 62896, 62898, 62900, 62902, 62904, 62906,\n// 62908, 62910, 62912, 62914, 62916, 62918, 62920, 62922, 62924, 62926, 62928,\n// 62930, 62932, 62934, 62936, 62938, 62940, 62942, 62944, 62946, 62948, 62950,\n// 62952, 62954, 62956, 62958, 62960, 62962, 62964, 62966, 62968, 62970, 62972,\n// 62974, 62976, 62978, 62980, 62982, 62984, 62986, 62988, 62990, 62992, 62994,\n// 62996, 62998, 63000, 63002, 63004, 63006, 63008, 63010, 63012, 63014, 63016,\n// 63018, 63020, 63022, 63024, 63026, 63028, 63030, 63032, 63034, 63036, 63038,\n// 63040, 63042, 63044, 63046, 63048, 63050, 63052, 63054, 63056, 63058, 63060,\n// 63062, 63064, 63066, 63068, 63070, 63072, 63074, 63076, 63078, 63080, 63082,\n// 63084, 63086, 63088, 63090, 63092, 63094, 63096, 63098, 63100, 63102, 63104,\n// 63106, 63108, 63110, 63112, 63114, 63116, 63118, 63120, 63122, 63124, 63126,\n// 63128, 63130, 63132, 63134, 63136, 63138, 63140, 63142, 63144, 63146, 63148,\n// 63150, 63152, 63154, 63156, 63158, 63160, 63162, 63164, 63166, 63168, 63170,\n// 63172, 63174, 63176, 63178, 63180, 63182, 63184, 63186, 63188, 63190, 63192,\n// 63194, 63196, 63198, 63200, 63202, 63204, 63206, 63208, 63210, 63212, 63214,\n// 63216, 63218, 63220, 63222, 63224, 63226, 63228, 63230, 63232, 63234, 63236,\n// 63238, 63240, 63242, 63244, 63246, 63248, 63250, 63252, 63254, 63256, 63258,\n// 63260, 63262, 63264, 63266, 63268, 63270, 63272, 63274, 63276, 63278, 63280,\n// 63282, 63284, 63286, 63288, 63290, 63292, 63294, 63296, 63298, 63300, 63302,\n// 63304, 63306, 63308, 63310, 63312, 63314, 63316, 63318, 63320, 63322, 63324,\n// 63326, 63328, 63330, 63332, 63334, 63336, 63338, 63340, 63342, 63344, 63346,\n// 63348, 63350, 63352, 63354, 63356, 63358, 63360, 63362, 63364, 63366, 63368,\n// 63370, 63372, 63374, 63376, 63378, 63380, 63382, 63384, 63386, 63388, 63390,\n// 63392, 63394, 63396, 63398, 63400, 63402, 63404, 63406, 63408, 63410, 63412,\n// 63414, 63416, 63418, 63420, 63422, 63424, 63426, 63428, 63430, 63432, 63434,\n// 63436, 63438, 63440, 63442, 63444, 63446, 63448, 63450, 63452, 63454, 63456,\n// 63458, 63460, 63462, 63464, 63466, 63468, 63470, 63472, 63474, 63476, 63478,\n// 63480, 63482, 63484, 63486, 63488, 63490, 63492, 63494, 63496, 63498, 63500,\n// 63502, 63504, 63506, 63508, 63510, 63512, 63514, 63516, 63518, 63520, 63522,\n// 63524, 63526, 63528, 63530, 63532, 63534, 63536, 63538, 63540, 63542, 63544,\n// 63546, 63548, 63550, 63552, 63554, 63556, 63558, 63560, 63562, 63564, 63566,\n// 63568, 63570, 63572, 63574, 63576, 63578, 63580, 63582, 63584, 63586, 63588,\n// 63590, 63592, 63594, 63596, 63598, 63600, 63602, 63604, 63606, 63608, 63610,\n// 63612, 63614, 63616, 63618, 63620, 63622, 63624, 63626, 63628, 63630, 63632,\n// 63634, 63636, 63638, 63640, 63642, 63644, 63646, 63648, 63650, 63652, 63654,\n// 63656, 63658, 63660, 63662, 63664, 63666, 63668, 63670, 63672, 63674, 63676,\n// 63678, 63680, 63682, 63684, 63686, 63688, 63690, 63692, 63694, 63696, 63698,\n// 63700, 63702, 63704, 63706, 63708, 63710, 63712, 63714, 63716, 63718, 63720,\n// 63722, 63724, 63726, 63728, 63730, 63732, 63734, 63736, 63738, 63740, 63742,\n// 64110, 64218, 64220, 64222, 64224, 64226, 64228, 64230, 64232, 64234, 64236,\n// 64238, 64240, 64242, 64244, 64246, 64248, 64250, 64252, 64254, 64263, 64265,\n// 64267, 64269, 64271, 64273, 64280, 64282, 64284, 64311, 64317, 64319, 64322,\n// 64325, 64451, 64453, 64455, 64457, 64459, 64461, 64463, 64465, 64912, 64968,\n// 64970, 64972, 64974, 64976, 64978, 64980, 64982, 64984, 64986, 64988, 64990,\n// 64992, 64994, 64996, 64998, 65000, 65002, 65004, 65006, 65050, 65052, 65054,\n// 65107, 65127, 65132, 65134, 65141, 65277, 65279, 65471, 65473, 65480, 65488,\n// 65496, 65501, 65503, 65511, 65519, 65521, 65523, 65525, 65527, 65529, 65531,\n// 65534, 65536,\n// ];\n","export const invisibleWhitespaceRegex = /\\p{Zs}/gu;\n\n// Charcodes:\n// [32, 160, 5760, 8192, 8194, 8196, 8198, 8200, 8202, 8239, 8287, 12288];\n","export const lineSeparatorRegex = /\\p{Zl}/gu;\n\n// charcode\n// [8232]\n","export const paragraphSeparatorRegex = /\\p{Zp}/gu;\n\n// charcode\n// [8233]\n","import { controlCharRegex } from \"../regex/controlCharRegex\";\nimport { invisibleWhitespaceRegex } from \"../regex/invisibleWhitespaceRegex\";\nimport { lineSeparatorRegex } from \"../regex/lineSeparatorRegex\";\nimport { paragraphSeparatorRegex } from \"../regex/paragraphSeparatorRegex\";\n\nexport const cleanSpaces = (str: string): string => {\n return str\n .replace(controlCharRegex, \" \")\n .replace(invisibleWhitespaceRegex, \" \")\n .replace(lineSeparatorRegex, \" \")\n .replace(paragraphSeparatorRegex, \" \")\n .trim() // leave trim after replace, so this test can pass `expect(cleanSpaces(\" \\b \")).toBe(\"\");`\n .replace(/\\s{2,}/g, \" \"); // replace multiple spaces with one space\n};\n","export const first = <T>(arr?: T[]): T | undefined => arr?.[0];\n","export const getKeys = (arg: object) => {\n return Object.keys(arg).concat(getEnumerableOwnPropertySymbols(arg));\n};\n\n// Object.keys does not return enumerable symbols\nexport const getEnumerableOwnPropertySymbols = (arg: object): any[] => {\n return Object.getOwnPropertySymbols\n ? Object.getOwnPropertySymbols(arg).filter(function (symbol) {\n return Object.propertyIsEnumerable.call(arg, symbol);\n })\n : [];\n};\n","import { PlainObject } from \"../types\";\nimport { getKeys } from \"./getKeys\";\n\nexport const firstKey = (arg: PlainObject): string => getKeys(arg)[0];\n","import { PlainObject } from \"../types\";\n\nexport const firstValue = (arg: PlainObject): any => Object.values(arg)[0];\n","export const last = <T>(arr?: T[]): T | undefined => arr?.[arr.length - 1];\n","export const isArray = <T>(arg?: any): arg is T[] => Array.isArray(arg);\n","export const isBoolean = (arg: any) =>\n Object.prototype.toString.call(arg) === \"[object Boolean]\";\n","export const isServer = () => typeof window === \"undefined\";\n","import { isServer } from \"./isServer\";\n\nexport const isClient = () => !isServer();\n","import { isClient } from \"./isClient\";\n\nexport const isBrowser = isClient;\n","export const isString = (arg: any): arg is string => typeof arg === \"string\";\n","import { isString } from \"./isString\";\n\nexport const isEmail = (arg: string) =>\n isString(arg) && /\\S+@\\S+\\.\\S+/.test(arg);\n","export const isObject = <T>(arg?: any): arg is Record<string, T> =>\n Object.prototype.toString.call(arg) === \"[object Object]\";\n","import { Maybe, PlainObject } from \"../types\";\nimport { isArray } from \"./isArray\";\nimport { isObject } from \"./isObject\";\nimport { isString } from \"./isString\";\n\nexport const isEmpty = (arg?: Maybe<any>) => {\n if (isEmptyObject(arg)) return true;\n if (isEmptyArray(arg)) return true;\n if (isEmptyString(arg)) return true;\n\n return arg === undefined || arg === null;\n};\n\nexport const isEmptyString = (arg: string) => {\n return isString(arg) && arg.trim().length === 0;\n};\n\nexport const isEmptyArray = (arg: any[]) => {\n return isArray(arg) && arg.length === 0;\n};\n\nexport const isEmptyObject = (arg: PlainObject) => {\n return isObject(arg) && Object.keys(arg).length === 0;\n};\n","export const isFunction = (arg: any) =>\n Object.prototype.toString.call(arg) === \"[object Function]\";\n","export const isJsDate = (arg: Date): arg is Date =>\n Object.prototype.toString.call(arg) === \"[object Date]\" &&\n !isNaN(arg as unknown as number);\n","export const isKey = <T extends object>(\n key: string | number | symbol,\n obj: T\n): key is keyof T =>\n obj.hasOwnProperty(key) && // makes sure the prop is not in the prototype chain\n obj.propertyIsEnumerable(key); // makes sure the prop is not a getter/setter\n","export const isInt = (arg: number) => Number.isInteger(arg);\n\nexport const isEven = (arg: number) => isInt(arg) && !(arg % 2);\n\nexport const isOdd = (arg: number) => isInt(arg) && !!(arg % 2);\n\nexport const isPositive = (arg: number) => isInt(arg) && arg > 0;\n\nexport const isNegative = (arg: number) => isInt(arg) && arg < 0;\n\nexport const isNumber = (arg: any): arg is number => {\n return (\n Object.prototype.toString.apply(arg) === \"[object Number]\" && isFinite(arg)\n );\n};\n","export const isSpacedString = (s: string) => {\n return s.indexOf(\" \") >= 0;\n};\n","import { isNumber } from \"./isNumber\";\nimport { isSpacedString } from \"./isSpacedString\";\nimport { isString } from \"./isString\";\n\nexport const isNumeric = (arg: number | string): boolean => {\n if (isNumber(arg)) return true;\n\n if (!isString(arg) || isSpacedString(arg)) return false;\n\n return !isNaN(parseFloat(arg));\n};\n","export const isNumericId = (id: string): boolean =>\n /^\\d+$/.test(id) && parseInt(id) > 0;\n","export const isPromise = (arg: any) => arg instanceof Promise;\n","import { isClient } from \"./isClient\";\n\nexport const isPWA = () => {\n return isClient() && window.matchMedia(\"(display-mode: standalone)\").matches; // credits to Narcis\n};\n","var canUseSymbol = typeof Symbol === \"function\" && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for(\"react.element\") : 0xeac7;\n\nexport const isReactElement = (value: any) => {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n};\n","export const isRegExp = (arg: any): arg is RegExp =>\n Object.prototype.toString.call(arg) === \"[object RegExp]\";\n","import { getKeys } from \"../helpers\";\nimport { isArray } from \"./isArray\";\nimport { isFunction } from \"./isFunction\";\nimport { isObject } from \"./isObject\";\n\nexport const isSame = (value1: any, value2: any): boolean => {\n if (value1 === value2) {\n return true;\n }\n\n if (isArray(value1) && isArray(value2)) {\n if (value1.length !== value2.length) return false;\n return value1.every((value, index) => isSame(value, value2[index]));\n }\n\n if (isObject(value1) && isObject(value2)) {\n const keys = getKeys(value1);\n if (keys.length !== getKeys(value2).length) return false;\n\n return keys.every((key: string) => {\n return isSame(value1[key], value2[key]);\n });\n }\n\n if (isFunction(value1) && isFunction(value2)) {\n return value1.toString() === value2.toString();\n }\n\n return false;\n};\n","import { isJsDate } from \"./isJsDate\";\n\nexport const isStringDate = (arg: string) => {\n const date = new Date(arg);\n return isJsDate(date);\n};\n","export const isUndefined = (arg: any) => typeof arg === \"undefined\";\n","const pattern = new RegExp(\n \"^(https?:\\\\/\\\\/)?\" + // protocol\n \"((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.?)+[a-z]{2,}|\" + // domain name\n \"((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))\" + // OR ip (v4) address\n \"(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*\" + // port and path\n \"(\\\\?[;&a-z\\\\d%_.~+=-]*)?\" + // query string\n \"(\\\\#[-a-z\\\\d_]*)?$\",\n \"i\"\n); // fragment locator\n\nexport const isURL = (arg: string) => {\n return !!arg && pattern.test(arg);\n};\n","export const isUUID = (arg: string) =>\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(\n arg\n );\n","import { Maybe } from \"../types\";\n\nexport const isValue = (arg?: Maybe<any>) => {\n return arg !== undefined && arg !== null && !Number.isNaN(arg);\n};\n","import { PlainObject } from \"../types\";\nimport { isKey, isObject } from \"../validators\";\nimport { getKeys } from \"./getKeys\";\n\n// Simple merge function that merges two objects, arrays get overwritten, no options\nexport const merge = (target: PlainObject, source: PlainObject) => {\n const merger: PlainObject = {};\n getKeys(target).forEach((key) => {\n merger[key] = isObject(target[key]) ? merge({}, target[key]) : target[key];\n });\n getKeys(source).forEach((key) => {\n if (isKey(key, target))\n merger[key] =\n isObject(target[key]) && isObject(source[key])\n ? merge(target[key], source[key])\n : source[key];\n else\n merger[key] = isObject(source[key])\n ? merge({}, source[key])\n : source[key];\n });\n return merger;\n};\n","export const moveToFirst = <T>(\n items: T[],\n condition: (item: T, i: number, items: T[]) => boolean\n): T[] => {\n const resortedItems = [...items];\n for (let i = 0; i < resortedItems.length; i++) {\n if (condition(resortedItems[i], i, resortedItems)) {\n let firstItem = resortedItems.splice(i, 1);\n resortedItems.unshift(firstItem[0]);\n break;\n }\n }\n return resortedItems;\n};\n","export const moveToLast = <T>(\n items: T[],\n condition: (item: T, i: number, items: T[]) => boolean\n): T[] => {\n const resortedItems = [...items];\n for (let i = 0; i < resortedItems.length; i++) {\n if (condition(resortedItems[i], i, resortedItems)) {\n let lastItem = resortedItems.splice(i, 1)[0];\n resortedItems.push(lastItem);\n break;\n }\n }\n return resortedItems;\n};\n","import { PlainObject } from \"../types\";\nimport { isSame } from \"../validators/isSame\";\nimport { getKeys } from \"./getKeys\";\n\nexport const objectDiff = (\n leftObject: PlainObject,\n rightObject: PlainObject\n) => {\n var diff: PlainObject = {};\n const allKeys = new Set([...getKeys(leftObject), ...getKeys(rightObject)]);\n\n for (const key of allKeys) {\n if (!isSame(rightObject[key], leftObject[key])) {\n diff[key] = {\n from: leftObject[key],\n to: rightObject[key],\n };\n }\n }\n\n return diff;\n};\n","import { DateLike, Maybe } from \"../types\";\nimport { isEmpty } from \"../validators/isEmpty\";\nimport { isJsDate } from \"../validators/isJsDate\";\n\nexport const parseDate = (arg?: Maybe<DateLike>) => {\n if (isEmpty(arg)) return;\n\n const date = new Date(arg!);\n\n if (!isJsDate(date)) return;\n\n return date;\n};\n","export const pretty = (arg: any) => {\n return JSON.stringify(arg, null, 2);\n};\n","export const promiseWithTimeout = <T>(\n promise: () => Promise<T>,\n timeoutMs: number,\n error?: Error\n): Promise<T> => {\n let timeout: ReturnType<typeof setTimeout>;\n const timeoutPromise = new Promise<never>((_, reject) => {\n timeout = setTimeout(\n () => reject(error ?? new Error(\"Promise timed out\")),\n timeoutMs\n );\n });\n\n return Promise.race([promise(), timeoutPromise]).finally(() => {\n clearTimeout(timeout);\n });\n};\n","export const sleep = (timeMs: number): Promise<void> => {\n return new Promise((resolve) => {\n setTimeout(resolve, timeMs);\n });\n};\n","import { isArray } from \"../validators\";\n\nexport const toggleArray = <T>(arg: T[], value: T) => {\n if (isArray<T>(arg)) {\n const copy: T[] = arg.reduce((acc: T[], val) => {\n if (val !== value) acc.push(val);\n return acc;\n }, []);\n if (copy.length === arg.length) copy.push(value);\n return copy;\n }\n\n return arg;\n};\n","import { isPositive } from \"../validators/isNumber\";\n\nexport const truncate = (arg: string, limit: number, ellipsis = \"...\") => {\n if (!isPositive(limit)) return arg;\n\n const argArray = [...arg]; // convert string to array, emoji and unicode safe\n\n if (argArray.length <= limit) return arg;\n\n return argArray.slice(0, limit).join(\"\") + ellipsis;\n};\n","export type Address = {\n city: string;\n country: string;\n state?: string;\n street: string;\n line2?: string;\n number: string;\n zip: string;\n};\n\nexport const UK_ADDRESSES: Address[] = [\n {\n city: \"London\",\n country: \"United Kingdom\",\n street: \"Baker Street\",\n line2: \"Marylebone\",\n number: \"221B\",\n zip: \"NW1 6XE\",\n },\n {\n city: \"Birmingham\",\n country: \"United Kingdom\",\n street: \"Bordesley Street\",\n number: \"B1 1AA\",\n zip: \"B1 1AA\",\n },\n];\n\nexport const US_ADDRESSES: Address[] = [\n {\n city: \"New York\",\n country: \"United States\",\n state: \"NY\",\n street: \"Broadway\",\n line2: \"Manhattan\",\n number: \"42\",\n zip: \"10036\",\n },\n {\n city: \"Los Angeles\",\n country: \"United States\",\n state: \"CA\",\n street: \"Hollywood Boulevard\",\n number: \"6801\",\n zip: \"90028\",\n },\n];\n\nexport const EUROPE_ADDRESSES: Address[] = [\n {\n city: \"Paris\",\n country: \"France\",\n street: \"Rue de Rivoli\",\n number: \"75001\",\n zip: \"75001\",\n },\n {\n city: \"Berlin\",\n country: \"Germany\",\n street: \"Unter den Linden\",\n line2: \"Mitte\",\n number: \"10117\",\n zip: \"10117\",\n },\n {\n city: \"Rome\",\n country: \"Italy\",\n street: \"Via del Corso\",\n number: \"00186\",\n zip: \"00186\",\n },\n {\n city: \"Madrid\",\n country: \"Spain\",\n street: \"Gran Vía\",\n line2: \"Sol\",\n number: \"28013\",\n zip: \"28013\",\n },\n];\n\nexport const MIXED_ADDRESSES: Address[] = [\n {\n city: \"Moscow\",\n country: \"Russia\",\n street: \"Tverskaya\",\n number: \"101000\",\n zip: \"101000\",\n },\n {\n city: \"Tokyo\",\n country: \"Japan\",\n street: \"Shinjuku\",\n line2: \"Shinjuku City\",\n number: \"160-0022\",\n zip: \"160-0022\",\n },\n {\n city: \"Beijing\",\n country: \"China\",\n street: \"Changan\",\n number: \"100005\",\n zip: \"100005\",\n },\n {\n city: \"Cairo\",\n country: \"Egypt\",\n street: \"Al-Muizz\",\n number: \"11511\",\n zip: \"11511\",\n },\n {\n city: \"Buenos Aires\",\n country: \"Argentina\",\n street: \"Avenida de Mayo\",\n number: \"1002\",\n zip: \"C1006AAQ\",\n },\n {\n city: \"Cape Town\",\n country: \"South Africa\",\n street: \"Adderley\",\n number: \"7700\",\n zip: \"7700\",\n },\n {\n city: \"Sydney\",\n country: \"Australia\",\n street: \"George\",\n line2: \"Haymarket\",\n number: \"2000\",\n zip: \"2000\",\n },\n {\n city: \"Rio de Janeiro\",\n country: \"Brazil\",\n street: \"Av. Presidente Vargas\",\n number: \"20021-000\",\n zip: \"20021-000\",\n },\n {\n city: \"Mexico City\",\n country: \"Mexico\",\n street: \"Paseo de la Reforma\",\n number: \"06500\",\n zip: \"06500\",\n },\n];\n\nexport const ADDRESSES: Address[] = [\n ...UK_ADDRESSES,\n ...US_ADDRESSES,\n ...EUROPE_ADDRESSES,\n ...MIXED_ADDRESSES,\n];\n","export const randomInt = (start: number = -100, end: number = 100): number =>\n Math.floor(Math.random() * (end - start + 1) + start);\n\nexport const randomPositiveInt = (end: number = 100): number =>\n randomInt(1, end);\n\nexport const randomNegativeInt = (start: number = -100): number =>\n randomInt(start, -1);\n\nexport const randomMaxSafeInt = () =>\n randomInt(-Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n\nexport const randomMaxInt = () =>\n randomInt(-Number.MAX_VALUE, Number.MAX_VALUE);\n\nexport const randomPercentage = () => randomInt(-100, 100);\n","import { randomInt } from \"./randomInt\";\n\nexport const randomArrayItem = <T>(array: T[]): T => {\n return array[randomInt(0, array.length - 1)];\n};\n","import { ADDRESSES } from \"../constants/addresses\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomAddress = () => {\n return randomArrayItem(ADDRESSES);\n};\n","import { array } from \"../helpers/array\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\n//avoid 0s and Os as they get confused with each other\nconst chars = \"123456789ABCDEFGHIJKLMNPQRSTUVWXYZ\".split(\"\");\n\n/**\n * Generates a random alphanumeric code that can be used for verification codes, etc.\n * Does not contain 0s or Os as they get confused with each other.\n * @param length The length of the code to generate.\n * @returns A random alphanumeric code.\n * @example\n * randomAlphaNumericCode(); => \"A2G4G6\"\n */\nexport const randomAlphaNumericCode = ({\n length = 6,\n}: { length?: number } = {}) => {\n if (length < 1)\n throw new Error(\"randomAlphaNumericCode: Length must be greater than 0.\");\n\n return array(length, () => randomArrayItem(chars)).join(\"\");\n};\n","import { randomInt } from \"./randomInt\";\n\nexport const randomBool = () => !!randomInt(0, 1);\n","import { isValue } from \"../validators/isValue\";\n\n// Max js digits is theoretically 17, but is actually 16, see Math.random output.\nexport const JS_MAX_DIGITS = 16;\n\n// TODO: with big numbers there will be less digits\nexport const randomFloat = (\n min: number = -9,\n max: number = 9,\n decimals?: number // toFixed accepts max 100 anyway... even if the docs say 20\n) => {\n const float = Math.random() * (max - min) + min;\n\n if (isValue(decimals)) return parseFloat(float.toFixed(decimals));\n\n return float;\n};\n\n// TODO: randomBigFloat\n","import { Coords } from \"../types\";\nimport { randomFloat } from \"./randomFloat\";\n\nexport const randomCoords = (): Coords => {\n return {\n lat: randomLat(),\n lng: randomLng(),\n };\n};\n\nexport const randomLat = () => {\n return randomFloat(-90, 90);\n};\n\nexport const randomLng = () => {\n return randomFloat(-180, 180);\n};\n","import {\n MILLISECONDS_IN_DECADE,\n MAX_DATE_MILLISECONDS,\n MILLISECONDS_IN_MINUTE,\n} from \"../constants/time\";\n\nexport const randomDate = (start?: Date, end?: Date) => {\n const startDate = start || new Date(-MILLISECONDS_IN_DECADE);\n const endDate = end || new Date(MILLISECONDS_IN_DECADE);\n return new Date(\n startDate.getTime() +\n Math.random() * (endDate.getTime() - startDate.getTime())\n );\n};\n\nexport const randomMaxDate = (start?: Date, end?: Date) => {\n const startDate = start || new Date(-MAX_DATE_MILLISECONDS);\n const endDate = end || new Date(MAX_DATE_MILLISECONDS);\n return randomDate(startDate, endDate);\n};\n\nexport const randomFutureDate = () => {\n // Add a safe margin in the future (i.e. lagging tests). About 5 minutes is enough.\n const safeNow = new Date(new Date().getTime() + 5 * MILLISECONDS_IN_MINUTE);\n return randomDate(safeNow);\n};\n\nexport const randomPastDate = () => {\n return randomDate(undefined, new Date());\n};\n\nexport const randomDateRange = () => {\n const startDate = randomDate();\n const endDate = randomDate(startDate);\n\n return {\n endDate,\n startDate,\n };\n};\n","export const DOMAIN_NAMES = [\n \"gmail.com\",\n \"yahoo.com\",\n \"hotmail.com\",\n \"aol.com\",\n \"msn.com\",\n \"comcast.net\",\n \"live.com\",\n \"att.net\",\n \"mac.com\",\n \"me.com\",\n \"charter.net\",\n \"shaw.ca\",\n \"yahoo.ca\",\n \"mail.com\",\n \"qq.com\",\n \"web.de\",\n \"gmx.de\",\n \"mail.ru\",\n];\n","export const ANIMAL_NAMES = [\n \"Albatross\",\n \"Dolphin\",\n \"Elephant\",\n \"Giraffe\",\n \"Koala\",\n \"Lion\",\n \"Penguin\",\n];\n\nexport const TOOL_NAMES = [\n \"Axe\",\n \"Chisel\",\n \"Drill\",\n \"Hammer\",\n \"Mallet\",\n \"Pliers\",\n \"Saw\",\n \"Screwdriver\",\n \"Wrench\",\n];\n\nexport const WESTERN_FIRST_NAMES = [\n \"Adrian\",\n \"Albert\",\n \"Alexander\",\n \"Alice\",\n \"Amanda\",\n \"Amy\",\n \"Benjamin\",\n \"David\",\n \"Emma\",\n \"Esther\",\n \"Olivia\",\n \"Ruby\",\n \"Sarah\",\n \"Victoria\",\n];\n\nexport const WESTERN_LAST_NAMES = [\n \"Anderson\",\n \"Brown\",\n \"Davis\",\n \"Jackson\",\n \"Johnson\",\n \"Jones\",\n \"Miller\",\n \"Moore\",\n \"Smith\",\n \"Taylor\",\n \"Thomas\",\n \"White\",\n \"Williams\",\n \"Wilson\",\n];\n\nexport const CYRILLIC_FIRST_NAMES = [\n \"Абигаил\",\n \"Агнес\",\n \"Адам\",\n \"Адриан\",\n \"Алан\",\n \"Александр\",\n \"Алиса\",\n \"Альберт\",\n \"Аманда\",\n \"Амелия\",\n \"Эми\",\n \"Эндрю\",\n];\n\nexport const CYRILLIC_LAST_NAMES = [\n \"Андерсон\",\n \"Браун\",\n \"Вилсон\",\n \"Джексон\",\n \"Джонс\",\n \"Джонсон\",\n \"Дэвис\",\n \"Миллер\",\n \"Мур\",\n \"Смит\",\n \"Тейлор\",\n \"Томас\",\n \"Уайт\",\n \"Уильямс\",\n];\n\nexport const JAPANESE_FIRST_NAMES = [\n \"アグネス\",\n \"アダム\",\n \"アドリアン\",\n \"アビゲイル\",\n \"アマンダ\",\n \"アミー\",\n \"アメリア\",\n \"アラン\",\n \"アリス\",\n \"アルバート\",\n \"アレクサンダー\",\n \"アンドリュー\",\n];\n\nexport const JAPANESE_LAST_NAMES = [\n \"アンダーソン\",\n \"ウィリアムズ\",\n \"ウィルソン\",\n \"ジャクソン\",\n \"ジョーンズ\",\n \"ジョンソン\",\n \"スミス\",\n \"タイラー\",\n \"デイビス\",\n \"トーマス\",\n \"ブラウン\",\n \"ホワイト\",\n \"ミラー\",\n \"モア\",\n];\n\nexport const ARABIC_FIRST_NAMES = [\n \"آدريان\",\n \"آدم\",\n \"آلان\",\n \"آلبرت\",\n \"آليس\",\n \"آماندا\",\n \"آمي\",\n \"آميليا\",\n \"أبيجيل\",\n \"أغنيس\",\n \"ألكسندر\",\n \"أندرو\",\n];\n\nexport const ARABIC_LAST_NAMES = [\n \"أندرسون\",\n \"براون\",\n \"تايلور\",\n \"توماس\",\n \"جاكسون\",\n \"جونز\",\n \"جونسون\",\n \"ديفيس\",\n \"سميث\",\n \"مور\",\n \"ميلر\",\n \"وايت\",\n \"ويلسون\",\n \"ويليامز\",\n];\n\nexport const FIRST_NAMES = [\n ...WESTERN_FIRST_NAMES,\n ...CYRILLIC_FIRST_NAMES,\n ...JAPANESE_FIRST_NAMES,\n ...ARABIC_FIRST_NAMES,\n];\n\nexport const LAST_NAMES = [\n ...WESTERN_LAST_NAMES,\n ...CYRILLIC_LAST_NAMES,\n ...JAPANESE_LAST_NAMES,\n ...ARABIC_LAST_NAMES,\n];\n","import { WESTERN_FIRST_NAMES, WESTERN_LAST_NAMES } from \"../constants/names\";\nimport { randomArrayItem } from \"./randomArrayItem\";\nimport { randomInt } from \"./randomInt\";\n\nexport const randomHandle = () =>\n (\n randomArrayItem(WESTERN_FIRST_NAMES) +\n \".\" +\n randomArrayItem(WESTERN_LAST_NAMES)\n ).toLowerCase() + randomInt(11, 99);\n","import { DOMAIN_NAMES } from \"../constants/domains\";\nimport { randomArrayItem } from \"./randomArrayItem\";\nimport { randomHandle } from \"./randomHandle\";\n\n//Use randomId() to generate a unique email\nexport const randomEmail = () =>\n `${randomHandle()}@${randomArrayItem(DOMAIN_NAMES)}`;\n","export const EMOJI_SAMPLE = [\n \"😀\",\n \"😁\",\n \"😂\",\n \"🤣\",\n \"😃\",\n \"😄\",\n \"😅\",\n \"😆\",\n \"😉\",\n \"😊\",\n \"😋\",\n \"😎\",\n \"😍\",\n \"😘\",\n \"😗\",\n \"😙\",\n];\n\nexport const SPECIAL_CHARACTERS = [\"!\", \"@\", \"#\", \"$\", \"%\", \"^\", \"&\", \"*\"];\n","import { EMOJI_SAMPLE } from \"../constants/unicode\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomEmoji = () => {\n return randomArrayItem(EMOJI_SAMPLE);\n};\n","import { isNumeric } from \"../validators/isNumeric\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomEnumKey = <T extends object>(enumObject: T): keyof T => {\n return randomArrayItem(\n Object.keys(enumObject).filter((key) => !isNumeric(key)) // key cannot be a number\n ) as keyof T;\n};\n","import { isKey } from \"../validators/isKey\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomEnumValue = <T extends object>(\n enumObject: T\n): T[keyof T] => {\n let values: T[keyof T][] = [];\n\n Object.values(enumObject).forEach((value) => {\n // types are tricky here because the value is used also to check if exists as a key\n if (isKey(value, enumObject) && !values.includes(value as T[keyof T]))\n values.push(enumObject[value as keyof T]);\n });\n\n return randomArrayItem(values);\n};\n","export const VERBS = [\n \"abide\",\n \"abound\",\n \"accept\",\n \"accomplish\",\n \"achieve\",\n \"acquire\",\n \"act\",\n \"adapt\",\n \"add\",\n \"adjust\",\n \"admire\",\n \"admit\",\n \"adopt\",\n \"advance\",\n \"advise\",\n \"afford\",\n \"agree\",\n \"alert\",\n \"allow\",\n \"be\",\n \"go\",\n \"need\",\n \"work\",\n];\n\nexport const NOUNS = [\n \"abandon\",\n \"ability\",\n \"able\",\n \"abortion\",\n \"about\",\n \"above\",\n \"abroad\",\n \"absence\",\n \"absent\",\n \"absolute\",\n];\n\nexport const ADJECTIVES = [\n \"abandoned\",\n \"abdominal\",\n \"ability\",\n \"able\",\n \"abnormal\",\n \"abolish\",\n \"abortion\",\n \"about\",\n \"above\",\n \"abroad\",\n \"absence\",\n \"absent\",\n \"absolute\",\n];\n\nexport const ADVERBS = [\n \"abnormally\",\n \"aboard\",\n \"absentmindedly\",\n \"absolutely\",\n \"absurdly\",\n \"abundantly\",\n \"abysmally\",\n \"academically\",\n \"acceleratedly\",\n \"accentually\",\n \"acceptably\",\n \"accessibly\",\n \"accidentally\",\n \"accommodatingly\",\n];\n\nexport const LONG_WORDS = [\n \"Pneumonoultramicroscopicsilicovolcanoconiosis\",\n \"Floccinaucinihilipilification\",\n \"Pseudopseudohypoparathyroidism\",\n \"Hippopotomonstrosesquippedaliophobia\",\n \"Antidisestablishmentarianism\",\n \"Supercalifragilisticexpialidocious\",\n \"Honorificabilitudinitatibus\",\n];\n\nexport const JS_RESERVED_WORDS = [\n \"abstract\",\n \"arguments\",\n \"await\",\n \"boolean\",\n \"break\",\n \"byte\",\n \"case\",\n \"catch\",\n \"char\",\n \"class\",\n \"const\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"double\",\n \"else\",\n \"enum*\",\n \"eval\",\n \"export\",\n \"extends\",\n \"false\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"function\",\n \"goto\",\n \"if\",\n \"implements\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"int\",\n \"interface\",\n \"let\",\n \"long\",\n \"native\",\n \"new\",\n \"null\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"return\",\n \"short\",\n \"static\",\n \"super\",\n \"switch\",\n \"synchronized\",\n \"this\",\n \"throw\",\n \"throws\",\n \"transient\",\n \"true\",\n \"try\",\n \"typeof\",\n \"var\",\n \"void\",\n \"volatile\",\n \"while\",\n \"with\",\n \"yield\",\n];\n\nexport const HTML_COLOR_NAME_SAMPLES = [\n \"AliceBlue\",\n \"Aqua\",\n \"Aquamarine\",\n \"Azure\",\n \"Beige\",\n \"Bisque\",\n \"Black\",\n \"Blue\",\n \"BlueViolet\",\n \"Brown\",\n \"BurlyWood\",\n \"CadetBlue\",\n \"Chartreuse\",\n \"Chocolate\",\n \"Coral\",\n \"DarkSlateGray\",\n \"DeepPink\",\n \"Gold\",\n \"Lime\",\n \"Olive\",\n \"Orchid\",\n \"Salmon\",\n \"Turquoise\",\n];\n\nexport const WORDS = [\n ...VERBS,\n ...NOUNS,\n ...ADJECTIVES,\n ...ADVERBS,\n ...LONG_WORDS,\n];\n","import { WORDS } from \"../constants/words\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomWord = () => {\n return randomArrayItem(WORDS);\n};\n","import { array } from \"../helpers\";\nimport { capitalize } from \"../helpers/capitalize\";\nimport { randomWord } from \"./randomWord\";\n\nexport const randomParagraph = () => {\n return capitalize(array(8, () => randomWord()).join(\" \")) + \".\";\n};\n","import { randomArrayItem } from \"./randomArrayItem\";\nimport { randomParagraph } from \"./randomParagraph\";\nimport { randomWord } from \"./randomWord\";\n\nconst fileExtensions = [\"png\", \"jpg\", \"jpeg\", \"gif\", \"svg\", \"webp\"];\n\n// This is a client only function\nexport const randomFile = ({\n name,\n extension,\n}: {\n name?: string;\n extension?: string;\n} = {}): File | undefined => {\n if (typeof File === \"undefined\") return undefined;\n\n const _extension = extension || randomArrayItem(fileExtensions);\n return new File(\n [randomParagraph()], // TODO: Use random char string\n `${name || randomWord()}.${_extension}`,\n {\n type: `image/${_extension}`,\n }\n );\n};\n","export const HEX_VALUES = [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n];\n","import { HEX_VALUES } from \"../constants/hex\";\nimport { array } from \"../helpers\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomHexColor = () => {\n return \"#\" + array(6, () => randomArrayItem(HEX_VALUES)).join(\"\");\n};\n","import { HEX_VALUES } from \"../constants/hex\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomHexValue = () => {\n return randomArrayItem(HEX_VALUES);\n};\n","import { HTML_COLOR_NAME_SAMPLES } from \"../constants/words\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomHtmlColorName = () => {\n return randomArrayItem(HTML_COLOR_NAME_SAMPLES);\n};\n","export const IBAN_SAMPLES = [\n \"AD1200012030200359100100\",\n \"BA391290079401028494\",\n \"BE68539007547034\",\n \"BG80BNBG96611020345678\",\n \"BH67BMAG00001299123456\",\n \"BY13NBRB3600900000002Z00AB00\",\n \"CH9300762011623852957\",\n \"CR05015202001026284066\",\n \"CY17002001280000001200527600\",\n \"CZ6508000000192000145399\",\n \"DE89370400440532013000\",\n \"DO28BAGR00000001212453611324\",\n \"EE382200221020145685\",\n \"ES9121000418450200051332\",\n \"FI2112345600000785\",\n \"FO6264600001631634\",\n \"FR1420041010050500013M02606\",\n \"GB29NWBK60161331926819\",\n \"GE29NB0000000101904917\",\n];\n\nexport const BIC_SWIFT_SAMPLES = [\n \"ABNANL2A\",\n \"BKENGB2LXXX\",\n \"BUKBGB22\",\n \"CITIUS33\",\n \"CITIUS33XXX\",\n \"CSCHUS6SXXX\",\n \"NOSCCATTXXX\",\n];\n\nexport const CARD_NUMBER_SAMPLES = [\n \"4539148803436467\",\n \"4929722653797141\",\n \"4556364607930798\",\n \"4539148803436467\",\n \"4929722653797141\",\n \"4556364607930798\",\n \"4539148803436467\",\n \"4929722653797141\",\n \"4556364607930798\",\n \"4539148803436467\",\n];\n\n//An ABA routing number is a nine-digit code that identifies banks in the U.S.\nexport const ABA_NUMBER_SAMPLES = [\n \"111000025\",\n \"081000210\",\n \"104000029\",\n \"091300023\",\n \"123000220\",\n];\n\nexport const ROUTING_NUMBER_SAMPLES = [\n \"637530215\",\n \"130436324\",\n \"611531133\",\n \"865673685\",\n];\n\nexport const BANK_ACCOUNT_NUMBER_SAMPLES = [\n \"64766774\",\n \"39526009\",\n \"25048213\",\n \"72796383\",\n];\n\nexport const VAT_REGISTRATION_NUMBER_SAMPLES = [\n \"IE1234567T\",\n \"GB123456789\",\n \"XI123456789\",\n];\n\nexport const SORT_CODE_SAMPLES = [\"100000\", \"902127\", \"800551\"];\n\nexport const SSN_SAMPLES = [\"235-55-7216\", \"372-37-3976\", \"414-99-6488\"];\n\nexport const BANK_NAME_SAMPLES = [\n \"Bank of England\",\n \"Bank of Ireland\",\n \"Bank of Scotland\",\n \"Bank of America\",\n];\n\nexport const COMPANY_NAME_SAMPLES = [\n \"Acme Inc.\",\n \"Acme Corp.\",\n \"Acme Ltd.\",\n \"Acme LLC\",\n \"Umbrella Corp.\",\n \"Umbrella Inc.\",\n \"Umbrella Ltd.\",\n \"Umbrella LLC\",\n];\n","import { IBAN_SAMPLES } from \"../constants/banking\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomIBAN = () => {\n return randomArrayItem(IBAN_SAMPLES);\n};\n","import { array } from \"../helpers/array\";\nimport { randomInt } from \"./randomInt\";\n\nexport const randomIP = () => {\n return array(4, () => randomInt(0, 255).toString()).join(\".\");\n};\n","import {\n ANIMAL_NAMES,\n FIRST_NAMES,\n LAST_NAMES,\n WESTERN_FIRST_NAMES,\n WESTERN_LAST_NAMES,\n TOOL_NAMES,\n} from \"../constants/names\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomName = () =>\n randomArrayItem([...ANIMAL_NAMES, ...TOOL_NAMES]);\n\nexport const randomFirstName = () => randomArrayItem(FIRST_NAMES);\n\nexport const randomLastName = () => randomArrayItem(LAST_NAMES);\n\nexport const randomFullName = () =>\n randomArrayItem(WESTERN_FIRST_NAMES) +\n \" \" +\n randomArrayItem(WESTERN_LAST_NAMES);\n","import { array } from \"../helpers/array\";\nimport { randomInt } from \"./randomInt\";\n\n/**\n * Generates a random numeric code that can be used for verification codes, etc.\n * Does not start with 0.\n * @param length The length of the code to generate.\n * @returns A random numeric code.\n * @example\n * randomNumericCode(); => \"123456\"\n * @example\n * randomNumericCode({ length: 4 }); => \"1234\"\n */\nexport const randomNumericCode = ({ length = 6 }: { length?: number } = {}) => {\n if (length < 1)\n throw new Error(\"randomNumericCode: Length must be greater than 0.\");\n\n return array(length, (_, index) => randomInt(!index ? 1 : 0, 9)).join(\"\");\n};\n","let id = 1; // don't start with 0, to be closer to SQL autoincrement\n\nexport const randomNumericId = () => {\n return id++;\n};\n","import { SPECIAL_CHARACTERS } from \"../constants/unicode\";\nimport { randomArrayItem } from \"./randomArrayItem\";\nimport { randomHtmlColorName } from \"./randomHtmlColorName\";\nimport { randomInt } from \"./randomInt\";\n\nexport const randomPassword = () =>\n randomHtmlColorName() + // So it has an upper case\n randomArrayItem(SPECIAL_CHARACTERS) + // So it has a special character\n randomInt(11, 99); // So it has a number\n","import { randomNumericId } from \"./randomNumericId\";\n\n/**\n * This is a light-weight version of the `generateUuid` function\n * To be used only for test purposed and NOT for production\n * Leave 0s, so it gets immediately recognized as a fake uuid\n *\n * /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i\n */\nexport const randomUUID = () => {\n const id = randomNumericId().toString().padStart(15, \"0\");\n const digit12 = id.substring(0, 12);\n const digit3 = id.substring(12, 15);\n return `00000000-0000-1000-8${digit3}-${digit12}`;\n};\n"]}
1
+ {"version":3,"sources":["../src/helpers/array.ts","../src/helpers/uniqueValues.ts","../src/helpers/arrayDiff.ts","../src/helpers/arrayIntersection.ts","../src/helpers/capitalize.ts","../src/helpers/clamp.ts","../src/regex/controlCharRegex.ts","../src/regex/invisibleWhitespaceRegex.ts","../src/regex/lineSeparatorRegex.ts","../src/regex/paragraphSeparatorRegex.ts","../src/helpers/cleanSpaces.ts","../src/helpers/first.ts","../src/helpers/getKeys.ts","../src/helpers/firstKey.ts","../src/helpers/firstValue.ts","../src/helpers/last.ts","../src/validators/isArray.ts","../src/validators/isBoolean.ts","../src/validators/isServer.ts","../src/validators/isClient.ts","../src/validators/isBrowser.ts","../src/validators/isString.ts","../src/validators/isEmail.ts","../src/validators/isObject.ts","../src/validators/isEmpty.ts","../src/validators/isFunction.ts","../src/validators/isJsDate.ts","../src/validators/isKey.ts","../src/validators/isNumber.ts","../src/validators/isSpacedString.ts","../src/validators/isNumeric.ts","../src/validators/isNumericId.ts","../src/validators/isPromise.ts","../src/validators/isPWA.ts","../src/validators/isReactElement.ts","../src/validators/isRegExp.ts","../src/validators/isSame.ts","../src/validators/isStringDate.ts","../src/validators/isUndefined.ts","../src/validators/isURL.ts","../src/validators/isUUID.ts","../src/validators/isValue.ts","../src/helpers/merge.ts","../src/helpers/moveToFirst.ts","../src/helpers/moveToLast.ts","../src/helpers/objectDiff.ts","../src/helpers/parseDate.ts","../src/helpers/pretty.ts","../src/helpers/promiseWithTimeout.ts","../src/helpers/sleep.ts","../src/helpers/toggleArray.ts","../src/helpers/truncate.ts","../src/constants/addresses.ts","../src/random/randomInt.ts","../src/random/randomArrayItem.ts","../src/random/randomAddress.ts","../src/random/randomAlphaNumericCode.ts","../src/constants/banking.ts","../src/random/randomBankAccount.ts","../src/random/randomBool.ts","../src/random/randomFloat.ts","../src/random/randomCoords.ts","../src/random/randomDate.ts","../src/constants/domains.ts","../src/constants/names.ts","../src/random/randomHandle.ts","../src/random/randomEmail.ts","../src/constants/unicode.ts","../src/random/randomEmoji.ts","../src/random/randomEnumKey.ts","../src/random/randomEnumValue.ts","../src/constants/words.ts","../src/random/randomWord.ts","../src/random/randomParagraph.ts","../src/random/randomFile.ts","../src/constants/hex.ts","../src/random/randomHexColor.ts","../src/random/randomHexValue.ts","../src/random/randomHtmlColorName.ts","../src/random/randomIBAN.ts","../src/random/randomIP.ts","../src/random/randomName.ts","../src/random/randomNumericCode.ts","../src/random/randomNumericId.ts","../src/random/randomPassword.ts","../src/random/randomUUID.ts"],"names":["array","length","mapFn","uniqueValues","arr","arrayDiff","arr1","arr2","value","arrayIntersection","capitalize","string","clamp","number","min","max","controlCharRegex","invisibleWhitespaceRegex","lineSeparatorRegex","paragraphSeparatorRegex","cleanSpaces","str","first","getKeys","arg","getEnumerableOwnPropertySymbols","symbol","firstKey","firstValue","last","isArray","isBoolean","isServer","isClient","isBrowser","isString","isEmail","isObject","isEmpty","isEmptyObject","isEmptyArray","isEmptyString","isFunction","isJsDate","isKey","key","obj","isInt","isEven","isOdd","isPositive","isNegative","isNumber","isSpacedString","s","isNumeric","isNumericId","id","isPromise","isPWA","canUseSymbol","REACT_ELEMENT_TYPE","isReactElement","isRegExp","isSame","value1","value2","index","keys","isStringDate","date","isUndefined","pattern","isURL","isUUID","isValue","merge","target","source","merger","moveToFirst","items","condition","resortedItems","i","firstItem","moveToLast","lastItem","objectDiff","leftObject","rightObject","diff","allKeys","parseDate","pretty","promiseWithTimeout","promise","timeoutMs","error","timeout","timeoutPromise","_","reject","sleep","timeMs","resolve","toggleArray","copy","acc","val","truncate","limit","ellipsis","argArray","UK_ADDRESSES","US_ADDRESSES","EUROPE_ADDRESSES","MIXED_ADDRESSES","ADDRESSES","randomInt","start","end","randomPositiveInt","randomNegativeInt","randomMaxSafeInt","randomMaxInt","randomPercentage","randomArrayItem","randomAddress","chars","randomAlphaNumericCode","IBAN_SAMPLES","UK_BANK_ACCOUNT_SAMPLES","US_BANK_ACCOUNT_SAMPLES","AU_BANK_ACCOUNT_SAMPLES","CA_BANK_ACCOUNT_SAMPLES","BANK_ACCOUNT_SAMPLES","randomBankAccount","randomBool","JS_MAX_DIGITS","randomFloat","decimals","float","randomCoords","randomLat","randomLng","randomDate","startDate","endDate","randomMaxDate","randomFutureDate","safeNow","randomPastDate","randomDateRange","DOMAIN_NAMES","ANIMAL_NAMES","TOOL_NAMES","WESTERN_FIRST_NAMES","WESTERN_LAST_NAMES","CYRILLIC_FIRST_NAMES","CYRILLIC_LAST_NAMES","JAPANESE_FIRST_NAMES","JAPANESE_LAST_NAMES","ARABIC_FIRST_NAMES","ARABIC_LAST_NAMES","FIRST_NAMES","LAST_NAMES","randomHandle","randomEmail","EMOJI_SAMPLE","SPECIAL_CHARACTERS","randomEmoji","randomEnumKey","enumObject","randomEnumValue","values","VERBS","NOUNS","ADJECTIVES","ADVERBS","LONG_WORDS","HTML_COLOR_NAME_SAMPLES","WORDS","randomWord","randomParagraph","fileExtensions","randomFile","name","extension","_extension","HEX_VALUES","randomHexColor","randomHexValue","randomHtmlColorName","randomIBAN","randomIP","randomName","randomFirstName","randomLastName","randomFullName","randomNumericCode","randomNumericId","randomPassword","randomUUID","digit12"],"mappings":"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yB,EAAWC,EAAWC,CAAO,CACtC,EAEaE,GAAmB,IAAM,CAEpC,IAAMC,EAAU,IAAI,KAAK,IAAI,KAAK,EAAE,QAAQ,EAAI,EAAI,GAAsB,EAC1E,OAAOL,EAAWK,CAAO,CAC3B,EAEaC,GAAiB,IACrBN,EAAW,OAAW,IAAI,IAAM,EAG5BO,GAAkB,IAAM,CACnC,IAAMN,EAAYD,EAAW,EAG7B,MAAO,CACL,QAHcA,EAAWC,CAAS,EAIlC,UAAAA,CACF,CACF,ECvCO,IAAMO,EAAe,CAC1B,YACA,YACA,cACA,UACA,UACA,cACA,WACA,UACA,UACA,SACA,cACA,UACA,WACA,WACA,SACA,SACA,SACA,SACF,ECnBO,IAAMC,EAAe,CAC1B,YACA,UACA,WACA,UACA,QACA,OACA,SACF,EAEaC,EAAa,CACxB,MACA,SACA,QACA,SACA,SACA,SACA,MACA,cACA,QACF,EAEaC,EAAsB,CACjC,SACA,SACA,YACA,QACA,SACA,MACA,WACA,QACA,OACA,SACA,SACA,OACA,QACA,UACF,EAEaC,EAAqB,CAChC,WACA,QACA,QACA,UACA,UACA,QACA,SACA,QACA,QACA,SACA,SACA,QACA,WACA,QACF,EAEaC,GAAuB,CAClC,6CACA,iCACA,2BACA,uCACA,2BACA,yDACA,iCACA,6CACA,uCACA,uCACA,qBACA,gCACF,EAEaC,GAAsB,CACjC,mDACA,iCACA,uCACA,6CACA,iCACA,6CACA,iCACA,uCACA,qBACA,2BACA,uCACA,iCACA,2BACA,4CACF,EAEaC,GAAuB,CAClC,2BACA,qBACA,iCACA,iCACA,2BACA,qBACA,2BACA,qBACA,qBACA,iCACA,6CACA,sCACF,EAEaC,GAAsB,CACjC,uCACA,uCACA,iCACA,iCACA,iCACA,iCACA,qBACA,2BACA,2BACA,2BACA,2BACA,2BACA,qBACA,cACF,EAEaC,GAAqB,CAChC,uCACA,qBACA,2BACA,iCACA,2BACA,uCACA,qBACA,uCACA,uCACA,iCACA,6CACA,gCACF,EAEaC,GAAoB,CAC/B,6CACA,iCACA,uCACA,iCACA,uCACA,2BACA,uCACA,iCACA,2BACA,qBACA,2BACA,2BACA,uCACA,4CACF,EAEaC,EAAc,CACzB,GAAGR,EACH,GAAGE,GACH,GAAGE,GACH,GAAGE,EACL,EAEaG,EAAa,CACxB,GAAGR,EACH,GAAGE,GACH,GAAGE,GACH,GAAGE,EACL,EChKO,IAAMG,EAAe,KAExBxC,EAAgB8B,CAAmB,EACnC,IACA9B,EAAgB+B,CAAkB,GAClC,YAAY,EAAIvC,EAAU,GAAI,EAAE,ECJ7B,IAAMiD,GAAc,IACzB,GAAGD,EAAa,KAAKxC,EAAgB2B,CAAY,ICN5C,IAAMe,EAAe,CAC1B,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACF,EAEaC,EAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EChBlE,IAAMC,GAAc,IAClB5C,EAAgB0C,CAAY,ECD9B,IAAMG,GAAmCC,GACvC9C,EACL,OAAO,KAAK8C,CAAU,EAAE,OAAQhI,GAAQ,CAACU,EAAUV,CAAG,CAAC,CACzD,ECHK,IAAMiI,GACXD,GACe,CACf,IAAIE,EAAuB,CAAC,EAE5B,cAAO,OAAOF,CAAU,EAAE,QAASrK,GAAU,CAEvCoC,EAAMpC,EAAOqK,CAAU,GAAK,CAACE,EAAO,SAASvK,CAAmB,GAClEuK,EAAO,KAAKF,EAAWrK,CAAgB,CAAC,CAC5C,CAAC,EAEMuH,EAAgBgD,CAAM,CAC/B,ECfO,IAAMC,GAAQ,CACnB,QACA,SACA,SACA,aACA,UACA,UACA,MACA,QACA,MACA,SACA,SACA,QACA,QACA,UACA,SACA,SACA,QACA,QACA,QACA,KACA,KACA,OACA,MACF,EAEaC,GAAQ,CACnB,UACA,UACA,OACA,WACA,QACA,QACA,SACA,UACA,SACA,UACF,EAEaC,GAAa,CACxB,YACA,YACA,UACA,OACA,WACA,UACA,WACA,QACA,QACA,SACA,UACA,SACA,UACF,EAEaC,GAAU,CACrB,aACA,SACA,iBACA,aACA,WACA,aACA,YACA,eACA,gBACA,cACA,aACA,aACA,eACA,iBACF,EAEaC,GAAa,CACxB,gDACA,gCACA,iCACA,uCACA,+BACA,qCACA,6BACF,EAqEO,IAAMC,EAA0B,CACrC,YACA,OACA,aACA,QACA,QACA,SACA,QACA,OACA,aACA,QACA,YACA,YACA,aACA,YACA,QACA,gBACA,WACA,OACA,OACA,QACA,SACA,SACA,WACF,EAEaC,EAAQ,CACnB,GAAGN,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,GACH,GAAGC,EACL,EClLO,IAAMG,EAAa,IACjBxD,EAAgBuD,CAAK,ECAvB,IAAME,EAAkB,IACtB9K,EAAWV,EAAM,EAAG,IAAMuL,EAAW,CAAC,EAAE,KAAK,GAAG,CAAC,EAAI,ICD9D,IAAME,GAAiB,CAAC,MAAO,MAAO,OAAQ,MAAO,MAAO,MAAM,EAGrDC,GAAa,CAAC,CACzB,KAAAC,EACA,UAAAC,CACF,EAGI,CAAC,IAAwB,CAC3B,GAAI,OAAO,MAAS,YAAa,OAEjC,IAAMC,EAAaD,GAAa7D,EAAgB0D,EAAc,EAC9D,OAAO,IAAI,KACT,CAACD,EAAgB,CAAC,EAClB,GAAGG,GAAQJ,EAAW,KAAKM,IAC3B,CACE,KAAM,SAASA,GACjB,CACF,CACF,ECxBO,IAAMC,EAAa,CACxB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACF,ECbO,IAAMC,GAAiB,IACrB,IAAM/L,EAAM,EAAG,IAAM+H,EAAgB+D,CAAU,CAAC,EAAE,KAAK,EAAE,ECF3D,IAAME,GAAiB,IACrBjE,EAAgB+D,CAAU,ECD5B,IAAMG,EAAsB,IAC1BlE,EAAgBsD,CAAuB,ECDzC,IAAMa,GAAa,IACjBnE,EAAgBI,CAAY,ECD9B,IAAMgE,GAAW,IACfnM,EAAM,EAAG,IAAMuH,EAAU,EAAG,GAAG,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,ECMvD,IAAM6E,GAAa,IACxBrE,EAAgB,CAAC,GAAG4B,EAAc,GAAGC,CAAU,CAAC,EAErCyC,GAAkB,IAAMtE,EAAgBsC,CAAW,EAEnDiC,GAAiB,IAAMvE,EAAgBuC,CAAU,EAEjDiC,GAAiB,IAC5BxE,EAAgB8B,CAAmB,EACnC,IACA9B,EAAgB+B,CAAkB,ECP7B,IAAM0C,GAAoB,CAAC,CAAE,OAAAvM,EAAS,CAAE,EAAyB,CAAC,IAAM,CAC7E,GAAIA,EAAS,EACX,MAAM,IAAI,MAAM,mDAAmD,EAErE,OAAOD,EAAMC,EAAQ,CAACoG,EAAGlC,IAAUoD,EAAWpD,EAAY,EAAJ,EAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAC1E,EClBA,IAAIV,GAAK,EAEIgJ,EAAkB,IACtBhJ,KCEF,IAAMiJ,GAAiB,IAC5BT,EAAoB,EACpBlE,EAAgB2C,CAAkB,EAClCnD,EAAU,GAAI,EAAE,ECCX,IAAMoF,GAAa,IAAM,CAC9B,IAAMlJ,EAAKgJ,EAAgB,EAAE,SAAS,EAAE,SAAS,GAAI,GAAG,EAClDG,EAAUnJ,EAAG,UAAU,EAAG,EAAE,EAElC,MAAO,uBADQA,EAAG,UAAU,GAAI,EAAE,KACMmJ,GAC1C","sourcesContent":["export const array = <U extends (...args: any) => any>(\n length: number,\n mapFn: U\n): ReturnType<U>[] => {\n return Array.from({ length }, mapFn);\n};\n","export const uniqueValues = (arr: any[]) => {\n return [...new Set(arr)];\n};\n","import { uniqueValues } from \"./uniqueValues\";\n\nexport const arrayDiff = (arr1: any[], arr2: any[]) => {\n return uniqueValues(\n arr1\n .filter((value) => !arr2.includes(value))\n .concat(arr2.filter((value) => !arr1.includes(value)))\n );\n};\n","import { uniqueValues } from \"./uniqueValues\";\n\nexport const arrayIntersection = (arr1: any[], arr2: any[]) => {\n return uniqueValues(arr1.filter((value) => arr2.includes(value)));\n};\n","export const capitalize = (string: string) => {\n return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n};\n","export const clamp = ({\n number,\n min,\n max,\n}: {\n number: number;\n min: number;\n max: number;\n}) => {\n if (max < min && process.env.DEVERYTHING_WARNINGS) {\n console.warn(\"clamp: max < min\", { number, min, max });\n }\n\n if (number < min) {\n return min;\n }\n\n if (number > max) {\n return max;\n }\n\n return number;\n};\n","export const controlCharRegex = new RegExp(/\\p{C}/, \"gu\");\n\n// Charcodes:\n// [\n// 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 127, 129, 131, 133,\n// 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 173, 888,\n// 896, 898, 907, 909, 930, 1328, 1367, 1419, 1424, 1480, 1482, 1484, 1486, 1515,\n// 1517, 1525, 1527, 1529, 1531, 1533, 1535, 1537, 1539, 1541, 1564, 1757, 1806,\n// 1867, 1970, 1972, 1974, 1976, 1978, 1980, 1982, 2043, 2094, 2111, 2140, 2143,\n// 2155, 2157, 2159, 2191, 2193, 2195, 2197, 2199, 2274, 2436, 2445, 2449, 2473,\n// 2481, 2483, 2485, 2490, 2501, 2505, 2511, 2513, 2515, 2517, 2520, 2522, 2526,\n// 2532, 2559, 2564, 2571, 2573, 2577, 2601, 2609, 2612, 2615, 2618, 2621, 2627,\n// 2629, 2633, 2638, 2640, 2642, 2644, 2646, 2648, 2653, 2655, 2657, 2659, 2661,\n// 2679, 2681, 2683, 2685, 2687, 2692, 2702, 2706, 2729, 2737, 2740, 2746, 2758,\n// 2762, 2766, 2769, 2771, 2773, 2775, 2777, 2779, 2781, 2783, 2788, 2802, 2804,\n// 2806, 2808, 2816, 2820, 2829, 2833, 2857, 2865, 2868, 2874, 2885, 2889, 2894,\n// 2896, 2898, 2900, 2904, 2906, 2910, 2916, 2936, 2938, 2940, 2942, 2944, 2948,\n// 2955, 2957, 2961, 2966, 2968, 2971, 2973, 2976, 2978, 2981, 2983, 2987, 2989,\n// 3002, 3004, 3011, 3013, 3017, 3022, 3025, 3027, 3029, 3032, 3034, 3036, 3038,\n// 3040, 3042, 3044, 3067, 3069, 3071, 3085, 3089, 3113, 3130, 3141, 3145, 3150,\n// 3152, 3154, 3156, 3159, 3163, 3166, 3172, 3184, 3186, 3188, 3190, 3213, 3217,\n// 3241, 3252, 3258, 3269, 3273, 3278, 3280, 3282, 3284, 3287, 3289, 3291, 3295,\n// 3300, 3312, 3316, 3318, 3320, 3322, 3324, 3326, 3341, 3345, 3397, 3401, 3408,\n// 3410, 3428, 3456, 3460, 3479, 3481, 3506, 3516, 3518, 3527, 3529, 3531, 3533,\n// 3541, 3543, 3552, 3554, 3556, 3568, 3573, 3575, 3577, 3579, 3581, 3583, 3643,\n// 3645, 3676, 3678, 3680, 3682, 3684, 3686, 3688, 3690, 3692, 3694, 3696, 3698,\n// 3700, 3702, 3704, 3706, 3708, 3710, 3712, 3715, 3717, 3723, 3748, 3750, 3774,\n// 3781, 3783, 3791, 3802, 3808, 3810, 3812, 3814, 3816, 3818, 3820, 3822, 3824,\n// 3826, 3828, 3830, 3832, 3834, 3836, 3838, 3912, 3949, 3951, 3992, 4029, 4045,\n// 4059, 4061, 4063, 4065, 4067, 4069, 4071, 4073, 4075, 4077, 4079, 4081, 4083,\n// 4085, 4087, 4089, 4091, 4093, 4095, 4294, 4296, 4298, 4300, 4302, 4681, 4686,\n// 4695, 4697, 4702, 4745, 4750, 4785, 4790, 4799, 4801, 4806, 4823, 4881, 4886,\n// 4955, 4989, 4991, 5018, 5020, 5022, 5110, 5118, 5789, 5791, 5881, 5883, 5885,\n// 5887, 5910, 5912, 5914, 5916, 5918, 5943, 5945, 5947, 5949, 5951, 5972, 5974,\n// 5976, 5978, 5980, 5982, 5997, 6001, 6004, 6006, 6008, 6010, 6012, 6014, 6110,\n// 6122, 6124, 6126, 6138, 6140, 6142, 6158, 6170, 6172, 6174, 6265, 6267, 6269,\n// 6271, 6315, 6317, 6319, 6390, 6392, 6394, 6396, 6398, 6431, 6444, 6446, 6460,\n// 6462, 6465, 6467, 6510, 6517, 6519, 6521, 6523, 6525, 6527, 6572, 6574, 6602,\n// 6604, 6606, 6619, 6621, 6684, 6751, 6781, 6794, 6796, 6798, 6810, 6812, 6814,\n// 6830, 6863, 6865, 6867, 6869, 6871, 6873, 6875, 6877, 6879, 6881, 6883, 6885,\n// 6887, 6889, 6891, 6893, 6895, 6897, 6899, 6901, 6903, 6905, 6907, 6909, 6911,\n// 6989, 6991, 7039, 7156, 7158, 7160, 7162, 7224, 7226, 7242, 7244, 7305, 7307,\n// 7309, 7311, 7355, 7368, 7370, 7372, 7374, 7419, 7421, 7423, 7958, 7966, 8006,\n// 8014, 8024, 8026, 8028, 8030, 8062, 8117, 8133, 8148, 8156, 8176, 8181, 8191,\n// 8203, 8205, 8207, 8234, 8236, 8238, 8288, 8290, 8292, 8294, 8296, 8298, 8300,\n// 8302, 8306, 8335, 8349, 8351, 8385, 8387, 8389, 8391, 8393, 8395, 8397, 8399,\n// 8433, 8435, 8437, 8439, 8441, 8443, 8445, 8447, 8588, 8590, 9255, 9257, 9259,\n// 9261, 9263, 9265, 9267, 9269, 9271, 9273, 9275, 9277, 9279, 9291, 9293, 9295,\n// 9297, 9299, 9301, 9303, 9305, 9307, 9309, 9311, 11124, 11158, 11508, 11510,\n// 11512, 11558, 11560, 11562, 11564, 11566, 11624, 11626, 11628, 11630, 11633,\n// 11635, 11637, 11639, 11641, 11643, 11645, 11671, 11673, 11675, 11677, 11679,\n// 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11870, 11872, 11874,\n// 11876, 11878, 11880, 11882, 11884, 11886, 11888, 11890, 11892, 11894, 11896,\n// 11898, 11900, 11902, 11930, 12020, 12022, 12024, 12026, 12028, 12030, 12246,\n// 12248, 12250, 12252, 12254, 12256, 12258, 12260, 12262, 12264, 12266, 12268,\n// 12270, 12284, 12286, 12352, 12439, 12544, 12546, 12548, 12592, 12687, 12772,\n// 12774, 12776, 12778, 12780, 12782, 12831, 42125, 42127, 42183, 42185, 42187,\n// 42189, 42191, 42540, 42542, 42544, 42546, 42548, 42550, 42552, 42554, 42556,\n// 42558, 42744, 42746, 42748, 42750, 42955, 42957, 42959, 42962, 42964, 42970,\n// 42972, 42974, 42976, 42978, 42980, 42982, 42984, 42986, 42988, 42990, 42992,\n// 43053, 43055, 43066, 43068, 43070, 43128, 43130, 43132, 43134, 43206, 43208,\n// 43210, 43212, 43226, 43228, 43230, 43348, 43350, 43352, 43354, 43356, 43358,\n// 43389, 43391, 43470, 43482, 43484, 43519, 43575, 43577, 43579, 43581, 43583,\n// 43598, 43610, 43715, 43717, 43719, 43721, 43723, 43725, 43727, 43729, 43731,\n// 43733, 43735, 43737, 43767, 43769, 43771, 43773, 43775, 43783, 43791, 43799,\n// 43801, 43803, 43805, 43807, 43815, 43823, 43884, 43886, 44014, 44026, 44028,\n// 44030, 55204, 55206, 55208, 55210, 55212, 55214, 55239, 55241, 55292, 55294,\n// 55296, 55298, 55300, 55302, 55304, 55306, 55308, 55310, 55312, 55314, 55316,\n// 55318, 55320, 55322, 55324, 55326, 55328, 55330, 55332, 55334, 55336, 55338,\n// 55340, 55342, 55344, 55346, 55348, 55350, 55352, 55354, 55356, 55358, 55360,\n// 55362, 55364, 55366, 55368, 55370, 55372, 55374, 55376, 55378, 55380, 55382,\n// 55384, 55386, 55388, 55390, 55392, 55394, 55396, 55398, 55400, 55402, 55404,\n// 55406, 55408, 55410, 55412, 55414, 55416, 55418, 55420, 55422, 55424, 55426,\n// 55428, 55430, 55432, 55434, 55436, 55438, 55440, 55442, 55444, 55446, 55448,\n// 55450, 55452, 55454, 55456, 55458, 55460, 55462, 55464, 55466, 55468, 55470,\n// 55472, 55474, 55476, 55478, 55480, 55482, 55484, 55486, 55488, 55490, 55492,\n// 55494, 55496, 55498, 55500, 55502, 55504, 55506, 55508, 55510, 55512, 55514,\n// 55516, 55518, 55520, 55522, 55524, 55526, 55528, 55530, 55532, 55534, 55536,\n// 55538, 55540, 55542, 55544, 55546, 55548, 55550, 55552, 55554, 55556, 55558,\n// 55560, 55562, 55564, 55566, 55568, 55570, 55572, 55574, 55576, 55578, 55580,\n// 55582, 55584, 55586, 55588, 55590, 55592, 55594, 55596, 55598, 55600, 55602,\n// 55604, 55606, 55608, 55610, 55612, 55614, 55616, 55618, 55620, 55622, 55624,\n// 55626, 55628, 55630, 55632, 55634, 55636, 55638, 55640, 55642, 55644, 55646,\n// 55648, 55650, 55652, 55654, 55656, 55658, 55660, 55662, 55664, 55666, 55668,\n// 55670, 55672, 55674, 55676, 55678, 55680, 55682, 55684, 55686, 55688, 55690,\n// 55692, 55694, 55696, 55698, 55700, 55702, 55704, 55706, 55708, 55710, 55712,\n// 55714, 55716, 55718, 55720, 55722, 55724, 55726, 55728, 55730, 55732, 55734,\n// 55736, 55738, 55740, 55742, 55744, 55746, 55748, 55750, 55752, 55754, 55756,\n// 55758, 55760, 55762, 55764, 55766, 55768, 55770, 55772, 55774, 55776, 55778,\n// 55780, 55782, 55784, 55786, 55788, 55790, 55792, 55794, 55796, 55798, 55800,\n// 55802, 55804, 55806, 55808, 55810, 55812, 55814, 55816, 55818, 55820, 55822,\n// 55824, 55826, 55828, 55830, 55832, 55834, 55836, 55838, 55840, 55842, 55844,\n// 55846, 55848, 55850, 55852, 55854, 55856, 55858, 55860, 55862, 55864, 55866,\n// 55868, 55870, 55872, 55874, 55876, 55878, 55880, 55882, 55884, 55886, 55888,\n// 55890, 55892, 55894, 55896, 55898, 55900, 55902, 55904, 55906, 55908, 55910,\n// 55912, 55914, 55916, 55918, 55920, 55922, 55924, 55926, 55928, 55930, 55932,\n// 55934, 55936, 55938, 55940, 55942, 55944, 55946, 55948, 55950, 55952, 55954,\n// 55956, 55958, 55960, 55962, 55964, 55966, 55968, 55970, 55972, 55974, 55976,\n// 55978, 55980, 55982, 55984, 55986, 55988, 55990, 55992, 55994, 55996, 55998,\n// 56000, 56002, 56004, 56006, 56008, 56010, 56012, 56014, 56016, 56018, 56020,\n// 56022, 56024, 56026, 56028, 56030, 56032, 56034, 56036, 56038, 56040, 56042,\n// 56044, 56046, 56048, 56050, 56052, 56054, 56056, 56058, 56060, 56062, 56064,\n// 56066, 56068, 56070, 56072, 56074, 56076, 56078, 56080, 56082, 56084, 56086,\n// 56088, 56090, 56092, 56094, 56096, 56098, 56100, 56102, 56104, 56106, 56108,\n// 56110, 56112, 56114, 56116, 56118, 56120, 56122, 56124, 56126, 56128, 56130,\n// 56132, 56134, 56136, 56138, 56140, 56142, 56144, 56146, 56148, 56150, 56152,\n// 56154, 56156, 56158, 56160, 56162, 56164, 56166, 56168, 56170, 56172, 56174,\n// 56176, 56178, 56180, 56182, 56184, 56186, 56188, 56190, 56192, 56194, 56196,\n// 56198, 56200, 56202, 56204, 56206, 56208, 56210, 56212, 56214, 56216, 56218,\n// 56220, 56222, 56224, 56226, 56228, 56230, 56232, 56234, 56236, 56238, 56240,\n// 56242, 56244, 56246, 56248, 56250, 56252, 56254, 56256, 56258, 56260, 56262,\n// 56264, 56266, 56268, 56270, 56272, 56274, 56276, 56278, 56280, 56282, 56284,\n// 56286, 56288, 56290, 56292, 56294, 56296, 56298, 56300, 56302, 56304, 56306,\n// 56308, 56310, 56312, 56314, 56316, 56318, 56320, 56322, 56324, 56326, 56328,\n// 56330, 56332, 56334, 56336, 56338, 56340, 56342, 56344, 56346, 56348, 56350,\n// 56352, 56354, 56356, 56358, 56360, 56362, 56364, 56366, 56368, 56370, 56372,\n// 56374, 56376, 56378, 56380, 56382, 56384, 56386, 56388, 56390, 56392, 56394,\n// 56396, 56398, 56400, 56402, 56404, 56406, 56408, 56410, 56412, 56414, 56416,\n// 56418, 56420, 56422, 56424, 56426, 56428, 56430, 56432, 56434, 56436, 56438,\n// 56440, 56442, 56444, 56446, 56448, 56450, 56452, 56454, 56456, 56458, 56460,\n// 56462, 56464, 56466, 56468, 56470, 56472, 56474, 56476, 56478, 56480, 56482,\n// 56484, 56486, 56488, 56490, 56492, 56494, 56496, 56498, 56500, 56502, 56504,\n// 56506, 56508, 56510, 56512, 56514, 56516, 56518, 56520, 56522, 56524, 56526,\n// 56528, 56530, 56532, 56534, 56536, 56538, 56540, 56542, 56544, 56546, 56548,\n// 56550, 56552, 56554, 56556, 56558, 56560, 56562, 56564, 56566, 56568, 56570,\n// 56572, 56574, 56576, 56578, 56580, 56582, 56584, 56586, 56588, 56590, 56592,\n// 56594, 56596, 56598, 56600, 56602, 56604, 56606, 56608, 56610, 56612, 56614,\n// 56616, 56618, 56620, 56622, 56624, 56626, 56628, 56630, 56632, 56634, 56636,\n// 56638, 56640, 56642, 56644, 56646, 56648, 56650, 56652, 56654, 56656, 56658,\n// 56660, 56662, 56664, 56666, 56668, 56670, 56672, 56674, 56676, 56678, 56680,\n// 56682, 56684, 56686, 56688, 56690, 56692, 56694, 56696, 56698, 56700, 56702,\n// 56704, 56706, 56708, 56710, 56712, 56714, 56716, 56718, 56720, 56722, 56724,\n// 56726, 56728, 56730, 56732, 56734, 56736, 56738, 56740, 56742, 56744, 56746,\n// 56748, 56750, 56752, 56754, 56756, 56758, 56760, 56762, 56764, 56766, 56768,\n// 56770, 56772, 56774, 56776, 56778, 56780, 56782, 56784, 56786, 56788, 56790,\n// 56792, 56794, 56796, 56798, 56800, 56802, 56804, 56806, 56808, 56810, 56812,\n// 56814, 56816, 56818, 56820, 56822, 56824, 56826, 56828, 56830, 56832, 56834,\n// 56836, 56838, 56840, 56842, 56844, 56846, 56848, 56850, 56852, 56854, 56856,\n// 56858, 56860, 56862, 56864, 56866, 56868, 56870, 56872, 56874, 56876, 56878,\n// 56880, 56882, 56884, 56886, 56888, 56890, 56892, 56894, 56896, 56898, 56900,\n// 56902, 56904, 56906, 56908, 56910, 56912, 56914, 56916, 56918, 56920, 56922,\n// 56924, 56926, 56928, 56930, 56932, 56934, 56936, 56938, 56940, 56942, 56944,\n// 56946, 56948, 56950, 56952, 56954, 56956, 56958, 56960, 56962, 56964, 56966,\n// 56968, 56970, 56972, 56974, 56976, 56978, 56980, 56982, 56984, 56986, 56988,\n// 56990, 56992, 56994, 56996, 56998, 57000, 57002, 57004, 57006, 57008, 57010,\n// 57012, 57014, 57016, 57018, 57020, 57022, 57024, 57026, 57028, 57030, 57032,\n// 57034, 57036, 57038, 57040, 57042, 57044, 57046, 57048, 57050, 57052, 57054,\n// 57056, 57058, 57060, 57062, 57064, 57066, 57068, 57070, 57072, 57074, 57076,\n// 57078, 57080, 57082, 57084, 57086, 57088, 57090, 57092, 57094, 57096, 57098,\n// 57100, 57102, 57104, 57106, 57108, 57110, 57112, 57114, 57116, 57118, 57120,\n// 57122, 57124, 57126, 57128, 57130, 57132, 57134, 57136, 57138, 57140, 57142,\n// 57144, 57146, 57148, 57150, 57152, 57154, 57156, 57158, 57160, 57162, 57164,\n// 57166, 57168, 57170, 57172, 57174, 57176, 57178, 57180, 57182, 57184, 57186,\n// 57188, 57190, 57192, 57194, 57196, 57198, 57200, 57202, 57204, 57206, 57208,\n// 57210, 57212, 57214, 57216, 57218, 57220, 57222, 57224, 57226, 57228, 57230,\n// 57232, 57234, 57236, 57238, 57240, 57242, 57244, 57246, 57248, 57250, 57252,\n// 57254, 57256, 57258, 57260, 57262, 57264, 57266, 57268, 57270, 57272, 57274,\n// 57276, 57278, 57280, 57282, 57284, 57286, 57288, 57290, 57292, 57294, 57296,\n// 57298, 57300, 57302, 57304, 57306, 57308, 57310, 57312, 57314, 57316, 57318,\n// 57320, 57322, 57324, 57326, 57328, 57330, 57332, 57334, 57336, 57338, 57340,\n// 57342, 57344, 57346, 57348, 57350, 57352, 57354, 57356, 57358, 57360, 57362,\n// 57364, 57366, 57368, 57370, 57372, 57374, 57376, 57378, 57380, 57382, 57384,\n// 57386, 57388, 57390, 57392, 57394, 57396, 57398, 57400, 57402, 57404, 57406,\n// 57408, 57410, 57412, 57414, 57416, 57418, 57420, 57422, 57424, 57426, 57428,\n// 57430, 57432, 57434, 57436, 57438, 57440, 57442, 57444, 57446, 57448, 57450,\n// 57452, 57454, 57456, 57458, 57460, 57462, 57464, 57466, 57468, 57470, 57472,\n// 57474, 57476, 57478, 57480, 57482, 57484, 57486, 57488, 57490, 57492, 57494,\n// 57496, 57498, 57500, 57502, 57504, 57506, 57508, 57510, 57512, 57514, 57516,\n// 57518, 57520, 57522, 57524, 57526, 57528, 57530, 57532, 57534, 57536, 57538,\n// 57540, 57542, 57544, 57546, 57548, 57550, 57552, 57554, 57556, 57558, 57560,\n// 57562, 57564, 57566, 57568, 57570, 57572, 57574, 57576, 57578, 57580, 57582,\n// 57584, 57586, 57588, 57590, 57592, 57594, 57596, 57598, 57600, 57602, 57604,\n// 57606, 57608, 57610, 57612, 57614, 57616, 57618, 57620, 57622, 57624, 57626,\n// 57628, 57630, 57632, 57634, 57636, 57638, 57640, 57642, 57644, 57646, 57648,\n// 57650, 57652, 57654, 57656, 57658, 57660, 57662, 57664, 57666, 57668, 57670,\n// 57672, 57674, 57676, 57678, 57680, 57682, 57684, 57686, 57688, 57690, 57692,\n// 57694, 57696, 57698, 57700, 57702, 57704, 57706, 57708, 57710, 57712, 57714,\n// 57716, 57718, 57720, 57722, 57724, 57726, 57728, 57730, 57732, 57734, 57736,\n// 57738, 57740, 57742, 57744, 57746, 57748, 57750, 57752, 57754, 57756, 57758,\n// 57760, 57762, 57764, 57766, 57768, 57770, 57772, 57774, 57776, 57778, 57780,\n// 57782, 57784, 57786, 57788, 57790, 57792, 57794, 57796, 57798, 57800, 57802,\n// 57804, 57806, 57808, 57810, 57812, 57814, 57816, 57818, 57820, 57822, 57824,\n// 57826, 57828, 57830, 57832, 57834, 57836, 57838, 57840, 57842, 57844, 57846,\n// 57848, 57850, 57852, 57854, 57856, 57858, 57860, 57862, 57864, 57866, 57868,\n// 57870, 57872, 57874, 57876, 57878, 57880, 57882, 57884, 57886, 57888, 57890,\n// 57892, 57894, 57896, 57898, 57900, 57902, 57904, 57906, 57908, 57910, 57912,\n// 57914, 57916, 57918, 57920, 57922, 57924, 57926, 57928, 57930, 57932, 57934,\n// 57936, 57938, 57940, 57942, 57944, 57946, 57948, 57950, 57952, 57954, 57956,\n// 57958, 57960, 57962, 57964, 57966, 57968, 57970, 57972, 57974, 57976, 57978,\n// 57980, 57982, 57984, 57986, 57988, 57990, 57992, 57994, 57996, 57998, 58000,\n// 58002, 58004, 58006, 58008, 58010, 58012, 58014, 58016, 58018, 58020, 58022,\n// 58024, 58026, 58028, 58030, 58032, 58034, 58036, 58038, 58040, 58042, 58044,\n// 58046, 58048, 58050, 58052, 58054, 58056, 58058, 58060, 58062, 58064, 58066,\n// 58068, 58070, 58072, 58074, 58076, 58078, 58080, 58082, 58084, 58086, 58088,\n// 58090, 58092, 58094, 58096, 58098, 58100, 58102, 58104, 58106, 58108, 58110,\n// 58112, 58114, 58116, 58118, 58120, 58122, 58124, 58126, 58128, 58130, 58132,\n// 58134, 58136, 58138, 58140, 58142, 58144, 58146, 58148, 58150, 58152, 58154,\n// 58156, 58158, 58160, 58162, 58164, 58166, 58168, 58170, 58172, 58174, 58176,\n// 58178, 58180, 58182, 58184, 58186, 58188, 58190, 58192, 58194, 58196, 58198,\n// 58200, 58202, 58204, 58206, 58208, 58210, 58212, 58214, 58216, 58218, 58220,\n// 58222, 58224, 58226, 58228, 58230, 58232, 58234, 58236, 58238, 58240, 58242,\n// 58244, 58246, 58248, 58250, 58252, 58254, 58256, 58258, 58260, 58262, 58264,\n// 58266, 58268, 58270, 58272, 58274, 58276, 58278, 58280, 58282, 58284, 58286,\n// 58288, 58290, 58292, 58294, 58296, 58298, 58300, 58302, 58304, 58306, 58308,\n// 58310, 58312, 58314, 58316, 58318, 58320, 58322, 58324, 58326, 58328, 58330,\n// 58332, 58334, 58336, 58338, 58340, 58342, 58344, 58346, 58348, 58350, 58352,\n// 58354, 58356, 58358, 58360, 58362, 58364, 58366, 58368, 58370, 58372, 58374,\n// 58376, 58378, 58380, 58382, 58384, 58386, 58388, 58390, 58392, 58394, 58396,\n// 58398, 58400, 58402, 58404, 58406, 58408, 58410, 58412, 58414, 58416, 58418,\n// 58420, 58422, 58424, 58426, 58428, 58430, 58432, 58434, 58436, 58438, 58440,\n// 58442, 58444, 58446, 58448, 58450, 58452, 58454, 58456, 58458, 58460, 58462,\n// 58464, 58466, 58468, 58470, 58472, 58474, 58476, 58478, 58480, 58482, 58484,\n// 58486, 58488, 58490, 58492, 58494, 58496, 58498, 58500, 58502, 58504, 58506,\n// 58508, 58510, 58512, 58514, 58516, 58518, 58520, 58522, 58524, 58526, 58528,\n// 58530, 58532, 58534, 58536, 58538, 58540, 58542, 58544, 58546, 58548, 58550,\n// 58552, 58554, 58556, 58558, 58560, 58562, 58564, 58566, 58568, 58570, 58572,\n// 58574, 58576, 58578, 58580, 58582, 58584, 58586, 58588, 58590, 58592, 58594,\n// 58596, 58598, 58600, 58602, 58604, 58606, 58608, 58610, 58612, 58614, 58616,\n// 58618, 58620, 58622, 58624, 58626, 58628, 58630, 58632, 58634, 58636, 58638,\n// 58640, 58642, 58644, 58646, 58648, 58650, 58652, 58654, 58656, 58658, 58660,\n// 58662, 58664, 58666, 58668, 58670, 58672, 58674, 58676, 58678, 58680, 58682,\n// 58684, 58686, 58688, 58690, 58692, 58694, 58696, 58698, 58700, 58702, 58704,\n// 58706, 58708, 58710, 58712, 58714, 58716, 58718, 58720, 58722, 58724, 58726,\n// 58728, 58730, 58732, 58734, 58736, 58738, 58740, 58742, 58744, 58746, 58748,\n// 58750, 58752, 58754, 58756, 58758, 58760, 58762, 58764, 58766, 58768, 58770,\n// 58772, 58774, 58776, 58778, 58780, 58782, 58784, 58786, 58788, 58790, 58792,\n// 58794, 58796, 58798, 58800, 58802, 58804, 58806, 58808, 58810, 58812, 58814,\n// 58816, 58818, 58820, 58822, 58824, 58826, 58828, 58830, 58832, 58834, 58836,\n// 58838, 58840, 58842, 58844, 58846, 58848, 58850, 58852, 58854, 58856, 58858,\n// 58860, 58862, 58864, 58866, 58868, 58870, 58872, 58874, 58876, 58878, 58880,\n// 58882, 58884, 58886, 58888, 58890, 58892, 58894, 58896, 58898, 58900, 58902,\n// 58904, 58906, 58908, 58910, 58912, 58914, 58916, 58918, 58920, 58922, 58924,\n// 58926, 58928, 58930, 58932, 58934, 58936, 58938, 58940, 58942, 58944, 58946,\n// 58948, 58950, 58952, 58954, 58956, 58958, 58960, 58962, 58964, 58966, 58968,\n// 58970, 58972, 58974, 58976, 58978, 58980, 58982, 58984, 58986, 58988, 58990,\n// 58992, 58994, 58996, 58998, 59000, 59002, 59004, 59006, 59008, 59010, 59012,\n// 59014, 59016, 59018, 59020, 59022, 59024, 59026, 59028, 59030, 59032, 59034,\n// 59036, 59038, 59040, 59042, 59044, 59046, 59048, 59050, 59052, 59054, 59056,\n// 59058, 59060, 59062, 59064, 59066, 59068, 59070, 59072, 59074, 59076, 59078,\n// 59080, 59082, 59084, 59086, 59088, 59090, 59092, 59094, 59096, 59098, 59100,\n// 59102, 59104, 59106, 59108, 59110, 59112, 59114, 59116, 59118, 59120, 59122,\n// 59124, 59126, 59128, 59130, 59132, 59134, 59136, 59138, 59140, 59142, 59144,\n// 59146, 59148, 59150, 59152, 59154, 59156, 59158, 59160, 59162, 59164, 59166,\n// 59168, 59170, 59172, 59174, 59176, 59178, 59180, 59182, 59184, 59186, 59188,\n// 59190, 59192, 59194, 59196, 59198, 59200, 59202, 59204, 59206, 59208, 59210,\n// 59212, 59214, 59216, 59218, 59220, 59222, 59224, 59226, 59228, 59230, 59232,\n// 59234, 59236, 59238, 59240, 59242, 59244, 59246, 59248, 59250, 59252, 59254,\n// 59256, 59258, 59260, 59262, 59264, 59266, 59268, 59270, 59272, 59274, 59276,\n// 59278, 59280, 59282, 59284, 59286, 59288, 59290, 59292, 59294, 59296, 59298,\n// 59300, 59302, 59304, 59306, 59308, 59310, 59312, 59314, 59316, 59318, 59320,\n// 59322, 59324, 59326, 59328, 59330, 59332, 59334, 59336, 59338, 59340, 59342,\n// 59344, 59346, 59348, 59350, 59352, 59354, 59356, 59358, 59360, 59362, 59364,\n// 59366, 59368, 59370, 59372, 59374, 59376, 59378, 59380, 59382, 59384, 59386,\n// 59388, 59390, 59392, 59394, 59396, 59398, 59400, 59402, 59404, 59406, 59408,\n// 59410, 59412, 59414, 59416, 59418, 59420, 59422, 59424, 59426, 59428, 59430,\n// 59432, 59434, 59436, 59438, 59440, 59442, 59444, 59446, 59448, 59450, 59452,\n// 59454, 59456, 59458, 59460, 59462, 59464, 59466, 59468, 59470, 59472, 59474,\n// 59476, 59478, 59480, 59482, 59484, 59486, 59488, 59490, 59492, 59494, 59496,\n// 59498, 59500, 59502, 59504, 59506, 59508, 59510, 59512, 59514, 59516, 59518,\n// 59520, 59522, 59524, 59526, 59528, 59530, 59532, 59534, 59536, 59538, 59540,\n// 59542, 59544, 59546, 59548, 59550, 59552, 59554, 59556, 59558, 59560, 59562,\n// 59564, 59566, 59568, 59570, 59572, 59574, 59576, 59578, 59580, 59582, 59584,\n// 59586, 59588, 59590, 59592, 59594, 59596, 59598, 59600, 59602, 59604, 59606,\n// 59608, 59610, 59612, 59614, 59616, 59618, 59620, 59622, 59624, 59626, 59628,\n// 59630, 59632, 59634, 59636, 59638, 59640, 59642, 59644, 59646, 59648, 59650,\n// 59652, 59654, 59656, 59658, 59660, 59662, 59664, 59666, 59668, 59670, 59672,\n// 59674, 59676, 59678, 59680, 59682, 59684, 59686, 59688, 59690, 59692, 59694,\n// 59696, 59698, 59700, 59702, 59704, 59706, 59708, 59710, 59712, 59714, 59716,\n// 59718, 59720, 59722, 59724, 59726, 59728, 59730, 59732, 59734, 59736, 59738,\n// 59740, 59742, 59744, 59746, 59748, 59750, 59752, 59754, 59756, 59758, 59760,\n// 59762, 59764, 59766, 59768, 59770, 59772, 59774, 59776, 59778, 59780, 59782,\n// 59784, 59786, 59788, 59790, 59792, 59794, 59796, 59798, 59800, 59802, 59804,\n// 59806, 59808, 59810, 59812, 59814, 59816, 59818, 59820, 59822, 59824, 59826,\n// 59828, 59830, 59832, 59834, 59836, 59838, 59840, 59842, 59844, 59846, 59848,\n// 59850, 59852, 59854, 59856, 59858, 59860, 59862, 59864, 59866, 59868, 59870,\n// 59872, 59874, 59876, 59878, 59880, 59882, 59884, 59886, 59888, 59890, 59892,\n// 59894, 59896, 59898, 59900, 59902, 59904, 59906, 59908, 59910, 59912, 59914,\n// 59916, 59918, 59920, 59922, 59924, 59926, 59928, 59930, 59932, 59934, 59936,\n// 59938, 59940, 59942, 59944, 59946, 59948, 59950, 59952, 59954, 59956, 59958,\n// 59960, 59962, 59964, 59966, 59968, 59970, 59972, 59974, 59976, 59978, 59980,\n// 59982, 59984, 59986, 59988, 59990, 59992, 59994, 59996, 59998, 60000, 60002,\n// 60004, 60006, 60008, 60010, 60012, 60014, 60016, 60018, 60020, 60022, 60024,\n// 60026, 60028, 60030, 60032, 60034, 60036, 60038, 60040, 60042, 60044, 60046,\n// 60048, 60050, 60052, 60054, 60056, 60058, 60060, 60062, 60064, 60066, 60068,\n// 60070, 60072, 60074, 60076, 60078, 60080, 60082, 60084, 60086, 60088, 60090,\n// 60092, 60094, 60096, 60098, 60100, 60102, 60104, 60106, 60108, 60110, 60112,\n// 60114, 60116, 60118, 60120, 60122, 60124, 60126, 60128, 60130, 60132, 60134,\n// 60136, 60138, 60140, 60142, 60144, 60146, 60148, 60150, 60152, 60154, 60156,\n// 60158, 60160, 60162, 60164, 60166, 60168, 60170, 60172, 60174, 60176, 60178,\n// 60180, 60182, 60184, 60186, 60188, 60190, 60192, 60194, 60196, 60198, 60200,\n// 60202, 60204, 60206, 60208, 60210, 60212, 60214, 60216, 60218, 60220, 60222,\n// 60224, 60226, 60228, 60230, 60232, 60234, 60236, 60238, 60240, 60242, 60244,\n// 60246, 60248, 60250, 60252, 60254, 60256, 60258, 60260, 60262, 60264, 60266,\n// 60268, 60270, 60272, 60274, 60276, 60278, 60280, 60282, 60284, 60286, 60288,\n// 60290, 60292, 60294, 60296, 60298, 60300, 60302, 60304, 60306, 60308, 60310,\n// 60312, 60314, 60316, 60318, 60320, 60322, 60324, 60326, 60328, 60330, 60332,\n// 60334, 60336, 60338, 60340, 60342, 60344, 60346, 60348, 60350, 60352, 60354,\n// 60356, 60358, 60360, 60362, 60364, 60366, 60368, 60370, 60372, 60374, 60376,\n// 60378, 60380, 60382, 60384, 60386, 60388, 60390, 60392, 60394, 60396, 60398,\n// 60400, 60402, 60404, 60406, 60408, 60410, 60412, 60414, 60416, 60418, 60420,\n// 60422, 60424, 60426, 60428, 60430, 60432, 60434, 60436, 60438, 60440, 60442,\n// 60444, 60446, 60448, 60450, 60452, 60454, 60456, 60458, 60460, 60462, 60464,\n// 60466, 60468, 60470, 60472, 60474, 60476, 60478, 60480, 60482, 60484, 60486,\n// 60488, 60490, 60492, 60494, 60496, 60498, 60500, 60502, 60504, 60506, 60508,\n// 60510, 60512, 60514, 60516, 60518, 60520, 60522, 60524, 60526, 60528, 60530,\n// 60532, 60534, 60536, 60538, 60540, 60542, 60544, 60546, 60548, 60550, 60552,\n// 60554, 60556, 60558, 60560, 60562, 60564, 60566, 60568, 60570, 60572, 60574,\n// 60576, 60578, 60580, 60582, 60584, 60586, 60588, 60590, 60592, 60594, 60596,\n// 60598, 60600, 60602, 60604, 60606, 60608, 60610, 60612, 60614, 60616, 60618,\n// 60620, 60622, 60624, 60626, 60628, 60630, 60632, 60634, 60636, 60638, 60640,\n// 60642, 60644, 60646, 60648, 60650, 60652, 60654, 60656, 60658, 60660, 60662,\n// 60664, 60666, 60668, 60670, 60672, 60674, 60676, 60678, 60680, 60682, 60684,\n// 60686, 60688, 60690, 60692, 60694, 60696, 60698, 60700, 60702, 60704, 60706,\n// 60708, 60710, 60712, 60714, 60716, 60718, 60720, 60722, 60724, 60726, 60728,\n// 60730, 60732, 60734, 60736, 60738, 60740, 60742, 60744, 60746, 60748, 60750,\n// 60752, 60754, 60756, 60758, 60760, 60762, 60764, 60766, 60768, 60770, 60772,\n// 60774, 60776, 60778, 60780, 60782, 60784, 60786, 60788, 60790, 60792, 60794,\n// 60796, 60798, 60800, 60802, 60804, 60806, 60808, 60810, 60812, 60814, 60816,\n// 60818, 60820, 60822, 60824, 60826, 60828, 60830, 60832, 60834, 60836, 60838,\n// 60840, 60842, 60844, 60846, 60848, 60850, 60852, 60854, 60856, 60858, 60860,\n// 60862, 60864, 60866, 60868, 60870, 60872, 60874, 60876, 60878, 60880, 60882,\n// 60884, 60886, 60888, 60890, 60892, 60894, 60896, 60898, 60900, 60902, 60904,\n// 60906, 60908, 60910, 60912, 60914, 60916, 60918, 60920, 60922, 60924, 60926,\n// 60928, 60930, 60932, 60934, 60936, 60938, 60940, 60942, 60944, 60946, 60948,\n// 60950, 60952, 60954, 60956, 60958, 60960, 60962, 60964, 60966, 60968, 60970,\n// 60972, 60974, 60976, 60978, 60980, 60982, 60984, 60986, 60988, 60990, 60992,\n// 60994, 60996, 60998, 61000, 61002, 61004, 61006, 61008, 61010, 61012, 61014,\n// 61016, 61018, 61020, 61022, 61024, 61026, 61028, 61030, 61032, 61034, 61036,\n// 61038, 61040, 61042, 61044, 61046, 61048, 61050, 61052, 61054, 61056, 61058,\n// 61060, 61062, 61064, 61066, 61068, 61070, 61072, 61074, 61076, 61078, 61080,\n// 61082, 61084, 61086, 61088, 61090, 61092, 61094, 61096, 61098, 61100, 61102,\n// 61104, 61106, 61108, 61110, 61112, 61114, 61116, 61118, 61120, 61122, 61124,\n// 61126, 61128, 61130, 61132, 61134, 61136, 61138, 61140, 61142, 61144, 61146,\n// 61148, 61150, 61152, 61154, 61156, 61158, 61160, 61162, 61164, 61166, 61168,\n// 61170, 61172, 61174, 61176, 61178, 61180, 61182, 61184, 61186, 61188, 61190,\n// 61192, 61194, 61196, 61198, 61200, 61202, 61204, 61206, 61208, 61210, 61212,\n// 61214, 61216, 61218, 61220, 61222, 61224, 61226, 61228, 61230, 61232, 61234,\n// 61236, 61238, 61240, 61242, 61244, 61246, 61248, 61250, 61252, 61254, 61256,\n// 61258, 61260, 61262, 61264, 61266, 61268, 61270, 61272, 61274, 61276, 61278,\n// 61280, 61282, 61284, 61286, 61288, 61290, 61292, 61294, 61296, 61298, 61300,\n// 61302, 61304, 61306, 61308, 61310, 61312, 61314, 61316, 61318, 61320, 61322,\n// 61324, 61326, 61328, 61330, 61332, 61334, 61336, 61338, 61340, 61342, 61344,\n// 61346, 61348, 61350, 61352, 61354, 61356, 61358, 61360, 61362, 61364, 61366,\n// 61368, 61370, 61372, 61374, 61376, 61378, 61380, 61382, 61384, 61386, 61388,\n// 61390, 61392, 61394, 61396, 61398, 61400, 61402, 61404, 61406, 61408, 61410,\n// 61412, 61414, 61416, 61418, 61420, 61422, 61424, 61426, 61428, 61430, 61432,\n// 61434, 61436, 61438, 61440, 61442, 61444, 61446, 61448, 61450, 61452, 61454,\n// 61456, 61458, 61460, 61462, 61464, 61466, 61468, 61470, 61472, 61474, 61476,\n// 61478, 61480, 61482, 61484, 61486, 61488, 61490, 61492, 61494, 61496, 61498,\n// 61500, 61502, 61504, 61506, 61508, 61510, 61512, 61514, 61516, 61518, 61520,\n// 61522, 61524, 61526, 61528, 61530, 61532, 61534, 61536, 61538, 61540, 61542,\n// 61544, 61546, 61548, 61550, 61552, 61554, 61556, 61558, 61560, 61562, 61564,\n// 61566, 61568, 61570, 61572, 61574, 61576, 61578, 61580, 61582, 61584, 61586,\n// 61588, 61590, 61592, 61594, 61596, 61598, 61600, 61602, 61604, 61606, 61608,\n// 61610, 61612, 61614, 61616, 61618, 61620, 61622, 61624, 61626, 61628, 61630,\n// 61632, 61634, 61636, 61638, 61640, 61642, 61644, 61646, 61648, 61650, 61652,\n// 61654, 61656, 61658, 61660, 61662, 61664, 61666, 61668, 61670, 61672, 61674,\n// 61676, 61678, 61680, 61682, 61684, 61686, 61688, 61690, 61692, 61694, 61696,\n// 61698, 61700, 61702, 61704, 61706, 61708, 61710, 61712, 61714, 61716, 61718,\n// 61720, 61722, 61724, 61726, 61728, 61730, 61732, 61734, 61736, 61738, 61740,\n// 61742, 61744, 61746, 61748, 61750, 61752, 61754, 61756, 61758, 61760, 61762,\n// 61764, 61766, 61768, 61770, 61772, 61774, 61776, 61778, 61780, 61782, 61784,\n// 61786, 61788, 61790, 61792, 61794, 61796, 61798, 61800, 61802, 61804, 61806,\n// 61808, 61810, 61812, 61814, 61816, 61818, 61820, 61822, 61824, 61826, 61828,\n// 61830, 61832, 61834, 61836, 61838, 61840, 61842, 61844, 61846, 61848, 61850,\n// 61852, 61854, 61856, 61858, 61860, 61862, 61864, 61866, 61868, 61870, 61872,\n// 61874, 61876, 61878, 61880, 61882, 61884, 61886, 61888, 61890, 61892, 61894,\n// 61896, 61898, 61900, 61902, 61904, 61906, 61908, 61910, 61912, 61914, 61916,\n// 61918, 61920, 61922, 61924, 61926, 61928, 61930, 61932, 61934, 61936, 61938,\n// 61940, 61942, 61944, 61946, 61948, 61950, 61952, 61954, 61956, 61958, 61960,\n// 61962, 61964, 61966, 61968, 61970, 61972, 61974, 61976, 61978, 61980, 61982,\n// 61984, 61986, 61988, 61990, 61992, 61994, 61996, 61998, 62000, 62002, 62004,\n// 62006, 62008, 62010, 62012, 62014, 62016, 62018, 62020, 62022, 62024, 62026,\n// 62028, 62030, 62032, 62034, 62036, 62038, 62040, 62042, 62044, 62046, 62048,\n// 62050, 62052, 62054, 62056, 62058, 62060, 62062, 62064, 62066, 62068, 62070,\n// 62072, 62074, 62076, 62078, 62080, 62082, 62084, 62086, 62088, 62090, 62092,\n// 62094, 62096, 62098, 62100, 62102, 62104, 62106, 62108, 62110, 62112, 62114,\n// 62116, 62118, 62120, 62122, 62124, 62126, 62128, 62130, 62132, 62134, 62136,\n// 62138, 62140, 62142, 62144, 62146, 62148, 62150, 62152, 62154, 62156, 62158,\n// 62160, 62162, 62164, 62166, 62168, 62170, 62172, 62174, 62176, 62178, 62180,\n// 62182, 62184, 62186, 62188, 62190, 62192, 62194, 62196, 62198, 62200, 62202,\n// 62204, 62206, 62208, 62210, 62212, 62214, 62216, 62218, 62220, 62222, 62224,\n// 62226, 62228, 62230, 62232, 62234, 62236, 62238, 62240, 62242, 62244, 62246,\n// 62248, 62250, 62252, 62254, 62256, 62258, 62260, 62262, 62264, 62266, 62268,\n// 62270, 62272, 62274, 62276, 62278, 62280, 62282, 62284, 62286, 62288, 62290,\n// 62292, 62294, 62296, 62298, 62300, 62302, 62304, 62306, 62308, 62310, 62312,\n// 62314, 62316, 62318, 62320, 62322, 62324, 62326, 62328, 62330, 62332, 62334,\n// 62336, 62338, 62340, 62342, 62344, 62346, 62348, 62350, 62352, 62354, 62356,\n// 62358, 62360, 62362, 62364, 62366, 62368, 62370, 62372, 62374, 62376, 62378,\n// 62380, 62382, 62384, 62386, 62388, 62390, 62392, 62394, 62396, 62398, 62400,\n// 62402, 62404, 62406, 62408, 62410, 62412, 62414, 62416, 62418, 62420, 62422,\n// 62424, 62426, 62428, 62430, 62432, 62434, 62436, 62438, 62440, 62442, 62444,\n// 62446, 62448, 62450, 62452, 62454, 62456, 62458, 62460, 62462, 62464, 62466,\n// 62468, 62470, 62472, 62474, 62476, 62478, 62480, 62482, 62484, 62486, 62488,\n// 62490, 62492, 62494, 62496, 62498, 62500, 62502, 62504, 62506, 62508, 62510,\n// 62512, 62514, 62516, 62518, 62520, 62522, 62524, 62526, 62528, 62530, 62532,\n// 62534, 62536, 62538, 62540, 62542, 62544, 62546, 62548, 62550, 62552, 62554,\n// 62556, 62558, 62560, 62562, 62564, 62566, 62568, 62570, 62572, 62574, 62576,\n// 62578, 62580, 62582, 62584, 62586, 62588, 62590, 62592, 62594, 62596, 62598,\n// 62600, 62602, 62604, 62606, 62608, 62610, 62612, 62614, 62616, 62618, 62620,\n// 62622, 62624, 62626, 62628, 62630, 62632, 62634, 62636, 62638, 62640, 62642,\n// 62644, 62646, 62648, 62650, 62652, 62654, 62656, 62658, 62660, 62662, 62664,\n// 62666, 62668, 62670, 62672, 62674, 62676, 62678, 62680, 62682, 62684, 62686,\n// 62688, 62690, 62692, 62694, 62696, 62698, 62700, 62702, 62704, 62706, 62708,\n// 62710, 62712, 62714, 62716, 62718, 62720, 62722, 62724, 62726, 62728, 62730,\n// 62732, 62734, 62736, 62738, 62740, 62742, 62744, 62746, 62748, 62750, 62752,\n// 62754, 62756, 62758, 62760, 62762, 62764, 62766, 62768, 62770, 62772, 62774,\n// 62776, 62778, 62780, 62782, 62784, 62786, 62788, 62790, 62792, 62794, 62796,\n// 62798, 62800, 62802, 62804, 62806, 62808, 62810, 62812, 62814, 62816, 62818,\n// 62820, 62822, 62824, 62826, 62828, 62830, 62832, 62834, 62836, 62838, 62840,\n// 62842, 62844, 62846, 62848, 62850, 62852, 62854, 62856, 62858, 62860, 62862,\n// 62864, 62866, 62868, 62870, 62872, 62874, 62876, 62878, 62880, 62882, 62884,\n// 62886, 62888, 62890, 62892, 62894, 62896, 62898, 62900, 62902, 62904, 62906,\n// 62908, 62910, 62912, 62914, 62916, 62918, 62920, 62922, 62924, 62926, 62928,\n// 62930, 62932, 62934, 62936, 62938, 62940, 62942, 62944, 62946, 62948, 62950,\n// 62952, 62954, 62956, 62958, 62960, 62962, 62964, 62966, 62968, 62970, 62972,\n// 62974, 62976, 62978, 62980, 62982, 62984, 62986, 62988, 62990, 62992, 62994,\n// 62996, 62998, 63000, 63002, 63004, 63006, 63008, 63010, 63012, 63014, 63016,\n// 63018, 63020, 63022, 63024, 63026, 63028, 63030, 63032, 63034, 63036, 63038,\n// 63040, 63042, 63044, 63046, 63048, 63050, 63052, 63054, 63056, 63058, 63060,\n// 63062, 63064, 63066, 63068, 63070, 63072, 63074, 63076, 63078, 63080, 63082,\n// 63084, 63086, 63088, 63090, 63092, 63094, 63096, 63098, 63100, 63102, 63104,\n// 63106, 63108, 63110, 63112, 63114, 63116, 63118, 63120, 63122, 63124, 63126,\n// 63128, 63130, 63132, 63134, 63136, 63138, 63140, 63142, 63144, 63146, 63148,\n// 63150, 63152, 63154, 63156, 63158, 63160, 63162, 63164, 63166, 63168, 63170,\n// 63172, 63174, 63176, 63178, 63180, 63182, 63184, 63186, 63188, 63190, 63192,\n// 63194, 63196, 63198, 63200, 63202, 63204, 63206, 63208, 63210, 63212, 63214,\n// 63216, 63218, 63220, 63222, 63224, 63226, 63228, 63230, 63232, 63234, 63236,\n// 63238, 63240, 63242, 63244, 63246, 63248, 63250, 63252, 63254, 63256, 63258,\n// 63260, 63262, 63264, 63266, 63268, 63270, 63272, 63274, 63276, 63278, 63280,\n// 63282, 63284, 63286, 63288, 63290, 63292, 63294, 63296, 63298, 63300, 63302,\n// 63304, 63306, 63308, 63310, 63312, 63314, 63316, 63318, 63320, 63322, 63324,\n// 63326, 63328, 63330, 63332, 63334, 63336, 63338, 63340, 63342, 63344, 63346,\n// 63348, 63350, 63352, 63354, 63356, 63358, 63360, 63362, 63364, 63366, 63368,\n// 63370, 63372, 63374, 63376, 63378, 63380, 63382, 63384, 63386, 63388, 63390,\n// 63392, 63394, 63396, 63398, 63400, 63402, 63404, 63406, 63408, 63410, 63412,\n// 63414, 63416, 63418, 63420, 63422, 63424, 63426, 63428, 63430, 63432, 63434,\n// 63436, 63438, 63440, 63442, 63444, 63446, 63448, 63450, 63452, 63454, 63456,\n// 63458, 63460, 63462, 63464, 63466, 63468, 63470, 63472, 63474, 63476, 63478,\n// 63480, 63482, 63484, 63486, 63488, 63490, 63492, 63494, 63496, 63498, 63500,\n// 63502, 63504, 63506, 63508, 63510, 63512, 63514, 63516, 63518, 63520, 63522,\n// 63524, 63526, 63528, 63530, 63532, 63534, 63536, 63538, 63540, 63542, 63544,\n// 63546, 63548, 63550, 63552, 63554, 63556, 63558, 63560, 63562, 63564, 63566,\n// 63568, 63570, 63572, 63574, 63576, 63578, 63580, 63582, 63584, 63586, 63588,\n// 63590, 63592, 63594, 63596, 63598, 63600, 63602, 63604, 63606, 63608, 63610,\n// 63612, 63614, 63616, 63618, 63620, 63622, 63624, 63626, 63628, 63630, 63632,\n// 63634, 63636, 63638, 63640, 63642, 63644, 63646, 63648, 63650, 63652, 63654,\n// 63656, 63658, 63660, 63662, 63664, 63666, 63668, 63670, 63672, 63674, 63676,\n// 63678, 63680, 63682, 63684, 63686, 63688, 63690, 63692, 63694, 63696, 63698,\n// 63700, 63702, 63704, 63706, 63708, 63710, 63712, 63714, 63716, 63718, 63720,\n// 63722, 63724, 63726, 63728, 63730, 63732, 63734, 63736, 63738, 63740, 63742,\n// 64110, 64218, 64220, 64222, 64224, 64226, 64228, 64230, 64232, 64234, 64236,\n// 64238, 64240, 64242, 64244, 64246, 64248, 64250, 64252, 64254, 64263, 64265,\n// 64267, 64269, 64271, 64273, 64280, 64282, 64284, 64311, 64317, 64319, 64322,\n// 64325, 64451, 64453, 64455, 64457, 64459, 64461, 64463, 64465, 64912, 64968,\n// 64970, 64972, 64974, 64976, 64978, 64980, 64982, 64984, 64986, 64988, 64990,\n// 64992, 64994, 64996, 64998, 65000, 65002, 65004, 65006, 65050, 65052, 65054,\n// 65107, 65127, 65132, 65134, 65141, 65277, 65279, 65471, 65473, 65480, 65488,\n// 65496, 65501, 65503, 65511, 65519, 65521, 65523, 65525, 65527, 65529, 65531,\n// 65534, 65536,\n// ];\n","export const invisibleWhitespaceRegex = /\\p{Zs}/gu;\n\n// Charcodes:\n// [32, 160, 5760, 8192, 8194, 8196, 8198, 8200, 8202, 8239, 8287, 12288];\n","export const lineSeparatorRegex = /\\p{Zl}/gu;\n\n// charcode\n// [8232]\n","export const paragraphSeparatorRegex = /\\p{Zp}/gu;\n\n// charcode\n// [8233]\n","import { controlCharRegex } from \"../regex/controlCharRegex\";\nimport { invisibleWhitespaceRegex } from \"../regex/invisibleWhitespaceRegex\";\nimport { lineSeparatorRegex } from \"../regex/lineSeparatorRegex\";\nimport { paragraphSeparatorRegex } from \"../regex/paragraphSeparatorRegex\";\n\nexport const cleanSpaces = (str: string): string => {\n return str\n .replace(controlCharRegex, \" \")\n .replace(invisibleWhitespaceRegex, \" \")\n .replace(lineSeparatorRegex, \" \")\n .replace(paragraphSeparatorRegex, \" \")\n .trim() // leave trim after replace, so this test can pass `expect(cleanSpaces(\" \\b \")).toBe(\"\");`\n .replace(/\\s{2,}/g, \" \"); // replace multiple spaces with one space\n};\n","export const first = <T>(arr?: T[]): T | undefined => arr?.[0];\n","export const getKeys = (arg: object) => {\n return Object.keys(arg).concat(getEnumerableOwnPropertySymbols(arg));\n};\n\n// Object.keys does not return enumerable symbols\nexport const getEnumerableOwnPropertySymbols = (arg: object): any[] => {\n return Object.getOwnPropertySymbols\n ? Object.getOwnPropertySymbols(arg).filter(function (symbol) {\n return Object.propertyIsEnumerable.call(arg, symbol);\n })\n : [];\n};\n","import { PlainObject } from \"../types\";\nimport { getKeys } from \"./getKeys\";\n\nexport const firstKey = (arg: PlainObject): string => getKeys(arg)[0];\n","import { PlainObject } from \"../types\";\n\nexport const firstValue = (arg: PlainObject): any => Object.values(arg)[0];\n","export const last = <T>(arr?: T[]): T | undefined => arr?.[arr.length - 1];\n","export const isArray = <T>(arg?: any): arg is T[] => Array.isArray(arg);\n","export const isBoolean = (arg: any) =>\n Object.prototype.toString.call(arg) === \"[object Boolean]\";\n","export const isServer = () => typeof window === \"undefined\";\n","import { isServer } from \"./isServer\";\n\nexport const isClient = () => !isServer();\n","import { isClient } from \"./isClient\";\n\nexport const isBrowser = isClient;\n","export const isString = (arg: any): arg is string => typeof arg === \"string\";\n","import { isString } from \"./isString\";\n\nexport const isEmail = (arg: string) =>\n isString(arg) && /\\S+@\\S+\\.\\S+/.test(arg);\n","export const isObject = <T>(arg?: any): arg is Record<string, T> =>\n Object.prototype.toString.call(arg) === \"[object Object]\";\n","import { Maybe, PlainObject } from \"../types\";\nimport { isArray } from \"./isArray\";\nimport { isObject } from \"./isObject\";\nimport { isString } from \"./isString\";\n\nexport const isEmpty = (arg?: Maybe<any>) => {\n if (isEmptyObject(arg)) return true;\n if (isEmptyArray(arg)) return true;\n if (isEmptyString(arg)) return true;\n\n return arg === undefined || arg === null;\n};\n\nexport const isEmptyString = (arg: string) => {\n return isString(arg) && arg.trim().length === 0;\n};\n\nexport const isEmptyArray = (arg: any[]) => {\n return isArray(arg) && arg.length === 0;\n};\n\nexport const isEmptyObject = (arg: PlainObject) => {\n return isObject(arg) && Object.keys(arg).length === 0;\n};\n","export const isFunction = (arg: any) =>\n Object.prototype.toString.call(arg) === \"[object Function]\";\n","export const isJsDate = (arg: Date): arg is Date =>\n Object.prototype.toString.call(arg) === \"[object Date]\" &&\n !isNaN(arg as unknown as number);\n","export const isKey = <T extends object>(\n key: string | number | symbol,\n obj: T\n): key is keyof T =>\n obj.hasOwnProperty(key) && // makes sure the prop is not in the prototype chain\n obj.propertyIsEnumerable(key); // makes sure the prop is not a getter/setter\n","export const isInt = (arg: number) => Number.isInteger(arg);\n\nexport const isEven = (arg: number) => isInt(arg) && !(arg % 2);\n\nexport const isOdd = (arg: number) => isInt(arg) && !!(arg % 2);\n\nexport const isPositive = (arg: number) => isInt(arg) && arg > 0;\n\nexport const isNegative = (arg: number) => isInt(arg) && arg < 0;\n\nexport const isNumber = (arg: any): arg is number => {\n return (\n Object.prototype.toString.apply(arg) === \"[object Number]\" && isFinite(arg)\n );\n};\n","export const isSpacedString = (s: string) => {\n return s.indexOf(\" \") >= 0;\n};\n","import { isNumber } from \"./isNumber\";\nimport { isSpacedString } from \"./isSpacedString\";\nimport { isString } from \"./isString\";\n\nexport const isNumeric = (arg: number | string): boolean => {\n if (isNumber(arg)) return true;\n\n if (!isString(arg) || isSpacedString(arg)) return false;\n\n return !isNaN(parseFloat(arg));\n};\n","export const isNumericId = (id: string): boolean =>\n /^\\d+$/.test(id) && parseInt(id) > 0;\n","export const isPromise = (arg: any) => arg instanceof Promise;\n","import { isClient } from \"./isClient\";\n\nexport const isPWA = () => {\n return isClient() && window.matchMedia(\"(display-mode: standalone)\").matches; // credits to Narcis\n};\n","var canUseSymbol = typeof Symbol === \"function\" && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for(\"react.element\") : 0xeac7;\n\nexport const isReactElement = (value: any) => {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n};\n","export const isRegExp = (arg: any): arg is RegExp =>\n Object.prototype.toString.call(arg) === \"[object RegExp]\";\n","import { getKeys } from \"../helpers\";\nimport { isArray } from \"./isArray\";\nimport { isFunction } from \"./isFunction\";\nimport { isObject } from \"./isObject\";\n\nexport const isSame = (value1: any, value2: any): boolean => {\n if (value1 === value2) {\n return true;\n }\n\n if (isArray(value1) && isArray(value2)) {\n if (value1.length !== value2.length) return false;\n return value1.every((value, index) => isSame(value, value2[index]));\n }\n\n if (isObject(value1) && isObject(value2)) {\n const keys = getKeys(value1);\n if (keys.length !== getKeys(value2).length) return false;\n\n return keys.every((key: string) => {\n return isSame(value1[key], value2[key]);\n });\n }\n\n if (isFunction(value1) && isFunction(value2)) {\n return value1.toString() === value2.toString();\n }\n\n return false;\n};\n","import { isJsDate } from \"./isJsDate\";\n\nexport const isStringDate = (arg: string) => {\n const date = new Date(arg);\n return isJsDate(date);\n};\n","export const isUndefined = (arg: any) => typeof arg === \"undefined\";\n","const pattern = new RegExp(\n \"^(https?:\\\\/\\\\/)?\" + // protocol\n \"((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.?)+[a-z]{2,}|\" + // domain name\n \"((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))\" + // OR ip (v4) address\n \"(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*\" + // port and path\n \"(\\\\?[;&a-z\\\\d%_.~+=-]*)?\" + // query string\n \"(\\\\#[-a-z\\\\d_]*)?$\",\n \"i\"\n); // fragment locator\n\nexport const isURL = (arg: string) => {\n return !!arg && pattern.test(arg);\n};\n","export const isUUID = (arg: string) =>\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(\n arg\n );\n","import { Maybe } from \"../types\";\n\nexport const isValue = (arg?: Maybe<any>) => {\n return arg !== undefined && arg !== null && !Number.isNaN(arg);\n};\n","import { PlainObject } from \"../types\";\nimport { isKey, isObject } from \"../validators\";\nimport { getKeys } from \"./getKeys\";\n\n// Simple merge function that merges two objects, arrays get overwritten, no options\nexport const merge = (target: PlainObject, source: PlainObject) => {\n const merger: PlainObject = {};\n getKeys(target).forEach((key) => {\n merger[key] = isObject(target[key]) ? merge({}, target[key]) : target[key];\n });\n getKeys(source).forEach((key) => {\n if (isKey(key, target))\n merger[key] =\n isObject(target[key]) && isObject(source[key])\n ? merge(target[key], source[key])\n : source[key];\n else\n merger[key] = isObject(source[key])\n ? merge({}, source[key])\n : source[key];\n });\n return merger;\n};\n","export const moveToFirst = <T>(\n items: T[],\n condition: (item: T, i: number, items: T[]) => boolean\n): T[] => {\n const resortedItems = [...items];\n for (let i = 0; i < resortedItems.length; i++) {\n if (condition(resortedItems[i], i, resortedItems)) {\n let firstItem = resortedItems.splice(i, 1);\n resortedItems.unshift(firstItem[0]);\n break;\n }\n }\n return resortedItems;\n};\n","export const moveToLast = <T>(\n items: T[],\n condition: (item: T, i: number, items: T[]) => boolean\n): T[] => {\n const resortedItems = [...items];\n for (let i = 0; i < resortedItems.length; i++) {\n if (condition(resortedItems[i], i, resortedItems)) {\n let lastItem = resortedItems.splice(i, 1)[0];\n resortedItems.push(lastItem);\n break;\n }\n }\n return resortedItems;\n};\n","import { PlainObject } from \"../types\";\nimport { isSame } from \"../validators/isSame\";\nimport { getKeys } from \"./getKeys\";\n\nexport const objectDiff = (\n leftObject: PlainObject,\n rightObject: PlainObject\n) => {\n var diff: PlainObject = {};\n const allKeys = new Set([...getKeys(leftObject), ...getKeys(rightObject)]);\n\n for (const key of allKeys) {\n if (!isSame(rightObject[key], leftObject[key])) {\n diff[key] = {\n from: leftObject[key],\n to: rightObject[key],\n };\n }\n }\n\n return diff;\n};\n","import { DateLike, Maybe } from \"../types\";\nimport { isEmpty } from \"../validators/isEmpty\";\nimport { isJsDate } from \"../validators/isJsDate\";\n\nexport const parseDate = (arg?: Maybe<DateLike>) => {\n if (isEmpty(arg)) return;\n\n const date = new Date(arg!);\n\n if (!isJsDate(date)) return;\n\n return date;\n};\n","export const pretty = (arg: any) => {\n return JSON.stringify(arg, null, 2);\n};\n","export const promiseWithTimeout = <T>(\n promise: () => Promise<T>,\n timeoutMs: number,\n error?: Error\n): Promise<T> => {\n let timeout: ReturnType<typeof setTimeout>;\n const timeoutPromise = new Promise<never>((_, reject) => {\n timeout = setTimeout(\n () => reject(error ?? new Error(\"Promise timed out\")),\n timeoutMs\n );\n });\n\n return Promise.race([promise(), timeoutPromise]).finally(() => {\n clearTimeout(timeout);\n });\n};\n","export const sleep = (timeMs: number): Promise<void> => {\n return new Promise((resolve) => {\n setTimeout(resolve, timeMs);\n });\n};\n","import { isArray } from \"../validators\";\n\nexport const toggleArray = <T>(arg: T[], value: T) => {\n if (isArray<T>(arg)) {\n const copy: T[] = arg.reduce((acc: T[], val) => {\n if (val !== value) acc.push(val);\n return acc;\n }, []);\n if (copy.length === arg.length) copy.push(value);\n return copy;\n }\n\n return arg;\n};\n","import { isPositive } from \"../validators/isNumber\";\n\nexport const truncate = (arg: string, limit: number, ellipsis = \"...\") => {\n if (!isPositive(limit)) return arg;\n\n const argArray = [...arg]; // convert string to array, emoji and unicode safe\n\n if (argArray.length <= limit) return arg;\n\n return argArray.slice(0, limit).join(\"\") + ellipsis;\n};\n","export type Address = {\n city: string;\n country: string;\n state?: string;\n street: string;\n line2?: string;\n number: string;\n zip: string;\n};\n\nexport const UK_ADDRESSES: Address[] = [\n {\n city: \"London\",\n country: \"United Kingdom\",\n street: \"Baker Street\",\n line2: \"Marylebone\",\n number: \"221B\",\n zip: \"NW1 6XE\",\n },\n {\n city: \"Birmingham\",\n country: \"United Kingdom\",\n street: \"Bordesley Street\",\n number: \"B1 1AA\",\n zip: \"B1 1AA\",\n },\n];\n\nexport const US_ADDRESSES: Address[] = [\n {\n city: \"New York\",\n country: \"United States\",\n state: \"NY\",\n street: \"Broadway\",\n line2: \"Manhattan\",\n number: \"42\",\n zip: \"10036\",\n },\n {\n city: \"Los Angeles\",\n country: \"United States\",\n state: \"CA\",\n street: \"Hollywood Boulevard\",\n number: \"6801\",\n zip: \"90028\",\n },\n];\n\nexport const EUROPE_ADDRESSES: Address[] = [\n {\n city: \"Paris\",\n country: \"France\",\n street: \"Rue de Rivoli\",\n number: \"75001\",\n zip: \"75001\",\n },\n {\n city: \"Berlin\",\n country: \"Germany\",\n street: \"Unter den Linden\",\n line2: \"Mitte\",\n number: \"10117\",\n zip: \"10117\",\n },\n {\n city: \"Rome\",\n country: \"Italy\",\n street: \"Via del Corso\",\n number: \"00186\",\n zip: \"00186\",\n },\n {\n city: \"Madrid\",\n country: \"Spain\",\n street: \"Gran Vía\",\n line2: \"Sol\",\n number: \"28013\",\n zip: \"28013\",\n },\n];\n\nexport const MIXED_ADDRESSES: Address[] = [\n {\n city: \"Moscow\",\n country: \"Russia\",\n street: \"Tverskaya\",\n number: \"101000\",\n zip: \"101000\",\n },\n {\n city: \"Tokyo\",\n country: \"Japan\",\n street: \"Shinjuku\",\n line2: \"Shinjuku City\",\n number: \"160-0022\",\n zip: \"160-0022\",\n },\n {\n city: \"Beijing\",\n country: \"China\",\n street: \"Changan\",\n number: \"100005\",\n zip: \"100005\",\n },\n {\n city: \"Cairo\",\n country: \"Egypt\",\n street: \"Al-Muizz\",\n number: \"11511\",\n zip: \"11511\",\n },\n {\n city: \"Buenos Aires\",\n country: \"Argentina\",\n street: \"Avenida de Mayo\",\n number: \"1002\",\n zip: \"C1006AAQ\",\n },\n {\n city: \"Cape Town\",\n country: \"South Africa\",\n street: \"Adderley\",\n number: \"7700\",\n zip: \"7700\",\n },\n {\n city: \"Sydney\",\n country: \"Australia\",\n street: \"George\",\n line2: \"Haymarket\",\n number: \"2000\",\n zip: \"2000\",\n },\n {\n city: \"Rio de Janeiro\",\n country: \"Brazil\",\n street: \"Av. Presidente Vargas\",\n number: \"20021-000\",\n zip: \"20021-000\",\n },\n {\n city: \"Mexico City\",\n country: \"Mexico\",\n street: \"Paseo de la Reforma\",\n number: \"06500\",\n zip: \"06500\",\n },\n];\n\nexport const ADDRESSES: Address[] = [\n ...UK_ADDRESSES,\n ...US_ADDRESSES,\n ...EUROPE_ADDRESSES,\n ...MIXED_ADDRESSES,\n];\n","export const randomInt = (start: number = -100, end: number = 100): number =>\n Math.floor(Math.random() * (end - start + 1) + start);\n\nexport const randomPositiveInt = (end: number = 100): number =>\n randomInt(1, end);\n\nexport const randomNegativeInt = (start: number = -100): number =>\n randomInt(start, -1);\n\nexport const randomMaxSafeInt = () =>\n randomInt(-Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n\nexport const randomMaxInt = () =>\n randomInt(-Number.MAX_VALUE, Number.MAX_VALUE);\n\nexport const randomPercentage = () => randomInt(-100, 100);\n","import { randomInt } from \"./randomInt\";\n\nexport const randomArrayItem = <T>(array: T[]): T => {\n return array[randomInt(0, array.length - 1)];\n};\n","import { ADDRESSES } from \"../constants/addresses\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomAddress = () => {\n return randomArrayItem(ADDRESSES);\n};\n","import { array } from \"../helpers/array\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\n//avoid 0s and Os as they get confused with each other\nconst chars = \"123456789ABCDEFGHIJKLMNPQRSTUVWXYZ\".split(\"\");\n\n/**\n * Generates a random alphanumeric code that can be used for verification codes, etc.\n * Does not contain 0s or Os as they get confused with each other.\n * @param length The length of the code to generate.\n * @returns A random alphanumeric code.\n * @example\n * randomAlphaNumericCode(); => \"A2G4G6\"\n */\nexport const randomAlphaNumericCode = ({\n length = 6,\n}: { length?: number } = {}) => {\n if (length < 1)\n throw new Error(\"randomAlphaNumericCode: Length must be greater than 0.\");\n\n return array(length, () => randomArrayItem(chars)).join(\"\");\n};\n","export const IBAN_SAMPLES = [\n \"AD1200012030200359100100\",\n \"BA391290079401028494\",\n \"BE68539007547034\",\n \"BG80BNBG96611020345678\",\n \"FI2112345600000785\",\n \"FO6264600001631634\",\n \"FR1420041010050500013M02606\",\n \"GB29NWBK60161331926819\",\n \"GE29NB0000000101904917\",\n];\n\nexport const BIC_SWIFT_SAMPLES = [\n \"ABNANL2A\",\n \"BKENGB2LXXX\",\n \"BUKBGB22\",\n \"CITIUS33\",\n \"CITIUS33XXX\",\n \"CSCHUS6SXXX\",\n \"NOSCCATTXXX\",\n];\n\nexport const CARD_NUMBER_SAMPLES = [\n \"371449635398431\", //american express\n \"30569309025904\", //diners club\n \"6011111111111117\", //discover\n \"3530111333300000\", //jcb\n \"6304000000000000\", //laser\n \"5555555555554444\", //mastercard\n \"4111111111111111\", //visa\n];\n\n//An ABA routing number is a nine-digit code that identifies banks in the U.S.\nexport const ABA_NUMBER_SAMPLES = [\n \"111000025\",\n \"081000210\",\n \"104000029\",\n \"091300023\",\n \"123000220\",\n];\n\nexport const ROUTING_NUMBER_SAMPLES = [\n \"637530215\",\n \"130436324\",\n \"611531133\",\n \"865673685\",\n];\n\nexport const BANK_ACCOUNT_NUMBER_SAMPLES = [\n \"64766774\",\n \"39526009\",\n \"25048213\",\n \"72796383\",\n];\n\nexport const VAT_REGISTRATION_NUMBER_SAMPLES = [\n \"IE1234567T\",\n \"GB123456789\",\n \"XI123456789\",\n];\n\nexport const SORT_CODE_SAMPLES = [\"100000\", \"902127\", \"800551\"];\n\nexport const SSN_SAMPLES = [\"235-55-7216\", \"372-37-3976\", \"414-99-6488\"];\n\nexport const BANK_NAME_SAMPLES = [\n \"JPMorgan Chase & Co.\",\n \"Bank of America Corporation\",\n \"Wells Fargo & Company\",\n \"Citigroup Inc.\",\n \"Goldman Sachs Group Inc.\",\n];\n\nexport const COMPANY_NAME_SAMPLES = [\n \"Acme Inc.\",\n \"Globex Ltd.\",\n \"Aurora LLC\",\n \"Serenity Systems\",\n \"Vulcan Ventures\",\n \"Umbrella Corp.\",\n];\n\nexport type BankAccount = {\n abaNumber?: string;\n accountHolderName: string;\n accountHolderType?: \"company\" | \"individual\" | \"other\";\n accountNumber?: string;\n accountType?: \"checking\" | \"savings\";\n bankName?: string;\n bsbNumber?: string;\n bankAddress?: string;\n bicSwift?: string;\n branchCode?: string;\n iban?: string;\n routingNumber?: string;\n institutionNumber?: string;\n branchTransitNumber?: string;\n sortCode?: string;\n};\n\nexport const UK_BANK_ACCOUNT_SAMPLES: BankAccount[] = [\n {\n accountHolderName: \"John Peters\",\n accountNumber: \"12345678\",\n bankAddress: \"1 Churchill Place, Canary Wharf, London, E14 5HP, UK\",\n bankName: \"Barclays plc\",\n bicSwift: \"BARCGB22\",\n iban: \"GB51BARC20039534871253\",\n sortCode: \"12-34-56\",\n },\n {\n accountHolderName: \"Jane Evans\",\n accountNumber: \"87654321\",\n bankAddress: \"8 Canada Square, London, E14 5HQ, UK\",\n bankName: \"HSBC Holdings plc\",\n bicSwift: \"HSBCGB2L\",\n iban: \"GB82BARC20031847813531\",\n sortCode: \"65-43-21\",\n },\n];\n\nexport const US_BANK_ACCOUNT_SAMPLES: BankAccount[] = [\n {\n accountHolderName: \"Jack I. Taylor\",\n accountNumber: \"123456789012\",\n accountType: \"checking\",\n bankAddress:\n \"Bank of America Corporate Center, 100 North Tryon Street, Charlotte, NC 28255, USA\",\n bankName: \"Bank of America Corporation\",\n routingNumber: \"111000025\",\n },\n {\n accountHolderName: \"Sally T King\",\n accountNumber: \"987654321098\",\n accountType: \"savings\",\n bankAddress: \"383 Madison Avenue, New York, NY 10179, USA\",\n bankName: \"JPMorgan Chase & Co.\",\n routingNumber: \"021000021\",\n },\n];\n\nexport const AU_BANK_ACCOUNT_SAMPLES: BankAccount[] = [\n {\n accountHolderName: \"William Kevin White\",\n accountNumber: \"123456789012\",\n accountType: \"savings\",\n bankAddress:\n \"Commonwealth Bank Centre, Tower 1, 201 Sussex Street, Sydney, NSW 2000, Australia\",\n bankName: \"Commonwealth Bank of Australia\",\n bicSwift: \"CTBAAU2S\",\n bsbNumber: \"062-000\",\n },\n {\n accountHolderName: \"Jennifer Ann Brown\",\n accountNumber: \"987654321098\",\n accountType: \"checking\",\n bankAddress: \"Westpac Place, 275 Kent Street, Sydney, NSW 2000, Australia\",\n bankName: \"Westpac Banking Corporation\",\n bicSwift: \"WPACAU2S\",\n bsbNumber: \"032-001\",\n },\n];\n\nexport const CA_BANK_ACCOUNT_SAMPLES: BankAccount[] = [\n {\n accountHolderName: \"Charles Green\",\n accountNumber: \"123456789012\",\n accountType: \"savings\",\n bankAddress:\n \"Royal Bank Plaza, 200 Bay Street, North Tower, Toronto, ON M5J 2J5, Canada\",\n bankName: \"Royal Bank of Canada\",\n branchTransitNumber: \"45678\",\n institutionNumber: \"123\",\n },\n {\n accountHolderName: \"Olivia Orange\",\n accountNumber: \"987654321098\",\n accountType: \"checking\",\n bankAddress:\n \"TD Canada Trust Tower, 161 Bay Street, Toronto, ON M5J 2S8, Canada\",\n bankName: \"Toronto-Dominion Bank\",\n branchTransitNumber: \"65432\",\n institutionNumber: \"987\",\n },\n];\n\nexport const BANK_ACCOUNT_SAMPLES = [\n ...UK_BANK_ACCOUNT_SAMPLES,\n ...US_BANK_ACCOUNT_SAMPLES,\n ...AU_BANK_ACCOUNT_SAMPLES,\n ...CA_BANK_ACCOUNT_SAMPLES,\n];\n","import { BANK_ACCOUNT_SAMPLES } from \"../constants/banking\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomBankAccount = () => {\n return randomArrayItem(BANK_ACCOUNT_SAMPLES);\n};\n","import { randomInt } from \"./randomInt\";\n\nexport const randomBool = () => !!randomInt(0, 1);\n","import { isValue } from \"../validators/isValue\";\n\n// Max js digits is theoretically 17, but is actually 16, see Math.random output.\nexport const JS_MAX_DIGITS = 16;\n\n// TODO: with big numbers there will be less digits\nexport const randomFloat = (\n min: number = -9,\n max: number = 9,\n decimals?: number // toFixed accepts max 100 anyway... even if the docs say 20\n) => {\n const float = Math.random() * (max - min) + min;\n\n if (isValue(decimals)) return parseFloat(float.toFixed(decimals));\n\n return float;\n};\n\n// TODO: randomBigFloat\n","import { Coords } from \"../types\";\nimport { randomFloat } from \"./randomFloat\";\n\nexport const randomCoords = (): Coords => {\n return {\n lat: randomLat(),\n lng: randomLng(),\n };\n};\n\nexport const randomLat = () => {\n return randomFloat(-90, 90);\n};\n\nexport const randomLng = () => {\n return randomFloat(-180, 180);\n};\n","import {\n MILLISECONDS_IN_DECADE,\n MAX_DATE_MILLISECONDS,\n MILLISECONDS_IN_MINUTE,\n} from \"../constants/time\";\n\nexport const randomDate = (start?: Date, end?: Date) => {\n const startDate = start || new Date(-MILLISECONDS_IN_DECADE);\n const endDate = end || new Date(MILLISECONDS_IN_DECADE);\n return new Date(\n startDate.getTime() +\n Math.random() * (endDate.getTime() - startDate.getTime())\n );\n};\n\nexport const randomMaxDate = (start?: Date, end?: Date) => {\n const startDate = start || new Date(-MAX_DATE_MILLISECONDS);\n const endDate = end || new Date(MAX_DATE_MILLISECONDS);\n return randomDate(startDate, endDate);\n};\n\nexport const randomFutureDate = () => {\n // Add a safe margin in the future (i.e. lagging tests). About 5 minutes is enough.\n const safeNow = new Date(new Date().getTime() + 5 * MILLISECONDS_IN_MINUTE);\n return randomDate(safeNow);\n};\n\nexport const randomPastDate = () => {\n return randomDate(undefined, new Date());\n};\n\nexport const randomDateRange = () => {\n const startDate = randomDate();\n const endDate = randomDate(startDate);\n\n return {\n endDate,\n startDate,\n };\n};\n","export const DOMAIN_NAMES = [\n \"gmail.com\",\n \"yahoo.com\",\n \"hotmail.com\",\n \"aol.com\",\n \"msn.com\",\n \"comcast.net\",\n \"live.com\",\n \"att.net\",\n \"mac.com\",\n \"me.com\",\n \"charter.net\",\n \"shaw.ca\",\n \"yahoo.ca\",\n \"mail.com\",\n \"qq.com\",\n \"web.de\",\n \"gmx.de\",\n \"mail.ru\",\n];\n","export const ANIMAL_NAMES = [\n \"Albatross\",\n \"Dolphin\",\n \"Elephant\",\n \"Giraffe\",\n \"Koala\",\n \"Lion\",\n \"Penguin\",\n];\n\nexport const TOOL_NAMES = [\n \"Axe\",\n \"Chisel\",\n \"Drill\",\n \"Hammer\",\n \"Mallet\",\n \"Pliers\",\n \"Saw\",\n \"Screwdriver\",\n \"Wrench\",\n];\n\nexport const WESTERN_FIRST_NAMES = [\n \"Adrian\",\n \"Albert\",\n \"Alexander\",\n \"Alice\",\n \"Amanda\",\n \"Amy\",\n \"Benjamin\",\n \"David\",\n \"Emma\",\n \"Esther\",\n \"Olivia\",\n \"Ruby\",\n \"Sarah\",\n \"Victoria\",\n];\n\nexport const WESTERN_LAST_NAMES = [\n \"Anderson\",\n \"Brown\",\n \"Davis\",\n \"Jackson\",\n \"Johnson\",\n \"Jones\",\n \"Miller\",\n \"Moore\",\n \"Smith\",\n \"Taylor\",\n \"Thomas\",\n \"White\",\n \"Williams\",\n \"Wilson\",\n];\n\nexport const CYRILLIC_FIRST_NAMES = [\n \"Абигаил\",\n \"Агнес\",\n \"Адам\",\n \"Адриан\",\n \"Алан\",\n \"Александр\",\n \"Алиса\",\n \"Альберт\",\n \"Аманда\",\n \"Амелия\",\n \"Эми\",\n \"Эндрю\",\n];\n\nexport const CYRILLIC_LAST_NAMES = [\n \"Андерсон\",\n \"Браун\",\n \"Вилсон\",\n \"Джексон\",\n \"Джонс\",\n \"Джонсон\",\n \"Дэвис\",\n \"Миллер\",\n \"Мур\",\n \"Смит\",\n \"Тейлор\",\n \"Томас\",\n \"Уайт\",\n \"Уильямс\",\n];\n\nexport const JAPANESE_FIRST_NAMES = [\n \"アグネス\",\n \"アダム\",\n \"アドリアン\",\n \"アビゲイル\",\n \"アマンダ\",\n \"アミー\",\n \"アメリア\",\n \"アラン\",\n \"アリス\",\n \"アルバート\",\n \"アレクサンダー\",\n \"アンドリュー\",\n];\n\nexport const JAPANESE_LAST_NAMES = [\n \"アンダーソン\",\n \"ウィリアムズ\",\n \"ウィルソン\",\n \"ジャクソン\",\n \"ジョーンズ\",\n \"ジョンソン\",\n \"スミス\",\n \"タイラー\",\n \"デイビス\",\n \"トーマス\",\n \"ブラウン\",\n \"ホワイト\",\n \"ミラー\",\n \"モア\",\n];\n\nexport const ARABIC_FIRST_NAMES = [\n \"آدريان\",\n \"آدم\",\n \"آلان\",\n \"آلبرت\",\n \"آليس\",\n \"آماندا\",\n \"آمي\",\n \"آميليا\",\n \"أبيجيل\",\n \"أغنيس\",\n \"ألكسندر\",\n \"أندرو\",\n];\n\nexport const ARABIC_LAST_NAMES = [\n \"أندرسون\",\n \"براون\",\n \"تايلور\",\n \"توماس\",\n \"جاكسون\",\n \"جونز\",\n \"جونسون\",\n \"ديفيس\",\n \"سميث\",\n \"مور\",\n \"ميلر\",\n \"وايت\",\n \"ويلسون\",\n \"ويليامز\",\n];\n\nexport const FIRST_NAMES = [\n ...WESTERN_FIRST_NAMES,\n ...CYRILLIC_FIRST_NAMES,\n ...JAPANESE_FIRST_NAMES,\n ...ARABIC_FIRST_NAMES,\n];\n\nexport const LAST_NAMES = [\n ...WESTERN_LAST_NAMES,\n ...CYRILLIC_LAST_NAMES,\n ...JAPANESE_LAST_NAMES,\n ...ARABIC_LAST_NAMES,\n];\n","import { WESTERN_FIRST_NAMES, WESTERN_LAST_NAMES } from \"../constants/names\";\nimport { randomArrayItem } from \"./randomArrayItem\";\nimport { randomInt } from \"./randomInt\";\n\nexport const randomHandle = () =>\n (\n randomArrayItem(WESTERN_FIRST_NAMES) +\n \".\" +\n randomArrayItem(WESTERN_LAST_NAMES)\n ).toLowerCase() + randomInt(11, 99);\n","import { DOMAIN_NAMES } from \"../constants/domains\";\nimport { randomArrayItem } from \"./randomArrayItem\";\nimport { randomHandle } from \"./randomHandle\";\n\n//Use randomId() to generate a unique email\nexport const randomEmail = () =>\n `${randomHandle()}@${randomArrayItem(DOMAIN_NAMES)}`;\n","export const EMOJI_SAMPLE = [\n \"😀\",\n \"😁\",\n \"😂\",\n \"🤣\",\n \"😃\",\n \"😄\",\n \"😅\",\n \"😆\",\n \"😉\",\n \"😊\",\n \"😋\",\n \"😎\",\n \"😍\",\n \"😘\",\n \"😗\",\n \"😙\",\n];\n\nexport const SPECIAL_CHARACTERS = [\"!\", \"@\", \"#\", \"$\", \"%\", \"^\", \"&\", \"*\"];\n","import { EMOJI_SAMPLE } from \"../constants/unicode\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomEmoji = () => {\n return randomArrayItem(EMOJI_SAMPLE);\n};\n","import { isNumeric } from \"../validators/isNumeric\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomEnumKey = <T extends object>(enumObject: T): keyof T => {\n return randomArrayItem(\n Object.keys(enumObject).filter((key) => !isNumeric(key)) // key cannot be a number\n ) as keyof T;\n};\n","import { isKey } from \"../validators/isKey\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomEnumValue = <T extends object>(\n enumObject: T\n): T[keyof T] => {\n let values: T[keyof T][] = [];\n\n Object.values(enumObject).forEach((value) => {\n // types are tricky here because the value is used also to check if exists as a key\n if (isKey(value, enumObject) && !values.includes(value as T[keyof T]))\n values.push(enumObject[value as keyof T]);\n });\n\n return randomArrayItem(values);\n};\n","export const VERBS = [\n \"abide\",\n \"abound\",\n \"accept\",\n \"accomplish\",\n \"achieve\",\n \"acquire\",\n \"act\",\n \"adapt\",\n \"add\",\n \"adjust\",\n \"admire\",\n \"admit\",\n \"adopt\",\n \"advance\",\n \"advise\",\n \"afford\",\n \"agree\",\n \"alert\",\n \"allow\",\n \"be\",\n \"go\",\n \"need\",\n \"work\",\n];\n\nexport const NOUNS = [\n \"abandon\",\n \"ability\",\n \"able\",\n \"abortion\",\n \"about\",\n \"above\",\n \"abroad\",\n \"absence\",\n \"absent\",\n \"absolute\",\n];\n\nexport const ADJECTIVES = [\n \"abandoned\",\n \"abdominal\",\n \"ability\",\n \"able\",\n \"abnormal\",\n \"abolish\",\n \"abortion\",\n \"about\",\n \"above\",\n \"abroad\",\n \"absence\",\n \"absent\",\n \"absolute\",\n];\n\nexport const ADVERBS = [\n \"abnormally\",\n \"aboard\",\n \"absentmindedly\",\n \"absolutely\",\n \"absurdly\",\n \"abundantly\",\n \"abysmally\",\n \"academically\",\n \"acceleratedly\",\n \"accentually\",\n \"acceptably\",\n \"accessibly\",\n \"accidentally\",\n \"accommodatingly\",\n];\n\nexport const LONG_WORDS = [\n \"Pneumonoultramicroscopicsilicovolcanoconiosis\",\n \"Floccinaucinihilipilification\",\n \"Pseudopseudohypoparathyroidism\",\n \"Hippopotomonstrosesquippedaliophobia\",\n \"Antidisestablishmentarianism\",\n \"Supercalifragilisticexpialidocious\",\n \"Honorificabilitudinitatibus\",\n];\n\nexport const JS_RESERVED_WORDS = [\n \"abstract\",\n \"arguments\",\n \"await\",\n \"boolean\",\n \"break\",\n \"byte\",\n \"case\",\n \"catch\",\n \"char\",\n \"class\",\n \"const\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"delete\",\n \"do\",\n \"double\",\n \"else\",\n \"enum*\",\n \"eval\",\n \"export\",\n \"extends\",\n \"false\",\n \"final\",\n \"finally\",\n \"float\",\n \"for\",\n \"function\",\n \"goto\",\n \"if\",\n \"implements\",\n \"import\",\n \"in\",\n \"instanceof\",\n \"int\",\n \"interface\",\n \"let\",\n \"long\",\n \"native\",\n \"new\",\n \"null\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"return\",\n \"short\",\n \"static\",\n \"super\",\n \"switch\",\n \"synchronized\",\n \"this\",\n \"throw\",\n \"throws\",\n \"transient\",\n \"true\",\n \"try\",\n \"typeof\",\n \"var\",\n \"void\",\n \"volatile\",\n \"while\",\n \"with\",\n \"yield\",\n];\n\nexport const HTML_COLOR_NAME_SAMPLES = [\n \"AliceBlue\",\n \"Aqua\",\n \"Aquamarine\",\n \"Azure\",\n \"Beige\",\n \"Bisque\",\n \"Black\",\n \"Blue\",\n \"BlueViolet\",\n \"Brown\",\n \"BurlyWood\",\n \"CadetBlue\",\n \"Chartreuse\",\n \"Chocolate\",\n \"Coral\",\n \"DarkSlateGray\",\n \"DeepPink\",\n \"Gold\",\n \"Lime\",\n \"Olive\",\n \"Orchid\",\n \"Salmon\",\n \"Turquoise\",\n];\n\nexport const WORDS = [\n ...VERBS,\n ...NOUNS,\n ...ADJECTIVES,\n ...ADVERBS,\n ...LONG_WORDS,\n];\n","import { WORDS } from \"../constants/words\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomWord = () => {\n return randomArrayItem(WORDS);\n};\n","import { array } from \"../helpers\";\nimport { capitalize } from \"../helpers/capitalize\";\nimport { randomWord } from \"./randomWord\";\n\nexport const randomParagraph = () => {\n return capitalize(array(8, () => randomWord()).join(\" \")) + \".\";\n};\n","import { randomArrayItem } from \"./randomArrayItem\";\nimport { randomParagraph } from \"./randomParagraph\";\nimport { randomWord } from \"./randomWord\";\n\nconst fileExtensions = [\"png\", \"jpg\", \"jpeg\", \"gif\", \"svg\", \"webp\"];\n\n// This is a client only function\nexport const randomFile = ({\n name,\n extension,\n}: {\n name?: string;\n extension?: string;\n} = {}): File | undefined => {\n if (typeof File === \"undefined\") return undefined;\n\n const _extension = extension || randomArrayItem(fileExtensions);\n return new File(\n [randomParagraph()], // TODO: Use random char string\n `${name || randomWord()}.${_extension}`,\n {\n type: `image/${_extension}`,\n }\n );\n};\n","export const HEX_VALUES = [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n];\n","import { HEX_VALUES } from \"../constants/hex\";\nimport { array } from \"../helpers\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomHexColor = () => {\n return \"#\" + array(6, () => randomArrayItem(HEX_VALUES)).join(\"\");\n};\n","import { HEX_VALUES } from \"../constants/hex\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomHexValue = () => {\n return randomArrayItem(HEX_VALUES);\n};\n","import { HTML_COLOR_NAME_SAMPLES } from \"../constants/words\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomHtmlColorName = () => {\n return randomArrayItem(HTML_COLOR_NAME_SAMPLES);\n};\n","import { IBAN_SAMPLES } from \"../constants/banking\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomIBAN = () => {\n return randomArrayItem(IBAN_SAMPLES);\n};\n","import { array } from \"../helpers/array\";\nimport { randomInt } from \"./randomInt\";\n\nexport const randomIP = () => {\n return array(4, () => randomInt(0, 255).toString()).join(\".\");\n};\n","import {\n ANIMAL_NAMES,\n FIRST_NAMES,\n LAST_NAMES,\n WESTERN_FIRST_NAMES,\n WESTERN_LAST_NAMES,\n TOOL_NAMES,\n} from \"../constants/names\";\nimport { randomArrayItem } from \"./randomArrayItem\";\n\nexport const randomName = () =>\n randomArrayItem([...ANIMAL_NAMES, ...TOOL_NAMES]);\n\nexport const randomFirstName = () => randomArrayItem(FIRST_NAMES);\n\nexport const randomLastName = () => randomArrayItem(LAST_NAMES);\n\nexport const randomFullName = () =>\n randomArrayItem(WESTERN_FIRST_NAMES) +\n \" \" +\n randomArrayItem(WESTERN_LAST_NAMES);\n","import { array } from \"../helpers/array\";\nimport { randomInt } from \"./randomInt\";\n\n/**\n * Generates a random numeric code that can be used for verification codes, etc.\n * Does not start with 0.\n * @param length The length of the code to generate.\n * @returns A random numeric code.\n * @example\n * randomNumericCode(); => \"123456\"\n * @example\n * randomNumericCode({ length: 4 }); => \"1234\"\n */\nexport const randomNumericCode = ({ length = 6 }: { length?: number } = {}) => {\n if (length < 1)\n throw new Error(\"randomNumericCode: Length must be greater than 0.\");\n\n return array(length, (_, index) => randomInt(!index ? 1 : 0, 9)).join(\"\");\n};\n","let id = 1; // don't start with 0, to be closer to SQL autoincrement\n\nexport const randomNumericId = () => {\n return id++;\n};\n","import { SPECIAL_CHARACTERS } from \"../constants/unicode\";\nimport { randomArrayItem } from \"./randomArrayItem\";\nimport { randomHtmlColorName } from \"./randomHtmlColorName\";\nimport { randomInt } from \"./randomInt\";\n\nexport const randomPassword = () =>\n randomHtmlColorName() + // So it has an upper case\n randomArrayItem(SPECIAL_CHARACTERS) + // So it has a special character\n randomInt(11, 99); // So it has a number\n","import { randomNumericId } from \"./randomNumericId\";\n\n/**\n * This is a light-weight version of the `generateUuid` function\n * To be used only for test purposed and NOT for production\n * Leave 0s, so it gets immediately recognized as a fake uuid\n *\n * /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i\n */\nexport const randomUUID = () => {\n const id = randomNumericId().toString().padStart(15, \"0\");\n const digit12 = id.substring(0, 12);\n const digit3 = id.substring(12, 15);\n return `00000000-0000-1000-8${digit3}-${digit12}`;\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deverything",
3
- "version": "0.19.2",
3
+ "version": "0.21.0",
4
4
  "description": "Everything you need for Dev",
5
5
  "main": "dist/index.js",
6
6
  "module": "./dist/index.mjs",