blockmine 1.18.3 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/CHANGELOG.md +144 -107
  2. package/backend/cli.js +59 -57
  3. package/backend/prisma/migrations/20250701190321_add/migration.sql +2 -2
  4. package/backend/prisma/migrations/20250709150611_add_run_on_startup_to_tasks/migration.sql +21 -21
  5. package/backend/prisma/migrations/20250709151124_make_cron_pattern_optional/migration.sql +21 -21
  6. package/backend/prisma/migrations/20250718181335_add_plugin_data_store/migration.sql +14 -14
  7. package/backend/prisma/migrations/20250719115906_add_plugin_owner_to_graphs/migration.sql +45 -45
  8. package/backend/prisma/migrations/20250723160648_add_bot_sort_order/migration.sql +2 -2
  9. package/backend/prisma/migrations/20250816083216_add_panel_user_bot_access/migration.sql +30 -0
  10. package/backend/prisma/migrations/migration_lock.toml +2 -2
  11. package/backend/prisma/schema.prisma +244 -229
  12. package/backend/src/api/middleware/botAccess.js +35 -0
  13. package/backend/src/api/routes/auth.js +633 -595
  14. package/backend/src/api/routes/bots.js +292 -68
  15. package/backend/src/api/routes/eventGraphs.js +459 -459
  16. package/backend/src/api/routes/servers.js +27 -0
  17. package/backend/src/core/GraphExecutionEngine.js +917 -917
  18. package/backend/src/core/PluginLoader.js +208 -86
  19. package/backend/src/core/PluginManager.js +465 -427
  20. package/backend/src/core/commands/dev.js +6 -1
  21. package/backend/src/real-time/presence.js +74 -0
  22. package/backend/src/real-time/socketHandler.js +2 -0
  23. package/backend/src/server.js +193 -186
  24. package/frontend/dist/assets/{index-BqqUSU9S.js → index-5m_JZxJ-.js} +1693 -1688
  25. package/frontend/dist/assets/index-BFd7YoAj.css +1 -0
  26. package/frontend/dist/index.html +2 -2
  27. package/package.json +1 -1
  28. package/frontend/dist/assets/index-THQP1_d3.css +0 -1
package/CHANGELOG.md CHANGED
@@ -1,122 +1,159 @@
1
1
  # История версий
2
2
 
3
3
 
4
- ### [1.18.3](https://github.com/blockmineJS/blockmine/compare/v1.18.2...v1.18.3) (2025-08-07)
5
-
6
- ### [1.18.2](https://github.com/blockmineJS/blockmine/compare/v1.18.1...v1.18.2) (2025-08-07)
4
+ ## [1.19.0](https://github.com/blockmineJS/blockmine/compare/v1.18.5...v1.19.0) (2025-08-23)
7
5
 
8
6
 
9
7
  ### 🐛 Исправления
10
8
 
