├── .gitignore
├── Procfile
├── README.md
├── const.js
├── img
├── 1.jpg
├── 2.jpg
├── botpic.jpg
└── deploy
│ ├── create_new_app.jpg
│ ├── deploy.jpg
│ ├── logs.jpg
│ ├── resources.jpg
│ ├── restart.jpg
│ └── token_heroku.jpg
├── index.js
├── package-lock.json
└── package.json
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | .env
3 | package-lock.json
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | worker: npm start
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Создание телеграм бота на Telegraf.js
2 |
3 | ## Регистрация бота в Телеграм
4 |
5 | - В Телеграме найти бота @BotFather
6 | - Ввести команду /newbot
7 | - Следуя подсказкам придумать название бота и логин для него
8 | - Получить ссылку на нового бота и API токен
9 | - Ввести команду /mybots
10 | - Выбрать своего бота и нажать Edit Bot
11 | - Добавить информацию description, about, botpic, commands
12 |
13 | ## Инициализация проекта
14 |
15 | - Создать папку с названием проекта
16 | - Открыть проект в своей IDE или редакторе
17 | - Открыть терминал и перейти в папку с проектом
18 | > **ls, dir** посмотреть список каталогов
19 | > **cd ..** перейти на уровень выше
20 | > **cd каталог** перейти в каталог
21 | - проверить версию node.js если нет версии, то установить [node.js](https://nodejs.org/en/)
22 | > **node -v** проверить версию
23 | - инициализировать проект (создать файл package.json)
24 | > **npm init -y**
25 | - установить [nodemon](https://www.npmjs.com/package/nodemon)
26 | > **npm i -D nodemon**
27 | - установить [telegraf](https://www.npmjs.com/package/telegraf)
28 | > **npm i telegraf**
29 | - установить [dotenv](https://www.npmjs.com/package/dotenv)
30 | > **npm i dotenv**
31 | - Создать **файл .env** и записать в него:
32 | > BOT_TOKEN = Токен из @BotFather
33 | - Создать **файл index.js** и записать в него:
34 | > const { Telegraf, Markup } = require("telegraf")
35 | > require("dotenv").config()
36 | > const bot = new Telegraf(process.env.BOT_TOKEN)
37 | > bot.start((ctx) => ctx.reply('Welcome'))
38 | > bot.help((ctx) => ctx.reply('Send me a sticker'))
39 | > bot.on('sticker', (ctx) => ctx.reply('Like'))
40 | > bot.hears('hi', (ctx) => ctx.reply('Hey there'))
41 | > bot.launch()
42 | > process.once('SIGINT', () => bot.stop('SIGINT'))
43 | > process.once('SIGTERM', () => bot.stop('SIGTERM'))
44 | - Создать **файл .gitignore**
45 | > /node_modules
46 | > .env
47 | > package-lock.json
48 | - Создать **файл Procfile**
49 | > worker: npm start
50 | - Изменить скрипты в файле **package.json**
51 | > "scripts": {
52 | > "start": "node index.js",
53 | > "dev": "nodemon index.js"
54 | > },
55 | - Запустить проект командой
56 | > npm run dev
57 |
58 | ## Деплой проекта на Heroku
59 |
60 | - Зарегистрироваться на [GitHub](https://github.com/) и войти
61 | - Создать репозиторий и запушить код бота
62 | - Зарегистрироваться на [Heroku](https://www.heroku.com/) и войти
63 | - Создать новое приложение
64 | 
65 | - Добавить константу с API токеном
66 | 
67 | - Переключить Dyno с web на worker
68 | 
69 | - На вкладке Deploy связать проект с репозиторием GitHub
70 | 
71 | - Включить Automatic deploys (опционально)
72 | - Запусть Manual Deploy
73 | - Перезагрузить все Dyno
74 | 
75 | - Просматривать логи
76 | 
77 |
78 | ### Полезные материалы
79 |
80 | - [Видео урок по созданию бота](https://youtu.be/YxHWfDdjIek)
81 | - [Обзор моего бота](https://youtu.be/IZj7up7CDdU)
82 | - [Шаблонные строки](https://youtu.be/OPeujASczVM)
83 | - [Тернарный оператор](https://youtu.be/C0rqUyNI5zA)
84 | - [Курс по JavaScript](https://www.youtube.com/playlist?list=PLuY6eeDuleINoCQtGZsMoVVCSgEH7gKQ5)
85 | - [Перехват ошибок try catch](https://youtu.be/jMoyWtoDtYA)
86 | - [Курс по Git + GitHub](https://www.youtube.com/playlist?list=PLuY6eeDuleIOMB2R_Kky05ZfiAx2_pbAH)
87 |
88 | ### Контакты ITDoctor
89 |
90 | [YouTube](https://www.youtube.com/c/ITDoctor)
91 | [Telegram](https://t.me/itdoctorstudio) и бот [@itdoctorNavigatorBot](https://t.me/itdoctorNavigatorBot?start)
92 | [Курсы на Udemy](https://www.udemy.com/user/useinov-ismail-asanovich/)
93 | [GitHub](https://github.com/morphIsmail)
94 | [VK](https://vk.com/itdoctorstudio)
95 |
--------------------------------------------------------------------------------
/const.js:
--------------------------------------------------------------------------------
1 | // Команды бота
2 | const commands = `
3 | /start - Перезапустить бота
4 | /help - Помощь
5 | /course - Курсы
6 | `
7 | // Текстовые константы
8 | const text1 = `
9 | 1 Жирный Текст для проверки обработчика и ссылка без превью
10 | `
11 | const text2 = `
12 | 2 Курсивный Текст для проверки обработчика, Зачёркнутый текст и Моноширинный текст
13 | `
14 | const text3 = `
15 | 3 Подчёркнутый Текст для проверки обработчика и ссылка с превью
16 | `
17 | // Экспорт констант
18 | module.exports.commands = commands
19 | module.exports.text1 = text1
20 | module.exports.text2 = text2
21 | module.exports.text3 = text3
--------------------------------------------------------------------------------
/img/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morphIsmail/testitdbot/bcc866bdd55f73e3821aaeb93fea0eea7a5065d9/img/1.jpg
--------------------------------------------------------------------------------
/img/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morphIsmail/testitdbot/bcc866bdd55f73e3821aaeb93fea0eea7a5065d9/img/2.jpg
--------------------------------------------------------------------------------
/img/botpic.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morphIsmail/testitdbot/bcc866bdd55f73e3821aaeb93fea0eea7a5065d9/img/botpic.jpg
--------------------------------------------------------------------------------
/img/deploy/create_new_app.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morphIsmail/testitdbot/bcc866bdd55f73e3821aaeb93fea0eea7a5065d9/img/deploy/create_new_app.jpg
--------------------------------------------------------------------------------
/img/deploy/deploy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morphIsmail/testitdbot/bcc866bdd55f73e3821aaeb93fea0eea7a5065d9/img/deploy/deploy.jpg
--------------------------------------------------------------------------------
/img/deploy/logs.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morphIsmail/testitdbot/bcc866bdd55f73e3821aaeb93fea0eea7a5065d9/img/deploy/logs.jpg
--------------------------------------------------------------------------------
/img/deploy/resources.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morphIsmail/testitdbot/bcc866bdd55f73e3821aaeb93fea0eea7a5065d9/img/deploy/resources.jpg
--------------------------------------------------------------------------------
/img/deploy/restart.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morphIsmail/testitdbot/bcc866bdd55f73e3821aaeb93fea0eea7a5065d9/img/deploy/restart.jpg
--------------------------------------------------------------------------------
/img/deploy/token_heroku.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morphIsmail/testitdbot/bcc866bdd55f73e3821aaeb93fea0eea7a5065d9/img/deploy/token_heroku.jpg
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | // Импорт Telegraf и Markup
2 | const {
3 | Telegraf,
4 | Markup
5 | } = require('telegraf')
6 | // Импорт dotenv для защиты API токена
7 | require('dotenv').config()
8 | // Импорт нашего модуля с константами
9 | const my_const = require('./const')
10 | // Инициализация бота с помощью Telegraf
11 | const bot = new Telegraf(process.env.BOT_TOKEN)
12 |
13 | // Обработка команды /start
14 | bot.start((ctx) => ctx.reply(`Привет ${ctx.message.from.first_name ? ctx.message.from.first_name : 'незнакомец'}!`))
15 | // Обработка команды /help
16 | bot.help((ctx) => ctx.reply(my_const.commands))
17 | // Обработка команды /course
18 | bot.command('course', async (ctx) => {
19 | try {
20 | await ctx.replyWithHTML('Курсы', Markup.inlineKeyboard(
21 | [
22 | [Markup.button.callback('Редакторы', 'btn_1'), Markup.button.callback('Обзоры', 'btn_2'), Markup.button.callback('JS', 'btn_3')]
23 | ]
24 | ))
25 | } catch (e) {
26 | console.error(e)
27 | }
28 | })
29 | /**
30 | * Функция для отправки сообщения ботом
31 | * @param {String} id_btn Идентификатор кнопки для обработки
32 | * @param {String} src_img Путь к изображению, или false чтобы отправить только текст
33 | * @param {String} text Текстовое сообщение для отправки
34 | * @param {Boolean} preview Блокировать превью у ссылок или нет, true - блокировать, false - нет
35 | */
36 | function addActionBot(id_btn, src_img, text, preview) {
37 | bot.action(id_btn, async (ctx) => {
38 | try {
39 | await ctx.answerCbQuery()
40 | if (src_img !== false) {
41 | await ctx.replyWithPhoto({
42 | source: src_img
43 | })
44 | }
45 | await ctx.replyWithHTML(text, {
46 | disable_web_page_preview: preview
47 | })
48 | } catch (e) {
49 | console.error(e)
50 | }
51 | })
52 | }
53 | // Обработчик кнопок с помощью функции
54 | addActionBot('btn_1', './img/1.jpg', my_const.text1, true)
55 | addActionBot('btn_2', './img/2.jpg', my_const.text2, true)
56 | addActionBot('btn_3', false, my_const.text3, false)
57 |
58 | // Запустить бота
59 | bot.launch()
60 |
61 | // Включить плавную остановку
62 | process.once('SIGINT', () => bot.stop('SIGINT'))
63 | process.once('SIGTERM', () => bot.stop('SIGTERM'))
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "testITDbot",
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 | "dev": true
12 | },
13 | "@szmarczak/http-timer": {
14 | "version": "1.1.2",
15 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
16 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
17 | "dev": true,
18 | "requires": {
19 | "defer-to-connect": "^1.0.1"
20 | }
21 | },
22 | "abbrev": {
23 | "version": "1.1.1",
24 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
25 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
26 | "dev": true
27 | },
28 | "abort-controller": {
29 | "version": "3.0.0",
30 | "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
31 | "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
32 | "requires": {
33 | "event-target-shim": "^5.0.0"
34 | }
35 | },
36 | "ansi-align": {
37 | "version": "3.0.0",
38 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
39 | "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
40 | "dev": true,
41 | "requires": {
42 | "string-width": "^3.0.0"
43 | },
44 | "dependencies": {
45 | "string-width": {
46 | "version": "3.1.0",
47 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
48 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
49 | "dev": true,
50 | "requires": {
51 | "emoji-regex": "^7.0.1",
52 | "is-fullwidth-code-point": "^2.0.0",
53 | "strip-ansi": "^5.1.0"
54 | }
55 | }
56 | }
57 | },
58 | "ansi-regex": {
59 | "version": "4.1.0",
60 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
61 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
62 | "dev": true
63 | },
64 | "ansi-styles": {
65 | "version": "4.3.0",
66 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
67 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
68 | "dev": true,
69 | "requires": {
70 | "color-convert": "^2.0.1"
71 | }
72 | },
73 | "anymatch": {
74 | "version": "3.1.2",
75 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
76 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
77 | "dev": true,
78 | "requires": {
79 | "normalize-path": "^3.0.0",
80 | "picomatch": "^2.0.4"
81 | }
82 | },
83 | "balanced-match": {
84 | "version": "1.0.2",
85 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
86 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
87 | "dev": true
88 | },
89 | "binary-extensions": {
90 | "version": "2.2.0",
91 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
92 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
93 | "dev": true
94 | },
95 | "boxen": {
96 | "version": "4.2.0",
97 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz",
98 | "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
99 | "dev": true,
100 | "requires": {
101 | "ansi-align": "^3.0.0",
102 | "camelcase": "^5.3.1",
103 | "chalk": "^3.0.0",
104 | "cli-boxes": "^2.2.0",
105 | "string-width": "^4.1.0",
106 | "term-size": "^2.1.0",
107 | "type-fest": "^0.8.1",
108 | "widest-line": "^3.1.0"
109 | }
110 | },
111 | "brace-expansion": {
112 | "version": "1.1.11",
113 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
114 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
115 | "dev": true,
116 | "requires": {
117 | "balanced-match": "^1.0.0",
118 | "concat-map": "0.0.1"
119 | }
120 | },
121 | "braces": {
122 | "version": "3.0.2",
123 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
124 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
125 | "dev": true,
126 | "requires": {
127 | "fill-range": "^7.0.1"
128 | }
129 | },
130 | "buffer-alloc": {
131 | "version": "1.2.0",
132 | "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
133 | "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
134 | "requires": {
135 | "buffer-alloc-unsafe": "^1.1.0",
136 | "buffer-fill": "^1.0.0"
137 | }
138 | },
139 | "buffer-alloc-unsafe": {
140 | "version": "1.1.0",
141 | "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
142 | "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
143 | },
144 | "buffer-fill": {
145 | "version": "1.0.0",
146 | "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
147 | "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw="
148 | },
149 | "cacheable-request": {
150 | "version": "6.1.0",
151 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
152 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
153 | "dev": true,
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 | "dev": true,
169 | "requires": {
170 | "pump": "^3.0.0"
171 | }
172 | },
173 | "lowercase-keys": {
174 | "version": "2.0.0",
175 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
176 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
177 | "dev": true
178 | }
179 | }
180 | },
181 | "camelcase": {
182 | "version": "5.3.1",
183 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
184 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
185 | "dev": true
186 | },
187 | "chalk": {
188 | "version": "3.0.0",
189 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
190 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
191 | "dev": true,
192 | "requires": {
193 | "ansi-styles": "^4.1.0",
194 | "supports-color": "^7.1.0"
195 | },
196 | "dependencies": {
197 | "has-flag": {
198 | "version": "4.0.0",
199 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
200 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
201 | "dev": true
202 | },
203 | "supports-color": {
204 | "version": "7.2.0",
205 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
206 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
207 | "dev": true,
208 | "requires": {
209 | "has-flag": "^4.0.0"
210 | }
211 | }
212 | }
213 | },
214 | "chokidar": {
215 | "version": "3.5.2",
216 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
217 | "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
218 | "dev": true,
219 | "requires": {
220 | "anymatch": "~3.1.2",
221 | "braces": "~3.0.2",
222 | "fsevents": "~2.3.2",
223 | "glob-parent": "~5.1.2",
224 | "is-binary-path": "~2.1.0",
225 | "is-glob": "~4.0.1",
226 | "normalize-path": "~3.0.0",
227 | "readdirp": "~3.6.0"
228 | }
229 | },
230 | "ci-info": {
231 | "version": "2.0.0",
232 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
233 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
234 | "dev": true
235 | },
236 | "cli-boxes": {
237 | "version": "2.2.1",
238 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
239 | "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
240 | "dev": true
241 | },
242 | "clone-response": {
243 | "version": "1.0.2",
244 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
245 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
246 | "dev": true,
247 | "requires": {
248 | "mimic-response": "^1.0.0"
249 | }
250 | },
251 | "color-convert": {
252 | "version": "2.0.1",
253 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
254 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
255 | "dev": true,
256 | "requires": {
257 | "color-name": "~1.1.4"
258 | }
259 | },
260 | "color-name": {
261 | "version": "1.1.4",
262 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
263 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
264 | "dev": true
265 | },
266 | "concat-map": {
267 | "version": "0.0.1",
268 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
269 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
270 | "dev": true
271 | },
272 | "configstore": {
273 | "version": "5.0.1",
274 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
275 | "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
276 | "dev": true,
277 | "requires": {
278 | "dot-prop": "^5.2.0",
279 | "graceful-fs": "^4.1.2",
280 | "make-dir": "^3.0.0",
281 | "unique-string": "^2.0.0",
282 | "write-file-atomic": "^3.0.0",
283 | "xdg-basedir": "^4.0.0"
284 | }
285 | },
286 | "crypto-random-string": {
287 | "version": "2.0.0",
288 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
289 | "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
290 | "dev": true
291 | },
292 | "debug": {
293 | "version": "4.3.2",
294 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
295 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
296 | "requires": {
297 | "ms": "2.1.2"
298 | }
299 | },
300 | "decompress-response": {
301 | "version": "3.3.0",
302 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
303 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
304 | "dev": true,
305 | "requires": {
306 | "mimic-response": "^1.0.0"
307 | }
308 | },
309 | "deep-extend": {
310 | "version": "0.6.0",
311 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
312 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
313 | "dev": true
314 | },
315 | "defer-to-connect": {
316 | "version": "1.1.3",
317 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
318 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
319 | "dev": true
320 | },
321 | "dot-prop": {
322 | "version": "5.3.0",
323 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
324 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
325 | "dev": true,
326 | "requires": {
327 | "is-obj": "^2.0.0"
328 | }
329 | },
330 | "dotenv": {
331 | "version": "10.0.0",
332 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
333 | "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
334 | },
335 | "duplexer3": {
336 | "version": "0.1.4",
337 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
338 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
339 | "dev": true
340 | },
341 | "emoji-regex": {
342 | "version": "7.0.3",
343 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
344 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
345 | "dev": true
346 | },
347 | "end-of-stream": {
348 | "version": "1.4.4",
349 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
350 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
351 | "dev": true,
352 | "requires": {
353 | "once": "^1.4.0"
354 | }
355 | },
356 | "escape-goat": {
357 | "version": "2.1.1",
358 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
359 | "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
360 | "dev": true
361 | },
362 | "event-target-shim": {
363 | "version": "5.0.1",
364 | "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
365 | "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
366 | },
367 | "fill-range": {
368 | "version": "7.0.1",
369 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
370 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
371 | "dev": true,
372 | "requires": {
373 | "to-regex-range": "^5.0.1"
374 | }
375 | },
376 | "fsevents": {
377 | "version": "2.3.2",
378 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
379 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
380 | "dev": true,
381 | "optional": true
382 | },
383 | "get-stream": {
384 | "version": "4.1.0",
385 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
386 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
387 | "dev": true,
388 | "requires": {
389 | "pump": "^3.0.0"
390 | }
391 | },
392 | "glob-parent": {
393 | "version": "5.1.2",
394 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
395 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
396 | "dev": true,
397 | "requires": {
398 | "is-glob": "^4.0.1"
399 | }
400 | },
401 | "global-dirs": {
402 | "version": "2.1.0",
403 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz",
404 | "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==",
405 | "dev": true,
406 | "requires": {
407 | "ini": "1.3.7"
408 | }
409 | },
410 | "got": {
411 | "version": "9.6.0",
412 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
413 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
414 | "dev": true,
415 | "requires": {
416 | "@sindresorhus/is": "^0.14.0",
417 | "@szmarczak/http-timer": "^1.1.2",
418 | "cacheable-request": "^6.0.0",
419 | "decompress-response": "^3.3.0",
420 | "duplexer3": "^0.1.4",
421 | "get-stream": "^4.1.0",
422 | "lowercase-keys": "^1.0.1",
423 | "mimic-response": "^1.0.1",
424 | "p-cancelable": "^1.0.0",
425 | "to-readable-stream": "^1.0.0",
426 | "url-parse-lax": "^3.0.0"
427 | }
428 | },
429 | "graceful-fs": {
430 | "version": "4.2.8",
431 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
432 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==",
433 | "dev": true
434 | },
435 | "has-flag": {
436 | "version": "3.0.0",
437 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
438 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
439 | "dev": true
440 | },
441 | "has-yarn": {
442 | "version": "2.1.0",
443 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
444 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
445 | "dev": true
446 | },
447 | "http-cache-semantics": {
448 | "version": "4.1.0",
449 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
450 | "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
451 | "dev": true
452 | },
453 | "ignore-by-default": {
454 | "version": "1.0.1",
455 | "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz",
456 | "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
457 | "dev": true
458 | },
459 | "import-lazy": {
460 | "version": "2.1.0",
461 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
462 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
463 | "dev": true
464 | },
465 | "imurmurhash": {
466 | "version": "0.1.4",
467 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
468 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
469 | "dev": true
470 | },
471 | "ini": {
472 | "version": "1.3.7",
473 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
474 | "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==",
475 | "dev": true
476 | },
477 | "is-binary-path": {
478 | "version": "2.1.0",
479 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
480 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
481 | "dev": true,
482 | "requires": {
483 | "binary-extensions": "^2.0.0"
484 | }
485 | },
486 | "is-ci": {
487 | "version": "2.0.0",
488 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
489 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
490 | "dev": true,
491 | "requires": {
492 | "ci-info": "^2.0.0"
493 | }
494 | },
495 | "is-extglob": {
496 | "version": "2.1.1",
497 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
498 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
499 | "dev": true
500 | },
501 | "is-fullwidth-code-point": {
502 | "version": "2.0.0",
503 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
504 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
505 | "dev": true
506 | },
507 | "is-glob": {
508 | "version": "4.0.1",
509 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
510 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
511 | "dev": true,
512 | "requires": {
513 | "is-extglob": "^2.1.1"
514 | }
515 | },
516 | "is-installed-globally": {
517 | "version": "0.3.2",
518 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz",
519 | "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
520 | "dev": true,
521 | "requires": {
522 | "global-dirs": "^2.0.1",
523 | "is-path-inside": "^3.0.1"
524 | }
525 | },
526 | "is-npm": {
527 | "version": "4.0.0",
528 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz",
529 | "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==",
530 | "dev": true
531 | },
532 | "is-number": {
533 | "version": "7.0.0",
534 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
535 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
536 | "dev": true
537 | },
538 | "is-obj": {
539 | "version": "2.0.0",
540 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
541 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
542 | "dev": true
543 | },
544 | "is-path-inside": {
545 | "version": "3.0.3",
546 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
547 | "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
548 | "dev": true
549 | },
550 | "is-typedarray": {
551 | "version": "1.0.0",
552 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
553 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
554 | "dev": true
555 | },
556 | "is-yarn-global": {
557 | "version": "0.3.0",
558 | "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
559 | "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
560 | "dev": true
561 | },
562 | "json-buffer": {
563 | "version": "3.0.0",
564 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
565 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
566 | "dev": true
567 | },
568 | "keyv": {
569 | "version": "3.1.0",
570 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
571 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
572 | "dev": true,
573 | "requires": {
574 | "json-buffer": "3.0.0"
575 | }
576 | },
577 | "latest-version": {
578 | "version": "5.1.0",
579 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
580 | "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
581 | "dev": true,
582 | "requires": {
583 | "package-json": "^6.3.0"
584 | }
585 | },
586 | "lowercase-keys": {
587 | "version": "1.0.1",
588 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
589 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
590 | "dev": true
591 | },
592 | "make-dir": {
593 | "version": "3.1.0",
594 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
595 | "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
596 | "dev": true,
597 | "requires": {
598 | "semver": "^6.0.0"
599 | },
600 | "dependencies": {
601 | "semver": {
602 | "version": "6.3.0",
603 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
604 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
605 | "dev": true
606 | }
607 | }
608 | },
609 | "mimic-response": {
610 | "version": "1.0.1",
611 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
612 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
613 | "dev": true
614 | },
615 | "minimatch": {
616 | "version": "3.0.4",
617 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
618 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
619 | "dev": true,
620 | "requires": {
621 | "brace-expansion": "^1.1.7"
622 | }
623 | },
624 | "minimist": {
625 | "version": "1.2.5",
626 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
627 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
628 | },
629 | "module-alias": {
630 | "version": "2.2.2",
631 | "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz",
632 | "integrity": "sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q=="
633 | },
634 | "ms": {
635 | "version": "2.1.2",
636 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
637 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
638 | },
639 | "node-fetch": {
640 | "version": "2.6.1",
641 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
642 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
643 | },
644 | "nodemon": {
645 | "version": "2.0.12",
646 | "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.12.tgz",
647 | "integrity": "sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA==",
648 | "dev": true,
649 | "requires": {
650 | "chokidar": "^3.2.2",
651 | "debug": "^3.2.6",
652 | "ignore-by-default": "^1.0.1",
653 | "minimatch": "^3.0.4",
654 | "pstree.remy": "^1.1.7",
655 | "semver": "^5.7.1",
656 | "supports-color": "^5.5.0",
657 | "touch": "^3.1.0",
658 | "undefsafe": "^2.0.3",
659 | "update-notifier": "^4.1.0"
660 | },
661 | "dependencies": {
662 | "debug": {
663 | "version": "3.2.7",
664 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
665 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
666 | "dev": true,
667 | "requires": {
668 | "ms": "^2.1.1"
669 | }
670 | }
671 | }
672 | },
673 | "nopt": {
674 | "version": "1.0.10",
675 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
676 | "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
677 | "dev": true,
678 | "requires": {
679 | "abbrev": "1"
680 | }
681 | },
682 | "normalize-path": {
683 | "version": "3.0.0",
684 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
685 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
686 | "dev": true
687 | },
688 | "normalize-url": {
689 | "version": "4.5.1",
690 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
691 | "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
692 | "dev": true
693 | },
694 | "once": {
695 | "version": "1.4.0",
696 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
697 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
698 | "dev": true,
699 | "requires": {
700 | "wrappy": "1"
701 | }
702 | },
703 | "p-cancelable": {
704 | "version": "1.1.0",
705 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
706 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
707 | "dev": true
708 | },
709 | "p-timeout": {
710 | "version": "4.1.0",
711 | "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz",
712 | "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw=="
713 | },
714 | "package-json": {
715 | "version": "6.5.0",
716 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
717 | "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
718 | "dev": true,
719 | "requires": {
720 | "got": "^9.6.0",
721 | "registry-auth-token": "^4.0.0",
722 | "registry-url": "^5.0.0",
723 | "semver": "^6.2.0"
724 | },
725 | "dependencies": {
726 | "semver": {
727 | "version": "6.3.0",
728 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
729 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
730 | "dev": true
731 | }
732 | }
733 | },
734 | "picomatch": {
735 | "version": "2.3.0",
736 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
737 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
738 | "dev": true
739 | },
740 | "prepend-http": {
741 | "version": "2.0.0",
742 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
743 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
744 | "dev": true
745 | },
746 | "pstree.remy": {
747 | "version": "1.1.8",
748 | "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
749 | "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==",
750 | "dev": true
751 | },
752 | "pump": {
753 | "version": "3.0.0",
754 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
755 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
756 | "dev": true,
757 | "requires": {
758 | "end-of-stream": "^1.1.0",
759 | "once": "^1.3.1"
760 | }
761 | },
762 | "pupa": {
763 | "version": "2.1.1",
764 | "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
765 | "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
766 | "dev": true,
767 | "requires": {
768 | "escape-goat": "^2.0.0"
769 | }
770 | },
771 | "rc": {
772 | "version": "1.2.8",
773 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
774 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
775 | "dev": true,
776 | "requires": {
777 | "deep-extend": "^0.6.0",
778 | "ini": "~1.3.0",
779 | "minimist": "^1.2.0",
780 | "strip-json-comments": "~2.0.1"
781 | }
782 | },
783 | "readdirp": {
784 | "version": "3.6.0",
785 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
786 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
787 | "dev": true,
788 | "requires": {
789 | "picomatch": "^2.2.1"
790 | }
791 | },
792 | "registry-auth-token": {
793 | "version": "4.2.1",
794 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
795 | "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
796 | "dev": true,
797 | "requires": {
798 | "rc": "^1.2.8"
799 | }
800 | },
801 | "registry-url": {
802 | "version": "5.1.0",
803 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
804 | "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
805 | "dev": true,
806 | "requires": {
807 | "rc": "^1.2.8"
808 | }
809 | },
810 | "responselike": {
811 | "version": "1.0.2",
812 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
813 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
814 | "dev": true,
815 | "requires": {
816 | "lowercase-keys": "^1.0.0"
817 | }
818 | },
819 | "safe-compare": {
820 | "version": "1.1.4",
821 | "resolved": "https://registry.npmjs.org/safe-compare/-/safe-compare-1.1.4.tgz",
822 | "integrity": "sha512-b9wZ986HHCo/HbKrRpBJb2kqXMK9CEWIE1egeEvZsYn69ay3kdfl9nG3RyOcR+jInTDf7a86WQ1d4VJX7goSSQ==",
823 | "requires": {
824 | "buffer-alloc": "^1.2.0"
825 | }
826 | },
827 | "sandwich-stream": {
828 | "version": "2.0.2",
829 | "resolved": "https://registry.npmjs.org/sandwich-stream/-/sandwich-stream-2.0.2.tgz",
830 | "integrity": "sha512-jLYV0DORrzY3xaz/S9ydJL6Iz7essZeAfnAavsJ+zsJGZ1MOnsS52yRjU3uF3pJa/lla7+wisp//fxOwOH8SKQ=="
831 | },
832 | "semver": {
833 | "version": "5.7.1",
834 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
835 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
836 | "dev": true
837 | },
838 | "semver-diff": {
839 | "version": "3.1.1",
840 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
841 | "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
842 | "dev": true,
843 | "requires": {
844 | "semver": "^6.3.0"
845 | },
846 | "dependencies": {
847 | "semver": {
848 | "version": "6.3.0",
849 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
850 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
851 | "dev": true
852 | }
853 | }
854 | },
855 | "signal-exit": {
856 | "version": "3.0.3",
857 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
858 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
859 | "dev": true
860 | },
861 | "string-width": {
862 | "version": "4.2.2",
863 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
864 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
865 | "dev": true,
866 | "requires": {
867 | "emoji-regex": "^8.0.0",
868 | "is-fullwidth-code-point": "^3.0.0",
869 | "strip-ansi": "^6.0.0"
870 | },
871 | "dependencies": {
872 | "ansi-regex": {
873 | "version": "5.0.0",
874 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
875 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
876 | "dev": true
877 | },
878 | "emoji-regex": {
879 | "version": "8.0.0",
880 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
881 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
882 | "dev": true
883 | },
884 | "is-fullwidth-code-point": {
885 | "version": "3.0.0",
886 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
887 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
888 | "dev": true
889 | },
890 | "strip-ansi": {
891 | "version": "6.0.0",
892 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
893 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
894 | "dev": true,
895 | "requires": {
896 | "ansi-regex": "^5.0.0"
897 | }
898 | }
899 | }
900 | },
901 | "strip-ansi": {
902 | "version": "5.2.0",
903 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
904 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
905 | "dev": true,
906 | "requires": {
907 | "ansi-regex": "^4.1.0"
908 | }
909 | },
910 | "strip-json-comments": {
911 | "version": "2.0.1",
912 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
913 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
914 | "dev": true
915 | },
916 | "supports-color": {
917 | "version": "5.5.0",
918 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
919 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
920 | "dev": true,
921 | "requires": {
922 | "has-flag": "^3.0.0"
923 | }
924 | },
925 | "telegraf": {
926 | "version": "4.4.1",
927 | "resolved": "https://registry.npmjs.org/telegraf/-/telegraf-4.4.1.tgz",
928 | "integrity": "sha512-jxV8fC/K6abcUTlhy/l8txJAmEJIkJoDu/cN0yXOJWLp9csfLIp+cD4qlwJ6ko+4EgOJmNZvWK7Tr2dxKolJQQ==",
929 | "requires": {
930 | "abort-controller": "^3.0.0",
931 | "debug": "^4.3.1",
932 | "minimist": "^1.2.5",
933 | "module-alias": "^2.2.2",
934 | "node-fetch": "^2.6.1",
935 | "p-timeout": "^4.1.0",
936 | "safe-compare": "^1.1.4",
937 | "sandwich-stream": "^2.0.2",
938 | "typegram": "^3.4.2"
939 | }
940 | },
941 | "term-size": {
942 | "version": "2.2.1",
943 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz",
944 | "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==",
945 | "dev": true
946 | },
947 | "to-readable-stream": {
948 | "version": "1.0.0",
949 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
950 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
951 | "dev": true
952 | },
953 | "to-regex-range": {
954 | "version": "5.0.1",
955 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
956 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
957 | "dev": true,
958 | "requires": {
959 | "is-number": "^7.0.0"
960 | }
961 | },
962 | "touch": {
963 | "version": "3.1.0",
964 | "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz",
965 | "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
966 | "dev": true,
967 | "requires": {
968 | "nopt": "~1.0.10"
969 | }
970 | },
971 | "type-fest": {
972 | "version": "0.8.1",
973 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
974 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
975 | "dev": true
976 | },
977 | "typedarray-to-buffer": {
978 | "version": "3.1.5",
979 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
980 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
981 | "dev": true,
982 | "requires": {
983 | "is-typedarray": "^1.0.0"
984 | }
985 | },
986 | "typegram": {
987 | "version": "3.4.3",
988 | "resolved": "https://registry.npmjs.org/typegram/-/typegram-3.4.3.tgz",
989 | "integrity": "sha512-pH0TQJzCWM2+7y6yiBoQVNt7PO9ZvAu/lQukVx4sm68FIBBZEBWI+2MzuMcdbwrD5mD5NrEMAyml9N6DupUZag=="
990 | },
991 | "undefsafe": {
992 | "version": "2.0.3",
993 | "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz",
994 | "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
995 | "dev": true,
996 | "requires": {
997 | "debug": "^2.2.0"
998 | },
999 | "dependencies": {
1000 | "debug": {
1001 | "version": "2.6.9",
1002 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1003 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1004 | "dev": true,
1005 | "requires": {
1006 | "ms": "2.0.0"
1007 | }
1008 | },
1009 | "ms": {
1010 | "version": "2.0.0",
1011 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1012 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1013 | "dev": true
1014 | }
1015 | }
1016 | },
1017 | "unique-string": {
1018 | "version": "2.0.0",
1019 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
1020 | "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
1021 | "dev": true,
1022 | "requires": {
1023 | "crypto-random-string": "^2.0.0"
1024 | }
1025 | },
1026 | "update-notifier": {
1027 | "version": "4.1.3",
1028 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz",
1029 | "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==",
1030 | "dev": true,
1031 | "requires": {
1032 | "boxen": "^4.2.0",
1033 | "chalk": "^3.0.0",
1034 | "configstore": "^5.0.1",
1035 | "has-yarn": "^2.1.0",
1036 | "import-lazy": "^2.1.0",
1037 | "is-ci": "^2.0.0",
1038 | "is-installed-globally": "^0.3.1",
1039 | "is-npm": "^4.0.0",
1040 | "is-yarn-global": "^0.3.0",
1041 | "latest-version": "^5.0.0",
1042 | "pupa": "^2.0.1",
1043 | "semver-diff": "^3.1.1",
1044 | "xdg-basedir": "^4.0.0"
1045 | }
1046 | },
1047 | "url-parse-lax": {
1048 | "version": "3.0.0",
1049 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
1050 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
1051 | "dev": true,
1052 | "requires": {
1053 | "prepend-http": "^2.0.0"
1054 | }
1055 | },
1056 | "widest-line": {
1057 | "version": "3.1.0",
1058 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
1059 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
1060 | "dev": true,
1061 | "requires": {
1062 | "string-width": "^4.0.0"
1063 | }
1064 | },
1065 | "wrappy": {
1066 | "version": "1.0.2",
1067 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1068 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1069 | "dev": true
1070 | },
1071 | "write-file-atomic": {
1072 | "version": "3.0.3",
1073 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
1074 | "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
1075 | "dev": true,
1076 | "requires": {
1077 | "imurmurhash": "^0.1.4",
1078 | "is-typedarray": "^1.0.0",
1079 | "signal-exit": "^3.0.2",
1080 | "typedarray-to-buffer": "^3.1.5"
1081 | }
1082 | },
1083 | "xdg-basedir": {
1084 | "version": "4.0.0",
1085 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
1086 | "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
1087 | "dev": true
1088 | }
1089 | }
1090 | }
1091 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "testITDbot",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "node index.js",
8 | "dev": "nodemon inxex.js"
9 | },
10 | "keywords": [],
11 | "author": "",
12 | "license": "ISC",
13 | "dependencies": {
14 | "dotenv": "^10.0.0",
15 | "telegraf": "^4.4.1"
16 | },
17 | "devDependencies": {
18 | "nodemon": "^2.0.12"
19 | }
20 | }
--------------------------------------------------------------------------------