fix(deps): update com.networknt:json-schema-validator to 3.0.9 (renovate) #215
No reviewers
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
phoenix-oss/open-service-broker!215
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/networknt.version"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
3.0.8→3.0.9Release Notes
networknt/json-schema-validator (com.networknt:json-schema-validator)
v3.0.9Compare Source
Breaking changes
date-timenow rejects space-separated values such as2020-01-01 12:00:00Zand leap-second strings without an offset such as2016-12-31T23:59:60. Ethlo previously accepted these forms. RFC 3339 requiresT/tand an explicitZ/zor signedHH:MMoffset; callers relying on those spellings must supply the required separator/offset. The fallback already rejected both forms. (#1316)Added
ExecutionConfig.maxEvaluationStepsandmaxEvaluationDepthlimits for validation and schema walking, including walking without assertions. Exhaustion throwsValidationLimitExceededExceptioninstead of returning a partial validity result. Both limits default to unlimited; they bound admitted evaluation steps and schema frames, not work inside a keyword. (#1276, #1289)Changed
nullin validation errors and avoid listing null twice for nullable schemas. #1373JsonMapperFactory.getInstance()andYamlMapperFactory.getInstance()now returnDecimalNodevalues for lossy finite floating-point spellings when reading trees, subject to explicit mapper settings and custom node factories. (#1357)multipleOfnow validate decimal spellings such as9007199254740993.0exactly. Decimal nodes can surface in literals, defaults, examples, annotations and JSON output; finite numeric equality no longer depends on the field name. Lossless doubles and signed zero retain type/sign/serialization. Existing overflow/nonfinite behavior, count-specific precision, explicit mapper settings, custom node factories and scalar/POJO binding policies are retained. This intentionally changes validation where values previously rounded to the same double. (#1357)date-timeformat when format assertions are enabled, while retaining uppercaseTand lowercasetseparators. (#1316, #1331) Thanks @curforeverdate-timespellings with-00:00, offsets through ±23:59 and fractions longer than nine digits when Ethlo is present. Share grammar/range checks while preserving Ethlo's historical leap-second table and the fallback's possible-leap-second policy; inherited historical-table differences remain. (#1316)typeLooseenabled, numericenummembers now match strings by exact decimal value on both master and 2.x:enum: [100]accepts"100","100.0"and"1E+2". Previously master required normalized exponent text while 2.x used plain decimal text. This intentionally broadens accepted numeric spellings. Inputs must follow JSON number syntax; whitespace, leading+, leading integer zeros and numeric separators are rejected. Signed zero and equivalent trailing-zero/exponent forms compare equally. Exponents are scanned with bounded arithmetic without expanding zeros or constructing a large exponent integer. Strict mode, literal string members, container handling, non-finite member text and protected enum conversion hooks retain their existing behavior. The comparison uses the enum node's existing decimal value; precision already lost by schema parsing is not recovered. (#1349)const,enumanduniqueItems, including numbers nested in arrays and objects. Numeric hashing handles extreme decimal scales without overflowing during trailing-zero normalization; non-finite float and double nodes compare consistently. Preserveenumconversion hooks; skip container members during loose string matching and prepare scalar matching values once. (#1307)intrange forminItems,maxItems,minProperties,maxProperties,minLength,maxLength,minContains, andmaxContains. Count-limit error arguments are ungrouped Strings; plain integer limits keep their full decimal spelling, while exponent-form decimals remain bounded in size. Contains annotations use the parsed node's own numeric value and type without int-range coercion. Accepted YAML numeric separators retain their meaning. (#1334, #1346)date-timeformat now checks the date with the rules of thedateformat and the time with the rules of thetimeformat instead ofOffsetDateTime.parse(..). It rejects a time without seconds (2020-01-01T12:00Z), an offset without minutes (+01) and an empty fraction (12:00:00.Z), which Ethlo already rejected, as well as an offset with seconds (+01:00:00). It accepts an offset up to23:59and a fraction longer than nine digits, which RFC 3339 allows, and a leap second at the end of a June 30 or a December 31 in UTC, which it used to reject. Compared with Ethlo, the fallback provides less accurate leap-second validation because it does not check that a leap second was actually inserted on that date. The subsequent shared grammar changes in #1355 also enable these offset/fraction forms with Ethlo and reject space separators on both paths. (#1316, #1337, #1335, #1338) Thanks @Obramstimeformat now rejects a leap second with an hour or minute out of range (24:59:60+01:00,23:89:60+00:30,45:59:60+22:00), which it used to accept. A time without seconds (12:00Z) was already rejected. (#1316, #1337)multipleOfdivisors returned by custom validators, regardless of scale, matching the default conversion. (#1328, #1329) Thanks @PHJ2000multipleOfdivisors in error messages using plain notation when it fits within 32 characters or is no longer thanBigDecimal.toString(), including values returned by custom validators. Check the length before expanding to plain notation to avoid excessive padding for extreme scales. (#1328, #1329) Thanks @PHJ2000MultipleOfValidator.getDivisorandgetDividendnow preserve exact integral and BigDecimal values. Custom validators, including overrides callingsuper, receive these exact values; validation uses hook results without further rounding. Integral dividend scales can change (for example,2.0becomes2), which affects scale-sensitive comparisons in overrides. Mixed integral/Double or Float inputs above 2^53 can produce different results. Precision already lost when parsing floating-point values is tracked separately in #1293. (#1286, #1290) Thanks @PHJ2000$refJSON Pointer targets. Keep container and direct-schema caches separate so direct registry loads retain normal diagnostics regardless of registry load order, including rejection byDisallowUnknownKeywordFactory. Within one schema, a whole-document reference following a JSON Pointer reference can still reuse the container and suppress root diagnostics, including strict-factory rejection. Apply the container annotation fallback after nullable/discriminator special handling and make the container marker volatile. (#1325, #1326)DisallowUnknownKeywordFactory, such fragment loads now succeed instead of throwing on unknown root fields; direct document loads still throw. If the selected schema references the root with$ref: "#", unknown root fields also remain annotations and do not reach the unknown-keyword factory. (#1205, #1323)ExecutionContext.isEvaluationAborted()andgetEvaluationAbort()during cleanup; an empty error slice after abort is not a validity verdict. Subclass builders supporting limits must use the protected builder constructor or forward both limits explicitly, since the legacy seven-argument constructor remains unlimited.Error.getMessageKey()now returns the message key when the schema supplies a custom message, such astypeorrequired, instead of the custom message text. Unresolved$ref,$dynamicRefand$recursiveReferrors returninternal.unresolvedRefinstead ofReference {0} cannot be resolved. UsegetMessage()for the text andisCustomMessage()to detect custom messages. Errors created without a key still use their message pattern as the key. (#1319, #1320)timeformat. (#1308, #1314) Thanks @MoChiUaenaminContainsandmaxContainsbefore Draft 2019-09, and treatmaxContains < minContainsas a validation failure rather than a schema error. (#1303, #1295) Thanks @ItsDeadlyProgrammeruniqueItemsvalidation for non-array inputs and compare items without copying them. (#1297, #1305) Thanks @PHJ2000 and @ItsDeadlyProgrammermultipleOfdivisors and bounds. (#1317, #1287, #1332, #1358)231c34b,377877b,558cc18)95825f3,83905ab,16f3495,f2d22d1,5515315,276fd58)Configuration
📅 Schedule: (in timezone Europe/Zurich)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.