11
- * добавлена обработка ошибок при подготовке данных для импорта бота ([4e1c67d](https://github.com/blockmineJS/blockmine/commit/4e1c67d1d85ffc792b462b5f5ed0fc7daf2c45b9))
12
- * добавлено авто заполнение владельцев при импорте бота ([10e8fde](https://github.com/blockmineJS/blockmine/commit/10e8fdec16f4d3d6b3cd42dfceee66eb8576f6ce))
13
- * добавлено скрытое заголовок и описание для диалога создания нового бота ([1c8f87a](https://github.com/blockmineJS/blockmine/commit/1c8f87a6a8d723fb3ebdfa4abfdf6e32823f853d))
14
- * увеличен лимит на размер загружаемых файлов. поможет при импорте больших ботов ([a45cf0a](https://github.com/blockmineJS/blockmine/commit/a45cf0ab368de0a021ee708d40a0d64a192ae3c9))
15
- * улучшен интерфейс для мобильных устройств ([b5684a3](https://github.com/blockmineJS/blockmine/commit/b5684a34b92ce5a819b3e7a82e11c05679d890c7))
16
-
17
- ### [1.18.1](https://github.com/blockmineJS/blockmine/compare/v1.18.0...v1.18.1) (2025-08-03)
18
-
19
-
20
- ### 🐛 Исправления
21
-
22
- * добавлен механизм перезапуска ботов при некоторых противных ошибках ([2eb34e3](https://github.com/blockmineJS/blockmine/commit/2eb34e3e63aaa72e5fb641d7ab155baa92dbde63))
23
- * копирование кода/графов и всё что дает возможность скопировать в буфер обмена, починено ([dbe4ee6](https://github.com/blockmineJS/blockmine/commit/dbe4ee6bb2e19d99cfaaef33130c27803d5988a8))
24
- * мелкие фиксы крон паттерна у планировщика. больше логов для наблюдений ([c33e7c8](https://github.com/blockmineJS/blockmine/commit/c33e7c895b3daf60bcde187cf1334ab38bb71592))
25
-
26
- ## [1.18.0](https://github.com/blockmineJS/blockmine/compare/v1.17.1...v1.18.0) (2025-07-26)
9
+ * баз команда dev исправлена. теперь не считает алиасы как отдельные кмд ([782c01e](https://github.com/blockmineJS/blockmine/commit/782c01e12f273a04cf78a5772b7be628d22f5791))
10
+ * добавлена автоматическая установка недостающих модулей для плагинов при их загрузке ([27154f1](https://github.com/blockmineJS/blockmine/commit/27154f1d2c588f8d8371493f1d28646ff9d764f7))
11
+ * зависимости плагин устанавливаются ([a7314c4](https://github.com/blockmineJS/blockmine/commit/a7314c4d1c66ef7021d6c265ebbb270c50a3ab62))
12
+ * изменять версия у созданного сервера теперь можно ([a55e3c9](https://github.com/blockmineJS/blockmine/commit/a55e3c9d6a06b9ebd95722aa6487e2b79bda07ff))
13
+ * исправление проблем с импортом ([ef9fde2](https://github.com/blockmineJS/blockmine/commit/ef9fde2aa8b1390910600bfd930c444cbff2d01e))
14
+ * починили установку локальную ([1b28e07](https://github.com/blockmineJS/blockmine/commit/1b28e071d4846b62dd6360f4709a0e263841960b))
15
+ * права юзеров теперь может менять только владелец панели (первый юзер) ([94312d7](https://github.com/blockmineJS/blockmine/commit/94312d7b9c09aabb704f163f8e3205abf7c2acdc))
27
16
 
28
17
 
29
18
  ### ✨ Новые возможности
30
19
 
31
- * добавлена новая кнопка - "Предложить улучшение". Поможет адептам составить свой запрос ([d741881](https://github.com/blockmineJS/blockmine/commit/d7418813e53d15fcd16c0517cea033d019ed355b))
32
- * добавлено глубокое объединение настроек для плагинов и улучшена установка зависимостей ([452af4b](https://github.com/blockmineJS/blockmine/commit/452af4b67325f3faebe12c136a40f77515e805c0))
33
-
34
- ### [1.17.1](https://github.com/blockmineJS/blockmine/compare/v1.17.0...v1.17.1) (2025-07-24)
35
-
36
-
37
- ### 🐛 Исправления
38
-
39
- * добавлена синхронизация статусов ботов каждые 10 секунд и обработка события 'bot_ready' ([c9e8bcc](https://github.com/blockmineJS/blockmine/commit/c9e8bcc5f1b31a122aa05b2bb65f3b4127dfb79a))
40
- * исправление ошибок со скинами. вроде ([459d65b](https://github.com/blockmineJS/blockmine/commit/459d65ba40ec18da5d9a7402992c2cd6aa73a7d2))
41
- * исправление ошибок со скинами. by сахарок ([433e5c6](https://github.com/blockmineJS/blockmine/commit/433e5c6222e385cfd0ba656c78eecd67f094b0ef))
42
- * уменьшены лимиты логов для ботов. так много явно не надо ([d690dcd](https://github.com/blockmineJS/blockmine/commit/d690dcd5701603d455d105a2032f9262923cf5f0))
43
-
44
- ## [1.17.0](https://github.com/blockmineJS/blockmine/compare/v1.16.3...v1.17.0) (2025-07-24)
45
-
46
-
47
- ### 🐛 Исправления
48
-
49
- * импорт ботов был улучшен. изменен, переделан, доделан, исправлен ([1a0983b](https://github.com/blockmineJS/blockmine/commit/1a0983bae10953edf1bf695a2451d21529642ce8))
50
- * прокси теперь подключение теперь работает ([f2ed2b2](https://github.com/blockmineJS/blockmine/commit/f2ed2b2728860aabbed35cd6fc63473fd011550f))
51
-
52
-
53
- ### ✨ Новые возможности
54
-
55
- * добавлена функция скопировать полный код плагина в редакторе плагина ([91f7a21](https://github.com/blockmineJS/blockmine/commit/91f7a2171826eb59ca933005eaf48581469c0092))
56
- * плагины теперь могут изменять обработчики при проблемах (нет прав, не тот тип чата и др) ([eeda006](https://github.com/blockmineJS/blockmine/commit/eeda00648e3319aee72995452364d33c1b41b77a))
57
- * теперь ботов в левом сайдбар меню можно перемещать по позициям ([95ca8dc](https://github.com/blockmineJS/blockmine/commit/95ca8dcd11872e411bb6a5a74bcf981581e9cb51))
58
- * теперь при большом кол ве ботов, слева появится прокрутка ботов ([4e3c05d](https://github.com/blockmineJS/blockmine/commit/4e3c05dfdcb354e90b42226bf6c4af84ef328612))
59
- * улучшена обработка настроек плагинов с поддержкой группировки ([cfc24c6](https://github.com/blockmineJS/blockmine/commit/cfc24c60d92cac3a69098f16bacdf3fbbbee2e38))
60
-
61
- ### [1.16.3](https://github.com/blockmineJS/blockmine/compare/v1.16.2...v1.16.3) (2025-07-22)
62
-
63
-
64
- ### 🐛 Исправления
65
-
66
- * забыл в панель добавить изменения кулдауна ([88370d2](https://github.com/blockmineJS/blockmine/commit/88370d24675eec5e656c7855f17cd984a9916f73))
67
- * обновлены условия отображения поддерживаемых серверов в плагинах ([5733673](https://github.com/blockmineJS/blockmine/commit/573367317d3a082eab21155e55fd437f1e480a48))
68
- * при обновление владельцев, кэш юзеров сбрасывается ([37067ae](https://github.com/blockmineJS/blockmine/commit/37067ae95395d48da9cce1951dd06c059eaf5bfb))
69
-
70
- ### [1.16.2](https://github.com/blockmineJS/blockmine/compare/v1.16.1...v1.16.2) (2025-07-20)
71
-
72
-
73
- ### 🐛 Исправления
74
-
75
- * обновление плагинов починено ([6b3c536](https://github.com/blockmineJS/blockmine/commit/6b3c5360c490dda43b0fd8cbf5b77a6c4d329543))
76
-
77
-
78
- ### 🛠 Рефакторинг
79
-
80
- * удалены отладочные сообщения и неиспользуемый код из компонента InstalledPluginsView ([1b41026](https://github.com/blockmineJS/blockmine/commit/1b410264d1e844c76404c047c4547e86199bbb27))
81
-
82
- ### [1.16.1](https://github.com/blockmineJS/blockmine/compare/v1.16.0...v1.16.1) (2025-07-20)
83
-
84
-
85
- ### 🐛 Исправления
86
-
87
- * настройки плагинов опять можно менять на страничке плагинов. вернул сортировку по новым ([a89f9ca](https://github.com/blockmineJS/blockmine/commit/a89f9ca49437b7ca9eac76917f809433c4c7bbf1))
88
-
89
- ## [1.16.0](https://github.com/blockmineJS/blockmine/compare/v1.15.2...v1.16.0) (2025-07-20)
90
-
91
-
92
- ### ✨ Новые возможности
93
-
94
- * добавлен новый узел 'flow:switch' с динамическими case'ами ([81886db](https://github.com/blockmineJS/blockmine/commit/81886db75da6792d499cdc2c277494f9e39136c3))
95
- * добавлена кнопка перезапуска бота ([db13070](https://github.com/blockmineJS/blockmine/commit/db130707637a8a5e93e8c783463ca38f0ab2bf85))
96
-
97
- ### [1.15.2](https://github.com/blockmineJS/blockmine/compare/v1.15.1...v1.15.2) (2025-07-19)
98
-
99
- ### [1.15.1](https://github.com/blockmineJS/blockmine/compare/v1.15.0...v1.15.1) (2025-07-19)
100
-
101
-
102
- ### 🐛 Исправления
103
-
104
- * фикс. создание триггеров при установке из стора графа ([7980413](https://github.com/blockmineJS/blockmine/commit/79804133a6ff5d6f41769e7db2b6c4f1027e33f6))
105
-
106
- ## [1.15.0](https://github.com/blockmineJS/blockmine/compare/v1.14.1...v1.15.0) (2025-07-19)
107
-
108
-
109
- ### 🐛 Исправления
110
-
111
- * в настройках когда меняешь имя бота на уже существующее, не будет ошибки ([0849f43](https://github.com/blockmineJS/blockmine/commit/0849f43a3b76640c18b1c358a56fedd801bb54ca))
112
- * фикс парочки нод ([dd1a57e](https://github.com/blockmineJS/blockmine/commit/dd1a57e574d107a62934c3fe41aa0d4a1d90660f))
113
-
114
-
115
- ### ✨ Новые возможности
116
-
117
- * новый функционал! Магазин графов! его можно найти в левом меню ([9e1c04c](https://github.com/blockmineJS/blockmine/commit/9e1c04cc1c512525b17591c72eb677d55e14b916))
118
- * теперь для плагинов можно делать команды/события в графовой структуре ([e101e46](https://github.com/blockmineJS/blockmine/commit/e101e46c3e5b3fad1a0a47a74a6d64526ee72880))
20
+ * когда другой юзер заходит в панель, другие клиенты увидят уведомление что он зашел ([a689b4e](https://github.com/blockmineJS/blockmine/commit/a689b4ee91e0dc187b3eeddc75600e880730b885))
21
+ * новая кнопочка - прокси. позволяет установить прокси сразу множеству ботов ([ac75d65](https://github.com/blockmineJS/blockmine/commit/ac75d655289a4b4b4560555ac1fecbcdb199b822))
22
+ * теперь можно для других юзеров назначать определенных ботов которыми они могут управлять ([484685b](https://github.com/blockmineJS/blockmine/commit/484685b1821fa3ad8907f4ab320762cf1c6a3959))
119
23
 
24
+ ### [1.18.5](https://github.com/blockmineJS/blockmine/compare/v1.18.4...v1.18.5) (2025-08-15)
25
+
26
+
27
+ ### 🐛 Исправления
28
+
29
+ * теперь чейнджлог показывает не только минорные версии ([1a8a1d4](https://github.com/blockmineJS/blockmine/commit/1a8a1d405d02b34df37d8e9f19dcd3989f197b41))
30
+
31
+ ### [1.18.4](https://github.com/blockmineJS/blockmine/compare/v1.18.3...v1.18.4) (2025-08-15)
32
+
33
+
34
+ ### 🐛 Исправления
35
+
36
+ * в диалог настроек плагина добавлена новая вкладка - данные. данные из бд плагина ([b532993](https://github.com/blockmineJS/blockmine/commit/b53299383132684e37a8426643ab1346bcf60d86))
37
+ * граф стор. чуть изменен дизайн ([c51abcd](https://github.com/blockmineJS/blockmine/commit/c51abcd9e6fe025f8a7b6c85d0b9eb71eb68546a))
38
+ * любимая переделка страницы плагинов ([d2f2b59](https://github.com/blockmineJS/blockmine/commit/d2f2b59b3c649e7f5c0eb5f5242d9908311c2c02))
39
+ * страница история версий изменена. теперь можно смотреть прошлые ([c5fc95e](https://github.com/blockmineJS/blockmine/commit/c5fc95eb92c9fc0759d76bbd9ec2b46cd7b7f825))
40
+
41
+ ### [1.18.3](https://github.com/blockmineJS/blockmine/compare/v1.18.2...v1.18.3) (2025-08-07)
42
+
43
+ ### [1.18.2](https://github.com/blockmineJS/blockmine/compare/v1.18.1...v1.18.2) (2025-08-07)
44
+
45
+
46
+ ### 🐛 Исправления
47
+
48
+ * добавлена обработка ошибок при подготовке данных для импорта бота ([4e1c67d](https://github.com/blockmineJS/blockmine/commit/4e1c67d1d85ffc792b462b5f5ed0fc7daf2c45b9))
49
+ * добавлено авто заполнение владельцев при импорте бота ([10e8fde](https://github.com/blockmineJS/blockmine/commit/10e8fdec16f4d3d6b3cd42dfceee66eb8576f6ce))
50
+ * добавлено скрытое заголовок и описание для диалога создания нового бота ([1c8f87a](https://github.com/blockmineJS/blockmine/commit/1c8f87a6a8d723fb3ebdfa4abfdf6e32823f853d))
51
+ * увеличен лимит на размер загружаемых файлов. поможет при импорте больших ботов ([a45cf0a](https://github.com/blockmineJS/blockmine/commit/a45cf0ab368de0a021ee708d40a0d64a192ae3c9))
52
+ * улучшен интерфейс для мобильных устройств ([b5684a3](https://github.com/blockmineJS/blockmine/commit/b5684a34b92ce5a819b3e7a82e11c05679d890c7))
53
+
54
+ ### [1.18.1](https://github.com/blockmineJS/blockmine/compare/v1.18.0...v1.18.1) (2025-08-03)
55
+
56
+
57
+ ### 🐛 Исправления
58
+
59
+ * добавлен механизм перезапуска ботов при некоторых противных ошибках ([2eb34e3](https://github.com/blockmineJS/blockmine/commit/2eb34e3e63aaa72e5fb641d7ab155baa92dbde63))
60
+ * копирование кода/графов и всё что дает возможность скопировать в буфер обмена, починено ([dbe4ee6](https://github.com/blockmineJS/blockmine/commit/dbe4ee6bb2e19d99cfaaef33130c27803d5988a8))
61
+ * мелкие фиксы крон паттерна у планировщика. больше логов для наблюдений ([c33e7c8](https://github.com/blockmineJS/blockmine/commit/c33e7c895b3daf60bcde187cf1334ab38bb71592))
62
+
63
+ ## [1.18.0](https://github.com/blockmineJS/blockmine/compare/v1.17.1...v1.18.0) (2025-07-26)
64
+
65
+
66
+ ### ✨ Новые возможности
67
+
68
+ * добавлена новая кнопка - "Предложить улучшение". Поможет адептам составить свой запрос ([d741881](https://github.com/blockmineJS/blockmine/commit/d7418813e53d15fcd16c0517cea033d019ed355b))
69
+ * добавлено глубокое объединение настроек для плагинов и улучшена установка зависимостей ([452af4b](https://github.com/blockmineJS/blockmine/commit/452af4b67325f3faebe12c136a40f77515e805c0))
70
+
71
+ ### [1.17.1](https://github.com/blockmineJS/blockmine/compare/v1.17.0...v1.17.1) (2025-07-24)
72
+
73
+
74
+ ### 🐛 Исправления
75
+
76
+ * добавлена синхронизация статусов ботов каждые 10 секунд и обработка события 'bot_ready' ([c9e8bcc](https://github.com/blockmineJS/blockmine/commit/c9e8bcc5f1b31a122aa05b2bb65f3b4127dfb79a))
77
+ * исправление ошибок со скинами. вроде ([459d65b](https://github.com/blockmineJS/blockmine/commit/459d65ba40ec18da5d9a7402992c2cd6aa73a7d2))
78
+ * исправление ошибок со скинами. by сахарок ([433e5c6](https://github.com/blockmineJS/blockmine/commit/433e5c6222e385cfd0ba656c78eecd67f094b0ef))
79
+ * уменьшены лимиты логов для ботов. так много явно не надо ([d690dcd](https://github.com/blockmineJS/blockmine/commit/d690dcd5701603d455d105a2032f9262923cf5f0))
80
+
81
+ ## [1.17.0](https://github.com/blockmineJS/blockmine/compare/v1.16.3...v1.17.0) (2025-07-24)
82
+
83
+
84
+ ### 🐛 Исправления
85
+
86
+ * импорт ботов был улучшен. изменен, переделан, доделан, исправлен ([1a0983b](https://github.com/blockmineJS/blockmine/commit/1a0983bae10953edf1bf695a2451d21529642ce8))
87
+ * прокси теперь подключение теперь работает ([f2ed2b2](https://github.com/blockmineJS/blockmine/commit/f2ed2b2728860aabbed35cd6fc63473fd011550f))
88
+
89
+
90
+ ### ✨ Новые возможности
91
+
92
+ * добавлена функция скопировать полный код плагина в редакторе плагина ([91f7a21](https://github.com/blockmineJS/blockmine/commit/91f7a2171826eb59ca933005eaf48581469c0092))
93
+ * плагины теперь могут изменять обработчики при проблемах (нет прав, не тот тип чата и др) ([eeda006](https://github.com/blockmineJS/blockmine/commit/eeda00648e3319aee72995452364d33c1b41b77a))
94
+ * теперь ботов в левом сайдбар меню можно перемещать по позициям ([95ca8dc](https://github.com/blockmineJS/blockmine/commit/95ca8dcd11872e411bb6a5a74bcf981581e9cb51))
95
+ * теперь при большом кол ве ботов, слева появится прокрутка ботов ([4e3c05d](https://github.com/blockmineJS/blockmine/commit/4e3c05dfdcb354e90b42226bf6c4af84ef328612))
96
+ * улучшена обработка настроек плагинов с поддержкой группировки ([cfc24c6](https://github.com/blockmineJS/blockmine/commit/cfc24c60d92cac3a69098f16bacdf3fbbbee2e38))
97
+
98
+ ### [1.16.3](https://github.com/blockmineJS/blockmine/compare/v1.16.2...v1.16.3) (2025-07-22)
99
+
100
+
101
+ ### 🐛 Исправления
102
+
103
+ * забыл в панель добавить изменения кулдауна ([88370d2](https://github.com/blockmineJS/blockmine/commit/88370d24675eec5e656c7855f17cd984a9916f73))
104
+ * обновлены условия отображения поддерживаемых серверов в плагинах ([5733673](https://github.com/blockmineJS/blockmine/commit/573367317d3a082eab21155e55fd437f1e480a48))
105
+ * при обновление владельцев, кэш юзеров сбрасывается ([37067ae](https://github.com/blockmineJS/blockmine/commit/37067ae95395d48da9cce1951dd06c059eaf5bfb))
106
+
107
+ ### [1.16.2](https://github.com/blockmineJS/blockmine/compare/v1.16.1...v1.16.2) (2025-07-20)
108
+
109
+
110
+ ### 🐛 Исправления
111
+
112
+ * обновление плагинов починено ([6b3c536](https://github.com/blockmineJS/blockmine/commit/6b3c5360c490dda43b0fd8cbf5b77a6c4d329543))
113
+
114
+
115
+ ### 🛠 Рефакторинг
116
+
117
+ * удалены отладочные сообщения и неиспользуемый код из компонента InstalledPluginsView ([1b41026](https://github.com/blockmineJS/blockmine/commit/1b410264d1e844c76404c047c4547e86199bbb27))
118
+
119
+ ### [1.16.1](https://github.com/blockmineJS/blockmine/compare/v1.16.0...v1.16.1) (2025-07-20)
120
+
121
+
122
+ ### 🐛 Исправления
123
+
124
+ * настройки плагинов опять можно менять на страничке плагинов. вернул сортировку по новым ([a89f9ca](https://github.com/blockmineJS/blockmine/commit/a89f9ca49437b7ca9eac76917f809433c4c7bbf1))
125
+
126
+ ## [1.16.0](https://github.com/blockmineJS/blockmine/compare/v1.15.2...v1.16.0) (2025-07-20)
127
+
128
+
129
+ ### ✨ Новые возможности
130
+
131
+ * добавлен новый узел 'flow:switch' с динамическими case'ами ([81886db](https://github.com/blockmineJS/blockmine/commit/81886db75da6792d499cdc2c277494f9e39136c3))
132
+ * добавлена кнопка перезапуска бота ([db13070](https://github.com/blockmineJS/blockmine/commit/db130707637a8a5e93e8c783463ca38f0ab2bf85))
133
+
134
+ ### [1.15.2](https://github.com/blockmineJS/blockmine/compare/v1.15.1...v1.15.2) (2025-07-19)
135
+
136
+ ### [1.15.1](https://github.com/blockmineJS/blockmine/compare/v1.15.0...v1.15.1) (2025-07-19)
137
+
138
+
139
+ ### 🐛 Исправления
140
+
141
+ * фикс. создание триггеров при установке из стора графа ([7980413](https://github.com/blockmineJS/blockmine/commit/79804133a6ff5d6f41769e7db2b6c4f1027e33f6))
142
+
143
+ ## [1.15.0](https://github.com/blockmineJS/blockmine/compare/v1.14.1...v1.15.0) (2025-07-19)
144
+
145
+
146
+ ### 🐛 Исправления
147
+
148
+ * в настройках когда меняешь имя бота на уже существующее, не будет ошибки ([0849f43](https://github.com/blockmineJS/blockmine/commit/0849f43a3b76640c18b1c358a56fedd801bb54ca))
149
+ * фикс парочки нод ([dd1a57e](https://github.com/blockmineJS/blockmine/commit/dd1a57e574d107a62934c3fe41aa0d4a1d90660f))
150
+
151
+
152
+ ### ✨ Новые возможности
153
+
154
+ * новый функционал! Магазин графов! его можно найти в левом меню ([9e1c04c](https://github.com/blockmineJS/blockmine/commit/9e1c04cc1c512525b17591c72eb677d55e14b916))
155
+ * теперь для плагинов можно делать команды/события в графовой структуре ([e101e46](https://github.com/blockmineJS/blockmine/commit/e101e46c3e5b3fad1a0a47a74a6d64526ee72880))
156
+
120
157
  ### [1.14.1](https://github.com/blockmineJS/blockmine/compare/v1.14.0...v1.14.1) (2025-07-19)
121
158
 
122
159
  ## [1.14.0](https://github.com/blockmineJS/blockmine/compare/v1.13.1...v1.14.0) (2025-07-19)
package/backend/cli.js CHANGED
@@ -1,58 +1,60 @@
1
- #!/usr/bin/env node
2
- const fs = require('fs');
3
- const os = require('os');
4
- const path = require('path');
5
- const { execSync } = require('child_process');
6
-
7
- const config = require('./src/config.js');
8
- const { startServer } = require('./src/server.js');
9
-
10
- const DATA_DIR = path.join(os.homedir(), '.blockmine');
11
- if (!fs.existsSync(DATA_DIR)) {
12
- fs.mkdirSync(DATA_DIR, { recursive: true });
13
- }
14
-
15
- process.env.DATABASE_URL = `file:${path.join(DATA_DIR, 'blockmine.db')}`;
16
-
17
- if (process.env.NODE_ENV === 'development' || process.argv.includes('--dev') || process.argv.includes('--debug')) {
18
- process.env.DEBUG = 'true';
19
- console.log('[Dev] Режим отладки включен (DEBUG=true)');
20
- }
21
-
22
- function runCommand(command) {
23
- try {
24
- console.log(`> ${command}`);
25
- execSync(command, { stdio: 'inherit', cwd: __dirname });
26
- } catch (e) {
27
- console.error(`Команда "${command}" не удалась:`, e);
28
- process.exit(1);
29
- }
30
- }
31
-
32
- async function main() {
33
- console.log('Запуск панели управления BlockMine...');
34
-
35
- const dbPath = path.join(DATA_DIR, 'blockmine.db');
36
- if (!fs.existsSync(dbPath)) {
37
- console.log('База данных не найдена. Создаем и применяем все миграции...');
38
- runCommand(`npx prisma migrate deploy`);
39
- console.log('Заполнение базы данных начальными данными (серверами)...');
40
- runCommand(`npx prisma db seed`);
41
- console.log('Первоначальная настройка базы данных завершена.');
42
- } else {
43
- console.log('Проверка и применение обновлений базы данных...');
44
- runCommand(`npx prisma migrate deploy`);
45
- console.log('База данных в актуальном состоянии.');
46
- }
47
-
48
- await startServer();
49
- }
50
-
51
- if (require.main === module) {
52
- main().catch(e => {
53
- console.error('Критическая ошибка при запуске:', e);
54
- process.exit(1);
55
- });
56
- }
57
-
1
+ #!/usr/bin/env node
2
+ const fs = require('fs');
3
+ const os = require('os');
4
+ const path = require('path');
5
+ const { execSync } = require('child_process');
6
+
7
+ const config = require('./src/config.js');
8
+
9
+ const DATA_DIR = path.join(os.homedir(), '.blockmine');
10
+ if (!fs.existsSync(DATA_DIR)) {
11
+ fs.mkdirSync(DATA_DIR, { recursive: true });
12
+ }
13
+
14
+ process.env.DATABASE_URL = `file:${path.join(DATA_DIR, 'blockmine.db')}`;
15
+
16
+ if (process.env.NODE_ENV === 'development' || process.argv.includes('--dev') || process.argv.includes('--debug')) {
17
+ process.env.DEBUG = 'true';
18
+ console.log('[Dev] Режим отладки включен (DEBUG=true)');
19
+ }
20
+
21
+ function runCommand(command) {
22
+ try {
23
+ console.log(`> ${command}`);
24
+ execSync(command, { stdio: 'inherit', cwd: __dirname });
25
+ } catch (e) {
26
+ console.error(`Команда "${command}" не удалась:`, e);
27
+ process.exit(1);
28
+ }
29
+ }
30
+
31
+ async function main() {
32
+ console.log('Запуск панели управления BlockMine...');
33
+
34
+ const dbPath = path.join(DATA_DIR, 'blockmine.db');
35
+ runCommand(`npx prisma generate`);
36
+
37
+ if (!fs.existsSync(dbPath)) {
38
+ console.log('База данных не найдена. Создаем и применяем все миграции...');
39
+ runCommand(`npx prisma migrate deploy`);
40
+ console.log('Заполнение базы данных начальными данными (серверами)...');
41
+ runCommand(`npx prisma db seed`);
42
+ console.log('Первоначальная настройка базы данных завершена.');
43
+ } else {
44
+ console.log('Проверка и применение обновлений базы данных...');
45
+ runCommand(`npx prisma migrate deploy`);
46
+ console.log('База данных в актуальном состоянии.');
47
+ }
48
+
49
+ const { startServer } = require('./src/server.js');
50
+ await startServer();
51
+ }
52
+
53
+ if (require.main === module) {
54
+ main().catch(e => {
55
+ console.error('Критическая ошибка при запуске:', e);
56
+ process.exit(1);
57
+ });
58
+ }
59
+
58
60
  module.exports = { main };
@@ -1,2 +1,2 @@
1
- -- AlterTable
2
- ALTER TABLE "EventGraph" ADD COLUMN "variables" TEXT DEFAULT '[]';
1
+ -- AlterTable
2
+ ALTER TABLE "EventGraph" ADD COLUMN "variables" TEXT DEFAULT '[]';
@@ -1,21 +1,21 @@
1
- -- RedefineTables
2
- PRAGMA defer_foreign_keys=ON;
3
- PRAGMA foreign_keys=OFF;
4
- CREATE TABLE "new_ScheduledTask" (
5
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
6
- "name" TEXT NOT NULL,
7
- "cronPattern" TEXT NOT NULL,
8
- "action" TEXT NOT NULL,
9
- "targetBotIds" TEXT NOT NULL,
10
- "payload" TEXT DEFAULT '{}',
11
- "isEnabled" BOOLEAN NOT NULL DEFAULT true,
12
- "runOnStartup" BOOLEAN NOT NULL DEFAULT false,
13
- "lastRun" DATETIME,
14
- "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
15
- "updatedAt" DATETIME NOT NULL
16
- );
17
- INSERT INTO "new_ScheduledTask" ("action", "createdAt", "cronPattern", "id", "isEnabled", "lastRun", "name", "payload", "targetBotIds", "updatedAt") SELECT "action", "createdAt", "cronPattern", "id", "isEnabled", "lastRun", "name", "payload", "targetBotIds", "updatedAt" FROM "ScheduledTask";
18
- DROP TABLE "ScheduledTask";
19
- ALTER TABLE "new_ScheduledTask" RENAME TO "ScheduledTask";
20
- PRAGMA foreign_keys=ON;
21
- PRAGMA defer_foreign_keys=OFF;
1
+ -- RedefineTables
2
+ PRAGMA defer_foreign_keys=ON;
3
+ PRAGMA foreign_keys=OFF;
4
+ CREATE TABLE "new_ScheduledTask" (
5
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
6
+ "name" TEXT NOT NULL,
7
+ "cronPattern" TEXT NOT NULL,
8
+ "action" TEXT NOT NULL,
9
+ "targetBotIds" TEXT NOT NULL,
10
+ "payload" TEXT DEFAULT '{}',
11
+ "isEnabled" BOOLEAN NOT NULL DEFAULT true,
12
+ "runOnStartup" BOOLEAN NOT NULL DEFAULT false,
13
+ "lastRun" DATETIME,
14
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
15
+ "updatedAt" DATETIME NOT NULL
16
+ );
17
+ INSERT INTO "new_ScheduledTask" ("action", "createdAt", "cronPattern", "id", "isEnabled", "lastRun", "name", "payload", "targetBotIds", "updatedAt") SELECT "action", "createdAt", "cronPattern", "id", "isEnabled", "lastRun", "name", "payload", "targetBotIds", "updatedAt" FROM "ScheduledTask";
18
+ DROP TABLE "ScheduledTask";
19
+ ALTER TABLE "new_ScheduledTask" RENAME TO "ScheduledTask";
20
+ PRAGMA foreign_keys=ON;
21
+ PRAGMA defer_foreign_keys=OFF;
@@ -1,21 +1,21 @@
1
- -- RedefineTables
2
- PRAGMA defer_foreign_keys=ON;
3
- PRAGMA foreign_keys=OFF;
4
- CREATE TABLE "new_ScheduledTask" (
5
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
6
- "name" TEXT NOT NULL,
7
- "cronPattern" TEXT,
8
- "action" TEXT NOT NULL,
9
- "targetBotIds" TEXT NOT NULL,
10
- "payload" TEXT DEFAULT '{}',
11
- "isEnabled" BOOLEAN NOT NULL DEFAULT true,
12
- "runOnStartup" BOOLEAN NOT NULL DEFAULT false,
13
- "lastRun" DATETIME,
14
- "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
15
- "updatedAt" DATETIME NOT NULL
16
- );
17
- INSERT INTO "new_ScheduledTask" ("action", "createdAt", "cronPattern", "id", "isEnabled", "lastRun", "name", "payload", "runOnStartup", "targetBotIds", "updatedAt") SELECT "action", "createdAt", "cronPattern", "id", "isEnabled", "lastRun", "name", "payload", "runOnStartup", "targetBotIds", "updatedAt" FROM "ScheduledTask";
18
- DROP TABLE "ScheduledTask";
19
- ALTER TABLE "new_ScheduledTask" RENAME TO "ScheduledTask";
20
- PRAGMA foreign_keys=ON;
21
- PRAGMA defer_foreign_keys=OFF;
1
+ -- RedefineTables
2
+ PRAGMA defer_foreign_keys=ON;
3
+ PRAGMA foreign_keys=OFF;
4
+ CREATE TABLE "new_ScheduledTask" (
5
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
6
+ "name" TEXT NOT NULL,
7
+ "cronPattern" TEXT,
8
+ "action" TEXT NOT NULL,
9
+ "targetBotIds" TEXT NOT NULL,
10
+ "payload" TEXT DEFAULT '{}',
11
+ "isEnabled" BOOLEAN NOT NULL DEFAULT true,
12
+ "runOnStartup" BOOLEAN NOT NULL DEFAULT false,
13
+ "lastRun" DATETIME,
14
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
15
+ "updatedAt" DATETIME NOT NULL
16
+ );
17
+ INSERT INTO "new_ScheduledTask" ("action", "createdAt", "cronPattern", "id", "isEnabled", "lastRun", "name", "payload", "runOnStartup", "targetBotIds", "updatedAt") SELECT "action", "createdAt", "cronPattern", "id", "isEnabled", "lastRun", "name", "payload", "runOnStartup", "targetBotIds", "updatedAt" FROM "ScheduledTask";
18
+ DROP TABLE "ScheduledTask";
19
+ ALTER TABLE "new_ScheduledTask" RENAME TO "ScheduledTask";
20
+ PRAGMA foreign_keys=ON;
21
+ PRAGMA defer_foreign_keys=OFF;
@@ -1,14 +1,14 @@
1
- -- CreateTable
2
- CREATE TABLE "PluginDataStore" (
3
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
4
- "pluginName" TEXT NOT NULL,
5
- "botId" INTEGER NOT NULL,
6
- "key" TEXT NOT NULL,
7
- "value" TEXT NOT NULL,
8
- "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
9
- "updatedAt" DATETIME NOT NULL,
10
- CONSTRAINT "PluginDataStore_botId_fkey" FOREIGN KEY ("botId") REFERENCES "Bot" ("id") ON DELETE CASCADE ON UPDATE CASCADE
11
- );
12
-
13
- -- CreateIndex
14
- CREATE UNIQUE INDEX "PluginDataStore_pluginName_botId_key_key" ON "PluginDataStore"("pluginName", "botId", "key");
1
+ -- CreateTable
2
+ CREATE TABLE "PluginDataStore" (
3
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
4
+ "pluginName" TEXT NOT NULL,
5
+ "botId" INTEGER NOT NULL,
6
+ "key" TEXT NOT NULL,
7
+ "value" TEXT NOT NULL,
8
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
9
+ "updatedAt" DATETIME NOT NULL,
10
+ CONSTRAINT "PluginDataStore_botId_fkey" FOREIGN KEY ("botId") REFERENCES "Bot" ("id") ON DELETE CASCADE ON UPDATE CASCADE
11
+ );
12
+
13
+ -- CreateIndex
14
+ CREATE UNIQUE INDEX "PluginDataStore_pluginName_botId_key_key" ON "PluginDataStore"("pluginName", "botId", "key");
@@ -1,45 +1,45 @@
1
- -- RedefineTables
2
- PRAGMA defer_foreign_keys=ON;
3
- PRAGMA foreign_keys=OFF;
4
- CREATE TABLE "new_Command" (
5
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
6
- "botId" INTEGER NOT NULL,
7
- "name" TEXT NOT NULL,
8
- "isEnabled" BOOLEAN NOT NULL DEFAULT true,
9
- "cooldown" INTEGER NOT NULL DEFAULT 0,
10
- "aliases" TEXT NOT NULL DEFAULT '[]',
11
- "description" TEXT,
12
- "owner" TEXT,
13
- "permissionId" INTEGER,
14
- "allowedChatTypes" TEXT NOT NULL DEFAULT '["chat", "private"]',
15
- "isVisual" BOOLEAN NOT NULL DEFAULT false,
16
- "argumentsJson" TEXT DEFAULT '[]',
17
- "graphJson" TEXT DEFAULT 'null',
18
- "pluginOwnerId" INTEGER,
19
- CONSTRAINT "Command_botId_fkey" FOREIGN KEY ("botId") REFERENCES "Bot" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
20
- CONSTRAINT "Command_permissionId_fkey" FOREIGN KEY ("permissionId") REFERENCES "Permission" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
21
- CONSTRAINT "Command_pluginOwnerId_fkey" FOREIGN KEY ("pluginOwnerId") REFERENCES "InstalledPlugin" ("id") ON DELETE SET NULL ON UPDATE CASCADE
22
- );
23
- INSERT INTO "new_Command" ("aliases", "allowedChatTypes", "argumentsJson", "botId", "cooldown", "description", "graphJson", "id", "isEnabled", "isVisual", "name", "owner", "permissionId") SELECT "aliases", "allowedChatTypes", "argumentsJson", "botId", "cooldown", "description", "graphJson", "id", "isEnabled", "isVisual", "name", "owner", "permissionId" FROM "Command";
24
- DROP TABLE "Command";
25
- ALTER TABLE "new_Command" RENAME TO "Command";
26
- CREATE UNIQUE INDEX "Command_botId_name_key" ON "Command"("botId", "name");
27
- CREATE TABLE "new_EventGraph" (
28
- "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
29
- "botId" INTEGER NOT NULL,
30
- "name" TEXT NOT NULL,
31
- "isEnabled" BOOLEAN NOT NULL DEFAULT true,
32
- "graphJson" TEXT DEFAULT 'null',
33
- "variables" TEXT DEFAULT '[]',
34
- "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
35
- "updatedAt" DATETIME NOT NULL,
36
- "pluginOwnerId" INTEGER,
37
- CONSTRAINT "EventGraph_botId_fkey" FOREIGN KEY ("botId") REFERENCES "Bot" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
38
- CONSTRAINT "EventGraph_pluginOwnerId_fkey" FOREIGN KEY ("pluginOwnerId") REFERENCES "InstalledPlugin" ("id") ON DELETE SET NULL ON UPDATE CASCADE
39
- );
40
- INSERT INTO "new_EventGraph" ("botId", "createdAt", "graphJson", "id", "isEnabled", "name", "updatedAt", "variables") SELECT "botId", "createdAt", "graphJson", "id", "isEnabled", "name", "updatedAt", "variables" FROM "EventGraph";
41
- DROP TABLE "EventGraph";
42
- ALTER TABLE "new_EventGraph" RENAME TO "EventGraph";
43
- CREATE UNIQUE INDEX "EventGraph_botId_name_key" ON "EventGraph"("botId", "name");
44
- PRAGMA foreign_keys=ON;
45
- PRAGMA defer_foreign_keys=OFF;
1
+ -- RedefineTables
2
+ PRAGMA defer_foreign_keys=ON;
3
+ PRAGMA foreign_keys=OFF;
4
+ CREATE TABLE "new_Command" (
5
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
6
+ "botId" INTEGER NOT NULL,
7
+ "name" TEXT NOT NULL,
8
+ "isEnabled" BOOLEAN NOT NULL DEFAULT true,
9
+ "cooldown" INTEGER NOT NULL DEFAULT 0,
10
+ "aliases" TEXT NOT NULL DEFAULT '[]',
11
+ "description" TEXT,
12
+ "owner" TEXT,
13
+ "permissionId" INTEGER,
14
+ "allowedChatTypes" TEXT NOT NULL DEFAULT '["chat", "private"]',
15
+ "isVisual" BOOLEAN NOT NULL DEFAULT false,
16
+ "argumentsJson" TEXT DEFAULT '[]',
17
+ "graphJson" TEXT DEFAULT 'null',
18
+ "pluginOwnerId" INTEGER,
19
+ CONSTRAINT "Command_botId_fkey" FOREIGN KEY ("botId") REFERENCES "Bot" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
20
+ CONSTRAINT "Command_permissionId_fkey" FOREIGN KEY ("permissionId") REFERENCES "Permission" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
21
+ CONSTRAINT "Command_pluginOwnerId_fkey" FOREIGN KEY ("pluginOwnerId") REFERENCES "InstalledPlugin" ("id") ON DELETE SET NULL ON UPDATE CASCADE
22
+ );
23
+ INSERT INTO "new_Command" ("aliases", "allowedChatTypes", "argumentsJson", "botId", "cooldown", "description", "graphJson", "id", "isEnabled", "isVisual", "name", "owner", "permissionId") SELECT "aliases", "allowedChatTypes", "argumentsJson", "botId", "cooldown", "description", "graphJson", "id", "isEnabled", "isVisual", "name", "owner", "permissionId" FROM "Command";
24
+ DROP TABLE "Command";
25
+ ALTER TABLE "new_Command" RENAME TO "Command";
26
+ CREATE UNIQUE INDEX "Command_botId_name_key" ON "Command"("botId", "name");
27
+ CREATE TABLE "new_EventGraph" (
28
+ "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
29
+ "botId" INTEGER NOT NULL,
30
+ "name" TEXT NOT NULL,
31
+ "isEnabled" BOOLEAN NOT NULL DEFAULT true,
32
+ "graphJson" TEXT DEFAULT 'null',
33
+ "variables" TEXT DEFAULT '[]',
34
+ "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
35
+ "updatedAt" DATETIME NOT NULL,
36
+ "pluginOwnerId" INTEGER,
37
+ CONSTRAINT "EventGraph_botId_fkey" FOREIGN KEY ("botId") REFERENCES "Bot" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
38
+ CONSTRAINT "EventGraph_pluginOwnerId_fkey" FOREIGN KEY ("pluginOwnerId") REFERENCES "InstalledPlugin" ("id") ON DELETE SET NULL ON UPDATE CASCADE
39
+ );
40
+ INSERT INTO "new_EventGraph" ("botId", "createdAt", "graphJson", "id", "isEnabled", "name", "updatedAt", "variables") SELECT "botId", "createdAt", "graphJson", "id", "isEnabled", "name", "updatedAt", "variables" FROM "EventGraph";
41
+ DROP TABLE "EventGraph";
42
+ ALTER TABLE "new_EventGraph" RENAME TO "EventGraph";
43
+ CREATE UNIQUE INDEX "EventGraph_botId_name_key" ON "EventGraph"("botId", "name");
44
+ PRAGMA foreign_keys=ON;
45
+ PRAGMA defer_foreign_keys=OFF;
@@ -1,2 +1,2 @@
1
- -- AlterTable
2
- ALTER TABLE "Bot" ADD COLUMN "sortOrder" INTEGER;
1
+ -- AlterTable
2
+ ALTER TABLE "Bot" ADD COLUMN "sortOrder" INTEGER;