// Please do not edit this file. It has been generated automatically // from `src/module/faker.wren` using `util/wren_to_c_string.py` static const char* fakerModuleSource = "// retoor \n" "\n" "import \"crypto\" for Crypto, Hash\n" "import \"uuid\" for Uuid\n" "import \"datetime\" for DateTime, Duration\n" "import \"strutil\" for Str\n" "\n" "class FakerRandom {\n" " static seed_ { __seed }\n" " static state_ { __state }\n" "\n" " static seed(value) {\n" " __seed = value\n" " __state = value\n" " }\n" "\n" " static reset() {\n" " __seed = null\n" " __state = null\n" " }\n" "\n" " static next(min, max) {\n" " if (__seed == null) {\n" " return Crypto.randomInt(min, max + 1)\n" " }\n" " if (__state == null) __state = __seed\n" " __state = ((__state * 1103515245) + 12345) % 2147483648\n" " var range = max - min + 1\n" " return min + (__state % range)\n" " }\n" "\n" " static nextFloat() {\n" " if (__seed == null) {\n" " var bytes = Crypto.randomBytes(4)\n" " var value = (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3]\n" " if (value < 0) value = -value\n" " return value / 2147483648\n" " }\n" " if (__state == null) __state = __seed\n" " __state = ((__state * 1103515245) + 12345) % 2147483648\n" " return __state / 2147483648\n" " }\n" "}\n" "\n" "class FakerData {\n" " static firstNamesMale {\n" " return [\n" " \"James\", \"John\", \"Robert\", \"Michael\", \"William\", \"David\", \"Richard\", \"Joseph\", \"Thomas\", \"Charles\",\n" " \"Christopher\", \"Daniel\", \"Matthew\", \"Anthony\", \"Mark\", \"Donald\", \"Steven\", \"Paul\", \"Andrew\", \"Joshua\",\n" " \"Kenneth\", \"Kevin\", \"Brian\", \"George\", \"Timothy\", \"Ronald\", \"Edward\", \"Jason\", \"Jeffrey\", \"Ryan\",\n" " \"Jacob\", \"Gary\", \"Nicholas\", \"Eric\", \"Jonathan\", \"Stephen\", \"Larry\", \"Justin\", \"Scott\", \"Brandon\",\n" " \"Benjamin\", \"Samuel\", \"Raymond\", \"Gregory\", \"Frank\", \"Alexander\", \"Patrick\", \"Jack\", \"Dennis\", \"Jerry\",\n" " \"Tyler\", \"Aaron\", \"Jose\", \"Adam\", \"Nathan\", \"Henry\", \"Douglas\", \"Zachary\", \"Peter\", \"Kyle\",\n" " \"Noah\", \"Ethan\", \"Jeremy\", \"Walter\", \"Christian\", \"Keith\", \"Roger\", \"Terry\", \"Austin\", \"Sean\",\n" " \"Gerald\", \"Carl\", \"Harold\", \"Dylan\", \"Arthur\", \"Lawrence\", \"Jordan\", \"Jesse\", \"Bryan\", \"Billy\",\n" " \"Bruce\", \"Gabriel\", \"Joe\", \"Logan\", \"Albert\", \"Willie\", \"Alan\", \"Vincent\", \"Eugene\", \"Russell\",\n" " \"Elijah\", \"Randy\", \"Philip\", \"Harry\", \"Howard\", \"Roy\", \"Louis\", \"Russell\", \"Bobby\", \"Johnny\"\n" " ]\n" " }\n" "\n" " static firstNamesFemale {\n" " return [\n" " \"Mary\", \"Patricia\", \"Jennifer\", \"Linda\", \"Barbara\", \"Elizabeth\", \"Susan\", \"Jessica\", \"Sarah\", \"Karen\",\n" " \"Lisa\", \"Nancy\", \"Betty\", \"Margaret\", \"Sandra\", \"Ashley\", \"Kimberly\", \"Emily\", \"Donna\", \"Michelle\",\n" " \"Dorothy\", \"Carol\", \"Amanda\", \"Melissa\", \"Deborah\", \"Stephanie\", \"Rebecca\", \"Sharon\", \"Laura\", \"Cynthia\",\n" " \"Kathleen\", \"Amy\", \"Angela\", \"Shirley\", \"Anna\", \"Brenda\", \"Pamela\", \"Emma\", \"Nicole\", \"Helen\",\n" " \"Samantha\", \"Katherine\", \"Christine\", \"Debra\", \"Rachel\", \"Carolyn\", \"Janet\", \"Catherine\", \"Maria\", \"Heather\",\n" " \"Diane\", \"Ruth\", \"Julie\", \"Olivia\", \"Joyce\", \"Virginia\", \"Victoria\", \"Kelly\", \"Lauren\", \"Christina\",\n" " \"Joan\", \"Evelyn\", \"Judith\", \"Megan\", \"Andrea\", \"Cheryl\", \"Hannah\", \"Jacqueline\", \"Martha\", \"Gloria\",\n" " \"Teresa\", \"Ann\", \"Sara\", \"Madison\", \"Frances\", \"Kathryn\", \"Janice\", \"Jean\", \"Abigail\", \"Alice\",\n" " \"Judy\", \"Sophia\", \"Grace\", \"Denise\", \"Amber\", \"Doris\", \"Marilyn\", \"Danielle\", \"Beverly\", \"Isabella\",\n" " \"Theresa\", \"Diana\", \"Natalie\", \"Brittany\", \"Charlotte\", \"Marie\", \"Kayla\", \"Alexis\", \"Lori\", \"Jane\"\n" " ]\n" " }\n" "\n" " static firstNames {\n" " return firstNamesMale + firstNamesFemale\n" " }\n" "\n" " static lastNames {\n" " return [\n" " \"Smith\", \"Johnson\", \"Williams\", \"Brown\", \"Jones\", \"Garcia\", \"Miller\", \"Davis\", \"Rodriguez\", \"Martinez\",\n" " \"Hernandez\", \"Lopez\", \"Gonzalez\", \"Wilson\", \"Anderson\", \"Thomas\", \"Taylor\", \"Moore\", \"Jackson\", \"Martin\",\n" " \"Lee\", \"Perez\", \"Thompson\", \"White\", \"Harris\", \"Sanchez\", \"Clark\", \"Ramirez\", \"Lewis\", \"Robinson\",\n" " \"Walker\", \"Young\", \"Allen\", \"King\", \"Wright\", \"Scott\", \"Torres\", \"Nguyen\", \"Hill\", \"Flores\",\n" " \"Green\", \"Adams\", \"Nelson\", \"Baker\", \"Hall\", \"Rivera\", \"Campbell\", \"Mitchell\", \"Carter\", \"Roberts\",\n" " \"Gomez\", \"Phillips\", \"Evans\", \"Turner\", \"Diaz\", \"Parker\", \"Cruz\", \"Edwards\", \"Collins\", \"Reyes\",\n" " \"Stewart\", \"Morris\", \"Morales\", \"Murphy\", \"Cook\", \"Rogers\", \"Gutierrez\", \"Ortiz\", \"Morgan\", \"Cooper\",\n" " \"Peterson\", \"Bailey\", \"Reed\", \"Kelly\", \"Howard\", \"Ramos\", \"Kim\", \"Cox\", \"Ward\", \"Richardson\",\n" " \"Watson\", \"Brooks\", \"Chavez\", \"Wood\", \"James\", \"Bennett\", \"Gray\", \"Mendoza\", \"Ruiz\", \"Hughes\",\n" " \"Price\", \"Alvarez\", \"Castillo\", \"Sanders\", \"Patel\", \"Myers\", \"Long\", \"Ross\", \"Foster\", \"Jimenez\",\n" " \"Powell\", \"Jenkins\", \"Perry\", \"Russell\", \"Sullivan\", \"Bell\", \"Coleman\", \"Butler\", \"Henderson\", \"Barnes\",\n" " \"Gonzales\", \"Fisher\", \"Vasquez\", \"Simmons\", \"Graham\", \"Patterson\", \"Jordan\", \"Reynolds\", \"Hamilton\", \"Graham\",\n" " \"Wallace\", \"Cole\", \"West\", \"Stone\", \"Holmes\", \"Meyer\", \"Boyd\", \"Mills\", \"Warren\", \"Fox\",\n" " \"Rose\", \"Rice\", \"Moreno\", \"Schmidt\", \"Patel\", \"Ferguson\", \"Nichols\", \"Herrera\", \"Medina\", \"Ryan\",\n" " \"Fernandez\", \"Weaver\", \"Daniels\", \"Stephens\", \"Knight\", \"Hudson\", \"Spencer\", \"Elliott\", \"Bishop\", \"Craig\",\n" " \"Hunter\", \"Hart\", \"Armstrong\", \"Carpenter\", \"Harvey\", \"Hawkins\", \"Harrison\", \"Fields\", \"Webb\", \"Tucker\",\n" " \"Mason\", \"Porter\", \"Burns\", \"Gibson\", \"Ellis\", \"Gordon\", \"Kennedy\", \"Willis\", \"Chapman\", \"Palmer\",\n" " \"Arnold\", \"Lane\", \"Dean\", \"Matthews\", \"Wagner\", \"Austin\", \"Murray\", \"Stanley\", \"Fowler\", \"Grant\",\n" " \"Kelley\", \"Black\", \"Lynch\", \"Barnes\", \"Dunn\", \"Shaw\", \"Olson\", \"Simpson\", \"George\", \"Marshall\",\n" " \"Watkins\", \"Owens\", \"Hunt\", \"Hicks\", \"Freeman\", \"Pierce\", \"Snyder\", \"Franklin\", \"Soto\", \"Newman\"\n" " ]\n" " }\n" "\n" " static emailDomains {\n" " return [\n" " \"gmail.com\", \"yahoo.com\", \"hotmail.com\", \"outlook.com\", \"icloud.com\",\n" " \"mail.com\", \"protonmail.com\", \"aol.com\", \"zoho.com\", \"yandex.com\",\n" " \"gmx.com\", \"fastmail.com\", \"tutanota.com\", \"inbox.com\", \"live.com\",\n" " \"example.com\", \"example.org\", \"example.net\", \"test.com\", \"demo.com\",\n" " \"company.com\", \"corp.com\", \"business.com\", \"enterprise.com\", \"work.com\",\n" " \"office.com\", \"professional.com\", \"service.com\", \"support.com\", \"info.com\"\n" " ]\n" " }\n" "\n" " static loremWords {\n" " return [\n" " \"lorem\", \"ipsum\", \"dolor\", \"sit\", \"amet\", \"consectetur\", \"adipiscing\", \"elit\", \"sed\", \"do\",\n" " \"eiusmod\", \"tempor\", \"incididunt\", \"ut\", \"labore\", \"et\", \"dolore\", \"magna\", \"aliqua\", \"enim\",\n" " \"ad\", \"minim\", \"veniam\", \"quis\", \"nostrud\", \"exercitation\", \"ullamco\", \"laboris\", \"nisi\", \"aliquip\",\n" " \"ex\", \"ea\", \"commodo\", \"consequat\", \"duis\", \"aute\", \"irure\", \"in\", \"reprehenderit\", \"voluptate\",\n" " \"velit\", \"esse\", \"cillum\", \"fugiat\", \"nulla\", \"pariatur\", \"excepteur\", \"sint\", \"occaecat\", \"cupidatat\",\n" " \"non\", \"proident\", \"sunt\", \"culpa\", \"qui\", \"officia\", \"deserunt\", \"mollit\", \"anim\", \"id\",\n" " \"est\", \"laborum\", \"at\", \"vero\", \"eos\", \"accusamus\", \"iusto\", \"odio\", \"dignissimos\", \"ducimus\",\n" " \"blanditiis\", \"praesentium\", \"voluptatum\", \"deleniti\", \"atque\", \"corrupti\", \"quos\", \"quas\", \"molestias\",\n" " \"excepturi\", \"occaecati\", \"cupiditate\", \"provident\", \"similique\", \"mollitia\", \"animi\", \"quasi\", \"architecto\",\n" " \"beatae\", \"vitae\", \"dicta\", \"explicabo\", \"nemo\", \"ipsam\", \"quia\", \"voluptas\", \"aspernatur\", \"aut\",\n" " \"odit\", \"fugit\", \"consequuntur\", \"magni\", \"dolores\", \"ratione\", \"sequi\", \"nesciunt\", \"neque\", \"porro\",\n" " \"quisquam\", \"dolorem\", \"adipisci\", \"numquam\", \"eius\", \"modi\", \"tempora\", \"magnam\", \"quaerat\", \"rem\",\n" " \"aperiam\", \"eaque\", \"ipsa\", \"quae\", \"ab\", \"illo\", \"inventore\", \"veritatis\", \"quasi\", \"perspiciatis\",\n" " \"unde\", \"omnis\", \"iste\", \"natus\", \"error\", \"accusantium\", \"doloremque\", \"laudantium\", \"totam\", \"recusandae\",\n" " \"saepe\", \"eveniet\", \"voluptatem\", \"alias\", \"autem\", \"minima\", \"eligendi\", \"optio\", \"cumque\", \"nihil\",\n" " \"impedit\", \"quo\", \"minus\", \"quod\", \"maxime\", \"placeat\", \"facere\", \"possimus\", \"assumenda\", \"repellendus\",\n" " \"temporibus\", \"debitis\", \"rerum\", \"hic\", \"tenetur\", \"sapiente\", \"delectus\", \"reiciendis\", \"perferendis\",\n" " \"doloribus\", \"asperiores\", \"repellat\", \"nam\", \"libero\", \"soluta\", \"nobis\", \"cum\", \"corporis\", \"suscipit\",\n" " \"officiis\", \"laboriosam\", \"harum\", \"necessitatibus\", \"praesentium\", \"voluptates\", \"repudiandae\", \"fuga\", \"sint\"\n" " ]\n" " }\n" "\n" " static cities {\n" " return [\n" " \"New York\", \"Los Angeles\", \"Chicago\", \"Houston\", \"Phoenix\", \"Philadelphia\", \"San Antonio\", \"San Diego\",\n" " \"Dallas\", \"San Jose\", \"Austin\", \"Jacksonville\", \"Fort Worth\", \"Columbus\", \"Charlotte\", \"San Francisco\",\n" " \"Indianapolis\", \"Seattle\", \"Denver\", \"Washington\", \"Boston\", \"El Paso\", \"Nashville\", \"Detroit\", \"Portland\",\n" " \"Memphis\", \"Oklahoma City\", \"Las Vegas\", \"Louisville\", \"Baltimore\", \"Milwaukee\", \"Albuquerque\", \"Tucson\",\n" " \"Fresno\", \"Sacramento\", \"Kansas City\", \"Mesa\", \"Atlanta\", \"Omaha\", \"Colorado Springs\", \"Raleigh\", \"Miami\",\n" " \"Long Beach\", \"Virginia Beach\", \"Oakland\", \"Minneapolis\", \"Tulsa\", \"Tampa\", \"Arlington\", \"New Orleans\",\n" " \"Wichita\", \"Cleveland\", \"Bakersfield\", \"Aurora\", \"Anaheim\", \"Honolulu\", \"Santa Ana\", \"Riverside\", \"Corpus Christi\",\n" " \"Lexington\", \"Henderson\", \"Stockton\", \"Saint Paul\", \"Cincinnati\", \"St. Louis\", \"Pittsburgh\", \"Greensboro\",\n" " \"Lincoln\", \"Anchorage\", \"Plano\", \"Orlando\", \"Irvine\", \"Newark\", \"Durham\", \"Chula Vista\", \"Toledo\", \"Fort Wayne\",\n" " \"St. Petersburg\", \"Laredo\", \"Jersey City\", \"Chandler\", \"Madison\", \"Lubbock\", \"Scottsdale\", \"Reno\", \"Buffalo\",\n" " \"Gilbert\", \"Glendale\", \"North Las Vegas\", \"Winston-Salem\", \"Chesapeake\", \"Norfolk\", \"Fremont\", \"Garland\",\n" " \"Irving\", \"Hialeah\", \"Richmond\", \"Boise\", \"Spokane\", \"Baton Rouge\", \"Tacoma\", \"San Bernardino\", \"Modesto\",\n" " \"Fontana\", \"Des Moines\", \"Moreno Valley\", \"Santa Clarita\", \"Fayetteville\", \"Birmingham\", \"Oxnard\", \"Rochester\",\n" " \"Port St. Lucie\", \"Grand Rapids\", \"Huntsville\", \"Salt Lake City\", \"Frisco\", \"Yonkers\", \"Amarillo\", \"Glendale\",\n" " \"Huntington Beach\", \"McKinney\", \"Montgomery\", \"Augusta\", \"Aurora\", \"Akron\", \"Little Rock\", \"Tempe\", \"Columbus\",\n" " \"Overland Park\", \"Grand Prairie\", \"Tallahassee\", \"Cape Coral\", \"Mobile\", \"Knoxville\", \"Shreveport\", \"Worcester\",\n" " \"Ontario\", \"Vancouver\", \"Sioux Falls\", \"Chattanooga\", \"Brownsville\", \"Fort Lauderdale\", \"Providence\", \"Newport News\",\n" " \"Rancho Cucamonga\", \"Santa Rosa\", \"Peoria\", \"Oceanside\", \"Elk Grove\", \"Salem\", \"Pembroke Pines\", \"Eugene\", \"Garden Grove\",\n" " \"Cary\", \"Fort Collins\", \"Corona\", \"Springfield\", \"Jackson\", \"Alexandria\", \"Hayward\", \"Lancaster\", \"Lakewood\",\n" " \"Clarksville\", \"Palmdale\", \"Salinas\", \"Springfield\", \"Hollywood\", \"Pasadena\", \"Sunnyvale\", \"Macon\", \"Kansas City\",\n" " \"Pomona\", \"Escondido\", \"Killeen\", \"Naperville\", \"Joliet\", \"Bellevue\", \"Rockford\", \"Savannah\", \"Paterson\", \"Torrance\",\n" " \"Bridgeport\", \"McAllen\", \"Mesquite\", \"Syracuse\", \"Midland\", \"Pasadena\", \"Murfreesboro\", \"Miramar\", \"Dayton\", \"Fullerton\"\n" " ]\n" " }\n" "\n" " static states {\n" " return [\n" " [\"Alabama\", \"AL\"], [\"Alaska\", \"AK\"], [\"Arizona\", \"AZ\"], [\"Arkansas\", \"AR\"], [\"California\", \"CA\"],\n" " [\"Colorado\", \"CO\"], [\"Connecticut\", \"CT\"], [\"Delaware\", \"DE\"], [\"Florida\", \"FL\"], [\"Georgia\", \"GA\"],\n" " [\"Hawaii\", \"HI\"], [\"Idaho\", \"ID\"], [\"Illinois\", \"IL\"], [\"Indiana\", \"IN\"], [\"Iowa\", \"IA\"],\n" " [\"Kansas\", \"KS\"], [\"Kentucky\", \"KY\"], [\"Louisiana\", \"LA\"], [\"Maine\", \"ME\"], [\"Maryland\", \"MD\"],\n" " [\"Massachusetts\", \"MA\"], [\"Michigan\", \"MI\"], [\"Minnesota\", \"MN\"], [\"Mississippi\", \"MS\"], [\"Missouri\", \"MO\"],\n" " [\"Montana\", \"MT\"], [\"Nebraska\", \"NE\"], [\"Nevada\", \"NV\"], [\"New Hampshire\", \"NH\"], [\"New Jersey\", \"NJ\"],\n" " [\"New Mexico\", \"NM\"], [\"New York\", \"NY\"], [\"North Carolina\", \"NC\"], [\"North Dakota\", \"ND\"], [\"Ohio\", \"OH\"],\n" " [\"Oklahoma\", \"OK\"], [\"Oregon\", \"OR\"], [\"Pennsylvania\", \"PA\"], [\"Rhode Island\", \"RI\"], [\"South Carolina\", \"SC\"],\n" " [\"South Dakota\", \"SD\"], [\"Tennessee\", \"TN\"], [\"Texas\", \"TX\"], [\"Utah\", \"UT\"], [\"Vermont\", \"VT\"],\n" " [\"Virginia\", \"VA\"], [\"Washington\", \"WA\"], [\"West Virginia\", \"WV\"], [\"Wisconsin\", \"WI\"], [\"Wyoming\", \"WY\"]\n" " ]\n" " }\n" "\n" " static countries {\n" " return [\n" " [\"United States\", \"US\"], [\"United Kingdom\", \"GB\"], [\"Canada\", \"CA\"], [\"Australia\", \"AU\"], [\"Germany\", \"DE\"],\n" " [\"France\", \"FR\"], [\"Italy\", \"IT\"], [\"Spain\", \"ES\"], [\"Netherlands\", \"NL\"], [\"Belgium\", \"BE\"],\n" " [\"Switzerland\", \"CH\"], [\"Austria\", \"AT\"], [\"Sweden\", \"SE\"], [\"Norway\", \"NO\"], [\"Denmark\", \"DK\"],\n" " [\"Finland\", \"FI\"], [\"Ireland\", \"IE\"], [\"Portugal\", \"PT\"], [\"Greece\", \"GR\"], [\"Poland\", \"PL\"],\n" " [\"Czech Republic\", \"CZ\"], [\"Hungary\", \"HU\"], [\"Romania\", \"RO\"], [\"Bulgaria\", \"BG\"], [\"Croatia\", \"HR\"],\n" " [\"Slovakia\", \"SK\"], [\"Slovenia\", \"SI\"], [\"Estonia\", \"EE\"], [\"Latvia\", \"LV\"], [\"Lithuania\", \"LT\"],\n" " [\"Japan\", \"JP\"], [\"China\", \"CN\"], [\"South Korea\", \"KR\"], [\"India\", \"IN\"], [\"Singapore\", \"SG\"],\n" " [\"Malaysia\", \"MY\"], [\"Thailand\", \"TH\"], [\"Indonesia\", \"ID\"], [\"Philippines\", \"PH\"], [\"Vietnam\", \"VN\"],\n" " [\"Brazil\", \"BR\"], [\"Mexico\", \"MX\"], [\"Argentina\", \"AR\"], [\"Chile\", \"CL\"], [\"Colombia\", \"CO\"],\n" " [\"Peru\", \"PE\"], [\"Venezuela\", \"VE\"], [\"Ecuador\", \"EC\"], [\"Uruguay\", \"UY\"], [\"Paraguay\", \"PY\"],\n" " [\"South Africa\", \"ZA\"], [\"Egypt\", \"EG\"], [\"Nigeria\", \"NG\"], [\"Kenya\", \"KE\"], [\"Morocco\", \"MA\"],\n" " [\"Israel\", \"IL\"], [\"Turkey\", \"TR\"], [\"Saudi Arabia\", \"SA\"], [\"United Arab Emirates\", \"AE\"], [\"Russia\", \"RU\"],\n" " [\"Ukraine\", \"UA\"], [\"New Zealand\", \"NZ\"], [\"Iceland\", \"IS\"], [\"Luxembourg\", \"LU\"], [\"Malta\", \"MT\"]\n" " ]\n" " }\n" "\n" " static streetSuffixes {\n" " return [\n" " \"Street\", \"Avenue\", \"Boulevard\", \"Drive\", \"Lane\", \"Road\", \"Way\", \"Place\", \"Court\", \"Circle\",\n" " \"Trail\", \"Parkway\", \"Terrace\", \"Plaza\", \"Commons\", \"Alley\", \"Path\", \"Run\", \"View\", \"Ridge\"\n" " ]\n" " }\n" "\n" " static streetNames {\n" " return [\n" " \"Main\", \"Oak\", \"Maple\", \"Cedar\", \"Pine\", \"Elm\", \"Washington\", \"Lake\", \"Hill\", \"Park\",\n" " \"River\", \"Spring\", \"Valley\", \"Forest\", \"Sunset\", \"Highland\", \"Meadow\", \"Church\", \"Mill\", \"Union\",\n" " \"Market\", \"Water\", \"Bridge\", \"School\", \"North\", \"South\", \"East\", \"West\", \"Center\", \"High\",\n" " \"Front\", \"Broad\", \"College\", \"Prospect\", \"Lincoln\", \"Franklin\", \"Jefferson\", \"Adams\", \"Madison\", \"Jackson\",\n" " \"Monroe\", \"Wilson\", \"Harrison\", \"Cleveland\", \"Grant\", \"Lee\", \"King\", \"Queen\", \"Duke\", \"Prince\",\n" " \"Cherry\", \"Walnut\", \"Chestnut\", \"Birch\", \"Willow\", \"Poplar\", \"Spruce\", \"Hickory\", \"Ash\", \"Beech\",\n" " \"Summit\", \"Ridge\", \"Crest\", \"Mount\", \"Valley\", \"Canyon\", \"Creek\", \"Brook\", \"Falls\", \"Grove\",\n" " \"Orchard\", \"Garden\", \"Field\", \"Woods\", \"Acres\", \"Estate\", \"Manor\", \"Villa\", \"Terrace\", \"Glen\",\n" " \"Bay\", \"Harbor\", \"Shore\", \"Beach\", \"Ocean\", \"Sea\", \"Coral\", \"Palm\", \"Sunset\", \"Sunrise\",\n" " \"Colonial\", \"Liberty\", \"Independence\", \"Victory\", \"Heritage\", \"Pioneer\", \"Frontier\", \"Commerce\", \"Industrial\", \"Technology\"\n" " ]\n" " }\n" "\n" " static companyPrefixes {\n" " return [\n" " \"Global\", \"United\", \"International\", \"National\", \"American\", \"Pacific\", \"Atlantic\", \"Northern\", \"Southern\",\n" " \"Western\", \"Eastern\", \"Central\", \"Premier\", \"Prime\", \"Elite\", \"Apex\", \"Summit\", \"Peak\", \"Pinnacle\",\n" " \"First\", \"Advanced\", \"Modern\", \"Future\", \"Next\", \"New\", \"Innovative\", \"Dynamic\", \"Strategic\", \"Smart\",\n" " \"Digital\", \"Tech\", \"Cyber\", \"Data\", \"Cloud\", \"Net\", \"Web\", \"Quantum\", \"Fusion\", \"Synergy\"\n" " ]\n" " }\n" "\n" " static companySuffixes {\n" " return [\n" " \"Inc.\", \"LLC\", \"Corp.\", \"Ltd.\", \"Co.\", \"Group\", \"Holdings\", \"Industries\", \"Enterprises\", \"Solutions\",\n" " \"Services\", \"Systems\", \"Technologies\", \"Partners\", \"Associates\", \"Consulting\", \"International\", \"Global\", \"Worldwide\"\n" " ]\n" " }\n" "\n" " static companyNouns {\n" " return [\n" " \"Tech\", \"Systems\", \"Solutions\", \"Data\", \"Software\", \"Digital\", \"Media\", \"Networks\", \"Communications\", \"Industries\",\n" " \"Dynamics\", \"Logic\", \"Works\", \"Labs\", \"Innovations\", \"Ventures\", \"Capital\", \"Resources\", \"Management\", \"Consulting\"\n" " ]\n" " }\n" "\n" " static jobTitles {\n" " return [\n" " \"Software Engineer\", \"Product Manager\", \"Data Scientist\", \"Marketing Manager\", \"Sales Representative\",\n" " \"Financial Analyst\", \"Human Resources Manager\", \"Operations Manager\", \"Project Manager\", \"Business Analyst\",\n" " \"Accountant\", \"Graphic Designer\", \"Content Writer\", \"Customer Service Representative\", \"Administrative Assistant\",\n" " \"Executive Assistant\", \"Office Manager\", \"Quality Assurance Engineer\", \"DevOps Engineer\", \"System Administrator\",\n" " \"Network Engineer\", \"Database Administrator\", \"Security Analyst\", \"UX Designer\", \"UI Developer\",\n" " \"Full Stack Developer\", \"Frontend Developer\", \"Backend Developer\", \"Mobile Developer\", \"Cloud Architect\",\n" " \"Solutions Architect\", \"Technical Lead\", \"Engineering Manager\", \"Director of Engineering\", \"VP of Engineering\",\n" " \"Chief Technology Officer\", \"Chief Executive Officer\", \"Chief Financial Officer\", \"Chief Operating Officer\", \"Chief Marketing Officer\"\n" " ]\n" " }\n" "\n" " static jobDescriptors {\n" " return [\"Lead\", \"Senior\", \"Junior\", \"Associate\", \"Principal\", \"Staff\", \"Chief\", \"Head\", \"Director\", \"Manager\"]\n" " }\n" "\n" " static productCategories {\n" " return [\n" " \"Electronics\", \"Clothing\", \"Home & Garden\", \"Sports & Outdoors\", \"Books\", \"Toys & Games\",\n" " \"Health & Beauty\", \"Automotive\", \"Food & Grocery\", \"Office Supplies\", \"Pet Supplies\", \"Jewelry\",\n" " \"Music\", \"Movies\", \"Software\", \"Tools & Hardware\", \"Baby Products\", \"Furniture\", \"Art & Crafts\", \"Industrial\"\n" " ]\n" " }\n" "\n" " static productAdjectives {\n" " return [\n" " \"Incredible\", \"Fantastic\", \"Amazing\", \"Gorgeous\", \"Practical\", \"Sleek\", \"Elegant\", \"Rustic\", \"Modern\",\n" " \"Handmade\", \"Refined\", \"Premium\", \"Ergonomic\", \"Intelligent\", \"Smart\", \"Licensed\", \"Recycled\", \"Unbranded\", \"Generic\", \"Tasty\"\n" " ]\n" " }\n" "\n" " static productMaterials {\n" " return [\n" " \"Steel\", \"Wooden\", \"Concrete\", \"Plastic\", \"Cotton\", \"Granite\", \"Rubber\", \"Metal\", \"Soft\", \"Fresh\",\n" " \"Frozen\", \"Bronze\", \"Silver\", \"Gold\", \"Copper\", \"Marble\", \"Leather\", \"Silk\", \"Wool\", \"Linen\"\n" " ]\n" " }\n" "\n" " static productNouns {\n" " return [\n" " \"Chair\", \"Car\", \"Computer\", \"Keyboard\", \"Mouse\", \"Bike\", \"Ball\", \"Gloves\", \"Pants\", \"Shirt\",\n" " \"Table\", \"Shoes\", \"Hat\", \"Towels\", \"Soap\", \"Tuna\", \"Chicken\", \"Fish\", \"Cheese\", \"Bacon\",\n" " \"Pizza\", \"Salad\", \"Sausages\", \"Chips\", \"Watch\", \"Phone\", \"Tablet\", \"Camera\", \"Lamp\", \"Clock\"\n" " ]\n" " }\n" "\n" " static creditCardTypes {\n" " return [\n" " [\"Visa\", \"4\"],\n" " [\"Mastercard\", \"5\"],\n" " [\"American Express\", \"3\"],\n" " [\"Discover\", \"6\"]\n" " ]\n" " }\n" "\n" " static currencies {\n" " return [\n" " [\"USD\", \"US Dollar\", \"$\"], [\"EUR\", \"Euro\", \"€\"], [\"GBP\", \"British Pound\", \"£\"],\n" " [\"JPY\", \"Japanese Yen\", \"¥\"], [\"AUD\", \"Australian Dollar\", \"A$\"], [\"CAD\", \"Canadian Dollar\", \"C$\"],\n" " [\"CHF\", \"Swiss Franc\", \"CHF\"], [\"CNY\", \"Chinese Yuan\", \"¥\"], [\"INR\", \"Indian Rupee\", \"₹\"],\n" " [\"MXN\", \"Mexican Peso\", \"$\"], [\"BRL\", \"Brazilian Real\", \"R$\"], [\"RUB\", \"Russian Ruble\", \"₽\"]\n" " ]\n" " }\n" "\n" " static colorNames {\n" " return [\n" " \"Red\", \"Blue\", \"Green\", \"Yellow\", \"Orange\", \"Purple\", \"Pink\", \"Brown\", \"Black\", \"White\",\n" " \"Gray\", \"Cyan\", \"Magenta\", \"Lime\", \"Maroon\", \"Navy\", \"Olive\", \"Teal\", \"Aqua\", \"Silver\",\n" " \"Crimson\", \"Coral\", \"Salmon\", \"Tomato\", \"Gold\", \"Khaki\", \"Indigo\", \"Violet\", \"Plum\", \"Orchid\",\n" " \"Tan\", \"Beige\", \"Ivory\", \"Lavender\", \"Mint\", \"Turquoise\", \"Azure\", \"Slate\", \"Charcoal\", \"Pearl\"\n" " ]\n" " }\n" "\n" " static months {\n" " return [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\n" " }\n" "\n" " static daysOfWeek {\n" " return [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n" " }\n" "\n" " static topLevelDomains {\n" " return [\"com\", \"org\", \"net\", \"edu\", \"gov\", \"io\", \"co\", \"biz\", \"info\", \"me\", \"us\", \"uk\", \"de\", \"fr\", \"jp\"]\n" " }\n" "\n" " static httpMethods {\n" " return [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"HEAD\", \"OPTIONS\"]\n" " }\n" "\n" " static protocols {\n" " return [\"http\", \"https\"]\n" " }\n" "\n" " static userAgents {\n" " return [\n" " \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36\",\n" " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36\",\n" " \"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0\",\n" " \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15\",\n" " \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36\",\n" " \"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1\"\n" " ]\n" " }\n" "}\n" "\n" "class Faker {\n" " static seed(value) { FakerRandom.seed(value) }\n" " static reset() { FakerRandom.reset() }\n" "\n" " static randomElement(list) {\n" " if (list.count == 0) return null\n" " return list[FakerRandom.next(0, list.count - 1)]\n" " }\n" "\n" " static randomElements(list, count) {\n" " var result = []\n" " for (i in 0...count) {\n" " result.add(randomElement(list))\n" " }\n" " return result\n" " }\n" "\n" " static randomInt(min, max) { FakerRandom.next(min, max) }\n" "\n" " static randomFloat(min, max) {\n" " var f = FakerRandom.nextFloat()\n" " return min + (f * (max - min))\n" " }\n" "\n" " static randomFloat(min, max, precision) {\n" " var f = randomFloat(min, max)\n" " var mult = 1\n" " for (i in 0...precision) mult = mult * 10\n" " var result = (f * mult).round / mult\n" " if (result > max) result = max\n" " return result\n" " }\n" "\n" " static boolean() { FakerRandom.next(0, 1) == 1 }\n" " static bool() { boolean() }\n" "\n" " static numerify(format) {\n" " var result = \"\"\n" " for (char in format) {\n" " if (char == \"#\") {\n" " result = result + FakerRandom.next(0, 9).toString\n" " } else {\n" " result = result + char\n" " }\n" " }\n" " return result\n" " }\n" "\n" " static letterify(format) {\n" " var letters = \"abcdefghijklmnopqrstuvwxyz\"\n" " var result = \"\"\n" " for (char in format) {\n" " if (char == \"?\") {\n" " result = result + letters[FakerRandom.next(0, 25)]\n" " } else {\n" " result = result + char\n" " }\n" " }\n" " return result\n" " }\n" "\n" " static bothify(format) { letterify(numerify(format)) }\n" "\n" " static firstName() { randomElement(FakerData.firstNames) }\n" " static firstNameMale() { randomElement(FakerData.firstNamesMale) }\n" " static firstNameFemale() { randomElement(FakerData.firstNamesFemale) }\n" " static lastName() { randomElement(FakerData.lastNames) }\n" " static name() { \"%(firstName()) %(lastName())\" }\n" " static nameMale() { \"%(firstNameMale()) %(lastName())\" }\n" " static nameFemale() { \"%(firstNameFemale()) %(lastName())\" }\n" "\n" " static prefix() { randomElement([\"Mr.\", \"Mrs.\", \"Ms.\", \"Miss\", \"Dr.\"]) }\n" " static namePrefix() { prefix() }\n" " static suffix() { randomElement([\"Jr.\", \"Sr.\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"MD\", \"PhD\"]) }\n" " static nameSuffix() { suffix() }\n" "\n" " static gender() { randomElement([\"Male\", \"Female\"]) }\n" " static sex() { gender() }\n" "\n" " static username() {\n" " var first = Str.toLower(firstName())\n" " var last = Str.toLower(lastName())\n" " var patterns = [\n" " \"%(first)%(last)\",\n" " \"%(first).%(last)\",\n" " \"%(first)_%(last)\",\n" " \"%(first)%(FakerRandom.next(1, 99))\",\n" " \"%(first).%(last)%(FakerRandom.next(1, 99))\",\n" " \"%(first)_%(FakerRandom.next(100, 999))\"\n" " ]\n" " return randomElement(patterns)\n" " }\n" "\n" " static email() {\n" " var user = username()\n" " var domain = randomElement(FakerData.emailDomains)\n" " return \"%(user)@%(domain)\"\n" " }\n" "\n" " static exampleEmail() {\n" " var user = username()\n" " var domain = randomElement([\"example.com\", \"example.org\", \"example.net\"])\n" " return \"%(user)@%(domain)\"\n" " }\n" "\n" " static city() { randomElement(FakerData.cities) }\n" "\n" " static state() {\n" " var s = randomElement(FakerData.states)\n" " return s[0]\n" " }\n" "\n" " static stateAbbr() {\n" " var s = randomElement(FakerData.states)\n" " return s[1]\n" " }\n" "\n" " static stateFull() { state() }\n" " static stateName() { state() }\n" "\n" " static country() {\n" " var c = randomElement(FakerData.countries)\n" " return c[0]\n" " }\n" "\n" " static countryCode() {\n" " var c = randomElement(FakerData.countries)\n" " return c[1]\n" " }\n" "\n" " static countryName() { country() }\n" "\n" " static zipCode() { numerify(\"#####\") }\n" " static postcode() { zipCode() }\n" "\n" " static buildingNumber() { FakerRandom.next(1, 9999).toString }\n" "\n" " static streetName() {\n" " var name = randomElement(FakerData.streetNames)\n" " var suffix = randomElement(FakerData.streetSuffixes)\n" " return \"%(name) %(suffix)\"\n" " }\n" "\n" " static streetAddress() { \"%(buildingNumber()) %(streetName())\" }\n" "\n" " static address() {\n" " return \"%(streetAddress()), %(city()), %(stateAbbr()) %(zipCode())\"\n" " }\n" "\n" " static latitude() { randomFloat(-90, 90, 6) }\n" " static longitude() { randomFloat(-180, 180, 6) }\n" "\n" " static latitude(min, max) { randomFloat(min, max, 6) }\n" " static longitude(min, max) { randomFloat(min, max, 6) }\n" "\n" " static ipv4() {\n" " var a = FakerRandom.next(1, 255)\n" " var b = FakerRandom.next(0, 255)\n" " var c = FakerRandom.next(0, 255)\n" " var d = FakerRandom.next(1, 254)\n" " return \"%(a).%(b).%(c).%(d)\"\n" " }\n" "\n" " static ipv6() {\n" " var parts = []\n" " for (i in 0...8) {\n" " var hex = \"\"\n" " for (j in 0...4) {\n" " var digit = FakerRandom.next(0, 15)\n" " hex = hex + \"0123456789abcdef\"[digit]\n" " }\n" " parts.add(hex)\n" " }\n" " return parts.join(\":\")\n" " }\n" "\n" " static macAddress() {\n" " var parts = []\n" " for (i in 0...6) {\n" " var hex = \"\"\n" " for (j in 0...2) {\n" " var digit = FakerRandom.next(0, 15)\n" " hex = hex + \"0123456789abcdef\"[digit]\n" " }\n" " parts.add(hex)\n" " }\n" " return parts.join(\":\")\n" " }\n" "\n" " static port() { FakerRandom.next(1, 65535) }\n" "\n" " static tld() { randomElement(FakerData.topLevelDomains) }\n" " static topLevelDomain() { tld() }\n" "\n" " static domainWord() {\n" " var words = [Str.toLower(firstName()), Str.toLower(lastName()), Str.toLower(randomElement(FakerData.companyNouns))]\n" " return randomElement(words)\n" " }\n" "\n" " static domainName() { \"%(domainWord()).%(tld())\" }\n" "\n" " static protocol() { randomElement(FakerData.protocols) }\n" "\n" " static url() { \"%(protocol())://%(domainName())\" }\n" "\n" " static password() { password(12) }\n" "\n" " static password(length) {\n" " var chars = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#^&*-_+=\"\n" " var result = \"\"\n" " for (i in 0...length) {\n" " result = result + chars[FakerRandom.next(0, chars.count - 1)]\n" " }\n" " return result\n" " }\n" "\n" " static httpMethod() { randomElement(FakerData.httpMethods) }\n" " static httpStatusCode() { randomElement([200, 201, 204, 301, 302, 400, 401, 403, 404, 500, 502, 503]) }\n" " static userAgent() { randomElement(FakerData.userAgents) }\n" " static hostname() { \"%(domainWord())-%(FakerRandom.next(1, 99)).%(domainName())\" }\n" "\n" " static uuid() { Uuid.v4() }\n" "\n" " static md5() { Hash.toHex(Hash.md5(password(32))) }\n" " static sha1() { Hash.toHex(Hash.sha1(password(32))) }\n" " static sha256() { Hash.toHex(Hash.sha256(password(32))) }\n" "\n" " static hexColor() {\n" " var hex = \"\"\n" " for (i in 0...6) {\n" " var digit = FakerRandom.next(0, 15)\n" " hex = hex + \"0123456789abcdef\"[digit]\n" " }\n" " return \"#\" + hex\n" " }\n" "\n" " static rgbColor() {\n" " var r = FakerRandom.next(0, 255)\n" " var g = FakerRandom.next(0, 255)\n" " var b = FakerRandom.next(0, 255)\n" " return \"rgb(%(r), %(g), %(b))\"\n" " }\n" "\n" " static rgb() { rgbColor() }\n" "\n" " static rgbaCssColor() {\n" " var r = FakerRandom.next(0, 255)\n" " var g = FakerRandom.next(0, 255)\n" " var b = FakerRandom.next(0, 255)\n" " var a = randomFloat(0, 1, 2)\n" " return \"rgba(%(r), %(g), %(b), %(a))\"\n" " }\n" "\n" " static colorName() { randomElement(FakerData.colorNames) }\n" "\n" " static date() {\n" " var now = DateTime.now()\n" " var start = now - Duration.fromDays(365 * 10)\n" " var end = now\n" " return dateBetween(start, end)\n" " }\n" "\n" " static dateTime() {\n" " var now = DateTime.now()\n" " var start = now - Duration.fromDays(365 * 10)\n" " var range = 365 * 10 * 24 * 60 * 60\n" " var offset = FakerRandom.next(0, range)\n" " var dt = start + Duration.fromSeconds(offset)\n" " return dt.toIso8601\n" " }\n" "\n" " static pastDate() { pastDate(1) }\n" "\n" " static pastDate(years) {\n" " var now = DateTime.now()\n" " var start = now - Duration.fromDays(365 * years)\n" " return dateBetween(start, now)\n" " }\n" "\n" " static futureDate() { futureDate(1) }\n" "\n" " static futureDate(years) {\n" " var now = DateTime.now()\n" " var end = now + Duration.fromDays(365 * years)\n" " return dateBetween(now, end)\n" " }\n" "\n" " static dateBetween(start, end) {\n" " var startTs = start.timestamp\n" " var endTs = end.timestamp\n" " if (endTs <= startTs) return start.format(\"\\%Y-\\%m-\\%d\")\n" " var range = endTs - startTs\n" " var offset = FakerRandom.next(0, range.floor)\n" " var dt = DateTime.fromTimestamp(startTs + offset)\n" " return dt.format(\"\\%Y-\\%m-\\%d\")\n" " }\n" "\n" " static dateOfBirth() { dateOfBirth(18, 80) }\n" "\n" " static dateOfBirth(minAge, maxAge) {\n" " var now = DateTime.now()\n" " var end = now - Duration.fromDays(365 * minAge)\n" " var start = now - Duration.fromDays(365 * maxAge)\n" " return dateBetween(start, end)\n" " }\n" "\n" " static year() { FakerRandom.next(1950, 2025) }\n" " static month() { FakerRandom.next(1, 12) }\n" " static monthName() { FakerData.months[FakerRandom.next(0, 11)] }\n" " static dayOfWeek() { randomElement(FakerData.daysOfWeek) }\n" " static dayOfMonth() { FakerRandom.next(1, 28) }\n" " static hour() { FakerRandom.next(0, 23) }\n" " static minute() { FakerRandom.next(0, 59) }\n" " static second() { FakerRandom.next(0, 59) }\n" " static amPm() { randomElement([\"AM\", \"PM\"]) }\n" "\n" " static time() {\n" " var h = hour()\n" " var m = minute()\n" " var s = second()\n" " return \"%(h < 10 ? \"0\" : \"\")%(h):%(m < 10 ? \"0\" : \"\")%(m):%(s < 10 ? \"0\" : \"\")%(s)\"\n" " }\n" "\n" " static word() { randomElement(FakerData.loremWords) }\n" "\n" " static words(count) {\n" " var result = []\n" " for (i in 0...count) {\n" " result.add(word())\n" " }\n" " return result\n" " }\n" "\n" " static sentence() { sentence(FakerRandom.next(5, 12)) }\n" "\n" " static sentence(wordCount) {\n" " var w = words(wordCount)\n" " var first = w[0]\n" " w[0] = first[0].bytes[0] >= 97 && first[0].bytes[0] <= 122 ? String.fromCodePoint(first[0].bytes[0] - 32) + first[1..-1] : first\n" " return w.join(\" \") + \".\"\n" " }\n" "\n" " static sentences(count) {\n" " var result = []\n" " for (i in 0...count) {\n" " result.add(sentence())\n" " }\n" " return result.join(\" \")\n" " }\n" "\n" " static paragraph() { paragraph(FakerRandom.next(3, 6)) }\n" "\n" " static paragraph(sentenceCount) { sentences(sentenceCount) }\n" "\n" " static paragraphs(count) {\n" " var result = []\n" " for (i in 0...count) {\n" " result.add(paragraph())\n" " }\n" " return result.join(\"\\n\\n\")\n" " }\n" "\n" " static text() { text(200) }\n" "\n" " static text(maxChars) {\n" " var result = \"\"\n" " while (result.count < maxChars) {\n" " result = result + sentence() + \" \"\n" " }\n" " return result[0...maxChars]\n" " }\n" "\n" " static slug() { slug(3) }\n" "\n" " static slug(wordCount) {\n" " var w = words(wordCount)\n" " var lower = []\n" " for (word in w) {\n" " lower.add(Str.toLower(word))\n" " }\n" " return lower.join(\"-\")\n" " }\n" "\n" " static company() {\n" " var patterns = [\n" " \"%(lastName()) %(randomElement(FakerData.companySuffixes))\",\n" " \"%(lastName())-%(lastName())\",\n" " \"%(randomElement(FakerData.companyPrefixes)) %(randomElement(FakerData.companyNouns))\",\n" " \"%(lastName()) %(randomElement(FakerData.companyNouns))\"\n" " ]\n" " return randomElement(patterns)\n" " }\n" "\n" " static companyName() { company() }\n" " static companySuffix() { randomElement(FakerData.companySuffixes) }\n" "\n" " static job() { randomElement(FakerData.jobTitles) }\n" " static jobTitle() { job() }\n" " static jobDescriptor() { randomElement(FakerData.jobDescriptors) }\n" "\n" " static product() {\n" " var adj = randomElement(FakerData.productAdjectives)\n" " var mat = randomElement(FakerData.productMaterials)\n" " var noun = randomElement(FakerData.productNouns)\n" " return \"%(adj) %(mat) %(noun)\"\n" " }\n" "\n" " static productName() { product() }\n" " static productCategory() { randomElement(FakerData.productCategories) }\n" "\n" " static price() { price(1, 1000) }\n" " static price(min, max) { randomFloat(min, max, 2) }\n" "\n" " static currency() {\n" " var c = randomElement(FakerData.currencies)\n" " return c[0]\n" " }\n" "\n" " static currencyName() {\n" " var c = randomElement(FakerData.currencies)\n" " return c[1]\n" " }\n" "\n" " static currencySymbol() {\n" " var c = randomElement(FakerData.currencies)\n" " return c[2]\n" " }\n" "\n" " static creditCardType() {\n" " var c = randomElement(FakerData.creditCardTypes)\n" " return c[0]\n" " }\n" "\n" " static creditCardNumber() {\n" " var type = randomElement(FakerData.creditCardTypes)\n" " var prefix = type[1]\n" " return prefix + numerify(\"###-####-####-###\")\n" " }\n" "\n" " static creditCardCVV() { numerify(\"###\") }\n" "\n" " static creditCardExpiryDate() {\n" " var m = FakerRandom.next(1, 12)\n" " var y = FakerRandom.next(25, 30)\n" " return \"%(m < 10 ? \"0\" : \"\")%(m)/%(y)\"\n" " }\n" "\n" " static phoneNumber() { numerify(\"(###) ###-####\") }\n" " static phone() { phoneNumber() }\n" "\n" " static iban() {\n" " var country = randomElement([\"DE\", \"FR\", \"GB\", \"ES\", \"IT\", \"NL\"])\n" " var check = numerify(\"##\")\n" " var bban = numerify(\"####################\")\n" " return country + check + bban\n" " }\n" "\n" " static accountNumber() { accountNumber(10) }\n" " static accountNumber(length) {\n" " var result = \"\"\n" " for (i in 0...length) {\n" " result = result + FakerRandom.next(0, 9).toString\n" " }\n" " return result\n" " }\n" "\n" " static routingNumber() { numerify(\"#########\") }\n" "\n" " static fileName() {\n" " var extensions = [\"txt\", \"pdf\", \"doc\", \"xls\", \"jpg\", \"png\", \"gif\", \"mp3\", \"mp4\", \"zip\"]\n" " var name = Str.toLower(word())\n" " var ext = randomElement(extensions)\n" " return \"%(name).%(ext)\"\n" " }\n" "\n" " static fileExtension() { randomElement([\"txt\", \"pdf\", \"doc\", \"xls\", \"jpg\", \"png\", \"gif\", \"mp3\", \"mp4\", \"zip\"]) }\n" "\n" " static mimeType() {\n" " return randomElement([\n" " \"application/json\", \"application/xml\", \"application/pdf\", \"application/zip\",\n" " \"text/html\", \"text/plain\", \"text/css\", \"text/javascript\",\n" " \"image/jpeg\", \"image/png\", \"image/gif\", \"image/svg+xml\",\n" " \"audio/mpeg\", \"video/mp4\"\n" " ])\n" " }\n" "\n" " static semver() { \"%(FakerRandom.next(0, 9)).%(FakerRandom.next(0, 20)).%(FakerRandom.next(0, 50))\" }\n" "\n" " static digit() { FakerRandom.next(0, 9) }\n" " static randomDigit() { digit() }\n" " static digits(count) {\n" " var result = []\n" " for (i in 0...count) {\n" " result.add(digit())\n" " }\n" " return result\n" " }\n" "\n" " static letter() { \"abcdefghijklmnopqrstuvwxyz\"[FakerRandom.next(0, 25)] }\n" " static letters(count) {\n" " var result = \"\"\n" " for (i in 0...count) {\n" " result = result + letter()\n" " }\n" " return result\n" " }\n" "\n" " static shuffle(list) {\n" " var result = list.toList\n" " for (i in (result.count - 1)..1) {\n" " var j = FakerRandom.next(0, i)\n" " var temp = result[i]\n" " result[i] = result[j]\n" " result[j] = temp\n" " }\n" " return result\n" " }\n" "\n" " static profile() {\n" " return {\n" " \"username\": username(),\n" " \"name\": name(),\n" " \"email\": email(),\n" " \"address\": address(),\n" " \"phone\": phoneNumber(),\n" " \"job\": jobTitle(),\n" " \"company\": company(),\n" " \"birthdate\": dateOfBirth()\n" " }\n" " }\n" "\n" " static simpleProfile() {\n" " return {\n" " \"username\": username(),\n" " \"name\": name(),\n" " \"email\": email(),\n" " \"address\": address()\n" " }\n" " }\n" "\n" " static locale() { \"en_US\" }\n" "}\n";