{"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;AAAA,OAAO;AAEP,SAAS,WAAW,QAAQ,oBAAoB,WAAW,2BAA2B,sBAAsB;AAC5G,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAMvB,IAAM,aAAN,MAAM,mBAAkB,OAAO;AAAA,EACrC,QAAe,yBAAyB,IAA8B;AACrE,SAAK,YAAY,KAAK,QAAQ,YAAY,IAAI,OAAO,KAAK,QAAQ,SAAS,IAAI;AAAA,EAChF;AAAA,EAEA,QAAe,kBAAkB,IAA8B;AAC9D,QAAI,KAAK,QAAQ,WAAW,yBAAyB;AAAM;AAC3D,kBAAc;AAAA,EACf;AAAA,EAEA,QAAe,SAAS,IAA8B;AACrD,QAAI,KAAK,QAAQ,WAAW,yBAAyB;AAAM;AAC3D,cAAU,OAAO,KAAK,+DAA+D;AACrF,cAAU,OAAO,KAAK,gEAAgE;AAEtF,UAAM,YAAY,UAAU,OAAO,OAAO,MAAM;AAChD,UAAM,WAAW,UAAU,OAAO,OAAO,MAAM,OAAO,CAAC,KAAK,QAAQ,OAAO,IAAI,eAAe,IAAI,CAAC;AACnG,gBAAY,MAAM;AACjB,gBAAU,OAAO,KAAK,eAAe,WAAW,QAAQ;AAAA,IACzD,GAAG,GAAM;AAAA,EACV;AACD;AArBsC;AAA/B,IAAM,YAAN;AAuBP,eAAe,QAAQ,sCAAsC,UAAU,yBAAyB,GAAG,oCAAoC;AACvI,eAAe,QAAQ,+BAA+B,UAAU,kBAAkB,GAAG,6BAA6B;AAClH,eAAe,QAAQ,sBAAsB,UAAU,SAAS,GAAG,oBAAoB","sourcesContent":["import './index';\n\nimport { container, Plugin, postInitialization, postLogin, preGenericsInitialization, SapphireClient } from '@sapphire/framework';\nimport { Client } from './lib/structures';\nimport { AnalyticsSync } from './lib/types';\nimport { loadListeners } from './listeners/_load';\n\n/**\n * Plugin that allows to manage nodejs application environment variables.\n * @since 1.0.0\n */\nexport class EnvPlugin extends Plugin {\n\tpublic static [preGenericsInitialization](this: SapphireClient): void {\n\t\tthis.analytics = this.options.analytics ? new Client(this.options.analytics) : null;\n\t}\n\n\tpublic static [postInitialization](this: SapphireClient): void {\n\t\tif (this.options.analytics?.loadDefaultListeners !== true) return;\n\t\tloadListeners();\n\t}\n\n\tpublic static [postLogin](this: SapphireClient): void {\n\t\tif (this.options.analytics?.loadDefaultListeners !== true) return;\n\t\tcontainer.logger.info('[InfluxDB-Plugin]: Enabled. Synchronizing stats with InfluxDB');\n\t\tcontainer.logger.info('[InfluxDB-Plugin]: Auto-posting of statistics has been enabled');\n\n\t\tconst rawGuilds = container.client.guilds.cache.size;\n\t\tconst rawUsers = container.client.guilds.cache.reduce((acc, val) => acc + (val.memberCount ?? 0), 0);\n\t\tsetInterval(() => {\n\t\t\tcontainer.client.emit(AnalyticsSync, rawGuilds, rawUsers);\n\t\t}, 60_000);\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(EnvPlugin[preGenericsInitialization], 'InfluxDB-PreGenericsInitialization');\nSapphireClient.plugins.registerPostInitializationHook(EnvPlugin[postInitialization], 'InfluxDB-postInitialization');\nSapphireClient.plugins.registerPostLoginHook(EnvPlugin[postLogin], 'InfluxDB-postLogin');\n"]}