├── .gitignore ├── LICENSE ├── README.md ├── package.json ├── src ├── config.json ├── index.js └── lib │ └── index.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* 131 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Raven's 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Sunucunuzun URL'ini koruyun 2 | > @romanwashere tarafından tasarlandı ve yapıldı, kullanılan modülü görmek için [tıkla](https://www.npmjs.com/package/vcord.js) 3 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "url-guard", 3 | "version": "1.0.0", 4 | "description": "URL guard botu.", 5 | "main": "./src/index.js", 6 | "scripts": { 7 | "test": "node ./src/index.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/rravencode/url-guard.git" 12 | }, 13 | "keywords": [ 14 | "vanity", 15 | "discord", 16 | "client" 17 | ], 18 | "author": "romanwashere, iqo", 19 | "license": "MIT", 20 | "bugs": { 21 | "url": "https://github.com/rravencode/url-guard/issues" 22 | }, 23 | "homepage": "https://github.com/rravencode/url-guard#readme", 24 | "dependencies": { 25 | "discord.js": "^14.11.0", 26 | "vcord.js": "^1.0.0" 27 | }, 28 | "devDependencies": { 29 | "@types/node": "^20.2.5" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "discord": { 3 | "clientToken": "kullanıcı token", 4 | "clientId": "kullanıcı id", 5 | "guildId": "sunucu id", 6 | "vanityCode": "korunacak url" 7 | }, 8 | "client": { 9 | "token": "bot token" 10 | } 11 | } -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | const { setVanity } = require('./lib'); 4 | const { discord: { guildId, clientId }, client: { token } } = require('./config.json'); 5 | 6 | const { Client, Events, AuditLogEvent, IntentsBitField, ChannelType, EmbedBuilder, codeBlock } = require('discord.js'); 7 | 8 | const client = new Client({ 9 | intents: [ 10 | IntentsBitField.Flags.Guilds, 11 | IntentsBitField.Flags.GuildModeration, 12 | IntentsBitField.Flags.GuildIntegrations 13 | ] 14 | }); 15 | 16 | client.once(Events.ClientReady, c => { 17 | console.log(`online :: ${c.user.username} atağa kalktı.`) 18 | }); 19 | 20 | client.on(Events.GuildUpdate, async (oldGuild, newGuild) => { 21 | if(oldGuild.vanityURLCode === newGuild.vanityURLCode) return; 22 | if(oldGuild.id !== guildId) return; 23 | 24 | const auditLog = await oldGuild.fetchAuditLogs({ 25 | type: AuditLogEvent.GuildUpdate, 26 | limit: 1 27 | }); 28 | 29 | const firstEntry = auditLog.entries.first(); 30 | 31 | if (!firstEntry || firstEntry.executorId === oldGuild.ownerId || firstEntry.executorId === clientId) return; 32 | 33 | const member = await oldGuild.members.fetch(firstEntry.executorId ?? ''); 34 | const vanity = await setVanity(); 35 | 36 | if(member && vanity) { 37 | member.ban({ reason: 'url değişirken yasaklandı.' }).then(() => { 38 | const channel = oldGuild.channels.cache.filter(c => c.type === ChannelType.GuildText).random(); 39 | 40 | if(channel && channel.type === ChannelType.GuildText) { 41 | channel.send({ 42 | embeds: [ 43 | new EmbedBuilder() 44 | .setAuthor({ name: member.user.username, iconURL: member.user.displayAvatarURL() }) 45 | .setColor('DarkButNotBlack') 46 | .setDescription('> Bir kullanıcı URL\'yi değiştirirken yasaklandı.') 47 | .setFields([ 48 | { 49 | name: 'Değiştiren kişi:', 50 | value: codeBlock('yaml', member.user.username) 51 | }, 52 | { 53 | name: 'Şu URL geri alındı:', 54 | value: codeBlock('yaml', newGuild.vanityURLCode ?? 'N/A') 55 | } 56 | ]) 57 | .setTimestamp() 58 | .setFooter({ text: 'discord.gg/altyapilar • vcord.js (npm)', iconURL: oldGuild.client.user.displayAvatarURL() }) 59 | ] 60 | }) 61 | } 62 | }).catch(() => { 63 | const channel = oldGuild.channels.cache.filter(c => c.type === ChannelType.GuildText).random(); 64 | 65 | if(channel && channel.type === ChannelType.GuildText) { 66 | channel.send({ 67 | content: `<@${newGuild.ownerId}>`, 68 | embeds: [ 69 | new EmbedBuilder() 70 | .setAuthor({ name: member.user.username, iconURL: member.user.displayAvatarURL() }) 71 | .setColor('DarkButNotBlack') 72 | .setDescription('> Bir kullanıcı URL\'yi değiştirirken yasaklandı. || Banlıyamıyorum.') 73 | .setFields([ 74 | { 75 | name: 'Değiştiren kişi:', 76 | value: codeBlock('yaml', member.user.username) 77 | }, 78 | { 79 | name: 'Şu url geri alındı:', 80 | value: codeBlock('yaml', newGuild.vanityURLCode ?? 'N/A') 81 | } 82 | ]) 83 | .setTimestamp() 84 | .setFooter({ text: 'discord.gg/altyapilar • vcord.js (npm)', iconURL: oldGuild.client.user.displayAvatarURL() }) 85 | ] 86 | }) 87 | } 88 | }); 89 | } 90 | }); 91 | 92 | client.login(token).catch(() => console.log('Discord API\'ye istek gönderimi başarısız')); -------------------------------------------------------------------------------- /src/lib/index.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | const { discord: { clientToken, guildId, vanityCode } } = require('../config.json'); 3 | const { setVanityURL } = require('vcord.js'); 4 | 5 | module.exports = { 6 | async setVanity() { 7 | const vanity = await setVanityURL({ clientToken, guildId, vanityCode }); 8 | 9 | return vanity.ok; 10 | } 11 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@discordjs/builders@^1.6.3": 6 | version "1.6.3" 7 | resolved "https://registry.npmjs.org/@discordjs/builders/-/builders-1.6.3.tgz" 8 | integrity sha512-CTCh8NqED3iecTNuiz49mwSsrc2iQb4d0MjMdmS/8pb69Y4IlzJ/DIy/p5GFlgOrFbNO2WzMHkWKQSiJ3VNXaw== 9 | dependencies: 10 | "@discordjs/formatters" "^0.3.1" 11 | "@discordjs/util" "^0.3.1" 12 | "@sapphire/shapeshift" "^3.8.2" 13 | discord-api-types "^0.37.41" 14 | fast-deep-equal "^3.1.3" 15 | ts-mixer "^6.0.3" 16 | tslib "^2.5.0" 17 | 18 | "@discordjs/collection@^1.5.1": 19 | version "1.5.1" 20 | resolved "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.1.tgz" 21 | integrity sha512-aWEc9DCf3TMDe9iaJoOnO2+JVAjeRNuRxPZQA6GVvBf+Z3gqUuWYBy2NWh4+5CLYq5uoc3MOvUQ5H5m8CJBqOA== 22 | 23 | "@discordjs/formatters@^0.3.1": 24 | version "0.3.1" 25 | resolved "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.3.1.tgz" 26 | integrity sha512-M7X4IGiSeh4znwcRGcs+49B5tBkNDn4k5bmhxJDAUhRxRHTiFAOTVUNQ6yAKySu5jZTnCbSvTYHW3w0rAzV1MA== 27 | dependencies: 28 | discord-api-types "^0.37.41" 29 | 30 | "@discordjs/rest@^1.7.1": 31 | version "1.7.1" 32 | resolved "https://registry.npmjs.org/@discordjs/rest/-/rest-1.7.1.tgz" 33 | integrity sha512-Ofa9UqT0U45G/eX86cURQnX7gzOJLG2oC28VhIk/G6IliYgQF7jFByBJEykPSHE4MxPhqCleYvmsrtfKh1nYmQ== 34 | dependencies: 35 | "@discordjs/collection" "^1.5.1" 36 | "@discordjs/util" "^0.3.0" 37 | "@sapphire/async-queue" "^1.5.0" 38 | "@sapphire/snowflake" "^3.4.2" 39 | discord-api-types "^0.37.41" 40 | file-type "^18.3.0" 41 | tslib "^2.5.0" 42 | undici "^5.22.0" 43 | 44 | "@discordjs/util@^0.3.0", "@discordjs/util@^0.3.1": 45 | version "0.3.1" 46 | resolved "https://registry.npmjs.org/@discordjs/util/-/util-0.3.1.tgz" 47 | integrity sha512-HxXKYKg7vohx2/OupUN/4Sd02Ev3PBJ5q0gtjdcvXb0ErCva8jNHWfe/v5sU3UKjIB/uxOhc+TDOnhqffj9pRA== 48 | 49 | "@discordjs/ws@^0.8.3": 50 | version "0.8.3" 51 | resolved "https://registry.npmjs.org/@discordjs/ws/-/ws-0.8.3.tgz" 52 | integrity sha512-hcYtppanjHecbdNyCKQNH2I4RP9UrphDgmRgLYrATEQF1oo4sYSve7ZmGsBEXSzH72MO2tBPdWSThunbxUVk0g== 53 | dependencies: 54 | "@discordjs/collection" "^1.5.1" 55 | "@discordjs/rest" "^1.7.1" 56 | "@discordjs/util" "^0.3.1" 57 | "@sapphire/async-queue" "^1.5.0" 58 | "@types/ws" "^8.5.4" 59 | "@vladfrangu/async_event_emitter" "^2.2.1" 60 | discord-api-types "^0.37.41" 61 | tslib "^2.5.0" 62 | ws "^8.13.0" 63 | 64 | "@sapphire/async-queue@^1.5.0": 65 | version "1.5.0" 66 | resolved "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz" 67 | integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA== 68 | 69 | "@sapphire/shapeshift@^3.8.2": 70 | version "3.9.0" 71 | resolved "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.0.tgz" 72 | integrity sha512-iJpHmjAdwX9aSL6MvFpVyo+tkokDtInmSjoJHbz/k4VJfnim3DjvG0hgGEKWtWZgCu45RaLgcoNgR1fCPdIz3w== 73 | dependencies: 74 | fast-deep-equal "^3.1.3" 75 | lodash "^4.17.21" 76 | 77 | "@sapphire/snowflake@^3.4.2": 78 | version "3.5.1" 79 | resolved "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.1.tgz" 80 | integrity sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA== 81 | 82 | "@tokenizer/token@^0.3.0": 83 | version "0.3.0" 84 | resolved "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" 85 | integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== 86 | 87 | "@types/node@*", "@types/node@^20.2.5": 88 | version "20.2.5" 89 | resolved "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz" 90 | integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ== 91 | 92 | "@types/ws@^8.5.4": 93 | version "8.5.4" 94 | resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz" 95 | integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== 96 | dependencies: 97 | "@types/node" "*" 98 | 99 | "@vladfrangu/async_event_emitter@^2.2.1": 100 | version "2.2.2" 101 | resolved "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz" 102 | integrity sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ== 103 | 104 | asynckit@^0.4.0: 105 | version "0.4.0" 106 | resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" 107 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== 108 | 109 | axios@^1.4.0: 110 | version "1.4.0" 111 | resolved "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz" 112 | integrity sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA== 113 | dependencies: 114 | follow-redirects "^1.15.0" 115 | form-data "^4.0.0" 116 | proxy-from-env "^1.1.0" 117 | 118 | busboy@^1.6.0: 119 | version "1.6.0" 120 | resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" 121 | integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== 122 | dependencies: 123 | streamsearch "^1.1.0" 124 | 125 | combined-stream@^1.0.8: 126 | version "1.0.8" 127 | resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" 128 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 129 | dependencies: 130 | delayed-stream "~1.0.0" 131 | 132 | delayed-stream@~1.0.0: 133 | version "1.0.0" 134 | resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" 135 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== 136 | 137 | discord-api-types@^0.37.41: 138 | version "0.37.42" 139 | resolved "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.42.tgz" 140 | integrity sha512-1Huaj9cQ1W7/uryS8MZs/tZemnoKB94thM1cE40lep3rpU3q7WHqkdjN/veX0prTkYlPhcyLd/DeF/pBO8X8oQ== 141 | 142 | discord.js@^14.11.0: 143 | version "14.11.0" 144 | resolved "https://registry.npmjs.org/discord.js/-/discord.js-14.11.0.tgz" 145 | integrity sha512-CkueWYFQ28U38YPR8HgsBR/QT35oPpMbEsTNM30Fs8loBIhnA4s70AwQEoy6JvLcpWWJO7GY0y2BUzZmuBMepQ== 146 | dependencies: 147 | "@discordjs/builders" "^1.6.3" 148 | "@discordjs/collection" "^1.5.1" 149 | "@discordjs/formatters" "^0.3.1" 150 | "@discordjs/rest" "^1.7.1" 151 | "@discordjs/util" "^0.3.1" 152 | "@discordjs/ws" "^0.8.3" 153 | "@sapphire/snowflake" "^3.4.2" 154 | "@types/ws" "^8.5.4" 155 | discord-api-types "^0.37.41" 156 | fast-deep-equal "^3.1.3" 157 | lodash.snakecase "^4.1.1" 158 | tslib "^2.5.0" 159 | undici "^5.22.0" 160 | ws "^8.13.0" 161 | 162 | fast-deep-equal@^3.1.3: 163 | version "3.1.3" 164 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" 165 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 166 | 167 | file-type@^18.3.0: 168 | version "18.4.0" 169 | resolved "https://registry.npmjs.org/file-type/-/file-type-18.4.0.tgz" 170 | integrity sha512-o6MQrZKTAK6WpvmQk3jqTVUmqxYBxW5bloUfrdH1ZnRFDvvAPNr+l+rgOxM3nkqWT+3khaj3FRMDydWe0xhu+w== 171 | dependencies: 172 | readable-web-to-node-stream "^3.0.2" 173 | strtok3 "^7.0.0" 174 | token-types "^5.0.1" 175 | 176 | follow-redirects@^1.15.0: 177 | version "1.15.2" 178 | resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" 179 | integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== 180 | 181 | form-data@^4.0.0: 182 | version "4.0.0" 183 | resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" 184 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== 185 | dependencies: 186 | asynckit "^0.4.0" 187 | combined-stream "^1.0.8" 188 | mime-types "^2.1.12" 189 | 190 | ieee754@^1.2.1: 191 | version "1.2.1" 192 | resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" 193 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 194 | 195 | inherits@^2.0.3: 196 | version "2.0.4" 197 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 198 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 199 | 200 | lodash.snakecase@^4.1.1: 201 | version "4.1.1" 202 | resolved "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz" 203 | integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== 204 | 205 | lodash@^4.17.21: 206 | version "4.17.21" 207 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" 208 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 209 | 210 | mime-db@1.52.0: 211 | version "1.52.0" 212 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" 213 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 214 | 215 | mime-types@^2.1.12: 216 | version "2.1.35" 217 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" 218 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 219 | dependencies: 220 | mime-db "1.52.0" 221 | 222 | peek-readable@^5.0.0: 223 | version "5.0.0" 224 | resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz" 225 | integrity sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A== 226 | 227 | proxy-from-env@^1.1.0: 228 | version "1.1.0" 229 | resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" 230 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== 231 | 232 | readable-stream@^3.6.0: 233 | version "3.6.2" 234 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" 235 | integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== 236 | dependencies: 237 | inherits "^2.0.3" 238 | string_decoder "^1.1.1" 239 | util-deprecate "^1.0.1" 240 | 241 | readable-web-to-node-stream@^3.0.2: 242 | version "3.0.2" 243 | resolved "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" 244 | integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== 245 | dependencies: 246 | readable-stream "^3.6.0" 247 | 248 | safe-buffer@~5.2.0: 249 | version "5.2.1" 250 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 251 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 252 | 253 | streamsearch@^1.1.0: 254 | version "1.1.0" 255 | resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" 256 | integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== 257 | 258 | string_decoder@^1.1.1: 259 | version "1.3.0" 260 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" 261 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 262 | dependencies: 263 | safe-buffer "~5.2.0" 264 | 265 | strtok3@^7.0.0: 266 | version "7.0.0" 267 | resolved "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz" 268 | integrity sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ== 269 | dependencies: 270 | "@tokenizer/token" "^0.3.0" 271 | peek-readable "^5.0.0" 272 | 273 | token-types@^5.0.1: 274 | version "5.0.1" 275 | resolved "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz" 276 | integrity sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg== 277 | dependencies: 278 | "@tokenizer/token" "^0.3.0" 279 | ieee754 "^1.2.1" 280 | 281 | ts-mixer@^6.0.3: 282 | version "6.0.3" 283 | resolved "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.3.tgz" 284 | integrity sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ== 285 | 286 | tslib@^2.5.0: 287 | version "2.5.2" 288 | resolved "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz" 289 | integrity sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA== 290 | 291 | undici@^5.22.0: 292 | version "5.22.1" 293 | resolved "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz" 294 | integrity sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw== 295 | dependencies: 296 | busboy "^1.6.0" 297 | 298 | util-deprecate@^1.0.1: 299 | version "1.0.2" 300 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" 301 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 302 | 303 | vcord.js@^1.0.0: 304 | version "1.0.0" 305 | resolved "https://registry.npmjs.org/vcord.js/-/vcord.js-1.0.0.tgz" 306 | integrity sha512-s/7Pacs4bPO3ANKnGimBRlp8cZ6ThS3d+vPADysNuOKn80vgS/JzAU6JDcDzljLfyrn9dKp4pqIhTZ743mSkBg== 307 | dependencies: 308 | axios "^1.4.0" 309 | 310 | ws@^8.13.0: 311 | version "8.13.0" 312 | resolved "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz" 313 | integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== 314 | --------------------------------------------------------------------------------