Изменения в jsonpath-plus
7.2.0
- perf: оптимизация метода walk на 10%-34% (@jacobroschen)
- chore: добавление типов в поле exports (@awlayton)
7.1.0
- perf: улучшение скорости оценки условных запросов (@jacobroschen)
7.0.0
- Breaking change: увеличение
engines
до 12
- fix: удаление
console.log
при возникновении ошибки (@sh33dafi)
- chore: обновление devDeps.
6.0.1 (2021-07-07)
- Fix: некоторые пути в
package.json
нуждались в обновлении (@matushorvath)
- npm: Обновление devDeps.
6.0.0 (2021-07-05)
Влияние на пользователя
- Breaking enhancement: создание как истинный модуль ESM
- Breaking change: использование расширения
.cjs
для UMD и CJS сборок (очень старые браузеры могут не поддерживать, но необходимо с учётом изменения, так как Webpack может жаловаться, если существует CJS в том, что он считает файлом ESM, по умолчанию это расширение .js
, а не .mjs
)
- Breaking change: использование расширения
.js
вместо .mjs
сейчас по умолчанию для сборок ESM.
Влияние на разработчиков
- npm: Добавление скрипта
lint
- npm: Обновление devDeps.
5.1.0 (2021-06-24)
- Enhancement: поддержка двойных кавычек в квадратных скобках
- Linting: согласно последнему ash-nazg
- npm: Обновление devDeps.
5.0.7 (2021-04-12)
- Fix: Добавить
package.json
в exports
(@sebastiendavid)
5.0.6 (2021-04-09)
- Fix: Удаление модификаторов
static
(@sdolski)
- Linting: Согласно последнему ash-nazg
- npm: Обновление devDeps.
5.0.5 (2021-04-09)
- Fix: Избегание повреждения кэша при изменении возвращаемой структуры. Устраняет проблему №102 (@tejodorus)
5.0.4 (2021-03-02)
- Fix: разрешить falsey значения в фильтре (теперь может потребоваться проверка наличия
@
в некоторых случаях); устраняет проблему №136
- Docs: добавить отсутствующую старую информацию о выпуске (согласование с выпусками GitHub)
- Docs: обновить README, чтобы отразить, что 1.2.0 не была выпущенной версией (объединить детали выпуска в 2.0.0)
- Linting: согласно последнему ash-nazg
- npm: Обновить devDeps.
5.0.3 (2021-02-06)
- Fix: добавить экспорт пакета для браузера и umd (#145) (@gjvoosten)
- Update: сборка согласно рефакторингу
- Docs: обновление согласно обновлению typedoc
- Docs: обновление лицензий согласно последним изменениям
- Linting: согласно последнему ash-nazg
- CI: обновление с Travis -> GitHub Actions
- npm: переход с
eslint-plugin-sonarjs
на eslint-plugin-radar
- npm: перейти на pnpm
- npm: обновить devDeps.
5.0.2 (2021-01-15)
- Fix: Правильный экспорт Node CommonJS; устраняет проблему №144
5.0.1 (2021-01-15)
- Fix: Правильный экспорт Node CommonJS; устраняет проблему №143
- Docs: Правильно указать новые пути для браузера
5.0.0 (2021-01-14)
- Breaking change: Добавить
type: 'commonjs'
и exports: {import, require}
(с помощью скрипта node-import-test для демонстрации)
- Breaking change: Изменить пути для браузера (теперь это
dist/index-browser-umd.js
или dist/index-browser-es.js
) (для Node, main
и module
указывают на новый специфичный для Node дистрибутив)
- Breaking enhancement: Добавить
browser
для связывания в браузере; позволяя статический анализ сред, однако не имеет условного кода для запроса vm
); для ESM-связывания в браузере теперь необходимо проверять browser
в плагине разрешения Rollup Node; см. README
- Build: Обновление согласно последним devDeps.
- Docs: Добавить пример регулярного выражения (.match) для значения (@jeffreypriebe)
- Docs: Добавить пример регулярного выражения (.match) для свойства
- Docs: Исправить пример XPath (@humbertoc-silva)
- Docs: Ссылка на тестер XPath 2.0
- Docs: Обновить значки согласно последним обновлениям
- Linting: заключить в кавычки props
- Linting: согласно последнему ash-nazg
- Testing: исправить тесты браузера
- Testing: добавить тестовый случай для установки значений в обратных вызовах (проблема №126)
- Testing: добавить больше тестов с использованием знака at
- Testing: увеличить время ожидания
- Travis: проверить Node 14
- Travis: добавить поле dist по умолчанию, чтобы избежать дополнительной настройки отчётов
- npm: обновление с устаревшего rollup-plugin-babel на @rollup/plugin-babel (и сделать babelHelpers явным)
- npm: изменить порядок скриптов в соответствии с порядком выполнения тестов
- npm: обновить devDeps
4.0.0 (2020-04-09)
- Breaking change/fix: запретить
resultType
быть записанным строчными буквами (нарушает работу parentProperty
)
- Breaking change: ожидать Node >= 10
- Build: согласно последнему rollup
- Linting: проверка скрытых файлов; обновление согласно последнему ash-nazg
- Docs: обновить значок покрытия
- npm: обновить devDeps
3.0.0 (2020-01-13) Брейк-изменения:
- Ожидайте Node версии 8 и выше.
Фиксы:
- Требуется «json» как собственное свойство.
- Возвращаются несогласованные типы данных (@CacheControl).
- Обеспечивается выдача с плохим типом результата.
- Разрешаются пустые строковые ключи.
- Избегаются ошибки, когда значение перед родительским селектором ложно.
- Если «resultType» — это «all», если путь разрешается внутренне в не-массив (строку), он должен быть преобразован в массив перед преобразованием в указатель для «pointer».
Улучшения:
- Путь может быть массивом в сигнатуре, отличной от объекта.
Документация:
- Добавьте локально сгенерированные значки для тестирования, покрытия и т. д.
Линтер (ESLint):
- Согласно последнему ash-nazg.
- Удалите избыточное «use strict» с переходом на ESM.
Обслуживание:
Тестирование:
- Добавьте nyc для покрытия.
- Тестируйте против источника (используя esm).
- Улучшите покрытие (больше тестов типа оператора).
- Проверьте виртуальную машину.
- Добавьте скрипт test-cov.
- Обновите devDeps.
Версия 2.0.0 (2019-11-23)
Брейк-изменения:
- Выдавайте TypeError вместо Error при отсутствии otherTypeCallback при использовании @other.
- Выдавайте TypeError вместо Error при отсутствии path.
- Выдавайте TypeError при отсутствии json (исправляет #110).
Улучшения:
- Используйте более эффективную новую функцию вместо eval; также позволяет использовать циклические контекстные объекты.
- Добавьте фильтр-селектор @root.
Документация:
- Документируйте параметры в jsdoc; добавьте возвращаемые значения в обратные вызовы; исправьте конструктор doc sig.
Тестирование:
- Протестируйте отсутствие path или json.
- Уберите ненужные замыкания.
npm:
- Обновите devDeps и package-lock.json.
Версия 1.1.0 (September 26, 2019)
Улучшение:
- Явно добавьте «any» к объявлению evaluate() (для использования с параметром noImplicitAny TypeScript).
Сборка:
- Обновите минимизированные файлы сборки.
Travis:
- Обновите до проверки Node 6, 10, 12.
npm:
- Игнорируйте файлы .idea/.remarkrc.
- Обновите devDeps (Babel, linting, Rollup, TypeScript related).
- Избегайте скрипта eslint внутри тестового скрипта.
- Игнорировать документацию по TypeScript.
Версия 1.0.0 (August 7, 2019)
Добавьте объявление TypeScript.
Версия 0.20.2 (July 9, 2019)
Проверка supportsNodeVM работает в GOJA, node и ReactNative. (@legander)
Версия 0.20.1 (June 12, 2019)
npm: Избегайте добавления core-js-bundle в качестве peerDep. (исправляет № 95).
Версия 0.20.0 (June 4, 2019)
Сборка:
- Добавить browserslist для сборок Babel.
Линтинг:
- Привести ESLint в соответствие с обновлениями (jsdoc).
Тестирование:
- Переключитесь с устаревшего nodeunit на Mocha.
- Добавьте тест производительности в браузер, но увеличьте продолжительность.
npm:
- Обновите devDeps; добавьте core-js-bundle к peerDependencies.
- Игнорировать некоторые ненужные файлы.
- Поднимите версию узла в Travis, чтобы избежать ошибок с объектом rest в eslint-plugin-node.
Версия 0.19.0 (May 16, 2019)
Документы (README):
- Укажите функции, включая производительность (удаление старой заметки).
- Добавьте заголовки для настройки и исправьте уровни заголовков.
- Укажите, что родительский селектор отсутствовал в исходной спецификации (а не просто не документирован).
- Исправьте экранирование.
Линтинг:
- Перейдите на разрывы строк Unix и другие изменения согласно ash-nazg, включая линтинг Markdown JS.
- Используйте рекомендуемое расширение .json.
- Переключиться на ash-nazg.
- Добавьте файл lgtm.yml для lgtm.com.
npm:
- Обновите devDeps, обновите в соответствии с аудитом безопасности.
Версия 0.18.1 (May 14, 2019)
Исправьте: выставьте указатель при resultType: «все».
Версия 0.18.0 (October 20, 2018)
Безопасность:
- Используйте глобальный eval вместо обычного eval.
- Исправьте: обработайте отсутствие поддержки среды React-Native для виртуальной машины Node (@simon-scherzinger); закрывает #87.
Рефакторинг:
- Использование стрелочных функций, for-of, объявление переменных области видимости блока ближе к блоку.
Документация:
- Уточните текущее поведение wrap.
npm:
- Добавьте Rollup в тестовые скрипты.
Версия 0.17.0 (October 19, 2018)
Брейк-изменение:
- С использованием Node теперь необходимо использовать require('jsonpath-plus').JSONPath.
Другие изменения:
- Прекратите включать полифиллы для массива и строковых включений (можно получить с помощью @babel/polyfill или самостоятельно).
- Удалите устаревший JSONPath.eval.
Лицензия:
- Удалите старую и ненужную часть лицензии из исходного файла. Уже есть внешний файл:
-
Исправить: Поддержка функций-сокращений для объектов в песочнице (toString()
не работал с ними должным образом).
-
Улучшение: Добавить Rollup/Babel/Terser и module
в package.json
.
-
Рефакторинг: Использовать функции ES6, такие как сокращение объектов.
-
Линтинг: Предпочитать const и не использовать var.
-
Тестирование: Заменить пользовательский серверный код на node-static
и добавить opn-cli
; в основном перейти на ESM.
-
npm: Обновить devDeps; добавить package-lock.json
; удалить неработающий remark.
0.16.0 (14 января 2017 года):
-
Критическое изменение: Отдавать предпочтение обработке специальных символов в свойстве как специальных (переопределение с помощью оператора обратного апострофа).
-
Критическая функция: Добавить собственный оператор ` для разрешения неоднозначных буквальных последовательностей (если необходим начальный обратный апостроф, теперь необходимо добавить дополнительный).
-
Исправление: Ошибка кэширования toPathArray
.
-
Усовершенствования: Оптимизация производительности.
-
Тестирование разработки: Переименовать тестовый файл.
0.15.0 (15 марта 2016 года):
-
Исправление: Исправление поддержки песочницы в случае функций.
-
Функция: Использовать this
, если он присутствует, для глобального экспорта.
-
Документация: Уточнить сигнатуру функции.
-
Документация: Обновить раздел тестирования.
-
Тестирование разработки: Добавить отсутствующий тест для тестирования в браузере.
-
Тестирование разработки: Включить проверку linting в процесс тестирования (#70).
-
Тестирование разработки: Провести линтинг файлов поддержки тестов JS.
-
Тестирование разработки: Разделить тесты на eslint
, remark
, lint
, nodeunit
.
-
Тестирование разработки: Удалить необходимость шага сборки nodeunit.
-
Тестирование разработки: Упростить использование nodeunit и сделать его доступным как npm run browser-test
.
0.14.0 (10 января 2016 года):
- Функция: Добавить оператор типа
@scalar()
(в режиме JavaScript также будет включать).
0.13.1 (5 января 2016 года):
- Исправление: Избежать двойного кодирования пути в результатах.
0.13.0 (13 декабря 2015 года):
-
Критическое изменение (начиная с версии 0.11): Игнорирование операторов ~
и ^
и операторов типов, таких как @string()
, в вызовах JSONPath.toPathString()
.
-
Критическое изменение: Удаление полифилла Array.isArray
, поскольку он больше не поддерживает IE <= 8.
-
Функция: Разрешить пропуск первого аргумента опций в JSONPath
.
-
Функция: Добавить JSONPath.toPointer()
и опцию «указатель» resultType
.
-
Исправление: Правильно поддерживать callback
и otherTypeCallback
как пронумерованные аргументы в JSONPath
.
-
Исправление: Улучшить проверку Node, чтобы избежать проблемы, о которой сообщалось в angular-mock.
-
Исправление: Разрешить использование @
или других специальных символов в именах свойств с префиксом at (с использованием [?(@['...'])]
или [(@['...'])]
).
0.12.0 (12 декабря 2015 10:39 вечера):
- Критическое изменение: Проблемы с прописными буквами в npm заставляют нас переименовать пакет, поэтому мы переименовали пакет в «jsonpath-plus» (уже есть пакеты со строчными буквами «jsonpath» или «json-path»). Новое имя также отражает, что в исходную спецификацию были внесены изменения.
0.11.2 (12 декабря 2015 10:36 вечера):
- Документация: Фактически добавьте предупреждение в README о том, что проблемы в npm с прописными буквами заставляют нас переименовывать в «jsonpath-plus» (следующая версия действительно применит изменение).
0.11.1 (12 декабря 2015 10:11 вечера):
- Документация: Предупредите в README, что проблемы в npm с прописными буквами вынуждают нас переименоваться в «jsonpath-plus» (следующая версия фактически применит изменение).
0.11.0 (12 декабря 2015):
-
Критическое изменение: Для развёрнутых результатов возвращать undefined
вместо false
при неудачной попытке найти путь (чтобы можно было отличить undefined
— недопустимое значение JSON — от допустимых значений JSON, null
или false
) и возвращать точное значение при ложных одиночных результатах (чтобы разрешить возврат null
).
-
Устаревшее: Использование jsonPath.eval()
; используйте новый API на основе классов.
-
Функция: Экспорт AMD.
-
Функция: Используя self
вместо window
, экспорт позволяет тривиально импортировать JSONPath в веб-воркеры без нарушения совместимости в обычных сценариях. См. MDN о self.
-
Функция: Предлагать новый API на основе класса и аргументы на основе объекта (с возможностью запуска новых запросов через метод evaluate()
без повторной подачи конфигурации).
-
Функция: Разрешить новую опцию preventEval=true
и autostart=false
.
-
Функция: Разрешить новый параметр обратного вызова, чтобы разрешить обратный вызов.
Опубликовать ( 0 )