Ця версія є результатом роботи команди, тому змін більше ніж зазвичай. Спочатку планувалося випустити реліз за тиждень, але в результаті розробка зайняла цілий місяць. Пошук дій. Пошук дій було повністю перероблено. Основна ідея полягає в тому, що тепер ви можете вводити пошуковий запит, а нова система пошуку видасть список дій найбільш відповідних цьому запиту. Ось ключові особливості нової системи:
Для творців модулів. Щоб ваші дії краще знаходилися в пошуку, ви можете додати в них додаткові ключові слова. Для цього потрібно задати таке поле в будь-якому з об'єктів масиву "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 клієнт Версію libcurl було оновлено до 7.71.1, openssl до 1.1.1g. Це дозволить використовувати сучасні методи шифрування і не викликати підозри у сайтів при використанні http клієнта.
HTTP клієнт тепер розуміє складні значення в хедері Location, поведінку було скопійовано з Chrome останньої версії. Наприклад, редирект до такого url тепер обробиться без проблем. ../../test.php
HTTP клієнт тепер повторно відправляє вміст запиту для статусів 307 і 308. Завантаження і встановлення скомпільованих застосунків. Оновлено застосунок для запуску скомпільованих скриптів. Тепер при оновленні коду через сайт у користувачів не буде скопійовано вміст папки, отже, встановлення пройде набагато швидше.
Папка буде створена заново лише у випадку оновлення версії BAS. При використанні Node.js, у випадку оновлення BAS встановлення мови пройде заново. Раніше файли node.js копіювалися в нову папку зі старої і це могло викликати проблеми.
Для авторів скриптів бажано скомпілювати застосунок заново і розіслати клієнтам. Але це не є обов'язковим. Захист застосунків. У новій версії суттєво доопрацьовано систему захисту застосунків. Було зроблено майже 10 великих змін. На жаль, розповідати про кожну з них я не можу, щоб не компрометувати нові методи. Але ось 2 з них:
Як наслідок другого пункту, редагований вихідний код застосунку тепер неможливо отримати (навіть якщо якимось чином зняти захист), він просто не відправляється на клієнт.
При компіляції тепер можна вибрати ступінь захищеності застосунку:
Навантаження перемістилося з клієнта на сервер, це означає, що запуск великих скриптів на клієнті буде швидшим.
Є і неприємний момент, завантажити скрипт на сервер через сайт тепер неможливо. Це можна зробити лише через Меню -> Скомпілювати.
!ВАЖЛИВО Новий захист буде працювати лише після переходу скрипта на версію BAS 23.1.0 або старше. Зробити це рекомендується якнайшвидше.
!ВАЖЛИВО Ця тема буде модеруватися. Повідомлення що не стосуються нової версії будуть видалені. Користувачі що повідомляють про помилку без зазначення необхідних відомостей (https://community.bablosoft.com/topic/2706) будуть забанені на 1 тиждень.