brawlstats
Version:
A simple API Wrapper for Brawl Stars
1 lines • 56 kB
Source Map (JSON)
{"version":3,"sources":["../src/internal/container.ts","../src/lib/makeBrawlersMap.ts","../src/lib/helpers.ts","../src/lib/structures/Structure.ts","../src/lib/errors/BrawlAPIError.ts","../src/lib/utils.ts","../src/lib/managers/BattlelogManager.ts","../src/lib/structures/Club.ts","../src/lib/managers/ClubManager.ts","../src/lib/managers/LeaderboardManager.ts","../src/lib/structures/Leaderboard.ts","../src/lib/structures/Player.ts","../src/lib/managers/PlayerManager.ts","../src/lib/managers/RotationManager.ts","../src/lib/Client.ts","../src/lib/types/enums.ts"],"sourcesContent":["import type { ClientOptions } from '..';\n\nexport const container: Container = {};\n\nexport interface Container {\n\toptions?: ClientOptions;\n}\n","import Collection from '@discordjs/collection';\nimport type { BrawlerInterface, Brawlers, BrawlersType } from './types';\n\n/**\n * All the brawlers from the API wrapped inside a Map.\n */\nexport function makeBrawlersMap() {\n\tconst collection = new Collection<Brawlers | BrawlersType, BrawlerInterface>();\n\tcollection.set('SHELLY', {\n\t\tid: 16000000,\n\t\tname: 'SHELLY',\n\t\tstarPowers: [\n\t\t\t{ id: 23000076, name: 'SHELL SHOCK' },\n\t\t\t{ id: 23000135, name: 'BAND-AID' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000255, name: 'FAST FORWARD' },\n\t\t\t{ id: 23000288, name: 'CLAY PIGEONS' }\n\t\t]\n\t});\n\tcollection.set('COLT', {\n\t\tid: 16000001,\n\t\tname: 'COLT',\n\t\tstarPowers: [\n\t\t\t{ id: 23000077, name: 'SLICK BOOTS' },\n\t\t\t{ id: 23000138, name: 'MAGNUM SPECIAL' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000273, name: 'SPEEDLOADER' },\n\t\t\t{ id: 23000319, name: 'SILVER BULLET' }\n\t\t]\n\t});\n\tcollection.set('BULL', {\n\t\tid: 16000002,\n\t\tname: 'BULL',\n\t\tstarPowers: [\n\t\t\t{ id: 23000078, name: 'BERSERKER' },\n\t\t\t{ id: 23000137, name: 'TOUGH GUY' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000272, name: 'T-BONE INJECTOR' },\n\t\t\t{ id: 23000310, name: 'STOMPER' }\n\t\t]\n\t});\n\tcollection.set('BROCK', {\n\t\tid: 16000003,\n\t\tname: 'BROCK',\n\t\tstarPowers: [\n\t\t\t{ id: 23000079, name: 'MORE ROCKETS!' },\n\t\t\t{ id: 23000150, name: 'ROCKET NO. 4' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000245, name: 'ROCKET LACES' },\n\t\t\t{ id: 23000316, name: 'ROCKET FUEL' }\n\t\t]\n\t});\n\tcollection.set('RICO', {\n\t\tid: 16000004,\n\t\tname: 'RICO',\n\t\tstarPowers: [\n\t\t\t{ id: 23000080, name: 'SUPER BOUNCY' },\n\t\t\t{ id: 23000156, name: 'ROBO RETREAT' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000246, name: 'MULTIBALL LAUNCHER' },\n\t\t\t{ id: 23000409, name: 'BOUNCY CASTLE' }\n\t\t]\n\t});\n\tcollection.set('SPIKE', {\n\t\tid: 16000005,\n\t\tname: 'SPIKE',\n\t\tstarPowers: [\n\t\t\t{ id: 23000081, name: 'FERTILIZE' },\n\t\t\t{ id: 23000151, name: 'CURVEBALL' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000247, name: 'POPPING PINCUSHION' },\n\t\t\t{ id: 23000406, name: 'LIFE PLANT' }\n\t\t]\n\t});\n\tcollection.set('BARLEY', {\n\t\tid: 16000006,\n\t\tname: 'BARLEY',\n\t\tstarPowers: [\n\t\t\t{ id: 23000082, name: 'MEDICAL USE' },\n\t\t\t{ id: 23000158, name: 'EXTRA NOXIOUS' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000250, name: 'STICKY SYRUP MIXER' },\n\t\t\t{ id: 23000293, name: 'HERBAL TONIC' }\n\t\t]\n\t});\n\tcollection.set('JESSIE', {\n\t\tid: 16000007,\n\t\tname: 'JESSIE',\n\t\tstarPowers: [\n\t\t\t{ id: 23000083, name: 'ENERGIZE' },\n\t\t\t{ id: 23000149, name: 'SHOCKY' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000251, name: 'SPARK PLUG' },\n\t\t\t{ id: 23000295, name: 'RECOIL SPRING' }\n\t\t]\n\t});\n\tcollection.set('NITA', {\n\t\tid: 16000008,\n\t\tname: 'NITA',\n\t\tstarPowers: [\n\t\t\t{ id: 23000084, name: 'BEAR WITH ME' },\n\t\t\t{ id: 23000136, name: 'HYPER BEAR' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000249, name: 'BEAR PAWS' },\n\t\t\t{ id: 23000314, name: 'FAUX FUR' }\n\t\t]\n\t});\n\tcollection.set('DYNAMIKE', {\n\t\tid: 16000009,\n\t\tname: 'DYNAMIKE',\n\t\tstarPowers: [\n\t\t\t{ id: 23000085, name: 'DYNA-JUMP' },\n\t\t\t{ id: 23000155, name: 'DEMOLITION' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000258, name: 'FIDGET SPINNER' },\n\t\t\t{ id: 23000294, name: 'SATCHEL CHARGE' }\n\t\t]\n\t});\n\tcollection.set('EL PRIMO', {\n\t\tid: 16000010,\n\t\tname: 'EL PRIMO',\n\t\tstarPowers: [\n\t\t\t{ id: 23000086, name: 'EL FUEGO' },\n\t\t\t{ id: 23000140, name: 'METEOR RUSH' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000264, name: 'SUPLEX SUPPLEMENT' },\n\t\t\t{ id: 23000292, name: 'ASTEROID BELT' }\n\t\t]\n\t});\n\tcollection.set('MORTIS', {\n\t\tid: 16000011,\n\t\tname: 'MORTIS',\n\t\tstarPowers: [\n\t\t\t{ id: 23000087, name: 'CREEPY HARVEST' },\n\t\t\t{ id: 23000154, name: 'COILED SNAKE' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000265, name: 'COMBO SPINNER' },\n\t\t\t{ id: 23000290, name: 'SURVIVAL SHOVEL' }\n\t\t]\n\t});\n\tcollection.set('CROW', {\n\t\tid: 16000012,\n\t\tname: 'CROW',\n\t\tstarPowers: [\n\t\t\t{ id: 23000088, name: 'EXTRA TOXIC' },\n\t\t\t{ id: 23000143, name: 'CARRION CROW' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000243, name: 'DEFENSE BOOSTER' },\n\t\t\t{ id: 23000286, name: 'SLOWING TOXIN' }\n\t\t]\n\t});\n\tcollection.set('POCO', {\n\t\tid: 16000013,\n\t\tname: 'POCO',\n\t\tstarPowers: [\n\t\t\t{ id: 23000089, name: 'DA CAPO!' },\n\t\t\t{ id: 23000144, name: 'SCREECHING SOLO' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000267, name: 'TUNING FORK' },\n\t\t\t{ id: 23000350, name: 'PROTECTIVE TUNES' }\n\t\t]\n\t});\n\tcollection.set('BO', {\n\t\tid: 16000014,\n\t\tname: 'BO',\n\t\tstarPowers: [\n\t\t\t{ id: 23000090, name: 'CIRCLING EAGLE' },\n\t\t\t{ id: 23000148, name: 'SNARE A BEAR' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000263, name: 'SUPER TOTEM' },\n\t\t\t{ id: 23000289, name: 'TRIPWIRE' }\n\t\t]\n\t});\n\tcollection.set('PIPER', {\n\t\tid: 16000015,\n\t\tname: 'PIPER',\n\t\tstarPowers: [\n\t\t\t{ id: 23000091, name: 'AMBUSH' },\n\t\t\t{ id: 23000152, name: 'SNAPPY SNIPING' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000268, name: 'AUTO AIMER' },\n\t\t\t{ id: 23000291, name: 'HOMEMADE RECIPE' }\n\t\t]\n\t});\n\tcollection.set('PAM', {\n\t\tid: 16000016,\n\t\tname: 'PAM',\n\t\tstarPowers: [\n\t\t\t{ id: 23000092, name: \"MAMA'S HUG\" },\n\t\t\t{ id: 23000139, name: \"MAMA'S SQUEEZE\" }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000257, name: 'PULSE MODULATOR' },\n\t\t\t{ id: 23000404, name: 'SCRAPSUCKER' }\n\t\t]\n\t});\n\tcollection.set('TARA', {\n\t\tid: 16000017,\n\t\tname: 'TARA',\n\t\tstarPowers: [\n\t\t\t{ id: 23000093, name: 'BLACK PORTAL' },\n\t\t\t{ id: 23000160, name: 'HEALING SHADE' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000266, name: 'PSYCHIC ENHANCER' },\n\t\t\t{ id: 23000356, name: 'SUPPORT FROM BEYOND' }\n\t\t]\n\t});\n\tcollection.set('DARRYL', {\n\t\tid: 16000018,\n\t\tname: 'DARRYL',\n\t\tstarPowers: [\n\t\t\t{ id: 23000094, name: 'STEEL HOOPS' },\n\t\t\t{ id: 23000157, name: 'ROLLING RELOAD' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000260, name: 'RECOILING ROTATOR' },\n\t\t\t{ id: 23000313, name: 'TAR BARREL' }\n\t\t]\n\t});\n\tcollection.set('PENNY', {\n\t\tid: 16000019,\n\t\tname: 'PENNY',\n\t\tstarPowers: [\n\t\t\t{ id: 23000099, name: 'LAST BLAST' },\n\t\t\t{ id: 23000142, name: 'BALLS OF FIRE' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000248, name: 'POCKET DETONATOR' },\n\t\t\t{ id: 23000287, name: \"CAPTAIN'S COMPASS\" }\n\t\t]\n\t});\n\tcollection.set('FRANK', {\n\t\tid: 16000020,\n\t\tname: 'FRANK',\n\t\tstarPowers: [\n\t\t\t{ id: 23000104, name: 'POWER GRAB' },\n\t\t\t{ id: 23000153, name: 'SPONGE' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000261, name: 'ACTIVE NOISE CANCELING' },\n\t\t\t{ id: 23000351, name: 'IRRESISTIBLE ATTRACTION' }\n\t\t]\n\t});\n\tcollection.set('GENE', {\n\t\tid: 16000021,\n\t\tname: 'GENE',\n\t\tstarPowers: [\n\t\t\t{ id: 23000109, name: 'MAGIC PUFFS' },\n\t\t\t{ id: 23000159, name: 'SPIRIT SLAP' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000252, name: 'LAMP BLOWOUT' },\n\t\t\t{ id: 23000352, name: 'VENGEFUL SPIRITS' }\n\t\t]\n\t});\n\tcollection.set('TICK', {\n\t\tid: 16000022,\n\t\tname: 'TICK',\n\t\tstarPowers: [\n\t\t\t{ id: 23000114, name: 'WELL OILED' },\n\t\t\t{ id: 23000161, name: 'AUTOMA-TICK RELOAD' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000253, name: 'MINE MANIA' },\n\t\t\t{ id: 23000355, name: 'LAST HURRAH' }\n\t\t]\n\t});\n\tcollection.set('LEON', {\n\t\tid: 16000023,\n\t\tname: 'LEON',\n\t\tstarPowers: [\n\t\t\t{ id: 23000119, name: 'SMOKE TRAILS' },\n\t\t\t{ id: 23000141, name: 'INVISIHEAL' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000276, name: 'CLONE PROJECTOR' },\n\t\t\t{ id: 23000408, name: 'LOLLIPOP DROP' }\n\t\t]\n\t});\n\tcollection.set('ROSA', {\n\t\tid: 16000024,\n\t\tname: 'ROSA',\n\t\tstarPowers: [\n\t\t\t{ id: 23000124, name: 'PLANT LIFE' },\n\t\t\t{ id: 23000147, name: 'THORNY GLOVES' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000242, name: 'GROW LIGHT' },\n\t\t\t{ id: 23000348, name: 'UNFRIENDLY BUSHES' }\n\t\t]\n\t});\n\tcollection.set('CARL', {\n\t\tid: 16000025,\n\t\tname: 'CARL',\n\t\tstarPowers: [\n\t\t\t{ id: 23000129, name: 'POWER THROW' },\n\t\t\t{ id: 23000145, name: 'PROTECTIVE PIROUETTE' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000262, name: 'HEAT EJECTOR' },\n\t\t\t{ id: 23000317, name: 'FLYING HOOK' }\n\t\t]\n\t});\n\tcollection.set('BIBI', {\n\t\tid: 16000026,\n\t\tname: 'BIBI',\n\t\tstarPowers: [\n\t\t\t{ id: 23000134, name: 'HOME RUN' },\n\t\t\t{ id: 23000146, name: 'BATTING STANCE' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000275, name: 'VITAMIN BOOSTER' },\n\t\t\t{ id: 23000458, name: 'EXTRA STICKY' }\n\t\t]\n\t});\n\tcollection.set('8-BIT', {\n\t\tid: 16000027,\n\t\tname: '8-BIT',\n\t\tstarPowers: [\n\t\t\t{ id: 23000168, name: 'BOOSTED BOOSTER' },\n\t\t\t{ id: 23000181, name: 'PLUGGED IN' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000259, name: 'CHEAT CARTRIDGE' },\n\t\t\t{ id: 23000318, name: 'EXTRA CREDITS' }\n\t\t]\n\t});\n\tcollection.set('SANDY', {\n\t\tid: 16000028,\n\t\tname: 'SANDY',\n\t\tstarPowers: [\n\t\t\t{ id: 23000186, name: 'RUDE SANDS' },\n\t\t\t{ id: 23000187, name: 'HEALING WINDS' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000270, name: 'SLEEP STIMULATOR' },\n\t\t\t{ id: 23000405, name: 'SWEET DREAMS' }\n\t\t]\n\t});\n\tcollection.set('BEA', {\n\t\tid: 16000029,\n\t\tname: 'BEA',\n\t\tstarPowers: [\n\t\t\t{ id: 23000192, name: 'INSTA BEALOAD' },\n\t\t\t{ id: 23000193, name: 'HONEYCOMB' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000271, name: 'HONEY MOLASSES' },\n\t\t\t{ id: 23000312, name: 'RATTLED HIVE' }\n\t\t]\n\t});\n\tcollection.set('EMZ', {\n\t\tid: 16000030,\n\t\tname: 'EMZ',\n\t\tstarPowers: [\n\t\t\t{ id: 23000198, name: 'BAD KARMA' },\n\t\t\t{ id: 23000199, name: 'HYPE' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000274, name: 'FRIENDZONER' },\n\t\t\t{ id: 23000459, name: 'ACID SPRAY' }\n\t\t]\n\t});\n\tcollection.set('MR. P', {\n\t\tid: 16000031,\n\t\tname: 'MR. P',\n\t\tstarPowers: [\n\t\t\t{ id: 23000204, name: 'HANDLE WITH CARE' },\n\t\t\t{ id: 23000205, name: 'REVOLVING DOOR' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000269, name: 'SERVICE BELL' },\n\t\t\t{ id: 23000349, name: 'PORTER REINFORCEMENTS' }\n\t\t]\n\t});\n\tcollection.set('MAX', {\n\t\tid: 16000032,\n\t\tname: 'MAX',\n\t\tstarPowers: [\n\t\t\t{ id: 23000210, name: 'SUPER CHARGED' },\n\t\t\t{ id: 23000211, name: 'RUN N GUN' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000254, name: 'PHASE SHIFTER' },\n\t\t\t{ id: 23000311, name: 'SNEAKY SNEAKERS' }\n\t\t]\n\t});\n\tcollection.set('JACKY', {\n\t\tid: 16000034,\n\t\tname: 'JACKY',\n\t\tstarPowers: [\n\t\t\t{ id: 23000222, name: 'COUNTER CRUSH' },\n\t\t\t{ id: 23000223, name: 'HARDY HARD HAT' }\n\t\t],\n\t\tgadgets: [{ id: 23000256, name: 'PNEUMATIC BOOSTER' }]\n\t});\n\tcollection.set('GALE', {\n\t\tid: 16000035,\n\t\tname: 'GALE',\n\t\tstarPowers: [\n\t\t\t{ id: 23000228, name: 'BLUSTERY BLOW' },\n\t\t\t{ id: 23000229, name: 'FREEZING SNOW' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000277, name: 'SPRING EJECTOR' },\n\t\t\t{ id: 23000407, name: 'TWISTER' }\n\t\t]\n\t});\n\tcollection.set('NANI', {\n\t\tid: 16000036,\n\t\tname: 'NANI',\n\t\tstarPowers: [\n\t\t\t{ id: 23000234, name: 'AUTOFOCUS' },\n\t\t\t{ id: 23000235, name: 'TEMPERED STEEL' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000278, name: 'WARP BLAST' },\n\t\t\t{ id: 23000353, name: 'RETURN TO SENDER' }\n\t\t]\n\t});\n\tcollection.set('SPROUT', {\n\t\tid: 16000037,\n\t\tname: 'SPROUT',\n\t\tstarPowers: [\n\t\t\t{ id: 23000240, name: 'OVERGROWTH' },\n\t\t\t{ id: 23000241, name: 'PHOTOSYNTHESIS' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000244, name: 'GARDEN MULCHER' },\n\t\t\t{ id: 23000315, name: 'TRANSPLANT' }\n\t\t]\n\t});\n\tcollection.set('SURGE', {\n\t\tid: 16000038,\n\t\tname: 'SURGE',\n\t\tstarPowers: [\n\t\t\t{ id: 23000283, name: 'TO THE MAX!' },\n\t\t\t{ id: 23000284, name: 'SERVE ICE COLD' }\n\t\t],\n\t\tgadgets: [{ id: 23000285, name: 'POWER SURGE' }]\n\t});\n\tcollection.set('COLETTE', {\n\t\tid: 16000039,\n\t\tname: 'COLETTE',\n\t\tstarPowers: [\n\t\t\t{ id: 23000300, name: 'PUSH IT' },\n\t\t\t{ id: 23000301, name: 'MASS TAX' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000302, name: 'NA-AH!' },\n\t\t\t{ id: 23000457, name: 'GOTCHA!' }\n\t\t]\n\t});\n\tcollection.set('AMBER', {\n\t\tid: 16000040,\n\t\tname: 'AMBER',\n\t\tstarPowers: [\n\t\t\t{ id: 23000307, name: 'WILD FLAMES' },\n\t\t\t{ id: 23000308, name: \"SCORCHIN' SIPHON\" }\n\t\t],\n\t\tgadgets: [{ id: 23000309, name: 'FIRE STARTERS' }]\n\t});\n\tcollection.set('LOU', {\n\t\tid: 16000041,\n\t\tname: 'LOU',\n\t\tstarPowers: [\n\t\t\t{ id: 23000324, name: 'SUPERCOOL' },\n\t\t\t{ id: 23000325, name: 'HYPOTHERMIA' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000326, name: 'ICE BLOCK' },\n\t\t\t{ id: 23000400, name: 'CRYO SYRUP' }\n\t\t]\n\t});\n\tcollection.set('BYRON', {\n\t\tid: 16000042,\n\t\tname: 'BYRON',\n\t\tstarPowers: [\n\t\t\t{ id: 23000331, name: 'MALAISE' },\n\t\t\t{ id: 23000332, name: 'INJECTION' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000333, name: 'SHOT IN THE ARM' },\n\t\t\t{ id: 23000461, name: 'BOOSTER SHOTS' }\n\t\t]\n\t});\n\tcollection.set('EDGAR', {\n\t\tid: 16000043,\n\t\tname: 'EDGAR',\n\t\tstarPowers: [\n\t\t\t{ id: 23000338, name: 'HARD LANDING' },\n\t\t\t{ id: 23000339, name: 'FISTICUFFS' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000340, name: \"LET'S FLY\" },\n\t\t\t{ id: 23000403, name: 'HARDCORE' }\n\t\t]\n\t});\n\tcollection.set('COLONEL RUFFS', {\n\t\tid: 16000044,\n\t\tname: 'COLONEL RUFFS',\n\t\tstarPowers: [\n\t\t\t{ id: 23000345, name: 'AIR SUPERIORITY' },\n\t\t\t{ id: 23000346, name: 'FIELD PROMOTION' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000347, name: 'TAKE COVER' },\n\t\t\t{ id: 23000402, name: 'AIR SUPPORT' }\n\t\t]\n\t});\n\tcollection.set('STU', {\n\t\tid: 16000045,\n\t\tname: 'STU',\n\t\tstarPowers: [\n\t\t\t{ id: 23000362, name: 'ZERO DRAG' },\n\t\t\t{ id: 23000363, name: 'GASO-HEAL' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000364, name: 'SPEED ZONE' },\n\t\t\t{ id: 23000401, name: 'BREAKTHROUGH' }\n\t\t]\n\t});\n\tcollection.set('BELLE', {\n\t\tid: 16000046,\n\t\tname: 'BELLE',\n\t\tstarPowers: [\n\t\t\t{ id: 23000369, name: 'POSITIVE FEEDBACK' },\n\t\t\t{ id: 23000370, name: 'GROUNDED' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000371, name: 'NEST EGG' },\n\t\t\t{ id: 23000463, name: 'REVERSE POLARITY' }\n\t\t]\n\t});\n\tcollection.set('SQUEAK', {\n\t\tid: 16000047,\n\t\tname: 'SQUEAK',\n\t\tstarPowers: [\n\t\t\t{ id: 23000376, name: 'CHAIN REACTION' },\n\t\t\t{ id: 23000377, name: 'SUPER STICKY' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000378, name: 'WINDUP' },\n\t\t\t{ id: 23000462, name: 'RESIDUE' }\n\t\t]\n\t});\n\tcollection.set('GROM', {\n\t\tid: 16000048,\n\t\tname: 'GROM',\n\t\tstarPowers: [\n\t\t\t{ id: 23000383, name: 'FOOT PATROL' },\n\t\t\t{ id: 23000384, name: 'X-FACTOR' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000385, name: 'WATCHTOWER' },\n\t\t\t{ id: 23000460, name: 'RADIO CHECK' }\n\t\t]\n\t});\n\tcollection.set('BUZZ', {\n\t\tid: 16000049,\n\t\tname: 'BUZZ',\n\t\tstarPowers: [\n\t\t\t{ id: 23000390, name: 'TOUGHER TORPEDO' },\n\t\t\t{ id: 23000391, name: 'EYES SHARP' }\n\t\t],\n\t\tgadgets: [{ id: 23000392, name: 'RESERVE BUOY' }]\n\t});\n\tcollection.set('GRIFF', {\n\t\tid: 16000050,\n\t\tname: 'GRIFF',\n\t\tstarPowers: [\n\t\t\t{ id: 23000397, name: 'KEEP THE CHANGE' },\n\t\t\t{ id: 23000398, name: 'BUSINESS RESILIENCE' }\n\t\t],\n\t\tgadgets: [{ id: 23000399, name: 'PIGGY BANK' }]\n\t});\n\tcollection.set('ASH', {\n\t\tid: 16000051,\n\t\tname: 'ASH',\n\t\tstarPowers: [\n\t\t\t{ id: 23000414, name: 'FIRST BASH' },\n\t\t\t{ id: 23000415, name: 'MAD AS HECK' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000416, name: 'CHILL PILL' },\n\t\t\t{ id: 23000465, name: 'ROTTEN BANANA' }\n\t\t]\n\t});\n\tcollection.set('MEG', {\n\t\tid: 16000052,\n\t\tname: 'MEG',\n\t\tstarPowers: [\n\t\t\t{ id: 23000421, name: 'FORCE FIELD' },\n\t\t\t{ id: 23000422, name: 'HEAVY METAL' }\n\t\t],\n\t\tgadgets: [{ id: 23000423, name: 'JOLTING VOLTS' }]\n\t});\n\tcollection.set('LOLA', {\n\t\tid: 16000053,\n\t\tname: 'LOLA',\n\t\tstarPowers: [\n\t\t\t{ id: 23000431, name: 'IMPROVISE' },\n\t\t\t{ id: 23000432, name: 'SEALED WITH A KISS' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000433, name: 'FREEZE FRAME' },\n\t\t\t{ id: 23000456, name: 'STUNT DOUBLE' }\n\t\t]\n\t});\n\tcollection.set('FANG', {\n\t\tid: 16000054,\n\t\tname: 'FANG',\n\t\tstarPowers: [\n\t\t\t{ id: 23000438, name: 'FRESH KICKS' },\n\t\t\t{ id: 23000439, name: 'DIVINE SOLES' }\n\t\t],\n\t\tgadgets: [\n\t\t\t{ id: 23000440, name: 'CORN-FU' },\n\t\t\t{ id: 23000464, name: 'ROUNDHOUSE KICK' }\n\t\t]\n\t});\n\tcollection.set('EVE', {\n\t\tid: 16000056,\n\t\tname: 'EVE',\n\t\tstarPowers: [{ id: 23000452, name: 'UNNATURAL ORDER' }],\n\t\tgadgets: [{ id: 23000454, name: 'GOTTA GO!' }]\n\t});\n\treturn collection;\n}\n","export function parseTag(tag: string) {\n\tif (tag.startsWith('%23')) return tag;\n\tif (tag.startsWith('#')) return tag.replaceAll('#', '%23');\n\treturn `%23${tag}`;\n}\nexport * from './makeBrawlersMap';\n","import { fetch } from '@sapphire/fetch';\n\nexport class Structure {\n\t#url = 'https://bsproxy.royaleapi.dev/v1';\n\t#endpoint: string;\n\tpublic constructor(endpoint: string) {\n\t\tthis.#endpoint = endpoint;\n\t}\n\n\tpublic async request<T>(endpoint = this.#endpoint, token: string = process.env.BRAWLSTARS_TOKEN as string) {\n\t\tif (this.#endpoint !== endpoint) endpoint = `${this.#endpoint}/${endpoint}`;\n\t\treturn fetch<T>(`${this.#url}/${endpoint}`, {\n\t\t\theaders: {\n\t\t\t\tAuthorization: `Bearer ${token}`\n\t\t\t}\n\t\t});\n\t}\n}\n","export class BrawlAPIError extends Error {\n\tpublic readonly reason: string;\n\tpublic readonly code: number;\n\tpublic constructor(options: BrawlAPIError.Options) {\n\t\tswitch (options.reason) {\n\t\t\tcase 'accessDenied':\n\t\t\t\toptions.message = 'Invalid API key provided';\n\t\t\t\tbreak;\n\t\t\tcase 'accessDenied.invalidIp':\n\t\t\t\toptions.message = `API key does not allow access from IP ${options.message.split('IP ')[1]}`;\n\t\t\t\tbreak;\n\t\t}\n\t\tsuper(options.message);\n\t\tthis.reason = options.reason;\n\t\tthis.code = options.code;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/class-literal-property-style\n\tpublic override get name(): string {\n\t\treturn 'BrawlAPIError';\n\t}\n}\n\nexport namespace BrawlAPIError {\n\texport interface Options {\n\t\tcode: number;\n\t\treason: string;\n\t\tmessage: string;\n\t}\n}\n","import type { QueryError } from '@sapphire/fetch';\nimport { BrawlAPIError } from './errors/BrawlAPIError';\n\nexport function shallowEqual(object1: ObjectType, object2: ObjectType) {\n\tconst keys1 = Object.keys(object1);\n\tconst keys2 = Object.keys(object2);\n\tif (keys1.length !== keys2.length) {\n\t\treturn false;\n\t}\n\tfor (const key of keys1) {\n\t\tif (object1[key] !== object2[key]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\nexport async function from<T>(promiseOrCb: Awaitable<T> | ((...args: unknown[]) => Awaitable<T>)): Promise<T> {\n\ttry {\n\t\treturn await (isFunction(promiseOrCb) ? promiseOrCb() : promiseOrCb);\n\t} catch (e) {\n\t\tconst error = e as QueryError;\n\t\tthrow new BrawlAPIError({\n\t\t\tcode: error.code,\n\t\t\tmessage: error.toJSON().message,\n\t\t\treason: error.toJSON().reason\n\t\t});\n\t}\n}\n\nexport function dateFromBrawlStars(value: string, timeZone: string) {\n\treturn new Date(\n\t\tNumber(value.substring(0, 4)),\n\t\tNumber(value.substring(4, 6)) - 1,\n\t\tNumber(value.substring(6, 8)),\n\t\tNumber(value.substring(9, 11)),\n\t\tNumber(value.substring(11, 13))\n\t).toLocaleString('en-US', {\n\t\ttimeZone\n\t});\n}\n\nexport function minutes(value: number) {\n\treturn value * 60;\n}\n\nexport function hours(value: number) {\n\treturn value * minutes(60);\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isFunction(input: unknown): input is Function {\n\treturn typeof input === 'function';\n}\n\ntype Awaitable<T> = PromiseLike<T> | T;\ninterface ObjectType {\n\t[key: string]: unknown;\n}\n","import { parseTag } from '../helpers';\nimport { Structure } from '../structures/Structure';\nimport type { Battle, Event } from '../types';\nimport { from } from '../utils';\n\nexport class BattlelogManager {\n\t#token: string;\n\tpublic constructor(token: string) {\n\t\tthis.#token = token;\n\t}\n\n\t/**\n\t * Get battlelog of a player from the API.\n\t * @param tag The tag of the player.\n\t */\n\tpublic fetch(tag: string) {\n\t\tconst structure = new Structure('players');\n\t\ttag = parseTag(tag);\n\t\treturn from(async () => {\n\t\t\tconst data = await structure.request<{ items: Battlelog[]; paging: unknown }>(`${tag}/battlelog`, this.#token);\n\t\t\treturn data.items;\n\t\t});\n\t}\n\n\t/**\n\t * Get battlelogs of multiple players from the API.\n\t * @param tags The tag of each player.\n\t */\n\tpublic async fetchMany(...tags: string[]) {\n\t\tconst battlelogs: Battlelog[][] = [];\n\t\tfor (const rawTag of tags) {\n\t\t\tconst tag = parseTag(rawTag);\n\t\t\tconst battlelog = await this.fetch(tag);\n\t\t\tbattlelogs.push(battlelog);\n\t\t}\n\t\treturn battlelogs;\n\t}\n}\n\nexport interface Battlelog {\n\tbattleTime: string;\n\tevent: Event;\n\tbattle: Battle;\n}\n","import { Structure } from './Structure';\nimport type { IClub, MembersEntity } from '../types';\n\n/**\n * The entity which we use to construct every club entry.\n */\nexport class Club extends Structure {\n\tpublic tag!: string;\n\tpublic name!: string;\n\tpublic description!: string;\n\tpublic type!: 'open' | 'closed';\n\tpublic badgeId!: number;\n\tpublic requiredTrophies!: number;\n\tpublic trophies!: number;\n\tpublic members!: MembersEntity[];\n\n\tpublic constructor(data: Omit<IClub, 'members'>) {\n\t\tsuper('clubs');\n\t\tObject.assign(this, data);\n\t}\n}\n","import { Structure } from '../structures/Structure';\nimport { Club } from '../structures/Club';\nimport { parseTag } from '../helpers';\nimport { from, minutes } from '../utils';\nimport NodeCache from 'node-cache';\nimport { container } from '../../internal/container';\n\nexport class ClubManager {\n\t#token: string;\n\t#cache = new NodeCache();\n\tpublic constructor(token: string) {\n\t\tthis.#token = token;\n\t}\n\n\t/**\n\t * Get details of a club from the API.\n\t * @async\n\t * @param {String} tag The tag of the club.\n\t */\n\tpublic fetch(tag: string) {\n\t\tif (this.#cache.has(tag)) {\n\t\t\treturn this.#cache.get<Club>(tag);\n\t\t}\n\t\tconst structure = new Structure('clubs');\n\t\ttag = parseTag(tag);\n\t\treturn from(async () => {\n\t\t\tconst data = await structure.request<Club>(`${tag}`, this.#token);\n\t\t\tconst club = new Club(data);\n\t\t\tthis.#cache.set(club.tag, club, container.options?.cache?.club?.timeout ?? minutes(10));\n\t\t\treturn club;\n\t\t});\n\t}\n\n\t/**\n\t * Get details of a multiple clubs from the API.\n\t * @async\n\t * @param {String} tags The tag of each club.\n\t */\n\tpublic async fetchMany(...tags: string[]) {\n\t\tconst clubs: Club[] = [];\n\t\tfor (const rawTag of tags) {\n\t\t\tconst tag = parseTag(rawTag);\n\t\t\tconst club = await this.fetch(tag);\n\t\t\tclubs.push(club!);\n\t\t}\n\t\treturn clubs;\n\t}\n}\n","import Collection from '@discordjs/collection';\nimport { makeBrawlersMap } from '../makeBrawlersMap';\nimport { Leaderboard } from '../structures/Leaderboard';\nimport { Structure } from '../structures/Structure';\nimport type { BrawlersType } from '../types';\nimport { from } from '../utils';\n\nexport class LeaderboardManager {\n\t#token: string;\n\n\tpublic constructor(token: string) {\n\t\tthis.#token = token;\n\t}\n\n\t/**\n\t * Fetch the leaderboards of a player or a club.\n\t * @param {RestLeaderboardOptions} options Options for the leaderboards.\n\t */\n\tpublic fetch(options: RestLeaderboardOptions): Promise<Collection<string, Leaderboard>>;\n\t/**\n\t * Fetch the leaderboards of a brawler.\n\t * @param {LeaderboardBrawlerOptions} options Options for the leaderboards.\n\t */\n\tpublic fetch(options: LeaderboardBrawlerOptions): Promise<Collection<string, Leaderboard>>;\n\t/**\n\t * Fetch the leaderboards.\n\t * @param {LeaderboardOptions} options Options for the leaderboards.\n\t */\n\tpublic fetch(options: LeaderboardOptions): Promise<Collection<string, Leaderboard>> {\n\t\tconst structure = new Structure('rankings');\n\t\tlet { mode, region, name } = options;\n\t\treturn from(async () => {\n\t\t\tname = name ?? 'SHELLY';\n\t\t\tregion ??= 'global';\n\t\t\tconst endpoint = mode === 'brawlers' ? `${region}/brawlers/${makeBrawlersMap().get(name)?.id}` : `${region}/${mode}`;\n\t\t\tconst data = await structure.request<{ items: Leaderboard[]; paging: unknown }>(endpoint, this.#token);\n\t\t\tswitch (mode) {\n\t\t\t\tcase 'players': {\n\t\t\t\t\tconst players = new Collection<string, Leaderboard>();\n\t\t\t\t\tfor (const player of data.items) {\n\t\t\t\t\t\tconst leaderboard = new Leaderboard(player);\n\t\t\t\t\t\tplayers.set(leaderboard.tag, leaderboard);\n\t\t\t\t\t}\n\t\t\t\t\treturn players;\n\t\t\t\t}\n\t\t\t\tcase 'brawlers': {\n\t\t\t\t\tconst brawlers = new Collection<string, Leaderboard>();\n\t\t\t\t\tfor (const player of data.items) {\n\t\t\t\t\t\tconst leaderboard = new Leaderboard(player);\n\t\t\t\t\t\tbrawlers.set(leaderboard.tag, leaderboard);\n\t\t\t\t\t}\n\t\t\t\t\treturn brawlers;\n\t\t\t\t}\n\t\t\t\tcase 'clubs': {\n\t\t\t\t\tconst clubs = new Collection<string, Leaderboard>();\n\t\t\t\t\tfor (const club of data.items) {\n\t\t\t\t\t\tconst leaderboard = new Leaderboard(club);\n\t\t\t\t\t\tclubs.set(leaderboard.tag, leaderboard);\n\t\t\t\t\t}\n\t\t\t\t\treturn clubs;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nexport interface LeaderboardOptions {\n\tmode: 'players' | 'clubs' | 'brawlers';\n\tregion: string;\n\tname?: BrawlersType;\n}\nexport interface LeaderboardBrawlerOptions {\n\tmode: 'brawlers';\n\tregion: string;\n\tname: BrawlersType;\n}\nexport interface RestLeaderboardOptions {\n\tmode: 'players' | 'clubs';\n\tregion: string;\n}\n","import type { Icon } from '../types';\nimport type { PlayerClub } from './Player';\nimport { Structure } from './Structure';\n\n/**\n * The entity which we use to construct every leaderboard entry.\n */\nexport class Leaderboard extends Structure {\n\tpublic tag!: string;\n\tpublic name!: string;\n\tpublic nameColor!: string;\n\tpublic icon!: Icon;\n\tpublic trophies!: number;\n\tpublic rank!: number;\n\tpublic club!: PlayerClub;\n\n\tpublic constructor(options: Omit<Leaderboard, 'constructor'>) {\n\t\tsuper('players');\n\t\tObject.assign(this, options);\n\t}\n}\n","import { Structure } from './Structure';\nimport type { Battlelog, StarPowersEntityOrGadgetsEntity } from '../types';\nimport { from } from '../utils';\n\n/**\n * The entity which we use to construct every player entry.\n */\nexport class Player extends Structure {\n\tpublic tag!: string;\n\tpublic name!: string;\n\tpublic nameColor!: string;\n\tpublic icon!: Icon;\n\tpublic trophies!: number;\n\tpublic highestTrophies!: number;\n\tpublic highestPowerPlayPoints!: number;\n\tpublic expLevel!: number;\n\tpublic expPoints!: number;\n\tpublic isQualifiedFromChampionshipChallenge!: boolean;\n\tpublic trioVictories!: number;\n\tpublic soloVictories!: number;\n\tpublic duoVictories!: number;\n\tpublic bestRoboRumbleTime!: number;\n\tpublic bestTimeAsBigBrawler!: number;\n\tpublic club!: PlayerClub;\n\tpublic brawlers?: BrawlersEntity[] | null;\n\tpublic constructor(options: Omit<IPlayer, '3vs3Victories'>) {\n\t\tsuper('players');\n\t\tObject.assign(this, options);\n\t}\n\n\t/**\n\t * Get battlelog of the player.\n\t */\n\tpublic getBattleLog() {\n\t\treturn from(async () => {\n\t\t\tconst tag = this.tag.replace('#', '%23');\n\t\t\tconst res = await super.request<Battlelog>(`${tag}/battlelog`);\n\t\t\treturn res.items;\n\t\t});\n\t}\n}\n\nexport interface IPlayer {\n\ttag: string;\n\tname: string;\n\tnameColor: string;\n\ticon: Icon;\n\ttrophies: number;\n\thighestTrophies: number;\n\thighestPowerPlayPoints: number;\n\texpLevel: number;\n\texpPoints: number;\n\tisQualifiedFromChampionshipChallenge: boolean;\n\t'3vs3Victories': number;\n\ttrioVictories: number;\n\tsoloVictories: number;\n\tduoVictories: number;\n\tbestRoboRumbleTime: number;\n\tbestTimeAsBigBrawler: number;\n\tclub: PlayerClub;\n\tbrawlers?: BrawlersEntity[] | null;\n}\ninterface Icon {\n\tid: number;\n}\nexport interface PlayerClub {\n\ttag: string;\n\tname: string;\n}\ninterface BrawlersEntity {\n\tid: number;\n\tname: string;\n\tpower: number;\n\trank: number;\n\ttrophies: number;\n\thighestTrophies: number;\n\tgears?: (GearsEntity | null)[] | null;\n\tstarPowers?: (StarPowersEntityOrGadgetsEntity | null)[] | null;\n\tgadgets?: StarPowersEntityOrGadgetsEntity[] | null;\n}\nexport interface GearsEntity {\n\tid: number;\n\tname: string;\n\tlevel: number;\n}\n","import { Structure } from '../structures/Structure';\nimport { Player } from '../structures/Player';\nimport { parseTag } from '../helpers';\nimport { from, minutes } from '../utils';\nimport NodeCache from 'node-cache';\nimport { container } from '../../internal/container';\n\nexport class PlayerManager {\n\t#token: string;\n\t#cache = new NodeCache();\n\tpublic constructor(token: string) {\n\t\tthis.#token = token;\n\t}\n\n\t/**\n\t * Get details of a player from the API.\n\t * @param {String} tag The tag of the player.\n\t */\n\tpublic fetch(tag: string) {\n\t\tif (this.#cache.has(tag)) {\n\t\t\treturn this.#cache.get<Player>(tag);\n\t\t}\n\t\tconst structure = new Structure('players');\n\t\ttag = parseTag(tag);\n\t\treturn from(async () => {\n\t\t\tconst data = await structure.request<Player>(`${tag}`, this.#token);\n\t\t\tconst player = new Player(data);\n\t\t\tthis.#cache.set(player.tag, player, container.options?.cache?.player?.timeout ?? minutes(10));\n\t\t\treturn player;\n\t\t});\n\t}\n\n\t/**\n\t * Get details of multiple players from the API.\n\t * @param {String} tags The tag of each player.\n\t */\n\tpublic async fetchMany(...tags: string[]) {\n\t\tconst players: Player[] = [];\n\t\tfor (const rawTag of tags) {\n\t\t\tconst tag = parseTag(rawTag);\n\t\t\tconst player = await this.fetch(tag);\n\t\t\tplayers.push(player!);\n\t\t}\n\t\treturn players;\n\t}\n}\n","import { Structure } from '../structures/Structure';\nimport type { IEvent } from '../types';\nimport { dateFromBrawlStars, from } from '../utils';\n\nexport class RotationManager {\n\t#token: string;\n\tpublic constructor(token: string) {\n\t\tthis.#token = token;\n\t}\n\n\t/**\n\t * Get the events rotation from the API.\n\t * @param {RotationOptions} options The options to for data formatting.\n\t */\n\tpublic get(options?: RotationOptions) {\n\t\tconst structure = new Structure('events/rotation');\n\t\treturn from(async () => {\n\t\t\tconst data = await structure.request<IEvent[]>('', this.#token);\n\t\t\tconst timezone = options?.timezone ?? 'Etc/UTC';\n\t\t\tconst mapped = data.map((event) => {\n\t\t\t\tevent.startTime = dateFromBrawlStars(event.startTime, timezone);\n\t\t\t\tevent.endTime = dateFromBrawlStars(event.endTime, timezone);\n\t\t\t\tevent.event.mode = event.event!.mode!.charAt(0).toUpperCase() + event.event!.mode!.slice(1);\n\t\t\t\treturn event;\n\t\t\t});\n\t\t\treturn mapped;\n\t\t});\n\t}\n}\n\n/**\n * The options to get a rotation.\n */\nexport interface RotationOptions {\n\t/**\n\t * The timezone to recieve times in, defaults to Etc/UTC.\n\t * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n\t */\n\ttimezone?: string;\n}\n","import { container } from '../internal/container';\nimport { makeBrawlersMap } from './makeBrawlersMap';\nimport { BattlelogManager } from './managers/BattlelogManager';\nimport { ClubManager } from './managers/ClubManager';\nimport { LeaderboardManager } from './managers/LeaderboardManager';\nimport { PlayerManager } from './managers/PlayerManager';\nimport { RotationManager } from './managers/RotationManager';\n\nexport class Client {\n\t#token!: string;\n\tpublic options: ClientOptions;\n\tpublic brawlers = makeBrawlersMap();\n\tpublic players: PlayerManager;\n\tpublic clubs: ClubManager;\n\tpublic rotation: RotationManager;\n\tpublic leaderboards: LeaderboardManager;\n\tpublic battlelogs: BattlelogManager;\n\n\tpublic constructor(options?: ClientOptions) {\n\t\tthis.options = options!;\n\t\tcontainer.options = this.options;\n\t\tthis.#token = options?.token ?? (process.env.BRAWLSTARS_TOKEN as string);\n\t\tthis.players = new PlayerManager(this.#token);\n\t\tthis.clubs = new ClubManager(this.#token);\n\t\tthis.rotation = new RotationManager(this.#token);\n\t\tthis.leaderboards = new LeaderboardManager(this.#token);\n\t\tthis.battlelogs = new BattlelogManager(this.#token);\n\t}\n}\n\n/**\n * The options to construct the Client\n */\nexport interface ClientOptions {\n\t/**\n\t * The token to use for the API\n\t * @default process.env.BRAWLSTARS_TOKEN\n\t */\n\ttoken?: string;\n\tcache?: CacheType;\n}\n\ninterface CacheType {\n\tplayer?: {\n\t\ttimeout: number;\n\t};\n\tclub?: {\n\t\ttimeout: number;\n\t};\n}\n","export const enum Brawlers {\n\tSHELLY = 'SHELLY',\n\tCOLT = 'COLT',\n\tBULL = 'BULL',\n\tBROCK = 'BROCK',\n\tRICO = 'RICO',\n\tSPIKE = 'SPIKE',\n\tBARLEY = 'BARLEY',\n\tJESSIE = 'JESSIE',\n\tNITA = 'NITA',\n\tDYNAMIKE = 'DYNAMIKE',\n\tEL_PRIMO = 'EL PRIMO',\n\tMORTIS = 'MORTIS',\n\tCROW = 'CROW',\n\tPOCO = 'POCO',\n\tBO = 'BO',\n\tPIPER = 'PIPER',\n\tPAM = 'PAM',\n\tTARA = 'TARA',\n\tDARRYL = 'DARRYL',\n\tPENNY = 'PENNY',\n\tFRANK = 'FRANK',\n\tGENE = 'GENE',\n\tTICK = 'TICK',\n\tLEON = 'LEON',\n\tROSA = 'ROSA',\n\tCARL = 'CARL',\n\tBIBI = 'BIBI',\n\tBIT8 = '8-BIT',\n\tSANDY = 'SANDY',\n\tBEA = 'BEA',\n\tEMZ = 'EMZ',\n\tMR_P = 'MR. P',\n\tMAX = 'MAX',\n\tJACKY = 'JACKY',\n\tGALE = 'GALE',\n\tNANI = 'NANI',\n\tSPROUT = 'SPROUT',\n\tSURGE = 'SURGE',\n\tCOLETTE = 'COLETTE',\n\tAMBER = 'AMBER',\n\tLOU = 'LOU',\n\tBYRON = 'BYRON',\n\tEDGAR = 'EDGAR',\n\tCOLONEL_RUFFS = 'COLONEL RUFFS',\n\tSTU = 'STU',\n\tBELLE = 'BELLE',\n\tSQUEAK = 'SQUEAK',\n\tGROM = 'GROM',\n\tBUZZ = 'BUZZ',\n\tGRIFF = 'GRIFF',\n\tASH = 'ASH',\n\tMEG = 'MEG',\n\tLOLA = 'LOLA',\n\tFANG = 'FANG',\n\tEVE = 'EVE'\n}\n\nexport const enum Events {\n\tGemGrab = 'GemGrab',\n\tSoloShowdown = 'SoloShowdown',\n\tBrawlBall = 'BrawlBall',\n\tHotZone = 'HotZone',\n\tDuoShowdown = 'DuoShowdown',\n\tKnockout = 'Knockout',\n\tBigGame = 'BigGame',\n\tDuels = 'Duels',\n\tWipeout = 'Wipeout',\n\tPayload = 'Payload'\n}\n"],"mappings":"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