Consider this as an initial version after fixing certain bugs we will make this bot opensource
)`, {
79 | parse_mode: 'HTML',
80 | reply_markup: {
81 | inline_keyboard: [
82 | [{ text: 'Join Channel 🔔', url: 't.me/lkhitech' }]
83 | ]
84 | }
85 |
86 | })
87 | if (ctx.from.id == process.env.ADMIN) {
88 | ctx.reply('https://telegra.ph/File-Store-Bot-Admin-commands-07-17')
89 | }
90 | })
91 |
92 | //remove files with file_id
93 |
94 | bot.command('rem', (ctx) => {
95 | msg = ctx.message.text
96 | let msgArray = msg.split(' ')
97 | msgArray.shift()
98 | let text = msgArray.join(' ')
99 | console.log(text);
100 | if (ctx.from.id == process.env.ADMIN) {
101 | saver.removeFile(text)
102 | ctx.reply('✅Removed')
103 | }
104 | })
105 |
106 | //remove whole collection(remove all files)
107 |
108 | bot.command('clear', (ctx) => {
109 | if (ctx.from.id == process.env.ADMIN) {
110 | saver.deleteCollection()
111 | ctx.reply('✅Removed')
112 | }
113 |
114 | })
115 |
116 | //removing all files sent by a user
117 |
118 | bot.command('remall', (ctx) => {
119 | msg = ctx.message.text
120 | let msgArray = msg.split(' ')
121 | msgArray.shift()
122 | let text = msgArray.join(' ')
123 | console.log(text);
124 | let id = parseInt(text)
125 | if (ctx.from.id == process.env.ADMIN || ctx.from.id == process.env.ADMIN1 || ctx.from.id == process.env.ADMIN2) {
126 | saver.removeUserFile(id)
127 | ctx.reply('✅Removed')
128 | }
129 | })
130 |
131 | //broadcasting message to bot users(from last joined to first)
132 |
133 | bot.command('send', async(ctx) => {
134 | msg = ctx.message.text
135 | let msgArray = msg.split(' ')
136 | msgArray.shift()
137 | let text = msgArray.join(' ')
138 |
139 | userDetails = await saver.getUser().then((res) => {
140 | n = res.length
141 | userId = []
142 | for (i = n - 1; i >= 0; i--) {
143 | userId.push(res[i].userId)
144 | }
145 |
146 | //broadcasting
147 | totalBroadCast = 0
148 | totalFail = []
149 |
150 | //creating function for broadcasting and to know bot user status
151 | async function broadcast(text) {
152 | for (const users of userId) {
153 | try {
154 | await bot.telegram.sendMessage(users, String(text))
155 | } catch (err) {
156 | saver.updateUser(users)
157 | totalFail.push(users)
158 |
159 | }
160 | }
161 | ctx.reply(`✅Total active users :${userId.length - totalFail.length}\n❌Total failed broadcast:${totalFail.length}`, {
162 | parse_mode: 'HTML'
163 | })
164 |
165 | }
166 | if (ctx.from.id == process.env.ADMIN) {
167 | broadcast(text)
168 | ctx.reply('Broadcasting started -(Message is broadcasted from last joined to first)')
169 |
170 | } else {
171 | ctx.replyWithAnimation('https://media.giphy.com/media/fnuSiwXMTV3zmYDf6k/giphy.gif')
172 | }
173 |
174 | })
175 | })
176 |
177 | //ban user with user id
178 |
179 | bot.command('ban', (ctx) => {
180 | msg = ctx.message.text
181 | let msgArray = msg.split(' ')
182 | msgArray.shift()
183 | let text = msgArray.join(' ')
184 | console.log(text)
185 | userId = {
186 | id: text
187 | }
188 | if (ctx.from.id == process.env.ADMIN) {
189 | saver.banUser(userId).then((res) => {
190 | ctx.reply('banned')
191 | })
192 | }
193 |
194 | })
195 |
196 | //unban user with user id
197 |
198 | bot.command('unban', (ctx) => {
199 | msg = ctx.message.text
200 | let msgArray = msg.split(' ')
201 | msgArray.shift()
202 | let text = msgArray.join(' ')
203 | console.log(text)
204 | userId = {
205 | id: text
206 | }
207 |
208 |
209 | if (ctx.from.id == process.env.ADMIN) {
210 | saver.unBan(userId).then((res) => {
211 | ctx.reply('✅Done')
212 | })
213 | }
214 | })
215 |
216 | //saving documents to db and generating link
217 |
218 | bot.on('document', async(ctx) => {
219 | document = ctx.message.document
220 | console.log(ctx);
221 | fileDetails = {
222 | file_name: document.file_name,
223 | userId: ctx.from.id,
224 | file_id: document.file_id,
225 | caption: ctx.message.caption,
226 | file_size: document.file_size,
227 | uniqueId: document.file_unique_id
228 | }
229 | await saver.checkBan(`${ctx.from.id}`).then((res) => {
230 | console.log(res);
231 | if (res == true) {
232 | ctx.reply('⚠YOU ARE BANNED FOR MISUSING BOT, CONTACT ADMIN')
233 | } else {
234 | saver.saveFile(fileDetails)
235 | ctx.reply(`https://t.me/${process.env.BOTUSERNAME}?start=${document.file_unique_id}`)
236 | ctx.replyWithDocument(document.file_id, {
237 | chat_id: process.env.LOG_CHANNEL,
238 | caption: `${ctx.message.caption}\n\n\nfrom:${ctx.from.id}\nfirstName:${ctx.from.first_name}\nfile_id:${document.file_id}`
239 |
240 | })
241 | }
242 | })
243 |
244 | })
245 |
246 | //video files
247 |
248 | bot.on('video', async(ctx) => {
249 | video = ctx.message.video
250 | console.log(ctx);
251 | fileDetails = {
252 | file_name: video.file_name,
253 | userId: ctx.from.id,
254 | file_id: video.file_id,
255 | caption: ctx.message.caption,
256 | file_size: video.file_size,
257 | uniqueId: video.file_unique_id,
258 | type: 'video'
259 | }
260 | console.log(fileDetails.caption);
261 |
262 | await saver.checkBan(`${ctx.from.id}`).then((res) => {
263 | console.log(res);
264 | if (res == true) {
265 | ctx.reply('⚠YOU ARE BANNED FOR MISUSING BOT, CONTACT ADMIN')
266 | } else {
267 | saver.saveFile(fileDetails)
268 | ctx.reply(`https://t.me/${process.env.BOTUSERNAME}?start=${video.file_unique_id}`)
269 | ctx.replyWithVideo(video.file_id, {
270 | chat_id: process.env.LOG_CHANNEL,
271 | caption: `${ctx.message.caption}\n\n\nfrom:${ctx.from.id}\nfirstName:${ctx.from.first_name}\nfile_id:${document.file_id}`
272 | })
273 | }
274 | })
275 |
276 | })
277 |
278 | //audio files
279 |
280 | bot.on('audio', async(ctx) => {
281 | audio = ctx.message.audio
282 | console.log(ctx);
283 | fileDetails = {
284 | file_name: audio.file_name,
285 | userId: ctx.from.id,
286 | file_id: audio.file_id,
287 | caption: ctx.message.caption,
288 | file_size: audio.file_size,
289 | uniqueId: audio.file_unique_id,
290 | type: 'audio'
291 | }
292 | console.log(fileDetails.caption);
293 | await saver.checkBan(`${ctx.from.id}`).then((res) => {
294 | console.log(res);
295 | if (res == true) {
296 | ctx.reply('⚠YOU ARE BANNED FOR MISUSING BOT, CONTACT ADMIN')
297 | } else {
298 | saver.saveFile(fileDetails)
299 | ctx.reply(`https://t.me/${process.env.BOTUSERNAME}?start=${audio.file_unique_id}`)
300 | ctx.replyWithDocument(audio.file_id, {
301 | chat_id: process.env.LOG_CHANNEL,
302 | caption: `${ctx.message.caption}\n\n\nfrom:${ctx.from.id}\nfirstName:${ctx.from.first_name}\nfile_id:${document.file_id}`
303 | })
304 | }
305 | })
306 |
307 | })
308 |
309 | //checking bot status only for admins
310 |
311 | bot.command('stats', async(ctx) => {
312 | stats = await saver.getUser().then((res) => {
313 | if (ctx.from.id == process.env.ADMIN) {
314 | ctx.reply(`📊Total user: ${res.length}`, { parse_mode: 'HTML' })
315 | }
316 |
317 | })
318 | })
319 |
320 |
321 | //getting files as inline result
322 |
323 | bot.on('inline_query', async(ctx) => {
324 | query = ctx.inlineQuery.query
325 | if (query.length > 0) {
326 | let searchResult = saver.getfileInline(query).then((res) => {
327 | let result = res.map((item, index) => {
328 | return {
329 | type: 'document',
330 | id: item._id,
331 | title: item.file_name,
332 | document_file_id: item.file_id,
333 | caption: item.caption,
334 | reply_markup: {
335 | inline_keyboard: [
336 | [{ text: "🔎Search again", switch_inline_query: '' }]
337 | ]
338 | }
339 | }
340 | })
341 |
342 | ctx.answerInlineQuery(result)
343 | })
344 | } else {
345 | console.log('query not found');
346 | }
347 |
348 | })
349 |
350 |
351 |
352 | //heroku config
353 | domain = `${process.env.DOMAIN}.herokuapp.com`
354 | bot.launch({
355 | webhook: {
356 | domain: domain,
357 | port: Number(process.env.PORT)
358 |
359 | }
360 | })
361 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fstorebot",
3 | "version": "1.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@sindresorhus/is": {
8 | "version": "0.14.0",
9 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
10 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
11 | },
12 | "@szmarczak/http-timer": {
13 | "version": "1.1.2",
14 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
15 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
16 | "requires": {
17 | "defer-to-connect": "^1.0.1"
18 | }
19 | },
20 | "abbrev": {
21 | "version": "1.1.1",
22 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
23 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
24 | },
25 | "abort-controller": {
26 | "version": "3.0.0",
27 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
28 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
29 | "requires": {
30 | "event-target-shim": "^5.0.0"
31 | }
32 | },
33 | "ansi-align": {
34 | "version": "3.0.0",
35 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
36 | "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
37 | "requires": {
38 | "string-width": "^3.0.0"
39 | },
40 | "dependencies": {
41 | "string-width": {
42 | "version": "3.1.0",
43 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
44 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
45 | "requires": {
46 | "emoji-regex": "^7.0.1",
47 | "is-fullwidth-code-point": "^2.0.0",
48 | "strip-ansi": "^5.1.0"
49 | }
50 | }
51 | }
52 | },
53 | "ansi-regex": {
54 | "version": "4.1.0",
55 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
56 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
57 | },
58 | "ansi-styles": {
59 | "version": "4.3.0",
60 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
61 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
62 | "requires": {
63 | "color-convert": "^2.0.1"
64 | }
65 | },
66 | "anymatch": {
67 | "version": "3.1.1",
68 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
69 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
70 | "requires": {
71 | "normalize-path": "^3.0.0",
72 | "picomatch": "^2.0.4"
73 | }
74 | },
75 | "balanced-match": {
76 | "version": "1.0.0",
77 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
78 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
79 | },
80 | "binary-extensions": {
81 | "version": "2.2.0",
82 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
83 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
84 | },
85 | "bl": {
86 | "version": "2.2.1",
87 | "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
88 | "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
89 | "requires": {
90 | "readable-stream": "^2.3.5",
91 | "safe-buffer": "^5.1.1"
92 | }
93 | },
94 | "boxen": {
95 | "version": "4.2.0",
96 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
97 | "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
98 | "requires": {
99 | "ansi-align": "^3.0.0",
100 | "camelcase": "^5.3.1",
101 | "chalk": "^3.0.0",
102 | "cli-boxes": "^2.2.0",
103 | "string-width": "^4.1.0",
104 | "term-size": "^2.1.0",
105 | "type-fest": "^0.8.1",
106 | "widest-line": "^3.1.0"
107 | }
108 | },
109 | "brace-expansion": {
110 | "version": "1.1.11",
111 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
112 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
113 | "requires": {
114 | "balanced-match": "^1.0.0",
115 | "concat-map": "0.0.1"
116 | }
117 | },
118 | "braces": {
119 | "version": "3.0.2",
120 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
121 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
122 | "requires": {
123 | "fill-range": "^7.0.1"
124 | }
125 | },
126 | "bson": {
127 | "version": "1.1.6",
128 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
129 | "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg=="
130 | },
131 | "buffer-alloc": {
132 | "version": "1.2.0",
133 | "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
134 | "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
135 | "requires": {
136 | "buffer-alloc-unsafe": "^1.1.0",
137 | "buffer-fill": "^1.0.0"
138 | }
139 | },
140 | "buffer-alloc-unsafe": {
141 | "version": "1.1.0",
142 | "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
143 | "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
144 | },
145 | "buffer-fill": {
146 | "version": "1.0.0",
147 | "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
148 | "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
149 | },
150 | "cacheable-request": {
151 | "version": "6.1.0",
152 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
153 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
154 | "requires": {
155 | "clone-response": "^1.0.2",
156 | "get-stream": "^5.1.0",
157 | "http-cache-semantics": "^4.0.0",
158 | "keyv": "^3.0.0",
159 | "lowercase-keys": "^2.0.0",
160 | "normalize-url": "^4.1.0",
161 | "responselike": "^1.0.2"
162 | },
163 | "dependencies": {
164 | "get-stream": {
165 | "version": "5.2.0",
166 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
167 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
168 | "requires": {
169 | "pump": "^3.0.0"
170 | }
171 | },
172 | "lowercase-keys": {
173 | "version": "2.0.0",
174 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
175 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
176 | }
177 | }
178 | },
179 | "camelcase": {
180 | "version": "5.3.1",
181 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
182 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
183 | },
184 | "chalk": {
185 | "version": "3.0.0",
186 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
187 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
188 | "requires": {
189 | "ansi-styles": "^4.1.0",
190 | "supports-color": "^7.1.0"
191 | },
192 | "dependencies": {
193 | "has-flag": {
194 | "version": "4.0.0",
195 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
196 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
197 | },
198 | "supports-color": {
199 | "version": "7.2.0",
200 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
201 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
202 | "requires": {
203 | "has-flag": "^4.0.0"
204 | }
205 | }
206 | }
207 | },
208 | "chokidar": {
209 | "version": "3.5.1",
210 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
211 | "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
212 | "requires": {
213 | "anymatch": "~3.1.1",
214 | "braces": "~3.0.2",
215 | "fsevents": "~2.3.1",
216 | "glob-parent": "~5.1.0",
217 | "is-binary-path": "~2.1.0",
218 | "is-glob": "~4.0.1",
219 | "normalize-path": "~3.0.0",
220 | "readdirp": "~3.5.0"
221 | }
222 | },
223 | "ci-info": {
224 | "version": "2.0.0",
225 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
226 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
227 | },
228 | "cli-boxes": {
229 | "version": "2.2.1",
230 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
231 | "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="
232 | },
233 | "clone-response": {
234 | "version": "1.0.2",
235 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
236 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
237 | "requires": {
238 | "mimic-response": "^1.0.0"
239 | }
240 | },
241 | "color-convert": {
242 | "version": "2.0.1",
243 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
244 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
245 | "requires": {
246 | "color-name": "~1.1.4"
247 | }
248 | },
249 | "color-name": {
250 | "version": "1.1.4",
251 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
252 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
253 | },
254 | "concat-map": {
255 | "version": "0.0.1",
256 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
257 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
258 | },
259 | "configstore": {
260 | "version": "5.0.1",
261 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
262 | "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
263 | "requires": {
264 | "dot-prop": "^5.2.0",
265 | "graceful-fs": "^4.1.2",
266 | "make-dir": "^3.0.0",
267 | "unique-string": "^2.0.0",
268 | "write-file-atomic": "^3.0.0",
269 | "xdg-basedir": "^4.0.0"
270 | }
271 | },
272 | "core-util-is": {
273 | "version": "1.0.2",
274 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
275 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
276 | },
277 | "crypto-random-string": {
278 | "version": "2.0.0",
279 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
280 | "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
281 | },
282 | "debug": {
283 | "version": "4.3.1",
284 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
285 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
286 | "requires": {
287 | "ms": "2.1.2"
288 | }
289 | },
290 | "decompress-response": {
291 | "version": "3.3.0",
292 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
293 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
294 | "requires": {
295 | "mimic-response": "^1.0.0"
296 | }
297 | },
298 | "deep-extend": {
299 | "version": "0.6.0",
300 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
301 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
302 | },
303 | "defer-to-connect": {
304 | "version": "1.1.3",
305 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
306 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
307 | },
308 | "denque": {
309 | "version": "1.5.0",
310 | "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz",
311 | "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ=="
312 | },
313 | "dot-prop": {
314 | "version": "5.3.0",
315 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
316 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
317 | "requires": {
318 | "is-obj": "^2.0.0"
319 | }
320 | },
321 | "dotenv": {
322 | "version": "8.2.0",
323 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz",
324 | "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="
325 | },
326 | "duplexer3": {
327 | "version": "0.1.4",
328 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
329 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
330 | },
331 | "emoji-regex": {
332 | "version": "7.0.3",
333 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
334 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
335 | },
336 | "end-of-stream": {
337 | "version": "1.4.4",
338 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
339 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
340 | "requires": {
341 | "once": "^1.4.0"
342 | }
343 | },
344 | "escape-goat": {
345 | "version": "2.1.1",
346 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
347 | "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q=="
348 | },
349 | "event-target-shim": {
350 | "version": "5.0.1",
351 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
352 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
353 | },
354 | "fill-range": {
355 | "version": "7.0.1",
356 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
357 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
358 | "requires": {
359 | "to-regex-range": "^5.0.1"
360 | }
361 | },
362 | "fsevents": {
363 | "version": "2.3.2",
364 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
365 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
366 | "optional": true
367 | },
368 | "get-stream": {
369 | "version": "4.1.0",
370 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
371 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
372 | "requires": {
373 | "pump": "^3.0.0"
374 | }
375 | },
376 | "glob-parent": {
377 | "version": "5.1.2",
378 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
379 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
380 | "requires": {
381 | "is-glob": "^4.0.1"
382 | }
383 | },
384 | "global-dirs": {
385 | "version": "2.1.0",
386 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz",
387 | "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==",
388 | "requires": {
389 | "ini": "1.3.7"
390 | }
391 | },
392 | "got": {
393 | "version": "9.6.0",
394 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
395 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
396 | "requires": {
397 | "@sindresorhus/is": "^0.14.0",
398 | "@szmarczak/http-timer": "^1.1.2",
399 | "cacheable-request": "^6.0.0",
400 | "decompress-response": "^3.3.0",
401 | "duplexer3": "^0.1.4",
402 | "get-stream": "^4.1.0",
403 | "lowercase-keys": "^1.0.1",
404 | "mimic-response": "^1.0.1",
405 | "p-cancelable": "^1.0.0",
406 | "to-readable-stream": "^1.0.0",
407 | "url-parse-lax": "^3.0.0"
408 | }
409 | },
410 | "graceful-fs": {
411 | "version": "4.2.6",
412 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
413 | "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
414 | },
415 | "has-flag": {
416 | "version": "3.0.0",
417 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
418 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
419 | },
420 | "has-yarn": {
421 | "version": "2.1.0",
422 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
423 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw=="
424 | },
425 | "http-cache-semantics": {
426 | "version": "4.1.0",
427 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
428 | "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
429 | },
430 | "ignore-by-default": {
431 | "version": "1.0.1",
432 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
433 | "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk="
434 | },
435 | "import-lazy": {
436 | "version": "2.1.0",
437 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
438 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
439 | },
440 | "imurmurhash": {
441 | "version": "0.1.4",
442 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
443 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o="
444 | },
445 | "inherits": {
446 | "version": "2.0.4",
447 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
448 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
449 | },
450 | "ini": {
451 | "version": "1.3.7",
452 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
453 | "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
454 | },
455 | "is-binary-path": {
456 | "version": "2.1.0",
457 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
458 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
459 | "requires": {
460 | "binary-extensions": "^2.0.0"
461 | }
462 | },
463 | "is-ci": {
464 | "version": "2.0.0",
465 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
466 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
467 | "requires": {
468 | "ci-info": "^2.0.0"
469 | }
470 | },
471 | "is-extglob": {
472 | "version": "2.1.1",
473 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
474 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
475 | },
476 | "is-fullwidth-code-point": {
477 | "version": "2.0.0",
478 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
479 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
480 | },
481 | "is-glob": {
482 | "version": "4.0.1",
483 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
484 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
485 | "requires": {
486 | "is-extglob": "^2.1.1"
487 | }
488 | },
489 | "is-installed-globally": {
490 | "version": "0.3.2",
491 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
492 | "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
493 | "requires": {
494 | "global-dirs": "^2.0.1",
495 | "is-path-inside": "^3.0.1"
496 | }
497 | },
498 | "is-npm": {
499 | "version": "4.0.0",
500 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
501 | "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig=="
502 | },
503 | "is-number": {
504 | "version": "7.0.0",
505 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
506 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
507 | },
508 | "is-obj": {
509 | "version": "2.0.0",
510 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
511 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
512 | },
513 | "is-path-inside": {
514 | "version": "3.0.3",
515 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
516 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
517 | },
518 | "is-typedarray": {
519 | "version": "1.0.0",
520 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
521 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
522 | },
523 | "is-yarn-global": {
524 | "version": "0.3.0",
525 | "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
526 | "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
527 | },
528 | "isarray": {
529 | "version": "1.0.0",
530 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
531 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
532 | },
533 | "json-buffer": {
534 | "version": "3.0.0",
535 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
536 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
537 | },
538 | "keyv": {
539 | "version": "3.1.0",
540 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
541 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
542 | "requires": {
543 | "json-buffer": "3.0.0"
544 | }
545 | },
546 | "latest-version": {
547 | "version": "5.1.0",
548 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
549 | "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
550 | "requires": {
551 | "package-json": "^6.3.0"
552 | }
553 | },
554 | "lowercase-keys": {
555 | "version": "1.0.1",
556 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
557 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
558 | },
559 | "make-dir": {
560 | "version": "3.1.0",
561 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
562 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
563 | "requires": {
564 | "semver": "^6.0.0"
565 | },
566 | "dependencies": {
567 | "semver": {
568 | "version": "6.3.0",
569 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
570 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
571 | }
572 | }
573 | },
574 | "memory-pager": {
575 | "version": "1.5.0",
576 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
577 | "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
578 | "optional": true
579 | },
580 | "mimic-response": {
581 | "version": "1.0.1",
582 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
583 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
584 | },
585 | "minimatch": {
586 | "version": "3.0.4",
587 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
588 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
589 | "requires": {
590 | "brace-expansion": "^1.1.7"
591 | }
592 | },
593 | "minimist": {
594 | "version": "1.2.5",
595 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
596 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
597 | },
598 | "module-alias": {
599 | "version": "2.2.2",
600 | "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz",
601 | "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q=="
602 | },
603 | "mongodb": {
604 | "version": "3.6.5",
605 | "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.5.tgz",
606 | "integrity": "sha512-mQlYKw1iGbvJJejcPuyTaytq0xxlYbIoVDm2FODR+OHxyEiMR021vc32bTvamgBjCswsD54XIRwhg3yBaWqJjg==",
607 | "requires": {
608 | "bl": "^2.2.1",
609 | "bson": "^1.1.4",
610 | "denque": "^1.4.1",
611 | "require_optional": "^1.0.1",
612 | "safe-buffer": "^5.1.2",
613 | "saslprep": "^1.0.0"
614 | }
615 | },
616 | "ms": {
617 | "version": "2.1.2",
618 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
619 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
620 | },
621 | "node-fetch": {
622 | "version": "2.6.1",
623 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
624 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
625 | },
626 | "nodemon": {
627 | "version": "2.0.7",
628 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz",
629 | "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==",
630 | "requires": {
631 | "chokidar": "^3.2.2",
632 | "debug": "^3.2.6",
633 | "ignore-by-default": "^1.0.1",
634 | "minimatch": "^3.0.4",
635 | "pstree.remy": "^1.1.7",
636 | "semver": "^5.7.1",
637 | "supports-color": "^5.5.0",
638 | "touch": "^3.1.0",
639 | "undefsafe": "^2.0.3",
640 | "update-notifier": "^4.1.0"
641 | },
642 | "dependencies": {
643 | "debug": {
644 | "version": "3.2.7",
645 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
646 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
647 | "requires": {
648 | "ms": "^2.1.1"
649 | }
650 | }
651 | }
652 | },
653 | "nopt": {
654 | "version": "1.0.10",
655 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
656 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
657 | "requires": {
658 | "abbrev": "1"
659 | }
660 | },
661 | "normalize-path": {
662 | "version": "3.0.0",
663 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
664 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
665 | },
666 | "normalize-url": {
667 | "version": "4.5.0",
668 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
669 | "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
670 | },
671 | "once": {
672 | "version": "1.4.0",
673 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
674 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
675 | "requires": {
676 | "wrappy": "1"
677 | }
678 | },
679 | "p-cancelable": {
680 | "version": "1.1.0",
681 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
682 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
683 | },
684 | "p-timeout": {
685 | "version": "4.1.0",
686 | "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz",
687 | "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw=="
688 | },
689 | "package-json": {
690 | "version": "6.5.0",
691 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
692 | "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
693 | "requires": {
694 | "got": "^9.6.0",
695 | "registry-auth-token": "^4.0.0",
696 | "registry-url": "^5.0.0",
697 | "semver": "^6.2.0"
698 | },
699 | "dependencies": {
700 | "semver": {
701 | "version": "6.3.0",
702 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
703 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
704 | }
705 | }
706 | },
707 | "picomatch": {
708 | "version": "2.2.2",
709 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
710 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg=="
711 | },
712 | "prepend-http": {
713 | "version": "2.0.0",
714 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
715 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
716 | },
717 | "process-nextick-args": {
718 | "version": "2.0.1",
719 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
720 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
721 | },
722 | "pstree.remy": {
723 | "version": "1.1.8",
724 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
725 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w=="
726 | },
727 | "pump": {
728 | "version": "3.0.0",
729 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
730 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
731 | "requires": {
732 | "end-of-stream": "^1.1.0",
733 | "once": "^1.3.1"
734 | }
735 | },
736 | "pupa": {
737 | "version": "2.1.1",
738 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
739 | "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
740 | "requires": {
741 | "escape-goat": "^2.0.0"
742 | }
743 | },
744 | "rc": {
745 | "version": "1.2.8",
746 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
747 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
748 | "requires": {
749 | "deep-extend": "^0.6.0",
750 | "ini": "~1.3.0",
751 | "minimist": "^1.2.0",
752 | "strip-json-comments": "~2.0.1"
753 | }
754 | },
755 | "readable-stream": {
756 | "version": "2.3.7",
757 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
758 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
759 | "requires": {
760 | "core-util-is": "~1.0.0",
761 | "inherits": "~2.0.3",
762 | "isarray": "~1.0.0",
763 | "process-nextick-args": "~2.0.0",
764 | "safe-buffer": "~5.1.1",
765 | "string_decoder": "~1.1.1",
766 | "util-deprecate": "~1.0.1"
767 | },
768 | "dependencies": {
769 | "safe-buffer": {
770 | "version": "5.1.2",
771 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
772 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
773 | }
774 | }
775 | },
776 | "readdirp": {
777 | "version": "3.5.0",
778 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
779 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
780 | "requires": {
781 | "picomatch": "^2.2.1"
782 | }
783 | },
784 | "registry-auth-token": {
785 | "version": "4.2.1",
786 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
787 | "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
788 | "requires": {
789 | "rc": "^1.2.8"
790 | }
791 | },
792 | "registry-url": {
793 | "version": "5.1.0",
794 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
795 | "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
796 | "requires": {
797 | "rc": "^1.2.8"
798 | }
799 | },
800 | "require_optional": {
801 | "version": "1.0.1",
802 | "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
803 | "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
804 | "requires": {
805 | "resolve-from": "^2.0.0",
806 | "semver": "^5.1.0"
807 | }
808 | },
809 | "resolve-from": {
810 | "version": "2.0.0",
811 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
812 | "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
813 | },
814 | "responselike": {
815 | "version": "1.0.2",
816 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
817 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
818 | "requires": {
819 | "lowercase-keys": "^1.0.0"
820 | }
821 | },
822 | "safe-buffer": {
823 | "version": "5.2.1",
824 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
825 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
826 | },
827 | "safe-compare": {
828 | "version": "1.1.4",
829 | "resolved": "https://registry.npmjs.org/safe-compare/-/safe-compare-1.1.4.tgz",
830 | "integrity": "sha512-b9wZ986HHCo/HbKrRpBJb2kqXMK9CEWIE1egeEvZsYn69ay3kdfl9nG3RyOcR+jInTDf7a86WQ1d4VJX7goSSQ==",
831 | "requires": {
832 | "buffer-alloc": "^1.2.0"
833 | }
834 | },
835 | "sandwich-stream": {
836 | "version": "2.0.2",
837 | "resolved": "https://registry.npmjs.org/sandwich-stream/-/sandwich-stream-2.0.2.tgz",
838 | "integrity": "sha512-jLYV0DORrzY3xaz/S9ydJL6Iz7essZeAfnAavsJ+zsJGZ1MOnsS52yRjU3uF3pJa/lla7+wisp//fxOwOH8SKQ=="
839 | },
840 | "saslprep": {
841 | "version": "1.0.3",
842 | "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
843 | "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
844 | "optional": true,
845 | "requires": {
846 | "sparse-bitfield": "^3.0.3"
847 | }
848 | },
849 | "semver": {
850 | "version": "5.7.1",
851 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
852 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
853 | },
854 | "semver-diff": {
855 | "version": "3.1.1",
856 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
857 | "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
858 | "requires": {
859 | "semver": "^6.3.0"
860 | },
861 | "dependencies": {
862 | "semver": {
863 | "version": "6.3.0",
864 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
865 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
866 | }
867 | }
868 | },
869 | "signal-exit": {
870 | "version": "3.0.3",
871 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
872 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
873 | },
874 | "sparse-bitfield": {
875 | "version": "3.0.3",
876 | "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
877 | "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
878 | "optional": true,
879 | "requires": {
880 | "memory-pager": "^1.0.2"
881 | }
882 | },
883 | "string-width": {
884 | "version": "4.2.2",
885 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
886 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
887 | "requires": {
888 | "emoji-regex": "^8.0.0",
889 | "is-fullwidth-code-point": "^3.0.0",
890 | "strip-ansi": "^6.0.0"
891 | },
892 | "dependencies": {
893 | "ansi-regex": {
894 | "version": "5.0.0",
895 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
896 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
897 | },
898 | "emoji-regex": {
899 | "version": "8.0.0",
900 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
901 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
902 | },
903 | "is-fullwidth-code-point": {
904 | "version": "3.0.0",
905 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
906 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
907 | },
908 | "strip-ansi": {
909 | "version": "6.0.0",
910 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
911 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
912 | "requires": {
913 | "ansi-regex": "^5.0.0"
914 | }
915 | }
916 | }
917 | },
918 | "string_decoder": {
919 | "version": "1.1.1",
920 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
921 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
922 | "requires": {
923 | "safe-buffer": "~5.1.0"
924 | },
925 | "dependencies": {
926 | "safe-buffer": {
927 | "version": "5.1.2",
928 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
929 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
930 | }
931 | }
932 | },
933 | "strip-ansi": {
934 | "version": "5.2.0",
935 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
936 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
937 | "requires": {
938 | "ansi-regex": "^4.1.0"
939 | }
940 | },
941 | "strip-json-comments": {
942 | "version": "2.0.1",
943 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
944 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
945 | },
946 | "supports-color": {
947 | "version": "5.5.0",
948 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
949 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
950 | "requires": {
951 | "has-flag": "^3.0.0"
952 | }
953 | },
954 | "telegraf": {
955 | "version": "4.3.0",
956 | "resolved": "https://registry.npmjs.org/telegraf/-/telegraf-4.3.0.tgz",
957 | "integrity": "sha512-MuDUtSMipzMzQp8fXbQx76jp4ZD70KREdnpH1idUzN9Zlgm6EzatBQFU4Ps0ipxtEmnBBdghBMumQwrjRe3eqg==",
958 | "requires": {
959 | "abort-controller": "^3.0.0",
960 | "debug": "^4.3.1",
961 | "minimist": "^1.2.5",
962 | "module-alias": "^2.2.2",
963 | "node-fetch": "^2.6.1",
964 | "p-timeout": "^4.1.0",
965 | "safe-compare": "^1.1.4",
966 | "sandwich-stream": "^2.0.2",
967 | "typegram": "^3.2.0"
968 | }
969 | },
970 | "term-size": {
971 | "version": "2.2.1",
972 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
973 | "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg=="
974 | },
975 | "to-readable-stream": {
976 | "version": "1.0.0",
977 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
978 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
979 | },
980 | "to-regex-range": {
981 | "version": "5.0.1",
982 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
983 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
984 | "requires": {
985 | "is-number": "^7.0.0"
986 | }
987 | },
988 | "touch": {
989 | "version": "3.1.0",
990 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
991 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
992 | "requires": {
993 | "nopt": "~1.0.10"
994 | }
995 | },
996 | "type-fest": {
997 | "version": "0.8.1",
998 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
999 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="
1000 | },
1001 | "typedarray-to-buffer": {
1002 | "version": "3.1.5",
1003 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
1004 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
1005 | "requires": {
1006 | "is-typedarray": "^1.0.0"
1007 | }
1008 | },
1009 | "typegram": {
1010 | "version": "3.2.3",
1011 | "resolved": "https://registry.npmjs.org/typegram/-/typegram-3.2.3.tgz",
1012 | "integrity": "sha512-zlkY7vNTLcwQhLUyYXAUzRelzH752LBFl8m4u04d5g5P7lM9bGegeIRwzd3mVCHJH6R3s48pKeFTVSdVlN+omg=="
1013 | },
1014 | "undefsafe": {
1015 | "version": "2.0.3",
1016 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
1017 | "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
1018 | "requires": {
1019 | "debug": "^2.2.0"
1020 | },
1021 | "dependencies": {
1022 | "debug": {
1023 | "version": "2.6.9",
1024 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1025 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1026 | "requires": {
1027 | "ms": "2.0.0"
1028 | }
1029 | },
1030 | "ms": {
1031 | "version": "2.0.0",
1032 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1033 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1034 | }
1035 | }
1036 | },
1037 | "unique-string": {
1038 | "version": "2.0.0",
1039 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
1040 | "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
1041 | "requires": {
1042 | "crypto-random-string": "^2.0.0"
1043 | }
1044 | },
1045 | "update-notifier": {
1046 | "version": "4.1.3",
1047 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
1048 | "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
1049 | "requires": {
1050 | "boxen": "^4.2.0",
1051 | "chalk": "^3.0.0",
1052 | "configstore": "^5.0.1",
1053 | "has-yarn": "^2.1.0",
1054 | "import-lazy": "^2.1.0",
1055 | "is-ci": "^2.0.0",
1056 | "is-installed-globally": "^0.3.1",
1057 | "is-npm": "^4.0.0",
1058 | "is-yarn-global": "^0.3.0",
1059 | "latest-version": "^5.0.0",
1060 | "pupa": "^2.0.1",
1061 | "semver-diff": "^3.1.1",
1062 | "xdg-basedir": "^4.0.0"
1063 | }
1064 | },
1065 | "url-parse-lax": {
1066 | "version": "3.0.0",
1067 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
1068 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
1069 | "requires": {
1070 | "prepend-http": "^2.0.0"
1071 | }
1072 | },
1073 | "util-deprecate": {
1074 | "version": "1.0.2",
1075 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1076 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
1077 | },
1078 | "widest-line": {
1079 | "version": "3.1.0",
1080 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
1081 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
1082 | "requires": {
1083 | "string-width": "^4.0.0"
1084 | }
1085 | },
1086 | "wrappy": {
1087 | "version": "1.0.2",
1088 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1089 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1090 | },
1091 | "write-file-atomic": {
1092 | "version": "3.0.3",
1093 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
1094 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
1095 | "requires": {
1096 | "imurmurhash": "^0.1.4",
1097 | "is-typedarray": "^1.0.0",
1098 | "signal-exit": "^3.0.2",
1099 | "typedarray-to-buffer": "^3.1.5"
1100 | }
1101 | },
1102 | "xdg-basedir": {
1103 | "version": "4.0.0",
1104 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
1105 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
1106 | }
1107 | }
1108 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fstorebot",
3 | "version": "1.0.0",
4 | "description": "another way to share files",
5 | "main": "index.js",
6 | "dependencies": {
7 | "dotenv": "^8.2.0",
8 | "mongodb": "^3.6.5",
9 | "nodemon": "^2.0.7",
10 | "telegraf": "^4.3.0"
11 | },
12 | "devDependencies": {},
13 | "scripts": {
14 | "start": "node index.js",
15 | "test": "echo \"Error: no test specified\" && exit 1"
16 | },
17 | "author": "",
18 | "license": "ISC"
19 | }
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
TOKEN
- Get bot token from bot father
29 |
30 | DOMAIN
- Same as app name that you enter in heroku
31 |
32 | ADMIN
- your account id(if you cant find it use bots like [@getidsbot](https://t.me/getidsbot) )
33 |
34 | BOTUSERNAME
- your bot username without '@'
35 |
36 | DB_URL
- create an account on https://www.mongodb.com/cloud/atlas , database name - mediaFile ,collection name - fileBackup.Click connect and choose 'connect your application'.Copy the link and replace "< password >" with password of user having acess to db and replace "myFirstDatabase" to "mediaFile"
37 |
38 | LOG_CHANNEL
- create a private channel and get channel ID (if you cant get channel id forward any message from channel to [@getidsbot](https://t.me/getidsbot) it may look something like -1001234567899)
39 | /ban
userID
48 |
49 | /unban
userID
50 |
51 | (Get userID from log channel)
52 |
53 |
54 | /rem
file_id
69 |
70 | (This will remove files one by one as you give file_id,Get file_id from log channel)
71 |
72 |
73 | Remove all files send by a user
74 |
75 | /remall
userID
76 |
77 | (You can remove all files send by a particular user if user is sending abusive contents or spam ,Get the userID from log channel)
78 |
79 |
80 | Remove all files send to b0t
81 |
82 | /clear
83 |
84 | (This will remove all files send to the bot permenantly)
85 |
86 |
87 | /send
your message to be broadcasted
90 |
91 | (You can broadcast text messages to your users ,the message will be send from last joined user to first joined user to reduce spam.Try not to send too many messages at a single time if you have a large number of users)
92 |
93 |
94 | /stats
97 |
98 | (You will get total users started your bot,Real time data will be updated after a succesfull broadcast)
99 |
100 |
101 |
102 | If you wish to support me follow me on github as a token of support
103 |
104 |
--------------------------------------------------------------------------------