deverything 0.17.1 → 0.18.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.
package/README.md CHANGED
@@ -43,6 +43,7 @@ Contributions always welcome!
43
43
  - `isPWA()`
44
44
  - `isReactElement()`
45
45
  - `isRegExp()`
46
+ - ⭐ `isSame()` Compare if dates, functions, arrays, objects or anything else are the same
46
47
  - `isServer()` if you are on the server
47
48
  - `isString()`
48
49
  - `isURL()`
@@ -51,6 +52,8 @@ Contributions always welcome!
51
52
  ### Helpers
52
53
 
53
54
  - `array()` create an arbitrary array based on a function
55
+ - `arrayDiff()`
56
+ - `arrayIntersection()`
54
57
  - `capitalize()` word => Word
55
58
  - `cleanSpaces()` trims and turns double spaces into single space
56
59
  - `clamp()` clamp number in a range
@@ -60,12 +63,14 @@ Contributions always welcome!
60
63
  - ⭐ `merge()` deep merge objects
61
64
  - `moveToFirst()` move array element to first
62
65
  - `moveToLast()` move array element to last
66
+ - `objectDiff()`
63
67
  - ⭐ `parseDate()` pass anything Date-Like, and get a JS Date back
64
68
  - `pretty()`
65
69
  - `promiseWithTimeout()`takes a promise, a timeoutMs, and an option error as arguments. Returns a new Promise that either resolves with the value of the input promise or rejects with the provided error or a default error message if the input promise does not resolve or reject within the specified timeoutMs.
66
70
  - `sleep()`
67
71
  - `toggleArray()`
68
72
  - `truncate()` truncate text, does not break emojis
73
+ - `uniqueValues()`
69
74
 
70
75
  ### Random data generators
71
76
 
package/dist/index.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  declare const array: <U extends (...args: any) => any>(length: number, mapFn: U) => ReturnType<U>[];
2
2
 
3
+ declare const arrayDiff: (arr1: any[], arr2: any[]) => any[];
4
+
5
+ declare const arrayIntersection: (arr1: any[], arr2: any[]) => any[];
6
+
3
7
  declare const capitalize: (string: string) => string;
4
8
 
