Skip to content

Latest commit

 

History

History
270 lines (146 loc) · 16.9 KB

CHANGELOG.md

File metadata and controls

270 lines (146 loc) · 16.9 KB

История изменений

Обозначения:

➕ добавление новых возможностей

⚡️ обратно несовместимые изменения

🛠 рефакторинг кода

✏️ работа над документацией, комментарии

✨ форматирование кода и прочие не значимые изменения

🧪 добавление или корректировка тестов

🔧 исправление ошибок

⚠️ исправление значимых ошибок


0.17.0 (2024-11-01)

  • ⚡️ (api) Убрано неявное добавление параметра запроса limit=100, при указании expand. Разработчик должен сам понимать данную особенность API и сам позаботится о добавлении limit при указании expand. В том числе неявное поведение противоречит концепции данной библиотеки. Дополнительно к этому возникают проблемы при вызове асинхронных запросов, где указание limit запрещено.
  • ⚡️ (bundle) Удаление предсобранных бандлов библиотеки из репозитория. Сейчас пропала возможность работать во вкладке браузера с API МойСклад.
  • ➕ (api) Добавление опции запроса includeResponse для получения в результате массива с телом ответа и объектом Response. Удобно, например, когда помимо тела ответа нужно получить данные из HTTP заголовков ответа.
  • 🧪 (tests) Рефакторинг и добавление тестов. Идентификаторы сущностей из тестового аккаунта перенесены в переменные окружения.

0.16.0 (2023-09-20)

  • ⚡️ (api) Переезд на новый домен
  • ⚡️ (api) Убран параметр запроса millisecond (использовался в remap API 1.1)
  • ➕ (api) Возможность указания опций через переменные окружения MOYSKLAD_HOST, MOYSKLAD_API, MOYSKLAD_USER_AGENT
  • 🧪 (test) Исправление теста (сервер с новым endpoint возвращает другой код при некорректном запросе)

0.15.1 (2023-09-06)

  • ➕ (typings) Добавлен тайпинг для поля dependencies в ошибке (для случая когда нельзя удалить объект по причине наличия связи с другим)
  • 🧪 (test) Исправление теста (МС поправили редирект в API для товара)

0.15.0 (2023-08-01)

  • ⚡️ (filter) Снова 😅 переименование селектора $or на $all (в МойСклад интерпретация выражения И / ИЛИ зависит от оператора, так что $all подходит больше как селектор для объединения других селекторов).
  • ➕ добавление опции downloadExpirationSeconds для включения в запрос заголовка X-Lognex-Download-Expiration-Seconds.
  • 🔧 (url) Экранирование символа ; в строковых параметрах фильтра

0.14.0 (2023-07-31)

  • ⚡️ (filter) Замена (переименование) селектора $and на $or. В контексте фильтра в МойСклад передача нескольких условий для одного поля интерпретируется как фильтрация с условием ИЛИ.
  • 🧪 (test) Исправление тестов (МС отключили редирект в API для товара?)

0.13.0 (2023-07-19)

  • ⚡️ (getTimeString) Метод getTimeString(ms, true) возвращает дату с миллисекундами .000 даже если миллисекунды не заданы.

0.12.1 (2023-06-15)

  • ➕ (api) добавление статического метода Moysklad.parseUrl

0.12.0 (2023-05-26)

  • ➕ (api) добавление возможности передавать тело запроса ввиде уже сериализованной JSON строки
  • 🧪 (typings) опциональные поля поддерживают undefined значения при проверке типов
  • 🛠 (env) обновление dev зависимостей

0.11.1 (2022-11-23)

  • ➕ (typings) добавление интерфейса ApiError

0.11.0 (2022-11-23)

Внесение изменений для расширения возможностей работы с ошибками запросов.

Все подробности в документации по указанным в описании ключевым словам.

