Данная версия является результатом работы команды, поэтому изменений больше чем обычно. Первоначально планировалось выпустить релиз за неделю, но в результате разработка заняла целый месяц. Поиск действий. Поиск действий был полностью переработан. Основная идея состоит в том, что теперь вы можете вводить поисковый запрос, а новая система поиска выдаст список действий наиболее отвечающим этому запросу. Вот ключевые особенности новой системы:
Для создателей модулей. Чтобы ваши действия лучше находились в поиске, вы можете добавить в них дополнительные ключевые слова. Для этого нужно задать такое поле в любом из объектов массива "actions":
"suggestion":"en": "zip, rar, 7z, unzip","ru": "zip, rar, 7z, разархивировать". Это пример из модуля для работы с архивами.
Разработкой поиска занимался @Oyasumi-Punpun Работа с Node.js. В этой и в следующих версиях мы будем добавлять новые модули, которые реализованы с помощью Node.js. Именно для этого интеграция с языком была значительно улучшена. Изменениям подвергся в первую очередь процесс установки. Идея была в том, чтобы сделать его максимально безболезненным, результативным и быстрым. Вот основной список изменений:
Новый интерфейс:
Бенчмарк:
Первый запуск приложения с использованием модуля FTP и Archive занял 3.1 секунду, повторный запуск 0.07 секунд.
Впрочем, у вас результаты могут отличаться, но фактически процесс установки сводится только к копированию файлов.
Надеюсь, что данный апдейт сделает возможным массового использования Node.js в приложениях написанных на BAS, поскольку риски, связанные с использованием языка, минимальны, а выгода огромна. Модуль для работы с FTP/SSH Помимо стандартных загрузки и скачивания файлов и папок, данный модуль позволяет работать с файлами на сервере практически так же легко, как и с файлами на локальном диске. На самом деле, часть его действий копирует модуль "Файловая система".
Еще одной полезной особенностью модуля является кеширование соединения, это означает, что при работе в цикле соединение не будет создаваться заново при каждом действии. После настраиваемого периода бездействия соединение автоматически закроется.
Модуль поддерживает не только действия связанные с файловой системой, но и выполнение произвольных команд на сервере. Действие "Выполнить команду (SSH)".
Модуль хорошо документирован, поэтому для получения дополнительной информации достаточно открыть любое действие.
Дополнительные модули написаны на Node.js и по умолчанию отключены. Включить их можно на основной странице
При запуске или в скомпилированном приложении Node.js не будет устанавливаться, если ни одно из действий по работе с FTP или архивами не было использовано.
Разработкой модуля занимался @GhostZ HTTP клиент Верcия libcurl была обновлена до 7.71.1, openssl до 1.1.1g. Это позволит использовать современные методы шифрования и не вызывать подозрения у сайтов при использовании хттп клиента.
HTTP клиент теперь понимает сложные значения в хедере Location, поведение было скопировано их Chrome последней версии. Например, редирект к такому урл теперь обработается без проблем. ../../test.php
HTTP клиент теперь повторно отправляет содержимое запроса для статусов 307 и 308. Загрузка и установка скомпилированных приложений. Обновлено приложения для запуска скомпилированных скриптов. Теперь при обновлении кода через сайт у пользователей не будет скопировано содержание папки, следовательно, установка пройдет гораздо быстрее.
Папка будет создана заново только в случае обновления версии BAS. При использовании Node.js, в случае обновления BAS установка языка пройдет заново. Раньше файлы node.js копировались в новую папку из старой и это могло вызвать проблемы.
Для авторов скриптов желательно скомпилировать приложение заново и разослать клиентам. Но это не является обязательным. Защита приложений. В новой версии существенно доработана система защиты приложений. Было сделано почти 10 больших изменений. К сожалению, рассказывать о каждом из них я не могу, чтобы не компрометировать новые методы. Но вот 2 из них:
Как следствие второго пункта, редактируемый исходный код приложения теперь невозможно получить(даже если каким-то образом снять защиту), он просто не отправляется на клиент.
При компиляции теперь можно выбрать степень защищенности приложения:
Нагрузка переместилась с клиента на сервер, это значит, что запуск больших скриптов на клиенте будет быстрее.
Есть и неприятный момент, загрузить скрипт на сервер через сайт теперь невозможно. Это можно сделать только через Меню -> Скомпилировать.
!ВАЖНО Новая защита будет работать только после перехода скрипта на версию BAS 23.1.0 или старше. Сделать это рекомендуется как можно быстрее.
!ВАЖНО Данная тема будет модерироваться. Сообщения не относящиеся к новой версии будут удалены. Пользователи сообщающие об ошибке без указания необходимых сведений (https://community.bablosoft.com/topic/2706) будут забанены на 1 неделю.