├── README.md ├── api ├── flattenedAttributes_15.bin ├── flattenedColors_15.bin ├── flattenedFlowers_22.bin └── generator.js ├── helper ├── flattenAttributes.js ├── flattenColors.js └── flattenFlowers.js ├── package.json ├── raw ├── attributes.csv ├── colors.csv ├── colors_complete.csv └── flowers.json └── test ├── node_modules ├── .package-lock.json └── username-generator-api │ ├── api │ ├── flattenedAttributes_15.bin │ ├── flattenedColors_15.bin │ ├── flattenedFlowers_22.bin │ └── generator.js │ └── package.json ├── package-lock.json ├── package.json └── test.js /README.md: -------------------------------------------------------------------------------- 1 | # Beautiful Username Generator 2 | 3 | [![npm version](https://badge.fury.io/js/beautiful-username-generator.svg)](https://badge.fury.io/js/beautiful-username-generator) 4 | 5 | ## Overview 6 | 7 | `beautiful-username-generator` is an elegant and lightweight Node.js library that generates random, visually pleasing usernames. This package can be utilized in any project requiring unique, catchy, and aesthetic usernames, including games, social media platforms, or online communities. 8 | 9 | ### Features 10 | 11 | - **Random Beautiful Usernames**: Generates unique combinations of attributes, colors, and flowers to form aesthetic usernames. 12 | - **Highly Configurable**: Supports options like maximum username length. 13 | - **Efficient and Lightweight**: Optimized for performance, utilizing binary data files for randomized selection. 14 | - **18 Million+ Combinations**: The generator can create **18,311,904** unique username combinations from a pool of **208 attributes**, **219 colors**, and **402 flowers**. 15 | 16 | --- 17 | 18 | ## Installation 19 | 20 | To install `beautiful-username-generator` using npm, run: 21 | 22 | ```bash 23 | npm install beautiful-username-generator 24 | ``` 25 | 26 | You can also clone the repository from GitHub: 27 | 28 | ```bash 29 | git clone https://github.com/ChristianGreinke/beautiful-username-generator.git 30 | ``` 31 | 32 | --- 33 | 34 | ## Usage 35 | 36 | Below is an example demonstrating how to use the username generator in your Node.js application: 37 | 38 | ```javascript 39 | const generator = require('beautiful-username-generator'); 40 | //const {gen} = require('beautiful-username-generator'); 41 | 42 | (async () => { 43 | try { 44 | const username = await generator.gen({ maxLength: 40 }); 45 | //const username = await gen({ maxLength: 20 }); 46 | console.log('Generated Username:', username); 47 | } catch (error) { 48 | console.error('Error generating username:', error); 49 | } 50 | })(); 51 | ``` 52 | 53 | ### Options 54 | 55 | The `gen` function accepts an optional object where you can set the maximum length for the username. 56 | 57 | | Option | Type | Description | Default Value | 58 | |-------------|--------|--------------------------------------------------|-----------------------| 59 | | `maxLength` | Number | Maximum length of the generated username. | Sum of attribute, color, and flower lengths (52 chars) | 60 | | `maxTries` | Number | Maximum tries to generate username below maxLength. | 1000 | 61 | 62 | --- 63 | 64 | ## Some samples 65 | 66 | - BiennialMintForgetMeNot 67 | - FloralPatriarchAnemone 68 | - LoftyBisqueBletilla 69 | - ClusteredCoralVerbena 70 | - LightBoleSilverbush 71 | - PleasantSinopiaAster 72 | - GauzyQuartzAbutilon 73 | 74 | ## API 75 | 76 | ### `generator.gen([options])` 77 | 78 | - **Description**: Generates a random username like VibrantVioletOrchid. 79 | - **Parameters**: 80 | - `options` (optional): An object to customize the username generation process. Currently, it supports: 81 | - `maxLength`: Limits the length of the generated username. Note that setting a shorter maximum length will reduce the variety and uniqueness of generated usernames, as fewer character combinations will be possible, leading to lower entropy. 82 | - `maxTries`: Limits amount of tries to find a username short enough. To low maxTries and low maxLength might fail to produce a username. 83 | - **Returns**: A `Promise` that resolves to a string, which is the generated username. 84 | 85 | --- 86 | 87 | ## How It Works 88 | 89 | The username generator works by selecting random elements from three predefined binary files: 90 | 1. **Attributes**: Contains 208 unique attributes. 91 | 2. **Colors**: Contains 219 unique color names. 92 | 3. **Flowers**: Contains 402 unique flower names. 93 | 94 | The generator picks random entries from these binary files, decodes them, and combines them to form a unique and beautiful username. Each username consists of three parts: 95 | - A random attribute 96 | - A random color 97 | - A random flower 98 | 99 | This structure ensures that usernames are both visually appealing and memorable. 100 | 101 | --- 102 | 103 | ## Security Advice 104 | 105 | While the `beautiful-username-generator` can generate millions of unique usernames, it is important to note that **usernames alone should not be relied upon for security purposes**. A username generated by this library should be used in combination with a strong, random password to ensure adequate security. 106 | 107 | This approach is similar to the security of using email addresses or handpicked usernames, where the username alone is not the main factor in security but instead the strength of the password is critical. 108 | 109 | --- 110 | 111 | ## File Structure 112 | 113 | - **`api/generator.js`**: Main logic for the username generation. 114 | - **`api/flattenedAttributes_15.bin`**: Binary file storing random attributes. 115 | - **`api/flattenedColors_15.bin`**: Binary file storing random color names. 116 | - **`api/flattenedFlowers_22.bin`**: Binary file storing random flower names. 117 | 118 | The generator pulls data from these binary files to construct usernames dynamically. 119 | 120 | --- 121 | 122 | ## Contributing 123 | 124 | Contributions are welcome! If you encounter any bugs or have ideas for improvement, please submit an issue or a pull request to the [GitHub repository](https://github.com/ChristianGreinke/beautiful-username-generator). 125 | 126 | 1. Fork the repository 127 | 2. Create a new branch (`git checkout -b feature/your-feature`) 128 | 3. Commit your changes (`git commit -am 'Add a new feature'`) 129 | 4. Push to the branch (`git push origin feature/your-feature`) 130 | 5. Create a new Pull Request 131 | 132 | --- 133 | 134 | ## License 135 | 136 | This project is licensed under the MIT License. See the [LICENSE](https://github.com/ChristianGreinke/beautiful-username-generator/blob/main/LICENSE) file for details. 137 | 138 | --- 139 | 140 | ## Bugs & Issues 141 | 142 | If you find a bug or have issues using the package, please submit them to the [Issues](https://github.com/ChristianGreinke/beautiful-username-generator/issues) page on GitHub. 143 | 144 | --- 145 | 146 | ## Author 147 | 148 | Created and maintained by **Christian Greinke**. You can find more of my work on my [GitHub](https://github.com/ChristianGreinke). 149 | 150 | --- 151 | 152 | ## Links 153 | 154 | - [GitHub Repository](https://github.com/ChristianGreinke/beautiful-username-generator) 155 | - [NPM Package](https://www.npmjs.com/package/beautiful-username-generator) 156 | -------------------------------------------------------------------------------- /api/flattenedAttributes_15.bin: -------------------------------------------------------------------------------- 1 | AbloomAbundantAerialAmaranthineAngelicAnnualArborealArrangedAquaticArtfulAssortedArtisticBeautifulBiennialBloomingBlossomingBlushingBoldBoomingBotanicalBountifulBreathtakingBrightBuddingBuoyantCalmingCaptivatingBrilliantCharmingCheeryCheerfulCherishedChicChoiceClassicClusteredClassyColorfulCombinedComplementaryContemporaryCountryCreativeCrispCuteDaintyDarlingDazzlingDesignedDelightfulDenseDevelopingDistinctiveDivineDramaticElegantEarlyEnchantingEvolvingEphemeralExpandingExoticExpressiveExquisiteExtravagantFashionableFannedFavoriteFertileFestiveDecorativeFloralFleshyDelicateFloridFloweringFluffyFragrantFreshFreshlyFruitfulFruityFullGatheredGauzyGlamorousGentleGloriousGlowingGorgeousGracefulGraminaceousGrandioseHardyHarmoniousHeartfeltHeavenlyGrowingHigherHuedIdyllicImpressiveJuvenileLargeJoyfulLastingLavishLeafyLeguminousLightFlourishingLushLuxuriousMagicalMagnificentMajesticMatureMesmerizingMixedMulticoloredMuskyNaturalNestleNewNoticeableOpenOrnamentalOversizePairedPassionatePastelPerennialPersonalPetitePlayfulPleasantPollinatedLuminousPolymorphousPreciousPremiumPristinePrizedProductivePrettyProgressiveProsperousRadiantPulchritudinousRavishingLoftyRecherchéRegalLovelyResplendentRipeRusticRosyScenicRomanticScentedRichSeasonalSensationalSentimentalSereneSightlySilkyShowySophisticatedSpecialSpectacularSoftSplendidStunningStrikingStylishSubmersedSummerySylvanSunnySweetSuppleSymmetricalTemperateTastefulTenderThrivingTimelessTouchingTraditionalTolerantTranscendentTropicalTreasuredUnforgettableUnusualVascularVerdantViableVerdurousUniqueVibrantVigorousWildWonderfulYoungUplifting -------------------------------------------------------------------------------- /api/flattenedColors_15.bin: -------------------------------------------------------------------------------- 1 | AmaranthAmberAlmondAmethystApricotAquaAquamarineArsenicAsparagusAuburnAureolinAurometalsaurusAvocadoAzureBeigeBazaarBeaverBisqueBistreBittersweetBlueBlackBlondBlushBoleBoneBoysenberryBrassBronzeBubblesBuffBurgundyBurlywoodByzantineByzantiumCapriCadetCamelCardinalCarmineCarnelianCeilCeladonCeriseCeruleanChamoiseeCinereousChampagneChestnutCinnabarCinnamonCoffeeCobaltCitrineCopperCoquelicotCoralCordovanCornCornsilkCyanCreamCrimsonDaffodilDandelionDesertDenimDrabEbonyEcruEggplantEggshellEmeraldFallowFandangoFawnFeldgrauFirebrickFlameFlavescentFlaxFollyFuchsiaFulvousGainsboroGambogeGingerGlaucousGlitterGoldenrodGrayGrulloHarlequinHeliotropeHoneydewIcebergIcterineIrisInchwormIndigoIsabellineIvoryJadeJasperJasmineJetJonquilLavaLemonCharcoalCherryLimerickLinenLionLiverMagentaLicoriceLustMagnoliaLilacMalachiteMahoganyManateeMaizeMauveMauvelousMelonMintMoccasinMulberryMustardMyrtleOliveOchreOlivineOnyxMantisOrchidPatriarchPeachPearlPeridotPearPeriwinklePersimmonPeruPistachioPhloxPinkPlatinumPucePrunePumpkinRackleyQuartzRajahRaspberryRedRazzmatazzRegaliaRedwoodRosewoodRoseRuddyRufousRubyRussetRustSalmonSaffronSandstormSangriaScarletSapphireSeashellSepiaSiennaShadowSilverSinopiaSkobeloffSnowStizzaStormcloudStrawSunglowSunsetTanTangeloTangerineTaupeTealTelemagentaThistleTomatoTimberwolfToolboxTopazTumbleweedTurquoiseUbeUltramarineUmberVanillaVerdigrisSandVeronicaUrobilinViridianVioletWaterspoutWheatWengeWhiteWineXanaduYellowZaffreWisteria -------------------------------------------------------------------------------- /api/flattenedFlowers_22.bin: -------------------------------------------------------------------------------- 1 | PinkPrimroseCanterburyBellsHardLeavedPocketOrchidSweetPeaEnglishMarigoldTigerLilyMoonOrchidBirdOfParadiseMonkshoodGlobeThistleSnapdragonColtsFootKingProteaSpearThistleYellowIrisGlobeFlowerPurpleConeflowerPeruvianLilyGiantWhiteArumLilyFireLilyBalloonFlowerPincushionFlowerFritillaryRedGingerGrapeHyacinthCornPoppyPrinceOfWalesFeathersSweetWilliamArtichokeStemlessGentianCarnationGardenPhloxLoveInTheMistMexicanAsterAlpineSeaHollyRubyLippedCattleyaCapeFlowerGreatMasterwortSiamTulipLentenRoseBarbetonDaisySwordLilyPoinsettiaBoleroDeepBlueDaffodilWallflowerMarigoldButtercupCommonDandelionPetuniaWildPansyPrimulaPelargoniumSunflowerBishopOfLlandaffGauraGeraniumJapaneseAnemoneOrangeDahliaPinkYellowDahliaCautleyaSpicataSilverbushCalifornianPoppyOxeyeDaisySpringCrocusOsteospermumWindflowerTreePoppyGazaniaThornAppleAzaleaWaterLilyMorningGloryPassionFlowerLotusLotusRoseToadLilyFrangipaniAnthuriumClematisHibiscusColumbineBlackEyedSusanTreeMallowDesertRoseWatercressMagnoliaCyclamenBeeBalmCannaLilyHippeastrumBallMossFoxgloveBougainvilleaCamelliaMallowBlanketFlowerMexicanPetuniaBromeliaTrumpetCreeperBlackberryLilyAbutilonAconiteAcaciaAgapanthusAfricanDaisyAlchemillaAlliumAlstroemeriaAgeratumBeardedIrisAlyssumAmaryllisAniseHyssopArmeriaMaritimaAsterAzaleaBabysBreathBachelorsButtonBeeBalmBalloonFlowerAmaranthusBellflowerBegoniaBergamotBallotaBergeniaBillbergiaBlack-eyedSusanBlanketFlowerBlazingStarBleedingHeartBletillaBluestarFlowerBluebonnetsBlue-eyedGrassBottlebrushBorageBouvardiaBrachyscomeBrassicaBroomButtercupButterflyBushCalceolariaAnemoneCalendulaCaliforniaPoppyCannaLilyCamelliaCandytuftCapeLeadwortCallaLilyCapePrimroseCardinalFlowerCarnationCelosiaCatmintCatharanthusCerastiumTomentosumChicoryChionodoxaChrysanthemumClarkiaCloverClematisConeflowerColumbineCoralVineCoreopsisCornflowerCoralBellsCorydalisCosmosCrocosmiaCotoneasterCrocusCrownImperialCuckooFlowerCyclamenDahliaDaisyDandelionDaphneDaylilyDecumariaDesertRoseDelphiniumDeutziaDianellaDianthusBarbatusDiasciaDietesDillDisaDutchIrisEchinopsEchiumEnglishBluebellElderEpimediumEremurusEricaErigeronEuphorbiaEustomaEveningPrimroseFallCrocusFeverfewFlamingKatyFlannelFlowerFirethornFlaxFlowerFloweringDogwoodForgetMeNotDaffodilFourOclockFoxgloveFrangipaniFlowerFreesiaFuchsiaFrenchMarigoldGardeniaGazaniaGaillardiaGeraniumGerberaFlowerForsythiaGoldenrodGladiolasGrapeHyacinthHebeGuzmaniaHelichrysumHeliotropeHelleboreHibiscusHollyhockHostaHydrangeaHyacinthHyssopIcePlantIcelandPoppyHoneysuckleIpomoeaLobataHollyHawthornHeatherHeleniumIrisIxoraIxiaJacobsLadderKaffirLilyJohnnyJumpUpJasmineKalmiaKangarooPawKnautiaLadysSlipperKniphofiaLantanaLarkspurImpatiensLavenderLemonVerbenaLaeliaLewesiaLilyOfTheValleyLilacLilyLinariaLotusLoveInTheMistLunariaLupinMagnoliaMalteseCrossMargueriteDaisyMandevillaMarigoldMatthiolaMayflowerMeconopsisMimosaMoonflowerVineMonksHoodMoraeaMorningGloryNarcissusMossRoseNemesiaNemophilaNeoregeliaNerineNasturtiumNewZealandTeaTreeNierembergiaOleanderNolanaOleariaOrchidOrientalPoppyOrientalLilyOrnamentalCherryOrnithogalumOxalisOsteospermumOxeyeDaisyOysterPlantPansyPaintedDaisyParodiaPassionFlowerPelargoniumPenstemonPeaceLilyPeonyPeriwinkleLavateraPersianButtercupPhloxPhysostegiaPincushionFlowerPoinsettiaPetuniaPinksPotentillaPhotiniaPolyanthusPowderPuffPoppyQuakerLadiesQueenAnnesLaceQueenOfTheMeadowQueensCupQuinceRainLilyRockRoseSageRondeletiaRosesRoseOfSharonSaintJohnsWortScentedGeraniumScaevolaScillaSedumShastaDaisySileneSnapdragonSnowdropSnowflakeSoapwortSpeedwellStarflowerStaticeSunflowerSweetPeaTeaRoseTigerFlowerTithoniaTracheliumTobaccoPlantTrilliumTriteleiaTritoniaCrocataTrolliusTrumpetVineTulipUrnPlantUrsiniaTuberoseUvaUrsiValerianVerbenaViolaViburnumVirginiaCreeperWallflowerWandflowerWatsoniaWaterLiliesWedeliaWaxPlantWeigelaWhirlingButterfliesWinterberryWinterJasmineWishboneFlowerWoollyVioletXanthocerasSorbifoliumXerophyllumXylobiumXylosmaYellowArchangelYarrowYellowBellYellow-eyedGrassZenobiaZinnia -------------------------------------------------------------------------------- /api/generator.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const {readdir,stat,read,open } = require('node:fs/promises'); 3 | const [atbSize,colSize,flwSize]=[15,15,22]; 4 | const [atbFSize,colFSize,flwFSize]=[0xC30,0xCD5,0x228C]; 5 | const { Buffer } = require('node:buffer'); 6 | 7 | const generateUsername = async ()=>{ 8 | const atbLength=atbFSize/atbSize; 9 | const colLength=colFSize/colSize; 10 | const flwLength=flwFSize/flwSize; 11 | 12 | const atbRndIndex = Math.floor(Math.random() * atbLength); 13 | const colRndIndex = Math.floor(Math.random() * colLength); 14 | const flwRndIndex = Math.floor(Math.random() * flwLength); 15 | 16 | const atbArray = new Buffer.alloc(atbSize); 17 | const colArray = new Buffer.alloc(colSize); 18 | const flwArray = new Buffer.alloc(flwSize); 19 | 20 | const dec = new TextDecoder(); 21 | 22 | let foHandle ; 23 | try{ 24 | foHandle= await open(__dirname +`/flattenedAttributes_${atbSize}.bin`); 25 | 26 | await foHandle.read(atbArray, 0, atbSize, atbRndIndex*atbSize); 27 | }finally{ 28 | await foHandle?.close(); 29 | } 30 | try{ 31 | foHandle= await open(__dirname +`/flattenedColors_${colSize}.bin`); 32 | 33 | await foHandle.read(colArray, 0, colSize, colRndIndex*colSize); 34 | }finally{ 35 | await foHandle?.close(); 36 | } 37 | try{ 38 | foHandle= await open(__dirname +`/flattenedFlowers_${flwSize}.bin`); 39 | 40 | await foHandle.read(flwArray, 0, flwSize, flwRndIndex*flwSize); 41 | }finally{ 42 | await foHandle?.close(); 43 | } 44 | 45 | let result =''; 46 | 47 | for(const v of atbArray){ 48 | if(v===0) break; 49 | result+=String.fromCharCode(v); 50 | } 51 | 52 | for(const v of colArray){ 53 | if(v===0) break; 54 | result+=String.fromCharCode(v); 55 | } 56 | 57 | for(const v of flwArray){ 58 | if(v===0) break; 59 | result+=String.fromCharCode(v); 60 | } 61 | // const atbValue = atbArray.reduce.toString('utf-8'); 62 | // const colValue = colArray.toString('utf-8'); 63 | // const flwValue = flwArray.toString('utf-8'); 64 | 65 | 66 | return result; 67 | } 68 | 69 | module.exports.gen = async (options={}) => { 70 | 71 | options.maxLength = options.maxLength || (atbSize+colSize+flwSize); 72 | options.maxTries = options.maxTries || 1000; 73 | 74 | let username; 75 | let genCounter=0; 76 | while(!username || (username.length>options.maxLength && genCounter< options.maxTries)){ 77 | username=await generateUsername(); 78 | genCounter++; 79 | } 80 | 81 | return username; 82 | } 83 | -------------------------------------------------------------------------------- /helper/flattenAttributes.js: -------------------------------------------------------------------------------- 1 | const {readdir,stat,unlink,readFile,writeFile } = require('node:fs/promises'); 2 | 3 | const path = require('path'); 4 | 5 | (async ()=>{ 6 | 7 | try { 8 | 9 | const files = await readdir( './api' ); 10 | 11 | 12 | for( const file of files ) { 13 | 14 | const fPath = path.join( './api', file ); 15 | 16 | const fStat = await stat( fPath ); 17 | 18 | if( fStat.isFile() && file.indexOf('flattenedAttributes')>=0) await unlink(fPath); 19 | 20 | 21 | } 22 | } 23 | catch( e ) { 24 | 25 | console.error( "We've thrown! Whoops!", e ); 26 | } 27 | 28 | function camelize(str) { 29 | return str.split(' ').map(w=>w.charAt(0).toUpperCase()+w.substring(1)).join(''); 30 | } 31 | 32 | const attributes = (await readFile('./raw/attributes.csv')).toString().split('\n').map(camelize); 33 | 34 | 35 | const maxLength = attributes.reduce((a,c)=>c.length>a?c.length:a,0); 36 | 37 | const enc = new TextEncoder(); 38 | 39 | const writes = attributes.map(async (f)=>{ 40 | const ab = new ArrayBuffer(maxLength); 41 | const uinArray = new Uint8Array(ab); 42 | enc.encodeInto(f,uinArray); 43 | 44 | await writeFile(`./api/flattenedAttributes_${maxLength}.bin`,Buffer.from(ab),{ flag: 'a+' }); 45 | }); 46 | 47 | await Promise.all(writes); 48 | 49 | })(); -------------------------------------------------------------------------------- /helper/flattenColors.js: -------------------------------------------------------------------------------- 1 | const {readdir,stat,unlink,readFile,writeFile } = require('node:fs/promises'); 2 | 3 | const path = require('path'); 4 | 5 | (async ()=>{ 6 | 7 | try { 8 | 9 | const files = await readdir( './api'); 10 | 11 | 12 | for( const file of files ) { 13 | 14 | const fPath = path.join( './api', file ); 15 | 16 | const fStat = await stat( fPath ); 17 | 18 | if( fStat.isFile() && file.indexOf('flattenedColors')>=0) await unlink(fPath); 19 | 20 | 21 | } 22 | } 23 | catch( e ) { 24 | 25 | console.error( "We've thrown! Whoops!", e ); 26 | } 27 | 28 | function camelize(str) { 29 | return str.split(' ').map(w=>w.charAt(0).toUpperCase()+w.substring(1)).join(''); 30 | } 31 | 32 | const attributes = (await readFile('./raw/colors.csv')).toString().split('\n').map(camelize); 33 | 34 | 35 | const maxLength = attributes.reduce((a,c)=>c.length>a?c.length:a,0); 36 | 37 | const enc = new TextEncoder(); 38 | 39 | const writes = attributes.map(async (f)=>{ 40 | const ab = new ArrayBuffer(maxLength); 41 | const uinArray = new Uint8Array(ab); 42 | enc.encodeInto(f,uinArray); 43 | 44 | await writeFile(`./api/flattenedColors_${maxLength}.bin`,Buffer.from(ab),{ flag: 'a+' }); 45 | }); 46 | 47 | await Promise.all(writes); 48 | 49 | })(); -------------------------------------------------------------------------------- /helper/flattenFlowers.js: -------------------------------------------------------------------------------- 1 | const {readdir,stat,unlink,readFile,writeFile } = require('node:fs/promises'); 2 | 3 | const path = require('path'); 4 | 5 | (async ()=>{ 6 | 7 | try { 8 | 9 | const files = await readdir('./api' ); 10 | 11 | 12 | for( const file of files ) { 13 | 14 | const fPath = path.join( './api', file ); 15 | 16 | const fStat = await stat( fPath ); 17 | 18 | if( fStat.isFile() && file.indexOf('flattenedFlowers')>=0) await unlink(fPath); 19 | 20 | 21 | } 22 | } 23 | catch( e ) { 24 | 25 | console.error( "We've thrown! Whoops!", e ); 26 | } 27 | 28 | function camelize(str) { 29 | return str.split(' ').map(w=>w.charAt(0).toUpperCase()+w.substring(1)).join(''); 30 | } 31 | 32 | const flowersJson = JSON.parse(await readFile( './raw/flowers.json')); 33 | 34 | const flowers = Object.keys(flowersJson).map((k)=>flowersJson[k]).map(camelize); 35 | 36 | const maxLength = flowers.reduce((a,c)=>c.length>a?c.length:a,0); 37 | 38 | const enc = new TextEncoder(); 39 | 40 | const writes = flowers.map(async (f)=>{ 41 | const ab = new ArrayBuffer(maxLength); 42 | const uinArray = new Uint8Array(ab); 43 | enc.encodeInto(f,uinArray); 44 | 45 | await writeFile(`./api/flattenedFlowers_${maxLength}.bin`,Buffer.from(ab),{ flag: 'a+' }); 46 | }); 47 | 48 | await Promise.all(writes); 49 | 50 | })(); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "beautiful-username-generator", 3 | "version": "1.0.2", 4 | "description": "Generate random beuatiful usernames", 5 | "main": "api/generator.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/ChristianGreinke/beautiful-username-generator.git" 12 | }, 13 | "keywords": [ 14 | "username", 15 | "generator", 16 | "beautiful" 17 | ], 18 | "author": "Christian Greinke", 19 | "license": "MIT", 20 | "files": [ 21 | "api/flattenedAttributes_15.bin", 22 | "api/flattenedColors_15.bin", 23 | "api/flattenedFlowers_22.bin", 24 | "api/generator.js", 25 | "README.md" 26 | ], 27 | "bugs": { 28 | "url": "https://github.com/ChristianGreinke/beautiful-username-generator/issues" 29 | }, 30 | "homepage": "https://github.com/ChristianGreinke/beautiful-username-generator#readme" 31 | } 32 | -------------------------------------------------------------------------------- /raw/attributes.csv: -------------------------------------------------------------------------------- 1 | Abloom 2 | Abundant 3 | Aerial 4 | Amaranthine 5 | Angelic 6 | Annual 7 | Aquatic 8 | Arboreal 9 | Arranged 10 | Artful 11 | Artistic 12 | Assorted 13 | Beautiful 14 | Biennial 15 | Blooming 16 | Blossoming 17 | Blushing 18 | Bold 19 | Booming 20 | Botanical 21 | Bountiful 22 | Breathtaking 23 | Bright 24 | Brilliant 25 | Budding 26 | Buoyant 27 | Calming 28 | Captivating 29 | Charming 30 | Cheerful 31 | Cheery 32 | Cherished 33 | Chic 34 | Choice 35 | Classic 36 | Classy 37 | Clustered 38 | Colorful 39 | Combined 40 | Complementary 41 | Contemporary 42 | Country 43 | Creative 44 | Crisp 45 | Cute 46 | Dainty 47 | Darling 48 | Dazzling 49 | Decorative 50 | Delicate 51 | Delightful 52 | Dense 53 | Designed 54 | Developing 55 | Distinctive 56 | Divine 57 | Dramatic 58 | Early 59 | Elegant 60 | Enchanting 61 | Ephemeral 62 | Evolving 63 | Exotic 64 | Expanding 65 | Expressive 66 | Exquisite 67 | Extravagant 68 | Fanned 69 | Fashionable 70 | Favorite 71 | Fertile 72 | Festive 73 | Fleshy 74 | Floral 75 | Florid 76 | Flourishing 77 | Flowering 78 | Fluffy 79 | Fragrant 80 | Fresh 81 | Freshly 82 | Fruitful 83 | Fruity 84 | Full 85 | Gathered 86 | Gauzy 87 | Gentle 88 | Glamorous 89 | Glorious 90 | Glowing 91 | Gorgeous 92 | Graceful 93 | Graminaceous 94 | Grandiose 95 | Growing 96 | Hardy 97 | Harmonious 98 | Heartfelt 99 | Heavenly 100 | Higher 101 | Hued 102 | Idyllic 103 | Impressive 104 | Joyful 105 | Juvenile 106 | Large 107 | Lasting 108 | Lavish 109 | Leafy 110 | Leguminous 111 | Light 112 | Lofty 113 | Lovely 114 | Luminous 115 | Lush 116 | Luxurious 117 | Magical 118 | Magnificent 119 | Majestic 120 | Mature 121 | Mesmerizing 122 | Mixed 123 | Multicolored 124 | Musky 125 | Natural 126 | Nestle 127 | New 128 | Noticeable 129 | Open 130 | Ornamental 131 | Oversize 132 | Paired 133 | Passionate 134 | Pastel 135 | Perennial 136 | Personal 137 | Petite 138 | Playful 139 | Pleasant 140 | Pollinated 141 | Polymorphous 142 | Precious 143 | Premium 144 | Pretty 145 | Pristine 146 | Prized 147 | Productive 148 | Progressive 149 | Prosperous 150 | Pulchritudinous 151 | Radiant 152 | Ravishing 153 | Recherché 154 | Regal 155 | Resplendent 156 | Rich 157 | Ripe 158 | Romantic 159 | Rosy 160 | Rustic 161 | Scenic 162 | Scented 163 | Seasonal 164 | Sensational 165 | Sentimental 166 | Serene 167 | Showy 168 | Sightly 169 | Silky 170 | Soft 171 | Sophisticated 172 | Special 173 | Spectacular 174 | Splendid 175 | Striking 176 | Stunning 177 | Stylish 178 | Submersed 179 | Summery 180 | Sunny 181 | Supple 182 | Sweet 183 | Sylvan 184 | Symmetrical 185 | Tasteful 186 | Temperate 187 | Tender 188 | Thriving 189 | Timeless 190 | Tolerant 191 | Touching 192 | Traditional 193 | Transcendent 194 | Treasured 195 | Tropical 196 | Unforgettable 197 | Unique 198 | Unusual 199 | Uplifting 200 | Vascular 201 | Verdant 202 | Verdurous 203 | Viable 204 | Vibrant 205 | Vigorous 206 | Wild 207 | Wonderful 208 | Young -------------------------------------------------------------------------------- /raw/colors.csv: -------------------------------------------------------------------------------- 1 | almond 2 | amaranth 3 | amber 4 | amethyst 5 | apricot 6 | aqua 7 | aquamarine 8 | arsenic 9 | asparagus 10 | auburn 11 | aureolin 12 | aurometalsaurus 13 | avocado 14 | azure 15 | bazaar 16 | beaver 17 | beige 18 | bisque 19 | bistre 20 | bittersweet 21 | black 22 | blond 23 | blue 24 | blush 25 | bole 26 | bone 27 | boysenberry 28 | brass 29 | bronze 30 | bubbles 31 | buff 32 | burgundy 33 | burlywood 34 | byzantine 35 | byzantium 36 | cadet 37 | camel 38 | capri 39 | cardinal 40 | carmine 41 | carnelian 42 | ceil 43 | celadon 44 | cerise 45 | cerulean 46 | chamoisee 47 | champagne 48 | charcoal 49 | cherry 50 | chestnut 51 | cinereous 52 | cinnabar 53 | cinnamon 54 | citrine 55 | cobalt 56 | coffee 57 | copper 58 | coquelicot 59 | coral 60 | cordovan 61 | corn 62 | cornsilk 63 | cream 64 | crimson 65 | cyan 66 | daffodil 67 | dandelion 68 | denim 69 | desert 70 | drab 71 | ebony 72 | ecru 73 | eggplant 74 | eggshell 75 | emerald 76 | fallow 77 | fandango 78 | fawn 79 | feldgrau 80 | firebrick 81 | flame 82 | flavescent 83 | flax 84 | folly 85 | fuchsia 86 | fulvous 87 | gainsboro 88 | gamboge 89 | ginger 90 | glaucous 91 | glitter 92 | goldenrod 93 | gray 94 | grullo 95 | harlequin 96 | heliotrope 97 | honeydew 98 | iceberg 99 | icterine 100 | inchworm 101 | indigo 102 | iris 103 | isabelline 104 | ivory 105 | jade 106 | jasmine 107 | jasper 108 | jet 109 | jonquil 110 | lava 111 | lemon 112 | licorice 113 | lilac 114 | limerick 115 | linen 116 | lion 117 | liver 118 | lust 119 | magenta 120 | magnolia 121 | mahogany 122 | maize 123 | malachite 124 | manatee 125 | mantis 126 | mauve 127 | mauvelous 128 | melon 129 | mint 130 | moccasin 131 | mulberry 132 | mustard 133 | myrtle 134 | ochre 135 | olive 136 | olivine 137 | onyx 138 | orchid 139 | patriarch 140 | peach 141 | pear 142 | pearl 143 | peridot 144 | periwinkle 145 | persimmon 146 | peru 147 | phlox 148 | pink 149 | pistachio 150 | platinum 151 | prune 152 | puce 153 | pumpkin 154 | quartz 155 | rackley 156 | rajah 157 | raspberry 158 | razzmatazz 159 | red 160 | redwood 161 | regalia 162 | rose 163 | rosewood 164 | ruby 165 | ruddy 166 | rufous 167 | russet 168 | rust 169 | saffron 170 | salmon 171 | sand 172 | sandstorm 173 | sangria 174 | sapphire 175 | scarlet 176 | seashell 177 | sepia 178 | shadow 179 | sienna 180 | silver 181 | sinopia 182 | skobeloff 183 | snow 184 | stizza 185 | stormcloud 186 | straw 187 | sunglow 188 | sunset 189 | tan 190 | tangelo 191 | tangerine 192 | taupe 193 | teal 194 | telemagenta 195 | thistle 196 | timberwolf 197 | tomato 198 | toolbox 199 | topaz 200 | tumbleweed 201 | turquoise 202 | ube 203 | ultramarine 204 | umber 205 | urobilin 206 | vanilla 207 | verdigris 208 | veronica 209 | violet 210 | viridian 211 | waterspout 212 | wenge 213 | wheat 214 | white 215 | wine 216 | wisteria 217 | xanadu 218 | yellow 219 | zaffre -------------------------------------------------------------------------------- /raw/colors_complete.csv: -------------------------------------------------------------------------------- 1 | air superiority blue 2 | alabama crimson 3 | alice blue 4 | alizarin crimson 5 | alloy orange 6 | almond 7 | amaranth 8 | amber 9 | amber sae ece 10 | american rose 11 | amethyst 12 | android green 13 | anti flash white 14 | antique brass 15 | antique fuchsia 16 | antique ruby 17 | antique white 18 | ao english 19 | apple green 20 | apricot 21 | aqua 22 | aquamarine 23 | army green 24 | arsenic 25 | arylide yellow 26 | ash grey 27 | asparagus 28 | atomic tangerine 29 | auburn 30 | aureolin 31 | aurometalsaurus 32 | avocado 33 | azure 34 | azure mist web 35 | baby blue 36 | baby blue eyes 37 | baby pink 38 | ball blue 39 | banana mania 40 | banana yellow 41 | barn red 42 | battleship grey 43 | bazaar 44 | beau blue 45 | beaver 46 | beige 47 | big dip o ruby 48 | bisque 49 | bistre 50 | bittersweet 51 | bittersweet shimmer 52 | black 53 | black bean 54 | black leather jacket 55 | black olive 56 | blanched almond 57 | blast off bronze 58 | bleu de france 59 | blizzard blue 60 | blond 61 | blue 62 | blue bell 63 | blue crayola 64 | blue gray 65 | blue green 66 | blue munsell 67 | blue ncs 68 | blue pigment 69 | blue ryb 70 | blue sapphire 71 | blue violet 72 | blush 73 | bole 74 | bondi blue 75 | bone 76 | boston university red 77 | bottle green 78 | boysenberry 79 | brandeis blue 80 | brass 81 | brick red 82 | bright cerulean 83 | bright green 84 | bright lavender 85 | bright maroon 86 | bright pink 87 | bright turquoise 88 | bright ube 89 | brilliant lavender 90 | brilliant rose 91 | brink pink 92 | british racing green 93 | bronze 94 | brown traditional 95 | brown web 96 | bubble gum 97 | bubbles 98 | buff 99 | bulgarian rose 100 | burgundy 101 | burlywood 102 | burnt orange 103 | burnt sienna 104 | burnt umber 105 | byzantine 106 | byzantium 107 | cadet 108 | cadet blue 109 | cadet grey 110 | cadmium green 111 | cadmium orange 112 | cadmium red 113 | cadmium yellow 114 | caf au lait 115 | caf noir 116 | cal poly green 117 | cambridge blue 118 | camel 119 | cameo pink 120 | camouflage green 121 | canary yellow 122 | candy apple red 123 | candy pink 124 | capri 125 | caput mortuum 126 | cardinal 127 | caribbean green 128 | carmine 129 | carmine m p 130 | carmine pink 131 | carmine red 132 | carnation pink 133 | carnelian 134 | carolina blue 135 | carrot orange 136 | catalina blue 137 | ceil 138 | celadon 139 | celadon blue 140 | celadon green 141 | celeste colour 142 | celestial blue 143 | cerise 144 | cerise pink 145 | cerulean 146 | cerulean blue 147 | cerulean frost 148 | cg blue 149 | cg red 150 | chamoisee 151 | champagne 152 | charcoal 153 | charm pink 154 | chartreuse traditional 155 | chartreuse web 156 | cherry 157 | cherry blossom pink 158 | chestnut 159 | china pink 160 | china rose 161 | chinese red 162 | chocolate traditional 163 | chocolate web 164 | chrome yellow 165 | cinereous 166 | cinnabar 167 | cinnamon 168 | citrine 169 | classic rose 170 | cobalt 171 | cocoa brown 172 | coffee 173 | columbia blue 174 | congo pink 175 | cool black 176 | cool grey 177 | copper 178 | copper crayola 179 | copper penny 180 | copper red 181 | copper rose 182 | coquelicot 183 | coral 184 | coral pink 185 | coral red 186 | cordovan 187 | corn 188 | cornell red 189 | cornflower blue 190 | cornsilk 191 | cosmic latte 192 | cotton candy 193 | cream 194 | crimson 195 | crimson glory 196 | cyan 197 | cyan process 198 | daffodil 199 | dandelion 200 | dark blue 201 | dark brown 202 | dark byzantium 203 | dark candy apple red 204 | dark cerulean 205 | dark chestnut 206 | dark coral 207 | dark cyan 208 | dark electric blue 209 | dark goldenrod 210 | dark gray 211 | dark green 212 | dark imperial blue 213 | dark jungle green 214 | dark khaki 215 | dark lava 216 | dark lavender 217 | dark magenta 218 | dark midnight blue 219 | dark olive green 220 | dark orange 221 | dark orchid 222 | dark pastel blue 223 | dark pastel green 224 | dark pastel purple 225 | dark pastel red 226 | dark pink 227 | dark powder blue 228 | dark raspberry 229 | dark red 230 | dark salmon 231 | dark scarlet 232 | dark sea green 233 | dark sienna 234 | dark slate blue 235 | dark slate gray 236 | dark spring green 237 | dark tan 238 | dark tangerine 239 | dark taupe 240 | dark terra cotta 241 | dark turquoise 242 | dark violet 243 | dark yellow 244 | dartmouth green 245 | davy s grey 246 | debian red 247 | deep carmine 248 | deep carmine pink 249 | deep carrot orange 250 | deep cerise 251 | deep champagne 252 | deep chestnut 253 | deep coffee 254 | deep fuchsia 255 | deep jungle green 256 | deep lilac 257 | deep magenta 258 | deep peach 259 | deep pink 260 | deep ruby 261 | deep saffron 262 | deep sky blue 263 | deep tuscan red 264 | denim 265 | desert 266 | desert sand 267 | dim gray 268 | dodger blue 269 | dogwood rose 270 | dollar bill 271 | drab 272 | duke blue 273 | earth yellow 274 | ebony 275 | ecru 276 | eggplant 277 | eggshell 278 | egyptian blue 279 | electric blue 280 | electric crimson 281 | electric cyan 282 | electric green 283 | electric indigo 284 | electric lavender 285 | electric lime 286 | electric purple 287 | electric ultramarine 288 | electric violet 289 | electric yellow 290 | emerald 291 | english lavender 292 | eton blue 293 | fallow 294 | falu red 295 | fandango 296 | fashion fuchsia 297 | fawn 298 | feldgrau 299 | fern green 300 | ferrari red 301 | field drab 302 | fire engine red 303 | firebrick 304 | flame 305 | flamingo pink 306 | flavescent 307 | flax 308 | floral white 309 | fluorescent orange 310 | fluorescent pink 311 | fluorescent yellow 312 | folly 313 | forest green traditional 314 | forest green web 315 | french beige 316 | french blue 317 | french lilac 318 | french lime 319 | french raspberry 320 | french rose 321 | fuchsia 322 | fuchsia crayola 323 | fuchsia pink 324 | fuchsia rose 325 | fulvous 326 | fuzzy wuzzy 327 | gainsboro 328 | gamboge 329 | ghost white 330 | ginger 331 | glaucous 332 | glitter 333 | gold metallic 334 | gold web golden 335 | golden brown 336 | golden poppy 337 | golden yellow 338 | goldenrod 339 | granny smith apple 340 | gray 341 | gray asparagus 342 | gray html css gray 343 | gray x11 gray 344 | green color wheel x11 green 345 | green crayola 346 | green html css green 347 | green munsell 348 | green ncs 349 | green pigment 350 | green ryb 351 | green yellow 352 | grullo 353 | guppie green 354 | halay be 355 | han blue 356 | han purple 357 | hansa yellow 358 | harlequin 359 | harvard crimson 360 | harvest gold 361 | heart gold 362 | heliotrope 363 | hollywood cerise 364 | honeydew 365 | honolulu blue 366 | hooker s green 367 | hot magenta 368 | hot pink 369 | hunter green 370 | iceberg 371 | icterine 372 | imperial blue 373 | inchworm 374 | india green 375 | indian red 376 | indian yellow 377 | indigo 378 | indigo dye 379 | indigo web 380 | iris 381 | isabelline 382 | islamic green 383 | ivory 384 | jade 385 | jasmine 386 | jasper 387 | jazzberry jam 388 | jet 389 | jonquil 390 | june bud 391 | jungle green 392 | kelly green 393 | kenyan copper 394 | khaki html css khaki 395 | khaki x11 396 | ku crimson 397 | la salle green 398 | languid lavender 399 | lapis lazuli 400 | laser lemon 401 | laurel green 402 | lava 403 | lavender blue 404 | lavender blush 405 | lavender floral 406 | lavender gray 407 | lavender indigo 408 | lavender magenta 409 | lavender mist 410 | lavender pink 411 | lavender purple 412 | lavender rose 413 | lavender web 414 | lawn green 415 | lemon 416 | lemon chiffon 417 | lemon lime 418 | licorice 419 | lilac 420 | lime color wheel 421 | lime green 422 | lime web x11 green 423 | limerick 424 | linen 425 | lion 426 | little boy blue 427 | liver 428 | lust 429 | magenta 430 | magenta dye 431 | magenta process 432 | magic mint 433 | magnolia 434 | mahogany 435 | maize 436 | majorelle blue 437 | malachite 438 | manatee 439 | mango tango 440 | mantis 441 | mardi gras 442 | maroon crayola 443 | maroon html css 444 | maroon x11 445 | mauve 446 | mauve taupe 447 | mauvelous 448 | maya blue 449 | meat brown 450 | mellow apricot 451 | mellow yellow 452 | melon 453 | midnight blue 454 | midnight green eagle green 455 | mikado yellow 456 | mint 457 | mint cream 458 | mint green 459 | misty rose 460 | moccasin 461 | mode beige 462 | moonstone blue 463 | mordant red 19 464 | moss green 465 | mountain meadow 466 | mountbatten pink 467 | msu green 468 | mulberry 469 | mustard 470 | myrtle 471 | nadeshiko pink 472 | napier green 473 | naples yellow 474 | navajo white 475 | navy blue 476 | neon carrot 477 | neon fuchsia 478 | neon green 479 | new york pink 480 | non photo blue 481 | north texas green 482 | ocean boat blue 483 | ochre 484 | office green 485 | old gold 486 | old lace 487 | old lavender 488 | old mauve 489 | old rose 490 | olive 491 | olive drab 7 492 | olive drab web olive drab 3 493 | olivine 494 | onyx 495 | opera mauve 496 | orange color wheel 497 | orange peel 498 | orange red 499 | orange ryb 500 | orange web color 501 | orchid 502 | otter brown 503 | ou crimson red 504 | outer space 505 | outrageous orange 506 | oxford blue 507 | pakistan green 508 | palatinate blue 509 | palatinate purple 510 | pansy purple 511 | papaya whip 512 | paris green 513 | pastel blue 514 | pastel brown 515 | pastel gray 516 | pastel green 517 | pastel magenta 518 | pastel orange 519 | pastel pink 520 | pastel purple 521 | pastel red 522 | pastel violet 523 | pastel yellow 524 | patriarch 525 | payne s grey 526 | peach 527 | peach crayola 528 | peach orange 529 | peach puff 530 | peach yellow 531 | pear 532 | pearl 533 | pearl aqua 534 | pearly purple 535 | peridot 536 | periwinkle 537 | persian blue 538 | persian green 539 | persian indigo 540 | persian orange 541 | persian pink 542 | persian plum 543 | persian red 544 | persian rose 545 | persimmon 546 | peru 547 | phlox 548 | phthalo blue 549 | phthalo green 550 | piggy pink 551 | pine green 552 | pink 553 | pink lace 554 | pink orange 555 | pink pearl 556 | pink sherbet 557 | pistachio 558 | platinum 559 | plum traditional 560 | plum web 561 | portland orange 562 | powder blue web 563 | princeton orange 564 | prune 565 | prussian blue 566 | psychedelic purple 567 | puce 568 | pumpkin 569 | purple heart 570 | purple html css 571 | purple mountain majesty 572 | purple munsell 573 | purple pizzazz 574 | purple taupe 575 | purple x11 576 | quartz 577 | rackley 578 | radical red 579 | rajah 580 | raspberry 581 | raspberry glace 582 | raspberry pink 583 | raspberry rose 584 | raw umber 585 | razzle dazzle rose 586 | razzmatazz 587 | red 588 | red brown 589 | red devil 590 | red munsell 591 | red ncs 592 | red orange 593 | red pigment 594 | red ryb 595 | red violet 596 | redwood 597 | regalia 598 | resolution blue 599 | rich black 600 | rich brilliant lavender 601 | rich carmine 602 | rich electric blue 603 | rich lavender 604 | rich lilac 605 | rich maroon 606 | rifle green 607 | robin egg blue 608 | rose 609 | rose bonbon 610 | rose ebony 611 | rose gold 612 | rose madder 613 | rose pink 614 | rose quartz 615 | rose taupe 616 | rose vale 617 | rosewood 618 | rosso corsa 619 | rosy brown 620 | royal azure 621 | royal blue traditional 622 | royal blue web 623 | royal fuchsia 624 | royal purple 625 | royal yellow 626 | rubine red 627 | ruby 628 | ruby red 629 | ruddy 630 | ruddy brown 631 | ruddy pink 632 | rufous 633 | russet 634 | rust 635 | rusty red 636 | sacramento state green 637 | saddle brown 638 | safety orange blaze orange 639 | saffron 640 | salmon 641 | salmon pink 642 | sand 643 | sand dune 644 | sandstorm 645 | sandy brown 646 | sandy taupe 647 | sangria 648 | sap green 649 | sapphire 650 | sapphire blue 651 | satin sheen gold 652 | scarlet 653 | scarlet crayola 654 | school bus yellow 655 | screamin green 656 | sea blue 657 | sea green 658 | seal brown 659 | seashell 660 | selective yellow 661 | sepia 662 | shadow 663 | shamrock green 664 | shocking pink 665 | shocking pink crayola 666 | sienna 667 | silver 668 | sinopia 669 | skobeloff 670 | sky blue 671 | sky magenta 672 | slate blue 673 | slate gray 674 | smalt dark powder blue 675 | smokey topaz 676 | smoky black 677 | snow 678 | spiro disco ball 679 | spring bud 680 | spring green 681 | st patrick s blue 682 | steel blue 683 | stil de grain yellow 684 | stizza 685 | stormcloud 686 | straw 687 | sunglow 688 | sunset 689 | tan 690 | tangelo 691 | tangerine 692 | tangerine yellow 693 | tango pink 694 | taupe 695 | taupe gray 696 | tea green 697 | tea rose orange 698 | tea rose rose 699 | teal 700 | teal blue 701 | teal green 702 | telemagenta 703 | tenn tawny 704 | terra cotta 705 | thistle 706 | thulian pink 707 | tickle me pink 708 | tiffany blue 709 | tiger s eye 710 | timberwolf 711 | titanium yellow 712 | tomato 713 | toolbox 714 | topaz 715 | tractor red 716 | trolley grey 717 | tropical rain forest 718 | true blue 719 | tufts blue 720 | tumbleweed 721 | turkish rose 722 | turquoise 723 | turquoise blue 724 | turquoise green 725 | tuscan red 726 | tw 727 | tyrian purple 728 | ube 729 | ufo green 730 | ultra pink 731 | ultramarine 732 | ultramarine blue 733 | umber 734 | unbleached silk 735 | united nations blue 736 | university of california gold 737 | unmellow yellow 738 | up forest green 739 | up maroon 740 | upsdell red 741 | urobilin 742 | usafa blue 743 | usc cardinal 744 | usc gold 745 | utah crimson 746 | vanilla 747 | vegas gold 748 | venetian red 749 | verdigris 750 | vermilion cinnabar 751 | vermilion plochere 752 | veronica 753 | violet 754 | violet blue 755 | violet color wheel 756 | violet ryb 757 | violet web 758 | viridian 759 | waterspout 760 | wenge 761 | wheat 762 | white 763 | white smoke 764 | wild blue yonder 765 | wild strawberry 766 | wild watermelon 767 | wine 768 | wine dregs 769 | wisteria 770 | wood brown 771 | xanadu 772 | yale blue 773 | yellow 774 | yellow green 775 | yellow munsell 776 | yellow ncs 777 | yellow orange 778 | yellow process 779 | yellow ryb 780 | zaffre 781 | zinnwaldite brown -------------------------------------------------------------------------------- /raw/flowers.json: -------------------------------------------------------------------------------- 1 | { 2 | "21": "fire lily", 3 | "3": "canterbury bells", 4 | "45": "bolero deep blue", 5 | "1": "pink primrose", 6 | "34": "mexican aster", 7 | "27": "prince of wales feathers", 8 | "7": "moon orchid", 9 | "16": "globe flower", 10 | "25": "grape hyacinth", 11 | "26": "corn poppy", 12 | "79": "toad lily", 13 | "39": "siam tulip", 14 | "24": "red ginger", 15 | "67": "spring crocus", 16 | "35": "alpine sea holly", 17 | "32": "garden phlox", 18 | "10": "globe thistle", 19 | "6": "tiger lily", 20 | "93": "ball moss", 21 | "33": "love in the mist", 22 | "9": "monkshood", 23 | "102": "blackberry lily", 24 | "14": "spear thistle", 25 | "19": "balloon flower", 26 | "100": "blanket flower", 27 | "13": "king protea", 28 | "49": "oxeye daisy", 29 | "15": "yellow iris", 30 | "61": "cautleya spicata", 31 | "31": "carnation", 32 | "64": "silverbush", 33 | "68": "bearded iris", 34 | "63": "black eyed susan", 35 | "69": "windflower", 36 | "62": "japanese anemone", 37 | "20": "giant white arum lily", 38 | "38": "great masterwort", 39 | "4": "sweet pea", 40 | "86": "tree mallow", 41 | "101": "trumpet creeper", 42 | "42": "daffodil", 43 | "22": "pincushion flower", 44 | "2": "hard leaved pocket orchid", 45 | "54": "sunflower", 46 | "66": "osteospermum", 47 | "70": "tree poppy", 48 | "85": "desert rose", 49 | "99": "bromelia", 50 | "87": "magnolia", 51 | "5": "english marigold", 52 | "92": "bee balm", 53 | "28": "stemless gentian", 54 | "97": "mallow", 55 | "57": "gaura", 56 | "40": "lenten rose", 57 | "47": "marigold", 58 | "59": "orange dahlia", 59 | "48": "buttercup", 60 | "55": "pelargonium", 61 | "36": "ruby lipped cattleya", 62 | "91": "hippeastrum", 63 | "29": "artichoke", 64 | "71": "gazania", 65 | "90": "canna lily", 66 | "18": "peruvian lily", 67 | "98": "mexican petunia", 68 | "8": "bird of paradise", 69 | "30": "sweet william", 70 | "17": "purple coneflower", 71 | "52": "wild pansy", 72 | "84": "columbine", 73 | "12": "colts foot", 74 | "11": "snapdragon", 75 | "96": "camellia", 76 | "23": "fritillary", 77 | "50": "common dandelion", 78 | "44": "poinsettia", 79 | "53": "primula", 80 | "72": "azalea", 81 | "65": "californian poppy", 82 | "80": "anthurium", 83 | "76": "morning glory", 84 | "37": "cape flower", 85 | "56": "bishop of llandaff", 86 | "60": "pink yellow dahlia", 87 | "82": "clematis", 88 | "58": "geranium", 89 | "75": "thorn apple", 90 | "41": "barbeton daisy", 91 | "95": "bougainvillea", 92 | "43": "sword lily", 93 | "83": "hibiscus", 94 | "78": "lotus lotus", 95 | "88": "cyclamen", 96 | "94": "foxglove", 97 | "81": "frangipani", 98 | "74": "rose", 99 | "89": "watercress", 100 | "73": "water lily", 101 | "46": "wallflower", 102 | "77": "passion flower", 103 | "51": "petunia", 104 | "103": "Abutilon", 105 | "104": "Acacia", 106 | "105": "Aconite", 107 | "106": "African Daisy", 108 | "107": "Agapanthus", 109 | "108": "Ageratum", 110 | "109": "Alchemilla", 111 | "110": "Allium", 112 | "111": "Alstroemeria", 113 | "112": "Alyssum", 114 | "113": "Amaranthus", 115 | "114": "Amaryllis", 116 | "115": "Anemone", 117 | "116": "Anise Hyssop", 118 | "117": "Armeria Maritima", 119 | "118": "Aster", 120 | "119": "Azalea", 121 | "120": "Babys Breath", 122 | "121": "Bachelors Button", 123 | "122": "Balloon Flower", 124 | "123": "Ballota", 125 | "124": "Bee Balm", 126 | "125": "Begonia", 127 | "126": "Bellflower", 128 | "127": "Bergamot", 129 | "128": "Bergenia", 130 | "129": "Billbergia", 131 | "130": "Black-eyed Susan", 132 | "131": "Blanket Flower", 133 | "132": "Blazing Star", 134 | "133": "Bleeding Heart", 135 | "134": "Bletilla", 136 | "135": "Bluestar Flower", 137 | "136": "Bluebonnets", 138 | "137": "Blue-eyed Grass", 139 | "138": "Borage", 140 | "139": "Bottlebrush", 141 | "140": "Bouvardia", 142 | "141": "Brachyscome", 143 | "142": "Brassica", 144 | "143": "Broom", 145 | "144": "Buttercup", 146 | "145": "Butterfly Bush", 147 | "146": "Calceolaria", 148 | "147": "Calendula", 149 | "148": "California Poppy", 150 | "149": "Calla Lily", 151 | "150": "Camellia", 152 | "151": "Candytuft", 153 | "152": "Canna Lily", 154 | "153": "Cape Leadwort", 155 | "154": "Cape Primrose", 156 | "155": "Cardinal Flower", 157 | "156": "Carnation", 158 | "157": "Catharanthus", 159 | "158": "Catmint", 160 | "159": "Celosia", 161 | "160": "Cerastium Tomentosum", 162 | "161": "Chicory", 163 | "162": "Chionodoxa", 164 | "163": "Chrysanthemum", 165 | "164": "Clarkia", 166 | "165": "Clematis", 167 | "166": "Clover", 168 | "167": "Columbine", 169 | "168": "Coneflower", 170 | "169": "Coral Bells", 171 | "170": "Coral Vine", 172 | "171": "Coreopsis", 173 | "172": "Cornflower", 174 | "173": "Corydalis", 175 | "174": "Cosmos", 176 | "175": "Cotoneaster", 177 | "176": "Crocosmia", 178 | "177": "Crocus", 179 | "178": "Crown Imperial", 180 | "179": "Cuckoo Flower", 181 | "180": "Cyclamen", 182 | "181": "Daffodil", 183 | "182": "Dahlia", 184 | "183": "Daisy", 185 | "184": "Dandelion", 186 | "185": "Daphne", 187 | "186": "Daylily", 188 | "187": "Decumaria", 189 | "188": "Delphinium", 190 | "189": "Desert Rose", 191 | "190": "Deutzia", 192 | "191": "Dianella", 193 | "192": "Dianthus barbatus", 194 | "193": "Diascia", 195 | "194": "Dietes", 196 | "195": "Dill", 197 | "196": "Disa", 198 | "197": "Dutch Iris", 199 | "198": "Echinops", 200 | "199": "Echium", 201 | "200": "Elder", 202 | "201": "English Bluebell", 203 | "202": "Epimedium", 204 | "203": "Eremurus", 205 | "204": "Erica", 206 | "205": "Erigeron", 207 | "206": "Euphorbia", 208 | "207": "Eustoma", 209 | "208": "Evening Primrose", 210 | "209": "Fall Crocus", 211 | "210": "Feverfew", 212 | "211": "Firethorn", 213 | "212": "Flaming Katy", 214 | "213": "Flannel Flower", 215 | "214": "Flax Flower", 216 | "215": "Flowering Dogwood", 217 | "216": "Forget Me Not", 218 | "217": "Forsythia", 219 | "218": "Four Oclock", 220 | "219": "Foxglove", 221 | "220": "Frangipani Flower", 222 | "221": "Freesia", 223 | "222": "French Marigold", 224 | "223": "Fuchsia", 225 | "224": "Gaillardia", 226 | "225": "Gardenia", 227 | "226": "Gazania", 228 | "227": "Geranium", 229 | "228": "Gerbera Flower", 230 | "229": "Gladiolas", 231 | "230": "Goldenrod", 232 | "231": "Grape Hyacinth", 233 | "232": "Guzmania", 234 | "233": "Hawthorn", 235 | "234": "Heather", 236 | "235": "Hebe", 237 | "236": "Helenium", 238 | "237": "Helichrysum", 239 | "238": "Heliotrope", 240 | "239": "Hellebore", 241 | "240": "Hibiscus", 242 | "241": "Holly", 243 | "242": "Hollyhock", 244 | "243": "Honeysuckle", 245 | "244": "Hosta", 246 | "245": "Hyacinth", 247 | "246": "Hydrangea", 248 | "247": "Hyssop", 249 | "248": "Ice Plant", 250 | "249": "Iceland Poppy", 251 | "250": "Impatiens", 252 | "251": "Ipomoea Lobata", 253 | "252": "Iris", 254 | "253": "Ixia", 255 | "254": "Ixora", 256 | "255": "Jacobs Ladder", 257 | "256": "Jasmine", 258 | "257": "Johnny Jump Up", 259 | "258": "Kaffir Lily", 260 | "259": "Kalmia", 261 | "260": "Kangaroo Paw", 262 | "261": "Knautia", 263 | "262": "Kniphofia", 264 | "263": "Ladys Slipper", 265 | "264": "Laelia", 266 | "265": "Lantana", 267 | "266": "Larkspur", 268 | "267": "Lavatera", 269 | "268": "Lavender", 270 | "269": "Lemon Verbena", 271 | "270": "Lewesia", 272 | "271": "Lilac", 273 | "272": "Lily of the Valley", 274 | "273": "Lily", 275 | "274": "Linaria", 276 | "275": "Lotus", 277 | "276": "Love in the Mist", 278 | "277": "Lunaria", 279 | "278": "Lupin", 280 | "279": "Magnolia", 281 | "280": "Maltese Cross", 282 | "281": "Mandevilla", 283 | "282": "Marguerite Daisy", 284 | "283": "Marigold", 285 | "284": "Matthiola", 286 | "285": "Mayflower", 287 | "286": "Meconopsis", 288 | "287": "Mimosa", 289 | "288": "Moonflower Vine", 290 | "289": "Monks Hood", 291 | "290": "Moraea", 292 | "291": "Morning Glory", 293 | "292": "Moss Rose", 294 | "293": "Narcissus", 295 | "294": "Nasturtium", 296 | "295": "Nemesia", 297 | "296": "Nemophila", 298 | "297": "Neoregelia", 299 | "298": "Nerine", 300 | "299": "New Zealand Tea Tree", 301 | "300": "Nierembergia", 302 | "301": "Nolana", 303 | "302": "Oleander", 304 | "303": "Olearia", 305 | "304": "Orchid", 306 | "305": "Oriental Lily", 307 | "306": "Oriental Poppy", 308 | "307": "Ornamental Cherry", 309 | "308": "Ornithogalum", 310 | "309": "Osteospermum", 311 | "310": "Oxalis", 312 | "311": "Oxeye Daisy", 313 | "312": "Oyster Plant", 314 | "313": "Painted Daisy", 315 | "314": "Pansy", 316 | "315": "Parodia", 317 | "316": "Passion Flower", 318 | "317": "Peace Lily", 319 | "318": "Pelargonium", 320 | "319": "Penstemon", 321 | "320": "Peony", 322 | "321": "Periwinkle", 323 | "322": "Persian Buttercup", 324 | "323": "Petunia", 325 | "324": "Phlox", 326 | "325": "Photinia", 327 | "326": "Physostegia", 328 | "327": "Pincushion Flower", 329 | "328": "Pinks", 330 | "329": "Poinsettia", 331 | "330": "Potentilla", 332 | "331": "Polyanthus", 333 | "332": "Poppy", 334 | "333": "Powder Puff", 335 | "334": "Quaker Ladies", 336 | "335": "Queen Annes Lace", 337 | "336": "Queen of the Meadow", 338 | "337": "Queens Cup", 339 | "338": "Quince", 340 | "339": "Rain Lily", 341 | "340": "Rock Rose", 342 | "341": "Rondeletia", 343 | "342": "Roses", 344 | "343": "Rose of Sharon", 345 | "344": "Sage", 346 | "345": "Saint Johns Wort", 347 | "346": "Scaevola", 348 | "347": "Scented Geranium", 349 | "348": "Scilla", 350 | "349": "Sedum", 351 | "350": "Shasta Daisy", 352 | "351": "Silene", 353 | "352": "Snapdragon", 354 | "353": "Snowdrop", 355 | "354": "Snowflake", 356 | "355": "Soapwort", 357 | "356": "Speedwell", 358 | "357": "Starflower", 359 | "358": "Statice", 360 | "359": "Sunflower", 361 | "360": "Sweet Pea", 362 | "361": "Tea Rose", 363 | "362": "Tiger Flower", 364 | "363": "Tithonia", 365 | "364": "Tobacco Plant", 366 | "365": "Trachelium", 367 | "366": "Trillium", 368 | "367": "Triteleia", 369 | "368": "Tritonia crocata", 370 | "369": "Trollius", 371 | "370": "Trumpet Vine", 372 | "371": "Tuberose", 373 | "372": "Tulip", 374 | "373": "Urn Plant", 375 | "374": "Ursinia", 376 | "375": "Uva Ursi", 377 | "376": "Valerian", 378 | "377": "Verbena", 379 | "378": "Viburnum", 380 | "379": "Viola", 381 | "380": "Virginia Creeper", 382 | "381": "Wallflower", 383 | "382": "Wandflower", 384 | "383": "Water lilies", 385 | "384": "Watsonia", 386 | "385": "Wax Plant", 387 | "386": "Wedelia", 388 | "387": "Weigela", 389 | "388": "Whirling Butterflies", 390 | "389": "Winter Jasmine", 391 | "390": "Winterberry", 392 | "391": "Wishbone Flower", 393 | "392": "Woolly Violet", 394 | "393": "Xanthoceras sorbifolium", 395 | "394": "Xerophyllum", 396 | "395": "Xylobium", 397 | "396": "Xylosma", 398 | "397": "Yarrow", 399 | "398": "Yellow Archangel", 400 | "399": "Yellow Bell", 401 | "400": "Yellow-eyed Grass", 402 | "401": "Zenobia", 403 | "402": "Zinnia" 404 | } -------------------------------------------------------------------------------- /test/node_modules/.package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "myapp", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "node_modules/username-generator-api": { 7 | "version": "1.0.1", 8 | "resolved": "https://registry.npmjs.org/username-generator-api/-/username-generator-api-1.0.1.tgz", 9 | "integrity": "sha512-pXk9SozPE/9oeiOosQIFDvNyna7qYv0dsCEeNPqPQepv6n2uyTecMNWG8D9qQ3vp3aoGEwUD/rGuYBT+HqxyhA==" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /test/node_modules/username-generator-api/api/flattenedAttributes_15.bin: -------------------------------------------------------------------------------- 1 | AerialAbundantAbloomAmaranthineAngelicAquaticAnnualArborealArrangedArtfulArtisticAssortedBeautifulBiennialBloomingBlossomingBlushingBoldBoomingBotanicalBountifulBreathtakingBuddingBuoyantBrightBrilliantCalmingCaptivatingCharmingCheerfulCheeryCherishedChicChoiceClassicColorfulClassyClusteredContemporaryCombinedComplementaryCountryCreativeCrispCuteDaintyDarlingDesignedDelicateDenseDelightfulDevelopingDistinctiveDivineDramaticEarlyElegantEnchantingEphemeralEvolvingExoticExpandingExpressiveExquisiteExtravagantFannedFashionableFavoriteFleshyFertileFestiveFloridFlourishingDazzlingFloweringFluffyFloralFragrantFreshFreshlyFruitfulFruityFullGatheredGauzyGlamorousGentleGloriousGlowingGorgeousGracefulGraminaceousGrandioseGrowingHarmoniousHardyHeavenlyHigherHuedIdyllicImpressiveJoyfulHeartfeltLargeDecorativeLavishJuvenileLeafyLeguminousLightLastingLushLuxuriousMagicalMagnificentMajesticMatureMesmerizingMixedMulticoloredMuskyNaturalNestleNewNoticeableOpenOrnamentalOversizePairedPassionatePastelLuminousPerennialPersonalPetitePlayfulPleasantPollinatedPolymorphousPreciousPremiumPrettyPristinePrizedProductiveProgressiveProsperousPulchritudinousRadiantRecherchéRegalRavishingResplendentRichRipeRomanticRosyRusticScenicScentedSensationalSeasonalSentimentalShowySereneSightlySoftSilkySophisticatedSpectacularSpecialSplendidStunningStrikingStylishSubmersedLovelySunnySuppleSweetSylvanSummerySymmetricalTemperateTastefulTenderThrivingTimelessTolerantTraditionalTreasuredUnforgettableTropicalUnusualUniqueUpliftingVascularTouchingVerdurousVibrantViableVigorousWildWonderfulTranscendentYoungVerdantLofty -------------------------------------------------------------------------------- /test/node_modules/username-generator-api/api/flattenedColors_15.bin: -------------------------------------------------------------------------------- 1 | AmaranthAlmondAmberAmethystApricotAquaArsenicAquamarineAsparagusAuburnAureolinAurometalsaurusAvocadoAzureBazaarBeaverBeigeBisqueBistreBittersweetBlackBlondBlueBlushBoleBoneBoysenberryBrassBronzeBubblesBurgundyBurlywoodBuffCadetByzantineByzantiumCamelCarmineCapriCardinalCarnelianCeilCeladonCeriseChamoiseeChampagneCeruleanCinereousChestnutCinnabarCinnamonCitrineCopperCobaltCoffeeCoquelicotCornCoralCordovanCornsilkCreamCrimsonDaffodilCyanDandelionDenimDesertEcruDrabEbonyEggplantFandangoEggshellEmeraldFawnCharcoalFallowFeldgrauFlaxFlameFlavescentFulvousFirebrickFollyFuchsiaGainsboroGambogeGingerGlaucousGlitterGoldenrodGrayGrulloHarlequinHoneydewIcebergHeliotropeIcterineInchwormIndigoIrisIsabellineJadeIvoryJasmineJonquilJasperJetLemonLavaCherryLicoriceLimerickLionLiverLustMagentaMagnoliaMahoganyMaizeMalachiteMantisMauveMauvelousManateeMelonLilacMoccasinMintMulberryMyrtleMustardOchreOliveLinenOlivineOnyxOrchidPeachPearPearlPeridotPatriarchPeriwinklePersimmonPeruPhloxPinkPistachioPlatinumPrunePucePumpkinRackleyQuartzRajahRaspberryRazzmatazzRedwoodRedRegaliaRoseRosewoodRuddyRubyRufousRussetRustSaffronSalmonSandSandstormSangriaSapphireScarletSeashellSepiaShadowSiennaSilverSinopiaSnowSkobeloffStizzaStormcloudStrawSunglowSunsetTanTangeloTangerineTaupeTelemagentaTealTimberwolfTomatoToolboxThistleTopazTumbleweedTurquoiseUltramarineUbeUrobilinUmberVanillaVerdigrisVeronicaVioletViridianWaterspoutWengeWheatWineWisteriaXanaduWhiteYellowZaffre -------------------------------------------------------------------------------- /test/node_modules/username-generator-api/api/flattenedFlowers_22.bin: -------------------------------------------------------------------------------- 1 | PinkPrimroseHardLeavedPocketOrchidCanterburyBellsSweetPeaEnglishMarigoldTigerLilyMoonOrchidBirdOfParadiseMonkshoodGlobeThistleSnapdragonColtsFootKingProteaSpearThistleYellowIrisGlobeFlowerPurpleConeflowerPeruvianLilyBalloonFlowerGiantWhiteArumLilyFireLilyPincushionFlowerGrapeHyacinthFritillaryRedGingerStemlessGentianCornPoppyPrinceOfWalesFeathersArtichokeSweetWilliamCarnationGardenPhloxLoveInTheMistMexicanAsterAlpineSeaHollyRubyLippedCattleyaCapeFlowerGreatMasterwortSiamTulipLentenRoseBarbetonDaisyPoinsettiaDaffodilSwordLilyBoleroDeepBlueCommonDandelionWallflowerButtercupWildPansyPrimulaOxeyeDaisySunflowerPelargoniumBishopOfLlandaffGauraGeraniumOrangeDahliaJapaneseAnemonePinkYellowDahliaCautleyaSpicataBlackEyedSusanSilverbushCalifornianPoppyOsteospermumSpringCrocusBeardedIrisGazaniaWindflowerTreePoppyAzaleaWaterLilyRoseThornAppleMorningGloryPetuniaPassionFlowerLotusLotusToadLilyAnthuriumFrangipaniClematisHibiscusColumbineTreeMallowMagnoliaCyclamenDesertRoseHippeastrumWatercressCannaLilyFoxgloveBeeBalmBallMossMexicanPetuniaBougainvilleaCamelliaBromeliaBlanketFlowerTrumpetCreeperMarigoldAbutilonBlackberryLilyMallowAgeratumAconiteAcaciaAfricanDaisyAlliumAgapanthusAnemoneAlchemillaAlstroemeriaAmaranthusAmaryllisAniseHyssopAsterArmeriaMaritimaAzaleaBabysBreathBachelorsButtonBalloonFlowerBallotaBeeBalmBegoniaBergeniaBellflowerBlanketFlowerBergamotBillbergiaBletillaBlazingStarBleedingHeartBlack-eyedSusanBluestarFlowerBluebonnetsBlue-eyedGrassBottlebrushBorageBouvardiaBrachyscomeBrassicaBroomButtercupButterflyBushCaliforniaPoppyCalceolariaCallaLilyCalendulaCannaLilyCandytuftCamelliaCapeLeadwortCapePrimroseCarnationCatmintCardinalFlowerCatharanthusCerastiumTomentosumCelosiaChicoryChionodoxaClarkiaChrysanthemumClematisCloverColumbineConeflowerCoralBellsCoralVineCoreopsisCornflowerCorydalisCrocosmiaCosmosCrocusCotoneasterCrownImperialCyclamenCuckooFlowerDaffodilDahliaDaisyDandelionDaphneDaylilyDecumariaDelphiniumDesertRoseDeutziaDianellaDianthusBarbatusDietesDiasciaDillDisaAlyssumEchinopsEchiumElderEpimediumEnglishBluebellEremurusEricaErigeronEuphorbiaEustomaEveningPrimroseFallCrocusFeverfewFlannelFlowerFirethornFlaxFlowerFlamingKatyFloweringDogwoodForgetMeNotForsythiaFoxgloveFourOclockFrangipaniFlowerFreesiaFrenchMarigoldFuchsiaGaillardiaGardeniaGazaniaGeraniumGladiolasGerberaFlowerDutchIrisGoldenrodGrapeHyacinthGuzmaniaHawthornHebeHeleniumHelichrysumHeatherHeliotropeHelleboreHibiscusHostaHyacinthHydrangeaHyssopIcePlantHollyhockIpomoeaLobataIcelandPoppyImpatiensIrisIxiaIxoraJacobsLadderJasmineJohnnyJumpUpKaffirLilyKalmiaKangarooPawKnautiaKniphofiaLadysSlipperLaeliaLantanaLarkspurLavateraLemonVerbenaLewesiaLavenderLilacLilyOfTheValleyHoneysuckleLilyLinariaLotusLoveInTheMistLunariaLupinMagnoliaMalteseCrossMandevillaMargueriteDaisyMarigoldMatthiolaMayflowerMeconopsisMimosaMoonflowerVineMonksHoodMorningGloryMossRoseMoraeaNasturtiumNemesiaNemophilaNarcissusNeoregeliaHollyNewZealandTeaTreeNierembergiaOleanderNolanaOleariaNerineOrientalPoppyOrnamentalCherryOrnithogalumOsteospermumOrientalLilyOxalisOxeyeDaisyOysterPlantPaintedDaisyPassionFlowerParodiaPeaceLilyPelargoniumPenstemonPeonyPeriwinklePersianButtercupPetuniaPhloxOrchidPhotiniaPhysostegiaPincushionFlowerPoinsettiaPinksPansyPotentillaPolyanthusPoppyQueenAnnesLaceQuakerLadiesQueenOfTheMeadowPowderPuffQueensCupQuinceRainLilyRondeletiaRockRoseRoseOfSharonRosesSaintJohnsWortSageScaevolaScentedGeraniumScillaSedumShastaDaisySileneSnapdragonSnowdropSnowflakeSoapwortSpeedwellStarflowerStaticeSunflowerSweetPeaTigerFlowerTithoniaTobaccoPlantTracheliumTrilliumTriteleiaTritoniaCrocataTrolliusTrumpetVineTuberoseTulipUrnPlantUrsiniaValerianVerbenaUvaUrsiViburnumViolaVirginiaCreeperWaterLiliesTeaRoseWaxPlantWandflowerWedeliaWeigelaWinterJasmineWhirlingButterfliesWinterberryWishboneFlowerWoollyVioletXanthocerasSorbifoliumXylosmaXerophyllumWallflowerWatsoniaXylobiumYarrowYellowArchangelYellow-eyedGrassYellowBellZenobiaZinnia -------------------------------------------------------------------------------- /test/node_modules/username-generator-api/api/generator.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const {readdir,stat,read,open } = require('node:fs/promises'); 3 | const [atbSize,colSize,flwSize]=[15,15,22]; 4 | const [atbFSize,colFSize,flwFSize]=[0xC30,0xCD5,0x228C]; 5 | const { Buffer } = require('node:buffer'); 6 | 7 | const generateUsername = async ()=>{ 8 | const atbLength=atbFSize/atbSize; 9 | const colLength=colFSize/colSize; 10 | const flwLength=flwFSize/flwSize; 11 | 12 | const atbRndIndex = Math.floor(Math.random() * atbLength); 13 | const colRndIndex = Math.floor(Math.random() * colLength); 14 | const flwRndIndex = Math.floor(Math.random() * flwLength); 15 | 16 | const atbArray = new Buffer.alloc(atbSize); 17 | const colArray = new Buffer.alloc(colSize); 18 | const flwArray = new Buffer.alloc(flwSize); 19 | 20 | const dec = new TextDecoder(); 21 | 22 | let foHandle ; 23 | try{ 24 | foHandle= await open(__dirname +`/flattenedAttributes_${atbSize}.bin`); 25 | 26 | await foHandle.read(atbArray, 0, atbSize, atbRndIndex*atbSize); 27 | }finally{ 28 | await foHandle?.close(); 29 | } 30 | try{ 31 | foHandle= await open(__dirname +`/flattenedColors_${colSize}.bin`); 32 | 33 | await foHandle.read(colArray, 0, colSize, colRndIndex*colSize); 34 | }finally{ 35 | await foHandle?.close(); 36 | } 37 | try{ 38 | foHandle= await open(__dirname +`/flattenedFlowers_${flwSize}.bin`); 39 | 40 | await foHandle.read(flwArray, 0, flwSize, flwRndIndex*flwSize); 41 | }finally{ 42 | await foHandle?.close(); 43 | } 44 | 45 | let result =''; 46 | 47 | for(const v of atbArray){ 48 | if(v===0) break; 49 | result+=String.fromCharCode(v); 50 | } 51 | 52 | for(const v of colArray){ 53 | if(v===0) break; 54 | result+=String.fromCharCode(v); 55 | } 56 | 57 | for(const v of flwArray){ 58 | if(v===0) break; 59 | result+=String.fromCharCode(v); 60 | } 61 | // const atbValue = atbArray.reduce.toString('utf-8'); 62 | // const colValue = colArray.toString('utf-8'); 63 | // const flwValue = flwArray.toString('utf-8'); 64 | 65 | 66 | return result; 67 | } 68 | 69 | module.exports.gen = async (options={}) => { 70 | 71 | options.maxLength = options.maxLength || (atbSize+colSize+flwSize); 72 | 73 | let username; 74 | let genCounter=0; 75 | while(!username || (username.length>options.maxLength && genCounter< 100)){ 76 | username=await generateUsername(); 77 | genCounter++; 78 | } 79 | 80 | return username; 81 | } 82 | -------------------------------------------------------------------------------- /test/node_modules/username-generator-api/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "username-generator-api", 3 | "version": "1.0.1", 4 | "description": "Generate random beuatiful usernames", 5 | "main": "api/generator.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/ChristianGreinke/beautiful-username-generator.git" 12 | }, 13 | "keywords": [ 14 | "username", 15 | "generator", 16 | "beautiful" 17 | ], 18 | "author": "Christian Greinke", 19 | "license": "MIT", 20 | "files":[ 21 | "api/flattenedAttributes_15.bin", 22 | "api/flattenedColors_15.bin", 23 | "api/flattenedFlowers_22.bin", 24 | "api/generator.js" 25 | ], 26 | "bugs": { 27 | "url": "https://github.com/ChristianGreinke/beautiful-username-generator/issues" 28 | }, 29 | "homepage": "https://github.com/ChristianGreinke/beautiful-username-generator#readme" 30 | } 31 | -------------------------------------------------------------------------------- /test/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "myapp", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "username-generator-api": "1.0.1" 9 | } 10 | }, 11 | "node_modules/username-generator-api": { 12 | "version": "1.0.1", 13 | "resolved": "https://registry.npmjs.org/username-generator-api/-/username-generator-api-1.0.1.tgz", 14 | "integrity": "sha512-pXk9SozPE/9oeiOosQIFDvNyna7qYv0dsCEeNPqPQepv6n2uyTecMNWG8D9qQ3vp3aoGEwUD/rGuYBT+HqxyhA==" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "username-generator-api": "1.0.1" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | const {gen}=require('username-generator-api'); 2 | 3 | (async ()=>{ 4 | console.log(await gen()); 5 | })(); --------------------------------------------------------------------------------