Изменения:

  • ⚡️ (fetchUrl) Опция запроса muteErrors deprecated, нужно использовать muteApiErrors. Теперь опция не игнорирует любые ответы (Response) с кодом отличным от 2xx, а игнорирует только те, которые содержат тело в формате JSON которое соответствует формату ошибки МойСклад (объект с полем errors). Все прочие ошибки выбрасываются.

  • ⚡️ Библиотека не тестируется на версиях Node.js <16.8 (связано с переходом на undici как рекомендуемой реализации fetch). Нет проблем оставить поддержку и более ранних версий ноды, но нужно дописывать тесты для разных версий, на что пока нет времени, желания и потребностей (если вдруг для вас это важно пишите Issue и в телеграм @wmakeev)

  • ⚡️ (build) Сборка библиотеки перенесена в папку bundle/umd/moysklad.js

  • ➕ (boild) добавление минифицированной версии сборки bundle/umd/moysklad.min.js

  • ➕ (fetchUrl) добавление опции запроса rawRedirect

  • ➕ (fetchUrl) добавление опции запроса muteCollectionErrors

  • ➕ (buildUrl) добавление параметра requestId в события выполнения запроса

  • ➕ (errors) добавление ошибки MoyskladCollectionError для случая полученной коллекции содержащий элемент с ошибкой

  • ➕ (errors) добавление ошибки MoyskladUnexpectedRedirectError для случая получения ответа с редиректом, тогда когда он явно не ожидается

  • ➕ (buildUrl) вывод deprecated сообщения при передаче параметра path ввиде массива

  • ➕ (export) добавление некоторых статических методов из внутренних функций, которые могут быть полезны сами по себе (buildFilter, buildQuery)

  • ➕ (typings) отметка deprecated сигнатур методов

  • ➕ (typings) добавление тайпингов для событий запросов и других новых публичных API добавленных в этой версии; доработка описаний

  • ✏️ (getTimeString) удаление упоминания логики для корректировки часового пояса (глобальная переменная MOYSKLAD_TIMEZONE) добавленное в версии 0.8.0 - по всей видимости не самое удачное решение

  • 🛠 (fetch) замена рекомендуемой библиотеки для выполнения запросов node-fetch на более актуальную undici (есть ряд замечаний касательно того что undici, судя по всему, использует часть API из Node.js 17+)

  • 🧪 добавление и обновлене тестов

  • ✏️ (docs) исправления, доработки и дополнения согласно новым функциям

  • ✏️ (examples) добавление новых примеров в папке examples

  • ✏️ (todo) обновление TODO.md

  • ✨ (env) переход на Prettier,

  • 🛠 (env) переход на webpack для сборки бандла

  • 🛠 (env) переход на с8 для coverage

  • 🛠 (env) обновление старых и удаление ненужных зависимостей

  • 🛠 (env) новая система публикации версий проекта

TODO

  • Требуется еще вычитать документацию, возможно поправить кое-где примеры и обновить описания.

  • Добавить примеры для работы в браузере (в контексте приложения МойСклад)

0.10.2

  • 🔧 (fetchUrl) более адекватная обработка пустого JSON ответа (могли заглушаться важные системные ошибки)

0.10.1

  • 🔧 (fetchUrl) обновлена зависимость @wmakeev/base64encode

0.10.0

  • ➕ (fetchUrl) Возможность указать заголовок запроса User-Agent по умолчанию при инициализации библиотеки

  • ➕ (fetchUrl) При выполнении запроса в заголовок User-Agent подставляется информация о библиотеке и ее версии (если значение заголовка не указано явно, при инициализации экземпляра)

  • ➕ (errors) Экспорт классов ошибок вместо интерфейсов

  • ➕ (errors) В сообщение об ошибке API подставляется ссылка на описание ошибки в API МойСклад

  • ➕ (instance) Добавление метода getVersion для получения текущей версии библиотеки

  • 🛠 (typings) Обновление сигнатуры метода getTimeString

  • 🧪 (typings) Добавление тестов

  • ✏️ (docs) Обновление документации. Добавление описания работы с ошибками.