5
9
  declare const clamp: ({ number, min, max, }: {
@@ -36,7 +40,9 @@ type MaybePromiseOrValueArray<T> = MaybePromiseOrValue<T>[];
36
40
 
37
41
  type ObjectValues<ObjectType> = ObjectType[keyof ObjectType];
38
42
 
39
- type PlainObject = Record<string | symbol, any>;
43
+ type PlainObject = Record<string | symbol, any> & {
44
+ length?: never;
45
+ };
40
46
 
41
47
  type Point = {
42
48
  x: number;
@@ -53,6 +59,8 @@ declare const moveToFirst: <T>(items: T[], condition: (item: T, i: number, items
53
59
 
54
60
  declare const moveToLast: <T>(items: T[], condition: (item: T, i: number, items: T[]) => boolean) => T[];
55
61
 
62
+ declare const objectDiff: (leftObject: PlainObject, rightObject: PlainObject) => PlainObject;
63
+
56
64
  declare const parseDate: (arg?: Maybe<DateLike>) => Date | undefined;
57
65
 
58
66
  declare const pretty: (arg: any) => string;
@@ -65,6 +73,8 @@ declare const toggleArray: <T>(arg: T[], value: T) => T[];
65
73
 
66
74
  declare const truncate: (arg: string, limit: number, ellipsis?: string) => string;
67
75
 
76
+ declare const uniqueValues: (arr: any[]) => any[];
77
+
68
78
  declare const randomAddress: () => {
69
79
  city: string;
70
80
  country: string;
@@ -213,6 +223,8 @@ declare const isReactElement: (value: any) => boolean;
213
223
 
214
224
  declare const isRegExp: (arg: any) => arg is RegExp;
215
225
 
226
+ declare const isSame: (value1: any, value2: any) => boolean;
227
+
216
228
  declare const isServer: () => boolean;
217
229
 
218
230
  declare const isString: (arg: any) => boolean;
@@ -227,4 +239,4 @@ declare const isUUID: (arg: string) => boolean;
227
239
 
228
240
  declare const isValue: (arg?: Maybe<any>) => boolean;
229
241
 
230
- export { Coords, DateLike, Dimensions, JS_MAX_DIGITS, Maybe, MaybePromise, MaybePromiseOrValue, MaybePromiseOrValueArray, NonUndefined, ObjectValues, PlainObject, Point, PrismaSelect, array, capitalize, clamp, cleanSpaces, first, getEnumerableOwnPropertySymbols, getKeys, isArray, isBoolean, isBrowser, isClient, isEmail, isEmpty, isEmptyArray, isEmptyObject, isEmptyString, isEven, isFunction, isInt, isJsDate, isKey, isNegative, isNumber, isNumeric, isObject, isOdd, isPWA, isPositive, isPromise, isReactElement, isRegExp, isServer, isString, isStringDate, isURL, isUUID, isUndefined, isValue, last, merge, moveToFirst, moveToLast, parseDate, pretty, promiseWithTimeout, randomAddress, randomAlphaNumericCode, randomArrayItem, randomBool, randomCoords, randomDate, randomDateRange, randomEmail, randomEmoji, randomEnumKey, randomEnumValue, randomFile, randomFirstName, randomFloat, randomFullName, randomFutureDate, randomHandle, randomHexColor, randomHexValue, randomHtmlColorName, randomIBAN, randomIP, randomInt, randomLastName, randomLat, randomLng, randomMaxDate, randomMaxInt, randomMaxSafeInt, randomName, randomNegativeInt, randomNumericCode, randomNumericId, randomParagraph, randomPassword, randomPastDate, randomPercentage, randomPositiveInt, randomUUID, randomWord, sleep, toggleArray, truncate };
242
+ export { Coords, DateLike, Dimensions, JS_MAX_DIGITS, Maybe, MaybePromise, MaybePromiseOrValue, MaybePromiseOrValueArray, NonUndefined, ObjectValues, PlainObject, Point, PrismaSelect, array, arrayDiff, arrayIntersection, capitalize, clamp, cleanSpaces, first, getEnumerableOwnPropertySymbols, getKeys, isArray, isBoolean, isBrowser, isClient, isEmail, isEmpty, isEmptyArray, isEmptyObject, isEmptyString, isEven, isFunction, isInt, isJsDate, isKey, isNegative, isNumber, isNumeric, isObject, isOdd, isPWA, isPositive, isPromise, isReactElement, isRegExp, isSame, isServer, isString, isStringDate, isURL, isUUID, isUndefined, isValue, last, merge, moveToFirst, moveToLast, objectDiff, parseDate, pretty, promiseWithTimeout, randomAddress, randomAlphaNumericCode, randomArrayItem, randomBool, randomCoords, randomDate, randomDateRange, randomEmail, randomEmoji, randomEnumKey, randomEnumValue, randomFile, randomFirstName, randomFloat, randomFullName, randomFutureDate, randomHandle, randomHexColor, randomHexValue, randomHtmlColorName, randomIBAN, randomIP, randomInt, randomLastName, randomLat, randomLng, randomMaxDate, randomMaxInt, randomMaxSafeInt, randomName, randomNegativeInt, randomNumericCode, randomNumericId, randomParagraph, randomPassword, randomPastDate, randomPercentage, randomPositiveInt, randomUUID, randomWord, sleep, toggleArray, truncate, uniqueValues };
@@ -1,97 +1,102 @@
1
1
  (function (exports) {
2
2
  'use strict';
3
3
 
4
- var s=(t,e)=>Array.from({length:t},e);var I=t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase();var It=({number:t,min:e,max:o})=>(o<e&&process.env.DEVERYTHING_WARNINGS&&console.warn("clamp: max < min",{number:t,min:e,max:o}),t<e?e:t>o?o:t);var Mt=t=>t.trim().replace(/\s{2,}/g," ");var Lt=t=>t==null?void 0:t[0];var E=t=>Object.keys(t).concat(V(t)),V=t=>Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[];var ht=t=>t==null?void 0:t[t.length-1];var u=t=>Array.isArray(t);var Ot=t=>Object.prototype.toString.call(t)==="[object Boolean]";var _=()=>typeof window=="undefined";var d=()=>!_();var Ft=d;var A=t=>typeof t=="string";var Ht=t=>A(t)&&/\S+@\S+\.\S+/.test(t);var m=t=>Object.prototype.toString.call(t)==="[object Object]";var M=t=>K(t)||W(t)||J(t)?!0:t==null,J=t=>A(t)&&t.trim().length===0,W=t=>u(t)&&t.length===0,K=t=>m(t)&&Object.keys(t).length===0;var Yt=t=>Object.prototype.toString.call(t)==="[object Function]";var S=t=>Object.prototype.toString.call(t)==="[object Date]"&&!isNaN(t);var y=(t,e)=>e.hasOwnProperty(t)&&e.propertyIsEnumerable(t);var b=t=>Number.isInteger(t),te=t=>b(t)&&!(t%2),ee=t=>b(t)&&!!(t%2),g=t=>b(t)&&t>0,oe=t=>b(t)&&t<0,re=t=>Object.prototype.toString.apply(t)==="[object Number]"&&isFinite(t);var L=t=>!isNaN(t);var ae=t=>t instanceof Promise;var ce=()=>d()&&window.matchMedia("(display-mode: standalone)").matches;var $=typeof Symbol=="function"&&Symbol.for,Y=$?Symbol.for("react.element"):60103,le=t=>t.$$typeof===Y;var de=t=>Object.prototype.toString.call(t)==="[object RegExp]";var ye=t=>{let e=new Date(t);return S(e)};var fe=t=>typeof t=="undefined";var q=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i"),Ee=t=>!!t&&q.test(t);var Ne=t=>/^[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(t);var B=t=>t!=null&&!Number.isNaN(t);var T=(t,e)=>{let o={};return E(t).forEach(r=>{o[r]=m(t[r])?T({},t[r]):t[r];}),E(e).forEach(r=>{y(r,t)?o[r]=m(t[r])&&m(e[r])?T(t[r],e[r]):e[r]:o[r]=m(e[r])?T({},e[r]):e[r];}),o};var Be=(t,e)=>{let o=[...t];for(let r=0;r<o.length;r++)if(e(o[r],r,o)){let a=o.splice(r,1);o.unshift(a[0]);break}return o};var he=(t,e)=>{let o=[...t];for(let r=0;r<o.length;r++)if(e(o[r],r,o)){let a=o.splice(r,1)[0];o.push(a);break}return o};var Pe=t=>{if(M(t))return;let e=new Date(t);if(S(e))return e};var je=t=>JSON.stringify(t,null,2);var ve=(t,e,o)=>{let r,a=new Promise((Et,k)=>{r=setTimeout(()=>k(o!=null?o:new Error("Promise timed out")),e);});return Promise.race([t(),a]).finally(()=>{clearTimeout(r);})};var ze=t=>new Promise(e=>{setTimeout(e,t);});var He=(t,e)=>{if(u(t)){let o=t.reduce((r,a)=>(a!==e&&r.push(a),r),[]);return o.length===t.length&&o.push(e),o}return t};var Je=(t,e,o="...")=>{if(!g(e))return t;let r=[...t];return r.length<=e?t:r.slice(0,e).join("")+o};var Z=[{city:"London",country:"United Kingdom",street:"Baker Street",number:"221B",zip:"NW1 6XE"},{city:"Birmingham",country:"United Kingdom",street:"Bordesley Street",number:"B1 1AA",zip:"B1 1AA"}],Q=[{city:"New York",country:"United States",street:"Broadway",number:"42",zip:"10036"},{city:"Los Angeles",country:"United States",street:"Hollywood Boulevard",number:"6801",zip:"90028"}],tt=[{city:"Paris",country:"France",street:"Rue de Rivoli",number:"75001",zip:"75001"},{city:"Berlin",country:"Germany",street:"Unter den Linden",number:"10117",zip:"10117"},{city:"Rome",country:"Italy",street:"Via del Corso",number:"00186",zip:"00186"},{city:"Madrid",country:"Spain",street:"Gran V\xEDa",number:"28013",zip:"28013"}],et=[{city:"Moscow",country:"Russia",street:"Tverskaya",number:"101000",zip:"101000"},{city:"Tokyo",country:"Japan",street:"Shinjuku",number:"160-0022",zip:"160-0022"},{city:"Beijing",country:"China",street:"Changan",number:"100005",zip:"100005"},{city:"Cairo",country:"Egypt",street:"Al-Muizz",number:"11511",zip:"11511"},{city:"Buenos Aires",country:"Argentina",street:"Avenida de Mayo",number:"1002",zip:"C1006AAQ"},{city:"Cape Town",country:"South Africa",street:"Adderley",number:"7700",zip:"7700"},{city:"Sydney",country:"Australia",street:"George",number:"2000",zip:"2000"},{city:"Rio de Janeiro",country:"Brazil",street:"Av. Presidente Vargas",number:"20021-000",zip:"20021-000"},{city:"Mexico City",country:"Mexico",street:"Paseo de la Reforma",number:"06500",zip:"06500"}],D=[...Z,...Q,...tt,...et];var i=(t=-100,e=100)=>Math.floor(Math.random()*(e-t+1)+t),$e=(t=100)=>i(1,t),Ye=(t=-100)=>i(t,-1),qe=()=>i(-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),Ze=()=>i(-Number.MAX_VALUE,Number.MAX_VALUE),Qe=()=>i(-100,100);var n=t=>t[i(0,t.length-1)];var io=()=>n(D);var ot="123456789ABCDEFGHIJKLMNPQRSTUVWXYZ".split(""),co=({length:t=6}={})=>{if(t<1)throw new Error("randomAlphaNumericCode: Length must be greater than 0.");return s(t,()=>n(ot)).join("")};var uo=()=>!!i(0,1);var yo=16,N=(t=-9,e=9,o)=>{let r=Math.random()*(e-t)+t;return B(o)?parseFloat(r.toFixed(o)):r};var xo=()=>({lat:rt(),lng:nt()}),rt=()=>N(-90,90),nt=()=>N(-180,180);var c=(t,e)=>{let o=t||new Date(-31536e7),r=e||new Date(31536e7);return new Date(o.getTime()+Math.random()*(r.getTime()-o.getTime()))},No=(t,e)=>{let o=t||new Date(-864e13),r=e||new Date(864e13);return c(o,r)},Io=()=>{let t=new Date(new Date().getTime()+5*6e4);return c(t)},_o=()=>c(void 0,new Date),Mo=()=>{let t=c();return {endDate:c(t),startDate:t}};var h=["gmail.com","yahoo.com","hotmail.com","aol.com","msn.com","comcast.net","live.com","sbcglobal.net","verizon.net","att.net","mac.com","me.com","earthlink.net","charter.net","shaw.ca","yahoo.ca","googlemail.com","mail.com","qq.com","web.de","gmx.de","mail.ru"];var C=["Aardvark","Albatross","Alligator","Alpaca","Ant","Anteater","Antelope","Ape"],R=["Axe","Ball Peen Hammer","Band Saw","Bench Grinder","Biscuit Joiner","Bolt Cutter","Boring Machine","Bow Saw"],p=["Adam","Adrian","Alan","Albert","Alexander","Alice","Amanda","Emma","Amelia","Amy","Andrew","Esther","Olivia","Ruby"],l=["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White"],st=["\u0410\u0431\u0438\u0433\u0430\u0438\u043B","\u0410\u0434\u0430\u043C","\u0410\u0434\u0440\u0438\u0430\u043D","\u0410\u0433\u043D\u0435\u0441","\u0410\u043B\u0430\u043D","\u0410\u043B\u044C\u0431\u0435\u0440\u0442","\u0410\u043B\u0435\u043A\u0441\u0430\u043D\u0434\u0440","\u0410\u043B\u0438\u0441\u0430","\u0410\u043C\u0430\u043D\u0434\u0430","\u0410\u043C\u0435\u043B\u0438\u044F","\u042D\u043C\u0438","\u042D\u043D\u0434\u0440\u044E"],mt=["\u0421\u043C\u0438\u0442","\u0414\u0436\u043E\u043D\u0441\u043E\u043D","\u0423\u0438\u043B\u044C\u044F\u043C\u0441","\u0414\u0436\u043E\u043D\u0441","\u0411\u0440\u0430\u0443\u043D","\u0414\u044D\u0432\u0438\u0441","\u041C\u0438\u043B\u043B\u0435\u0440","\u0412\u0438\u043B\u0441\u043E\u043D","\u041C\u0443\u0440","\u0422\u0435\u0439\u043B\u043E\u0440","\u0410\u043D\u0434\u0435\u0440\u0441\u043E\u043D","\u0422\u043E\u043C\u0430\u0441","\u0414\u0436\u0435\u043A\u0441\u043E\u043D","\u0423\u0430\u0439\u0442"],ct=["\u30A2\u30D3\u30B2\u30A4\u30EB","\u30A2\u30C0\u30E0","\u30A2\u30C9\u30EA\u30A2\u30F3","\u30A2\u30B0\u30CD\u30B9","\u30A2\u30E9\u30F3","\u30A2\u30EB\u30D0\u30FC\u30C8","\u30A2\u30EC\u30AF\u30B5\u30F3\u30C0\u30FC","\u30A2\u30EA\u30B9","\u30A2\u30DE\u30F3\u30C0","\u30A2\u30E1\u30EA\u30A2","\u30A2\u30DF\u30FC","\u30A2\u30F3\u30C9\u30EA\u30E5\u30FC"],pt=["\u30B9\u30DF\u30B9","\u30B8\u30E7\u30F3\u30BD\u30F3","\u30A6\u30A3\u30EA\u30A2\u30E0\u30BA","\u30B8\u30E7\u30FC\u30F3\u30BA","\u30D6\u30E9\u30A6\u30F3","\u30C7\u30A4\u30D3\u30B9","\u30DF\u30E9\u30FC","\u30A6\u30A3\u30EB\u30BD\u30F3","\u30E2\u30A2","\u30BF\u30A4\u30E9\u30FC","\u30A2\u30F3\u30C0\u30FC\u30BD\u30F3","\u30C8\u30FC\u30DE\u30B9","\u30B8\u30E3\u30AF\u30BD\u30F3","\u30DB\u30EF\u30A4\u30C8"],lt=["\u0623\u0628\u064A\u062C\u064A\u0644","\u0622\u062F\u0645","\u0622\u062F\u0631\u064A\u0627\u0646","\u0623\u063A\u0646\u064A\u0633","\u0622\u0644\u0627\u0646","\u0622\u0644\u0628\u0631\u062A","\u0623\u0644\u0643\u0633\u0646\u062F\u0631","\u0622\u0644\u064A\u0633","\u0622\u0645\u0627\u0646\u062F\u0627","\u0622\u0645\u064A\u0644\u064A\u0627","\u0622\u0645\u064A","\u0623\u0646\u062F\u0631\u0648"],ut=["\u0633\u0645\u064A\u062B","\u062C\u0648\u0646\u0633\u0648\u0646","\u0648\u064A\u0644\u064A\u0627\u0645\u0632","\u062C\u0648\u0646\u0632","\u0628\u0631\u0627\u0648\u0646","\u062F\u064A\u0641\u064A\u0633","\u0645\u064A\u0644\u0631","\u0648\u064A\u0644\u0633\u0648\u0646","\u0645\u0648\u0631","\u062A\u0627\u064A\u0644\u0648\u0631","\u0623\u0646\u062F\u0631\u0633\u0648\u0646","\u062A\u0648\u0645\u0627\u0633","\u062C\u0627\u0643\u0633\u0648\u0646","\u0648\u0627\u064A\u062A"],O=[...p,...st,...ct,...lt],P=[...l,...mt,...pt,...ut];var w=()=>(n(p)+"."+n(l)).toLowerCase()+i(11,99);var jo=()=>`${w()}@${n(h)}`;var j=["\u{1F600}","\u{1F601}","\u{1F602}","\u{1F923}","\u{1F603}","\u{1F604}","\u{1F605}","\u{1F606}","\u{1F609}","\u{1F60A}","\u{1F60B}","\u{1F60E}","\u{1F60D}","\u{1F618}","\u{1F617}","\u{1F619}"],U=["!","@","#","$","%","^","&","*"];var Go=()=>n(j);var Vo=t=>n(Object.keys(t).filter(e=>!L(e)));var $o=t=>{let e=[];return Object.values(t).forEach(o=>{y(o,t)&&!e.includes(o)&&e.push(t[o]);}),n(e)};var dt=["abide","abound","accept","accomplish","achieve","acquire","act","adapt","add","adjust","admire","admit","adopt","advance","advise","afford","agree","alert","allow","be","go","need","work"],At=["abandon","ability","able","abortion","about","above","abroad","absence","absent","absolute"],St=["abandoned","abdominal","ability","able","abnormal","abolish","abortion","about","above","abroad","absence","absent","absolute"],yt=["abnormally","aboard","absentmindedly","absolutely","absurdly","abundantly","abysmally","academically","acceleratedly","accentually","acceptably","accessibly","accidentally","accommodatingly"],bt=["Pneumonoultramicroscopicsilicovolcanoconiosis","Floccinaucinihilipilification","Pseudopseudohypoparathyroidism","Hippopotomonstrosesquippedaliophobia","Antidisestablishmentarianism","Supercalifragilisticexpialidocious","Honorificabilitudinitatibus"];var v=["AliceBlue","Aqua","Aquamarine","Azure","Beige","Bisque","Black","Blue","BlueViolet","Brown","BurlyWood","CadetBlue","Chartreuse","Chocolate","Coral","DarkSlateGray","DeepPink","Gold","Lime","Olive","Orchid","Salmon","Turquoise"],F=[...dt,...At,...St,...yt,...bt];var f=()=>n(F);var z=()=>I(s(8,()=>f()).join(" "))+".";var ft=["png","jpg","jpeg","gif","svg","webp"],mr=({name:t,extension:e}={})=>{if(typeof File=="undefined")return;let o=e||n(ft);return new File([z()],`${t||f()}.${o}`,{type:`image/${o}`})};var x=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];var Ar=()=>"#"+s(6,()=>n(x)).join("");var fr=()=>n(x);var G=()=>n(v);var X=["AD1200012030200359100100","BA391290079401028494","BE68539007547034","BG80BNBG96611020345678","BH67BMAG00001299123456","BY13NBRB3600900000002Z00AB00","CH9300762011623852957","CR05015202001026284066","CY17002001280000001200527600","CZ6508000000192000145399","DE89370400440532013000","DO28BAGR00000001212453611324","EE382200221020145685","ES9121000418450200051332","FI2112345600000785","FO6264600001631634","FR1420041010050500013M02606","GB29NWBK60161331926819","GE29NB0000000101904917"];var gr=()=>n(X);var Dr=()=>`${i(0,255).toString()}.${i(0,255).toString()}.${i(0,255).toString()}.${i(0,255).toString()}`;var Or=()=>n([...C,...R]),Pr=()=>n(O),wr=()=>n(P),jr=()=>n(p)+" "+n(l);var zr=({length:t=6}={})=>{if(t<1)throw new Error("randomNumericCode: Length must be greater than 0.");return s(t,(e,o)=>i(o?0:1,9)).join("")};var xt=1,H=()=>xt++;var Wr=()=>G()+n(U)+i(11,99);var Yr=()=>{let t=H().toString().padStart(15,"0"),e=t.substring(0,12);return `00000000-0000-1000-8${t.substring(12,15)}-${e}`};
4
+ var c=(t,e)=>Array.from({length:t},e);var A=t=>[...new Set(t)];var Lt=(t,e)=>A(t.filter(r=>!e.includes(r)).concat(e.filter(r=>!t.includes(r))));var Bt=(t,e)=>A(t.filter(r=>e.includes(r)));var g=t=>t.charAt(0).toUpperCase()+t.slice(1).toLowerCase();var Pt=({number:t,min:e,max:r})=>(r<e&&process.env.DEVERYTHING_WARNINGS&&console.warn("clamp: max < min",{number:t,min:e,max:r}),t<e?e:t>r?r:t);var wt=t=>t.trim().replace(/\s{2,}/g," ");var Ut=t=>t==null?void 0:t[0];var m=t=>Object.keys(t).concat(W(t)),W=t=>Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t).filter(function(e){return Object.propertyIsEnumerable.call(t,e)}):[];var Gt=t=>t==null?void 0:t[t.length-1];var p=t=>Array.isArray(t);var kt=t=>Object.prototype.toString.call(t)==="[object Boolean]";var L=()=>typeof window=="undefined";var f=()=>!L();var $t=f;var y=t=>typeof t=="string";var Qt=t=>y(t)&&/\S+@\S+\.\S+/.test(t);var s=t=>Object.prototype.toString.call(t)==="[object Object]";var D=t=>Y(t)||q(t)||$(t)?!0:t==null,$=t=>y(t)&&t.trim().length===0,q=t=>p(t)&&t.length===0,Y=t=>s(t)&&Object.keys(t).length===0;var I=t=>Object.prototype.toString.call(t)==="[object Function]";var S=t=>Object.prototype.toString.call(t)==="[object Date]"&&!isNaN(t);var b=(t,e)=>e.hasOwnProperty(t)&&e.propertyIsEnumerable(t);var x=t=>Number.isInteger(t),ce=t=>x(t)&&!(t%2),pe=t=>x(t)&&!!(t%2),h=t=>x(t)&&t>0,ue=t=>x(t)&&t<0,le=t=>Object.prototype.toString.apply(t)==="[object Number]"&&isFinite(t);var B=t=>!isNaN(t);var fe=t=>t instanceof Promise;var be=()=>f()&&window.matchMedia("(display-mode: standalone)").matches;var Z=typeof Symbol=="function"&&Symbol.for,Q=Z?Symbol.for("react.element"):60103,Ee=t=>t.$$typeof===Q;var Ne=t=>Object.prototype.toString.call(t)==="[object RegExp]";var E=(t,e)=>{if(t===e)return !0;if(p(t)&&p(e))return t.length!==e.length?!1:t.every((r,o)=>E(r,e[o]));if(s(t)&&s(e)){let r=m(t);return r.length!==m(e).length?!1:r.every(o=>E(t[o],e[o]))}return I(t)&&I(e)?t.toString()===e.toString():!1};var Be=t=>{let e=new Date(t);return S(e)};var Re=t=>typeof t=="undefined";var tt=new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i"),Oe=t=>!!t&&tt.test(t);var je=t=>/^[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(t);var C=t=>t!=null&&!Number.isNaN(t);var _=(t,e)=>{let r={};return m(t).forEach(o=>{r[o]=s(t[o])?_({},t[o]):t[o];}),m(e).forEach(o=>{b(o,t)?r[o]=s(t[o])&&s(e[o])?_(t[o],e[o]):e[o]:r[o]=s(e[o])?_({},e[o]):e[o];}),r};var ve=(t,e)=>{let r=[...t];for(let o=0;o<r.length;o++)if(e(r[o],o,r)){let a=r.splice(o,1);r.unshift(a[0]);break}return r};var He=(t,e)=>{let r=[...t];for(let o=0;o<r.length;o++)if(e(r[o],o,r)){let a=r.splice(o,1)[0];r.push(a);break}return r};var We=(t,e)=>{var r={};let o=new Set([...m(t),...m(e)]);for(let a of o)E(e[a],t[a])||(r[a]={from:t[a],to:e[a]});return r};var Ze=t=>{if(D(t))return;let e=new Date(t);if(S(e))return e};var tr=t=>JSON.stringify(t,null,2);var rr=(t,e,r)=>{let o,a=new Promise((It,K)=>{o=setTimeout(()=>K(r!=null?r:new Error("Promise timed out")),e);});return Promise.race([t(),a]).finally(()=>{clearTimeout(o);})};var nr=t=>new Promise(e=>{setTimeout(e,t);});var sr=(t,e)=>{if(p(t)){let r=t.reduce((o,a)=>(a!==e&&o.push(a),o),[]);return r.length===t.length&&r.push(e),r}return t};var pr=(t,e,r="...")=>{if(!h(e))return t;let o=[...t];return o.length<=e?t:o.slice(0,e).join("")+r};var et=[{city:"London",country:"United Kingdom",street:"Baker Street",number:"221B",zip:"NW1 6XE"},{city:"Birmingham",country:"United Kingdom",street:"Bordesley Street",number:"B1 1AA",zip:"B1 1AA"}],rt=[{city:"New York",country:"United States",street:"Broadway",number:"42",zip:"10036"},{city:"Los Angeles",country:"United States",street:"Hollywood Boulevard",number:"6801",zip:"90028"}],ot=[{city:"Paris",country:"France",street:"Rue de Rivoli",number:"75001",zip:"75001"},{city:"Berlin",country:"Germany",street:"Unter den Linden",number:"10117",zip:"10117"},{city:"Rome",country:"Italy",street:"Via del Corso",number:"00186",zip:"00186"},{city:"Madrid",country:"Spain",street:"Gran V\xEDa",number:"28013",zip:"28013"}],nt=[{city:"Moscow",country:"Russia",street:"Tverskaya",number:"101000",zip:"101000"},{city:"Tokyo",country:"Japan",street:"Shinjuku",number:"160-0022",zip:"160-0022"},{city:"Beijing",country:"China",street:"Changan",number:"100005",zip:"100005"},{city:"Cairo",country:"Egypt",street:"Al-Muizz",number:"11511",zip:"11511"},{city:"Buenos Aires",country:"Argentina",street:"Avenida de Mayo",number:"1002",zip:"C1006AAQ"},{city:"Cape Town",country:"South Africa",street:"Adderley",number:"7700",zip:"7700"},{city:"Sydney",country:"Australia",street:"George",number:"2000",zip:"2000"},{city:"Rio de Janeiro",country:"Brazil",street:"Av. Presidente Vargas",number:"20021-000",zip:"20021-000"},{city:"Mexico City",country:"Mexico",street:"Paseo de la Reforma",number:"06500",zip:"06500"}],R=[...et,...rt,...ot,...nt];var i=(t=-100,e=100)=>Math.floor(Math.random()*(e-t+1)+t),dr=(t=100)=>i(1,t),Ar=(t=-100)=>i(t,-1),fr=()=>i(-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),yr=()=>i(-Number.MAX_VALUE,Number.MAX_VALUE),Sr=()=>i(-100,100);var n=t=>t[i(0,t.length-1)];var Ir=()=>n(R);var it="123456789ABCDEFGHIJKLMNPQRSTUVWXYZ".split(""),Lr=({length:t=6}={})=>{if(t<1)throw new Error("randomAlphaNumericCode: Length must be greater than 0.");return c(t,()=>n(it)).join("")};var Br=()=>!!i(0,1);var Pr=16,M=(t=-9,e=9,r)=>{let o=Math.random()*(e-t)+t;return C(r)?parseFloat(o.toFixed(r)):o};var jr=()=>({lat:at(),lng:st()}),at=()=>M(-90,90),st=()=>M(-180,180);var u=(t,e)=>{let r=t||new Date(-31536e7),o=e||new Date(31536e7);return new Date(r.getTime()+Math.random()*(o.getTime()-r.getTime()))},zr=(t,e)=>{let r=t||new Date(-864e13),o=e||new Date(864e13);return u(r,o)},Gr=()=>{let t=new Date(new Date().getTime()+5*6e4);return u(t)},Xr=()=>u(void 0,new Date),vr=()=>{let t=u();return {endDate:u(t),startDate:t}};var P=["gmail.com","yahoo.com","hotmail.com","aol.com","msn.com","comcast.net","live.com","sbcglobal.net","verizon.net","att.net","mac.com","me.com","earthlink.net","charter.net","shaw.ca","yahoo.ca","googlemail.com","mail.com","qq.com","web.de","gmx.de","mail.ru"];var O=["Aardvark","Albatross","Alligator","Alpaca","Ant","Anteater","Antelope","Ape"],w=["Axe","Ball Peen Hammer","Band Saw","Bench Grinder","Biscuit Joiner","Bolt Cutter","Boring Machine","Bow Saw"],l=["Adam","Adrian","Alan","Albert","Alexander","Alice","Amanda","Emma","Amelia","Amy","Andrew","Esther","Olivia","Ruby"],d=["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White"],pt=["\u0410\u0431\u0438\u0433\u0430\u0438\u043B","\u0410\u0434\u0430\u043C","\u0410\u0434\u0440\u0438\u0430\u043D","\u0410\u0433\u043D\u0435\u0441","\u0410\u043B\u0430\u043D","\u0410\u043B\u044C\u0431\u0435\u0440\u0442","\u0410\u043B\u0435\u043A\u0441\u0430\u043D\u0434\u0440","\u0410\u043B\u0438\u0441\u0430","\u0410\u043C\u0430\u043D\u0434\u0430","\u0410\u043C\u0435\u043B\u0438\u044F","\u042D\u043C\u0438","\u042D\u043D\u0434\u0440\u044E"],ut=["\u0421\u043C\u0438\u0442","\u0414\u0436\u043E\u043D\u0441\u043E\u043D","\u0423\u0438\u043B\u044C\u044F\u043C\u0441","\u0414\u0436\u043E\u043D\u0441","\u0411\u0440\u0430\u0443\u043D","\u0414\u044D\u0432\u0438\u0441","\u041C\u0438\u043B\u043B\u0435\u0440","\u0412\u0438\u043B\u0441\u043E\u043D","\u041C\u0443\u0440","\u0422\u0435\u0439\u043B\u043E\u0440","\u0410\u043D\u0434\u0435\u0440\u0441\u043E\u043D","\u0422\u043E\u043C\u0430\u0441","\u0414\u0436\u0435\u043A\u0441\u043E\u043D","\u0423\u0430\u0439\u0442"],lt=["\u30A2\u30D3\u30B2\u30A4\u30EB","\u30A2\u30C0\u30E0","\u30A2\u30C9\u30EA\u30A2\u30F3","\u30A2\u30B0\u30CD\u30B9","\u30A2\u30E9\u30F3","\u30A2\u30EB\u30D0\u30FC\u30C8","\u30A2\u30EC\u30AF\u30B5\u30F3\u30C0\u30FC","\u30A2\u30EA\u30B9","\u30A2\u30DE\u30F3\u30C0","\u30A2\u30E1\u30EA\u30A2","\u30A2\u30DF\u30FC","\u30A2\u30F3\u30C9\u30EA\u30E5\u30FC"],dt=["\u30B9\u30DF\u30B9","\u30B8\u30E7\u30F3\u30BD\u30F3","\u30A6\u30A3\u30EA\u30A2\u30E0\u30BA","\u30B8\u30E7\u30FC\u30F3\u30BA","\u30D6\u30E9\u30A6\u30F3","\u30C7\u30A4\u30D3\u30B9","\u30DF\u30E9\u30FC","\u30A6\u30A3\u30EB\u30BD\u30F3","\u30E2\u30A2","\u30BF\u30A4\u30E9\u30FC","\u30A2\u30F3\u30C0\u30FC\u30BD\u30F3","\u30C8\u30FC\u30DE\u30B9","\u30B8\u30E3\u30AF\u30BD\u30F3","\u30DB\u30EF\u30A4\u30C8"],At=["\u0623\u0628\u064A\u062C\u064A\u0644","\u0622\u062F\u0645","\u0622\u062F\u0631\u064A\u0627\u0646","\u0623\u063A\u0646\u064A\u0633","\u0622\u0644\u0627\u0646","\u0622\u0644\u0628\u0631\u062A","\u0623\u0644\u0643\u0633\u0646\u062F\u0631","\u0622\u0644\u064A\u0633","\u0622\u0645\u0627\u0646\u062F\u0627","\u0622\u0645\u064A\u0644\u064A\u0627","\u0622\u0645\u064A","\u0623\u0646\u062F\u0631\u0648"],ft=["\u0633\u0645\u064A\u062B","\u062C\u0648\u0646\u0633\u0648\u0646","\u0648\u064A\u0644\u064A\u0627\u0645\u0632","\u062C\u0648\u0646\u0632","\u0628\u0631\u0627\u0648\u0646","\u062F\u064A\u0641\u064A\u0633","\u0645\u064A\u0644\u0631","\u0648\u064A\u0644\u0633\u0648\u0646","\u0645\u0648\u0631","\u062A\u0627\u064A\u0644\u0648\u0631","\u0623\u0646\u062F\u0631\u0633\u0648\u0646","\u062A\u0648\u0645\u0627\u0633","\u062C\u0627\u0643\u0633\u0648\u0646","\u0648\u0627\u064A\u062A"],j=[...l,...pt,...lt,...At],U=[...d,...ut,...dt,...ft];var F=()=>(n(l)+"."+n(d)).toLowerCase()+i(11,99);var Qr=()=>`${F()}@${n(P)}`;var z=["\u{1F600}","\u{1F601}","\u{1F602}","\u{1F923}","\u{1F603}","\u{1F604}","\u{1F605}","\u{1F606}","\u{1F609}","\u{1F60A}","\u{1F60B}","\u{1F60E}","\u{1F60D}","\u{1F618}","\u{1F617}","\u{1F619}"],G=["!","@","#","$","%","^","&","*"];var no=()=>n(z);var mo=t=>n(Object.keys(t).filter(e=>!B(e)));var lo=t=>{let e=[];return Object.values(t).forEach(r=>{b(r,t)&&!e.includes(r)&&e.push(t[r]);}),n(e)};var yt=["abide","abound","accept","accomplish","achieve","acquire","act","adapt","add","adjust","admire","admit","adopt","advance","advise","afford","agree","alert","allow","be","go","need","work"],St=["abandon","ability","able","abortion","about","above","abroad","absence","absent","absolute"],bt=["abandoned","abdominal","ability","able","abnormal","abolish","abortion","about","above","abroad","absence","absent","absolute"],xt=["abnormally","aboard","absentmindedly","absolutely","absurdly","abundantly","abysmally","academically","acceleratedly","accentually","acceptably","accessibly","accidentally","accommodatingly"],Et=["Pneumonoultramicroscopicsilicovolcanoconiosis","Floccinaucinihilipilification","Pseudopseudohypoparathyroidism","Hippopotomonstrosesquippedaliophobia","Antidisestablishmentarianism","Supercalifragilisticexpialidocious","Honorificabilitudinitatibus"];var X=["AliceBlue","Aqua","Aquamarine","Azure","Beige","Bisque","Black","Blue","BlueViolet","Brown","BurlyWood","CadetBlue","Chartreuse","Chocolate","Coral","DarkSlateGray","DeepPink","Gold","Lime","Olive","Orchid","Salmon","Turquoise"],v=[...yt,...St,...bt,...xt,...Et];var T=()=>n(v);var k=()=>g(c(8,()=>T()).join(" "))+".";var Tt=["png","jpg","jpeg","gif","svg","webp"],go=({name:t,extension:e}={})=>{if(typeof File=="undefined")return;let r=e||n(Tt);return new File([k()],`${t||T()}.${r}`,{type:`image/${r}`})};var N=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];var Ro=()=>"#"+c(6,()=>n(N)).join("");var jo=()=>n(N);var H=()=>n(X);var V=["AD1200012030200359100100","BA391290079401028494","BE68539007547034","BG80BNBG96611020345678","BH67BMAG00001299123456","BY13NBRB3600900000002Z00AB00","CH9300762011623852957","CR05015202001026284066","CY17002001280000001200527600","CZ6508000000192000145399","DE89370400440532013000","DO28BAGR00000001212453611324","EE382200221020145685","ES9121000418450200051332","FI2112345600000785","FO6264600001631634","FR1420041010050500013M02606","GB29NWBK60161331926819","GE29NB0000000101904917"];var Ho=()=>n(V);var Ko=()=>`${i(0,255).toString()}.${i(0,255).toString()}.${i(0,255).toString()}.${i(0,255).toString()}`;var Yo=()=>n([...O,...w]),Zo=()=>n(j),Qo=()=>n(U),tn=()=>n(l)+" "+n(d);var nn=({length:t=6}={})=>{if(t<1)throw new Error("randomNumericCode: Length must be greater than 0.");return c(t,(e,r)=>i(r?0:1,9)).join("")};var Nt=1,J=()=>Nt++;var ln=()=>H()+n(G)+i(11,99);var fn=()=>{let t=J().toString().padStart(15,"0"),e=t.substring(0,12);return `00000000-0000-1000-8${t.substring(12,15)}-${e}`};
5
5
 
6
- exports.JS_MAX_DIGITS = yo;
7
- exports.array = s;
8
- exports.capitalize = I;
9
- exports.clamp = It;
10
- exports.cleanSpaces = Mt;
11
- exports.first = Lt;
12
- exports.getEnumerableOwnPropertySymbols = V;
13
- exports.getKeys = E;
14
- exports.isArray = u;
15
- exports.isBoolean = Ot;
16
- exports.isBrowser = Ft;
17
- exports.isClient = d;
18
- exports.isEmail = Ht;
19
- exports.isEmpty = M;
20
- exports.isEmptyArray = W;
21
- exports.isEmptyObject = K;
22
- exports.isEmptyString = J;
23
- exports.isEven = te;
24
- exports.isFunction = Yt;
25
- exports.isInt = b;
6
+ exports.JS_MAX_DIGITS = Pr;
7
+ exports.array = c;
8
+ exports.arrayDiff = Lt;
9
+ exports.arrayIntersection = Bt;
10
+ exports.capitalize = g;
11
+ exports.clamp = Pt;
12
+ exports.cleanSpaces = wt;
13
+ exports.first = Ut;
14
+ exports.getEnumerableOwnPropertySymbols = W;
15
+ exports.getKeys = m;
16
+ exports.isArray = p;
17
+ exports.isBoolean = kt;
18
+ exports.isBrowser = $t;
19
+ exports.isClient = f;
20
+ exports.isEmail = Qt;
21
+ exports.isEmpty = D;
22
+ exports.isEmptyArray = q;
23
+ exports.isEmptyObject = Y;
24
+ exports.isEmptyString = $;
25
+ exports.isEven = ce;
26
+ exports.isFunction = I;
27
+ exports.isInt = x;
26
28
  exports.isJsDate = S;
27
- exports.isKey = y;
28
- exports.isNegative = oe;
29
- exports.isNumber = re;
30
- exports.isNumeric = L;
31
- exports.isObject = m;
32
- exports.isOdd = ee;
33
- exports.isPWA = ce;
34
- exports.isPositive = g;
35
- exports.isPromise = ae;
36
- exports.isReactElement = le;
37
- exports.isRegExp = de;
38
- exports.isServer = _;
39
- exports.isString = A;
40
- exports.isStringDate = ye;
41
- exports.isURL = Ee;
42
- exports.isUUID = Ne;
43
- exports.isUndefined = fe;
44
- exports.isValue = B;
45
- exports.last = ht;
46
- exports.merge = T;
47
- exports.moveToFirst = Be;
48
- exports.moveToLast = he;
49
- exports.parseDate = Pe;
50
- exports.pretty = je;
51
- exports.promiseWithTimeout = ve;
52
- exports.randomAddress = io;
53
- exports.randomAlphaNumericCode = co;
29
+ exports.isKey = b;
30
+ exports.isNegative = ue;
31
+ exports.isNumber = le;
32
+ exports.isNumeric = B;
33
+ exports.isObject = s;
34
+ exports.isOdd = pe;
35
+ exports.isPWA = be;
36
+ exports.isPositive = h;
37
+ exports.isPromise = fe;
38
+ exports.isReactElement = Ee;
39
+ exports.isRegExp = Ne;
40
+ exports.isSame = E;
41
+ exports.isServer = L;
42
+ exports.isString = y;
43
+ exports.isStringDate = Be;
44
+ exports.isURL = Oe;
45
+ exports.isUUID = je;
46
+ exports.isUndefined = Re;
47
+ exports.isValue = C;
48
+ exports.last = Gt;
49
+ exports.merge = _;
50
+ exports.moveToFirst = ve;
51
+ exports.moveToLast = He;
52
+ exports.objectDiff = We;
53
+ exports.parseDate = Ze;
54
+ exports.pretty = tr;
55
+ exports.promiseWithTimeout = rr;
56
+ exports.randomAddress = Ir;
57
+ exports.randomAlphaNumericCode = Lr;
54
58
  exports.randomArrayItem = n;
55
- exports.randomBool = uo;
56
- exports.randomCoords = xo;
57
- exports.randomDate = c;
58
- exports.randomDateRange = Mo;
59
- exports.randomEmail = jo;
60
- exports.randomEmoji = Go;
61
- exports.randomEnumKey = Vo;
62
- exports.randomEnumValue = $o;
63
- exports.randomFile = mr;
64
- exports.randomFirstName = Pr;
65
- exports.randomFloat = N;
66
- exports.randomFullName = jr;
67
- exports.randomFutureDate = Io;
68
- exports.randomHandle = w;
69
- exports.randomHexColor = Ar;
70
- exports.randomHexValue = fr;
71
- exports.randomHtmlColorName = G;
72
- exports.randomIBAN = gr;
73
- exports.randomIP = Dr;
59
+ exports.randomBool = Br;
60
+ exports.randomCoords = jr;
61
+ exports.randomDate = u;
62
+ exports.randomDateRange = vr;
63
+ exports.randomEmail = Qr;
64
+ exports.randomEmoji = no;
65
+ exports.randomEnumKey = mo;
66
+ exports.randomEnumValue = lo;
67
+ exports.randomFile = go;
68
+ exports.randomFirstName = Zo;
69
+ exports.randomFloat = M;
70
+ exports.randomFullName = tn;
71
+ exports.randomFutureDate = Gr;
72
+ exports.randomHandle = F;
73
+ exports.randomHexColor = Ro;
74
+ exports.randomHexValue = jo;
75
+ exports.randomHtmlColorName = H;
76
+ exports.randomIBAN = Ho;
77
+ exports.randomIP = Ko;
74
78
  exports.randomInt = i;
75
- exports.randomLastName = wr;
76
- exports.randomLat = rt;
77
- exports.randomLng = nt;
78
- exports.randomMaxDate = No;
79
- exports.randomMaxInt = Ze;
80
- exports.randomMaxSafeInt = qe;
81
- exports.randomName = Or;
82
- exports.randomNegativeInt = Ye;
83
- exports.randomNumericCode = zr;
84
- exports.randomNumericId = H;
85
- exports.randomParagraph = z;
86
- exports.randomPassword = Wr;
87
- exports.randomPastDate = _o;
88
- exports.randomPercentage = Qe;
89
- exports.randomPositiveInt = $e;
90
- exports.randomUUID = Yr;
91
- exports.randomWord = f;
92
- exports.sleep = ze;
93
- exports.toggleArray = He;
94
- exports.truncate = Je;
79
+ exports.randomLastName = Qo;
80
+ exports.randomLat = at;
81
+ exports.randomLng = st;
82
+ exports.randomMaxDate = zr;
83
+ exports.randomMaxInt = yr;
84
+ exports.randomMaxSafeInt = fr;
85
+ exports.randomName = Yo;
86
+ exports.randomNegativeInt = Ar;
87
+ exports.randomNumericCode = nn;
88
+ exports.randomNumericId = J;
89
+ exports.randomParagraph = k;
90
+ exports.randomPassword = ln;
91
+ exports.randomPastDate = Xr;
92
+ exports.randomPercentage = Sr;
93
+ exports.randomPositiveInt = dr;
94
+ exports.randomUUID = fn;
95
+ exports.randomWord = T;
96
+ exports.sleep = nr;
97
+ exports.toggleArray = sr;
98
+ exports.truncate = pr;
99
+ exports.uniqueValues = A;
95
100
 
96
101
  return exports;
97
102