Заменили пакет, который выводит результат в виде YAML.
Исправлена уязвимость, содержащаяся в зависимостях пакета commander. Commander обновлен до мажорной версии, но для конечного пользователя этого пакета ничего не изменилось.
Node.js 12 больше не поддерживается.
См. гайд по миграции.
Исправили проблемы с резолвом конфликтов переопределения в схемах.
Заменили лицензию MIT на Apache-2.0.
Добавлен GitHub-пайплайн для сборки и пуша Docker-образа.
Заменили динамическое подключение файлов парсеров на статическое.
Добавили дополнительную информацию об ошибках импорта (если таковые есть) к аннотациям.
Исправили парсинг Members
в enum. Теперь Crafter выбрасывает предупреждение, если в элементах enum используются невалидные типы.
Опубликовали пакет на Гитхабе и добавили файл с лицензией.
- Замена форка
@funbox/commonmark
на оригинальный пакет.
- Добавление Юриста.
- Исправление ошибки ONE_OF_MULTIPLE для nullable элемента с типом oneOf.
- Исправление подсчета файлов документации.
- Замена базового Докер-образа на node:14.18.0-stretch-slim.
- Настройка уведомлений о релизах.
- Перевод публикации docker-образа с dind на kaniko.
- Исправление парсинга параметров URI, содержащих символы "~", ".", "-".
- Добавление ограничения на тип атрибута для определения multi-samples.
- Изменение схемы работы с импортами.
- Настройка создания релизов при мерже в мастер.
- Генерация шаблонов body, включающих все опции One Of.
- Добавление sourceMap в ошибки.
- Использование concatSourceMaps для объединения sm вместо mergeSourceMaps.
- Доработка определения наличия нераспознанной ноды.
- Генерация httpTransaction даже если у Action нет ни одного Response.
- Добавление дублирующихся секций Default в unrecognizedBlocks.
- Добавление sourceMap для httpTransaction в ActionElement.
- Исправление обращения к sourceLines при извлечении описания.
- Доработка конфигурации gitlab-ci.
- Замена ссылок репозиториев на gitlab.
- Удаление переменной
no_proxy
.
- Исправление перезатирания значений attributes для enum nullable.
- Автопубликация пакета.
- Настройка кэша node_modules.
- Отключение tags pipeline.
- Исправление парсинга невалидных секций Resource Group, Resource и Action в language server mode.
- Фикс парсинга именованного enum, который содержит только Default-секцию.
- Доработки и обновления тестов по результатам отчёта jest.
- Исправление лишних отступов во вложенных описаниях.
- Исправление примера использования в README.
- Исправление обработки unrecognized block после инструкции Import.
- Исправление работы с несколькими секциями Default.
- Удаление дублирования типов из getDefaultValue.
- Исправление обработки пустого заголовка в Resource Prototypes.
- Исправление парсинга секции Attributes в language server mode.
- Исправление подсчета описания для некорректной сигнатуры в language server mode.
- Исправление Source Map для Description внутри ValueMemberElement из MSONNamedTypeElement.
- Удаление тестов из Drafter.
- Использование отдельного класса для byteBlock / charBlock.
- Упрощение хелпера nodeText.
- Добавление описания для элементов One Of.
- Разделение utils.js на отдельные модули.
- Добавление unrecognizedBlocks в AST.
- Аудит зависимостей.
- Добавление проверки допустимых атрибутов у элемента.
- Унификация поля с названием для resource prototype.
- Добавление source map для resource prototypes.
- Исправление формирования схемы для enum, заданного по ссылке.
- Обработка пустой ноды в именованном типе.
- Обработка отсутствующего Mixin в Attributes в language server mode.
- Добавление толерантного парсинга.
- Добавление source map для nested types.
- Исправление сочетания ref и nullable в json-схемах.
- Исправление добавления атрибутов fixed, fixedType в атрибуты наследующего элемента.
- Исправление формирования текста ошибки для параметров.
- Добавление возможности переопределения функции чтения импортируемого файла.
- Исправление определения дублирующих запросов.
- Доработка сообщений ошибок импорта.
- Исправление генерации charBlocks для документации из нескольких файлов.
- Добавление проверки на дублирование actions.
- Исправление опечаток в доке.
- Исправление fixed-объектов в массивах.
- Переход к следующей ноде в случае неизвестных элементов, вложенных в примитив.
- Улучшение SourceMap.
- Обработка секции Default в именованных типах.
- Исправление обработки nameless endpoint resources.
- Удаление передачи дефолтного логгера в Crafter.parse.
- Доработка получения nestedTypes именованных типов при наследовании.
- Доработка сообщения ошибки "Type not found".
- Доработка проверки типа секции MemberTypeGroup в именованных типах.
- Удаление присваивания результатов проверки валидности атрибутов.
- Улучшение описания файлов в папке
crafter/parsers/elements
.
- Улучшение документации в папке
crafter/docs
.
- Исправление генерации source maps для файла без новой строки в конце.
- Улучшение текста
README.md
.
- Доработка переопределения атрибутов при наследовании.
- Добавление проверки типа вложенных миксинов.
- Возможность задать Include в массивах и перечислениях.
- Предотвращение повторного вызова callback в Crafter.parse.
- Исправление обработки импортов в импортированном файле.
- Исправление парсинга секции Resource идущей после Resource Prototypes.
- Корректная обработка ошибок неизвестного Resource Prototype.
- Распознание первой ноды подключаемого файла при импорте.
- Переход на Node.js 12.16.3 в Docker образе.
- Правка jsdoc для конструкторов RequestElement и ResponseElement.
- Запрет указания сложных типов данных для URI параметров.
- Добавление поддержки рекурсивных объектов.
- Вывод предупреждений при дублировании ресурсов.
- Удаление definitions для наследуемых типов.
- Вывод предупреждений при задании примеров массивам и перечислениям с объектами.
- Сохранение отступов списков в описании.
- Доработка генерации json schema для рекурсивных массивов с вложенным полем.
- Удаление избыточной проверки.
- Рефакторинг названия и описания переменных и параметров функции.
- Добавление информации об отладке Crafter.
- Описание структур данных из parsers/elements.
- Добавление комментариев с обоснованием использования StringElement для описания.
- Добавление дебаг-режима.
- Постпроцессинг созданного ValueMemberElement в schema.test.js.
- Добавление класса SourceMap.
- Добавление SourceMapElementWithLineColumnInfo.
- Исправление типа элемента statusCode в ResponseElement.
- Удаление ненужных проверок типов в splitValues и convertType.
- Описание процесса преобразования Markdown дерева в APIB AST.
- Использование по умолчанию значения property в качестве примера.
- Исправление ошибки "Type not found" при парсинге атрибутов "default" и "sample".
- Поддержка рекурсивных массивов.
- Добавление pretest-скрипта.
- Удаление мутации объекта valueMemberElement в методе getSchema.
- Отключение парсинга атрибутов у schema named type.
- Исправление генерации body для falsy примеров.
- Сборка docker-образа на этапе postpublish.
- Исключение тестов при публикации пакета.
- Source maps для инлайн-примеров.
- Удаление ручной корректировки sourcepos для code-block типа.
- Указание версии crafter при добавлении его в контейнер.
- Установка последней версии пакета Crafter в контейнер.
- Добавление отдельной команды на пуш latest-версии образа с Crafter.
- Добавление Dockerfile для сборки образа.
- Добавление ошибки SignatureError и ее обработка при парсинге.
- Перевод на @funbox/commonmark для корректного отражения sourcepos комментариев.
- Удаление избыточного копирования контента при наследовании типа от типа.
- Парсинг заголовков «Sample».
- Возможность использования Schema-типов в различных секциях.
- Возможность получить список файлов использованных при генерации документации.
- Исправление ошибок вида «invalid sectionType».
- Исправление парсинга блоков с заголовками при импорте.
- Исправление формирования информации о строке/колонке в sourceMap при импорте.
- Исправление ошибок «Maximum call stack size exceeded».
- Доработка слияния полей items в хэлпере mergeSchemas.
- Исправление сообщения об ошибке при отсутствии искомого блока.
- Исправление рефракта элементов для соответствия api-elements.
- Вывод предупреждения о несовпадении значения и ожидаемого типа.
- Отображение предупреждения при попытке задать inline-значение объекту.
- Исправление определения типа инлайн-элементов массива.
- Исправление обработки описания параметров URI.
- Исправление применения Sample и Default, добавленных в именованном типе.
- Рефакторинг getBody.
- Рефакторинг работы со значениями по-умолчанию.
- Рефакторинг примеров (Samples).
- Исправление ошибки при неправильном атрибуте.
- Исправление значения value со строки на null в schema для типа nullable enum.
- Корректировка schema для типа nullable enum.
- Парсинг Schema Structures.
- Вывод версии крафтера.
- Генерация json-schema для секций Message.
- Добавление блоков Schema Structures.
- Генерация корректного body для примитивных типов без примеров.
- Исправление парсинга пустых секций Body и Schema.
- Корректировка отражения value в schema при наследовании именованных типов.
- Исправление schema для комплексных объектов с nullable.
- Исправление рефракта заголовка секции Message.
- Парсинг секции Message.
- Исправление потери отступов у code_block.
- Добавление в readme.md описания использования на других проектах.
- Вывод предупреждений о неверном задании отступов секций Headers и Body.
- Поддержка параметров minimum и maximum.
- Исправление парсинга параметров URI со звёздочкой в actions.
- Парсинг секций SubGroup.
- Изменение схемы парсинга сигнатуры секций Resource.
- Исправление получения сорсмапов для блочного описания без отступов.
- Вывод ошибок в AST.
- Исправление парсинга блока кода в блочном описании.
- Корректировка json-схем для fixed и fixed-type элементов.
- Конвертация значений нетипизированных элементов массива.
- Конвертирование вложенных элементов enum.
- Возможность отображения блоков в описании.
- Исправление передачи атрибута fixed-type вложенным элементам.
- Исправление проверки типа атрибутов при сравнении.
- Исправление проверки совпадающих атрибутов при резолве наследования.
- Исправление обработки секций resourcePrototype.
- Добавление предупреждения, если тип значения не соответствует string-типу для атрибутов pattern и format.
- Добавление warning-ов в AST.
- Удаление ключевого слова fixed-type для массивов из дерева.
- Поддержка атрибута format.
- Обработка атрибутов min-length и max-length.
- Добавление описаний для fixtures.
- Добавление поддержки атрибута pattern для строковых типов.
- Проверка атрибута optional при формировании json-schema.
- Использование дефолтных значений в body и json-schema.
- Исправление генерации json-schema для fixed и fixed-type объектов.
- Доработки секции Default и возможность вкладывать Default и Sample в примитивы.
- Исправление парсинга атрибутов.
- Добавление предупреждения если в action отсутствуют ответы.
- Исправление процессинга именованных примитивных типов.
- Исправление парсинга именованных эндпоинтов.
- Удаление пустой строки из source map.
- Обработка enum uri-параметра с пропущенным "+ Members".
- Вывод полного идентификатора типа uri-параметра.
- Вывод предупреждений на stderr.
- Обработка вложенных элементов href-параметра в виде описания.
- Исправление парсинга пустых значений enum.
- Исправление парсинга Resource Prototype.
- Вывод более читаемой ошибки при парсинге секций NamedType и Attributes.
- Доработка конвертации значений в mson-атрибутах.
- Исправление генерации body.
- Исправление наследования от пустого именованного типа.
- Исправление метода Crafter.parse при использовании вместе с utils.promisify.
- Обработка атрибута sample у разных типов mson-элементов.
- Добавление препроцессинга типов.
- Исправление получения sourceMaps элементов из импортированных файлов.
- Указание номера строки и текущего файла при выводе предупреждения.
- Генерация messageBody.
- Удаление дубликата слова Warning в предупреждении.
- Исправление обработки атрибута "fixed" при создании схем.
- Исправление обработки описания для response и request.
- Запись инлайн-значений массива в качестве блока samples.
- Исправление парсинга секции Action без uri.
- Добавление условия выхода при получении описания apib-документа.
- Обработка секции с метаданными.
- Исправление обработки пустых именованных типов.
- Исправление возврата nextNode из секции Attributes.
- Реализация блочного описания массивов.
- Добавление тестов из Drafter.
- Исправление работы при разборе документации без названия.
- Изменение очередности атрибутов в именованных типах для соответствия поведению Drafter.
- Исправление определения currentFile.
- Добавление обработки описания и свойств для MSONNamedTypeElement.
- Добавление warning'ов в SignatureParser.
- Добавление дополнительных тестов для SignatureParser.
- Обработка секции Schema.
- Добавление Unit-тестов на DataStructureProcessor.
- Исправление резолвинга путей при работе с импортами.
- Исправление поля bin в package.json.
Начальный прототип проекта. Проект строит AST так же, как это делает Drafter в ветке master (v4.0.0-pre.2). Реализованы следующие функции:
- парсинг структур данных;
- парсинг запросов, ответов;
- парсинг
Resource Prototypes
; - генерация JSON Schema;
- генерация Source Maps;
- подключение других файлов через
Import
.
В рамках начального прототипа не реализованы такие функции, как старый синтаксис параметров запроса (+ id (number, optional, 1000) description
) и Model.