dotcom-page-kit
dotcom-page-kit copied to clipboard
Update dependency ajv to v8
This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
ajv (source) | ^6.10.0 -> ^8.0.0 |
:information_source: Find our documentation at https://github.com/Financial-Times/next/wiki/Renovate.
Release Notes
ajv-validator/ajv (ajv)
v8.17.1
What's Changed
- bump version to 8.17.1 by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2472
Full Changelog: https://github.com/ajv-validator/ajv/compare/v8.17.0...v8.17.1
Plus everything in 8.17.0 which failed to release
The only functional change is to switch from uri-js (which is no longer supported), to fast-uri. This is the second attempt and the team on fast-uri have been really helpful addressing the issues we found last time.
Revert "Revert fast-uri change (https://github.com/ajv-validator/ajv/pull/2444)" by @​gurgunday in https://github.com/ajv-validator/ajv/pull/2448 fix: ignore new eslint error for @​typescript-eslint/no-extraneous-class by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2455 docs: clarify behaviour of addVocabulary by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2454 docs: refactor to improve legibility by @​blottn in https://github.com/ajv-validator/ajv/pull/2432 Fix grammatical typo in managing-schemas.md by @​wetneb in https://github.com/ajv-validator/ajv/pull/2305 docs: Fix broken strict-mode link by @​alexanderjsx in https://github.com/ajv-validator/ajv/pull/2459 feat: add test for encoded refs and bump fast-uri by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2449 fix: changes for @​typescript-eslint/array-type rule by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2467 fixes https://github.com/ajv-validator/ajv/issues/2217 - clarify custom keyword naming by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2457
v8.16.0
What's Changed
- Revert fast-uri change by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2444
Full Changelog: https://github.com/ajv-validator/ajv/compare/v8.15.0...v8.16.0
v8.15.0
What's Changed
- Replace
uri-js
withfast-uri
by @​vixalien in https://github.com/ajv-validator/ajv/pull/2415 - Bump to 8.15.0 by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2442
New Contributors
- @​vixalien made their first contribution in https://github.com/ajv-validator/ajv/pull/2415
Full Changelog: https://github.com/ajv-validator/ajv/compare/v8.14.0...v8.15.0
v8.14.0
What's Changed
- readme: build badge by @​epoberezkin in https://github.com/ajv-validator/ajv/pull/2424
- Update workflows by @​rotu in https://github.com/ajv-validator/ajv/pull/2410
- docs: add warning to maxLength / minLength by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2428
- fix: broken link in docs warning by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2431
- compileAsync a schema with discriminator and $ref, fixes #​2427 by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2433
- bump version to 8.14.0 for publishing by @​jasoniangreen in https://github.com/ajv-validator/ajv/pull/2440
New Contributors
- @​rotu made their first contribution in https://github.com/ajv-validator/ajv/pull/2410
Full Changelog: https://github.com/ajv-validator/ajv/compare/v8.13.0...v8.14.0
v8.13.0
- add named exports
- update dependencies
- update node.js
v8.12.0
- fix JTD serialisation (remove leading comma in objects with only optional properties) (#​2190, @​piliugin-anton)
- empty JTD "values" schema (#​2191)
- empty object to work with JTD utility type (#​2158, @​erikbrinkman)
- fix JTD "discriminator" schema for objects with more than 8 properties (#​2194)
- correctly narrow "number" type to "integer" (#​2192, @​JacobLey)
- update Node.js versions in CI to 14, 16, 18 and 19
v8.11.2
Update dependencies
Export ValidationError and MissingRefError (https://github.com/ajv-validator/ajv/pull/1840, @​dannyb648)
v8.11.1
Update dependencies
Export ValidationError and MissingRefError (#​1840, @​dannyb648)
v8.11.0
Use root schemaEnv when resolving references in oneOf (#​1901, @​asprouse)
Only use equal function in generated code when it is used (#​1922, @​bhvngt)
v8.10.0
uriResolver
option (@​zekth, #​1862)
v8.9.0
Option code.esm
to generate ESM exports for standalone validation functions (@​rehanvdm, #​1861)
Support discriminator keyword with $ref in oneOf subschemas (@​dfeufel, #​1815)
v8.8.2
Use full RegExp string (with flags) as cache key, related to https://github.com/ajv-validator/ajv-keywords/issues/220
v8.8.1
Fix minContains: 0
(#​1819)
v8.8.0
Fix browser bundles in cdnjs
regExp
option allowing to specify alternative RegExp engine, e.g. re2 (@​efebarlas)
v8.7.1
Publish Ajv bundle for JSON Schema 2020-12 to cdnjs.com
v8.7.0
Update JSON Schema Test Suite.
Change minContains: 0
now correctly allows empty array.
v8.6.3
Fix $ref resolution for schemas without $id (@​rbuckton, #​1725)
Support standalone module import from ESM modules without using .default
property (@​bhvngt, #​1757)
Update code for breaking TS change - error in catch
has type unknown
(#​1760)
v8.6.2
Fix JTD serialiser (#​1691)
v8.6.1
Fix "not" keyword preventing validation of "allOf" and some other keywords (#​1668)
v8.6.0
Track evaluated properties with patternProperties that have always valid schemas (e.g., true) (@​P0lip, #​1626)
Option int32range
to disable number range checking for int32
and uint32
type in JTD schemas
v8.5.0
Optimize validation code for const
keyword with scalar values (@​SoAsEr, #​1561)
Add option schemaId
to support ajv-draft-04 - Ajv for JSON Schema drat-04.
v8.4.0
JSON Type Definition schema options:
- parseDate: parse
timestamp
type as Date objects. - allowDate: non-standard - allow date without time with
timestamp
type.
v8.3.0
Typescript improvements:
- better error reporting for JSONSchemaType in case strictNullChecks option is disabled (@​erikbrinkman, #​1583)
- support missed boolean type in JTDDataType (@​m00s, #​1587) JTD timestamp validation option (@​jrr, #​1584). Docs corrections.
v8.2.0
Add JTDDataType to compile signature (@​erikbrinkman, #​1547) Improve JSONSchemaType for records (@​erikbrinkman, #​1564) Use rollup for browser bundles (@​realityking, #​1533) Docs corrections
v8.1.0
unicodeRegExp option to not use RegExp unicode flag that may be incompatible with some environments (@​asaid-0, #​1530) Fix JSONSchemaType (@​erikbrinkman, #​1541) Extended error message for invalid keyword values (@​pcwiek, #​1542)
v8.0.5
Fix: add source code back to npm package, 8.0.4 is breaking ajv-cli (and possibly other things)
v8.0.4
Reduce npm bundle size
v8.0.3
Improve JSONSchemaType errors (@​erikbrinkman, #​1525)
v8.0.2
Support RegExp formats in standalone code (#​1470) Add schema path to strictTuple error message (@​asaid-0, #​1519)
v8.0.1
Typescript: export function getData
(for ajv-errors)
v8.0.0
This document describes changes from v7.2.4 to v8.0.0.
If you are migrating from v6 you can use this document.
New features
Support JSON Schema draft-2020-12: prefixItems keyword and changed semantics of items keyword, dynamic recursive references. OpenAPI discriminator keyword. Improved JSON Type Definition support:
- errors consistent with JTD specification.
- error objects with additional properties to simplify error handling (see Error objects)
- internationalized error messages with ajv-i18n TypeScript: support type unions in JSONSchemaType
Other changes / improvements
Node.js require works without .default property - see examples in Getting started
Reduce runtime dependency for standalone validation code
Fix resolution of $ref: "#"
when $id is present (#​815)
Breaking changes
Option strict controls all strict mode restrictions JSON Schema validation errors changes:
-
dataPath
property replaced withinstancePath
- "should" replaced with "must" in the messages
- property name is removed from "propertyName" keyword error message (it is still available in
error.params.propertyName
).
v7.2.4
Fix #​1515: correctly initialize evaluated properties.
v7.2.3
Remove docs from npm package
v7.2.2
Docs correction
Simplified JSONSchemaType (@​erikbrinkman)
Fix #​1493 - incorrect reporting of missing required property with option ownProperties: true
Fix #​1501 - JTD not working correctly with many properties in the schema
v7.2.1
Add tests and fix parsers compiled with ajv.compileParser
from JTD schemas:
- fail on invalid JSON:
- trailing comma in arrays/objects
- invalid JSON numbers
- control characters in strings
- fix parsing of u-escaped characters
- do not fail on duplicate object keys (consistent with JSON.parse)
Compiled parsers are now:
- consistent with JSON.parse in case of invalid JSON
- only parse data that is valid for JTD schema
It is a breaking change for compiled parsers compared with 7.2.0 that was released earlier on the same day.
v7.2.0
strictRequired option (off by default) - to log or fail if properties used in JSON Schema "required" are not defined in "properties" (@​PBug90, #​1403)
Compiled parsers (as fast as JSON.parse on valid JSON, but replace validation and fail much faster on invalid JSON) and serializers (10x+ faster than JSON.stringify) from JSON Type Definition schemas (#​1454) - see examples in javascript and typescript
Please note: there are fixes to compiled parsers in 7.2.1
The website migrated to VuePress and documentation is restructured to make navigating Ajv documentation and learning easier - this is still work in progress, but already some improvement on the information structure. Any feedback/corrections would be very much appreciated!
Improved TypeScript support for JSONSchemaType:
- JTDSchemaType<T> utility type to convert your data type into the type of JTD schema, to simplify its writing and to make sure it is consistent with your data type, with type inference support for ajv methods (@​erikbrinkman, #​1446, #​1456, #​1457, #​1475) - see example here
- Alternatively, you can use JTDDataType
utility type to convert your JTD schema type into the type of data (@​erikbrinkman, #​1458) - see this example
Other improvements by @​Fdawgs (#​1466), @​t7yang (#​1472, #​1473), @​koba04 (#​1460)
v7.1.1
Support readonly arrays with JSONSchemaType (@​LinusU, #​1447)
v7.1.0
Support for JSON Type Definition RFC 8927 - a simple schema language provided as an alternative to JSON Schema.
See these docs:
- an informal document on Ajv site
- RFC8927
- choosing schema language - comparison with JSON Schema
Allow ":" in keyword names (#​1421, @​teq0)
v7.0.4
Fix: duplicate functions in standalone validation code with mutually recursive schemas (#​1361) Fix: reference resolution when base URI change was not applied (#​1414)
v7.0.3
Fixes:
- oneOf error type (#​1368, @​G-Rath)
- remove multiple imports (rollup/plugins#745)
Docs:
- Using in ES5 (#​1364, @​aladdin-add)
- Option strictTypes: false has to be used with json-schema-secure schema (#​1373)
v7.0.2
Remove duplicate functions from standalone validation code (#​1361)
v7.0.1
Update error message for maxLength
/minLength
keywords
v7.0.0
Please note: this document covers the changes from v6.12.6.
The main changes
- support of JSON Schema draft-2019-09 features:
unevaluatedProperties
andunevaluatedItems
, dynamic recursive references and other additional keywords. - comprehensive support for standalone validation code - compiling one or multiple schemas to standalone modules with one or multiple exports.
- to reduce the mistakes in JSON schemas and unexpected validation results, strict mode is added - it prohibits ignored or ambiguous JSON Schema elements. See Strict mode and Options for more details
- to make code injection from untrusted schemas impossible, code generation is fully re-written to be type-level safe against code injection.
- to simplify Ajv extensions, the new keyword API that is used by pre-defined keywords is available to user-defined keywords - it is much easier to define any keywords now, especially with subschemas.
- schemas are compiled to ES6 code (ES5 code generation is supported with an option).
- to improve reliability and maintainability the code is migrated to TypeScript.
- separate Ajv classes from draft-07 and draft-2019-09 support with different default imports (see Getting started or v7.0.0-beta.5 for the details).
Please note:
- the support for JSON-Schema draft-04 is removed - if you have schemas using "id" attributes you have to replace them with "$id" (or continue using version 6 that will be supported until 02/28/2021).
- all formats are separated to ajv-formats package - they have to be explicitly added if you use them.
- Ajv instance can only be created with
new
keyword, as Ajv is now ES6 class. - browser bundles are automatically published to ajv-dist package (but still available on cdnjs.com).
- order of schema keyword validation changed - keywords that apply to all types (allOf etc.) are now validated first, before the keywords that apply to specific data types. You can still define custom keywords that apply to all types AND are validated after type-specific keywords using option
post: true
in keyword definition. - regular expressions in keywords "pattern" and "patternProperties" are now used as if they had unicode "u" flag, as required by JSON Schema specification - it means that some regular expressions that were valid with Ajv v6 are now invalid (and vice versa).
Better TypeScript support:
- Methods
compile
andcompileAsync
now return type-guards - see Getting started. - Method
validate
is a type-guard. - Better separation of asynchronous schemas on type level.
- Type utility JSONSchemaType<T> that generates the type for JSON Schema for type interface in the type parameter - it simplifies writing schemas (no unions support at the moment).
API changes:
- addVocabulary - NEW method that allows to add an array of keyword definitions.
- addKeyword - keyword name should be passed as property in definition object, not as the first parameter (old API works with "deprecated" warning). Also "inline" keywords support is removed, code generation keywords can now be defined with "code" keyword - the same definition format that is used by all pre-defined keywords
- Ajv no longer allows to create the instance without
new
keyword (it is ES6 class).
Added options (and defaults):
- strict: true - strict mode
- strictTypes: "log" - prevent mistakes related to type keywords and keyword applicability (see Strict Types)
- strictTuples: "log" - prevent incomplete tuple schemas (see Prohibit unconstrained tuples)
- allowUnionTypes: false - allow multiple non-null types in "type" keyword
- allowMatchingProperties: false - allow overlap between "properties" and "patternProperties" keywords
- loopEnum: Infinity - optimise validation of enums, similar to
loopRequired
- validateFormats: true - enable format validation
- code: {optimize: number|boolean} - control code optimisation
- code: {es5: true} - generate ES5 code, the default is to generate ES6 code.
- code: {lines: true} - add line breaks to generated code - simplifies debugging of compiled schemas when you need it
Changed options:
-
keywords
- now expects the array of keyword definitions (old API works with "deprecated" warning)
Removed options:
- errorDataPath - was deprecated, now removed.
- format -
validateFormats: false
can be used instead, old format mode can be chosen via ajv-formats package. - nullable:
nullable
keyword is supported by default. - jsonPointers: JSONPointers are used to report errors by default,
jsPropertySyntax: true
(deprecated) can be used if old format is needed. - extendRefs: $ref siblings are validated by default (consistent with draft 2019-09),
ignoreKeywordsWithRef
(deprecated) can be used instead to ignore $ref siblings. - missingRefs: now exception is always thrown. Pass empty schema with $id that should be ignored to ajv.addSchema.
- processCode: replaced with
code: {process: (code, schemaEnv: object) => string}
. - sourceCode: replaced with
code: {source: true}
. - schemaId: removed, as JSON Schema draft-04 is no longer supported.
- strictDefaults, strictKeywords, strictNumbers: it is default now, controlled with
strict
. - uniqueItems: '"uniqueItems" keyword is always validated.
- unknownFormats: the same can be achieved by passing true for formats that need to be ignored via
ajv.addFormat
orformats
option. - cache and serialize: Map is used as cache, schema object as key.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.