0.9.2

  • 🛠 (dependencies) Небольшие изменения и обновление зависимостей, в т.ч. для поддержки Google Apps Script

  • ➕ (filter) Проверка на невалидные селекторы в выражениях фильтра #3

  • 🛠 (errors) Изменение формулировок некоторых ошибок

  • 🛠 (errors) Ошибки библиотеки имеют тип MoyskladError

  • 🧪 (typings) Добавление тестов

  • 🛠 Небольшой рефакторинг

  • 🔧 (travis) Актуализация тестов

  • ✏️ (docs) Доработка документации

0.9.0

  • ⚡️ (apiVersion) По умолчанию используется версия Remap API 1.2

0.8.2

  • ⚠️ (time) Исправление некорректного разбора и формирования миллисекунд в строке времени

  • 🔧 (typings) Значение поля в фильтре может быть undefined

0.8.0

  • 🛠⚡️ (filters) При формировании фильтра все даты преобразуются включая миллисекунды.

  • ➕ (time) Добавление возможности явно указывать часовой пояс через глобальную переменную MOYSKLAD_TIMEZONE. Используется когда нельзя настроить часовой пояс машины и нужно работать с датами в ином поясе.

  • ➕ (errors) Добавление ошибки MoyskladRequestError, которая включает в себя дополнительную информацию из запроса. MoyskladApiError наследуется от MoyskladRequestError.

  • 🛠⚡️ (tests) Проведение тестов только для node.js версии 12 и выше.

0.7.2

  • 🔧 (typings) исправление экспортированных типов полей filter и order

0.7.1

  • 🛠 (typings) экcпорт типов полей filter и order

0.7.0

  • ➕ (buildQuery) если при выполнении запроса указан expand, но не указан limit, то limit будет подставлен автоматически со значением 100 (в remap 1.2 expand не применяется для запросов без указания limit<=100)

  • ➕ (buildQuery) для описания поля order может использоваться нотация ввиде массива, напр. [['name', 'asc]]

  • 🧪 (typings) добавлен простой тест для валидации тайпингов

  • 🛠 (typings) дополнение описания полей в тайпинге (поле order в запросе, поле redirect в опциях)

  • ✏️ (docs) актуализация документации

  • 🧪 тесты вынесены в отдельную папку; небольшой рефакторинг для увеличения покрытия

  • 🛠 прочий рефакторинг

0.6.4

  • 🔧 (typings) исправление ошибок

0.6.3

  • 🔧 (normalizeUrl) убрано преобразование url запроса к нижнему регистру (не совместимо с url вида /entity/companysettings/metadata/customEntities)

0.6.2

  • 🔧 (filter) добавление возможности указазывать значение фильтра как undefined (ключ фильтра в этом случаем будет опущен)

0.6.1

  • 🔧 (typings) исправление ошибок

0.6.0

  • ⚡️ (events) замена в объекте события параметра uri на url
  • ➕ (auth) добавление авторизации по токену
  • 🔧 (typings) исправление сигнатуры для методов GET, PUT, ... (не строгая типизация через any)
  • 🛠 (typings) добавление поля Moysklad.Options.emitter
  • ✏️ (typings) добавление документации по параметрам аутентификации
  • ✏️ (docs) доработка документации (События, Аутентификация и пр.)
  • 🧪 (tests) добавление тестов

0.5.2

  • 🔧 (typings) исправление типа опции fetch

0.5.1

  • ➕ TypeScript typings 🥳🎉

0.5.0

  • ➕ добавление опции precision и webHookDisable для включения в запрос заголовков X-Lognex-Precision и X-Lognex-WebHook-Disable соотв.
  • ⚡️ метод DELETE возвращает undefined (ранее, по умолчанию, метод вызывался с опцией rawResponse и возвращал объект Response)
  • ⚡️ убрана поддержка старых версий node.js (библиотека с текущей версии тестируется на node.js 8.10)

0.4.2

  • ✏️ дополнение документации
  • 🧪(query): дополнительные тесты
  • 🛠(query): исправление неточностей в логике построения строки запроса

0.4.1

  • ⚠️ исправление ошибки: селектор $exists обрабатывался всегда как !=, вне зависимости от значения