From ce4a88ed365c3d2ff34049b7b75a3c47e1fe42e4 Mon Sep 17 00:00:00 2001 From: Pavan YDG <113893382+pavanydg@users.noreply.github.com> Date: Thu, 6 Feb 2025 09:08:59 +0530 Subject: [PATCH 01/40] added getAllSchema function (#76) --- README.md | 3 +++ lib/get-all-registered-schemas-uris.spec.ts | 25 +++++++++++++++++++++ lib/index.d.ts | 1 + lib/index.js | 2 +- lib/schema.js | 2 ++ 5 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 lib/get-all-registered-schemas-uris.spec.ts diff --git a/README.md b/README.md index ff9a5f1..f29f32f 100644 --- a/README.md +++ b/README.md @@ -201,6 +201,9 @@ Schema, such as `@hyperjump/json-schema/draft-2020-12`. * **unregisterSchema**: (uri: string) => void Remove a schema from the local schema registry. +* **getAllRegisteredSchemaUris**: () => string[] + + This function returns the URIs of all registered schemas * **hasSchema**: (uri: string) => boolean Check if a schema with the given URI is already registered. diff --git a/lib/get-all-registered-schemas-uris.spec.ts b/lib/get-all-registered-schemas-uris.spec.ts new file mode 100644 index 0000000..1a786d7 --- /dev/null +++ b/lib/get-all-registered-schemas-uris.spec.ts @@ -0,0 +1,25 @@ +import { test, expect, describe } from "vitest"; +import { registerSchema, getAllRegisteredSchemaUris } from "../draft-07/index.js"; + + +describe("getAllRegisteredSchemaUris function", () => { + test("should return all registered schema URIs", () => { + const schemaUris = getAllRegisteredSchemaUris(); + expect(schemaUris).toEqual([ + "http://json-schema.org/draft-07/schema" + ]); + }); + + test("should return all schemas along with custom registered schemas", () => { + registerSchema({ + "$id": "http://example.com/custom-schema", + "$schema": "http://json-schema.org/draft-07/schema#" + }); + + const schemaUris = getAllRegisteredSchemaUris(); + expect(schemaUris).toEqual([ + "http://json-schema.org/draft-07/schema", + "http://example.com/custom-schema" + ]); + }); +}); diff --git a/lib/index.d.ts b/lib/index.d.ts index 9832fa6..a88d7c6 100644 --- a/lib/index.d.ts +++ b/lib/index.d.ts @@ -9,6 +9,7 @@ export type SchemaObject = { // eslint-disable-line @typescript-eslint/consisten export const registerSchema: (schema: SchemaObject | boolean, retrievalUri?: string, contextDialectId?: string) => void; export const unregisterSchema: (retrievalUri: string) => void; export const hasSchema: (uri: string) => boolean; +export const getAllRegisteredSchemaUris: () => string[]; /** * @deprecated since 1.7.0. Use registerSchema instead. diff --git a/lib/index.js b/lib/index.js index 4cd5bd6..1c1afe1 100644 --- a/lib/index.js +++ b/lib/index.js @@ -130,7 +130,7 @@ addKeyword(vocabulary); addKeyword(writeOnly); export { addSchema, unregisterSchema, validate, FLAG } from "./core.js"; -export { registerSchema, hasSchema } from "./schema.js"; +export { registerSchema, hasSchema, getAllRegisteredSchemaUris } from "./schema.js"; export { getMetaSchemaOutputFormat, setMetaSchemaOutputFormat, diff --git a/lib/schema.js b/lib/schema.js index 5e73622..b701a0f 100644 --- a/lib/schema.js +++ b/lib/schema.js @@ -59,6 +59,8 @@ export const unregisterSchema = (uri) => { delete schemaRegistry[normalizedUri]; }; +export const getAllRegisteredSchemaUris = () => Object.keys(schemaRegistry); + export const hasSchema = (uri) => uri in schemaRegistry; export const buildSchemaDocument = (schema, id, dialectId, embedded = {}) => { From 05cd6ff0f8884338031538a01a61a0ef9748afd0 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Wed, 5 Feb 2025 19:43:10 -0800 Subject: [PATCH 02/40] 1.11.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0ca46ac..f95ded7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.10.1", + "version": "1.11.0", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From 9b232c65f9c5c084521d314726be3d39fd2393d7 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Wed, 5 Feb 2025 19:51:06 -0800 Subject: [PATCH 03/40] Update node.js versions used in automation --- .github/workflows/nodejs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 7dcb994..680687f 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - node-version: [18.x, 20.x] + node-version: [20.x, 22.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: From 0825eb091d0aab6551806b3bc0df9e9e108fdefd Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Mon, 10 Mar 2025 14:45:03 -0700 Subject: [PATCH 04/40] Fix linting issues --- lib/index.d.ts | 2 +- openapi-3-0/index.d.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/index.d.ts b/lib/index.d.ts index a88d7c6..fb7c5eb 100644 --- a/lib/index.d.ts +++ b/lib/index.d.ts @@ -2,7 +2,7 @@ import type { Json } from "@hyperjump/json-pointer"; export type SchemaFragment = string | number | boolean | null | SchemaObject | SchemaFragment[]; -export type SchemaObject = { // eslint-disable-line @typescript-eslint/consistent-indexed-object-style +export type SchemaObject = { [keyword: string]: SchemaFragment; }; diff --git a/openapi-3-0/index.d.ts b/openapi-3-0/index.d.ts index 8aca186..825de2a 100644 --- a/openapi-3-0/index.d.ts +++ b/openapi-3-0/index.d.ts @@ -57,7 +57,7 @@ type Xml = { wrapped?: boolean; }; -type OpenApi = { +export type OpenApi30 = { openapi: string; info: Info; externalDocs?: ExternalDocs; From 8a7a55967df8c584aff86fcb5cb4cc3ec8d0fce2 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Mon, 31 Mar 2025 10:06:53 -0700 Subject: [PATCH 05/40] Refactor output and annotation handling to fix bug --- README.md | 19 +- annotations/annotated-instance.d.ts | 1 - annotations/annotated-instance.js | 7 - annotations/index.js | 20 +- bundle/generate-snapshots.js | 16 +- .../0176f79e8816433f3b23683ba5f38ace | 16 +- .../01be86475358c8fa8bd0cbb66acffae9 | 16 +- .../0257ca47cb26d95af6cddee31dc7ad4c | 33 +- .../02c66554839e629b28f800fe38f4c622 | 18 +- .../047b47772606c7120c55e3e5a7630890 | 11 +- .../05009caa10a942d85c5fe0515b7eb0d9 | 40 +- .../077aa87e28ba586d7bf9bed115391f1c | 9 +- .../0847cca3f53b9cd12c08b8ab83d7486b | 20 +- .../09363ddcdd594c48891fa5b808f41d8f | 20 +- .../0967a0f89901e6f14b26914653134b1d | 15 +- .../0968dc2e0f7f9d0fb95859803d130bcf | 9 +- .../09b5adea8278afad071a2d7b5ac4fc81 | 28 +- .../09ecbfa9dbd81a38f0984dba2c5dba2f | 40 +- .../0a5429dfef8968c6bd88ac3922f55cbc | 33 +- .../0ada8a1e7e71d8771e5fefbf455bcb0d | 28 +- .../0b6b4d6720813b423142725687ee3573 | 7 +- .../0b798cb59af7fb9cfc7249535bd8c234 | 16 +- .../0c35d06197a49d13face4aa23020ee13 | 20 +- .../0ce5981a970aa2c374dc9921ca3e3745 | 28 +- .../0dcb5cd590f2b70cd9ddbc0ad8f045ce | 22 +- .../0e5d4e29ac0020de6434c0e6250738ec | 40 +- .../0fdaaa6dcec04489e9ad4964be3bf39e | 16 +- .../114681e245a0b42f2313fc2e0315a1e7 | 23 +- .../120a1e86ded8c56db704fe602846c6b8 | 28 +- .../12253ba41692833b0fe811b2f5529805 | 11 +- .../12a929ec4027ac23a3bfd2a485688590 | 20 +- .../12e5d143b07d6a7353a00207cb117789 | 33 +- .../13588b2ac26c9d54b3616b15944012f1 | 20 +- .../139365710fd189f2fd51509dc69cec43 | 16 +- .../1398f4f3aaf34a96688a7768cbf41ff0 | 52 +- .../139eaf7720391e4c1e25605f6e21410f | 20 +- .../140107810716e03ab58f4dcf4e4764e5 | 16 +- .../145eeaee28b6389d709d2c98e008a0da | 33 +- .../14a1fe027d91308e0ad53459d6d36724 | 33 +- .../16362d4681a7fc02b09b9af24ae23e82 | 33 +- .../164201e3f9fb61bd594cc5f47cb94d55 | 22 +- .../17a2e2c02ca51cfc306983ed174445be | 20 +- .../17d84f87c2eae257b78e5a71047a5ad0 | 34 +- .../1839eb3563f23d86ce8b82968a925bc6 | 14 +- .../185e15fd0af7f6485875e6a467f013cf | 24 +- .../19c55f511be1beb3e693bac16d756f4a | 52 +- .../1a625d786c7bb443da8af47f719908da | 30 +- .../1b4dbf42e23483d5bd7ca98b00aaaee0 | 30 +- .../1b50751e8a7dafa55c763c9aec465703 | 33 +- .../1b9f06a2dd38791a0f07e262b40986c0 | 28 +- .../1c1ed0f8ee99ed8ae221aa8cd069ac6c | 16 +- .../1c5b525dd9558bb3bd0db3a72cda5e5e | 23 +- .../1cea49df736e17a985371c89f01452da | 20 +- .../1d8100c94cb9a7cfc0026b535cf41a34 | 40 +- .../1d97116a722902353c4c7c69d7a45df8 | 20 +- .../1ef0aeba519a35c6a083cb650433fc6c | 33 +- .../1efa6ede7b177dcaf2acf457c73b680b | 20 +- .../1fa7f5692e8b36aef495e649b044cab0 | 20 +- .../237670c373245028c385958495661c99 | 16 +- .../23ce37639303c4cdb4fa6dfe040fc0ff | 28 +- .../23cf9422bf26e5159ea8c7fa1a1b43ff | 40 +- .../23e41888dc468f92d7165c0d76363bf5 | 20 +- .../260f9529ba78c8d79d2b84d0b63d2464 | 20 +- .../26ad73a9da1d5b5a6c552b858a9d69c3 | 23 +- .../27ffd8e930b580ee7b546c29856991ec | 23 +- .../28c04cb59d9a3e0d0caacbf60dc8404c | 24 +- .../295e24d541e261e7fc1145930673ec37 | 16 +- .../2a079a2f1d3d38713c5857b5126380e3 | 33 +- .../2a2f29a42be7c37c15ade2a4d3b1d606 | 28 +- .../2ac064532f0fce1c30efb679eed17b8e | 15 +- .../2c8965601028dfe1a687613b46f8ca6f | 9 +- .../2cf8396e0620ac5ec71a5d9a79be3e42 | 28 +- .../2d53e6a2d0101794d6d63def48bfa2fc | 24 +- .../2dea693c807fe392ffd4d0f31bf3e719 | 15 +- .../2e4080f67b91b77b1b5d2147b47c8a2e | 20 +- .../2f48ec33c3279dc7b8a49c068792dc13 | 45 +- .../2f7960c00691f686f3c067cffb02f4c1 | 33 +- .../306aab4965c938883dcdf33ac166c126 | 28 +- .../315fa750fea0c01f430ff0851285d350 | 20 +- .../3223bc30e1c92f0566849c6940bab742 | 33 +- .../33e5e6eebbbb677a7401180f969c9050 | 31 +- .../33f50872f240cb902c6196c518e53d80 | 38 +- .../3473c9bdcb047b6543fb424c8623313e | 20 +- .../3506fd4483c140b60a6ad8b0e7c371f2 | 28 +- .../35a365d04a84908c6a6b71df77a6cfc0 | 20 +- .../361635a018008bcd5f70257cc035a909 | 20 +- .../36b5b64c677a80297dc2d5e932a54b58 | 20 +- .../379f482275fa7144adc6eb8061b633e2 | 21 +- .../37a40c54ccbfb5d2a83bd9ac6b5c117a | 34 +- .../37cf51cc927985382a5a870e89138cc1 | 28 +- .../38e3d0fe6da335bf3be09d75dec08db7 | 28 +- .../395d3d08843ac8abba09eb133e7978cd | 7 +- .../398f49c7510a4ce7675d27f2872a94c8 | 23 +- .../3b583d182b168837010145a6bfc28896 | 33 +- .../3e016af6c2bc7f7658ee0a739c238680 | 23 +- .../3e2d02b8cae2a253ea69ed381a8b9d98 | 23 +- .../3e668d38678948523249b79c5c21b47e | 20 +- .../3e9eede60da0b5be63b9867c4f025f09 | 16 +- .../3f3dee627fbfc887cff9045580b1964d | 28 +- .../40c0113f25d0f0302def3b49c18d7610 | 37 +- .../413b750c53f86e1c95e2c75cc930e84e | 33 +- .../41a68d14acb0dc09c57e948216e5a735 | 33 +- .../441aabbe9efb26a2c634cd494c07aa1a | 28 +- .../4445a88a53e9d8f8d69e8acd369f5254 | 20 +- .../44bbf1c8fe84f62e0fc89472a32441de | 24 +- .../45e4100de0755bfb3b5e7f78acf0d2b1 | 28 +- .../46083f579195b95d9b2928e15f896230 | 33 +- .../46c15f106452fb1e8856066491320b0f | 33 +- .../47dd56964bedafeb0be6f463294df290 | 33 +- .../47f0de21a982f0768ceffb58d44a06e9 | 20 +- .../48b9f39400d58f56b7248e301ad7e7de | 20 +- .../4954d2a7bb33977e76dc4adb10333cb8 | 24 +- .../49e532f70ff30fa595e9aef33fadb7d9 | 20 +- .../4d0ddb9a2f9c4cea66f2d2438f9198ad | 33 +- .../4da98c63a6fb5cf4ccdd1bd18ecee508 | 28 +- .../4dab68f5d2365c143fb07630081c77f6 | 11 +- .../4e5064b8cfdbf3699cb3801b6130d41d | 11 +- .../4e7597c82e2c012d71fc5af69aae016e | 9 +- .../4ee232632e2175763e5b0d9095a0c96f | 16 +- .../4f0fd0ffa38dffa6db8a3d1d5d463bcc | 28 +- .../4f19f85845f2e6b0bccfaf8817df9949 | 45 +- .../50170aa57fcf4eb7d8818e849d9a59a3 | 38 +- .../508ffacb2607d2d9d5e522aa88aa7085 | 7 +- .../50b03a5e75eb98b3e2d3a57b58e9bcaa | 20 +- .../51843eb00b24ce54724d656356a1a3d9 | 7 +- .../53489b6846585e5710b6c31d6794072e | 31 +- .../53c1950ab641eabdb75f07f0ef9eb3a5 | 11 +- .../53f38f6440fff5a02a2fd3114a74cc0a | 20 +- .../5403e6e1f28a5125876658ff3d751cd1 | 14 +- .../540fa5cca68cc5fc017971fe949ec744 | 34 +- .../54140ad057190e00ab9871e4da51e291 | 11 +- .../54608e2ab681d8d36b330e7ce94d0fac | 33 +- .../54e7e0f163e8df9b57359ebfaa226a94 | 9 +- .../57c4f6aefa5b3379d5d51cd4f117df24 | 24 +- .../588ce3c3d051294f32f288dc107aeb2a | 24 +- .../58990e97544d58f01c0480e37a0d68de | 33 +- .../58ba828516dc2a7dd11b211e7b0a4aea | 16 +- .../590bff4705440957e5a8b2ca6d90f7c1 | 9 +- .../59ef6a103c67e9a30f20398cbf777603 | 20 +- .../5b709ee8ce260b37316a856c1dd3af8e | 28 +- .../5cd2ea1dea2487662f9eac9b36f99844 | 20 +- .../5d1169fc5ced59e974bb0c760165a205 | 20 +- .../5e868f5f65688fa850bab82568dd25cf | 45 +- .../5fca886a4f6fbc1b3db0089ad60349f4 | 15 +- .../603a07855d1c473b3008bdcd0cd8f730 | 28 +- .../61200e833299e7e89f2db13461a60700 | 7 +- .../615e7ebc2b2e6d54eaba9fcc4250b963 | 11 +- .../6168882c1056e6815be5413e2a1f5055 | 20 +- .../616cc7e409e5bff800d4b7320389ccd2 | 30 +- .../6183fe3ae5936b60f09dda163ec612f0 | 9 +- .../622f70ca5abdb1c83791e4af90532927 | 45 +- .../62cb227d489063c9e34bd0b20205b3f8 | 28 +- .../631601f0587d028272797790d9a69293 | 20 +- .../63cd868ff1cbf34a8528d4d242558f2a | 24 +- .../64240263623b2ea8361210d15f510542 | 23 +- .../64913f6902288200f4baf65507d25418 | 40 +- .../64c6bad0f116a7630121c60f853d058d | 28 +- .../668a142b92014d8a44b96c8ea8d9bd5a | 33 +- .../66a532315c257b4ea8d0e223eb416c51 | 23 +- .../66c548e3bf559604741d9ed259ed34d7 | 20 +- .../66e9dd8ee0228ecdcf6bd47108b92b3d | 16 +- .../68b09d584199e39d8c997a45df01121f | 33 +- .../68d8c9a93b5ad1e128f083aea3674876 | 7 +- .../6968c38a401b0688b45288e0ec95c885 | 20 +- .../69b106c927b7f7981fd36a8438bace2b | 16 +- .../69c91d8e93aff9925828b4aaa405dcf2 | 24 +- .../6a4ae86f7a8d2c1d88cd2288eaac3e35 | 33 +- .../6a64bc6825952d799e3b90acb9a198f1 | 33 +- .../6ab177eb2011f6de8e7c36352c166bc8 | 33 +- .../6adbb440ad31560a4a6466c5298e3a60 | 20 +- .../6b01a0eaa2125bf3ed257022d3b3afdf | 24 +- .../6b386352a3bdc92c705312c051682d06 | 28 +- .../6c7c3ba005dbd555285361370ee102d8 | 20 +- .../6cdfc10761bf99bf875f463ba7ab3b94 | 45 +- .../6f095742f6db8534ecd5b6ccd293d37e | 28 +- .../6f2d46005bed2363d10c8dc12fb0bfb9 | 20 +- .../6f544c2096b37a690163579f5e728919 | 33 +- .../7167dbda4b0815b291cd8895b4b36a70 | 24 +- .../71e98466e3ed19ba6a721195cc02ce64 | 34 +- .../72bf4a748844347b9d25e2a72729a7eb | 34 +- .../72c6d83249113f6fecb541dcf540f493 | 18 +- .../72f6d93d93ad69b9ecb3f6a6a983d233 | 7 +- .../743690d9928397863e6c3a28937acdd9 | 23 +- .../751061810ec20f303494c7bf3ec7735d | 34 +- .../75b29268d2cceed3c9894ff6a81235ef | 41 +- .../75cd205ad240fa2f9c65a803920cedd6 | 28 +- .../76142a2cb0bab3c94e8411c90b50ac61 | 24 +- .../7617d040bceda39dd57eb9510703ad14 | 16 +- .../76330d600d3b15fd30b669ddc4776ae8 | 16 +- .../771d2d9d4912ce8383b5fd727f395aa6 | 15 +- .../773f35ea98a5b0395940a1a24bb66f63 | 28 +- .../77834ece32f1a31063e01f3ec4fa9053 | 20 +- .../7788783f799c519551627f00d0bb9cec | 44 +- .../77a11629cbbbf038001f606f30435472 | 33 +- .../7870eeab5f8ca9101ad59356ae80d8cf | 28 +- .../795cae84dab790d15cda3a397cfd708a | 33 +- .../7972d01ec0044d17b1ad698a09a20893 | 45 +- .../7a1bcb8d5b6c7d2da38c2fe4b6dfb779 | 44 +- .../7a2c563c23faa7d9aff4f943b978cfde | 28 +- .../7a67d89678cd91c5f1697da5aaa3f9f4 | 20 +- .../7a8b3a53063ecb110cbaff5b1f230335 | 23 +- .../7acc7b0c7341e2712d25763364a74ab2 | 23 +- .../7add5d300125d4643ff534a1883bb27a | 9 +- .../7b7ea518fd130e2b1711645fcd7f2b28 | 30 +- .../7bdde7578270e5f3427150a988a3b1c5 | 18 +- .../7cdc21f87f18840944e4158fa9138d0f | 34 +- .../7e6fb0ca2cd5abd9626db94aa9dc9407 | 7 +- .../7ec506bd89f8ff00deff19be525fbadf | 28 +- .../7ec890dc859d4c3f364263b647178797 | 11 +- .../7ecb6ad65392ca8b8e34aa3dc0c80986 | 40 +- .../7ee3fcb0e871c2ec5895c816f3b9578f | 45 +- .../7ff4acb0cfeaae933408014b06fa6223 | 40 +- .../805bb0a258628a33d224b7bc628be763 | 32 +- .../816e852a34eb476ddff3b64b44e6eea4 | 28 +- .../81b72b7adf719c8bcfb135451475714e | 15 +- .../82a595a4d57fd6c27d073bbb2bbd231b | 24 +- .../8491b9aeef8d7b6daf152fa15d9134a8 | 24 +- .../84cb084a44caafafdc02f9572eae88f1 | 37 +- .../84f573a1e8cb5220e00dc5e3bfc9735f | 34 +- .../8584f2ff7840daccfb1ca94df64eae9b | 27 +- .../85ec6ca162a3b395988152a9b87636a1 | 20 +- .../86f2b8ad3e4813d51ef62a5750efff64 | 23 +- .../875bb0e8c8ced01d3cb05a825ae1a583 | 18 +- .../87a12f711d50d5c2cd39b331b3fc6247 | 33 +- .../8803185fd392d54d139c871df73eb8e2 | 52 +- .../885c2c7e506a7b3994ee0712223fe432 | 33 +- .../893afd0ede51aee1c780d05757e7600a | 11 +- .../89c1a21aabbf3a632255bfcaea39e87f | 31 +- .../8a4bd1aa80fd36bbc9f7625ed7d27c08 | 13 +- .../8b6344a7c7b41f1737bbaa41d14ddcb5 | 20 +- .../8b8822ada3f4768fa7ae924560a73398 | 28 +- .../8c14c43b3216be8b16cae4ab91e59c82 | 16 +- .../8c6ed6685b94d55160ac6be14fe40ed2 | 33 +- .../8d82bbac716ea8d8f1b291a86753d588 | 7 +- .../8e314f133062f33b1b6608ebdf0be4af | 33 +- .../8e80118d776ce2418345110c62c75f24 | 33 +- .../8eec74a4158bc9d69cfda1c4a81dde09 | 23 +- .../8ef87b9bde2992f331bc363fdc9f50c6 | 33 +- .../8f0a2b5d0ec288a53862f2c2a2632e5b | 45 +- .../903105d1609b59a688f9198f51b11b42 | 20 +- .../9058d063196e4a1b6c023ba7d3975114 | 38 +- .../91cad3e4c5e08c84328e7ccbed552f83 | 34 +- .../940e35aea577fa47976f8c6e665f0231 | 16 +- .../9439f14bdd1d80840e0dfec5478b6b0d | 33 +- .../951cf14e0d14a1aadf5bdeaa5ed8d2a1 | 22 +- .../95923c2e8dc7e5a16eecc57b67dbec60 | 20 +- .../9702cb06b3fcc40e1c5c428042d0e060 | 11 +- .../9826a4620381995cfc6e938d00979e95 | 31 +- .../985e90d7802de7c3349c75843168b801 | 11 +- .../990b04d52c40521fb660ded5dc52cdb9 | 33 +- .../9980aa3b3e1c4d06966ec347bffa28d3 | 28 +- .../9a690bdcb6c594657cb8df071954baac | 24 +- .../9b1b667f2966cb8602339540c276802d | 27 +- .../9b8b596cd673f6acb6020628b64323f5 | 22 +- .../9bb39281f85726e4d1295c4d9755bbca | 33 +- .../9c71dbde814fe4eaa77f0d80a8aa9334 | 23 +- .../9c8df8e4b331caba03f41952ff505787 | 20 +- .../9ce4df72dc03b59ccb02217c58c003f6 | 11 +- .../9d6b6408d87908bfd9f4e34adef25d36 | 27 +- .../9e697bcb061c883e23c4e22b4a4b35cb | 28 +- .../9f117911cdae56755cabb2b3f791f912 | 20 +- .../9fa2e59fd4fd83dee0556463433e63d8 | 30 +- .../a0753ba94a4f5d41f8269e93d4822309 | 34 +- .../a08a7afd39db6237f476bcc7a0aea1fc | 23 +- .../a0a9c59df24729670c60574f20bdc496 | 16 +- .../a0bb26611b96a65e2b077977fe95b5e5 | 28 +- .../a1b0605117441433a607b7ffa5f6da29 | 34 +- .../a1b6eafcdd9db65dbb71758ab4b1ed26 | 18 +- .../a2c2de25cdefa86fb7516d81f3d352db | 20 +- .../a33fc45568cb12607871e347eb7777e7 | 11 +- .../a3768a2fdf36c7220d9611da76658217 | 20 +- .../a3f3186aa2664c82fef37f6e07bcb141 | 28 +- .../a44764b7eb85e7c6f7b09ef1bb54dc48 | 7 +- .../a46a44d40b69e5a0f9e59f3d5ac39437 | 22 +- .../a57ab912aaa16c60bad64247e7fccc25 | 28 +- .../a617dea854db2ec149020fb57eefffa8 | 20 +- .../a65239996a536da86d96203ed1ed808a | 15 +- .../a68555395ebef6cb83c0cd53ef7c6f55 | 28 +- .../a6a61ea3cecf6acf4c700df42163592e | 14 +- .../a6c2814c634490d4878583119d08d68e | 23 +- .../a81b835b39da6615a9a766df0fad3301 | 33 +- .../a8c9019b39529bc40550e1d05b4f8e61 | 14 +- .../a8f004bdfb728931d4ef98fb3e581afe | 52 +- .../a90584694ed77c3c92df6cd3eb2f33f3 | 33 +- .../a9d4bc6419c3955f9d42a176452b9d32 | 28 +- .../aa0a0aed0c2fcea342e956346e0ecc0a | 31 +- .../aa594ba1f60117f136d165089ee87318 | 33 +- .../aabb0f472eda564a689ebcb62227cefd | 20 +- .../ab16c3e46683501268ba03cbf4cd96d9 | 38 +- .../ab51f0cdf303246217f87ce8de260742 | 23 +- .../ab6680d8e66585a70b1c57cf8a13d8b6 | 34 +- .../abaacaaa6fe1fc05fa1a011f49757c5e | 31 +- .../ac4bd6c6837c9be7cbf20f2aa62d0287 | 38 +- .../ad33cb560813c2806ea52ca22be9615f | 20 +- .../aedbee8ad8addf69cd8472bc14456020 | 33 +- .../af8674b9aa39f1247c2e84e529a0bb09 | 11 +- .../afa090734d8e0950e64e3edb3b917f7b | 40 +- .../afca16bc3569dd90d68489a24733cc12 | 28 +- .../b17370712f909f37a5634e252a0966cf | 41 +- .../b22b655de44d97ef175d20dd4ea8a1d6 | 7 +- .../b2351c12e1ff2aeba775d10a8b72f47c | 28 +- .../b27bf02bb79fd9e56e796e7b28fd85e7 | 16 +- .../b3385214d199789cf32f79fe3ab32ec8 | 33 +- .../b49beb308c2fbc7f119a5b577643e971 | 44 +- .../b4b1ef9324f3a148a6b4011bf1b4a506 | 20 +- .../b4b4e763abddc958fb3f5e8af1c8eade | 15 +- .../b4fe30347745da383dfd315ab1d6db4c | 28 +- .../b60562622e7fe9fdc5e3b177e9ce3c1d | 20 +- .../b62326334234db25ab5c9e026d673141 | 28 +- .../b645834450a99e98b200bf71d9028ee2 | 33 +- .../b6e79c069c4c8d03af0d6428a6e54f84 | 34 +- .../b7377b8628b8a1223dba9f9126b69c8d | 16 +- .../ba7bac6bfa1fc828bef2f88f76db97ba | 16 +- .../bb05a7e41742256f40fbeb98db8f3c66 | 34 +- .../bc59d5d8465843802e6d0991434a2e69 | 20 +- .../bcda06077e3818330a0949e74f420b1c | 38 +- .../bd32454ebe7d406fa0c33274b38d77cc | 30 +- .../bf1eee446b935f8dc62dfdd9ea492630 | 38 +- .../c008f39e63090dabbe08020cf8d8dd46 | 11 +- .../c0214836ff6291b6c79b285d44c6e28d | 20 +- .../c0332fa29559fa9f027c2590e4178f98 | 28 +- .../c1201e586f9a602a5239f1b86ffe8e07 | 20 +- .../c13c6d3ec550add3c9198ee10f745274 | 16 +- .../c26ca442e0696b06b53a6c155ec67eb0 | 14 +- .../c3451b13501ff3b224ee15977937e916 | 20 +- .../c35cfac1885964922e77c23599754063 | 24 +- .../c38b0c2862655f5254c6d38ac0356a40 | 16 +- .../c58925536db79e6065161661cd4f34d8 | 33 +- .../c6605616702fffa5a9fa340ce154d937 | 30 +- .../c6d06fb320d6f79617d612635443d83c | 20 +- .../c870653fe1bc1d497875de24b9827a34 | 16 +- .../c882c01d6cd8576e85069ad4a184b9fe | 30 +- .../c99370f96c34bd44766404a19c5b7e1e | 28 +- .../c9c0a7cd631374e152a023bff8f06c19 | 20 +- .../ca63dcc3736aca6a5a2f7b31dd6c7807 | 28 +- .../ca9452b58640e30b01a14076ec12ab07 | 24 +- .../ca9b105131a1da20f404c934adca55c8 | 34 +- .../caa032701b2f148bbfe5fef80ee5e0f8 | 28 +- .../cabcd717013e39952a0536e1743a6bae | 18 +- .../cabef581515886b32b2c245b6821641c | 20 +- .../cafd1c9a61687416b8d79498083e7828 | 33 +- .../cdb0a88fdea4d3ecdb9c3d3e533363cc | 31 +- .../cdfca9e5b3d8afb4d0d9485648ba95b7 | 16 +- .../ce36ff9e106c90dbb7eeaeee1f268316 | 16 +- .../cf777f1ce96cfc74d92b461c4e02dc26 | 15 +- .../cf86bf9ab71128c0791c986fd734efe5 | 45 +- .../d1ec6f594b0418ae1fda1e827f208310 | 34 +- .../d38405f98674cd4fd4b8862ce702ab4f | 23 +- .../d3979aa57647e490f961d1127c950769 | 33 +- .../d423ceb9eae60cd4252d097f17c4fad9 | 33 +- .../d429ff8a61f5b5bdc7c46348508b6214 | 20 +- .../d49ce8dfd404f80b630039a3eed57959 | 33 +- .../d4aaa921d685bd413e4cfa71f94411b8 | 38 +- .../d655eb92d0db9fc8d684747b65cd5972 | 28 +- .../d6bb3621c75ec4c6e91b5c1daac3d94d | 33 +- .../d72143df035b835bc32fac5bb557c0cc | 11 +- .../d791ec0e505586d915f031f02cbaf0d7 | 20 +- .../d83287ce809cff873331d44c7808486d | 20 +- .../d8b04b2893d10452427f09967be07fa0 | 34 +- .../d9f68ead0cd9d538348a550546d6c90b | 33 +- .../dbe0aff7883d30f1f9eaa4f1bf4d24ef | 37 +- .../dcaac775bde6c89d70d2ae75671301f7 | 16 +- .../dcd9706d1348bdf7b535e8599c91985b | 28 +- .../dd5cca331ef1047721dee94ac88b6a62 | 7 +- .../ddb9f0e69a28298b274d3a97e0b82dd7 | 33 +- .../df0779461daf1c98199d982f7619f395 | 20 +- .../df5a22f4c0ef094f7f5d83c4d211d23b | 14 +- .../dff71e30962f7f91ab6ce0e21dfac07e | 33 +- .../e0927eea8e952454ee1a008c2b52be7e | 28 +- .../e0e27b1b6ebc852d2ff7e54c764880ae | 16 +- .../e10af529d538f905393cb854c431bdde | 16 +- .../e18a9ec9af7a87a7447cbdc6d7b29c97 | 28 +- .../e262953038466e3ecb384a7203d5afea | 20 +- .../e35a3f6c92398728f6100e796bc47b97 | 28 +- .../e432c6ffcff0a73bc94c0e2172958cbc | 33 +- .../e519f254c67f814e66cae870e6716027 | 20 +- .../e66fdfb1ce638e361cc818449c04d005 | 28 +- .../e7819b00500a9e7b18a09ba725025a56 | 7 +- .../e7a858eadabe6443294e88d900450e1a | 28 +- .../e7fbf50469cd7d557eb80ef75fd68553 | 33 +- .../e8c7875756ba37d64551cf5fba4a3fc3 | 28 +- .../e8d56f9e3d9452446604a0199497ee93 | 28 +- .../ea2352cdf899bac5cce60dc463858bc1 | 20 +- .../eabb0530c2ab75ed428030512d0c4106 | 33 +- .../eb604edda8343fb17d71a50b640b4ecd | 28 +- .../eb94b6c590a57596a16a7e0361ef5abb | 16 +- .../eb9e3a2c6fb03317f6c3202fe6fc04f3 | 16 +- .../ef0836c220d81fc95a69a91860ac048f | 28 +- .../ef1f88368281d0fcc720f3b903a371ab | 24 +- .../efb67e749f72fd7d0700399f29fee1b1 | 28 +- .../f0f22908fd27214728fb0e8a0ee561eb | 30 +- .../f0f565c635e44ddb57b0c049d1b3cc60 | 33 +- .../f11a8fcf101803bbaefad6a90cbb589b | 20 +- .../f1cb3140a093417545ca0dc8064b39b9 | 31 +- .../f1d52a5f0cf477a97747d789aa3ec636 | 20 +- .../f24cfd1473da309b7ba6998cb28e7eda | 33 +- .../f3924868f51b79fd1d70e5d81fd491dd | 20 +- .../f3e0e57930508549d42b59b9e8e8d60f | 20 +- .../f3f0d8bb8e194c2c206ee7a1638f7e60 | 16 +- .../f478763e34af90b0adef3ab65bd4b4c3 | 33 +- .../f4c6697e6f589ec52ec9fd1793a59e09 | 20 +- .../f4cc0472dae406d028ad3ef1c677de84 | 28 +- .../f589ce118d41fb3bf98e4286e583c2a3 | 33 +- .../f63f35706381fef03036110d550cfed5 | 31 +- .../f67a9dc422577f0eb747c04d60584dea | 33 +- .../f70d11826ecd66006b358de0024c957b | 28 +- .../f8fefeddfe23e1ebaad7631687f2812e | 34 +- .../f9d0ba32e21e9b95e9354a8abd27a216 | 24 +- .../fa45239d4aa24a77460d3c610bf01eba | 20 +- .../fb0a093c36fe1f1256ec410fa8fe94ad | 20 +- .../ffa03141986d3883b34f4a27356e5fa4 | 7 +- bundle/test-suite.spec.ts | 18 +- bundle/test-utils.js | 13 - draft-04/additionalItems.js | 8 +- draft-04/dependencies.js | 4 +- draft-04/items.js | 10 +- draft-06/contains.js | 5 +- draft-2020-12/dynamicRef.js | 10 +- lib/core.js | 6 +- lib/experimental.d.ts | 15 +- lib/index.d.ts | 1 + lib/instance.d.ts | 2 - lib/instance.js | 2 - lib/keywords/additionalProperties.js | 8 +- lib/keywords/allOf.js | 8 +- lib/keywords/anyOf.js | 8 +- lib/keywords/conditional.js | 18 +- lib/keywords/contains.js | 10 +- lib/keywords/contentEncoding.js | 9 +- lib/keywords/contentMediaType.js | 9 +- lib/keywords/contentSchema.js | 9 +- lib/keywords/default.js | 9 +- lib/keywords/dependentSchemas.js | 8 +- lib/keywords/deprecated.js | 9 +- lib/keywords/description.js | 9 +- lib/keywords/dynamicRef.js | 6 +- lib/keywords/else.js | 19 +- lib/keywords/examples.js | 9 +- lib/keywords/format.js | 9 +- lib/keywords/if.js | 12 +- lib/keywords/itemPattern.js | 8 +- lib/keywords/items.js | 8 +- lib/keywords/oneOf.js | 12 +- lib/keywords/patternProperties.js | 8 +- lib/keywords/prefixItems.js | 8 +- lib/keywords/properties.js | 8 +- lib/keywords/propertyDependencies.js | 8 +- lib/keywords/propertyNames.js | 4 +- lib/keywords/readOnly.js | 9 +- lib/keywords/then.js | 22 +- lib/keywords/title.js | 9 +- lib/keywords/unevaluatedItems.js | 15 +- lib/keywords/unevaluatedProperties.js | 14 +- lib/keywords/unknown.js | 9 +- lib/keywords/validation.js | 70 +- lib/keywords/writeOnly.js | 9 +- lib/output.js | 41 - lib/output.spec.js | 1267 +++++++++++++++++ openapi-3-0/discriminator.js | 9 +- openapi-3-0/example.js | 9 +- openapi-3-0/externalDocs.js | 9 +- openapi-3-0/xml.js | 9 +- 462 files changed, 6363 insertions(+), 5714 deletions(-) delete mode 100644 lib/output.js create mode 100644 lib/output.spec.js diff --git a/README.md b/README.md index f29f32f..74f195a 100644 --- a/README.md +++ b/README.md @@ -402,9 +402,9 @@ addKeyword({ // ); }, - interpret: (implies, instance, ast, dynamicAnchors, quiet) => { + interpret: (implies, instance, context) => { return implies.reduce((valid, schema) => { - return !valid || Validation.interpret(schema, instance, ast, dynamicAnchors, quiet); + return !valid || Validation.interpret(schema, instance, context); }, true); } }); @@ -524,23 +524,30 @@ These are available from the `@hyperjump/json-schema/experimental` export. is needed for compiling sub-schemas. The `parentSchema` parameter is primarily useful for looking up the value of an adjacent keyword that might effect this one. - * interpret: (compiledKeywordValue: any, instance: JsonNode, ast: AST, dynamicAnchors: object, quiet: boolean, schemaLocation: string) => boolean + * interpret: (compiledKeywordValue: any, instance: JsonNode, context: ValidationContext) => boolean This function takes the value returned by the `compile` function and the instance value that is being validated and returns whether the value is valid or not. The other parameters are only needed for validating sub-schemas. - * collectEvaluatedProperties?: (compiledKeywordValue: any, instance: JsonNode, ast: AST, dynamicAnchors: object) => Set\ | false + * collectEvaluatedProperties?: (compiledKeywordValue: any, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set\ | false If the keyword is an applicator, it will need to implement this function for `unevaluatedProperties` to work as expected. - * collectEvaluatedItems?: (compiledKeywordValue: A, instance: JsonNode, ast: AST, dynamicAnchors: object) => Set\ | false + * collectEvaluatedItems?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set\ | false If the keyword is an applicator, it will need to implement this function for `unevaluatedItems` to work as expected. * collectExternalIds?: (visited: Set\, parentSchema: Browser, schema: Browser) => Set\ If the keyword is an applicator, it will need to implement this - function to work properly with the [bundle](#bundling) feature. + function to work properly with the [bundle](#bundling) feature. + + * **ValidationContext**: object + * ast: AST + * dynamicAnchors: object + * schemaUrl: string + * errors: OutputUnit[] + * annotations: OutputUnit[] * **defineVocabulary**: (id: string, keywords: { [keyword: string]: string }) => void Define a vocabulary that maps keyword name to keyword URIs defined using diff --git a/annotations/annotated-instance.d.ts b/annotations/annotated-instance.d.ts index 6d0882d..78c6e6f 100644 --- a/annotations/annotated-instance.d.ts +++ b/annotations/annotated-instance.d.ts @@ -1,4 +1,3 @@ -export const setAnnotation: (keywordUri: string, schemaLocation: string, value: string) => void; export const annotation: (instance: JsonNode, keyword: string, dialectUri?: string) => A[]; export const annotatedWith: (instance: A, keyword: string, dialectUri?: string) => A[]; diff --git a/annotations/annotated-instance.js b/annotations/annotated-instance.js index 62c2280..3541740 100644 --- a/annotations/annotated-instance.js +++ b/annotations/annotated-instance.js @@ -5,13 +5,6 @@ import { getKeywordId } from "../lib/keywords.js"; const defaultDialectId = "https://json-schema.org/validation"; -export const setAnnotation = (node, keywordUri, schemaLocation, value) => { - if (!(keywordUri in node.annotations)) { - node.annotations[keywordUri] = {}; - } - node.annotations[keywordUri][schemaLocation] = value; -}; - export const annotation = (node, keyword, dialect = defaultDialectId) => { const keywordUri = getKeywordId(keyword, dialect); diff --git a/annotations/index.js b/annotations/index.js index 3725c9d..11465fb 100644 --- a/annotations/index.js +++ b/annotations/index.js @@ -1,5 +1,6 @@ import { ValidationError } from "./validation-error.js"; -import { getSchema, compile, interpret as validate, BASIC } from "../lib/experimental.js"; +import { getSchema, compile, BASIC } from "../lib/experimental.js"; +import Validation from "../lib/keywords/validation.js"; import * as Instance from "../lib/instance.js"; @@ -12,11 +13,24 @@ export const annotate = async (schemaUri, json = undefined, outputFormat = undef }; export const interpret = ({ ast, schemaUri }, instance, outputFormat = BASIC) => { - const result = validate({ ast, schemaUri }, instance, outputFormat); - if (!result.valid) { + const errors = []; + const annotations = []; + const valid = Validation.interpret(schemaUri, instance, { ast, schemaUri, dynamicAnchors: {}, errors, annotations }); + + if (!valid) { + const result = outputFormat === BASIC && !valid ? { valid, errors } : { valid }; throw new ValidationError(result); } + for (const annotation of annotations) { + const node = Instance.get(annotation.instanceLocation, instance); + const keyword = annotation.keyword; + if (!node.annotations[keyword]) { + node.annotations[keyword] = []; + } + node.annotations[keyword].push(annotation.annotation); + } + return instance; }; diff --git a/bundle/generate-snapshots.js b/bundle/generate-snapshots.js index 18e29df..d6cc63e 100644 --- a/bundle/generate-snapshots.js +++ b/bundle/generate-snapshots.js @@ -1,6 +1,6 @@ import { writeFile, mkdir, rm } from "node:fs/promises"; -import { isCompatible, md5, loadSchemas, testSuite, toOutput, unloadSchemas } from "./test-utils.js"; -import { compile, getSchema, interpret } from "../lib/experimental.js"; +import { isCompatible, md5, loadSchemas, testSuite, unloadSchemas } from "./test-utils.js"; +import { compile, getSchema, Validation } from "../lib/experimental.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; import "../draft-2019-09/index.js"; @@ -23,11 +23,17 @@ const snapshotGenerator = async (version, dialect) => { let testIndex = 0; for (const test of testCase.tests) { loadSchemas(testCase, mainSchemaUri, dialect); + const schema = await getSchema(mainSchemaUri); - const compiledSchema = await compile(schema); + const { ast, schemaUri } = await compile(schema); + const instance = Instance.fromJs(test.instance); - interpret(compiledSchema, instance); - const expectedOutput = toOutput(instance); + const errors = []; + const annotations = []; + const valid = Validation.interpret(schemaUri, instance, { ast, schemaUri, dynamicAnchors: {}, errors, annotations }); + + const expectedOutput = { valid, errors, annotations }; + unloadSchemas(testCase, mainSchemaUri); const testId = md5(`${version}|${dialect}|${testCase.description}|${testIndex}`); diff --git a/bundle/snapshots/0176f79e8816433f3b23683ba5f38ace b/bundle/snapshots/0176f79e8816433f3b23683ba5f38ace index fee5312..a434102 100644 --- a/bundle/snapshots/0176f79e8816433f3b23683ba5f38ace +++ b/bundle/snapshots/0176f79e8816433f3b23683ba5f38ace @@ -1,9 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/type", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 b/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 +++ b/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c b/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c index 6bb689f..e5084d8 100644 --- a/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c +++ b/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/unevaluatedProperties": "https://json-schema.org/keyword/unevaluatedProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/unevaluatedProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/unevaluatedProperties": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/02c66554839e629b28f800fe38f4c622 b/bundle/snapshots/02c66554839e629b28f800fe38f4c622 index e796134..c9eb075 100644 --- a/bundle/snapshots/02c66554839e629b28f800fe38f4c622 +++ b/bundle/snapshots/02c66554839e629b28f800fe38f4c622 @@ -1,13 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/not": "https://json-schema.org/keyword/not", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/not", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/not", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/047b47772606c7120c55e3e5a7630890 b/bundle/snapshots/047b47772606c7120c55e3e5a7630890 index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/047b47772606c7120c55e3e5a7630890 +++ b/bundle/snapshots/047b47772606c7120c55e3e5a7630890 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 b/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 index c492b31..f1a01a8 100644 --- a/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 +++ b/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 @@ -1,24 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$defs/string/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/$defs/string": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/077aa87e28ba586d7bf9bed115391f1c b/bundle/snapshots/077aa87e28ba586d7bf9bed115391f1c index 981f9c3..ae69678 100644 --- a/bundle/snapshots/077aa87e28ba586d7bf9bed115391f1c +++ b/bundle/snapshots/077aa87e28ba586d7bf9bed115391f1c @@ -1,8 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b b/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b +++ b/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f b/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f +++ b/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/0967a0f89901e6f14b26914653134b1d b/bundle/snapshots/0967a0f89901e6f14b26914653134b1d index 4e92908..ae69678 100644 --- a/bundle/snapshots/0967a0f89901e6f14b26914653134b1d +++ b/bundle/snapshots/0967a0f89901e6f14b26914653134b1d @@ -1,14 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/foo/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0968dc2e0f7f9d0fb95859803d130bcf b/bundle/snapshots/0968dc2e0f7f9d0fb95859803d130bcf index 981f9c3..ae69678 100644 --- a/bundle/snapshots/0968dc2e0f7f9d0fb95859803d130bcf +++ b/bundle/snapshots/0968dc2e0f7f9d0fb95859803d130bcf @@ -1,8 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 b/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 index a49babc..ddbf717 100644 --- a/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 +++ b/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/patternProperties": "https://json-schema.org/keyword/patternProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f b/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f index c492b31..f1a01a8 100644 --- a/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f +++ b/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f @@ -1,24 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$defs/string/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/$defs/string": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc b/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc index 89bb5e0..907e542 100644 --- a/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc +++ b/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/items/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d b/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d index 500aa0c..895d01f 100644 --- a/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d +++ b/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0b6b4d6720813b423142725687ee3573 b/bundle/snapshots/0b6b4d6720813b423142725687ee3573 index 08e064b..ae69678 100644 --- a/bundle/snapshots/0b6b4d6720813b423142725687ee3573 +++ b/bundle/snapshots/0b6b4d6720813b423142725687ee3573 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0b798cb59af7fb9cfc7249535bd8c234 b/bundle/snapshots/0b798cb59af7fb9cfc7249535bd8c234 index fee5312..a434102 100644 --- a/bundle/snapshots/0b798cb59af7fb9cfc7249535bd8c234 +++ b/bundle/snapshots/0b798cb59af7fb9cfc7249535bd8c234 @@ -1,9 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/type", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 b/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 +++ b/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 b/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 index d937ccf..8899fd4 100644 --- a/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 +++ b/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/additionalProperties": "https://json-schema.org/keyword/additionalProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce b/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce index 5afd60d..8fe3fcb 100644 --- a/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce +++ b/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce @@ -1,14 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/then/maxLength": "https://json-schema.org/keyword/maxLength", - "https://bundler.hyperjump.io/main#/then": "https://json-schema.org/keyword/then", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec b/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec index c492b31..f1a01a8 100644 --- a/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec +++ b/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec @@ -1,24 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$defs/string/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/$defs/string": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0fdaaa6dcec04489e9ad4964be3bf39e b/bundle/snapshots/0fdaaa6dcec04489e9ad4964be3bf39e index fee5312..a434102 100644 --- a/bundle/snapshots/0fdaaa6dcec04489e9ad4964be3bf39e +++ b/bundle/snapshots/0fdaaa6dcec04489e9ad4964be3bf39e @@ -1,9 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/type", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 b/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 index 4e2b7ad..4edc52a 100644 --- a/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 +++ b/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 b/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 +++ b/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/12253ba41692833b0fe811b2f5529805 b/bundle/snapshots/12253ba41692833b0fe811b2f5529805 index 2968a40..ae69678 100644 --- a/bundle/snapshots/12253ba41692833b0fe811b2f5529805 +++ b/bundle/snapshots/12253ba41692833b0fe811b2f5529805 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 b/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 +++ b/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 b/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 +++ b/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 b/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 +++ b/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/139365710fd189f2fd51509dc69cec43 b/bundle/snapshots/139365710fd189f2fd51509dc69cec43 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/139365710fd189f2fd51509dc69cec43 +++ b/bundle/snapshots/139365710fd189f2fd51509dc69cec43 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 b/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 index 40da83b..ea851e5 100644 --- a/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 +++ b/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 @@ -1,31 +1,31 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/tree": { - "errors": { - "https://test.json-schema.org/tree#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/tree/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/tree": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", + "instanceLocation": "#/tree" }, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": { - "https://test.json-schema.org/tree#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/tree#/properties/branch/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/tree#/properties/branch": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$ref", + "instanceLocation": "#/tree/branch" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f b/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f +++ b/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 b/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 +++ b/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da b/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da index 1d76dec..68af94e 100644 --- a/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da +++ b/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 b/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 index 89bb5e0..907e542 100644 --- a/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 +++ b/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/items/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 b/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 index 12dbb5b..00db208 100644 --- a/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 +++ b/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/unevaluatedItems": "https://json-schema.org/keyword/unevaluatedItems", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/unevaluatedItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/unevaluatedItems": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 b/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 index 5afd60d..8fe3fcb 100644 --- a/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 +++ b/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 @@ -1,14 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/then/maxLength": "https://json-schema.org/keyword/maxLength", - "https://bundler.hyperjump.io/main#/then": "https://json-schema.org/keyword/then", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be b/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be +++ b/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 b/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 +++ b/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/1839eb3563f23d86ce8b82968a925bc6 b/bundle/snapshots/1839eb3563f23d86ce8b82968a925bc6 index 5b8cca7..ae69678 100644 --- a/bundle/snapshots/1839eb3563f23d86ce8b82968a925bc6 +++ b/bundle/snapshots/1839eb3563f23d86ce8b82968a925bc6 @@ -1,13 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf b/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf index 1669499..4089504 100644 --- a/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf +++ b/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a b/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a index 7aa83ef..2b212fa 100644 --- a/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a +++ b/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a @@ -1,31 +1,31 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/tree": { - "errors": { - "https://test.json-schema.org/tree#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/tree/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/tree": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", + "instanceLocation": "#/tree" }, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": { - "https://test.json-schema.org/tree#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/tree#/properties/branch/$recursiveRef": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", - "https://test.json-schema.org/tree#/properties/branch": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$recursiveRef", + "instanceLocation": "#/tree/branch" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1a625d786c7bb443da8af47f719908da b/bundle/snapshots/1a625d786c7bb443da8af47f719908da index dd7ab01..0c19cc6 100644 --- a/bundle/snapshots/1a625d786c7bb443da8af47f719908da +++ b/bundle/snapshots/1a625d786c7bb443da8af47f719908da @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/allOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 b/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 index dd7ab01..0c19cc6 100644 --- a/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 +++ b/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/allOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 b/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 +++ b/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 b/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 index a7138e8..36e0abf 100644 --- a/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 +++ b/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1c1ed0f8ee99ed8ae221aa8cd069ac6c b/bundle/snapshots/1c1ed0f8ee99ed8ae221aa8cd069ac6c index e0411e4..ae69678 100644 --- a/bundle/snapshots/1c1ed0f8ee99ed8ae221aa8cd069ac6c +++ b/bundle/snapshots/1c1ed0f8ee99ed8ae221aa8cd069ac6c @@ -1,15 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/conditional/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/conditional/0": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e b/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e index 4e2b7ad..4edc52a 100644 --- a/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e +++ b/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1cea49df736e17a985371c89f01452da b/bundle/snapshots/1cea49df736e17a985371c89f01452da index ecd020e..6a23099 100644 --- a/bundle/snapshots/1cea49df736e17a985371c89f01452da +++ b/bundle/snapshots/1cea49df736e17a985371c89f01452da @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 b/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 index c492b31..f1a01a8 100644 --- a/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 +++ b/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 @@ -1,24 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$defs/string/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/$defs/string": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 b/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 index ecd020e..6a23099 100644 --- a/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 +++ b/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c b/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c index 1d76dec..68af94e 100644 --- a/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c +++ b/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b b/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b +++ b/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 b/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 +++ b/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/237670c373245028c385958495661c99 b/bundle/snapshots/237670c373245028c385958495661c99 index fee5312..a434102 100644 --- a/bundle/snapshots/237670c373245028c385958495661c99 +++ b/bundle/snapshots/237670c373245028c385958495661c99 @@ -1,9 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/type", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff b/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff index 500aa0c..895d01f 100644 --- a/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff +++ b/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff b/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff index c492b31..f1a01a8 100644 --- a/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff +++ b/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff @@ -1,24 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$defs/string/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/$defs/string": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 b/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 +++ b/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 b/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 +++ b/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/26ad73a9da1d5b5a6c552b858a9d69c3 b/bundle/snapshots/26ad73a9da1d5b5a6c552b858a9d69c3 index dfc403a..ae69678 100644 --- a/bundle/snapshots/26ad73a9da1d5b5a6c552b858a9d69c3 +++ b/bundle/snapshots/26ad73a9da1d5b5a6c552b858a9d69c3 @@ -1,22 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/tree": { - "errors": {}, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch/leaf": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/27ffd8e930b580ee7b546c29856991ec b/bundle/snapshots/27ffd8e930b580ee7b546c29856991ec index dfc403a..ae69678 100644 --- a/bundle/snapshots/27ffd8e930b580ee7b546c29856991ec +++ b/bundle/snapshots/27ffd8e930b580ee7b546c29856991ec @@ -1,22 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/tree": { - "errors": {}, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch/leaf": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c b/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c index 1669499..4089504 100644 --- a/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c +++ b/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/295e24d541e261e7fc1145930673ec37 b/bundle/snapshots/295e24d541e261e7fc1145930673ec37 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/295e24d541e261e7fc1145930673ec37 +++ b/bundle/snapshots/295e24d541e261e7fc1145930673ec37 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 b/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 +++ b/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2a2f29a42be7c37c15ade2a4d3b1d606 b/bundle/snapshots/2a2f29a42be7c37c15ade2a4d3b1d606 index 65f7b5d..c44022b 100644 --- a/bundle/snapshots/2a2f29a42be7c37c15ade2a4d3b1d606 +++ b/bundle/snapshots/2a2f29a42be7c37c15ade2a4d3b1d606 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/draft-04/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2ac064532f0fce1c30efb679eed17b8e b/bundle/snapshots/2ac064532f0fce1c30efb679eed17b8e index 1fa4662..ae69678 100644 --- a/bundle/snapshots/2ac064532f0fce1c30efb679eed17b8e +++ b/bundle/snapshots/2ac064532f0fce1c30efb679eed17b8e @@ -1,14 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2c8965601028dfe1a687613b46f8ca6f b/bundle/snapshots/2c8965601028dfe1a687613b46f8ca6f index 981f9c3..ae69678 100644 --- a/bundle/snapshots/2c8965601028dfe1a687613b46f8ca6f +++ b/bundle/snapshots/2c8965601028dfe1a687613b46f8ca6f @@ -1,8 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2cf8396e0620ac5ec71a5d9a79be3e42 b/bundle/snapshots/2cf8396e0620ac5ec71a5d9a79be3e42 index 65f7b5d..c44022b 100644 --- a/bundle/snapshots/2cf8396e0620ac5ec71a5d9a79be3e42 +++ b/bundle/snapshots/2cf8396e0620ac5ec71a5d9a79be3e42 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/draft-04/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc b/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc index 1669499..4089504 100644 --- a/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc +++ b/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/2dea693c807fe392ffd4d0f31bf3e719 b/bundle/snapshots/2dea693c807fe392ffd4d0f31bf3e719 index 4e92908..ae69678 100644 --- a/bundle/snapshots/2dea693c807fe392ffd4d0f31bf3e719 +++ b/bundle/snapshots/2dea693c807fe392ffd4d0f31bf3e719 @@ -1,14 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/foo/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e b/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e +++ b/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 b/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 index 2234191..99f7daa 100644 --- a/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 +++ b/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 @@ -1,22 +1,31 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foobar#/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foo#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foo#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/$ref", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 b/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 index 6bb689f..e5084d8 100644 --- a/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 +++ b/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/unevaluatedProperties": "https://json-schema.org/keyword/unevaluatedProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/unevaluatedProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/unevaluatedProperties": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/306aab4965c938883dcdf33ac166c126 b/bundle/snapshots/306aab4965c938883dcdf33ac166c126 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/306aab4965c938883dcdf33ac166c126 +++ b/bundle/snapshots/306aab4965c938883dcdf33ac166c126 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/315fa750fea0c01f430ff0851285d350 b/bundle/snapshots/315fa750fea0c01f430ff0851285d350 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/315fa750fea0c01f430ff0851285d350 +++ b/bundle/snapshots/315fa750fea0c01f430ff0851285d350 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 b/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 index 84eb7ca..33d448d 100644 --- a/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 +++ b/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/patternProperties": "https://json-schema.org/keyword/patternProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/patternProperties//$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/patternProperties/": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties//$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 b/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 index 1d0ff20..4215904 100644 --- a/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 +++ b/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 @@ -1,18 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/33f50872f240cb902c6196c518e53d80 b/bundle/snapshots/33f50872f240cb902c6196c518e53d80 index ef8bfa2..0fef22e 100644 --- a/bundle/snapshots/33f50872f240cb902c6196c518e53d80 +++ b/bundle/snapshots/33f50872f240cb902c6196c518e53d80 @@ -1,20 +1,26 @@ { - "#": { - "errors": { - "https://test.json-schema.org/list#/items": "https://json-schema.org/keyword/items", - "https://test.json-schema.org/list#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/main#/$defs/element/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/main#/$defs/element": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/list#/items/$dynamicRef": "https://json-schema.org/keyword/dynamicRef", - "https://test.json-schema.org/list#/items": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/items", + "absoluteKeywordLocation": "https://test.json-schema.org/list#/items", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/dynamicRef", + "absoluteKeywordLocation": "https://test.json-schema.org/list#/items/$dynamicRef", + "instanceLocation": "#/0" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/element/type", + "instanceLocation": "#/0" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e b/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e index ecd020e..6a23099 100644 --- a/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e +++ b/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 b/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 index a7138e8..36e0abf 100644 --- a/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 +++ b/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 b/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 index ecd020e..6a23099 100644 --- a/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 +++ b/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/361635a018008bcd5f70257cc035a909 b/bundle/snapshots/361635a018008bcd5f70257cc035a909 index ecd020e..6a23099 100644 --- a/bundle/snapshots/361635a018008bcd5f70257cc035a909 +++ b/bundle/snapshots/361635a018008bcd5f70257cc035a909 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 b/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 index ecd020e..6a23099 100644 --- a/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 +++ b/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 b/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 index eba2d4c..4645f73 100644 --- a/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 +++ b/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 @@ -1,11 +1,16 @@ { - "#": { - "errors": { - "https://test.json-schema.org/short-string#/maxLength": "https://json-schema.org/keyword/maxLength", - "https://test.json-schema.org/short-string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/then": "https://json-schema.org/keyword/then", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a b/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a +++ b/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 b/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 +++ b/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 b/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 index 9bfeabd..9651b40 100644 --- a/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 +++ b/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 @@ -1,13 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/short-string#/maxLength": "https://json-schema.org/keyword/maxLength", - "https://test.json-schema.org/short-string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/else/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/else": "https://json-schema.org/keyword/else", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/else", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/395d3d08843ac8abba09eb133e7978cd b/bundle/snapshots/395d3d08843ac8abba09eb133e7978cd index 08e064b..ae69678 100644 --- a/bundle/snapshots/395d3d08843ac8abba09eb133e7978cd +++ b/bundle/snapshots/395d3d08843ac8abba09eb133e7978cd @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/398f49c7510a4ce7675d27f2872a94c8 b/bundle/snapshots/398f49c7510a4ce7675d27f2872a94c8 index 7776cca..57d7f0c 100644 --- a/bundle/snapshots/398f49c7510a4ce7675d27f2872a94c8 +++ b/bundle/snapshots/398f49c7510a4ce7675d27f2872a94c8 @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/oneOf": "https://json-schema.org/keyword/oneOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/oneOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/3b583d182b168837010145a6bfc28896 b/bundle/snapshots/3b583d182b168837010145a6bfc28896 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/3b583d182b168837010145a6bfc28896 +++ b/bundle/snapshots/3b583d182b168837010145a6bfc28896 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/3e016af6c2bc7f7658ee0a739c238680 b/bundle/snapshots/3e016af6c2bc7f7658ee0a739c238680 index 307d387..6da48e0 100644 --- a/bundle/snapshots/3e016af6c2bc7f7658ee0a739c238680 +++ b/bundle/snapshots/3e016af6c2bc7f7658ee0a739c238680 @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/anyOf": "https://json-schema.org/keyword/anyOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/anyOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/3e2d02b8cae2a253ea69ed381a8b9d98 b/bundle/snapshots/3e2d02b8cae2a253ea69ed381a8b9d98 index 307d387..6da48e0 100644 --- a/bundle/snapshots/3e2d02b8cae2a253ea69ed381a8b9d98 +++ b/bundle/snapshots/3e2d02b8cae2a253ea69ed381a8b9d98 @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/anyOf": "https://json-schema.org/keyword/anyOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/anyOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/3e668d38678948523249b79c5c21b47e b/bundle/snapshots/3e668d38678948523249b79c5c21b47e index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/3e668d38678948523249b79c5c21b47e +++ b/bundle/snapshots/3e668d38678948523249b79c5c21b47e @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 b/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 +++ b/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/3f3dee627fbfc887cff9045580b1964d b/bundle/snapshots/3f3dee627fbfc887cff9045580b1964d index 65f7b5d..c44022b 100644 --- a/bundle/snapshots/3f3dee627fbfc887cff9045580b1964d +++ b/bundle/snapshots/3f3dee627fbfc887cff9045580b1964d @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/draft-04/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 b/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 index 9ded3df..6786fdd 100644 --- a/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 +++ b/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 @@ -1,26 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/dependencies/foo/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#/dependencies/foo": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/dependencies": "https://json-schema.org/keyword/draft-04/dependencies", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/dependencies", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies/foo/properties", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e b/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e index 1d76dec..68af94e 100644 --- a/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e +++ b/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 b/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 index 155d88a..0729aea 100644 --- a/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 +++ b/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/contains": "https://json-schema.org/keyword/contains", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/contains", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/contains/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/contains": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a b/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a index a7138e8..36e0abf 100644 --- a/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a +++ b/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 b/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 +++ b/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de b/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de index fc96902..e6d09c7 100644 --- a/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de +++ b/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/45e4100de0755bfb3b5e7f78acf0d2b1 b/bundle/snapshots/45e4100de0755bfb3b5e7f78acf0d2b1 index 30889dd..b219e4e 100644 --- a/bundle/snapshots/45e4100de0755bfb3b5e7f78acf0d2b1 +++ b/bundle/snapshots/45e4100de0755bfb3b5e7f78acf0d2b1 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/contains": "https://json-schema.org/keyword/draft-06/contains", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-06/contains", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/46083f579195b95d9b2928e15f896230 b/bundle/snapshots/46083f579195b95d9b2928e15f896230 index 155d88a..0729aea 100644 --- a/bundle/snapshots/46083f579195b95d9b2928e15f896230 +++ b/bundle/snapshots/46083f579195b95d9b2928e15f896230 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/contains": "https://json-schema.org/keyword/contains", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/contains", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/contains/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/contains": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/46c15f106452fb1e8856066491320b0f b/bundle/snapshots/46c15f106452fb1e8856066491320b0f index 12dbb5b..00db208 100644 --- a/bundle/snapshots/46c15f106452fb1e8856066491320b0f +++ b/bundle/snapshots/46c15f106452fb1e8856066491320b0f @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/unevaluatedItems": "https://json-schema.org/keyword/unevaluatedItems", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/unevaluatedItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/unevaluatedItems": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/47dd56964bedafeb0be6f463294df290 b/bundle/snapshots/47dd56964bedafeb0be6f463294df290 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/47dd56964bedafeb0be6f463294df290 +++ b/bundle/snapshots/47dd56964bedafeb0be6f463294df290 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 b/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 +++ b/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de b/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de +++ b/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 b/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 index fc96902..e6d09c7 100644 --- a/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 +++ b/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 b/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 +++ b/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad b/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad index 84eb7ca..33d448d 100644 --- a/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad +++ b/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/patternProperties": "https://json-schema.org/keyword/patternProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/patternProperties//$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/patternProperties/": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties//$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 b/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 +++ b/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4dab68f5d2365c143fb07630081c77f6 b/bundle/snapshots/4dab68f5d2365c143fb07630081c77f6 index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/4dab68f5d2365c143fb07630081c77f6 +++ b/bundle/snapshots/4dab68f5d2365c143fb07630081c77f6 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4e5064b8cfdbf3699cb3801b6130d41d b/bundle/snapshots/4e5064b8cfdbf3699cb3801b6130d41d index 2968a40..ae69678 100644 --- a/bundle/snapshots/4e5064b8cfdbf3699cb3801b6130d41d +++ b/bundle/snapshots/4e5064b8cfdbf3699cb3801b6130d41d @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4e7597c82e2c012d71fc5af69aae016e b/bundle/snapshots/4e7597c82e2c012d71fc5af69aae016e index 981f9c3..ae69678 100644 --- a/bundle/snapshots/4e7597c82e2c012d71fc5af69aae016e +++ b/bundle/snapshots/4e7597c82e2c012d71fc5af69aae016e @@ -1,8 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f b/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f +++ b/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc b/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc index 500aa0c..895d01f 100644 --- a/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc +++ b/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 b/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 index 7e0a039..f4f04f9 100644 --- a/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 +++ b/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 @@ -1,22 +1,31 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/allOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foo#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foo#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 b/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 index eb71647..a9496eb 100644 --- a/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 +++ b/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 @@ -1,20 +1,26 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foobar#/allOf": "https://json-schema.org/keyword/allOf", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/allOf", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/508ffacb2607d2d9d5e522aa88aa7085 b/bundle/snapshots/508ffacb2607d2d9d5e522aa88aa7085 index 08e064b..ae69678 100644 --- a/bundle/snapshots/508ffacb2607d2d9d5e522aa88aa7085 +++ b/bundle/snapshots/508ffacb2607d2d9d5e522aa88aa7085 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa b/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa +++ b/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/51843eb00b24ce54724d656356a1a3d9 b/bundle/snapshots/51843eb00b24ce54724d656356a1a3d9 index 08e064b..ae69678 100644 --- a/bundle/snapshots/51843eb00b24ce54724d656356a1a3d9 +++ b/bundle/snapshots/51843eb00b24ce54724d656356a1a3d9 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/53489b6846585e5710b6c31d6794072e b/bundle/snapshots/53489b6846585e5710b6c31d6794072e index 80ec520..c19c855 100644 --- a/bundle/snapshots/53489b6846585e5710b6c31d6794072e +++ b/bundle/snapshots/53489b6846585e5710b6c31d6794072e @@ -1,18 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foobar#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://test.json-schema.org/number#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/number#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/53c1950ab641eabdb75f07f0ef9eb3a5 b/bundle/snapshots/53c1950ab641eabdb75f07f0ef9eb3a5 index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/53c1950ab641eabdb75f07f0ef9eb3a5 +++ b/bundle/snapshots/53c1950ab641eabdb75f07f0ef9eb3a5 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a b/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a index ecd020e..6a23099 100644 --- a/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a +++ b/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/5403e6e1f28a5125876658ff3d751cd1 b/bundle/snapshots/5403e6e1f28a5125876658ff3d751cd1 index 73f2919..ae69678 100644 --- a/bundle/snapshots/5403e6e1f28a5125876658ff3d751cd1 +++ b/bundle/snapshots/5403e6e1f28a5125876658ff3d751cd1 @@ -1,13 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 b/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 +++ b/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/54140ad057190e00ab9871e4da51e291 b/bundle/snapshots/54140ad057190e00ab9871e4da51e291 index 2968a40..ae69678 100644 --- a/bundle/snapshots/54140ad057190e00ab9871e4da51e291 +++ b/bundle/snapshots/54140ad057190e00ab9871e4da51e291 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac b/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac index ad5e154..f2ae468 100644 --- a/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac +++ b/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/54e7e0f163e8df9b57359ebfaa226a94 b/bundle/snapshots/54e7e0f163e8df9b57359ebfaa226a94 index 981f9c3..ae69678 100644 --- a/bundle/snapshots/54e7e0f163e8df9b57359ebfaa226a94 +++ b/bundle/snapshots/54e7e0f163e8df9b57359ebfaa226a94 @@ -1,8 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 b/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 index fc96902..e6d09c7 100644 --- a/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 +++ b/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a b/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a index fc96902..e6d09c7 100644 --- a/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a +++ b/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/58990e97544d58f01c0480e37a0d68de b/bundle/snapshots/58990e97544d58f01c0480e37a0d68de index 1d76dec..68af94e 100644 --- a/bundle/snapshots/58990e97544d58f01c0480e37a0d68de +++ b/bundle/snapshots/58990e97544d58f01c0480e37a0d68de @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea b/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea +++ b/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/590bff4705440957e5a8b2ca6d90f7c1 b/bundle/snapshots/590bff4705440957e5a8b2ca6d90f7c1 index 981f9c3..ae69678 100644 --- a/bundle/snapshots/590bff4705440957e5a8b2ca6d90f7c1 +++ b/bundle/snapshots/590bff4705440957e5a8b2ca6d90f7c1 @@ -1,8 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 b/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 index ecd020e..6a23099 100644 --- a/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 +++ b/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e b/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e index a7138e8..36e0abf 100644 --- a/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e +++ b/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 b/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 +++ b/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 b/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 +++ b/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf b/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf index 7e0a039..f4f04f9 100644 --- a/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf +++ b/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf @@ -1,22 +1,31 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/allOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foo#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foo#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/5fca886a4f6fbc1b3db0089ad60349f4 b/bundle/snapshots/5fca886a4f6fbc1b3db0089ad60349f4 index 1fa4662..ae69678 100644 --- a/bundle/snapshots/5fca886a4f6fbc1b3db0089ad60349f4 +++ b/bundle/snapshots/5fca886a4f6fbc1b3db0089ad60349f4 @@ -1,14 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 b/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 +++ b/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/61200e833299e7e89f2db13461a60700 b/bundle/snapshots/61200e833299e7e89f2db13461a60700 index 08e064b..ae69678 100644 --- a/bundle/snapshots/61200e833299e7e89f2db13461a60700 +++ b/bundle/snapshots/61200e833299e7e89f2db13461a60700 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/615e7ebc2b2e6d54eaba9fcc4250b963 b/bundle/snapshots/615e7ebc2b2e6d54eaba9fcc4250b963 index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/615e7ebc2b2e6d54eaba9fcc4250b963 +++ b/bundle/snapshots/615e7ebc2b2e6d54eaba9fcc4250b963 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 b/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 +++ b/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 b/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 index 885c871..c2c1518 100644 --- a/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 +++ b/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/anyOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/anyOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/anyOf": "https://json-schema.org/keyword/anyOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/anyOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf/0/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6183fe3ae5936b60f09dda163ec612f0 b/bundle/snapshots/6183fe3ae5936b60f09dda163ec612f0 index 981f9c3..ae69678 100644 --- a/bundle/snapshots/6183fe3ae5936b60f09dda163ec612f0 +++ b/bundle/snapshots/6183fe3ae5936b60f09dda163ec612f0 @@ -1,8 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 b/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 index 7e0a039..f4f04f9 100644 --- a/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 +++ b/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 @@ -1,22 +1,31 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/allOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foo#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foo#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 b/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 index a49babc..ddbf717 100644 --- a/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 +++ b/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/patternProperties": "https://json-schema.org/keyword/patternProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/631601f0587d028272797790d9a69293 b/bundle/snapshots/631601f0587d028272797790d9a69293 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/631601f0587d028272797790d9a69293 +++ b/bundle/snapshots/631601f0587d028272797790d9a69293 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a b/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a index fc96902..e6d09c7 100644 --- a/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a +++ b/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/64240263623b2ea8361210d15f510542 b/bundle/snapshots/64240263623b2ea8361210d15f510542 index dfc403a..ae69678 100644 --- a/bundle/snapshots/64240263623b2ea8361210d15f510542 +++ b/bundle/snapshots/64240263623b2ea8361210d15f510542 @@ -1,22 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/tree": { - "errors": {}, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch/leaf": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/64913f6902288200f4baf65507d25418 b/bundle/snapshots/64913f6902288200f4baf65507d25418 index 328f4ef..25aba11 100644 --- a/bundle/snapshots/64913f6902288200f4baf65507d25418 +++ b/bundle/snapshots/64913f6902288200f4baf65507d25418 @@ -1,27 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/tree": { - "errors": { - "https://test.json-schema.org/tree#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree" }, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": { - "https://test.json-schema.org/tree#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/64c6bad0f116a7630121c60f853d058d b/bundle/snapshots/64c6bad0f116a7630121c60f853d058d index a7138e8..36e0abf 100644 --- a/bundle/snapshots/64c6bad0f116a7630121c60f853d058d +++ b/bundle/snapshots/64c6bad0f116a7630121c60f853d058d @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a b/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a index 1d76dec..68af94e 100644 --- a/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a +++ b/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/66a532315c257b4ea8d0e223eb416c51 b/bundle/snapshots/66a532315c257b4ea8d0e223eb416c51 index 7776cca..57d7f0c 100644 --- a/bundle/snapshots/66a532315c257b4ea8d0e223eb416c51 +++ b/bundle/snapshots/66a532315c257b4ea8d0e223eb416c51 @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/oneOf": "https://json-schema.org/keyword/oneOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/oneOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 b/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 index ecd020e..6a23099 100644 --- a/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 +++ b/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d b/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d +++ b/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/68b09d584199e39d8c997a45df01121f b/bundle/snapshots/68b09d584199e39d8c997a45df01121f index 1d76dec..68af94e 100644 --- a/bundle/snapshots/68b09d584199e39d8c997a45df01121f +++ b/bundle/snapshots/68b09d584199e39d8c997a45df01121f @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/68d8c9a93b5ad1e128f083aea3674876 b/bundle/snapshots/68d8c9a93b5ad1e128f083aea3674876 index 08e064b..ae69678 100644 --- a/bundle/snapshots/68d8c9a93b5ad1e128f083aea3674876 +++ b/bundle/snapshots/68d8c9a93b5ad1e128f083aea3674876 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 b/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 +++ b/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b b/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b +++ b/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 b/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 index fc96902..e6d09c7 100644 --- a/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 +++ b/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 b/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 +++ b/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 b/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 +++ b/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 b/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 index 12dbb5b..00db208 100644 --- a/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 +++ b/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/unevaluatedItems": "https://json-schema.org/keyword/unevaluatedItems", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/unevaluatedItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/unevaluatedItems": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 b/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 +++ b/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf b/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf index 1669499..4089504 100644 --- a/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf +++ b/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6b386352a3bdc92c705312c051682d06 b/bundle/snapshots/6b386352a3bdc92c705312c051682d06 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/6b386352a3bdc92c705312c051682d06 +++ b/bundle/snapshots/6b386352a3bdc92c705312c051682d06 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 b/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 index ecd020e..6a23099 100644 --- a/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 +++ b/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 b/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 index 7e0a039..f4f04f9 100644 --- a/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 +++ b/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 @@ -1,22 +1,31 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/allOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foo#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foo#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e b/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e index 500aa0c..895d01f 100644 --- a/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e +++ b/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 b/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 +++ b/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6f544c2096b37a690163579f5e728919 b/bundle/snapshots/6f544c2096b37a690163579f5e728919 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/6f544c2096b37a690163579f5e728919 +++ b/bundle/snapshots/6f544c2096b37a690163579f5e728919 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 b/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 index fc96902..e6d09c7 100644 --- a/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 +++ b/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 b/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 +++ b/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb b/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb +++ b/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/72c6d83249113f6fecb541dcf540f493 b/bundle/snapshots/72c6d83249113f6fecb541dcf540f493 index e796134..c9eb075 100644 --- a/bundle/snapshots/72c6d83249113f6fecb541dcf540f493 +++ b/bundle/snapshots/72c6d83249113f6fecb541dcf540f493 @@ -1,13 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/not": "https://json-schema.org/keyword/not", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/not", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/not", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/72f6d93d93ad69b9ecb3f6a6a983d233 b/bundle/snapshots/72f6d93d93ad69b9ecb3f6a6a983d233 index 08e064b..ae69678 100644 --- a/bundle/snapshots/72f6d93d93ad69b9ecb3f6a6a983d233 +++ b/bundle/snapshots/72f6d93d93ad69b9ecb3f6a6a983d233 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/743690d9928397863e6c3a28937acdd9 b/bundle/snapshots/743690d9928397863e6c3a28937acdd9 index 4e2b7ad..4edc52a 100644 --- a/bundle/snapshots/743690d9928397863e6c3a28937acdd9 +++ b/bundle/snapshots/743690d9928397863e6c3a28937acdd9 @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/751061810ec20f303494c7bf3ec7735d b/bundle/snapshots/751061810ec20f303494c7bf3ec7735d index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/751061810ec20f303494c7bf3ec7735d +++ b/bundle/snapshots/751061810ec20f303494c7bf3ec7735d @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef b/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef index a2db3b6..e71c807 100644 --- a/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef +++ b/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef @@ -1,25 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/tuple#/items": "https://json-schema.org/keyword/draft-04/items", - "https://test.json-schema.org/tuple#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": {} - }, - "#/foo/0": { - "errors": { - "https://test.json-schema.org/tuple#/items/0/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/tuple#/items/0": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items", + "instanceLocation": "#/foo" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items/0/type", + "instanceLocation": "#/foo/0" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/75cd205ad240fa2f9c65a803920cedd6 b/bundle/snapshots/75cd205ad240fa2f9c65a803920cedd6 index 65f7b5d..c44022b 100644 --- a/bundle/snapshots/75cd205ad240fa2f9c65a803920cedd6 +++ b/bundle/snapshots/75cd205ad240fa2f9c65a803920cedd6 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/draft-04/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 b/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 index fc96902..e6d09c7 100644 --- a/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 +++ b/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 b/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 +++ b/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/76330d600d3b15fd30b669ddc4776ae8 b/bundle/snapshots/76330d600d3b15fd30b669ddc4776ae8 index ecdbb38..ae69678 100644 --- a/bundle/snapshots/76330d600d3b15fd30b669ddc4776ae8 +++ b/bundle/snapshots/76330d600d3b15fd30b669ddc4776ae8 @@ -1,15 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/not/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/not": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/771d2d9d4912ce8383b5fd727f395aa6 b/bundle/snapshots/771d2d9d4912ce8383b5fd727f395aa6 index 1fa4662..ae69678 100644 --- a/bundle/snapshots/771d2d9d4912ce8383b5fd727f395aa6 +++ b/bundle/snapshots/771d2d9d4912ce8383b5fd727f395aa6 @@ -1,14 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 b/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 index a7138e8..36e0abf 100644 --- a/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 +++ b/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 b/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 +++ b/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/7788783f799c519551627f00d0bb9cec b/bundle/snapshots/7788783f799c519551627f00d0bb9cec index 2ca0f02..5dc3737 100644 --- a/bundle/snapshots/7788783f799c519551627f00d0bb9cec +++ b/bundle/snapshots/7788783f799c519551627f00d0bb9cec @@ -1,28 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#/dependentSchemas/foo": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/dependentSchemas": "https://json-schema.org/keyword/dependentSchemas", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/dependentSchemas", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref", + "instanceLocation": "#/bar" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/77a11629cbbbf038001f606f30435472 b/bundle/snapshots/77a11629cbbbf038001f606f30435472 index 84d9ffa..ce3cd0a 100644 --- a/bundle/snapshots/77a11629cbbbf038001f606f30435472 +++ b/bundle/snapshots/77a11629cbbbf038001f606f30435472 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/prefixItems": "https://json-schema.org/keyword/prefixItems", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/prefixItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/prefixItems/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/prefixItems/0": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems/0/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf b/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf index 7fbab9f..71ae23c 100644 --- a/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf +++ b/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf @@ -1,13 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/propertyNames": "https://json-schema.org/keyword/propertyNames", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foobar": { - "errors": {}, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", + "instanceLocation": "#/foobar" + }, + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/795cae84dab790d15cda3a397cfd708a b/bundle/snapshots/795cae84dab790d15cda3a397cfd708a index 155d88a..0729aea 100644 --- a/bundle/snapshots/795cae84dab790d15cda3a397cfd708a +++ b/bundle/snapshots/795cae84dab790d15cda3a397cfd708a @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/contains": "https://json-schema.org/keyword/contains", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/contains", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/contains/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/contains": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 b/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 index 7e0a039..f4f04f9 100644 --- a/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 +++ b/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 @@ -1,22 +1,31 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/allOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foo#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foo#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 b/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 index 2ca0f02..5dc3737 100644 --- a/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 +++ b/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 @@ -1,28 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#/dependentSchemas/foo": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/dependentSchemas": "https://json-schema.org/keyword/dependentSchemas", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/dependentSchemas", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref", + "instanceLocation": "#/bar" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde b/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde index 500aa0c..895d01f 100644 --- a/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde +++ b/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 b/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 +++ b/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/7a8b3a53063ecb110cbaff5b1f230335 b/bundle/snapshots/7a8b3a53063ecb110cbaff5b1f230335 index 307d387..6da48e0 100644 --- a/bundle/snapshots/7a8b3a53063ecb110cbaff5b1f230335 +++ b/bundle/snapshots/7a8b3a53063ecb110cbaff5b1f230335 @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/anyOf": "https://json-schema.org/keyword/anyOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/anyOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7acc7b0c7341e2712d25763364a74ab2 b/bundle/snapshots/7acc7b0c7341e2712d25763364a74ab2 index 5d3d1a0..9f7c4de 100644 --- a/bundle/snapshots/7acc7b0c7341e2712d25763364a74ab2 +++ b/bundle/snapshots/7acc7b0c7341e2712d25763364a74ab2 @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/conditional/1/maxLength": "https://json-schema.org/keyword/maxLength", - "https://bundler.hyperjump.io/main#/conditional/1": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/conditional": "https://json-schema.org/keyword/conditional", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/conditional", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/conditional", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/conditional/1/maxLength", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7add5d300125d4643ff534a1883bb27a b/bundle/snapshots/7add5d300125d4643ff534a1883bb27a index 981f9c3..ae69678 100644 --- a/bundle/snapshots/7add5d300125d4643ff534a1883bb27a +++ b/bundle/snapshots/7add5d300125d4643ff534a1883bb27a @@ -1,8 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 b/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 index 0ecf860..2a7df6b 100644 --- a/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 +++ b/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/oneOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/oneOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/oneOf": "https://json-schema.org/keyword/oneOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/oneOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf/0/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7bdde7578270e5f3427150a988a3b1c5 b/bundle/snapshots/7bdde7578270e5f3427150a988a3b1c5 index e796134..c9eb075 100644 --- a/bundle/snapshots/7bdde7578270e5f3427150a988a3b1c5 +++ b/bundle/snapshots/7bdde7578270e5f3427150a988a3b1c5 @@ -1,13 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/not": "https://json-schema.org/keyword/not", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/not", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/not", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f b/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f +++ b/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/7e6fb0ca2cd5abd9626db94aa9dc9407 b/bundle/snapshots/7e6fb0ca2cd5abd9626db94aa9dc9407 index 08e064b..ae69678 100644 --- a/bundle/snapshots/7e6fb0ca2cd5abd9626db94aa9dc9407 +++ b/bundle/snapshots/7e6fb0ca2cd5abd9626db94aa9dc9407 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7ec506bd89f8ff00deff19be525fbadf b/bundle/snapshots/7ec506bd89f8ff00deff19be525fbadf index 30889dd..b219e4e 100644 --- a/bundle/snapshots/7ec506bd89f8ff00deff19be525fbadf +++ b/bundle/snapshots/7ec506bd89f8ff00deff19be525fbadf @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/contains": "https://json-schema.org/keyword/draft-06/contains", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-06/contains", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7ec890dc859d4c3f364263b647178797 b/bundle/snapshots/7ec890dc859d4c3f364263b647178797 index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/7ec890dc859d4c3f364263b647178797 +++ b/bundle/snapshots/7ec890dc859d4c3f364263b647178797 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 b/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 index 328f4ef..25aba11 100644 --- a/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 +++ b/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 @@ -1,27 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/tree": { - "errors": { - "https://test.json-schema.org/tree#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree" }, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": { - "https://test.json-schema.org/tree#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f b/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f index 2234191..99f7daa 100644 --- a/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f +++ b/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f @@ -1,22 +1,31 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foobar#/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foo#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foo#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/$ref", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 b/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 index 328f4ef..25aba11 100644 --- a/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 +++ b/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 @@ -1,27 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/tree": { - "errors": { - "https://test.json-schema.org/tree#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree" }, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": { - "https://test.json-schema.org/tree#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/805bb0a258628a33d224b7bc628be763 b/bundle/snapshots/805bb0a258628a33d224b7bc628be763 index 56fc4fc..857d9a9 100644 --- a/bundle/snapshots/805bb0a258628a33d224b7bc628be763 +++ b/bundle/snapshots/805bb0a258628a33d224b7bc628be763 @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/require-baz#/required": "https://json-schema.org/keyword/required", - "https://test.json-schema.org/require-baz#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/propertyDependencies/foo/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/propertyDependencies/foo/bar": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/propertyDependencies": "https://json-schema.org/keyword/propertyDependencies", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/propertyDependencies", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyDependencies", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyDependencies/foo/bar/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/required", + "absoluteKeywordLocation": "https://test.json-schema.org/require-baz#/required", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 b/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 +++ b/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/81b72b7adf719c8bcfb135451475714e b/bundle/snapshots/81b72b7adf719c8bcfb135451475714e index 1fa4662..ae69678 100644 --- a/bundle/snapshots/81b72b7adf719c8bcfb135451475714e +++ b/bundle/snapshots/81b72b7adf719c8bcfb135451475714e @@ -1,14 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b b/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b index 1669499..4089504 100644 --- a/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b +++ b/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/8491b9aeef8d7b6daf152fa15d9134a8 b/bundle/snapshots/8491b9aeef8d7b6daf152fa15d9134a8 index 5644a89..a434102 100644 --- a/bundle/snapshots/8491b9aeef8d7b6daf152fa15d9134a8 +++ b/bundle/snapshots/8491b9aeef8d7b6daf152fa15d9134a8 @@ -1,17 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/foo/0": { - "errors": {}, - "annotations": {} - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/type", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 b/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 index 9ded3df..6786fdd 100644 --- a/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 +++ b/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 @@ -1,26 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/dependencies/foo/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#/dependencies/foo": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/dependencies": "https://json-schema.org/keyword/draft-04/dependencies", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/dependencies", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies/foo/properties", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f b/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f +++ b/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b b/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b index 4509088..7d83c6f 100644 --- a/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b +++ b/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b @@ -1,12 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/short-string#/maxLength": "https://json-schema.org/keyword/maxLength", - "https://test.json-schema.org/short-string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/then/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/then": "https://json-schema.org/keyword/then", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 b/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 +++ b/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/86f2b8ad3e4813d51ef62a5750efff64 b/bundle/snapshots/86f2b8ad3e4813d51ef62a5750efff64 index dfc403a..ae69678 100644 --- a/bundle/snapshots/86f2b8ad3e4813d51ef62a5750efff64 +++ b/bundle/snapshots/86f2b8ad3e4813d51ef62a5750efff64 @@ -1,22 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/tree": { - "errors": {}, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch/leaf": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/875bb0e8c8ced01d3cb05a825ae1a583 b/bundle/snapshots/875bb0e8c8ced01d3cb05a825ae1a583 index e796134..c9eb075 100644 --- a/bundle/snapshots/875bb0e8c8ced01d3cb05a825ae1a583 +++ b/bundle/snapshots/875bb0e8c8ced01d3cb05a825ae1a583 @@ -1,13 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/not": "https://json-schema.org/keyword/not", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/not", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/not", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 b/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 index 6bb689f..e5084d8 100644 --- a/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 +++ b/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/unevaluatedProperties": "https://json-schema.org/keyword/unevaluatedProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/unevaluatedProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/unevaluatedProperties": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 b/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 index 40da83b..ea851e5 100644 --- a/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 +++ b/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 @@ -1,31 +1,31 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/tree": { - "errors": { - "https://test.json-schema.org/tree#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/tree/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/tree": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", + "instanceLocation": "#/tree" }, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": { - "https://test.json-schema.org/tree#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/tree#/properties/branch/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/tree#/properties/branch": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$ref", + "instanceLocation": "#/tree/branch" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 b/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 +++ b/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/893afd0ede51aee1c780d05757e7600a b/bundle/snapshots/893afd0ede51aee1c780d05757e7600a index 2968a40..ae69678 100644 --- a/bundle/snapshots/893afd0ede51aee1c780d05757e7600a +++ b/bundle/snapshots/893afd0ede51aee1c780d05757e7600a @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f b/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f index 1d0ff20..4215904 100644 --- a/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f +++ b/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f @@ -1,18 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8a4bd1aa80fd36bbc9f7625ed7d27c08 b/bundle/snapshots/8a4bd1aa80fd36bbc9f7625ed7d27c08 index f2172f0..ae69678 100644 --- a/bundle/snapshots/8a4bd1aa80fd36bbc9f7625ed7d27c08 +++ b/bundle/snapshots/8a4bd1aa80fd36bbc9f7625ed7d27c08 @@ -1,12 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 b/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 index ecd020e..6a23099 100644 --- a/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 +++ b/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 b/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 index d937ccf..8899fd4 100644 --- a/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 +++ b/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/additionalProperties": "https://json-schema.org/keyword/additionalProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 b/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 +++ b/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 b/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 +++ b/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8d82bbac716ea8d8f1b291a86753d588 b/bundle/snapshots/8d82bbac716ea8d8f1b291a86753d588 index 08e064b..ae69678 100644 --- a/bundle/snapshots/8d82bbac716ea8d8f1b291a86753d588 +++ b/bundle/snapshots/8d82bbac716ea8d8f1b291a86753d588 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af b/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af index 1d76dec..68af94e 100644 --- a/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af +++ b/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8e80118d776ce2418345110c62c75f24 b/bundle/snapshots/8e80118d776ce2418345110c62c75f24 index 514b60b..1253bb7 100644 --- a/bundle/snapshots/8e80118d776ce2418345110c62c75f24 +++ b/bundle/snapshots/8e80118d776ce2418345110c62c75f24 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/draft-04/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/items/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8eec74a4158bc9d69cfda1c4a81dde09 b/bundle/snapshots/8eec74a4158bc9d69cfda1c4a81dde09 index dfc403a..ae69678 100644 --- a/bundle/snapshots/8eec74a4158bc9d69cfda1c4a81dde09 +++ b/bundle/snapshots/8eec74a4158bc9d69cfda1c4a81dde09 @@ -1,22 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/tree": { - "errors": {}, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch/leaf": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 b/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 +++ b/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b b/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b index 7e0a039..f4f04f9 100644 --- a/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b +++ b/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b @@ -1,22 +1,31 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/allOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foo#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foo#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/903105d1609b59a688f9198f51b11b42 b/bundle/snapshots/903105d1609b59a688f9198f51b11b42 index ecd020e..6a23099 100644 --- a/bundle/snapshots/903105d1609b59a688f9198f51b11b42 +++ b/bundle/snapshots/903105d1609b59a688f9198f51b11b42 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 b/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 index 0ac23db..75f1f8a 100644 --- a/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 +++ b/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 @@ -1,20 +1,26 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foobar#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://test.json-schema.org/number#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/number#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foobar#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foobar#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties/bar/$ref", + "instanceLocation": "#/bar" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 b/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 +++ b/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 b/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 +++ b/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d b/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d index ad5e154..f2ae468 100644 --- a/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d +++ b/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 b/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 index 5afd60d..8fe3fcb 100644 --- a/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 +++ b/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 @@ -1,14 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/then/maxLength": "https://json-schema.org/keyword/maxLength", - "https://bundler.hyperjump.io/main#/then": "https://json-schema.org/keyword/then", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 b/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 index ecd020e..6a23099 100644 --- a/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 +++ b/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/9702cb06b3fcc40e1c5c428042d0e060 b/bundle/snapshots/9702cb06b3fcc40e1c5c428042d0e060 index 2968a40..ae69678 100644 --- a/bundle/snapshots/9702cb06b3fcc40e1c5c428042d0e060 +++ b/bundle/snapshots/9702cb06b3fcc40e1c5c428042d0e060 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9826a4620381995cfc6e938d00979e95 b/bundle/snapshots/9826a4620381995cfc6e938d00979e95 index 80ec520..c19c855 100644 --- a/bundle/snapshots/9826a4620381995cfc6e938d00979e95 +++ b/bundle/snapshots/9826a4620381995cfc6e938d00979e95 @@ -1,18 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foobar#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://test.json-schema.org/number#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/number#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/985e90d7802de7c3349c75843168b801 b/bundle/snapshots/985e90d7802de7c3349c75843168b801 index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/985e90d7802de7c3349c75843168b801 +++ b/bundle/snapshots/985e90d7802de7c3349c75843168b801 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 b/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 +++ b/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 b/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 index a7138e8..36e0abf 100644 --- a/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 +++ b/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9a690bdcb6c594657cb8df071954baac b/bundle/snapshots/9a690bdcb6c594657cb8df071954baac index fc96902..e6d09c7 100644 --- a/bundle/snapshots/9a690bdcb6c594657cb8df071954baac +++ b/bundle/snapshots/9a690bdcb6c594657cb8df071954baac @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/9b1b667f2966cb8602339540c276802d b/bundle/snapshots/9b1b667f2966cb8602339540c276802d index 4509088..7d83c6f 100644 --- a/bundle/snapshots/9b1b667f2966cb8602339540c276802d +++ b/bundle/snapshots/9b1b667f2966cb8602339540c276802d @@ -1,12 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/short-string#/maxLength": "https://json-schema.org/keyword/maxLength", - "https://test.json-schema.org/short-string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/then/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/then": "https://json-schema.org/keyword/then", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 b/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 index 25ca250..a03c701 100644 --- a/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 +++ b/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 @@ -1,12 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/short-string#/maxLength": "https://json-schema.org/keyword/maxLength", - "https://test.json-schema.org/short-string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/else": "https://json-schema.org/keyword/else", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/else", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca b/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca index 28cd6dd..2d0485c 100644 --- a/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca +++ b/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/additionalProperties": "https://json-schema.org/keyword/additionalProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/additionalProperties/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/additionalProperties": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9c71dbde814fe4eaa77f0d80a8aa9334 b/bundle/snapshots/9c71dbde814fe4eaa77f0d80a8aa9334 index dfc403a..ae69678 100644 --- a/bundle/snapshots/9c71dbde814fe4eaa77f0d80a8aa9334 +++ b/bundle/snapshots/9c71dbde814fe4eaa77f0d80a8aa9334 @@ -1,22 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/tree": { - "errors": {}, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch/leaf": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 b/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 +++ b/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/9ce4df72dc03b59ccb02217c58c003f6 b/bundle/snapshots/9ce4df72dc03b59ccb02217c58c003f6 index 2968a40..ae69678 100644 --- a/bundle/snapshots/9ce4df72dc03b59ccb02217c58c003f6 +++ b/bundle/snapshots/9ce4df72dc03b59ccb02217c58c003f6 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 b/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 index 4509088..7d83c6f 100644 --- a/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 +++ b/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 @@ -1,12 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/short-string#/maxLength": "https://json-schema.org/keyword/maxLength", - "https://test.json-schema.org/short-string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/then/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/then": "https://json-schema.org/keyword/then", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb b/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb index a7138e8..36e0abf 100644 --- a/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb +++ b/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 b/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 +++ b/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 b/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 index 0ecf860..2a7df6b 100644 --- a/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 +++ b/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/oneOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/oneOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/oneOf": "https://json-schema.org/keyword/oneOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/oneOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf/0/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 b/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 +++ b/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc b/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc index 7fbab9f..457853d 100644 --- a/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc +++ b/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc @@ -1,13 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/propertyNames": "https://json-schema.org/keyword/propertyNames", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foobar": { - "errors": {}, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 b/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 +++ b/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 b/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 +++ b/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 b/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 +++ b/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a1b6eafcdd9db65dbb71758ab4b1ed26 b/bundle/snapshots/a1b6eafcdd9db65dbb71758ab4b1ed26 index e796134..c9eb075 100644 --- a/bundle/snapshots/a1b6eafcdd9db65dbb71758ab4b1ed26 +++ b/bundle/snapshots/a1b6eafcdd9db65dbb71758ab4b1ed26 @@ -1,13 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/not": "https://json-schema.org/keyword/not", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/not", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/not", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db b/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db index ecd020e..6a23099 100644 --- a/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db +++ b/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a33fc45568cb12607871e347eb7777e7 b/bundle/snapshots/a33fc45568cb12607871e347eb7777e7 index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/a33fc45568cb12607871e347eb7777e7 +++ b/bundle/snapshots/a33fc45568cb12607871e347eb7777e7 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 b/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 +++ b/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 b/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 +++ b/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a44764b7eb85e7c6f7b09ef1bb54dc48 b/bundle/snapshots/a44764b7eb85e7c6f7b09ef1bb54dc48 index 08e064b..ae69678 100644 --- a/bundle/snapshots/a44764b7eb85e7c6f7b09ef1bb54dc48 +++ b/bundle/snapshots/a44764b7eb85e7c6f7b09ef1bb54dc48 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 b/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 index 5afd60d..8fe3fcb 100644 --- a/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 +++ b/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 @@ -1,14 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/then/maxLength": "https://json-schema.org/keyword/maxLength", - "https://bundler.hyperjump.io/main#/then": "https://json-schema.org/keyword/then", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 b/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 +++ b/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 b/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 index ecd020e..6a23099 100644 --- a/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 +++ b/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a65239996a536da86d96203ed1ed808a b/bundle/snapshots/a65239996a536da86d96203ed1ed808a index 1fa4662..ae69678 100644 --- a/bundle/snapshots/a65239996a536da86d96203ed1ed808a +++ b/bundle/snapshots/a65239996a536da86d96203ed1ed808a @@ -1,14 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 b/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 +++ b/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a6a61ea3cecf6acf4c700df42163592e b/bundle/snapshots/a6a61ea3cecf6acf4c700df42163592e index 5b8cca7..ae69678 100644 --- a/bundle/snapshots/a6a61ea3cecf6acf4c700df42163592e +++ b/bundle/snapshots/a6a61ea3cecf6acf4c700df42163592e @@ -1,13 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a6c2814c634490d4878583119d08d68e b/bundle/snapshots/a6c2814c634490d4878583119d08d68e index 7776cca..57d7f0c 100644 --- a/bundle/snapshots/a6c2814c634490d4878583119d08d68e +++ b/bundle/snapshots/a6c2814c634490d4878583119d08d68e @@ -1,15 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/oneOf": "https://json-schema.org/keyword/oneOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/oneOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 b/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 +++ b/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a8c9019b39529bc40550e1d05b4f8e61 b/bundle/snapshots/a8c9019b39529bc40550e1d05b4f8e61 index 73f2919..ae69678 100644 --- a/bundle/snapshots/a8c9019b39529bc40550e1d05b4f8e61 +++ b/bundle/snapshots/a8c9019b39529bc40550e1d05b4f8e61 @@ -1,13 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe b/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe index 40da83b..ea851e5 100644 --- a/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe +++ b/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe @@ -1,31 +1,31 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/tree": { - "errors": { - "https://test.json-schema.org/tree#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/tree/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/tree": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", + "instanceLocation": "#/tree" }, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": { - "https://test.json-schema.org/tree#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/tree#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/tree#/properties/branch/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/tree#/properties/branch": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$ref", + "instanceLocation": "#/tree/branch" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 b/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 index 28cd6dd..2d0485c 100644 --- a/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 +++ b/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/additionalProperties": "https://json-schema.org/keyword/additionalProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/additionalProperties/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/additionalProperties": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 b/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 index a7138e8..36e0abf 100644 --- a/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 +++ b/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a b/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a index 1d0ff20..4215904 100644 --- a/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a +++ b/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a @@ -1,18 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/aa594ba1f60117f136d165089ee87318 b/bundle/snapshots/aa594ba1f60117f136d165089ee87318 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/aa594ba1f60117f136d165089ee87318 +++ b/bundle/snapshots/aa594ba1f60117f136d165089ee87318 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd b/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd +++ b/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 b/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 index eb71647..a9496eb 100644 --- a/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 +++ b/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 @@ -1,20 +1,26 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foobar#/allOf": "https://json-schema.org/keyword/allOf", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/allOf", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 b/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 index 7fbab9f..457853d 100644 --- a/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 +++ b/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 @@ -1,13 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/propertyNames": "https://json-schema.org/keyword/propertyNames", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foobar": { - "errors": {}, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 b/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 +++ b/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e b/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e index 1d0ff20..4215904 100644 --- a/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e +++ b/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e @@ -1,18 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 b/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 index eb71647..a9496eb 100644 --- a/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 +++ b/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 @@ -1,20 +1,26 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foobar#/allOf": "https://json-schema.org/keyword/allOf", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/allOf", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f b/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f +++ b/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 b/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 index 28cd6dd..2d0485c 100644 --- a/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 +++ b/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/additionalProperties": "https://json-schema.org/keyword/additionalProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/additionalProperties/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/additionalProperties": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/af8674b9aa39f1247c2e84e529a0bb09 b/bundle/snapshots/af8674b9aa39f1247c2e84e529a0bb09 index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/af8674b9aa39f1247c2e84e529a0bb09 +++ b/bundle/snapshots/af8674b9aa39f1247c2e84e529a0bb09 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b b/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b index c492b31..f1a01a8 100644 --- a/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b +++ b/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b @@ -1,24 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$defs/string/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/$defs/string": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/afca16bc3569dd90d68489a24733cc12 b/bundle/snapshots/afca16bc3569dd90d68489a24733cc12 index 65f7b5d..c44022b 100644 --- a/bundle/snapshots/afca16bc3569dd90d68489a24733cc12 +++ b/bundle/snapshots/afca16bc3569dd90d68489a24733cc12 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/draft-04/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b17370712f909f37a5634e252a0966cf b/bundle/snapshots/b17370712f909f37a5634e252a0966cf index a2db3b6..e71c807 100644 --- a/bundle/snapshots/b17370712f909f37a5634e252a0966cf +++ b/bundle/snapshots/b17370712f909f37a5634e252a0966cf @@ -1,25 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/tuple#/items": "https://json-schema.org/keyword/draft-04/items", - "https://test.json-schema.org/tuple#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": {} - }, - "#/foo/0": { - "errors": { - "https://test.json-schema.org/tuple#/items/0/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/tuple#/items/0": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items", + "instanceLocation": "#/foo" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items/0/type", + "instanceLocation": "#/foo/0" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b22b655de44d97ef175d20dd4ea8a1d6 b/bundle/snapshots/b22b655de44d97ef175d20dd4ea8a1d6 index 08e064b..ae69678 100644 --- a/bundle/snapshots/b22b655de44d97ef175d20dd4ea8a1d6 +++ b/bundle/snapshots/b22b655de44d97ef175d20dd4ea8a1d6 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c b/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c index 500aa0c..895d01f 100644 --- a/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c +++ b/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b27bf02bb79fd9e56e796e7b28fd85e7 b/bundle/snapshots/b27bf02bb79fd9e56e796e7b28fd85e7 index fee5312..a434102 100644 --- a/bundle/snapshots/b27bf02bb79fd9e56e796e7b28fd85e7 +++ b/bundle/snapshots/b27bf02bb79fd9e56e796e7b28fd85e7 @@ -1,9 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/type", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 b/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 +++ b/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 b/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 index 2ca0f02..5dc3737 100644 --- a/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 +++ b/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 @@ -1,28 +1,26 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#/dependentSchemas/foo": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/dependentSchemas": "https://json-schema.org/keyword/dependentSchemas", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/dependentSchemas", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref", + "instanceLocation": "#/bar" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 b/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 index ecd020e..6a23099 100644 --- a/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 +++ b/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/b4b4e763abddc958fb3f5e8af1c8eade b/bundle/snapshots/b4b4e763abddc958fb3f5e8af1c8eade index 1fa4662..ae69678 100644 --- a/bundle/snapshots/b4b4e763abddc958fb3f5e8af1c8eade +++ b/bundle/snapshots/b4b4e763abddc958fb3f5e8af1c8eade @@ -1,14 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c b/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c index 500aa0c..895d01f 100644 --- a/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c +++ b/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d b/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d +++ b/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/b62326334234db25ab5c9e026d673141 b/bundle/snapshots/b62326334234db25ab5c9e026d673141 index a7138e8..36e0abf 100644 --- a/bundle/snapshots/b62326334234db25ab5c9e026d673141 +++ b/bundle/snapshots/b62326334234db25ab5c9e026d673141 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 b/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 +++ b/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 b/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 +++ b/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d b/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d +++ b/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba b/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba +++ b/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 b/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 +++ b/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 b/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 +++ b/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/bcda06077e3818330a0949e74f420b1c b/bundle/snapshots/bcda06077e3818330a0949e74f420b1c index 0ac23db..75f1f8a 100644 --- a/bundle/snapshots/bcda06077e3818330a0949e74f420b1c +++ b/bundle/snapshots/bcda06077e3818330a0949e74f420b1c @@ -1,20 +1,26 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foobar#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://test.json-schema.org/number#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/number#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foobar#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foobar#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties/bar/$ref", + "instanceLocation": "#/bar" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc b/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc index 0ecf860..2a7df6b 100644 --- a/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc +++ b/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/oneOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/oneOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/oneOf": "https://json-schema.org/keyword/oneOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/oneOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf/0/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 b/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 index a5dec88..48dcd18 100644 --- a/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 +++ b/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 @@ -1,20 +1,26 @@ { - "#": { - "errors": { - "https://test.json-schema.org/list#/items": "https://json-schema.org/keyword/items", - "https://test.json-schema.org/list#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/main#/$defs/element/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/main#/$defs/element": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/list#/items/$dynamicRef": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", - "https://test.json-schema.org/list#/items": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/items", + "absoluteKeywordLocation": "https://test.json-schema.org/list#/items", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", + "absoluteKeywordLocation": "https://test.json-schema.org/list#/items/$dynamicRef", + "instanceLocation": "#/0" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/element/type", + "instanceLocation": "#/0" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c008f39e63090dabbe08020cf8d8dd46 b/bundle/snapshots/c008f39e63090dabbe08020cf8d8dd46 index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/c008f39e63090dabbe08020cf8d8dd46 +++ b/bundle/snapshots/c008f39e63090dabbe08020cf8d8dd46 @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d b/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d index ecd020e..6a23099 100644 --- a/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d +++ b/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 b/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 index 9bfeabd..9651b40 100644 --- a/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 +++ b/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 @@ -1,13 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/short-string#/maxLength": "https://json-schema.org/keyword/maxLength", - "https://test.json-schema.org/short-string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/else/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/else": "https://json-schema.org/keyword/else", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/else", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 b/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 +++ b/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 b/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 +++ b/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c26ca442e0696b06b53a6c155ec67eb0 b/bundle/snapshots/c26ca442e0696b06b53a6c155ec67eb0 index 5b8cca7..ae69678 100644 --- a/bundle/snapshots/c26ca442e0696b06b53a6c155ec67eb0 +++ b/bundle/snapshots/c26ca442e0696b06b53a6c155ec67eb0 @@ -1,13 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c3451b13501ff3b224ee15977937e916 b/bundle/snapshots/c3451b13501ff3b224ee15977937e916 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/c3451b13501ff3b224ee15977937e916 +++ b/bundle/snapshots/c3451b13501ff3b224ee15977937e916 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c35cfac1885964922e77c23599754063 b/bundle/snapshots/c35cfac1885964922e77c23599754063 index fc96902..e6d09c7 100644 --- a/bundle/snapshots/c35cfac1885964922e77c23599754063 +++ b/bundle/snapshots/c35cfac1885964922e77c23599754063 @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 b/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 +++ b/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c58925536db79e6065161661cd4f34d8 b/bundle/snapshots/c58925536db79e6065161661cd4f34d8 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/c58925536db79e6065161661cd4f34d8 +++ b/bundle/snapshots/c58925536db79e6065161661cd4f34d8 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 b/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 index 885c871..c2c1518 100644 --- a/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 +++ b/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/anyOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/anyOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/anyOf": "https://json-schema.org/keyword/anyOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/anyOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf/0/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c6d06fb320d6f79617d612635443d83c b/bundle/snapshots/c6d06fb320d6f79617d612635443d83c index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/c6d06fb320d6f79617d612635443d83c +++ b/bundle/snapshots/c6d06fb320d6f79617d612635443d83c @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c870653fe1bc1d497875de24b9827a34 b/bundle/snapshots/c870653fe1bc1d497875de24b9827a34 index ecdbb38..ae69678 100644 --- a/bundle/snapshots/c870653fe1bc1d497875de24b9827a34 +++ b/bundle/snapshots/c870653fe1bc1d497875de24b9827a34 @@ -1,15 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/not/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/not": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe b/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe index dd7ab01..0c19cc6 100644 --- a/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe +++ b/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/allOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e b/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e index a49babc..ddbf717 100644 --- a/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e +++ b/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/patternProperties": "https://json-schema.org/keyword/patternProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 b/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 +++ b/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 b/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 index 7fbab9f..71ae23c 100644 --- a/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 +++ b/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 @@ -1,13 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/propertyNames": "https://json-schema.org/keyword/propertyNames", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foobar": { - "errors": {}, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", + "instanceLocation": "#/foobar" + }, + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 b/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 index fc96902..e6d09c7 100644 --- a/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 +++ b/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 b/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 +++ b/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 b/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 index a7138e8..36e0abf 100644 --- a/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 +++ b/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/cabcd717013e39952a0536e1743a6bae b/bundle/snapshots/cabcd717013e39952a0536e1743a6bae index e796134..c9eb075 100644 --- a/bundle/snapshots/cabcd717013e39952a0536e1743a6bae +++ b/bundle/snapshots/cabcd717013e39952a0536e1743a6bae @@ -1,13 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/not": "https://json-schema.org/keyword/not", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/not", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/not", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/cabef581515886b32b2c245b6821641c b/bundle/snapshots/cabef581515886b32b2c245b6821641c index ecd020e..6a23099 100644 --- a/bundle/snapshots/cabef581515886b32b2c245b6821641c +++ b/bundle/snapshots/cabef581515886b32b2c245b6821641c @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 b/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 +++ b/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc b/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc index 80ec520..c19c855 100644 --- a/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc +++ b/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc @@ -1,18 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foobar#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://test.json-schema.org/number#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/number#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 b/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 +++ b/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 b/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 +++ b/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/cf777f1ce96cfc74d92b461c4e02dc26 b/bundle/snapshots/cf777f1ce96cfc74d92b461c4e02dc26 index 6314152..ae69678 100644 --- a/bundle/snapshots/cf777f1ce96cfc74d92b461c4e02dc26 +++ b/bundle/snapshots/cf777f1ce96cfc74d92b461c4e02dc26 @@ -1,14 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/baz": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 b/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 index 2234191..99f7daa 100644 --- a/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 +++ b/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 @@ -1,22 +1,31 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foobar#/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foo#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foo#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/$ref", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 b/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 +++ b/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d38405f98674cd4fd4b8862ce702ab4f b/bundle/snapshots/d38405f98674cd4fd4b8862ce702ab4f index dfc403a..ae69678 100644 --- a/bundle/snapshots/d38405f98674cd4fd4b8862ce702ab4f +++ b/bundle/snapshots/d38405f98674cd4fd4b8862ce702ab4f @@ -1,22 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/tree": { - "errors": {}, - "annotations": {} - }, - "#/tree/leaf": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch": { - "errors": {}, - "annotations": {} - }, - "#/tree/branch/leaf": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d3979aa57647e490f961d1127c950769 b/bundle/snapshots/d3979aa57647e490f961d1127c950769 index f786606..60f5481 100644 --- a/bundle/snapshots/d3979aa57647e490f961d1127c950769 +++ b/bundle/snapshots/d3979aa57647e490f961d1127c950769 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/definitions/string/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#/definitions/string": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/definitions/string/allOf", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 b/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 +++ b/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 b/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 +++ b/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 b/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 +++ b/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 b/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 index 0ac23db..75f1f8a 100644 --- a/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 +++ b/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 @@ -1,20 +1,26 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foobar#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foobar#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://test.json-schema.org/number#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/number#": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/foobar#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://test.json-schema.org/foobar#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties/bar/$ref", + "instanceLocation": "#/bar" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 b/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 index a7138e8..36e0abf 100644 --- a/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 +++ b/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d b/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d index f786606..60f5481 100644 --- a/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d +++ b/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/definitions/string/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#/definitions/string": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/definitions/string/allOf", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d72143df035b835bc32fac5bb557c0cc b/bundle/snapshots/d72143df035b835bc32fac5bb557c0cc index 5d2dcfe..ae69678 100644 --- a/bundle/snapshots/d72143df035b835bc32fac5bb557c0cc +++ b/bundle/snapshots/d72143df035b835bc32fac5bb557c0cc @@ -1,10 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 b/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 index ecd020e..6a23099 100644 --- a/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 +++ b/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d83287ce809cff873331d44c7808486d b/bundle/snapshots/d83287ce809cff873331d44c7808486d index ecd020e..6a23099 100644 --- a/bundle/snapshots/d83287ce809cff873331d44c7808486d +++ b/bundle/snapshots/d83287ce809cff873331d44c7808486d @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 b/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 +++ b/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b b/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b index ad5e154..f2ae468 100644 --- a/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b +++ b/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef b/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef index 9ded3df..6786fdd 100644 --- a/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef +++ b/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef @@ -1,26 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/dependencies/foo/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#/dependencies/foo": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/dependencies": "https://json-schema.org/keyword/draft-04/dependencies", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/dependencies", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies/foo/properties", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 b/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 +++ b/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/dcd9706d1348bdf7b535e8599c91985b b/bundle/snapshots/dcd9706d1348bdf7b535e8599c91985b index 65f7b5d..c44022b 100644 --- a/bundle/snapshots/dcd9706d1348bdf7b535e8599c91985b +++ b/bundle/snapshots/dcd9706d1348bdf7b535e8599c91985b @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/draft-04/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/dd5cca331ef1047721dee94ac88b6a62 b/bundle/snapshots/dd5cca331ef1047721dee94ac88b6a62 index 08e064b..ae69678 100644 --- a/bundle/snapshots/dd5cca331ef1047721dee94ac88b6a62 +++ b/bundle/snapshots/dd5cca331ef1047721dee94ac88b6a62 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 b/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 +++ b/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/df0779461daf1c98199d982f7619f395 b/bundle/snapshots/df0779461daf1c98199d982f7619f395 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/df0779461daf1c98199d982f7619f395 +++ b/bundle/snapshots/df0779461daf1c98199d982f7619f395 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/df5a22f4c0ef094f7f5d83c4d211d23b b/bundle/snapshots/df5a22f4c0ef094f7f5d83c4d211d23b index 73f2919..ae69678 100644 --- a/bundle/snapshots/df5a22f4c0ef094f7f5d83c4d211d23b +++ b/bundle/snapshots/df5a22f4c0ef094f7f5d83c4d211d23b @@ -1,13 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e b/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e index 84d9ffa..ce3cd0a 100644 --- a/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e +++ b/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/prefixItems": "https://json-schema.org/keyword/prefixItems", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/prefixItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/prefixItems/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/prefixItems/0": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems/0/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e b/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e index 500aa0c..895d01f 100644 --- a/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e +++ b/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae b/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae +++ b/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/e10af529d538f905393cb854c431bdde b/bundle/snapshots/e10af529d538f905393cb854c431bdde index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/e10af529d538f905393cb854c431bdde +++ b/bundle/snapshots/e10af529d538f905393cb854c431bdde @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 b/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 +++ b/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e262953038466e3ecb384a7203d5afea b/bundle/snapshots/e262953038466e3ecb384a7203d5afea index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/e262953038466e3ecb384a7203d5afea +++ b/bundle/snapshots/e262953038466e3ecb384a7203d5afea @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 b/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 index 7fbab9f..71ae23c 100644 --- a/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 +++ b/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 @@ -1,13 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/propertyNames": "https://json-schema.org/keyword/propertyNames", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foobar": { - "errors": {}, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", + "instanceLocation": "#/foobar" + }, + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc b/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc index 1d76dec..68af94e 100644 --- a/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc +++ b/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e519f254c67f814e66cae870e6716027 b/bundle/snapshots/e519f254c67f814e66cae870e6716027 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/e519f254c67f814e66cae870e6716027 +++ b/bundle/snapshots/e519f254c67f814e66cae870e6716027 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 b/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 index 9bfeabd..9651b40 100644 --- a/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 +++ b/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 @@ -1,13 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/if": "https://json-schema.org/evaluation/validate", - "https://test.json-schema.org/short-string#/maxLength": "https://json-schema.org/keyword/maxLength", - "https://test.json-schema.org/short-string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/else/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/else": "https://json-schema.org/keyword/else", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/else", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e7819b00500a9e7b18a09ba725025a56 b/bundle/snapshots/e7819b00500a9e7b18a09ba725025a56 index 08e064b..ae69678 100644 --- a/bundle/snapshots/e7819b00500a9e7b18a09ba725025a56 +++ b/bundle/snapshots/e7819b00500a9e7b18a09ba725025a56 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e7a858eadabe6443294e88d900450e1a b/bundle/snapshots/e7a858eadabe6443294e88d900450e1a index 500aa0c..895d01f 100644 --- a/bundle/snapshots/e7a858eadabe6443294e88d900450e1a +++ b/bundle/snapshots/e7a858eadabe6443294e88d900450e1a @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 b/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 +++ b/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 b/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 +++ b/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 b/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 +++ b/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 b/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 +++ b/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 b/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 index 54a56aa..71165e3 100644 --- a/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 +++ b/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/items": "https://json-schema.org/keyword/draft-04/items", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/0": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/items/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/items/0": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/0/$ref", + "instanceLocation": "#/0" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd b/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd index a7138e8..36e0abf 100644 --- a/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd +++ b/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/eb94b6c590a57596a16a7e0361ef5abb b/bundle/snapshots/eb94b6c590a57596a16a7e0361ef5abb index ecdbb38..ae69678 100644 --- a/bundle/snapshots/eb94b6c590a57596a16a7e0361ef5abb +++ b/bundle/snapshots/eb94b6c590a57596a16a7e0361ef5abb @@ -1,15 +1,5 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/not/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/not": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } - } - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 b/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 index 44d3f7f..42fb2bb 100644 --- a/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 +++ b/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 @@ -1,10 +1,12 @@ { - "#": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f b/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f index a7138e8..36e0abf 100644 --- a/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f +++ b/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab b/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab index 1669499..4089504 100644 --- a/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab +++ b/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 b/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 index 500aa0c..895d01f 100644 --- a/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 +++ b/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb b/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb index 885c871..c2c1518 100644 --- a/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb +++ b/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb @@ -1,17 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/anyOf/0/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/anyOf/0": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/anyOf": "https://json-schema.org/keyword/anyOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/anyOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", + "instanceLocation": "#" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf/0/$ref", + "instanceLocation": "#" + }, + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 b/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 index ad5e154..f2ae468 100644 --- a/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 +++ b/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/bar/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/bar": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b b/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b +++ b/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 b/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 index 1d0ff20..4215904 100644 --- a/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 +++ b/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 @@ -1,18 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 b/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 +++ b/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda b/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda index f786606..60f5481 100644 --- a/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda +++ b/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/definitions/string/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#/definitions/string": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/definitions/string/allOf", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd b/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd +++ b/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f b/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f +++ b/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f3f0d8bb8e194c2c206ee7a1638f7e60 b/bundle/snapshots/f3f0d8bb8e194c2c206ee7a1638f7e60 index fee5312..a434102 100644 --- a/bundle/snapshots/f3f0d8bb8e194c2c206ee7a1638f7e60 +++ b/bundle/snapshots/f3f0d8bb8e194c2c206ee7a1638f7e60 @@ -1,9 +1,11 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" - }, - "annotations": {} - } + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/type", + "instanceLocation": "#" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 b/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 +++ b/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 b/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 +++ b/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 b/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 index a7138e8..36e0abf 100644 --- a/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 +++ b/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/bar": { - "errors": { - "https://bundler.hyperjump.io/number#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/number#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 b/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 index 1d76dec..68af94e 100644 --- a/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 +++ b/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/properties": "https://json-schema.org/keyword/properties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/properties/foo/$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/properties/foo": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f63f35706381fef03036110d550cfed5 b/bundle/snapshots/f63f35706381fef03036110d550cfed5 index 1d0ff20..4215904 100644 --- a/bundle/snapshots/f63f35706381fef03036110d550cfed5 +++ b/bundle/snapshots/f63f35706381fef03036110d550cfed5 @@ -1,18 +1,21 @@ { - "#": { - "errors": { - "https://test.json-schema.org/foo#/properties": "https://json-schema.org/keyword/properties", - "https://test.json-schema.org/foo#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/allOf": "https://json-schema.org/keyword/allOf", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://test.json-schema.org/string#/type": "https://json-schema.org/keyword/type", - "https://test.json-schema.org/string#": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#" }, - "annotations": {} - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea b/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea index 84eb7ca..33d448d 100644 --- a/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea +++ b/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea @@ -1,22 +1,21 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/patternProperties": "https://json-schema.org/keyword/patternProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate", - "https://bundler.hyperjump.io/main#/patternProperties//$ref": "https://json-schema.org/keyword/ref", - "https://bundler.hyperjump.io/main#/patternProperties/": "https://json-schema.org/evaluation/validate" + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties//$ref", + "instanceLocation": "#/foo" }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f70d11826ecd66006b358de0024c957b b/bundle/snapshots/f70d11826ecd66006b358de0024c957b index d937ccf..8899fd4 100644 --- a/bundle/snapshots/f70d11826ecd66006b358de0024c957b +++ b/bundle/snapshots/f70d11826ecd66006b358de0024c957b @@ -1,20 +1,16 @@ { - "#": { - "errors": { - "https://bundler.hyperjump.io/main#/additionalProperties": "https://json-schema.org/keyword/additionalProperties", - "https://bundler.hyperjump.io/main#": "https://json-schema.org/evaluation/validate" + "valid": false, + "errors": [ + { + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#" }, - "annotations": {} - }, - "#/foo": { - "errors": { - "https://bundler.hyperjump.io/string#/type": "https://json-schema.org/keyword/type", - "https://bundler.hyperjump.io/string#": "https://json-schema.org/evaluation/validate" - }, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" } - } + ], + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e b/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e index f6b3ded..fe10aa3 100644 --- a/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e +++ b/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e @@ -1,22 +1,18 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } - } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 b/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 index fc96902..e6d09c7 100644 --- a/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 +++ b/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 @@ -1,18 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": {} - }, - "#/bar": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/number#": "Number" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba b/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba index f8bcd0f..ecc3c45 100644 --- a/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba +++ b/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/foo": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad b/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad index ecd020e..6a23099 100644 --- a/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad +++ b/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad @@ -1,14 +1,12 @@ { - "#": { - "errors": {}, - "annotations": {} - }, - "#/0": { - "errors": {}, - "annotations": { - "https://json-schema.org/keyword/title": { - "https://bundler.hyperjump.io/string#": "String" - } + "valid": true, + "errors": [], + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" } - } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ffa03141986d3883b34f4a27356e5fa4 b/bundle/snapshots/ffa03141986d3883b34f4a27356e5fa4 index 08e064b..ae69678 100644 --- a/bundle/snapshots/ffa03141986d3883b34f4a27356e5fa4 +++ b/bundle/snapshots/ffa03141986d3883b34f4a27356e5fa4 @@ -1,6 +1,5 @@ { - "#": { - "errors": {}, - "annotations": {} - } + "valid": true, + "errors": [], + "annotations": [] } \ No newline at end of file diff --git a/bundle/test-suite.spec.ts b/bundle/test-suite.spec.ts index 3ae2f6d..f90c959 100644 --- a/bundle/test-suite.spec.ts +++ b/bundle/test-suite.spec.ts @@ -1,8 +1,8 @@ import { readFile } from "node:fs/promises"; import { describe, it, expect, beforeAll, afterAll } from "vitest"; -import { isCompatible, md5, loadSchemas, unloadSchemas, toOutput, testSuite } from "./test-utils.js"; +import { isCompatible, md5, loadSchemas, unloadSchemas, testSuite } from "./test-utils.js"; import { registerSchema, unregisterSchema } from "../lib/index.js"; -import { compile, getKeywordName, getSchema, interpret } from "../lib/experimental.js"; +import { compile, getKeywordName, getSchema, Validation } from "../lib/experimental.js"; import * as Instance from "../lib/instance.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; @@ -40,9 +40,7 @@ const testRunner = (version: number, dialect: string) => { loadSchemas(testCase, mainSchemaUri, dialect); const bundledSchema = await bundle(mainSchemaUri, options); - if (!bundledSchema[definitionsToken]) { - bundledSchema[definitionsToken] = {}; - } + bundledSchema[definitionsToken] ??= {}; unloadSchemas(testCase, mainSchemaUri, dialect); @@ -57,10 +55,14 @@ const testRunner = (version: number, dialect: string) => { testCase.tests.forEach((test, testIndex) => { it(test.description, async () => { const schema = await getSchema(mainSchemaUri); - const compiledSchema = await compile(schema); + const { ast, schemaUri } = await compile(schema); + const instance = Instance.fromJs(test.instance); - interpret(compiledSchema, instance); - const output = toOutput(instance); + const errors: OutputUnit[] = []; + const annotations: OutputUnit[] = []; + const valid = Validation.interpret(schemaUri, instance, { ast, schemaUri, dynamicAnchors: {}, errors, annotations }); + + const output = { valid, errors, annotations }; const testId = md5(`${version}|${dialect}|${testCase.description}|${testIndex}`); const expectedOutputJson = await readFile(`./bundle/snapshots/${testId}`, "utf-8"); diff --git a/bundle/test-utils.js b/bundle/test-utils.js index fd0eb2a..a54c0a3 100644 --- a/bundle/test-utils.js +++ b/bundle/test-utils.js @@ -3,7 +3,6 @@ import { readFileSync, readdirSync } from "node:fs"; import { basename, relative } from "node:path"; import { getKeywordName } from "../lib/keywords.js"; import { registerSchema, unregisterSchema } from "../lib/index.js"; -import * as Instance from "../lib/instance.js"; export const testSuite = (path) => { @@ -102,15 +101,3 @@ export const unloadSchemas = (testCase, retrievalUri) => { unregisterSchema(retrievalUri || testCase.externalSchemas[retrievalUri]?.$id || testCase.externalSchemas[retrievalUri]?.id); } }; - -export const toOutput = (root) => { - const output = {}; - for (const node of Instance.allNodes(root)) { - output[Instance.uri(node)] = { - errors: node.errors, - annotations: node.annotations - }; - } - - return output; -}; diff --git a/draft-04/additionalItems.js b/draft-04/additionalItems.js index e852ef0..96d0586 100644 --- a/draft-04/additionalItems.js +++ b/draft-04/additionalItems.js @@ -14,7 +14,7 @@ const compile = async (schema, ast, parentSchema) => { return [numberOfItems, await Validation.compile(schema, ast)]; }; -const interpret = ([numberOfItems, additionalItems], instance, ast, dynamicAnchors, quiet) => { +const interpret = ([numberOfItems, additionalItems], instance, context) => { if (Instance.typeOf(instance) !== "array") { return true; } @@ -22,12 +22,12 @@ const interpret = ([numberOfItems, additionalItems], instance, ast, dynamicAncho return pipe( Instance.iter(instance), drop(numberOfItems), - every((item) => Validation.interpret(additionalItems, item, ast, dynamicAnchors, quiet)) + every((item) => Validation.interpret(additionalItems, item, context)) ); }; -const collectEvaluatedItems = (keywordValue, instance, ast, dynamicAnchors) => { - if (!interpret(keywordValue, instance, ast, dynamicAnchors, true)) { +const collectEvaluatedItems = (keywordValue, instance, context) => { + if (!interpret(keywordValue, instance, context)) { return false; } diff --git a/draft-04/dependencies.js b/draft-04/dependencies.js index 73f8c4d..588d0a3 100644 --- a/draft-04/dependencies.js +++ b/draft-04/dependencies.js @@ -15,7 +15,7 @@ const compile = (schema, ast) => pipe( asyncCollectArray ); -const interpret = (dependencies, instance, ast, dynamicAnchors, quiet) => { +const interpret = (dependencies, instance, context) => { const value = Instance.value(instance); return Instance.typeOf(instance) !== "object" || dependencies.every(([propertyName, dependency]) => { @@ -26,7 +26,7 @@ const interpret = (dependencies, instance, ast, dynamicAnchors, quiet) => { if (Array.isArray(dependency)) { return dependency.every((key) => key in value); } else { - return Validation.interpret(dependency, instance, ast, dynamicAnchors, quiet); + return Validation.interpret(dependency, instance, context); } }); }; diff --git a/draft-04/items.js b/draft-04/items.js index 5d9e366..6f4a8c5 100644 --- a/draft-04/items.js +++ b/draft-04/items.js @@ -18,24 +18,24 @@ const compile = (schema, ast) => { } }; -const interpret = (items, instance, ast, dynamicAnchors, quiet) => { +const interpret = (items, instance, context) => { if (Instance.typeOf(instance) !== "array") { return true; } if (typeof items === "string") { - return every((itemValue) => Validation.interpret(items, itemValue, ast, dynamicAnchors, quiet), Instance.iter(instance)); + return every((itemValue) => Validation.interpret(items, itemValue, context), Instance.iter(instance)); } else { return pipe( zip(items, Instance.iter(instance)), take(Instance.length(instance)), - every(([prefixItem, item]) => Validation.interpret(prefixItem, item, ast, dynamicAnchors, quiet)) + every(([prefixItem, item]) => Validation.interpret(prefixItem, item, context)) ); } }; -const collectEvaluatedItems = (items, instance, ast, dynamicAnchors) => { - return interpret(items, instance, ast, dynamicAnchors, true) && (typeof items === "string" +const collectEvaluatedItems = (items, instance, context) => { + return interpret(items, instance, context) && (typeof items === "string" ? collectSet(range(0, Instance.length(instance))) : collectSet(range(0, items.length))); }; diff --git a/draft-06/contains.js b/draft-06/contains.js index bb18580..628fe03 100644 --- a/draft-06/contains.js +++ b/draft-06/contains.js @@ -7,8 +7,9 @@ const id = "https://json-schema.org/keyword/draft-06/contains"; const compile = (schema, ast) => Validation.compile(schema, ast); -const interpret = (contains, instance, ast, dynamicAnchors, quiet) => { - return Instance.typeOf(instance) !== "array" || some((item) => Validation.interpret(contains, item, ast, dynamicAnchors, quiet), Instance.iter(instance)); +const interpret = (contains, instance, context) => { + return Instance.typeOf(instance) !== "array" + || some((item) => Validation.interpret(contains, item, context), Instance.iter(instance)); }; export default { id, compile, interpret }; diff --git a/draft-2020-12/dynamicRef.js b/draft-2020-12/dynamicRef.js index 0ef4c8b..f8b2460 100644 --- a/draft-2020-12/dynamicRef.js +++ b/draft-2020-12/dynamicRef.js @@ -12,12 +12,12 @@ const compile = async (dynamicRef, ast) => { return [referencedSchema.document.baseUri, fragment, canonicalUri(referencedSchema)]; }; -const evaluate = (strategy, [id, fragment, ref], instance, ast, dynamicAnchors, quiet) => { - if (fragment in ast.metaData[id].dynamicAnchors) { - dynamicAnchors = { ...ast.metaData[id].dynamicAnchors, ...dynamicAnchors }; - return strategy(dynamicAnchors[fragment], instance, ast, dynamicAnchors, quiet); +const evaluate = (strategy, [id, fragment, ref], instance, context) => { + if (fragment in context.ast.metaData[id].dynamicAnchors) { + context.dynamicAnchors = { ...context.ast.metaData[id].dynamicAnchors, ...context.dynamicAnchors }; + return strategy(context.dynamicAnchors[fragment], instance, context); } else { - return strategy(ref, instance, ast, dynamicAnchors, quiet); + return strategy(ref, instance, context); } }; diff --git a/lib/core.js b/lib/core.js index 4916802..6aaf51a 100644 --- a/lib/core.js +++ b/lib/core.js @@ -11,7 +11,6 @@ import { InvalidSchemaError } from "./invalid-schema-error.js"; import { getSchema, registerSchema, unregisterSchema as schemaUnregister } from "./schema.js"; import { getKeywordName } from "./keywords.js"; import Validation from "./keywords/validation.js"; -import { toOutputFormat } from "./output.js"; export const FLAG = "FLAG", BASIC = "BASIC"; @@ -32,8 +31,9 @@ export const compile = async (schema) => { }; export const interpret = curry(({ ast, schemaUri }, instance, outputFormat = FLAG) => { - Validation.interpret(schemaUri, instance, ast, {}); - return toOutputFormat(instance, outputFormat); + const errors = []; + const valid = Validation.interpret(schemaUri, instance, { ast, schemaUri, dynamicAnchors: {}, errors, annotations: [] }); + return outputFormat === BASIC && !valid ? { valid, errors } : { valid }; }); const metaValidators = {}; diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index 4c1127e..e7d52fd 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -67,11 +67,18 @@ export const hasDialect: (dialectId: string) => boolean; export type Keyword = { id: string; compile: (schema: Browser, ast: AST, parentSchema: Browser) => Promise; - interpret: (compiledKeywordValue: A, instance: JsonNode, ast: AST, dynamicAnchors: Anchors, quiet: boolean, schemaLocation: string) => boolean; - collectEvaluatedProperties?: (compiledKeywordValue: A, instance: JsonNode, ast: AST, dynamicAnchors: Anchors, isTop?: boolean) => Set | false; - collectEvaluatedItems?: (compiledKeywordValue: A, instance: JsonNode, ast: AST, dynamicAnchors: Anchors, isTop?: boolean) => Set | false; + interpret: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext) => boolean; + collectEvaluatedProperties?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; + collectEvaluatedItems?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; collectExternalIds?: (visited: Set, parentSchema: Browser, schema: Browser) => Promise>; - annotation?: (compiledKeywordValue: A) => B; +}; + +export type ValidationContext = { + ast: AST; + schemaUri: string; + dynamicAnchors: Anchors; + errors: OutputUnit[]; + annotations: OutputUnit[]; }; export const Validation: Keyword; diff --git a/lib/index.d.ts b/lib/index.d.ts index fb7c5eb..3d0935d 100644 --- a/lib/index.d.ts +++ b/lib/index.d.ts @@ -29,6 +29,7 @@ export type OutputUnit = { absoluteKeywordLocation: string; instanceLocation: string; valid: boolean; + annotation?: unknown; errors?: OutputUnit[]; }; diff --git a/lib/instance.d.ts b/lib/instance.d.ts index 37b81ac..95c922a 100644 --- a/lib/instance.d.ts +++ b/lib/instance.d.ts @@ -32,8 +32,6 @@ export type JsonNode = { children: JsonNode[]; parent?: JsonNode; root: JsonNode; - valid: boolean; - errors: Record; annotations: Record>; }; diff --git a/lib/instance.js b/lib/instance.js index 72a8f16..d4951dd 100644 --- a/lib/instance.js +++ b/lib/instance.js @@ -49,8 +49,6 @@ export const cons = (baseUri, pointer, value, type, children, parent) => { type: type, children: children, parent: parent, - valid: true, - errors: {}, annotations: {} }; node.root = parent?.root ?? node; diff --git a/lib/keywords/additionalProperties.js b/lib/keywords/additionalProperties.js index f42a609..f06b56a 100644 --- a/lib/keywords/additionalProperties.js +++ b/lib/keywords/additionalProperties.js @@ -31,7 +31,7 @@ const regexEscape = (string) => string .replace(/[|\\{}()[\]^$+*?.]/g, "\\$&") .replace(/-/g, "\\x2d"); -const interpret = ([isDefinedProperty, additionalProperties], instance, ast, dynamicAnchors, quiet) => { +const interpret = ([isDefinedProperty, additionalProperties], instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; } @@ -39,7 +39,7 @@ const interpret = ([isDefinedProperty, additionalProperties], instance, ast, dyn let isValid = true; for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); - if (!isDefinedProperty.test(propertyName) && !Validation.interpret(additionalProperties, property, ast, dynamicAnchors, quiet)) { + if (!isDefinedProperty.test(propertyName) && !Validation.interpret(additionalProperties, property, context)) { isValid = false; } } @@ -47,7 +47,7 @@ const interpret = ([isDefinedProperty, additionalProperties], instance, ast, dyn return isValid; }; -const collectEvaluatedProperties = ([isDefinedProperty, additionalProperties], instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = ([isDefinedProperty, additionalProperties], instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; } @@ -56,7 +56,7 @@ const collectEvaluatedProperties = ([isDefinedProperty, additionalProperties], i for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); if (!isDefinedProperty.test(propertyName)) { - if (!Validation.interpret(additionalProperties, property, ast, dynamicAnchors, true)) { + if (!Validation.interpret(additionalProperties, property, context)) { return false; } diff --git a/lib/keywords/allOf.js b/lib/keywords/allOf.js index c117002..566f10e 100644 --- a/lib/keywords/allOf.js +++ b/lib/keywords/allOf.js @@ -21,10 +21,10 @@ const interpret = (allOf, instance, ast, dynamicAnchors, quiet) => { return isValid; }; -const collectEvaluatedProperties = (allOf, instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = (allOf, instance, context) => { const evaluatedPropertyNames = new Set(); for (const schemaUrl of allOf) { - const propertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, ast, dynamicAnchors); + const propertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, context); if (!propertyNames) { return false; } @@ -35,10 +35,10 @@ const collectEvaluatedProperties = (allOf, instance, ast, dynamicAnchors) => { return evaluatedPropertyNames; }; -const collectEvaluatedItems = (allOf, instance, ast, dynamicAnchors) => { +const collectEvaluatedItems = (allOf, instance, context) => { const evaluatedItemIndexes = new Set(); for (const schemaUrl of allOf) { - const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, ast, dynamicAnchors); + const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, context); if (!itemIndexes) { return false; } diff --git a/lib/keywords/anyOf.js b/lib/keywords/anyOf.js index fc75927..96aebb6 100644 --- a/lib/keywords/anyOf.js +++ b/lib/keywords/anyOf.js @@ -16,10 +16,10 @@ const interpret = (anyOf, instance, ast, dynamicAnchors, quiet) => { return matches.length > 0; }; -const collectEvaluatedProperties = (anyOf, instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = (anyOf, instance, context) => { let evaluatedPropertyNames = false; for (const schemaUrl of anyOf) { - const propertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, ast, dynamicAnchors); + const propertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, context); if (propertyNames) { evaluatedPropertyNames ||= new Set(); propertyNames.forEach(evaluatedPropertyNames.add, evaluatedPropertyNames); @@ -29,10 +29,10 @@ const collectEvaluatedProperties = (anyOf, instance, ast, dynamicAnchors) => { return evaluatedPropertyNames; }; -const collectEvaluatedItems = (anyOf, instance, ast, dynamicAnchors) => { +const collectEvaluatedItems = (anyOf, instance, context) => { let evaluatedItemIndexes = false; for (const schemaUrl of anyOf) { - const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, ast, dynamicAnchors); + const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, context); if (itemIndexes) { evaluatedItemIndexes ||= new Set(); itemIndexes.forEach(evaluatedItemIndexes.add, evaluatedItemIndexes); diff --git a/lib/keywords/conditional.js b/lib/keywords/conditional.js index 26083e9..133de11 100644 --- a/lib/keywords/conditional.js +++ b/lib/keywords/conditional.js @@ -12,39 +12,39 @@ const compile = (schema, ast) => pipe( asyncCollectArray ); -const interpret = (conditional, instance, ast, dynamicAnchors, quiet) => { +const interpret = (conditional, instance, context) => { for (let index = 0; index < conditional.length; index += 2) { - const isValid = Validation.interpret(conditional[index], instance, ast, dynamicAnchors, quiet); + const isValid = Validation.interpret(conditional[index], instance, context); if (index + 1 === conditional.length) { return isValid; } else if (isValid) { - return Validation.interpret(conditional[index + 1], instance, ast, dynamicAnchors, quiet); + return Validation.interpret(conditional[index + 1], instance, context); } } return true; }; -const collectEvaluatedProperties = (conditional, instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = (conditional, instance, context) => { for (let index = 0; index < conditional.length; index += 2) { - const unevaluatedProperties = Validation.collectEvaluatedProperties(conditional[index], instance, ast, dynamicAnchors); + const unevaluatedProperties = Validation.collectEvaluatedProperties(conditional[index], instance, context); if (index + 1 === conditional.length) { return unevaluatedProperties; } else if (unevaluatedProperties !== false) { - return Validation.collectEvaluatedProperties(conditional[index + 1], instance, ast, dynamicAnchors); + return Validation.collectEvaluatedProperties(conditional[index + 1], instance, context); } } return new Set(); }; -const collectEvaluatedItems = (conditional, instance, ast, dynamicAnchors) => { +const collectEvaluatedItems = (conditional, instance, context) => { for (let index = 0; index < conditional.length; index += 2) { - const unevaluatedItems = Validation.collectEvaluatedItems(conditional[index], instance, ast, dynamicAnchors); + const unevaluatedItems = Validation.collectEvaluatedItems(conditional[index], instance, context); if (index + 1 === conditional.length) { return unevaluatedItems; } else if (unevaluatedItems !== false) { - return Validation.collectEvaluatedItems(conditional[index + 1], instance, ast, dynamicAnchors); + return Validation.collectEvaluatedItems(conditional[index + 1], instance, context); } } diff --git a/lib/keywords/contains.js b/lib/keywords/contains.js index a317f5c..5a025f9 100644 --- a/lib/keywords/contains.js +++ b/lib/keywords/contains.js @@ -20,21 +20,21 @@ const compile = async (schema, ast, parentSchema) => { return { contains, minContains, maxContains }; }; -const interpret = ({ contains, minContains, maxContains }, instance, ast, dynamicAnchors, quiet) => { +const interpret = ({ contains, minContains, maxContains }, instance, context) => { const matches = Instance.typeOf(instance) !== "array" || pipe( Instance.iter(instance), - filter((item) => Validation.interpret(contains, item, ast, dynamicAnchors, quiet)), + filter((item) => Validation.interpret(contains, item, context)), reduce((matches) => matches + 1, 0) ); return matches >= minContains && matches <= maxContains; }; -const collectEvaluatedItems = (keywordValue, instance, ast, dynamicAnchors) => { - return interpret(keywordValue, instance, ast, dynamicAnchors, true) +const collectEvaluatedItems = (keywordValue, instance, context) => { + return interpret(keywordValue, instance, context) && Instance.typeOf(instance) === "array" && pipe( zip(Instance.iter(instance), range(0)), - filter(([item]) => Validation.interpret(keywordValue.contains, item, ast, dynamicAnchors, true)), + filter(([item]) => Validation.interpret(keywordValue.contains, item, context)), map(([, itemIndex]) => itemIndex), collectSet ); diff --git a/lib/keywords/contentEncoding.js b/lib/keywords/contentEncoding.js index 4e11102..02dd7e1 100644 --- a/lib/keywords/contentEncoding.js +++ b/lib/keywords/contentEncoding.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/contentEncoding"; const compile = (schema) => Browser.value(schema); -const interpret = (contentEncoding, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, contentEncoding); +const interpret = (contentEncoding, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: contentEncoding + }); return true; }; diff --git a/lib/keywords/contentMediaType.js b/lib/keywords/contentMediaType.js index 778a8e1..1ad7a0f 100644 --- a/lib/keywords/contentMediaType.js +++ b/lib/keywords/contentMediaType.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/contentMediaType"; const compile = (schema) => Browser.value(schema); -const interpret = (contentMediaType, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, contentMediaType); +const interpret = (contentMediaType, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: contentMediaType + }); return true; }; diff --git a/lib/keywords/contentSchema.js b/lib/keywords/contentSchema.js index d0b314a..1e1767a 100644 --- a/lib/keywords/contentSchema.js +++ b/lib/keywords/contentSchema.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/contentSchema"; const compile = (contentSchema) => canonicalUri(contentSchema); -const interpret = (contentSchema, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, contentSchema); +const interpret = (contentSchema, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: contentSchema + }); return true; }; diff --git a/lib/keywords/default.js b/lib/keywords/default.js index f6ccf74..f935288 100644 --- a/lib/keywords/default.js +++ b/lib/keywords/default.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/default"; const compile = (schema) => Browser.value(schema); -const interpret = (value, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, value); +const interpret = (value, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: value + }); return true; }; diff --git a/lib/keywords/dependentSchemas.js b/lib/keywords/dependentSchemas.js index 535d34f..4ad8cae 100644 --- a/lib/keywords/dependentSchemas.js +++ b/lib/keywords/dependentSchemas.js @@ -12,14 +12,14 @@ const compile = (schema, ast) => pipe( asyncCollectArray ); -const interpret = (dependentSchemas, instance, ast, dynamicAnchors, quiet) => { +const interpret = (dependentSchemas, instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; } let isValid = true; for (const [propertyName, dependentSchema] of dependentSchemas) { - if (Instance.has(propertyName, instance) && !Validation.interpret(dependentSchema, instance, ast, dynamicAnchors, quiet)) { + if (Instance.has(propertyName, instance) && !Validation.interpret(dependentSchema, instance, context)) { isValid = false; } } @@ -27,7 +27,7 @@ const interpret = (dependentSchemas, instance, ast, dynamicAnchors, quiet) => { return isValid; }; -const collectEvaluatedProperties = (dependentSchemas, instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = (dependentSchemas, instance, context) => { if (Instance.typeOf(instance) !== "object") { return false; } @@ -35,7 +35,7 @@ const collectEvaluatedProperties = (dependentSchemas, instance, ast, dynamicAnch const evaluatedPropertyNames = new Set(); for (const [propertyName, dependentSchema] of dependentSchemas) { if (Instance.has(propertyName, instance)) { - const propertyNames = Validation.collectEvaluatedProperties(dependentSchema, instance, ast, dynamicAnchors); + const propertyNames = Validation.collectEvaluatedProperties(dependentSchema, instance, context); if (propertyNames === false) { return false; } diff --git a/lib/keywords/deprecated.js b/lib/keywords/deprecated.js index df81cef..1e7f2b6 100644 --- a/lib/keywords/deprecated.js +++ b/lib/keywords/deprecated.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/deprecated"; const compile = (schema) => Browser.value(schema); -const interpret = (deprecated, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, deprecated); +const interpret = (deprecated, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: deprecated + }); return true; }; diff --git a/lib/keywords/description.js b/lib/keywords/description.js index 34eb4dd..4eafab7 100644 --- a/lib/keywords/description.js +++ b/lib/keywords/description.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/description"; const compile = (schema) => Browser.value(schema); -const interpret = (description, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, description); +const interpret = (description, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: description + }); return true; }; diff --git a/lib/keywords/dynamicRef.js b/lib/keywords/dynamicRef.js index 7ef7ccb..af7f3f5 100644 --- a/lib/keywords/dynamicRef.js +++ b/lib/keywords/dynamicRef.js @@ -12,11 +12,11 @@ const compile = async (schema, ast) => { return reference; }; -const evaluate = (strategy, fragment, instance, ast, dynamicAnchors, quiet) => { - if (!(fragment in dynamicAnchors)) { +const evaluate = (strategy, fragment, instance, context) => { + if (!(fragment in context.dynamicAnchors)) { throw Error(`No dynamic anchor found for "${fragment}"`); } - return strategy(dynamicAnchors[fragment], instance, ast, dynamicAnchors, quiet); + return strategy(context.dynamicAnchors[fragment], instance, context); }; const interpret = (...args) => evaluate(Validation.interpret, ...args); diff --git a/lib/keywords/else.js b/lib/keywords/else.js index e0bf42d..f45dbaf 100644 --- a/lib/keywords/else.js +++ b/lib/keywords/else.js @@ -1,4 +1,5 @@ import * as Browser from "@hyperjump/browser"; +import { FLAG } from "../index.js"; import { getKeywordName, Validation } from "../experimental.js"; @@ -14,26 +15,26 @@ const compile = async (schema, ast, parentSchema) => { } }; -const interpret = ([ifSchema, elseSchema], instance, ast, dynamicAnchors, quiet) => { +const interpret = ([ifSchema, elseSchema], instance, context) => { return ifSchema === undefined - || Validation.interpret(ifSchema, instance, ast, dynamicAnchors, true) - || Validation.interpret(elseSchema, instance, ast, dynamicAnchors, quiet); + || Validation.interpret(ifSchema, instance, { ...context, errors: [], annotations: [], oututFormat: FLAG }) + || Validation.interpret(elseSchema, instance, context); }; -const collectEvaluatedProperties = ([ifSchema, elseSchema], instance, ast, dynamicAnchors) => { - if (ifSchema === undefined || Validation.interpret(ifSchema, instance, ast, dynamicAnchors, true)) { +const collectEvaluatedProperties = ([ifSchema, elseSchema], instance, context) => { + if (ifSchema === undefined || Validation.interpret(ifSchema, instance, context)) { return new Set(); } - return Validation.collectEvaluatedProperties(elseSchema, instance, ast, dynamicAnchors); + return Validation.collectEvaluatedProperties(elseSchema, instance, context); }; -const collectEvaluatedItems = ([ifSchema, elseSchema], instance, ast, dynamicAnchors) => { - if (ifSchema === undefined || Validation.interpret(ifSchema, instance, ast, dynamicAnchors, true)) { +const collectEvaluatedItems = ([ifSchema, elseSchema], instance, context) => { + if (ifSchema === undefined || Validation.interpret(ifSchema, instance, context)) { return new Set(); } - return Validation.collectEvaluatedItems(elseSchema, instance, ast, dynamicAnchors); + return Validation.collectEvaluatedItems(elseSchema, instance, context); }; export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; diff --git a/lib/keywords/examples.js b/lib/keywords/examples.js index 1f90e1b..e9b99bf 100644 --- a/lib/keywords/examples.js +++ b/lib/keywords/examples.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/examples"; const compile = (schema) => Browser.value(schema); -const interpret = (examples, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, examples); +const interpret = (examples, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: examples + }); return true; }; diff --git a/lib/keywords/format.js b/lib/keywords/format.js index a48bb1f..807a204 100644 --- a/lib/keywords/format.js +++ b/lib/keywords/format.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/format"; const compile = (schema) => Browser.value(schema); -const interpret = (format, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, format); +const interpret = (format, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: format + }); return true; }; diff --git a/lib/keywords/if.js b/lib/keywords/if.js index 3832bc7..2880378 100644 --- a/lib/keywords/if.js +++ b/lib/keywords/if.js @@ -5,17 +5,17 @@ const id = "https://json-schema.org/keyword/if"; const compile = (schema, ast) => Validation.compile(schema, ast); -const interpret = (ifSchema, instance, ast, dynamicAnchors) => { - Validation.interpret(ifSchema, instance, ast, dynamicAnchors, true); +const interpret = (ifSchema, instance, context) => { + Validation.interpret(ifSchema, instance, context); return true; }; -const collectEvaluatedProperties = (ifSchema, instance, ast, dynamicAnchors) => { - return Validation.collectEvaluatedProperties(ifSchema, instance, ast, dynamicAnchors) || []; +const collectEvaluatedProperties = (ifSchema, instance, context) => { + return Validation.collectEvaluatedProperties(ifSchema, instance, context) || new Set(); }; -const collectEvaluatedItems = (ifSchema, instance, ast, dynamicAnchors) => { - return Validation.collectEvaluatedItems(ifSchema, instance, ast, dynamicAnchors) || new Set(); +const collectEvaluatedItems = (ifSchema, instance, context) => { + return Validation.collectEvaluatedItems(ifSchema, instance, context) || new Set(); }; export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; diff --git a/lib/keywords/itemPattern.js b/lib/keywords/itemPattern.js index 65b417d..869ee42 100644 --- a/lib/keywords/itemPattern.js +++ b/lib/keywords/itemPattern.js @@ -39,7 +39,7 @@ const compile = async (schema, ast) => { .reduce(union); }; -const evaluate = (strategy) => (nfa, instance, ast, dynamicAnchors, quiet) => { +const evaluate = (strategy) => (nfa, instance, context) => { if (Instance.typeOf(instance) !== "array") { return true; } @@ -51,7 +51,7 @@ const evaluate = (strategy) => (nfa, instance, ast, dynamicAnchors, quiet) => { const nextStates = []; for (const state of currentStates) { - const nextState = transition(strategy, state.transition, item, ast, dynamicAnchors, quiet); + const nextState = transition(strategy, state.transition, item, context); if (nextState) { addNextState(nextState, nextStates, []); } @@ -76,9 +76,9 @@ const addNextState = (state, nextStates, visited) => { } }; -const transition = (strategy, transitions, instance, ast, dynamicAnchors, quiet) => { +const transition = (strategy, transitions, instance, context) => { for (const schema in transitions) { - if (strategy(schema, instance, ast, dynamicAnchors, quiet)) { + if (strategy(schema, instance, context)) { return transitions[schema]; } } diff --git a/lib/keywords/items.js b/lib/keywords/items.js index cd6b3dd..a383963 100644 --- a/lib/keywords/items.js +++ b/lib/keywords/items.js @@ -14,14 +14,14 @@ const compile = async (schema, ast, parentSchema) => { return [numberOfPrefixItems, await Validation.compile(schema, ast)]; }; -const interpret = ([numberOfPrefixItems, items], instance, ast, dynamicAnchors, quiet) => { +const interpret = ([numberOfPrefixItems, items], instance, context) => { if (Instance.typeOf(instance) !== "array") { return true; } let isValid = true; for (const item of drop(numberOfPrefixItems, Instance.iter(instance))) { - if (!Validation.interpret(items, item, ast, dynamicAnchors, quiet)) { + if (!Validation.interpret(items, item, context)) { isValid = false; } } @@ -29,8 +29,8 @@ const interpret = ([numberOfPrefixItems, items], instance, ast, dynamicAnchors, return isValid; }; -const collectEvaluatedItems = (keywordValue, instance, ast, dynamicAnchors) => { - if (!interpret(keywordValue, instance, ast, dynamicAnchors, true)) { +const collectEvaluatedItems = (keywordValue, instance, context) => { + if (!interpret(keywordValue, instance, context)) { return false; } diff --git a/lib/keywords/oneOf.js b/lib/keywords/oneOf.js index a4b8f21..5358a63 100644 --- a/lib/keywords/oneOf.js +++ b/lib/keywords/oneOf.js @@ -11,10 +11,10 @@ const compile = (schema, ast) => pipe( asyncCollectArray ); -const interpret = (oneOf, instance, ast, dynamicAnchors, quiet) => { +const interpret = (oneOf, instance, context) => { let validCount = 0; for (const schemaUrl of oneOf) { - if (Validation.interpret(schemaUrl, instance, ast, dynamicAnchors, quiet)) { + if (Validation.interpret(schemaUrl, instance, context)) { validCount++; } } @@ -22,10 +22,10 @@ const interpret = (oneOf, instance, ast, dynamicAnchors, quiet) => { return validCount === 1; }; -const collectEvaluatedProperties = (oneOf, instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = (oneOf, instance, context) => { let evaluatedProperties = false; for (const schemaUrl of oneOf) { - const propertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, ast, dynamicAnchors); + const propertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, context); if (propertyNames) { if (evaluatedProperties) { return false; @@ -38,10 +38,10 @@ const collectEvaluatedProperties = (oneOf, instance, ast, dynamicAnchors) => { return evaluatedProperties; }; -const collectEvaluatedItems = (oneOf, instance, ast, dynamicAnchors) => { +const collectEvaluatedItems = (oneOf, instance, context) => { let evaluatedItemIndexes = false; for (const schemaUrl of oneOf) { - const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, ast, dynamicAnchors); + const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, context); if (itemIndexes) { if (evaluatedItemIndexes) { return false; diff --git a/lib/keywords/patternProperties.js b/lib/keywords/patternProperties.js index 798229c..7a34451 100644 --- a/lib/keywords/patternProperties.js +++ b/lib/keywords/patternProperties.js @@ -15,7 +15,7 @@ const compile = (schema, ast) => pipe( asyncCollectArray ); -const interpret = (patternProperties, instance, ast, dynamicAnchors, quiet) => { +const interpret = (patternProperties, instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; } @@ -24,7 +24,7 @@ const interpret = (patternProperties, instance, ast, dynamicAnchors, quiet) => { for (const [pattern, schemaUri] of patternProperties) { for (const [propertyNameNode, propertyValue] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); - if (pattern.test(propertyName) && !Validation.interpret(schemaUri, propertyValue, ast, dynamicAnchors, quiet)) { + if (pattern.test(propertyName) && !Validation.interpret(schemaUri, propertyValue, context)) { isValid = false; } } @@ -33,7 +33,7 @@ const interpret = (patternProperties, instance, ast, dynamicAnchors, quiet) => { return isValid; }; -const collectEvaluatedProperties = (patternProperties, instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = (patternProperties, instance, context) => { if (Instance.typeOf(instance) !== "object") { return false; } @@ -43,7 +43,7 @@ const collectEvaluatedProperties = (patternProperties, instance, ast, dynamicAnc for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); if (pattern.test(propertyName)) { - if (!Validation.interpret(propertySchema, property, ast, dynamicAnchors, true)) { + if (!Validation.interpret(propertySchema, property, context)) { return false; } diff --git a/lib/keywords/prefixItems.js b/lib/keywords/prefixItems.js index 4ceda4c..1f89765 100644 --- a/lib/keywords/prefixItems.js +++ b/lib/keywords/prefixItems.js @@ -12,7 +12,7 @@ const compile = (schema, ast) => pipe( asyncCollectArray ); -const interpret = (prefixItems, instance, ast, dynamicAnchors, quiet) => { +const interpret = (prefixItems, instance, context) => { if (Instance.typeOf(instance) !== "array") { return true; } @@ -25,7 +25,7 @@ const interpret = (prefixItems, instance, ast, dynamicAnchors, quiet) => { break; } - if (!Validation.interpret(schemaUri, item, ast, dynamicAnchors, quiet)) { + if (!Validation.interpret(schemaUri, item, context)) { isValid = false; } @@ -35,8 +35,8 @@ const interpret = (prefixItems, instance, ast, dynamicAnchors, quiet) => { return isValid; }; -const collectEvaluatedItems = (items, instance, ast, dynamicAnchors) => { - return interpret(items, instance, ast, dynamicAnchors, true) && new Set(items.map((_item, ndx) => ndx)); +const collectEvaluatedItems = (items, instance, context) => { + return interpret(items, instance, context) && new Set(items.map((_item, ndx) => ndx)); }; export default { id, compile, interpret, collectEvaluatedItems }; diff --git a/lib/keywords/properties.js b/lib/keywords/properties.js index 5060e16..38d2cd2 100644 --- a/lib/keywords/properties.js +++ b/lib/keywords/properties.js @@ -12,7 +12,7 @@ const compile = (schema, ast) => pipe( asyncCollectObject ); -const interpret = (properties, instance, ast, dynamicAnchors, quiet) => { +const interpret = (properties, instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; } @@ -20,7 +20,7 @@ const interpret = (properties, instance, ast, dynamicAnchors, quiet) => { let isValid = true; for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); - if (propertyName in properties && !Validation.interpret(properties[propertyName], property, ast, dynamicAnchors, quiet)) { + if (propertyName in properties && !Validation.interpret(properties[propertyName], property, context)) { isValid = false; } } @@ -28,7 +28,7 @@ const interpret = (properties, instance, ast, dynamicAnchors, quiet) => { return isValid; }; -const collectEvaluatedProperties = (properties, instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = (properties, instance, context) => { if (Instance.typeOf(instance) !== "object") { return false; } @@ -37,7 +37,7 @@ const collectEvaluatedProperties = (properties, instance, ast, dynamicAnchors) = for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); if (propertyName in properties) { - if (!Validation.interpret(properties[propertyName], property, ast, dynamicAnchors, true)) { + if (!Validation.interpret(properties[propertyName], property, context)) { return false; } diff --git a/lib/keywords/propertyDependencies.js b/lib/keywords/propertyDependencies.js index b26575f..62a7ce2 100644 --- a/lib/keywords/propertyDependencies.js +++ b/lib/keywords/propertyDependencies.js @@ -20,7 +20,7 @@ const compile = (schema, ast) => { ); }; -const interpret = (propertyDependencies, instance, ast, dynamicAnchors, quiet) => { +const interpret = (propertyDependencies, instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; } @@ -32,7 +32,7 @@ const interpret = (propertyDependencies, instance, ast, dynamicAnchors, quiet) = if ( Instance.has(propertyName, instance) && propertyValue in valueMappings - && !Validation.interpret(valueMappings[propertyValue], instance, ast, dynamicAnchors, quiet) + && !Validation.interpret(valueMappings[propertyValue], instance, context) ) { isValid = false; } @@ -41,14 +41,14 @@ const interpret = (propertyDependencies, instance, ast, dynamicAnchors, quiet) = return isValid; }; -const collectEvaluatedProperties = (propertyDependencies, instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = (propertyDependencies, instance, context) => { const evaluatedPropertyNames = new Set(); for (const propertyName in propertyDependencies) { const propertyValue = Instance.value(instance)[propertyName]; const valueMappings = propertyDependencies[propertyName]; if (Instance.has(propertyName, instance) && propertyValue in valueMappings) { - const propertyNames = Validation.collectEvaluatedProperties(valueMappings[propertyValue], instance, ast, dynamicAnchors); + const propertyNames = Validation.collectEvaluatedProperties(valueMappings[propertyValue], instance, context); if (!propertyNames) { return false; } diff --git a/lib/keywords/propertyNames.js b/lib/keywords/propertyNames.js index 24ff71b..b4588e1 100644 --- a/lib/keywords/propertyNames.js +++ b/lib/keywords/propertyNames.js @@ -6,14 +6,14 @@ const id = "https://json-schema.org/keyword/propertyNames"; const compile = (schema, ast) => Validation.compile(schema, ast); -const interpret = (propertyNames, instance, ast, dynamicAnchors) => { +const interpret = (propertyNames, instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; } let isValid = true; for (const key of Instance.keys(instance)) { - if (!Validation.interpret(propertyNames, key, ast, dynamicAnchors, true)) { + if (!Validation.interpret(propertyNames, key, { ...context, annotations: [] })) { isValid = false; } } diff --git a/lib/keywords/readOnly.js b/lib/keywords/readOnly.js index 27c897b..4c12aa5 100644 --- a/lib/keywords/readOnly.js +++ b/lib/keywords/readOnly.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/readOnly"; const compile = (schema) => Browser.value(schema); -const interpret = (readOnly, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, readOnly); +const interpret = (readOnly, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: readOnly + }); return true; }; diff --git a/lib/keywords/then.js b/lib/keywords/then.js index 88e8053..3ef9d26 100644 --- a/lib/keywords/then.js +++ b/lib/keywords/then.js @@ -1,6 +1,6 @@ import * as Browser from "@hyperjump/browser"; -import { getKeywordName } from "../keywords.js"; -import { Validation } from "../experimental.js"; +import { FLAG } from "../index.js"; +import { getKeywordName, Validation } from "../experimental.js"; const id = "https://json-schema.org/keyword/then"; @@ -15,26 +15,26 @@ const compile = async (schema, ast, parentSchema) => { } }; -const interpret = ([ifSchema, thenSchema], instance, ast, dynamicAnchors, quiet) => { +const interpret = ([ifSchema, thenSchema], instance, context) => { return ifSchema === undefined - || !Validation.interpret(ifSchema, instance, ast, dynamicAnchors, true) - || Validation.interpret(thenSchema, instance, ast, dynamicAnchors, quiet); + || !Validation.interpret(ifSchema, instance, { ...context, errors: [], annotations: [], outputFormat: FLAG }) + || Validation.interpret(thenSchema, instance, context); }; -const collectEvaluatedProperties = ([ifSchema, thenSchema], instance, ast, dynamicAnchors) => { - if (ifSchema === undefined || !Validation.interpret(ifSchema, instance, ast, dynamicAnchors, true)) { +const collectEvaluatedProperties = ([ifSchema, thenSchema], instance, context) => { + if (ifSchema === undefined || !Validation.interpret(ifSchema, instance, context)) { return new Set(); } - return Validation.collectEvaluatedProperties(thenSchema, instance, ast, dynamicAnchors); + return Validation.collectEvaluatedProperties(thenSchema, instance, context); }; -const collectEvaluatedItems = ([ifSchema, thenSchema], instance, ast, dynamicAnchors) => { - if (ifSchema === undefined || !Validation.interpret(ifSchema, instance, ast, dynamicAnchors, true)) { +const collectEvaluatedItems = ([ifSchema, thenSchema], instance, context) => { + if (ifSchema === undefined || !Validation.interpret(ifSchema, instance, context)) { return new Set(); } - return Validation.collectEvaluatedItems(thenSchema, instance, ast, dynamicAnchors); + return Validation.collectEvaluatedItems(thenSchema, instance, context); }; export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; diff --git a/lib/keywords/title.js b/lib/keywords/title.js index 7f3faef..63c7cb6 100644 --- a/lib/keywords/title.js +++ b/lib/keywords/title.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/title"; const compile = (schema) => Browser.value(schema); -const interpret = (title, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, title); +const interpret = (title, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: title + }); return true; }; diff --git a/lib/keywords/unevaluatedItems.js b/lib/keywords/unevaluatedItems.js index 8f9c28b..82136ce 100644 --- a/lib/keywords/unevaluatedItems.js +++ b/lib/keywords/unevaluatedItems.js @@ -1,7 +1,7 @@ import { zip, range } from "@hyperjump/pact"; +import { FLAG } from "../index.js"; +import { canonicalUri, Validation } from "../experimental.js"; import * as Instance from "../instance.js"; -import { canonicalUri } from "../schema.js"; -import { Validation } from "../experimental.js"; const id = "https://json-schema.org/keyword/unevaluatedItems"; @@ -10,19 +10,20 @@ const compile = async (schema, ast, parentSchema) => { return [canonicalUri(parentSchema), await Validation.compile(schema, ast)]; }; -const interpret = ([schemaUrl, unevaluatedItems], instance, ast, dynamicAnchors, quiet) => { +const interpret = ([schemaUrl, unevaluatedItems], instance, context) => { if (Instance.typeOf(instance) !== "array") { return true; } - const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, ast, dynamicAnchors, true); + const keywordContext = { ...context, errors: [], annotations: [], outputFormat: FLAG }; + const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, keywordContext, true); if (itemIndexes === false) { return true; } let isValid = true; for (const [item, index] of zip(Instance.iter(instance), range(0))) { - if (!itemIndexes.has(index) && !Validation.interpret(unevaluatedItems, item, ast, dynamicAnchors, quiet)) { + if (!itemIndexes.has(index) && !Validation.interpret(unevaluatedItems, item, context)) { isValid = false; } } @@ -30,8 +31,8 @@ const interpret = ([schemaUrl, unevaluatedItems], instance, ast, dynamicAnchors, return isValid; }; -const collectEvaluatedItems = (keywordValue, instance, ast, dynamicAnchors) => { - const itemIndexes = Validation.collectEvaluatedItems(keywordValue[0], instance, ast, dynamicAnchors, true); +const collectEvaluatedItems = (keywordValue, instance, context) => { + const itemIndexes = Validation.collectEvaluatedItems(keywordValue[0], instance, context, true); if (!itemIndexes) { return false; } diff --git a/lib/keywords/unevaluatedProperties.js b/lib/keywords/unevaluatedProperties.js index 24749de..0b19a41 100644 --- a/lib/keywords/unevaluatedProperties.js +++ b/lib/keywords/unevaluatedProperties.js @@ -1,3 +1,4 @@ +import { FLAG } from "../index.js"; import { Validation, canonicalUri } from "../experimental.js"; import * as Instance from "../instance.js"; @@ -8,12 +9,13 @@ const compile = async (schema, ast, parentSchema) => { return [canonicalUri(parentSchema), await Validation.compile(schema, ast)]; }; -const interpret = ([schemaUrl, unevaluatedProperties], instance, ast, dynamicAnchors, quiet) => { +const interpret = ([schemaUrl, unevaluatedProperties], instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; } - const evaluatedPropertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, ast, dynamicAnchors, true); + const keywordContext = { ...context, errors: [], annotations: [], outputFormat: FLAG }; + const evaluatedPropertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, keywordContext, true); if (evaluatedPropertyNames === false) { return true; } @@ -21,7 +23,7 @@ const interpret = ([schemaUrl, unevaluatedProperties], instance, ast, dynamicAnc let isValid = true; for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); - if (!evaluatedPropertyNames.has(propertyName) && !Validation.interpret(unevaluatedProperties, property, ast, dynamicAnchors, quiet)) { + if (!evaluatedPropertyNames.has(propertyName) && !Validation.interpret(unevaluatedProperties, property, context)) { isValid = false; } } @@ -29,12 +31,12 @@ const interpret = ([schemaUrl, unevaluatedProperties], instance, ast, dynamicAnc return isValid; }; -const collectEvaluatedProperties = ([schemaUrl, unevaluatedProperties], instance, ast, dynamicAnchors) => { +const collectEvaluatedProperties = ([schemaUrl, unevaluatedProperties], instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; } - const evaluatedPropertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, ast, dynamicAnchors, true); + const evaluatedPropertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, context, true); if (!evaluatedPropertyNames) { return false; @@ -43,7 +45,7 @@ const collectEvaluatedProperties = ([schemaUrl, unevaluatedProperties], instance for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); if (!evaluatedPropertyNames.has(propertyName)) { - if (!Validation.interpret(unevaluatedProperties, property, ast, dynamicAnchors, true)) { + if (!Validation.interpret(unevaluatedProperties, property, context)) { return false; } diff --git a/lib/keywords/unknown.js b/lib/keywords/unknown.js index 9bc6ec8..aa043b1 100644 --- a/lib/keywords/unknown.js +++ b/lib/keywords/unknown.js @@ -10,9 +10,14 @@ const compile = (schema) => { return [keywordName, Browser.value(schema)]; }; -const interpret = ([keywordName, value], instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { +const interpret = ([keywordName, value], instance, { annotations, schemaUri }) => { const keywordId = `${id}#${keywordName}`; - Instance.setAnnotation(instance, keywordId, schemaLocation, value); + annotations.push({ + keyword: keywordId, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: value + }); return true; }; diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index 6ac4951..3666349 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -2,6 +2,7 @@ import { value, entries } from "@hyperjump/browser"; import { pipe, asyncMap, asyncCollectArray } from "@hyperjump/pact"; import { append as pointerAppend } from "@hyperjump/json-pointer"; import { publishAsync } from "../pubsub.js"; +import * as Instance from "../instance.js"; import { toAbsoluteUri } from "../common.js"; import { canonicalUri, getKeyword, getKeywordByName } from "../experimental.js"; @@ -43,48 +44,63 @@ const compile = async (schema, ast) => { return url; }; -const interpret = (url, instance, ast, dynamicAnchors, quiet = false) => { +const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations }) => { dynamicAnchors = { ...ast.metaData[toAbsoluteUri(url)].dynamicAnchors, ...dynamicAnchors }; - let isSchemaValid = true; if (typeof ast[url] === "boolean") { - isSchemaValid = ast[url]; + if (ast[url]) { + return true; + } else { + errors.push({ + keyword: id, + absoluteKeywordLocation: url, + instanceLocation: Instance.uri(instance) + }); + return false; + } } else { - for (const [keywordId, schemaUrl, keywordValue] of ast[url]) { - instance.valid = getKeyword(keywordId).interpret(keywordValue, instance, ast, dynamicAnchors, quiet, url); - if (!instance.valid) { - if (!quiet) { - instance.errors[schemaUrl] = keywordId; - } + const schemaAnnotations = []; + + let isSchemaValid = true; + for (const [keywordId, schemaUri, keywordValue] of ast[url]) { + const context = { ast, dynamicAnchors, schemaUri, errors: [], annotations: [] }; + if (!getKeyword(keywordId).interpret(keywordValue, instance, context)) { isSchemaValid = false; + errors.push({ + keyword: keywordId, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance) + }); + errors.push(...context.errors); + } else { + schemaAnnotations.push(...context.annotations); } } - } - if (!isSchemaValid) { - instance.errors[url] = id; - } + if (isSchemaValid) { + annotations.push(...schemaAnnotations); + } - instance.valid = isSchemaValid; - return isSchemaValid; + return isSchemaValid; + } }; const emptyPropertyNames = new Set(); -const collectEvaluatedProperties = (url, instance, ast, dynamicAnchors, isTop = false) => { - if (typeof ast[url] === "boolean") { - return ast[url] ? new Set() : false; +const collectEvaluatedProperties = (url, instance, context, isTop = false) => { + if (typeof context.ast[url] === "boolean") { + return context.ast[url] ? emptyPropertyNames : false; } const accumulatedPropertyNames = new Set(); - for (const [keywordId, , keywordValue] of ast[url]) { + for (const [keywordId, , keywordValue] of context.ast[url]) { if (isTop && keywordId === "https://json-schema.org/keyword/unevaluatedProperties") { continue; } const keywordHandler = getKeyword(keywordId); const propertyNames = "collectEvaluatedProperties" in keywordHandler - ? keywordHandler.collectEvaluatedProperties(keywordValue, instance, ast, dynamicAnchors, isTop) - : keywordHandler.interpret(keywordValue, instance, ast, dynamicAnchors, true) && emptyPropertyNames; + ? keywordHandler.collectEvaluatedProperties(keywordValue, instance, context, isTop) + : keywordHandler.interpret(keywordValue, instance, context) && emptyPropertyNames; if (propertyNames === false) { return false; @@ -97,21 +113,21 @@ const collectEvaluatedProperties = (url, instance, ast, dynamicAnchors, isTop = }; const emptyItemIndexes = new Set(); -const collectEvaluatedItems = (url, instance, ast, dynamicAnchors, isTop = false) => { - if (typeof ast[url] === "boolean") { - return ast[url] ? new Set() : false; +const collectEvaluatedItems = (url, instance, context, isTop = false) => { + if (typeof context.ast[url] === "boolean") { + return context.ast[url] ? emptyItemIndexes : false; } const accumulatedItemIndexes = new Set(); - for (const [keywordId, , keywordValue] of ast[url]) { + for (const [keywordId, , keywordValue] of context.ast[url]) { if (isTop && keywordId === "https://json-schema.org/keyword/unevaluatedItems") { continue; } const keywordHandler = getKeyword(keywordId); const itemIndexes = "collectEvaluatedItems" in keywordHandler - ? keywordHandler.collectEvaluatedItems(keywordValue, instance, ast, dynamicAnchors, isTop) - : keywordHandler.interpret(keywordValue, instance, ast, dynamicAnchors, true) && emptyItemIndexes; + ? keywordHandler.collectEvaluatedItems(keywordValue, instance, context, isTop) + : keywordHandler.interpret(keywordValue, instance, context) && emptyItemIndexes; if (itemIndexes === false) { return false; diff --git a/lib/keywords/writeOnly.js b/lib/keywords/writeOnly.js index e63203e..b906993 100644 --- a/lib/keywords/writeOnly.js +++ b/lib/keywords/writeOnly.js @@ -6,8 +6,13 @@ const id = "https://json-schema.org/keyword/writeOnly"; const compile = (schema) => Browser.value(schema); -const interpret = (writeOnly, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, writeOnly); +const interpret = (writeOnly, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: writeOnly + }); return true; }; diff --git a/lib/output.js b/lib/output.js deleted file mode 100644 index ea1b5b0..0000000 --- a/lib/output.js +++ /dev/null @@ -1,41 +0,0 @@ -import * as Instance from "./instance.js"; - - -const outputFormats = {}; - -export const toOutputFormat = (node, outputFormat) => { - if (outputFormat in outputFormats) { - return outputFormats[outputFormat](node); - } else { - throw Error(`The '${outputFormat}' error format is not supported`); - } -}; - -outputFormats.FLAG = (instance) => { - return { valid: instance.valid }; -}; - -outputFormats.BASIC = (instance) => { - const output = { - valid: instance.valid - }; - - if (!instance.valid) { - output.errors = []; - - for (const child of Instance.allNodes(instance)) { - for (const [absoluteKeywordLocation, keyword] of Object.entries(child.errors).reverse()) { - if (keyword !== "https://json-schema.org/evaluation/validate" && !child.valid) { - output.errors.unshift({ - keyword, - absoluteKeywordLocation, - instanceLocation: Instance.uri(child), - valid: child.valid - }); - } - } - } - } - - return output; -}; diff --git a/lib/output.spec.js b/lib/output.spec.js new file mode 100644 index 0000000..2051a69 --- /dev/null +++ b/lib/output.spec.js @@ -0,0 +1,1267 @@ +import { afterEach, describe, expect, test } from "vitest"; +import { validate, registerSchema, unregisterSchema } from "../stable/index.js"; +import { BASIC } from "./experimental.js"; + + +describe("Basic Output Format", () => { + const schemaUri = "schema:main"; + const dialectUri = "https://json-schema.org/validation"; + + afterEach(() => { + unregisterSchema(schemaUri); + }); + + describe("$ref", () => { + test("invalid", async () => { + registerSchema({ + $ref: "#/$defs/string", + $defs: { + string: { type: "string" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/ref", + absoluteKeywordLocation: `${schemaUri}#/$ref`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/$defs/string/type`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + $ref: "#/$defs/string", + $defs: { + string: { type: "string" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("additionalProperties", () => { + test("invalid", async () => { + registerSchema({ additionalProperties: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/additionalProperties", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#/foo" + } + ] + }); + }); + + test("invalid - multiple errors", async () => { + registerSchema({ additionalProperties: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: 24 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/additionalProperties", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#/foo" + }, + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#/bar" + } + ] + }); + }); + + test("invalid - schema", async () => { + registerSchema({ + additionalProperties: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/additionalProperties", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties/type`, + instanceLocation: "#/foo" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ additionalProperties: true }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("allOf", () => { + test("invalid", async () => { + registerSchema({ + allOf: [ + { type: "number" }, + { maximum: 5 } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/allOf", + absoluteKeywordLocation: `${schemaUri}#/allOf`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/maximum", + absoluteKeywordLocation: `${schemaUri}#/allOf/1/maximum`, + instanceLocation: "#" + } + ] + }); + }); + + test("invalid - multiple errors", async () => { + registerSchema({ + type: "number", + allOf: [ + { maximum: 2 }, + { maximum: 5 } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/allOf", + absoluteKeywordLocation: `${schemaUri}#/allOf`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/maximum", + absoluteKeywordLocation: `${schemaUri}#/allOf/0/maximum`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/maximum", + absoluteKeywordLocation: `${schemaUri}#/allOf/1/maximum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + allOf: [ + { type: "number" }, + { maximum: 5 } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 3, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("anyOf", () => { + test("invalid", async () => { + registerSchema({ + anyOf: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, true, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/anyOf", + absoluteKeywordLocation: `${schemaUri}#/anyOf`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/anyOf/0/type`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/anyOf/1/type`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + anyOf: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("oneOf", () => { + test("invalid", async () => { + registerSchema({ + oneOf: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, true, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/oneOf", + absoluteKeywordLocation: `${schemaUri}#/oneOf`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/oneOf/0/type`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/oneOf/1/type`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + oneOf: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("not", () => { + test("invalid", async () => { + registerSchema({ + not: { type: "number" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/not", + absoluteKeywordLocation: `${schemaUri}#/not`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + not: { type: "number" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("contains", () => { + test("invalid", async () => { + registerSchema({ + contains: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 2], BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/contains", + absoluteKeywordLocation: `${schemaUri}#/contains`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/contains/type`, + instanceLocation: "#/0" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/contains/type`, + instanceLocation: "#/1" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + contains: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, "foo"], BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("dependentSchemas", () => { + test("invalid", async () => { + registerSchema({ + dependentSchemas: { + foo: { required: ["a"] } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/dependentSchemas", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas/foo/required`, + instanceLocation: "#" + } + ] + }); + }); + + test("invalid - multiple conditions fail", async () => { + registerSchema({ + dependentSchemas: { + foo: { required: ["a"] }, + bar: { required: ["b"] } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: 24 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/dependentSchemas", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas/foo/required`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas/bar/required`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + dependentSchemas: { + foo: { required: ["a"] } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, a: true }, BASIC); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("then", () => { + test("invalid", async () => { + registerSchema({ + if: { type: "string" }, + then: { minLength: 1 } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "", BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/then", + absoluteKeywordLocation: `${schemaUri}#/then`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/minLength", + absoluteKeywordLocation: `${schemaUri}#/then/minLength`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + if: { type: "string" }, + then: { minLength: 1 } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("else", () => { + test("invalid", async () => { + registerSchema({ + type: ["string", "number"], + if: { type: "string" }, + else: { minimum: 42 } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/else", + absoluteKeywordLocation: `${schemaUri}#/else`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/minimum", + absoluteKeywordLocation: `${schemaUri}#/else/minimum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + type: ["string", "number"], + if: { type: "string" }, + else: { minimum: 5 } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("items", () => { + test("invalid", async () => { + registerSchema({ + items: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42, 24], BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/items", + absoluteKeywordLocation: `${schemaUri}#/items`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/items/type`, + instanceLocation: "#/0" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/items/type`, + instanceLocation: "#/1" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + items: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, ["foo"], BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("patternProperties", () => { + test("invalid", async () => { + registerSchema({ + patternProperties: { + "^f": { type: "string" }, + "^b": { type: "number" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: true }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/patternProperties", + absoluteKeywordLocation: `${schemaUri}#/patternProperties`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/patternProperties/%5Ef/type`, + instanceLocation: "#/foo" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/patternProperties/%5Eb/type`, + instanceLocation: "#/bar" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + patternProperties: { + "^f": { type: "string" }, + "^b": { type: "number" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: "a", bar: 42 }, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("prefixItems", () => { + test("invalid", async () => { + registerSchema({ + prefixItems: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42, "foo"], BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/prefixItems", + absoluteKeywordLocation: `${schemaUri}#/prefixItems`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/prefixItems/0/type`, + instanceLocation: "#/0" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/prefixItems/1/type`, + instanceLocation: "#/1" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + prefixItems: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, ["foo", 42], BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("properties", () => { + test("invalid", async () => { + registerSchema({ + properties: { + foo: { type: "string" }, + bar: { type: "number" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: true }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/properties", + absoluteKeywordLocation: `${schemaUri}#/properties`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/properties/foo/type`, + instanceLocation: "#/foo" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/properties/bar/type`, + instanceLocation: "#/bar" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + properties: { + foo: { type: "string" }, + bar: { type: "number" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: "a", bar: 42 }, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("propertyNames", () => { + test("invalid", async () => { + registerSchema({ + propertyNames: { pattern: "^a" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { banana: true, pear: false }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/propertyNames", + absoluteKeywordLocation: `${schemaUri}#/propertyNames`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/pattern", + absoluteKeywordLocation: `${schemaUri}#/propertyNames/pattern`, + instanceLocation: "#/banana" + }, + { + keyword: "https://json-schema.org/keyword/pattern", + absoluteKeywordLocation: `${schemaUri}#/propertyNames/pattern`, + instanceLocation: "#/pear" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + propertyNames: { pattern: "^a" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { apple: true }, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("const", () => { + test("invalid", async () => { + registerSchema({ const: "foo" }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/const", + absoluteKeywordLocation: `${schemaUri}#/const`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ const: "foo" }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("dependentRequired", () => { + test("invalid", async () => { + registerSchema({ + dependentRequired: { + foo: ["a"] + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/dependentRequired", + absoluteKeywordLocation: `${schemaUri}#/dependentRequired`, + instanceLocation: "#" + } + ] + }); + }); + + test("invalid - multiple conditions fail", async () => { + registerSchema({ + dependentRequired: { + foo: ["a"], + bar: ["b"] + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: 24 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/dependentRequired", + absoluteKeywordLocation: `${schemaUri}#/dependentRequired`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + dependentRequired: { + foo: ["a"] + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, a: true }, BASIC); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("enum", () => { + test("invalid", async () => { + registerSchema({ enum: ["foo"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/enum", + absoluteKeywordLocation: `${schemaUri}#/enum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ enum: ["foo"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("exclusiveMaximum", () => { + test("invalid", async () => { + registerSchema({ exclusiveMaximum: 5 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/exclusiveMaximum", + absoluteKeywordLocation: `${schemaUri}#/exclusiveMaximum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ exclusiveMaximum: 42 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("exclusiveMinimum", () => { + test("invalid", async () => { + registerSchema({ exclusiveMinimum: 42 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/exclusiveMinimum", + absoluteKeywordLocation: `${schemaUri}#/exclusiveMinimum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ exclusiveMinimum: 5 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("maxItems", () => { + test("invalid", async () => { + registerSchema({ maxItems: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 2], BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/maxItems", + absoluteKeywordLocation: `${schemaUri}#/maxItems`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ maxItems: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, [], BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("minItems", () => { + test("invalid", async () => { + registerSchema({ minItems: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, [], BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/minItems", + absoluteKeywordLocation: `${schemaUri}#/minItems`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ minItems: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 2], BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("maxLength", () => { + test("invalid", async () => { + registerSchema({ maxLength: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/maxLength", + absoluteKeywordLocation: `${schemaUri}#/maxLength`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ maxLength: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, "a", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("minLength", () => { + test("invalid", async () => { + registerSchema({ minLength: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, "a", BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/minLength", + absoluteKeywordLocation: `${schemaUri}#/minLength`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ minLength: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("maxProperties", () => { + test("invalid", async () => { + registerSchema({ maxProperties: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, { a: 1, b: 2 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/maxProperties", + absoluteKeywordLocation: `${schemaUri}#/maxProperties`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ maxProperties: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("minProperties", () => { + test("invalid", async () => { + registerSchema({ minProperties: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/minProperties", + absoluteKeywordLocation: `${schemaUri}#/minProperties`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ minProperties: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, { a: 1, b: 2 }, BASIC); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("maximum", () => { + test("invalid", async () => { + registerSchema({ maximum: 5 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/maximum", + absoluteKeywordLocation: `${schemaUri}#/maximum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ maximum: 42 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, BASIC); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("minimum", () => { + test("invalid", async () => { + registerSchema({ minimum: 42 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/minimum", + absoluteKeywordLocation: `${schemaUri}#/minimum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ minimum: 5 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("multipleOf", () => { + test("invalid", async () => { + registerSchema({ multipleOf: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 3, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/multipleOf", + absoluteKeywordLocation: `${schemaUri}#/multipleOf`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ multipleOf: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 4, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("pattern", () => { + test("invalid", async () => { + registerSchema({ pattern: "^a" }, schemaUri, dialectUri); + const output = await validate(schemaUri, "banana", BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/pattern", + absoluteKeywordLocation: `${schemaUri}#/pattern`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ pattern: "^a" }, schemaUri, dialectUri); + const output = await validate(schemaUri, "apple", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("required", () => { + test("invalid", async () => { + registerSchema({ required: ["a"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/required`, + instanceLocation: "#" + } + ] + }); + }); + + test("invalid - multiple missing", async () => { + registerSchema({ required: ["a", "b"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/required`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ required: ["a"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, { a: 1 }, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("type", () => { + test("invalid", async () => { + registerSchema({ type: "string" }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/type`, + instanceLocation: "#" + } + ] + }); + }); + + test("invalid - multiple types", async () => { + registerSchema({ type: ["string", "null"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/type`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ type: "string" }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("uniqueItems", () => { + test("invalid", async () => { + registerSchema({ uniqueItems: true }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 1], BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/uniqueItems", + absoluteKeywordLocation: `${schemaUri}#/uniqueItems`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ uniqueItems: true }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 2], BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + test("Multiple errors in schema", async () => { + registerSchema({ + properties: { + foo: { type: "string" }, + bar: { type: "boolean" } + }, + required: ["foo", "bar"] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/properties", + absoluteKeywordLocation: `${schemaUri}#/properties`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/properties/foo/type`, + instanceLocation: "#/foo" + }, + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/required`, + instanceLocation: "#" + } + ] + }); + }); + + test("Deeply nested", async () => { + registerSchema({ + properties: { + foo: { + properties: { + bar: { type: "boolean" } + } + } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: { bar: 42 } }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/properties", + absoluteKeywordLocation: `${schemaUri}#/properties`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/properties", + absoluteKeywordLocation: `${schemaUri}#/properties/foo/properties`, + instanceLocation: "#/foo" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/properties/foo/properties/bar/type`, + instanceLocation: "#/foo/bar" + } + ] + }); + }); +}); diff --git a/openapi-3-0/discriminator.js b/openapi-3-0/discriminator.js index 2a435d3..8308787 100644 --- a/openapi-3-0/discriminator.js +++ b/openapi-3-0/discriminator.js @@ -6,8 +6,13 @@ const id = "https://spec.openapis.org/oas/3.0/keyword/discriminator"; const compile = (schema) => Browser.value(schema); -const interpret = (discriminator, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, discriminator); +const interpret = (discriminator, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: discriminator + }); return true; }; diff --git a/openapi-3-0/example.js b/openapi-3-0/example.js index e835032..8c6a041 100644 --- a/openapi-3-0/example.js +++ b/openapi-3-0/example.js @@ -6,8 +6,13 @@ const id = "https://spec.openapis.org/oas/3.0/keyword/example"; const compile = (schema) => Browser.value(schema); -const interpret = (example, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, example); +const interpret = (example, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: example + }); return true; }; diff --git a/openapi-3-0/externalDocs.js b/openapi-3-0/externalDocs.js index 29aac98..fba7c6b 100644 --- a/openapi-3-0/externalDocs.js +++ b/openapi-3-0/externalDocs.js @@ -6,8 +6,13 @@ const id = "https://spec.openapis.org/oas/3.0/keyword/externalDocs"; const compile = (schema) => Browser.value(schema); -const interpret = (externalDocs, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, externalDocs); +const interpret = (externalDocs, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: externalDocs + }); return true; }; diff --git a/openapi-3-0/xml.js b/openapi-3-0/xml.js index 7bedc5f..151db08 100644 --- a/openapi-3-0/xml.js +++ b/openapi-3-0/xml.js @@ -6,8 +6,13 @@ const id = "https://spec.openapis.org/oas/3.0/keyword/xml"; const compile = (schema) => Browser.value(schema); -const interpret = (xml, instance, _ast, _dynamicAnchors, _quiet, schemaLocation) => { - Instance.setAnnotation(instance, id, schemaLocation, xml); +const interpret = (xml, instance, { annotations, schemaUri }) => { + annotations.push({ + keyword: id, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: xml + }); return true; }; From 080b77e07d9e7041918c905e24c187e1a13ec067 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Mon, 31 Mar 2025 13:14:35 -0700 Subject: [PATCH 06/40] Restore support for DETAILED output --- annotations/index.js | 6 +- bundle/generate-snapshots.js | 5 +- bundle/test-suite.spec.ts | 5 +- lib/core.js | 7 +- lib/experimental.d.ts | 1 + lib/experimental.js | 2 +- lib/keywords/itemPattern.js | 8 +- lib/keywords/validation.js | 22 +- lib/{output.spec.js => output-basic.spec.ts} | 0 lib/output-detailed.spec.ts | 1309 ++++++++++++++++++ 10 files changed, 1345 insertions(+), 20 deletions(-) rename lib/{output.spec.js => output-basic.spec.ts} (100%) create mode 100644 lib/output-detailed.spec.ts diff --git a/annotations/index.js b/annotations/index.js index 11465fb..ce9504e 100644 --- a/annotations/index.js +++ b/annotations/index.js @@ -1,3 +1,4 @@ +import { FLAG } from "../lib/index.js"; import { ValidationError } from "./validation-error.js"; import { getSchema, compile, BASIC } from "../lib/experimental.js"; import Validation from "../lib/keywords/validation.js"; @@ -15,10 +16,11 @@ export const annotate = async (schemaUri, json = undefined, outputFormat = undef export const interpret = ({ ast, schemaUri }, instance, outputFormat = BASIC) => { const errors = []; const annotations = []; - const valid = Validation.interpret(schemaUri, instance, { ast, schemaUri, dynamicAnchors: {}, errors, annotations }); + const context = { ast, schemaUri, dynamicAnchors: {}, errors, annotations, outputFormat }; + const valid = Validation.interpret(schemaUri, instance, context); if (!valid) { - const result = outputFormat === BASIC && !valid ? { valid, errors } : { valid }; + const result = outputFormat === FLAG || valid ? { valid } : { valid, errors }; throw new ValidationError(result); } diff --git a/bundle/generate-snapshots.js b/bundle/generate-snapshots.js index d6cc63e..e8e7346 100644 --- a/bundle/generate-snapshots.js +++ b/bundle/generate-snapshots.js @@ -1,6 +1,6 @@ import { writeFile, mkdir, rm } from "node:fs/promises"; import { isCompatible, md5, loadSchemas, testSuite, unloadSchemas } from "./test-utils.js"; -import { compile, getSchema, Validation } from "../lib/experimental.js"; +import { BASIC, compile, getSchema, Validation } from "../lib/experimental.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; import "../draft-2019-09/index.js"; @@ -30,7 +30,8 @@ const snapshotGenerator = async (version, dialect) => { const instance = Instance.fromJs(test.instance); const errors = []; const annotations = []; - const valid = Validation.interpret(schemaUri, instance, { ast, schemaUri, dynamicAnchors: {}, errors, annotations }); + const context = { ast, schemaUri, dynamicAnchors: {}, errors, annotations, outputFormat: BASIC }; + const valid = Validation.interpret(schemaUri, instance, context); const expectedOutput = { valid, errors, annotations }; diff --git a/bundle/test-suite.spec.ts b/bundle/test-suite.spec.ts index f90c959..05be0b5 100644 --- a/bundle/test-suite.spec.ts +++ b/bundle/test-suite.spec.ts @@ -2,7 +2,7 @@ import { readFile } from "node:fs/promises"; import { describe, it, expect, beforeAll, afterAll } from "vitest"; import { isCompatible, md5, loadSchemas, unloadSchemas, testSuite } from "./test-utils.js"; import { registerSchema, unregisterSchema } from "../lib/index.js"; -import { compile, getKeywordName, getSchema, Validation } from "../lib/experimental.js"; +import { BASIC, compile, getKeywordName, getSchema, Validation } from "../lib/experimental.js"; import * as Instance from "../lib/instance.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; @@ -60,7 +60,8 @@ const testRunner = (version: number, dialect: string) => { const instance = Instance.fromJs(test.instance); const errors: OutputUnit[] = []; const annotations: OutputUnit[] = []; - const valid = Validation.interpret(schemaUri, instance, { ast, schemaUri, dynamicAnchors: {}, errors, annotations }); + const context = { ast, schemaUri, dynamicAnchors: {}, errors, annotations, outputFormat: BASIC }; + const valid = Validation.interpret(schemaUri, instance, context); const output = { valid, errors, annotations }; diff --git a/lib/core.js b/lib/core.js index 6aaf51a..e7bfd6e 100644 --- a/lib/core.js +++ b/lib/core.js @@ -13,7 +13,7 @@ import { getKeywordName } from "./keywords.js"; import Validation from "./keywords/validation.js"; -export const FLAG = "FLAG", BASIC = "BASIC"; +export const FLAG = "FLAG", BASIC = "BASIC", DETAILED = "DETAILED"; setMetaSchemaOutputFormat(FLAG); export const validate = async (url, value = undefined, outputFormat = undefined) => { @@ -32,8 +32,9 @@ export const compile = async (schema) => { export const interpret = curry(({ ast, schemaUri }, instance, outputFormat = FLAG) => { const errors = []; - const valid = Validation.interpret(schemaUri, instance, { ast, schemaUri, dynamicAnchors: {}, errors, annotations: [] }); - return outputFormat === BASIC && !valid ? { valid, errors } : { valid }; + const context = { ast, schemaUri, dynamicAnchors: {}, errors, annotations: [], outputFormat }; + const valid = Validation.interpret(schemaUri, instance, context); + return outputFormat === FLAG || valid ? { valid } : { valid, errors }; }); const metaValidators = {}; diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index e7d52fd..62603fa 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -32,6 +32,7 @@ type Anchors = Record; // Output Formats export const BASIC: "BASIC"; +export const DETAILED: "DETAILED"; // Schema export const getSchema: (uri: string, browser?: Browser) => Promise>; diff --git a/lib/experimental.js b/lib/experimental.js index 6e5ef49..cc2cbec 100644 --- a/lib/experimental.js +++ b/lib/experimental.js @@ -1,4 +1,4 @@ -export { compile, interpret, BASIC } from "./core.js"; +export { compile, interpret, BASIC, DETAILED } from "./core.js"; export { addKeyword, getKeyword, getKeywordByName, getKeywordName, getKeywordId, defineVocabulary, diff --git a/lib/keywords/itemPattern.js b/lib/keywords/itemPattern.js index 869ee42..b5f852f 100644 --- a/lib/keywords/itemPattern.js +++ b/lib/keywords/itemPattern.js @@ -39,7 +39,7 @@ const compile = async (schema, ast) => { .reduce(union); }; -const evaluate = (strategy) => (nfa, instance, context) => { +const evaluate = (strategy, nfa, instance, context) => { if (Instance.typeOf(instance) !== "array") { return true; } @@ -84,8 +84,8 @@ const transition = (strategy, transitions, instance, context) => { } }; -const interpret = evaluate(Validation.interpret); -const collectEvalatedProperties = evaluate(Validation.collectEvaluatedProperties); -const collectEvalatedItems = evaluate(Validation.collectEvaluatedItems); +const interpret = (...args) => evaluate(Validation.interpret, ...args); +const collectEvalatedProperties = (...args) => evaluate(Validation.collectEvaluatedProperties, ...args); +const collectEvalatedItems = (...args) => evaluate(Validation.collectEvaluatedItems, ...args); export default { id, compile, interpret, collectEvalatedProperties, collectEvalatedItems }; diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index 3666349..69b81e9 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -4,7 +4,8 @@ import { append as pointerAppend } from "@hyperjump/json-pointer"; import { publishAsync } from "../pubsub.js"; import * as Instance from "../instance.js"; import { toAbsoluteUri } from "../common.js"; -import { canonicalUri, getKeyword, getKeywordByName } from "../experimental.js"; +import { canonicalUri, getKeyword, getKeywordByName, BASIC, DETAILED } from "../experimental.js"; +import { FLAG } from "../index.js"; const id = "https://json-schema.org/evaluation/validate"; @@ -44,7 +45,7 @@ const compile = async (schema, ast) => { return url; }; -const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations }) => { +const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, outputFormat }) => { dynamicAnchors = { ...ast.metaData[toAbsoluteUri(url)].dynamicAnchors, ...dynamicAnchors }; if (typeof ast[url] === "boolean") { @@ -63,15 +64,24 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations }) let isSchemaValid = true; for (const [keywordId, schemaUri, keywordValue] of ast[url]) { - const context = { ast, dynamicAnchors, schemaUri, errors: [], annotations: [] }; + const context = { ast, dynamicAnchors, schemaUri, errors: [], annotations: [], outputFormat }; if (!getKeyword(keywordId).interpret(keywordValue, instance, context)) { isSchemaValid = false; - errors.push({ + if (outputFormat === FLAG) { + continue; + } + + const outputUnit = { keyword: keywordId, absoluteKeywordLocation: schemaUri, instanceLocation: Instance.uri(instance) - }); - errors.push(...context.errors); + }; + errors.push(outputUnit); + if (outputFormat === DETAILED && context.errors.length > 0) { + outputUnit.errors = context.errors; + } else if (outputFormat === BASIC) { + errors.push(...context.errors); + } } else { schemaAnnotations.push(...context.annotations); } diff --git a/lib/output.spec.js b/lib/output-basic.spec.ts similarity index 100% rename from lib/output.spec.js rename to lib/output-basic.spec.ts diff --git a/lib/output-detailed.spec.ts b/lib/output-detailed.spec.ts new file mode 100644 index 0000000..8b9ce10 --- /dev/null +++ b/lib/output-detailed.spec.ts @@ -0,0 +1,1309 @@ +import { afterEach, describe, expect, test } from "vitest"; +import { validate, registerSchema, unregisterSchema } from "../stable/index.js"; +import { DETAILED } from "./experimental.js"; + + +describe("Detailed Output Format", () => { + const schemaUri = "schema:main"; + const dialectUri = "https://json-schema.org/validation"; + + afterEach(() => { + unregisterSchema(schemaUri); + }); + + describe("$ref", () => { + test("invalid", async () => { + registerSchema({ + $ref: "#/$defs/string", + $defs: { + string: { type: "string" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/ref", + absoluteKeywordLocation: `${schemaUri}#/$ref`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/$defs/string/type`, + instanceLocation: "#" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + $ref: "#/$defs/string", + $defs: { + string: { type: "string" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("additionalProperties", () => { + test("invalid", async () => { + registerSchema({ additionalProperties: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/additionalProperties", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#/foo" + } + ] + } + ] + }); + }); + + test("invalid - multiple errors", async () => { + registerSchema({ additionalProperties: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: 24 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/additionalProperties", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#/foo" + }, + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#/bar" + } + ] + } + ] + }); + }); + + test("invalid - schema", async () => { + registerSchema({ + additionalProperties: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/additionalProperties", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/additionalProperties/type`, + instanceLocation: "#/foo" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ additionalProperties: true }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("allOf", () => { + test("invalid", async () => { + registerSchema({ + allOf: [ + { type: "number" }, + { maximum: 5 } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/allOf", + absoluteKeywordLocation: `${schemaUri}#/allOf`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/maximum", + absoluteKeywordLocation: `${schemaUri}#/allOf/1/maximum`, + instanceLocation: "#" + } + ] + } + ] + }); + }); + + test("invalid - multiple errors", async () => { + registerSchema({ + type: "number", + allOf: [ + { maximum: 2 }, + { maximum: 5 } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/allOf", + absoluteKeywordLocation: `${schemaUri}#/allOf`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/maximum", + absoluteKeywordLocation: `${schemaUri}#/allOf/0/maximum`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/maximum", + absoluteKeywordLocation: `${schemaUri}#/allOf/1/maximum`, + instanceLocation: "#" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + allOf: [ + { type: "number" }, + { maximum: 5 } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 3, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("anyOf", () => { + test("invalid", async () => { + registerSchema({ + anyOf: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, true, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/anyOf", + absoluteKeywordLocation: `${schemaUri}#/anyOf`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/anyOf/0/type`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/anyOf/1/type`, + instanceLocation: "#" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + anyOf: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("oneOf", () => { + test("invalid", async () => { + registerSchema({ + oneOf: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, true, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/oneOf", + absoluteKeywordLocation: `${schemaUri}#/oneOf`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/oneOf/0/type`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/oneOf/1/type`, + instanceLocation: "#" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + oneOf: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("not", () => { + test("invalid", async () => { + registerSchema({ + not: { type: "number" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/not", + absoluteKeywordLocation: `${schemaUri}#/not`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + not: { type: "number" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("contains", () => { + test("invalid", async () => { + registerSchema({ + contains: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 2], DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/contains", + absoluteKeywordLocation: `${schemaUri}#/contains`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/contains/type`, + instanceLocation: "#/0" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/contains/type`, + instanceLocation: "#/1" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + contains: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, "foo"], DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("dependentSchemas", () => { + test("invalid", async () => { + registerSchema({ + dependentSchemas: { + foo: { required: ["a"] } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/dependentSchemas", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas/foo/required`, + instanceLocation: "#" + } + ] + } + ] + }); + }); + + test("invalid - multiple conditions fail", async () => { + registerSchema({ + dependentSchemas: { + foo: { required: ["a"] }, + bar: { required: ["b"] } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: 24 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/dependentSchemas", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas/foo/required`, + instanceLocation: "#" + }, + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/dependentSchemas/bar/required`, + instanceLocation: "#" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + dependentSchemas: { + foo: { required: ["a"] } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, a: true }, DETAILED); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("then", () => { + test("invalid", async () => { + registerSchema({ + if: { type: "string" }, + then: { minLength: 1 } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "", DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/then", + absoluteKeywordLocation: `${schemaUri}#/then`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/minLength", + absoluteKeywordLocation: `${schemaUri}#/then/minLength`, + instanceLocation: "#" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + if: { type: "string" }, + then: { minLength: 1 } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("else", () => { + test("invalid", async () => { + registerSchema({ + type: ["string", "number"], + if: { type: "string" }, + else: { minimum: 42 } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/else", + absoluteKeywordLocation: `${schemaUri}#/else`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/minimum", + absoluteKeywordLocation: `${schemaUri}#/else/minimum`, + instanceLocation: "#" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + type: ["string", "number"], + if: { type: "string" }, + else: { minimum: 5 } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("items", () => { + test("invalid", async () => { + registerSchema({ + items: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42, 24], DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/items", + absoluteKeywordLocation: `${schemaUri}#/items`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/items/type`, + instanceLocation: "#/0" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/items/type`, + instanceLocation: "#/1" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + items: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, ["foo"], DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("patternProperties", () => { + test("invalid", async () => { + registerSchema({ + patternProperties: { + "^f": { type: "string" }, + "^b": { type: "number" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: true }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/patternProperties", + absoluteKeywordLocation: `${schemaUri}#/patternProperties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/patternProperties/%5Ef/type`, + instanceLocation: "#/foo" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/patternProperties/%5Eb/type`, + instanceLocation: "#/bar" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + patternProperties: { + "^f": { type: "string" }, + "^b": { type: "number" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: "a", bar: 42 }, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("prefixItems", () => { + test("invalid", async () => { + registerSchema({ + prefixItems: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42, "foo"], DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/prefixItems", + absoluteKeywordLocation: `${schemaUri}#/prefixItems`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/prefixItems/0/type`, + instanceLocation: "#/0" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/prefixItems/1/type`, + instanceLocation: "#/1" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + prefixItems: [ + { type: "string" }, + { type: "number" } + ] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, ["foo", 42], DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("properties", () => { + test("invalid", async () => { + registerSchema({ + properties: { + foo: { type: "string" }, + bar: { type: "number" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: true }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/properties", + absoluteKeywordLocation: `${schemaUri}#/properties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/properties/foo/type`, + instanceLocation: "#/foo" + }, + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/properties/bar/type`, + instanceLocation: "#/bar" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + properties: { + foo: { type: "string" }, + bar: { type: "number" } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: "a", bar: 42 }, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("propertyNames", () => { + test("invalid", async () => { + registerSchema({ + propertyNames: { pattern: "^a" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { banana: true, pear: false }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/propertyNames", + absoluteKeywordLocation: `${schemaUri}#/propertyNames`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/pattern", + absoluteKeywordLocation: `${schemaUri}#/propertyNames/pattern`, + instanceLocation: "#/banana" + }, + { + keyword: "https://json-schema.org/keyword/pattern", + absoluteKeywordLocation: `${schemaUri}#/propertyNames/pattern`, + instanceLocation: "#/pear" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + propertyNames: { pattern: "^a" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { apple: true }, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("const", () => { + test("invalid", async () => { + registerSchema({ const: "foo" }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/const", + absoluteKeywordLocation: `${schemaUri}#/const`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ const: "foo" }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("dependentRequired", () => { + test("invalid", async () => { + registerSchema({ + dependentRequired: { + foo: ["a"] + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/dependentRequired", + absoluteKeywordLocation: `${schemaUri}#/dependentRequired`, + instanceLocation: "#" + } + ] + }); + }); + + test("invalid - multiple conditions fail", async () => { + registerSchema({ + dependentRequired: { + foo: ["a"], + bar: ["b"] + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: 24 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/dependentRequired", + absoluteKeywordLocation: `${schemaUri}#/dependentRequired`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ + dependentRequired: { + foo: ["a"] + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, a: true }, DETAILED); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("enum", () => { + test("invalid", async () => { + registerSchema({ enum: ["foo"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/enum", + absoluteKeywordLocation: `${schemaUri}#/enum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ enum: ["foo"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("exclusiveMaximum", () => { + test("invalid", async () => { + registerSchema({ exclusiveMaximum: 5 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/exclusiveMaximum", + absoluteKeywordLocation: `${schemaUri}#/exclusiveMaximum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ exclusiveMaximum: 42 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("exclusiveMinimum", () => { + test("invalid", async () => { + registerSchema({ exclusiveMinimum: 42 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/exclusiveMinimum", + absoluteKeywordLocation: `${schemaUri}#/exclusiveMinimum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ exclusiveMinimum: 5 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("maxItems", () => { + test("invalid", async () => { + registerSchema({ maxItems: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 2], DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/maxItems", + absoluteKeywordLocation: `${schemaUri}#/maxItems`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ maxItems: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, [], DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("minItems", () => { + test("invalid", async () => { + registerSchema({ minItems: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, [], DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/minItems", + absoluteKeywordLocation: `${schemaUri}#/minItems`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ minItems: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 2], DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("maxLength", () => { + test("invalid", async () => { + registerSchema({ maxLength: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/maxLength", + absoluteKeywordLocation: `${schemaUri}#/maxLength`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ maxLength: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, "a", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("minLength", () => { + test("invalid", async () => { + registerSchema({ minLength: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, "a", DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/minLength", + absoluteKeywordLocation: `${schemaUri}#/minLength`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ minLength: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("maxProperties", () => { + test("invalid", async () => { + registerSchema({ maxProperties: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, { a: 1, b: 2 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/maxProperties", + absoluteKeywordLocation: `${schemaUri}#/maxProperties`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ maxProperties: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("minProperties", () => { + test("invalid", async () => { + registerSchema({ minProperties: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/minProperties", + absoluteKeywordLocation: `${schemaUri}#/minProperties`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ minProperties: 1 }, schemaUri, dialectUri); + const output = await validate(schemaUri, { a: 1, b: 2 }, DETAILED); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("maximum", () => { + test("invalid", async () => { + registerSchema({ maximum: 5 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/maximum", + absoluteKeywordLocation: `${schemaUri}#/maximum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ maximum: 42 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, DETAILED); + + expect(output).to.eql({ valid: true }); + }); + }); + + describe("minimum", () => { + test("invalid", async () => { + registerSchema({ minimum: 42 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 5, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/minimum", + absoluteKeywordLocation: `${schemaUri}#/minimum`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ minimum: 5 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("multipleOf", () => { + test("invalid", async () => { + registerSchema({ multipleOf: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 3, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/multipleOf", + absoluteKeywordLocation: `${schemaUri}#/multipleOf`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ multipleOf: 2 }, schemaUri, dialectUri); + const output = await validate(schemaUri, 4, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("pattern", () => { + test("invalid", async () => { + registerSchema({ pattern: "^a" }, schemaUri, dialectUri); + const output = await validate(schemaUri, "banana", DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/pattern", + absoluteKeywordLocation: `${schemaUri}#/pattern`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ pattern: "^a" }, schemaUri, dialectUri); + const output = await validate(schemaUri, "apple", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("required", () => { + test("invalid", async () => { + registerSchema({ required: ["a"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/required`, + instanceLocation: "#" + } + ] + }); + }); + + test("invalid - multiple missing", async () => { + registerSchema({ required: ["a", "b"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/required`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ required: ["a"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, { a: 1 }, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("type", () => { + test("invalid", async () => { + registerSchema({ type: "string" }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/type`, + instanceLocation: "#" + } + ] + }); + }); + + test("invalid - multiple types", async () => { + registerSchema({ type: ["string", "null"] }, schemaUri, dialectUri); + const output = await validate(schemaUri, 42, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/type`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ type: "string" }, schemaUri, dialectUri); + const output = await validate(schemaUri, "foo", DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("uniqueItems", () => { + test("invalid", async () => { + registerSchema({ uniqueItems: true }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 1], DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/uniqueItems", + absoluteKeywordLocation: `${schemaUri}#/uniqueItems`, + instanceLocation: "#" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ uniqueItems: true }, schemaUri, dialectUri); + const output = await validate(schemaUri, [1, 2], DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + test("Multiple errors in schema", async () => { + registerSchema({ + properties: { + foo: { type: "string" }, + bar: { type: "boolean" } + }, + required: ["foo", "bar"] + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/properties", + absoluteKeywordLocation: `${schemaUri}#/properties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/properties/foo/type`, + instanceLocation: "#/foo" + } + ] + }, + { + keyword: "https://json-schema.org/keyword/required", + absoluteKeywordLocation: `${schemaUri}#/required`, + instanceLocation: "#" + } + ] + }); + }); + + test("Deeply nested", async () => { + registerSchema({ + properties: { + foo: { + properties: { + bar: { type: "boolean" } + } + } + } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: { bar: 42 } }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/properties", + absoluteKeywordLocation: `${schemaUri}#/properties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/properties", + absoluteKeywordLocation: `${schemaUri}#/properties/foo/properties`, + instanceLocation: "#/foo", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/properties/foo/properties/bar/type`, + instanceLocation: "#/foo/bar" + } + ] + } + ] + } + ] + }); + }); +}); From 5bcd959eed706bc294cebdc2623cfa60d3096a2f Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Mon, 31 Mar 2025 21:23:02 -0700 Subject: [PATCH 07/40] Trim simple applicators from basic output --- README.md | 6 ++ .../0257ca47cb26d95af6cddee31dc7ad4c | 10 --- .../05009caa10a942d85c5fe0515b7eb0d9 | 15 ---- .../09b5adea8278afad071a2d7b5ac4fc81 | 5 -- .../09ecbfa9dbd81a38f0984dba2c5dba2f | 15 ---- .../0a5429dfef8968c6bd88ac3922f55cbc | 10 --- .../0ada8a1e7e71d8771e5fefbf455bcb0d | 5 -- .../0ce5981a970aa2c374dc9921ca3e3745 | 5 -- .../0dcb5cd590f2b70cd9ddbc0ad8f045ce | 5 -- .../0e5d4e29ac0020de6434c0e6250738ec | 15 ---- .../114681e245a0b42f2313fc2e0315a1e7 | 5 -- .../120a1e86ded8c56db704fe602846c6b8 | 5 -- .../12e5d143b07d6a7353a00207cb117789 | 10 --- .../1398f4f3aaf34a96688a7768cbf41ff0 | 20 ----- .../145eeaee28b6389d709d2c98e008a0da | 10 --- .../14a1fe027d91308e0ad53459d6d36724 | 10 --- .../16362d4681a7fc02b09b9af24ae23e82 | 10 --- .../164201e3f9fb61bd594cc5f47cb94d55 | 5 -- .../19c55f511be1beb3e693bac16d756f4a | 15 ---- .../1a625d786c7bb443da8af47f719908da | 10 --- .../1b4dbf42e23483d5bd7ca98b00aaaee0 | 10 --- .../1b50751e8a7dafa55c763c9aec465703 | 10 --- .../1b9f06a2dd38791a0f07e262b40986c0 | 5 -- .../1c5b525dd9558bb3bd0db3a72cda5e5e | 5 -- .../1d8100c94cb9a7cfc0026b535cf41a34 | 15 ---- .../1ef0aeba519a35c6a083cb650433fc6c | 10 --- .../23ce37639303c4cdb4fa6dfe040fc0ff | 5 -- .../23cf9422bf26e5159ea8c7fa1a1b43ff | 15 ---- .../2a079a2f1d3d38713c5857b5126380e3 | 10 --- .../2f48ec33c3279dc7b8a49c068792dc13 | 20 ----- .../2f7960c00691f686f3c067cffb02f4c1 | 10 --- .../306aab4965c938883dcdf33ac166c126 | 5 -- .../3223bc30e1c92f0566849c6940bab742 | 10 --- .../33e5e6eebbbb677a7401180f969c9050 | 10 --- .../33f50872f240cb902c6196c518e53d80 | 15 ---- .../3506fd4483c140b60a6ad8b0e7c371f2 | 5 -- .../379f482275fa7144adc6eb8061b633e2 | 5 -- .../37cf51cc927985382a5a870e89138cc1 | 5 -- .../38e3d0fe6da335bf3be09d75dec08db7 | 10 --- .../3b583d182b168837010145a6bfc28896 | 10 --- .../40c0113f25d0f0302def3b49c18d7610 | 5 -- .../413b750c53f86e1c95e2c75cc930e84e | 10 --- .../41a68d14acb0dc09c57e948216e5a735 | 5 -- .../441aabbe9efb26a2c634cd494c07aa1a | 5 -- .../46083f579195b95d9b2928e15f896230 | 5 -- .../46c15f106452fb1e8856066491320b0f | 10 --- .../47dd56964bedafeb0be6f463294df290 | 10 --- .../4d0ddb9a2f9c4cea66f2d2438f9198ad | 10 --- .../4da98c63a6fb5cf4ccdd1bd18ecee508 | 5 -- .../4f0fd0ffa38dffa6db8a3d1d5d463bcc | 5 -- .../4f19f85845f2e6b0bccfaf8817df9949 | 20 ----- .../50170aa57fcf4eb7d8818e849d9a59a3 | 15 ---- .../53489b6846585e5710b6c31d6794072e | 10 --- .../54608e2ab681d8d36b330e7ce94d0fac | 10 --- .../58990e97544d58f01c0480e37a0d68de | 10 --- .../5b709ee8ce260b37316a856c1dd3af8e | 5 -- .../5e868f5f65688fa850bab82568dd25cf | 20 ----- .../603a07855d1c473b3008bdcd0cd8f730 | 5 -- .../616cc7e409e5bff800d4b7320389ccd2 | 5 -- .../622f70ca5abdb1c83791e4af90532927 | 20 ----- .../62cb227d489063c9e34bd0b20205b3f8 | 5 -- .../64913f6902288200f4baf65507d25418 | 10 --- .../64c6bad0f116a7630121c60f853d058d | 5 -- .../668a142b92014d8a44b96c8ea8d9bd5a | 10 --- .../68b09d584199e39d8c997a45df01121f | 10 --- .../6a4ae86f7a8d2c1d88cd2288eaac3e35 | 10 --- .../6a64bc6825952d799e3b90acb9a198f1 | 10 --- .../6ab177eb2011f6de8e7c36352c166bc8 | 10 --- .../6b386352a3bdc92c705312c051682d06 | 5 -- .../6cdfc10761bf99bf875f463ba7ab3b94 | 20 ----- .../6f095742f6db8534ecd5b6ccd293d37e | 5 -- .../6f544c2096b37a690163579f5e728919 | 10 --- .../743690d9928397863e6c3a28937acdd9 | 5 -- .../75b29268d2cceed3c9894ff6a81235ef | 10 --- .../773f35ea98a5b0395940a1a24bb66f63 | 5 -- .../7788783f799c519551627f00d0bb9cec | 15 ---- .../77a11629cbbbf038001f606f30435472 | 10 --- .../7870eeab5f8ca9101ad59356ae80d8cf | 10 --- .../795cae84dab790d15cda3a397cfd708a | 5 -- .../7972d01ec0044d17b1ad698a09a20893 | 20 ----- .../7a1bcb8d5b6c7d2da38c2fe4b6dfb779 | 15 ---- .../7a2c563c23faa7d9aff4f943b978cfde | 5 -- .../7b7ea518fd130e2b1711645fcd7f2b28 | 5 -- .../7ecb6ad65392ca8b8e34aa3dc0c80986 | 10 --- .../7ee3fcb0e871c2ec5895c816f3b9578f | 20 ----- .../7ff4acb0cfeaae933408014b06fa6223 | 10 --- .../805bb0a258628a33d224b7bc628be763 | 10 --- .../816e852a34eb476ddff3b64b44e6eea4 | 5 -- .../84cb084a44caafafdc02f9572eae88f1 | 5 -- .../8584f2ff7840daccfb1ca94df64eae9b | 10 --- .../87a12f711d50d5c2cd39b331b3fc6247 | 10 --- .../8803185fd392d54d139c871df73eb8e2 | 20 ----- .../885c2c7e506a7b3994ee0712223fe432 | 10 --- .../89c1a21aabbf3a632255bfcaea39e87f | 10 --- .../8b8822ada3f4768fa7ae924560a73398 | 5 -- .../8c6ed6685b94d55160ac6be14fe40ed2 | 10 --- .../8e314f133062f33b1b6608ebdf0be4af | 10 --- .../8e80118d776ce2418345110c62c75f24 | 5 -- .../8ef87b9bde2992f331bc363fdc9f50c6 | 10 --- .../8f0a2b5d0ec288a53862f2c2a2632e5b | 20 ----- .../9058d063196e4a1b6c023ba7d3975114 | 15 ---- .../9439f14bdd1d80840e0dfec5478b6b0d | 10 --- .../951cf14e0d14a1aadf5bdeaa5ed8d2a1 | 5 -- .../9826a4620381995cfc6e938d00979e95 | 10 --- .../990b04d52c40521fb660ded5dc52cdb9 | 10 --- .../9980aa3b3e1c4d06966ec347bffa28d3 | 5 -- .../9b1b667f2966cb8602339540c276802d | 10 --- .../9b8b596cd673f6acb6020628b64323f5 | 5 -- .../9bb39281f85726e4d1295c4d9755bbca | 10 --- .../9d6b6408d87908bfd9f4e34adef25d36 | 10 --- .../9e697bcb061c883e23c4e22b4a4b35cb | 5 -- .../9fa2e59fd4fd83dee0556463433e63d8 | 5 -- .../a08a7afd39db6237f476bcc7a0aea1fc | 5 -- .../a0bb26611b96a65e2b077977fe95b5e5 | 5 -- .../a3f3186aa2664c82fef37f6e07bcb141 | 5 -- .../a46a44d40b69e5a0f9e59f3d5ac39437 | 5 -- .../a57ab912aaa16c60bad64247e7fccc25 | 5 -- .../a68555395ebef6cb83c0cd53ef7c6f55 | 5 -- .../a81b835b39da6615a9a766df0fad3301 | 10 --- .../a8f004bdfb728931d4ef98fb3e581afe | 20 ----- .../a90584694ed77c3c92df6cd3eb2f33f3 | 10 --- .../a9d4bc6419c3955f9d42a176452b9d32 | 5 -- .../aa0a0aed0c2fcea342e956346e0ecc0a | 10 --- .../aa594ba1f60117f136d165089ee87318 | 10 --- .../ab16c3e46683501268ba03cbf4cd96d9 | 15 ---- .../ab51f0cdf303246217f87ce8de260742 | 5 -- .../abaacaaa6fe1fc05fa1a011f49757c5e | 10 --- .../ac4bd6c6837c9be7cbf20f2aa62d0287 | 15 ---- .../aedbee8ad8addf69cd8472bc14456020 | 10 --- .../afa090734d8e0950e64e3edb3b917f7b | 15 ---- .../b17370712f909f37a5634e252a0966cf | 10 --- .../b2351c12e1ff2aeba775d10a8b72f47c | 5 -- .../b3385214d199789cf32f79fe3ab32ec8 | 10 --- .../b49beb308c2fbc7f119a5b577643e971 | 15 ---- .../b4fe30347745da383dfd315ab1d6db4c | 5 -- .../b62326334234db25ab5c9e026d673141 | 5 -- .../b645834450a99e98b200bf71d9028ee2 | 10 --- .../bcda06077e3818330a0949e74f420b1c | 15 ---- .../bd32454ebe7d406fa0c33274b38d77cc | 5 -- .../bf1eee446b935f8dc62dfdd9ea492630 | 10 --- .../c0332fa29559fa9f027c2590e4178f98 | 10 --- .../c58925536db79e6065161661cd4f34d8 | 10 --- .../c6605616702fffa5a9fa340ce154d937 | 5 -- .../c882c01d6cd8576e85069ad4a184b9fe | 10 --- .../c99370f96c34bd44766404a19c5b7e1e | 5 -- .../ca63dcc3736aca6a5a2f7b31dd6c7807 | 10 --- .../caa032701b2f148bbfe5fef80ee5e0f8 | 5 -- .../cafd1c9a61687416b8d79498083e7828 | 10 --- .../cdb0a88fdea4d3ecdb9c3d3e533363cc | 10 --- .../cf86bf9ab71128c0791c986fd734efe5 | 20 ----- .../d3979aa57647e490f961d1127c950769 | 10 --- .../d423ceb9eae60cd4252d097f17c4fad9 | 10 --- .../d49ce8dfd404f80b630039a3eed57959 | 10 --- .../d4aaa921d685bd413e4cfa71f94411b8 | 15 ---- .../d655eb92d0db9fc8d684747b65cd5972 | 5 -- .../d6bb3621c75ec4c6e91b5c1daac3d94d | 10 --- .../d9f68ead0cd9d538348a550546d6c90b | 10 --- .../dbe0aff7883d30f1f9eaa4f1bf4d24ef | 5 -- .../ddb9f0e69a28298b274d3a97e0b82dd7 | 10 --- .../dff71e30962f7f91ab6ce0e21dfac07e | 10 --- .../e0927eea8e952454ee1a008c2b52be7e | 5 -- .../e18a9ec9af7a87a7447cbdc6d7b29c97 | 5 -- .../e35a3f6c92398728f6100e796bc47b97 | 10 --- .../e432c6ffcff0a73bc94c0e2172958cbc | 10 --- .../e66fdfb1ce638e361cc818449c04d005 | 10 --- .../e7a858eadabe6443294e88d900450e1a | 5 -- .../e7fbf50469cd7d557eb80ef75fd68553 | 10 --- .../e8c7875756ba37d64551cf5fba4a3fc3 | 5 -- .../e8d56f9e3d9452446604a0199497ee93 | 5 -- .../eabb0530c2ab75ed428030512d0c4106 | 5 -- .../eb604edda8343fb17d71a50b640b4ecd | 5 -- .../ef0836c220d81fc95a69a91860ac048f | 5 -- .../efb67e749f72fd7d0700399f29fee1b1 | 5 -- .../f0f22908fd27214728fb0e8a0ee561eb | 5 -- .../f0f565c635e44ddb57b0c049d1b3cc60 | 10 --- .../f1cb3140a093417545ca0dc8064b39b9 | 10 --- .../f24cfd1473da309b7ba6998cb28e7eda | 10 --- .../f478763e34af90b0adef3ab65bd4b4c3 | 10 --- .../f4cc0472dae406d028ad3ef1c677de84 | 5 -- .../f589ce118d41fb3bf98e4286e583c2a3 | 10 --- .../f63f35706381fef03036110d550cfed5 | 10 --- .../f67a9dc422577f0eb747c04d60584dea | 10 --- .../f70d11826ecd66006b358de0024c957b | 5 -- lib/experimental.d.ts | 1 + lib/keywords/additionalProperties.js | 4 +- lib/keywords/allOf.js | 4 +- lib/keywords/dependentSchemas.js | 4 +- lib/keywords/dynamicRef.js | 4 +- lib/keywords/else.js | 4 +- lib/keywords/items.js | 4 +- lib/keywords/patternProperties.js | 4 +- lib/keywords/prefixItems.js | 4 +- lib/keywords/properties.js | 4 +- lib/keywords/propertyDependencies.js | 4 +- lib/keywords/propertyNames.js | 4 +- lib/keywords/ref.js | 4 +- lib/keywords/then.js | 4 +- lib/keywords/unevaluatedItems.js | 4 +- lib/keywords/unevaluatedProperties.js | 4 +- lib/keywords/validation.js | 9 +- lib/output-basic.spec.ts | 90 ------------------- 201 files changed, 59 insertions(+), 1782 deletions(-) diff --git a/README.md b/README.md index 74f195a..15f8ff4 100644 --- a/README.md +++ b/README.md @@ -530,6 +530,12 @@ These are available from the `@hyperjump/json-schema/experimental` export. the instance value that is being validated and returns whether the value is valid or not. The other parameters are only needed for validating sub-schemas. + * simpleApplicator?: boolean + + Some applicator keywords just apply schemas and don't do any + validation of its own. In these cases, it isn't helpful to include + them in BASIC output. This flag is used to trim those nodes from the + output. * collectEvaluatedProperties?: (compiledKeywordValue: any, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set\ | false If the keyword is an applicator, it will need to implement this diff --git a/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c b/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c index e5084d8..44146d0 100644 --- a/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c +++ b/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/unevaluatedProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 b/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 index f1a01a8..44146d0 100644 --- a/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 +++ b/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 b/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 index ddbf717..44146d0 100644 --- a/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 +++ b/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/patternProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f b/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f index f1a01a8..44146d0 100644 --- a/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f +++ b/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc b/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc index 907e542..4ba991c 100644 --- a/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc +++ b/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/items", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d b/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d index 895d01f..44146d0 100644 --- a/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d +++ b/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 b/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 index 8899fd4..44146d0 100644 --- a/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 +++ b/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/additionalProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce b/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce index 8fe3fcb..8980916 100644 --- a/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce +++ b/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/then", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", diff --git a/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec b/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec index f1a01a8..44146d0 100644 --- a/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec +++ b/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 b/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 index 4edc52a..1878ba3 100644 --- a/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 +++ b/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 b/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 index 895d01f..44146d0 100644 --- a/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 +++ b/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 b/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 index 68af94e..44146d0 100644 --- a/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 +++ b/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 b/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 index ea851e5..2c9fafc 100644 --- a/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 +++ b/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", - "instanceLocation": "#/tree" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", - "instanceLocation": "#/tree" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$ref", - "instanceLocation": "#/tree/branch" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", diff --git a/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da b/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da index 68af94e..44146d0 100644 --- a/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da +++ b/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 b/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 index 907e542..4ba991c 100644 --- a/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 +++ b/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/items", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 b/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 index 00db208..4ba991c 100644 --- a/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 +++ b/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/unevaluatedItems", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 b/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 index 8fe3fcb..8980916 100644 --- a/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 +++ b/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/then", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", diff --git a/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a b/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a index 2b212fa..f3fe0cc 100644 --- a/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a +++ b/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", - "instanceLocation": "#/tree" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", - "instanceLocation": "#/tree" - }, { "keyword": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$recursiveRef", diff --git a/bundle/snapshots/1a625d786c7bb443da8af47f719908da b/bundle/snapshots/1a625d786c7bb443da8af47f719908da index 0c19cc6..1878ba3 100644 --- a/bundle/snapshots/1a625d786c7bb443da8af47f719908da +++ b/bundle/snapshots/1a625d786c7bb443da8af47f719908da @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 b/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 index 0c19cc6..1878ba3 100644 --- a/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 +++ b/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 b/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 index 68af94e..44146d0 100644 --- a/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 +++ b/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 b/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 +++ b/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e b/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e index 4edc52a..1878ba3 100644 --- a/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e +++ b/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 b/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 index f1a01a8..44146d0 100644 --- a/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 +++ b/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c b/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c index 68af94e..44146d0 100644 --- a/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c +++ b/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff b/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff index 895d01f..44146d0 100644 --- a/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff +++ b/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff b/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff index f1a01a8..44146d0 100644 --- a/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff +++ b/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 b/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 index 68af94e..44146d0 100644 --- a/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 +++ b/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 b/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 index 99f7daa..a08f8fb 100644 --- a/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 +++ b/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 b/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 index e5084d8..44146d0 100644 --- a/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 +++ b/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/unevaluatedProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/306aab4965c938883dcdf33ac166c126 b/bundle/snapshots/306aab4965c938883dcdf33ac166c126 index 895d01f..44146d0 100644 --- a/bundle/snapshots/306aab4965c938883dcdf33ac166c126 +++ b/bundle/snapshots/306aab4965c938883dcdf33ac166c126 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 b/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 index 33d448d..44146d0 100644 --- a/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 +++ b/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/patternProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties//$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 b/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 index 4215904..a08f8fb 100644 --- a/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 +++ b/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/33f50872f240cb902c6196c518e53d80 b/bundle/snapshots/33f50872f240cb902c6196c518e53d80 index 0fef22e..6b6e613 100644 --- a/bundle/snapshots/33f50872f240cb902c6196c518e53d80 +++ b/bundle/snapshots/33f50872f240cb902c6196c518e53d80 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/items", - "absoluteKeywordLocation": "https://test.json-schema.org/list#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/dynamicRef", - "absoluteKeywordLocation": "https://test.json-schema.org/list#/items/$dynamicRef", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/element/type", diff --git a/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 b/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 +++ b/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 b/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 index 4645f73..b8e535c 100644 --- a/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 +++ b/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/then", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 b/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 index 895d01f..44146d0 100644 --- a/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 +++ b/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 b/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 index 9651b40..b8e535c 100644 --- a/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 +++ b/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/else", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/3b583d182b168837010145a6bfc28896 b/bundle/snapshots/3b583d182b168837010145a6bfc28896 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/3b583d182b168837010145a6bfc28896 +++ b/bundle/snapshots/3b583d182b168837010145a6bfc28896 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 b/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 index 6786fdd..99faa05 100644 --- a/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 +++ b/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies/foo/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e b/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e index 68af94e..44146d0 100644 --- a/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e +++ b/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 b/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 index 0729aea..6627924 100644 --- a/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 +++ b/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a b/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a +++ b/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/46083f579195b95d9b2928e15f896230 b/bundle/snapshots/46083f579195b95d9b2928e15f896230 index 0729aea..6627924 100644 --- a/bundle/snapshots/46083f579195b95d9b2928e15f896230 +++ b/bundle/snapshots/46083f579195b95d9b2928e15f896230 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/46c15f106452fb1e8856066491320b0f b/bundle/snapshots/46c15f106452fb1e8856066491320b0f index 00db208..4ba991c 100644 --- a/bundle/snapshots/46c15f106452fb1e8856066491320b0f +++ b/bundle/snapshots/46c15f106452fb1e8856066491320b0f @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/unevaluatedItems", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/47dd56964bedafeb0be6f463294df290 b/bundle/snapshots/47dd56964bedafeb0be6f463294df290 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/47dd56964bedafeb0be6f463294df290 +++ b/bundle/snapshots/47dd56964bedafeb0be6f463294df290 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad b/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad index 33d448d..44146d0 100644 --- a/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad +++ b/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/patternProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties//$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 b/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 index 895d01f..44146d0 100644 --- a/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 +++ b/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc b/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc index 895d01f..44146d0 100644 --- a/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc +++ b/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 b/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 index f4f04f9..a08f8fb 100644 --- a/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 +++ b/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 b/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 index a9496eb..a08f8fb 100644 --- a/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 +++ b/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/53489b6846585e5710b6c31d6794072e b/bundle/snapshots/53489b6846585e5710b6c31d6794072e index c19c855..fa3f83d 100644 --- a/bundle/snapshots/53489b6846585e5710b6c31d6794072e +++ b/bundle/snapshots/53489b6846585e5710b6c31d6794072e @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", diff --git a/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac b/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac index f2ae468..a0b2505 100644 --- a/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac +++ b/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/58990e97544d58f01c0480e37a0d68de b/bundle/snapshots/58990e97544d58f01c0480e37a0d68de index 68af94e..44146d0 100644 --- a/bundle/snapshots/58990e97544d58f01c0480e37a0d68de +++ b/bundle/snapshots/58990e97544d58f01c0480e37a0d68de @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e b/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e +++ b/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf b/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf index f4f04f9..a08f8fb 100644 --- a/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf +++ b/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 b/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 index 895d01f..44146d0 100644 --- a/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 +++ b/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 b/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 index c2c1518..6da48e0 100644 --- a/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 +++ b/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf/0/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 b/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 index f4f04f9..a08f8fb 100644 --- a/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 +++ b/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 b/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 index ddbf717..44146d0 100644 --- a/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 +++ b/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/patternProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/64913f6902288200f4baf65507d25418 b/bundle/snapshots/64913f6902288200f4baf65507d25418 index 25aba11..2c9fafc 100644 --- a/bundle/snapshots/64913f6902288200f4baf65507d25418 +++ b/bundle/snapshots/64913f6902288200f4baf65507d25418 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", - "instanceLocation": "#/tree" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", diff --git a/bundle/snapshots/64c6bad0f116a7630121c60f853d058d b/bundle/snapshots/64c6bad0f116a7630121c60f853d058d index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/64c6bad0f116a7630121c60f853d058d +++ b/bundle/snapshots/64c6bad0f116a7630121c60f853d058d @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a b/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a index 68af94e..44146d0 100644 --- a/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a +++ b/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/68b09d584199e39d8c997a45df01121f b/bundle/snapshots/68b09d584199e39d8c997a45df01121f index 68af94e..44146d0 100644 --- a/bundle/snapshots/68b09d584199e39d8c997a45df01121f +++ b/bundle/snapshots/68b09d584199e39d8c997a45df01121f @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 b/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 +++ b/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 b/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 +++ b/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 b/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 index 00db208..4ba991c 100644 --- a/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 +++ b/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/unevaluatedItems", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/6b386352a3bdc92c705312c051682d06 b/bundle/snapshots/6b386352a3bdc92c705312c051682d06 index 895d01f..44146d0 100644 --- a/bundle/snapshots/6b386352a3bdc92c705312c051682d06 +++ b/bundle/snapshots/6b386352a3bdc92c705312c051682d06 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 b/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 index f4f04f9..a08f8fb 100644 --- a/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 +++ b/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e b/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e index 895d01f..44146d0 100644 --- a/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e +++ b/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/6f544c2096b37a690163579f5e728919 b/bundle/snapshots/6f544c2096b37a690163579f5e728919 index 68af94e..44146d0 100644 --- a/bundle/snapshots/6f544c2096b37a690163579f5e728919 +++ b/bundle/snapshots/6f544c2096b37a690163579f5e728919 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/743690d9928397863e6c3a28937acdd9 b/bundle/snapshots/743690d9928397863e6c3a28937acdd9 index 4edc52a..1878ba3 100644 --- a/bundle/snapshots/743690d9928397863e6c3a28937acdd9 +++ b/bundle/snapshots/743690d9928397863e6c3a28937acdd9 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef b/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef index e71c807..e88faa4 100644 --- a/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef +++ b/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items", diff --git a/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 b/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 +++ b/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/7788783f799c519551627f00d0bb9cec b/bundle/snapshots/7788783f799c519551627f00d0bb9cec index 5dc3737..c549a85 100644 --- a/bundle/snapshots/7788783f799c519551627f00d0bb9cec +++ b/bundle/snapshots/7788783f799c519551627f00d0bb9cec @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/dependentSchemas", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/77a11629cbbbf038001f606f30435472 b/bundle/snapshots/77a11629cbbbf038001f606f30435472 index ce3cd0a..4ba991c 100644 --- a/bundle/snapshots/77a11629cbbbf038001f606f30435472 +++ b/bundle/snapshots/77a11629cbbbf038001f606f30435472 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/prefixItems", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems/0/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf b/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf index 71ae23c..5b2efd6 100644 --- a/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf +++ b/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/propertyNames", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", - "instanceLocation": "#/foobar" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/795cae84dab790d15cda3a397cfd708a b/bundle/snapshots/795cae84dab790d15cda3a397cfd708a index 0729aea..6627924 100644 --- a/bundle/snapshots/795cae84dab790d15cda3a397cfd708a +++ b/bundle/snapshots/795cae84dab790d15cda3a397cfd708a @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 b/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 index f4f04f9..a08f8fb 100644 --- a/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 +++ b/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 b/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 index 5dc3737..c549a85 100644 --- a/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 +++ b/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/dependentSchemas", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde b/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde index 895d01f..44146d0 100644 --- a/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde +++ b/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 b/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 index 2a7df6b..57d7f0c 100644 --- a/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 +++ b/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf/0/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 b/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 index 25aba11..2c9fafc 100644 --- a/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 +++ b/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", - "instanceLocation": "#/tree" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", diff --git a/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f b/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f index 99f7daa..a08f8fb 100644 --- a/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f +++ b/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 b/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 index 25aba11..2c9fafc 100644 --- a/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 +++ b/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", - "instanceLocation": "#/tree" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", diff --git a/bundle/snapshots/805bb0a258628a33d224b7bc628be763 b/bundle/snapshots/805bb0a258628a33d224b7bc628be763 index 857d9a9..35441dc 100644 --- a/bundle/snapshots/805bb0a258628a33d224b7bc628be763 +++ b/bundle/snapshots/805bb0a258628a33d224b7bc628be763 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/propertyDependencies", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyDependencies", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyDependencies/foo/bar/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/required", "absoluteKeywordLocation": "https://test.json-schema.org/require-baz#/required", diff --git a/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 b/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 index 895d01f..44146d0 100644 --- a/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 +++ b/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 b/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 index 6786fdd..99faa05 100644 --- a/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 +++ b/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies/foo/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b b/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b index 7d83c6f..b8e535c 100644 --- a/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b +++ b/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/then", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 b/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 index e5084d8..44146d0 100644 --- a/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 +++ b/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/unevaluatedProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 b/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 index ea851e5..2c9fafc 100644 --- a/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 +++ b/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", - "instanceLocation": "#/tree" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", - "instanceLocation": "#/tree" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$ref", - "instanceLocation": "#/tree/branch" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", diff --git a/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 b/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 index 68af94e..44146d0 100644 --- a/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 +++ b/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f b/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f index 4215904..a08f8fb 100644 --- a/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f +++ b/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 b/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 index 8899fd4..44146d0 100644 --- a/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 +++ b/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/additionalProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 b/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 +++ b/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af b/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af index 68af94e..44146d0 100644 --- a/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af +++ b/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/8e80118d776ce2418345110c62c75f24 b/bundle/snapshots/8e80118d776ce2418345110c62c75f24 index 1253bb7..c44022b 100644 --- a/bundle/snapshots/8e80118d776ce2418345110c62c75f24 +++ b/bundle/snapshots/8e80118d776ce2418345110c62c75f24 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 b/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 +++ b/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b b/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b index f4f04f9..a08f8fb 100644 --- a/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b +++ b/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 b/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 index 75f1f8a..fa3f83d 100644 --- a/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 +++ b/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", diff --git a/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d b/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d index f2ae468..a0b2505 100644 --- a/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d +++ b/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 b/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 index 8fe3fcb..8980916 100644 --- a/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 +++ b/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/then", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", diff --git a/bundle/snapshots/9826a4620381995cfc6e938d00979e95 b/bundle/snapshots/9826a4620381995cfc6e938d00979e95 index c19c855..fa3f83d 100644 --- a/bundle/snapshots/9826a4620381995cfc6e938d00979e95 +++ b/bundle/snapshots/9826a4620381995cfc6e938d00979e95 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", diff --git a/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 b/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 +++ b/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 b/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 +++ b/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/9b1b667f2966cb8602339540c276802d b/bundle/snapshots/9b1b667f2966cb8602339540c276802d index 7d83c6f..b8e535c 100644 --- a/bundle/snapshots/9b1b667f2966cb8602339540c276802d +++ b/bundle/snapshots/9b1b667f2966cb8602339540c276802d @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/then", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 b/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 index a03c701..b8e535c 100644 --- a/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 +++ b/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/else", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca b/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca index 2d0485c..44146d0 100644 --- a/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca +++ b/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/additionalProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 b/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 index 7d83c6f..b8e535c 100644 --- a/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 +++ b/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/then", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb b/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb +++ b/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 b/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 index 2a7df6b..57d7f0c 100644 --- a/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 +++ b/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf/0/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc b/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc index 457853d..5b2efd6 100644 --- a/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc +++ b/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/propertyNames", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 b/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 index 895d01f..44146d0 100644 --- a/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 +++ b/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 b/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 index 895d01f..44146d0 100644 --- a/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 +++ b/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 b/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 index 8fe3fcb..8980916 100644 --- a/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 +++ b/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/then", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", diff --git a/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 b/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 index 895d01f..44146d0 100644 --- a/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 +++ b/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 b/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 index 895d01f..44146d0 100644 --- a/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 +++ b/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 b/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 +++ b/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe b/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe index ea851e5..2c9fafc 100644 --- a/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe +++ b/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", - "instanceLocation": "#/tree" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", - "instanceLocation": "#/tree" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$ref", - "instanceLocation": "#/tree/branch" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", diff --git a/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 b/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 index 2d0485c..44146d0 100644 --- a/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 +++ b/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/additionalProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 b/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 +++ b/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a b/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a index 4215904..a08f8fb 100644 --- a/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a +++ b/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/aa594ba1f60117f136d165089ee87318 b/bundle/snapshots/aa594ba1f60117f136d165089ee87318 index 68af94e..44146d0 100644 --- a/bundle/snapshots/aa594ba1f60117f136d165089ee87318 +++ b/bundle/snapshots/aa594ba1f60117f136d165089ee87318 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 b/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 index a9496eb..a08f8fb 100644 --- a/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 +++ b/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 b/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 index 457853d..5b2efd6 100644 --- a/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 +++ b/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/propertyNames", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e b/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e index 4215904..a08f8fb 100644 --- a/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e +++ b/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 b/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 index a9496eb..a08f8fb 100644 --- a/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 +++ b/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 b/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 index 2d0485c..44146d0 100644 --- a/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 +++ b/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/additionalProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b b/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b index f1a01a8..44146d0 100644 --- a/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b +++ b/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/b17370712f909f37a5634e252a0966cf b/bundle/snapshots/b17370712f909f37a5634e252a0966cf index e71c807..e88faa4 100644 --- a/bundle/snapshots/b17370712f909f37a5634e252a0966cf +++ b/bundle/snapshots/b17370712f909f37a5634e252a0966cf @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items", diff --git a/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c b/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c index 895d01f..44146d0 100644 --- a/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c +++ b/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 b/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 +++ b/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 b/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 index 5dc3737..c549a85 100644 --- a/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 +++ b/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/dependentSchemas", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c b/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c index 895d01f..44146d0 100644 --- a/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c +++ b/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/b62326334234db25ab5c9e026d673141 b/bundle/snapshots/b62326334234db25ab5c9e026d673141 index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/b62326334234db25ab5c9e026d673141 +++ b/bundle/snapshots/b62326334234db25ab5c9e026d673141 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 b/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 index 68af94e..44146d0 100644 --- a/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 +++ b/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/bcda06077e3818330a0949e74f420b1c b/bundle/snapshots/bcda06077e3818330a0949e74f420b1c index 75f1f8a..fa3f83d 100644 --- a/bundle/snapshots/bcda06077e3818330a0949e74f420b1c +++ b/bundle/snapshots/bcda06077e3818330a0949e74f420b1c @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", diff --git a/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc b/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc index 2a7df6b..57d7f0c 100644 --- a/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc +++ b/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf/0/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 b/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 index 48dcd18..0dc8e49 100644 --- a/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 +++ b/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/items", - "absoluteKeywordLocation": "https://test.json-schema.org/list#/items", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", "absoluteKeywordLocation": "https://test.json-schema.org/list#/items/$dynamicRef", diff --git a/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 b/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 index 9651b40..b8e535c 100644 --- a/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 +++ b/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/else", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/c58925536db79e6065161661cd4f34d8 b/bundle/snapshots/c58925536db79e6065161661cd4f34d8 index 68af94e..44146d0 100644 --- a/bundle/snapshots/c58925536db79e6065161661cd4f34d8 +++ b/bundle/snapshots/c58925536db79e6065161661cd4f34d8 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 b/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 index c2c1518..6da48e0 100644 --- a/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 +++ b/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf/0/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe b/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe index 0c19cc6..1878ba3 100644 --- a/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe +++ b/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e b/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e index ddbf717..44146d0 100644 --- a/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e +++ b/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/patternProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 b/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 index 71ae23c..5b2efd6 100644 --- a/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 +++ b/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/propertyNames", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", - "instanceLocation": "#/foobar" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 b/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 +++ b/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 b/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 +++ b/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc b/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc index c19c855..fa3f83d 100644 --- a/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc +++ b/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", diff --git a/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 b/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 index 99f7daa..a08f8fb 100644 --- a/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 +++ b/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 @@ -1,26 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/d3979aa57647e490f961d1127c950769 b/bundle/snapshots/d3979aa57647e490f961d1127c950769 index 60f5481..44146d0 100644 --- a/bundle/snapshots/d3979aa57647e490f961d1127c950769 +++ b/bundle/snapshots/d3979aa57647e490f961d1127c950769 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/definitions/string/allOf", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 b/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 index 68af94e..44146d0 100644 --- a/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 +++ b/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 b/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 index 68af94e..44146d0 100644 --- a/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 +++ b/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 b/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 index 75f1f8a..fa3f83d 100644 --- a/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 +++ b/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 @@ -1,21 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", diff --git a/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 b/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 +++ b/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d b/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d index 60f5481..44146d0 100644 --- a/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d +++ b/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/definitions/string/allOf", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b b/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b index f2ae468..a0b2505 100644 --- a/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b +++ b/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef b/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef index 6786fdd..99faa05 100644 --- a/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef +++ b/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies/foo/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 b/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 index 68af94e..44146d0 100644 --- a/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 +++ b/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e b/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e index ce3cd0a..4ba991c 100644 --- a/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e +++ b/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/prefixItems", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems/0/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e b/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e index 895d01f..44146d0 100644 --- a/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e +++ b/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 b/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 index 895d01f..44146d0 100644 --- a/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 +++ b/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 b/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 index 71ae23c..5b2efd6 100644 --- a/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 +++ b/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/propertyNames", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", - "instanceLocation": "#/foobar" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc b/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc index 68af94e..44146d0 100644 --- a/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc +++ b/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 b/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 index 9651b40..b8e535c 100644 --- a/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 +++ b/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/else", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", diff --git a/bundle/snapshots/e7a858eadabe6443294e88d900450e1a b/bundle/snapshots/e7a858eadabe6443294e88d900450e1a index 895d01f..44146d0 100644 --- a/bundle/snapshots/e7a858eadabe6443294e88d900450e1a +++ b/bundle/snapshots/e7a858eadabe6443294e88d900450e1a @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 b/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 +++ b/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 b/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 index 895d01f..44146d0 100644 --- a/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 +++ b/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 b/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 index 895d01f..44146d0 100644 --- a/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 +++ b/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 b/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 index 71165e3..c44022b 100644 --- a/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 +++ b/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/0/$ref", - "instanceLocation": "#/0" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd b/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd +++ b/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f b/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f +++ b/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 b/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 index 895d01f..44146d0 100644 --- a/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 +++ b/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb b/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb index c2c1518..6da48e0 100644 --- a/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb +++ b/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb @@ -6,11 +6,6 @@ "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", "instanceLocation": "#" }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf/0/$ref", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 b/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 index f2ae468..a0b2505 100644 --- a/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 +++ b/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", - "instanceLocation": "#/bar" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 b/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 index 4215904..a08f8fb 100644 --- a/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 +++ b/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda b/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda index 60f5481..44146d0 100644 --- a/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda +++ b/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/definitions/string/allOf", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 b/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 index 68af94e..44146d0 100644 --- a/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 +++ b/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 b/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 index 36e0abf..a0b2505 100644 --- a/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 +++ b/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", diff --git a/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 b/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 index 68af94e..44146d0 100644 --- a/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 +++ b/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/f63f35706381fef03036110d550cfed5 b/bundle/snapshots/f63f35706381fef03036110d550cfed5 index 4215904..a08f8fb 100644 --- a/bundle/snapshots/f63f35706381fef03036110d550cfed5 +++ b/bundle/snapshots/f63f35706381fef03036110d550cfed5 @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/allOf", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/properties", - "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", diff --git a/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea b/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea index 33d448d..44146d0 100644 --- a/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea +++ b/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea @@ -1,16 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/patternProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/ref", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties//$ref", - "instanceLocation": "#/foo" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/bundle/snapshots/f70d11826ecd66006b358de0024c957b b/bundle/snapshots/f70d11826ecd66006b358de0024c957b index 8899fd4..44146d0 100644 --- a/bundle/snapshots/f70d11826ecd66006b358de0024c957b +++ b/bundle/snapshots/f70d11826ecd66006b358de0024c957b @@ -1,11 +1,6 @@ { "valid": false, "errors": [ - { - "keyword": "https://json-schema.org/keyword/additionalProperties", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", - "instanceLocation": "#" - }, { "keyword": "https://json-schema.org/keyword/type", "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index 62603fa..d038d90 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -69,6 +69,7 @@ export type Keyword = { id: string; compile: (schema: Browser, ast: AST, parentSchema: Browser) => Promise; interpret: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext) => boolean; + simpleApplicator: boolean; collectEvaluatedProperties?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; collectEvaluatedItems?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; collectExternalIds?: (visited: Set, parentSchema: Browser, schema: Browser) => Promise>; diff --git a/lib/keywords/additionalProperties.js b/lib/keywords/additionalProperties.js index f06b56a..4434198 100644 --- a/lib/keywords/additionalProperties.js +++ b/lib/keywords/additionalProperties.js @@ -47,6 +47,8 @@ const interpret = ([isDefinedProperty, additionalProperties], instance, context) return isValid; }; +const simpleApplicator = true; + const collectEvaluatedProperties = ([isDefinedProperty, additionalProperties], instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; @@ -67,4 +69,4 @@ const collectEvaluatedProperties = ([isDefinedProperty, additionalProperties], i return evaluatedPropertyNames; }; -export default { id, compile, interpret, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; diff --git a/lib/keywords/allOf.js b/lib/keywords/allOf.js index 566f10e..c8f32cd 100644 --- a/lib/keywords/allOf.js +++ b/lib/keywords/allOf.js @@ -21,6 +21,8 @@ const interpret = (allOf, instance, ast, dynamicAnchors, quiet) => { return isValid; }; +const simpleApplicator = true; + const collectEvaluatedProperties = (allOf, instance, context) => { const evaluatedPropertyNames = new Set(); for (const schemaUrl of allOf) { @@ -49,4 +51,4 @@ const collectEvaluatedItems = (allOf, instance, context) => { return evaluatedItemIndexes; }; -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; diff --git a/lib/keywords/dependentSchemas.js b/lib/keywords/dependentSchemas.js index 4ad8cae..bf37659 100644 --- a/lib/keywords/dependentSchemas.js +++ b/lib/keywords/dependentSchemas.js @@ -27,6 +27,8 @@ const interpret = (dependentSchemas, instance, context) => { return isValid; }; +const simpleApplicator = true; + const collectEvaluatedProperties = (dependentSchemas, instance, context) => { if (Instance.typeOf(instance) !== "object") { return false; @@ -47,4 +49,4 @@ const collectEvaluatedProperties = (dependentSchemas, instance, context) => { return evaluatedPropertyNames; }; -export default { id, compile, interpret, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; diff --git a/lib/keywords/dynamicRef.js b/lib/keywords/dynamicRef.js index af7f3f5..89eba46 100644 --- a/lib/keywords/dynamicRef.js +++ b/lib/keywords/dynamicRef.js @@ -19,8 +19,10 @@ const evaluate = (strategy, fragment, instance, context) => { return strategy(context.dynamicAnchors[fragment], instance, context); }; +const simpleApplicator = true; + const interpret = (...args) => evaluate(Validation.interpret, ...args); const collectEvaluatedProperties = (...args) => evaluate(Validation.collectEvaluatedProperties, ...args); const collectEvaluatedItems = (...args) => evaluate(Validation.collectEvaluatedItems, ...args); -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; diff --git a/lib/keywords/else.js b/lib/keywords/else.js index f45dbaf..84a1abb 100644 --- a/lib/keywords/else.js +++ b/lib/keywords/else.js @@ -21,6 +21,8 @@ const interpret = ([ifSchema, elseSchema], instance, context) => { || Validation.interpret(elseSchema, instance, context); }; +const simpleApplicator = true; + const collectEvaluatedProperties = ([ifSchema, elseSchema], instance, context) => { if (ifSchema === undefined || Validation.interpret(ifSchema, instance, context)) { return new Set(); @@ -37,4 +39,4 @@ const collectEvaluatedItems = ([ifSchema, elseSchema], instance, context) => { return Validation.collectEvaluatedItems(elseSchema, instance, context); }; -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; diff --git a/lib/keywords/items.js b/lib/keywords/items.js index a383963..a80ca99 100644 --- a/lib/keywords/items.js +++ b/lib/keywords/items.js @@ -29,6 +29,8 @@ const interpret = ([numberOfPrefixItems, items], instance, context) => { return isValid; }; +const simpleApplicator = true; + const collectEvaluatedItems = (keywordValue, instance, context) => { if (!interpret(keywordValue, instance, context)) { return false; @@ -42,4 +44,4 @@ const collectEvaluatedItems = (keywordValue, instance, context) => { return evaluatedIndexes; }; -export default { id, compile, interpret, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; diff --git a/lib/keywords/patternProperties.js b/lib/keywords/patternProperties.js index 7a34451..2c354be 100644 --- a/lib/keywords/patternProperties.js +++ b/lib/keywords/patternProperties.js @@ -33,6 +33,8 @@ const interpret = (patternProperties, instance, context) => { return isValid; }; +const simpleApplicator = true; + const collectEvaluatedProperties = (patternProperties, instance, context) => { if (Instance.typeOf(instance) !== "object") { return false; @@ -55,4 +57,4 @@ const collectEvaluatedProperties = (patternProperties, instance, context) => { return evaluatedPropertyNames; }; -export default { id, compile, interpret, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; diff --git a/lib/keywords/prefixItems.js b/lib/keywords/prefixItems.js index 1f89765..6449363 100644 --- a/lib/keywords/prefixItems.js +++ b/lib/keywords/prefixItems.js @@ -35,8 +35,10 @@ const interpret = (prefixItems, instance, context) => { return isValid; }; +const simpleApplicator = true; + const collectEvaluatedItems = (items, instance, context) => { return interpret(items, instance, context) && new Set(items.map((_item, ndx) => ndx)); }; -export default { id, compile, interpret, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; diff --git a/lib/keywords/properties.js b/lib/keywords/properties.js index 38d2cd2..8e8af64 100644 --- a/lib/keywords/properties.js +++ b/lib/keywords/properties.js @@ -28,6 +28,8 @@ const interpret = (properties, instance, context) => { return isValid; }; +const simpleApplicator = true; + const collectEvaluatedProperties = (properties, instance, context) => { if (Instance.typeOf(instance) !== "object") { return false; @@ -48,4 +50,4 @@ const collectEvaluatedProperties = (properties, instance, context) => { return evaluatedPropertyNames; }; -export default { id, compile, interpret, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; diff --git a/lib/keywords/propertyDependencies.js b/lib/keywords/propertyDependencies.js index 62a7ce2..7a09857 100644 --- a/lib/keywords/propertyDependencies.js +++ b/lib/keywords/propertyDependencies.js @@ -41,6 +41,8 @@ const interpret = (propertyDependencies, instance, context) => { return isValid; }; +const simpleApplicator = true; + const collectEvaluatedProperties = (propertyDependencies, instance, context) => { const evaluatedPropertyNames = new Set(); for (const propertyName in propertyDependencies) { @@ -60,4 +62,4 @@ const collectEvaluatedProperties = (propertyDependencies, instance, context) => return evaluatedPropertyNames; }; -export default { id, compile, interpret, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; diff --git a/lib/keywords/propertyNames.js b/lib/keywords/propertyNames.js index b4588e1..4cd0b2a 100644 --- a/lib/keywords/propertyNames.js +++ b/lib/keywords/propertyNames.js @@ -21,4 +21,6 @@ const interpret = (propertyNames, instance, context) => { return isValid; }; -export default { id, compile, interpret }; +const simpleApplicator = true; + +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/ref.js b/lib/keywords/ref.js index 0b93c98..58decad 100644 --- a/lib/keywords/ref.js +++ b/lib/keywords/ref.js @@ -8,4 +8,6 @@ const interpret = (...args) => Validation.interpret(...args); const collectEvaluatedProperties = (...args) => Validation.collectEvaluatedProperties(...args); const collectEvaluatedItems = (...args) => Validation.collectEvaluatedItems(...args); -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +const simpleApplicator = true; + +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; diff --git a/lib/keywords/then.js b/lib/keywords/then.js index 3ef9d26..0d1cb0d 100644 --- a/lib/keywords/then.js +++ b/lib/keywords/then.js @@ -21,6 +21,8 @@ const interpret = ([ifSchema, thenSchema], instance, context) => { || Validation.interpret(thenSchema, instance, context); }; +const simpleApplicator = true; + const collectEvaluatedProperties = ([ifSchema, thenSchema], instance, context) => { if (ifSchema === undefined || !Validation.interpret(ifSchema, instance, context)) { return new Set(); @@ -37,4 +39,4 @@ const collectEvaluatedItems = ([ifSchema, thenSchema], instance, context) => { return Validation.collectEvaluatedItems(thenSchema, instance, context); }; -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; diff --git a/lib/keywords/unevaluatedItems.js b/lib/keywords/unevaluatedItems.js index 82136ce..1a6ac4a 100644 --- a/lib/keywords/unevaluatedItems.js +++ b/lib/keywords/unevaluatedItems.js @@ -31,6 +31,8 @@ const interpret = ([schemaUrl, unevaluatedItems], instance, context) => { return isValid; }; +const simpleApplicator = true; + const collectEvaluatedItems = (keywordValue, instance, context) => { const itemIndexes = Validation.collectEvaluatedItems(keywordValue[0], instance, context, true); if (!itemIndexes) { @@ -46,4 +48,4 @@ const collectEvaluatedItems = (keywordValue, instance, context) => { return evaluatedIndexes; }; -export default { id, compile, interpret, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; diff --git a/lib/keywords/unevaluatedProperties.js b/lib/keywords/unevaluatedProperties.js index 0b19a41..b0aa52c 100644 --- a/lib/keywords/unevaluatedProperties.js +++ b/lib/keywords/unevaluatedProperties.js @@ -31,6 +31,8 @@ const interpret = ([schemaUrl, unevaluatedProperties], instance, context) => { return isValid; }; +const simpleApplicator = true; + const collectEvaluatedProperties = ([schemaUrl, unevaluatedProperties], instance, context) => { if (Instance.typeOf(instance) !== "object") { return true; @@ -56,4 +58,4 @@ const collectEvaluatedProperties = ([schemaUrl, unevaluatedProperties], instance return evaluatedPropertyNames; }; -export default { id, compile, interpret, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index 69b81e9..a8b40e5 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -65,7 +65,8 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, ou let isSchemaValid = true; for (const [keywordId, schemaUri, keywordValue] of ast[url]) { const context = { ast, dynamicAnchors, schemaUri, errors: [], annotations: [], outputFormat }; - if (!getKeyword(keywordId).interpret(keywordValue, instance, context)) { + const keywordHandler = getKeyword(keywordId); + if (!keywordHandler.interpret(keywordValue, instance, context)) { isSchemaValid = false; if (outputFormat === FLAG) { continue; @@ -76,7 +77,11 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, ou absoluteKeywordLocation: schemaUri, instanceLocation: Instance.uri(instance) }; - errors.push(outputUnit); + + if (outputFormat !== BASIC || !keywordHandler.simpleApplicator) { + errors.push(outputUnit); + } + if (outputFormat === DETAILED && context.errors.length > 0) { outputUnit.errors = context.errors; } else if (outputFormat === BASIC) { diff --git a/lib/output-basic.spec.ts b/lib/output-basic.spec.ts index 2051a69..7e6f0e6 100644 --- a/lib/output-basic.spec.ts +++ b/lib/output-basic.spec.ts @@ -24,11 +24,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/ref", - absoluteKeywordLocation: `${schemaUri}#/$ref`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/type", absoluteKeywordLocation: `${schemaUri}#/$defs/string/type`, @@ -59,11 +54,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/additionalProperties", - absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/evaluation/validate", absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, @@ -80,11 +70,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/additionalProperties", - absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/evaluation/validate", absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, @@ -108,11 +93,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/additionalProperties", - absoluteKeywordLocation: `${schemaUri}#/additionalProperties`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/type", absoluteKeywordLocation: `${schemaUri}#/additionalProperties/type`, @@ -142,11 +122,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/allOf", - absoluteKeywordLocation: `${schemaUri}#/allOf`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/maximum", absoluteKeywordLocation: `${schemaUri}#/allOf/1/maximum`, @@ -169,11 +144,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/allOf", - absoluteKeywordLocation: `${schemaUri}#/allOf`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/maximum", absoluteKeywordLocation: `${schemaUri}#/allOf/0/maximum`, @@ -366,11 +336,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/dependentSchemas", - absoluteKeywordLocation: `${schemaUri}#/dependentSchemas`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/required", absoluteKeywordLocation: `${schemaUri}#/dependentSchemas/foo/required`, @@ -392,11 +357,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/dependentSchemas", - absoluteKeywordLocation: `${schemaUri}#/dependentSchemas`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/required", absoluteKeywordLocation: `${schemaUri}#/dependentSchemas/foo/required`, @@ -434,11 +394,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/then", - absoluteKeywordLocation: `${schemaUri}#/then`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/minLength", absoluteKeywordLocation: `${schemaUri}#/then/minLength`, @@ -470,11 +425,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/else", - absoluteKeywordLocation: `${schemaUri}#/else`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/minimum", absoluteKeywordLocation: `${schemaUri}#/else/minimum`, @@ -505,11 +455,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/items", - absoluteKeywordLocation: `${schemaUri}#/items`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/type", absoluteKeywordLocation: `${schemaUri}#/items/type`, @@ -546,11 +491,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/patternProperties", - absoluteKeywordLocation: `${schemaUri}#/patternProperties`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/type", absoluteKeywordLocation: `${schemaUri}#/patternProperties/%5Ef/type`, @@ -590,11 +530,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/prefixItems", - absoluteKeywordLocation: `${schemaUri}#/prefixItems`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/type", absoluteKeywordLocation: `${schemaUri}#/prefixItems/0/type`, @@ -634,11 +569,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/properties", - absoluteKeywordLocation: `${schemaUri}#/properties`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/type", absoluteKeywordLocation: `${schemaUri}#/properties/foo/type`, @@ -675,11 +605,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/propertyNames", - absoluteKeywordLocation: `${schemaUri}#/propertyNames`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/pattern", absoluteKeywordLocation: `${schemaUri}#/propertyNames/pattern`, @@ -1212,11 +1137,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/properties", - absoluteKeywordLocation: `${schemaUri}#/properties`, - instanceLocation: "#" - }, { keyword: "https://json-schema.org/keyword/type", absoluteKeywordLocation: `${schemaUri}#/properties/foo/type`, @@ -1246,16 +1166,6 @@ describe("Basic Output Format", () => { expect(output).to.eql({ valid: false, errors: [ - { - keyword: "https://json-schema.org/keyword/properties", - absoluteKeywordLocation: `${schemaUri}#/properties`, - instanceLocation: "#" - }, - { - keyword: "https://json-schema.org/keyword/properties", - absoluteKeywordLocation: `${schemaUri}#/properties/foo/properties`, - instanceLocation: "#/foo" - }, { keyword: "https://json-schema.org/keyword/type", absoluteKeywordLocation: `${schemaUri}#/properties/foo/properties/bar/type`, From 6aa71be00d5575015c7583b0eea5b80e75ed6440 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Wed, 2 Apr 2025 16:53:17 -0700 Subject: [PATCH 08/40] Improve setting annotation in keyword handler --- README.md | 6 +++++- annotations/index.js | 2 +- bundle/generate-snapshots.js | 2 +- bundle/test-suite.spec.ts | 2 +- lib/core.js | 2 +- lib/experimental.d.ts | 2 +- lib/keywords/contentEncoding.js | 15 +++------------ lib/keywords/contentMediaType.js | 15 +++------------ lib/keywords/contentSchema.js | 15 +++------------ lib/keywords/default.js | 15 +++------------ lib/keywords/deprecated.js | 15 +++------------ lib/keywords/description.js | 15 +++------------ lib/keywords/examples.js | 15 +++------------ lib/keywords/format.js | 15 +++------------ lib/keywords/readOnly.js | 15 +++------------ lib/keywords/title.js | 15 +++------------ lib/keywords/unknown.js | 15 +++------------ lib/keywords/validation.js | 16 +++++++++++++++- lib/keywords/writeOnly.js | 15 +++------------ openapi-3-0/discriminator.js | 15 +++------------ openapi-3-0/example.js | 15 +++------------ openapi-3-0/externalDocs.js | 15 +++------------ openapi-3-0/xml.js | 15 +++------------ 23 files changed, 73 insertions(+), 199 deletions(-) diff --git a/README.md b/README.md index 15f8ff4..493eb6b 100644 --- a/README.md +++ b/README.md @@ -547,6 +547,10 @@ These are available from the `@hyperjump/json-schema/experimental` export. * collectExternalIds?: (visited: Set\, parentSchema: Browser, schema: Browser) => Set\ If the keyword is an applicator, it will need to implement this function to work properly with the [bundle](#bundling) feature. + * annotation?: (compiledKeywordValue: any) => any + + If the keyword is an annotation, it will need to implement this + function to return the annotation. * **ValidationContext**: object * ast: AST @@ -696,7 +700,7 @@ Schema. ### Usage An annotated JSON document is represented as a -(JsonNode)[#/instance-api-experimental] AST. You can use this AST to traverse +(JsonNode)[#instance-api-experimental] AST. You can use this AST to traverse the data structure and get annotations for the values it represents. ```javascript diff --git a/annotations/index.js b/annotations/index.js index ce9504e..d82c1fb 100644 --- a/annotations/index.js +++ b/annotations/index.js @@ -16,7 +16,7 @@ export const annotate = async (schemaUri, json = undefined, outputFormat = undef export const interpret = ({ ast, schemaUri }, instance, outputFormat = BASIC) => { const errors = []; const annotations = []; - const context = { ast, schemaUri, dynamicAnchors: {}, errors, annotations, outputFormat }; + const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat }; const valid = Validation.interpret(schemaUri, instance, context); if (!valid) { diff --git a/bundle/generate-snapshots.js b/bundle/generate-snapshots.js index e8e7346..8f4f7ae 100644 --- a/bundle/generate-snapshots.js +++ b/bundle/generate-snapshots.js @@ -30,7 +30,7 @@ const snapshotGenerator = async (version, dialect) => { const instance = Instance.fromJs(test.instance); const errors = []; const annotations = []; - const context = { ast, schemaUri, dynamicAnchors: {}, errors, annotations, outputFormat: BASIC }; + const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat: BASIC }; const valid = Validation.interpret(schemaUri, instance, context); const expectedOutput = { valid, errors, annotations }; diff --git a/bundle/test-suite.spec.ts b/bundle/test-suite.spec.ts index 05be0b5..5f62651 100644 --- a/bundle/test-suite.spec.ts +++ b/bundle/test-suite.spec.ts @@ -60,7 +60,7 @@ const testRunner = (version: number, dialect: string) => { const instance = Instance.fromJs(test.instance); const errors: OutputUnit[] = []; const annotations: OutputUnit[] = []; - const context = { ast, schemaUri, dynamicAnchors: {}, errors, annotations, outputFormat: BASIC }; + const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat: BASIC }; const valid = Validation.interpret(schemaUri, instance, context); const output = { valid, errors, annotations }; diff --git a/lib/core.js b/lib/core.js index e7bfd6e..d1d3759 100644 --- a/lib/core.js +++ b/lib/core.js @@ -32,7 +32,7 @@ export const compile = async (schema) => { export const interpret = curry(({ ast, schemaUri }, instance, outputFormat = FLAG) => { const errors = []; - const context = { ast, schemaUri, dynamicAnchors: {}, errors, annotations: [], outputFormat }; + const context = { ast, dynamicAnchors: {}, errors, annotations: [], outputFormat }; const valid = Validation.interpret(schemaUri, instance, context); return outputFormat === FLAG || valid ? { valid } : { valid, errors }; }); diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index d038d90..ad23da0 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -73,11 +73,11 @@ export type Keyword = { collectEvaluatedProperties?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; collectEvaluatedItems?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; collectExternalIds?: (visited: Set, parentSchema: Browser, schema: Browser) => Promise>; + annotation?: (compiledKeywordValue: A) => B; }; export type ValidationContext = { ast: AST; - schemaUri: string; dynamicAnchors: Anchors; errors: OutputUnit[]; annotations: OutputUnit[]; diff --git a/lib/keywords/contentEncoding.js b/lib/keywords/contentEncoding.js index 02dd7e1..61eae1d 100644 --- a/lib/keywords/contentEncoding.js +++ b/lib/keywords/contentEncoding.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/contentEncoding"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (contentEncoding) => contentEncoding; -const interpret = (contentEncoding, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: contentEncoding - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/contentMediaType.js b/lib/keywords/contentMediaType.js index 1ad7a0f..d01c7b2 100644 --- a/lib/keywords/contentMediaType.js +++ b/lib/keywords/contentMediaType.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/contentMediaType"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (contentMediaType) => contentMediaType; -const interpret = (contentMediaType, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: contentMediaType - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/contentSchema.js b/lib/keywords/contentSchema.js index 1e1767a..8da03a3 100644 --- a/lib/keywords/contentSchema.js +++ b/lib/keywords/contentSchema.js @@ -1,19 +1,10 @@ import { canonicalUri } from "../schema.js"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/contentSchema"; const compile = (contentSchema) => canonicalUri(contentSchema); +const interpret = () => true; +const annotation = (contentSchema) => contentSchema; -const interpret = (contentSchema, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: contentSchema - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/default.js b/lib/keywords/default.js index f935288..085b8a2 100644 --- a/lib/keywords/default.js +++ b/lib/keywords/default.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/default"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (value) => value; -const interpret = (value, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: value - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/deprecated.js b/lib/keywords/deprecated.js index 1e7f2b6..58b7932 100644 --- a/lib/keywords/deprecated.js +++ b/lib/keywords/deprecated.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/deprecated"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (deprecated) => deprecated; -const interpret = (deprecated, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: deprecated - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/description.js b/lib/keywords/description.js index 4eafab7..86f9eb5 100644 --- a/lib/keywords/description.js +++ b/lib/keywords/description.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/description"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (description) => description; -const interpret = (description, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: description - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/examples.js b/lib/keywords/examples.js index e9b99bf..1858dd7 100644 --- a/lib/keywords/examples.js +++ b/lib/keywords/examples.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/examples"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (examples) => examples; -const interpret = (examples, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: examples - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/format.js b/lib/keywords/format.js index 807a204..8b1eef6 100644 --- a/lib/keywords/format.js +++ b/lib/keywords/format.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/format"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (format) => format; -const interpret = (format, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: format - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/readOnly.js b/lib/keywords/readOnly.js index 4c12aa5..b2d19e7 100644 --- a/lib/keywords/readOnly.js +++ b/lib/keywords/readOnly.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/readOnly"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (readOnly) => readOnly; -const interpret = (readOnly, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: readOnly - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/title.js b/lib/keywords/title.js index 63c7cb6..7ea1c46 100644 --- a/lib/keywords/title.js +++ b/lib/keywords/title.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/title"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (title) => title; -const interpret = (title, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: title - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/unknown.js b/lib/keywords/unknown.js index aa043b1..8ab7034 100644 --- a/lib/keywords/unknown.js +++ b/lib/keywords/unknown.js @@ -1,5 +1,4 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; import { pointerSegments } from "@hyperjump/json-pointer"; @@ -10,15 +9,7 @@ const compile = (schema) => { return [keywordName, Browser.value(schema)]; }; -const interpret = ([keywordName, value], instance, { annotations, schemaUri }) => { - const keywordId = `${id}#${keywordName}`; - annotations.push({ - keyword: keywordId, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: value - }); - return true; -}; +const interpret = () => true; +const annotation = ([, value]) => value; -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index a8b40e5..446f470 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -64,7 +64,7 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, ou let isSchemaValid = true; for (const [keywordId, schemaUri, keywordValue] of ast[url]) { - const context = { ast, dynamicAnchors, schemaUri, errors: [], annotations: [], outputFormat }; + const context = { ast, dynamicAnchors, errors: [], annotations: [], outputFormat }; const keywordHandler = getKeyword(keywordId); if (!keywordHandler.interpret(keywordValue, instance, context)) { isSchemaValid = false; @@ -88,6 +88,20 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, ou errors.push(...context.errors); } } else { + if (outputFormat === FLAG) { + continue; + } + + if (keywordHandler.annotation) { + const outputUnit = { + keyword: keywordId, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: keywordHandler.annotation(keywordValue) + }; + schemaAnnotations.push(outputUnit); + } + schemaAnnotations.push(...context.annotations); } } diff --git a/lib/keywords/writeOnly.js b/lib/keywords/writeOnly.js index b906993..ec8b116 100644 --- a/lib/keywords/writeOnly.js +++ b/lib/keywords/writeOnly.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../../annotations/annotated-instance.js"; const id = "https://json-schema.org/keyword/writeOnly"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (writeOnly) => writeOnly; -const interpret = (writeOnly, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: writeOnly - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/openapi-3-0/discriminator.js b/openapi-3-0/discriminator.js index 8308787..f45aa21 100644 --- a/openapi-3-0/discriminator.js +++ b/openapi-3-0/discriminator.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../annotations/annotated-instance.js"; const id = "https://spec.openapis.org/oas/3.0/keyword/discriminator"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (discriminator) => discriminator; -const interpret = (discriminator, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: discriminator - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/openapi-3-0/example.js b/openapi-3-0/example.js index 8c6a041..98bc586 100644 --- a/openapi-3-0/example.js +++ b/openapi-3-0/example.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../annotations/annotated-instance.js"; const id = "https://spec.openapis.org/oas/3.0/keyword/example"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (example) => example; -const interpret = (example, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: example - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/openapi-3-0/externalDocs.js b/openapi-3-0/externalDocs.js index fba7c6b..bfee816 100644 --- a/openapi-3-0/externalDocs.js +++ b/openapi-3-0/externalDocs.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../annotations/annotated-instance.js"; const id = "https://spec.openapis.org/oas/3.0/keyword/externalDocs"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (externalDocs) => externalDocs; -const interpret = (externalDocs, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: externalDocs - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; diff --git a/openapi-3-0/xml.js b/openapi-3-0/xml.js index 151db08..e647657 100644 --- a/openapi-3-0/xml.js +++ b/openapi-3-0/xml.js @@ -1,19 +1,10 @@ import * as Browser from "@hyperjump/browser"; -import * as Instance from "../annotations/annotated-instance.js"; const id = "https://spec.openapis.org/oas/3.0/keyword/xml"; const compile = (schema) => Browser.value(schema); +const interpret = () => true; +const annotation = (xml) => xml; -const interpret = (xml, instance, { annotations, schemaUri }) => { - annotations.push({ - keyword: id, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: xml - }); - return true; -}; - -export default { id, compile, interpret }; +export default { id, compile, interpret, annotation }; From 8f71befb6134701c04ba802577fd3b350be171ce Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Wed, 2 Apr 2025 17:58:40 -0700 Subject: [PATCH 09/40] Cleanup output code --- lib/keywords/validation.js | 81 ++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 35 deletions(-) diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index 446f470..565b00a 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -66,47 +66,58 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, ou for (const [keywordId, schemaUri, keywordValue] of ast[url]) { const context = { ast, dynamicAnchors, errors: [], annotations: [], outputFormat }; const keywordHandler = getKeyword(keywordId); - if (!keywordHandler.interpret(keywordValue, instance, context)) { + const isKeywordValid = keywordHandler.interpret(keywordValue, instance, context); + if (!isKeywordValid) { isSchemaValid = false; - if (outputFormat === FLAG) { - continue; - } - - const outputUnit = { - keyword: keywordId, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance) - }; - - if (outputFormat !== BASIC || !keywordHandler.simpleApplicator) { - errors.push(outputUnit); - } - - if (outputFormat === DETAILED && context.errors.length > 0) { - outputUnit.errors = context.errors; - } else if (outputFormat === BASIC) { - errors.push(...context.errors); - } - } else { - if (outputFormat === FLAG) { - continue; - } + } - if (keywordHandler.annotation) { - const outputUnit = { - keyword: keywordId, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: keywordHandler.annotation(keywordValue) - }; - schemaAnnotations.push(outputUnit); + switch (outputFormat) { + case FLAG: + break; + case BASIC: + if (!isKeywordValid) { + if (!keywordHandler.simpleApplicator) { + errors.push({ + keyword: keywordId, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance) + }); + } + errors.push(...context.errors); + } else { + if (keywordHandler.annotation) { + const outputUnit = { + keyword: keywordId, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: keywordHandler.annotation(keywordValue) + }; + schemaAnnotations.push(outputUnit); + } + schemaAnnotations.push(...context.annotations); + } + break; + case DETAILED: { + if (!isKeywordValid) { + const outputUnit = { + keyword: keywordId, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance) + }; + + errors.push(outputUnit); + if (context.errors.length > 0) { + outputUnit.errors = context.errors; + } + } + break; } - - schemaAnnotations.push(...context.annotations); + default: + throw Error(`Unsupported output format '${outputFormat}'`); } } - if (isSchemaValid) { + if (outputFormat === BASIC && isSchemaValid) { annotations.push(...schemaAnnotations); } From 8d5efc43ea8244b73467f6edc4b27122851ad66b Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 4 Apr 2025 11:48:59 -0700 Subject: [PATCH 10/40] Cleanup --- lib/keywords/validation.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index 565b00a..f29ae2c 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -86,13 +86,12 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, ou errors.push(...context.errors); } else { if (keywordHandler.annotation) { - const outputUnit = { + schemaAnnotations.push({ keyword: keywordId, absoluteKeywordLocation: schemaUri, instanceLocation: Instance.uri(instance), annotation: keywordHandler.annotation(keywordValue) - }; - schemaAnnotations.push(outputUnit); + }); } schemaAnnotations.push(...context.annotations); } From cd1d9f35a7ce9e736a3f3f41a68faae2d7f02aa0 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Sat, 5 Apr 2025 15:26:58 -0700 Subject: [PATCH 11/40] 1.12.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f95ded7..7187cc8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.11.0", + "version": "1.12.0", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From 38e7159fa2b853224d7312df7e647e8af6633993 Mon Sep 17 00:00:00 2001 From: Michael Mior Date: Mon, 7 Apr 2025 13:52:56 -0400 Subject: [PATCH 12/40] Add additional type exports Signed-off-by: Michael Mior --- draft-06/index.d.ts | 6 ++++-- draft-2019-09/index.d.ts | 3 ++- draft-2020-12/index.d.ts | 3 ++- stable/index.d.ts | 2 ++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/draft-06/index.d.ts b/draft-06/index.d.ts index 44d9c27..becf03f 100644 --- a/draft-06/index.d.ts +++ b/draft-06/index.d.ts @@ -2,9 +2,10 @@ import type { Json } from "@hyperjump/json-pointer"; import type { JsonSchemaType } from "../lib/common.js"; -export type JsonSchemaDraft06 = boolean | { +export type JsonSchemaDraft06Ref = { $ref: string; -} | { +}; +export type JsonSchemaDraft06Object = { $schema?: "http://json-schema.org/draft-06/schema#"; $id?: string; title?: string; @@ -43,5 +44,6 @@ export type JsonSchemaDraft06 = boolean | { oneOf?: JsonSchemaDraft06[]; not?: JsonSchemaDraft06; }; +export type JsonSchemaDraft06 = boolean | JsonSchemaDraft06Ref | JsonSchemaDraft06Object; export * from "../lib/index.js"; diff --git a/draft-2019-09/index.d.ts b/draft-2019-09/index.d.ts index 4398e5d..6b33223 100644 --- a/draft-2019-09/index.d.ts +++ b/draft-2019-09/index.d.ts @@ -2,7 +2,7 @@ import type { Json } from "@hyperjump/json-pointer"; import type { JsonSchemaType } from "../lib/common.js"; -export type JsonSchemaDraft201909 = boolean | { +export type JsonSchemaDraft201909Object = { $schema?: "https://json-schema.org/draft/2019-09/schema"; $id?: string; $anchor?: string; @@ -61,5 +61,6 @@ export type JsonSchemaDraft201909 = boolean | { contentEncoding?: string; contentSchema?: JsonSchemaDraft201909; }; +export type JsonSchemaDraft201909 = boolean | JsonSchemaDraft201909Object; export * from "../lib/index.js"; diff --git a/draft-2020-12/index.d.ts b/draft-2020-12/index.d.ts index 7684367..75f26f9 100644 --- a/draft-2020-12/index.d.ts +++ b/draft-2020-12/index.d.ts @@ -2,7 +2,7 @@ import type { Json } from "@hyperjump/json-pointer"; import type { JsonSchemaType } from "../lib/common.js"; -export type JsonSchemaDraft202012 = boolean | { +export type JsonSchemaDraft202012Object = { $schema?: "https://json-schema.org/draft/2020-12/schema"; $id?: string; $anchor?: string; @@ -62,5 +62,6 @@ export type JsonSchemaDraft202012 = boolean | { contentEncoding?: string; contentSchema?: JsonSchemaDraft202012; }; +export type JsonSchemaDraft202012 = boolean | JsonSchemaDraft202012Object; export * from "../lib/index.js"; diff --git a/stable/index.d.ts b/stable/index.d.ts index 5ebfd28..a43091e 100644 --- a/stable/index.d.ts +++ b/stable/index.d.ts @@ -2,6 +2,8 @@ import type { Json } from "@hyperjump/json-pointer"; import type { JsonSchemaType } from "../lib/common.js"; +export type JsonSchemaType = JsonSchemaType; + export type JsonSchema = boolean | { $schema?: "https://json-schema.org/validation"; $id?: string; From 05b1c5ca1cffc125a2fb7e55e73741284d4be613 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Mon, 7 Apr 2025 20:05:32 -0700 Subject: [PATCH 13/40] Add missing simpleApplicator flags to draft-specific keywords --- bundle/generate-snapshots.js | 4 +- .../01be86475358c8fa8bd0cbb66acffae9 | 9 +---- .../0257ca47cb26d95af6cddee31dc7ad4c | 20 ++++++++-- .../05009caa10a942d85c5fe0515b7eb0d9 | 27 +++++++++++-- .../0847cca3f53b9cd12c08b8ab83d7486b | 9 +---- .../09363ddcdd594c48891fa5b808f41d8f | 9 +---- .../09b5adea8278afad071a2d7b5ac4fc81 | 13 +++++-- .../09ecbfa9dbd81a38f0984dba2c5dba2f | 27 +++++++++++-- .../0a5429dfef8968c6bd88ac3922f55cbc | 20 ++++++++-- .../0ada8a1e7e71d8771e5fefbf455bcb0d | 13 +++++-- .../0c35d06197a49d13face4aa23020ee13 | 9 +---- .../0ce5981a970aa2c374dc9921ca3e3745 | 13 +++++-- .../0dcb5cd590f2b70cd9ddbc0ad8f045ce | 13 +++++-- .../0e5d4e29ac0020de6434c0e6250738ec | 27 +++++++++++-- .../114681e245a0b42f2313fc2e0315a1e7 | 13 +++++-- .../120a1e86ded8c56db704fe602846c6b8 | 13 +++++-- .../12a929ec4027ac23a3bfd2a485688590 | 9 +---- .../12e5d143b07d6a7353a00207cb117789 | 20 ++++++++-- .../13588b2ac26c9d54b3616b15944012f1 | 9 +---- .../139365710fd189f2fd51509dc69cec43 | 9 +---- .../1398f4f3aaf34a96688a7768cbf41ff0 | 34 ++++++++++++++-- .../139eaf7720391e4c1e25605f6e21410f | 9 +---- .../140107810716e03ab58f4dcf4e4764e5 | 9 +---- .../145eeaee28b6389d709d2c98e008a0da | 20 ++++++++-- .../14a1fe027d91308e0ad53459d6d36724 | 20 ++++++++-- .../16362d4681a7fc02b09b9af24ae23e82 | 20 ++++++++-- .../164201e3f9fb61bd594cc5f47cb94d55 | 13 +++++-- .../17a2e2c02ca51cfc306983ed174445be | 9 +---- .../17d84f87c2eae257b78e5a71047a5ad0 | 15 +------ .../185e15fd0af7f6485875e6a467f013cf | 9 +---- .../19c55f511be1beb3e693bac16d756f4a | 39 +++++++++++++++---- .../1a625d786c7bb443da8af47f719908da | 20 ++++++++-- .../1b4dbf42e23483d5bd7ca98b00aaaee0 | 20 ++++++++-- .../1b50751e8a7dafa55c763c9aec465703 | 20 ++++++++-- .../1b9f06a2dd38791a0f07e262b40986c0 | 13 +++++-- .../1c5b525dd9558bb3bd0db3a72cda5e5e | 13 +++++-- .../1cea49df736e17a985371c89f01452da | 9 +---- .../1d8100c94cb9a7cfc0026b535cf41a34 | 27 +++++++++++-- .../1d97116a722902353c4c7c69d7a45df8 | 9 +---- .../1ef0aeba519a35c6a083cb650433fc6c | 20 ++++++++-- .../1efa6ede7b177dcaf2acf457c73b680b | 9 +---- .../1fa7f5692e8b36aef495e649b044cab0 | 9 +---- .../23ce37639303c4cdb4fa6dfe040fc0ff | 13 +++++-- .../23cf9422bf26e5159ea8c7fa1a1b43ff | 27 +++++++++++-- .../23e41888dc468f92d7165c0d76363bf5 | 9 +---- .../260f9529ba78c8d79d2b84d0b63d2464 | 9 +---- .../28c04cb59d9a3e0d0caacbf60dc8404c | 9 +---- .../295e24d541e261e7fc1145930673ec37 | 9 +---- .../2a079a2f1d3d38713c5857b5126380e3 | 20 ++++++++-- .../2a2f29a42be7c37c15ade2a4d3b1d606 | 14 ++++--- .../2cf8396e0620ac5ec71a5d9a79be3e42 | 14 ++++--- .../2d53e6a2d0101794d6d63def48bfa2fc | 9 +---- .../2e4080f67b91b77b1b5d2147b47c8a2e | 9 +---- .../2f48ec33c3279dc7b8a49c068792dc13 | 34 ++++++++++++++-- .../2f7960c00691f686f3c067cffb02f4c1 | 20 ++++++++-- .../306aab4965c938883dcdf33ac166c126 | 13 +++++-- .../315fa750fea0c01f430ff0851285d350 | 9 +---- .../3223bc30e1c92f0566849c6940bab742 | 20 ++++++++-- .../33e5e6eebbbb677a7401180f969c9050 | 20 ++++++++-- .../33f50872f240cb902c6196c518e53d80 | 27 +++++++++++-- .../3473c9bdcb047b6543fb424c8623313e | 9 +---- .../3506fd4483c140b60a6ad8b0e7c371f2 | 13 +++++-- .../35a365d04a84908c6a6b71df77a6cfc0 | 9 +---- .../361635a018008bcd5f70257cc035a909 | 9 +---- .../36b5b64c677a80297dc2d5e932a54b58 | 9 +---- .../379f482275fa7144adc6eb8061b633e2 | 13 +++++-- .../37a40c54ccbfb5d2a83bd9ac6b5c117a | 15 +------ .../37cf51cc927985382a5a870e89138cc1 | 13 +++++-- .../38e3d0fe6da335bf3be09d75dec08db7 | 20 ++++++++-- .../398f49c7510a4ce7675d27f2872a94c8 | 14 ++++--- .../3b583d182b168837010145a6bfc28896 | 20 ++++++++-- .../3e016af6c2bc7f7658ee0a739c238680 | 14 ++++--- .../3e2d02b8cae2a253ea69ed381a8b9d98 | 14 ++++--- .../3e668d38678948523249b79c5c21b47e | 9 +---- .../3e9eede60da0b5be63b9867c4f025f09 | 9 +---- .../3f3dee627fbfc887cff9045580b1964d | 14 ++++--- .../40c0113f25d0f0302def3b49c18d7610 | 21 +++++++--- .../413b750c53f86e1c95e2c75cc930e84e | 20 ++++++++-- .../41a68d14acb0dc09c57e948216e5a735 | 21 +++++++--- .../441aabbe9efb26a2c634cd494c07aa1a | 13 +++++-- .../4445a88a53e9d8f8d69e8acd369f5254 | 9 +---- .../44bbf1c8fe84f62e0fc89472a32441de | 9 +---- .../45e4100de0755bfb3b5e7f78acf0d2b1 | 14 ++++--- .../46083f579195b95d9b2928e15f896230 | 21 +++++++--- .../46c15f106452fb1e8856066491320b0f | 20 ++++++++-- .../47dd56964bedafeb0be6f463294df290 | 20 ++++++++-- .../47f0de21a982f0768ceffb58d44a06e9 | 9 +---- .../48b9f39400d58f56b7248e301ad7e7de | 9 +---- .../4954d2a7bb33977e76dc4adb10333cb8 | 9 +---- .../49e532f70ff30fa595e9aef33fadb7d9 | 9 +---- .../4d0ddb9a2f9c4cea66f2d2438f9198ad | 20 ++++++++-- .../4da98c63a6fb5cf4ccdd1bd18ecee508 | 13 +++++-- .../4ee232632e2175763e5b0d9095a0c96f | 9 +---- .../4f0fd0ffa38dffa6db8a3d1d5d463bcc | 13 +++++-- .../4f19f85845f2e6b0bccfaf8817df9949 | 34 ++++++++++++++-- .../50170aa57fcf4eb7d8818e849d9a59a3 | 27 +++++++++++-- .../50b03a5e75eb98b3e2d3a57b58e9bcaa | 9 +---- .../53489b6846585e5710b6c31d6794072e | 20 ++++++++-- .../53f38f6440fff5a02a2fd3114a74cc0a | 9 +---- .../540fa5cca68cc5fc017971fe949ec744 | 15 +------ .../54608e2ab681d8d36b330e7ce94d0fac | 20 ++++++++-- .../57c4f6aefa5b3379d5d51cd4f117df24 | 9 +---- .../588ce3c3d051294f32f288dc107aeb2a | 9 +---- .../58990e97544d58f01c0480e37a0d68de | 20 ++++++++-- .../58ba828516dc2a7dd11b211e7b0a4aea | 9 +---- .../59ef6a103c67e9a30f20398cbf777603 | 9 +---- .../5b709ee8ce260b37316a856c1dd3af8e | 13 +++++-- .../5cd2ea1dea2487662f9eac9b36f99844 | 9 +---- .../5d1169fc5ced59e974bb0c760165a205 | 9 +---- .../5e868f5f65688fa850bab82568dd25cf | 34 ++++++++++++++-- .../603a07855d1c473b3008bdcd0cd8f730 | 13 +++++-- .../6168882c1056e6815be5413e2a1f5055 | 9 +---- .../616cc7e409e5bff800d4b7320389ccd2 | 21 +++++++--- .../622f70ca5abdb1c83791e4af90532927 | 34 ++++++++++++++-- .../62cb227d489063c9e34bd0b20205b3f8 | 13 +++++-- .../631601f0587d028272797790d9a69293 | 9 +---- .../63cd868ff1cbf34a8528d4d242558f2a | 9 +---- .../64913f6902288200f4baf65507d25418 | 20 ++++++++-- .../64c6bad0f116a7630121c60f853d058d | 13 +++++-- .../668a142b92014d8a44b96c8ea8d9bd5a | 20 ++++++++-- .../66a532315c257b4ea8d0e223eb416c51 | 14 ++++--- .../66c548e3bf559604741d9ed259ed34d7 | 9 +---- .../66e9dd8ee0228ecdcf6bd47108b92b3d | 9 +---- .../68b09d584199e39d8c997a45df01121f | 20 ++++++++-- .../6968c38a401b0688b45288e0ec95c885 | 9 +---- .../69b106c927b7f7981fd36a8438bace2b | 9 +---- .../69c91d8e93aff9925828b4aaa405dcf2 | 9 +---- .../6a4ae86f7a8d2c1d88cd2288eaac3e35 | 20 ++++++++-- .../6a64bc6825952d799e3b90acb9a198f1 | 20 ++++++++-- .../6ab177eb2011f6de8e7c36352c166bc8 | 20 ++++++++-- .../6adbb440ad31560a4a6466c5298e3a60 | 9 +---- .../6b01a0eaa2125bf3ed257022d3b3afdf | 9 +---- .../6b386352a3bdc92c705312c051682d06 | 13 +++++-- .../6c7c3ba005dbd555285361370ee102d8 | 9 +---- .../6cdfc10761bf99bf875f463ba7ab3b94 | 34 ++++++++++++++-- .../6f095742f6db8534ecd5b6ccd293d37e | 13 +++++-- .../6f2d46005bed2363d10c8dc12fb0bfb9 | 9 +---- .../6f544c2096b37a690163579f5e728919 | 20 ++++++++-- .../7167dbda4b0815b291cd8895b4b36a70 | 9 +---- .../71e98466e3ed19ba6a721195cc02ce64 | 15 +------ .../72bf4a748844347b9d25e2a72729a7eb | 15 +------ .../743690d9928397863e6c3a28937acdd9 | 13 +++++-- .../751061810ec20f303494c7bf3ec7735d | 15 +------ .../75b29268d2cceed3c9894ff6a81235ef | 32 +++++++++++---- .../75cd205ad240fa2f9c65a803920cedd6 | 14 ++++--- .../76142a2cb0bab3c94e8411c90b50ac61 | 9 +---- .../7617d040bceda39dd57eb9510703ad14 | 9 +---- .../773f35ea98a5b0395940a1a24bb66f63 | 13 +++++-- .../77834ece32f1a31063e01f3ec4fa9053 | 9 +---- .../7788783f799c519551627f00d0bb9cec | 27 +++++++++++-- .../77a11629cbbbf038001f606f30435472 | 20 ++++++++-- .../7870eeab5f8ca9101ad59356ae80d8cf | 20 ++++++++-- .../795cae84dab790d15cda3a397cfd708a | 21 +++++++--- .../7972d01ec0044d17b1ad698a09a20893 | 34 ++++++++++++++-- .../7a1bcb8d5b6c7d2da38c2fe4b6dfb779 | 27 +++++++++++-- .../7a2c563c23faa7d9aff4f943b978cfde | 13 +++++-- .../7a67d89678cd91c5f1697da5aaa3f9f4 | 9 +---- .../7a8b3a53063ecb110cbaff5b1f230335 | 14 ++++--- .../7acc7b0c7341e2712d25763364a74ab2 | 14 ++++--- .../7b7ea518fd130e2b1711645fcd7f2b28 | 21 +++++++--- .../7cdc21f87f18840944e4158fa9138d0f | 15 +------ .../7ec506bd89f8ff00deff19be525fbadf | 14 ++++--- .../7ecb6ad65392ca8b8e34aa3dc0c80986 | 20 ++++++++-- .../7ee3fcb0e871c2ec5895c816f3b9578f | 34 ++++++++++++++-- .../7ff4acb0cfeaae933408014b06fa6223 | 20 ++++++++-- .../805bb0a258628a33d224b7bc628be763 | 20 ++++++++-- .../816e852a34eb476ddff3b64b44e6eea4 | 13 +++++-- .../82a595a4d57fd6c27d073bbb2bbd231b | 9 +---- .../84cb084a44caafafdc02f9572eae88f1 | 21 +++++++--- .../84f573a1e8cb5220e00dc5e3bfc9735f | 15 +------ .../8584f2ff7840daccfb1ca94df64eae9b | 20 ++++++++-- .../85ec6ca162a3b395988152a9b87636a1 | 9 +---- .../87a12f711d50d5c2cd39b331b3fc6247 | 20 ++++++++-- .../8803185fd392d54d139c871df73eb8e2 | 34 ++++++++++++++-- .../885c2c7e506a7b3994ee0712223fe432 | 20 ++++++++-- .../89c1a21aabbf3a632255bfcaea39e87f | 20 ++++++++-- .../8b6344a7c7b41f1737bbaa41d14ddcb5 | 9 +---- .../8b8822ada3f4768fa7ae924560a73398 | 13 +++++-- .../8c14c43b3216be8b16cae4ab91e59c82 | 9 +---- .../8c6ed6685b94d55160ac6be14fe40ed2 | 20 ++++++++-- .../8e314f133062f33b1b6608ebdf0be4af | 20 ++++++++-- .../8e80118d776ce2418345110c62c75f24 | 21 +++++++--- .../8ef87b9bde2992f331bc363fdc9f50c6 | 20 ++++++++-- .../8f0a2b5d0ec288a53862f2c2a2632e5b | 34 ++++++++++++++-- .../903105d1609b59a688f9198f51b11b42 | 9 +---- .../9058d063196e4a1b6c023ba7d3975114 | 27 +++++++++++-- .../91cad3e4c5e08c84328e7ccbed552f83 | 15 +------ .../940e35aea577fa47976f8c6e665f0231 | 9 +---- .../9439f14bdd1d80840e0dfec5478b6b0d | 20 ++++++++-- .../951cf14e0d14a1aadf5bdeaa5ed8d2a1 | 13 +++++-- .../95923c2e8dc7e5a16eecc57b67dbec60 | 9 +---- .../9826a4620381995cfc6e938d00979e95 | 20 ++++++++-- .../990b04d52c40521fb660ded5dc52cdb9 | 20 ++++++++-- .../9980aa3b3e1c4d06966ec347bffa28d3 | 13 +++++-- .../9a690bdcb6c594657cb8df071954baac | 9 +---- .../9b1b667f2966cb8602339540c276802d | 20 ++++++++-- .../9b8b596cd673f6acb6020628b64323f5 | 13 +++++-- .../9bb39281f85726e4d1295c4d9755bbca | 20 ++++++++-- .../9c8df8e4b331caba03f41952ff505787 | 9 +---- .../9d6b6408d87908bfd9f4e34adef25d36 | 20 ++++++++-- .../9e697bcb061c883e23c4e22b4a4b35cb | 13 +++++-- .../9f117911cdae56755cabb2b3f791f912 | 9 +---- .../9fa2e59fd4fd83dee0556463433e63d8 | 21 +++++++--- .../a0753ba94a4f5d41f8269e93d4822309 | 15 +------ .../a08a7afd39db6237f476bcc7a0aea1fc | 13 +++++-- .../a0a9c59df24729670c60574f20bdc496 | 9 +---- .../a0bb26611b96a65e2b077977fe95b5e5 | 13 +++++-- .../a1b0605117441433a607b7ffa5f6da29 | 15 +------ .../a2c2de25cdefa86fb7516d81f3d352db | 9 +---- .../a3768a2fdf36c7220d9611da76658217 | 9 +---- .../a3f3186aa2664c82fef37f6e07bcb141 | 13 +++++-- .../a46a44d40b69e5a0f9e59f3d5ac39437 | 13 +++++-- .../a57ab912aaa16c60bad64247e7fccc25 | 13 +++++-- .../a617dea854db2ec149020fb57eefffa8 | 9 +---- .../a68555395ebef6cb83c0cd53ef7c6f55 | 13 +++++-- .../a6c2814c634490d4878583119d08d68e | 14 ++++--- .../a81b835b39da6615a9a766df0fad3301 | 20 ++++++++-- .../a8f004bdfb728931d4ef98fb3e581afe | 34 ++++++++++++++-- .../a90584694ed77c3c92df6cd3eb2f33f3 | 20 ++++++++-- .../a9d4bc6419c3955f9d42a176452b9d32 | 13 +++++-- .../aa0a0aed0c2fcea342e956346e0ecc0a | 20 ++++++++-- .../aa594ba1f60117f136d165089ee87318 | 20 ++++++++-- .../aabb0f472eda564a689ebcb62227cefd | 9 +---- .../ab16c3e46683501268ba03cbf4cd96d9 | 27 +++++++++++-- .../ab51f0cdf303246217f87ce8de260742 | 13 +++++-- .../ab6680d8e66585a70b1c57cf8a13d8b6 | 15 +------ .../abaacaaa6fe1fc05fa1a011f49757c5e | 20 ++++++++-- .../ac4bd6c6837c9be7cbf20f2aa62d0287 | 27 +++++++++++-- .../ad33cb560813c2806ea52ca22be9615f | 9 +---- .../aedbee8ad8addf69cd8472bc14456020 | 20 ++++++++-- .../afa090734d8e0950e64e3edb3b917f7b | 27 +++++++++++-- .../afca16bc3569dd90d68489a24733cc12 | 14 ++++--- .../b17370712f909f37a5634e252a0966cf | 32 +++++++++++---- .../b2351c12e1ff2aeba775d10a8b72f47c | 13 +++++-- .../b3385214d199789cf32f79fe3ab32ec8 | 20 ++++++++-- .../b49beb308c2fbc7f119a5b577643e971 | 27 +++++++++++-- .../b4b1ef9324f3a148a6b4011bf1b4a506 | 9 +---- .../b4fe30347745da383dfd315ab1d6db4c | 13 +++++-- .../b60562622e7fe9fdc5e3b177e9ce3c1d | 9 +---- .../b62326334234db25ab5c9e026d673141 | 13 +++++-- .../b645834450a99e98b200bf71d9028ee2 | 20 ++++++++-- .../b6e79c069c4c8d03af0d6428a6e54f84 | 15 +------ .../b7377b8628b8a1223dba9f9126b69c8d | 9 +---- .../ba7bac6bfa1fc828bef2f88f76db97ba | 9 +---- .../bb05a7e41742256f40fbeb98db8f3c66 | 15 +------ .../bc59d5d8465843802e6d0991434a2e69 | 9 +---- .../bcda06077e3818330a0949e74f420b1c | 27 +++++++++++-- .../bd32454ebe7d406fa0c33274b38d77cc | 21 +++++++--- .../bf1eee446b935f8dc62dfdd9ea492630 | 32 +++++++++++---- .../c0214836ff6291b6c79b285d44c6e28d | 9 +---- .../c0332fa29559fa9f027c2590e4178f98 | 20 ++++++++-- .../c1201e586f9a602a5239f1b86ffe8e07 | 9 +---- .../c13c6d3ec550add3c9198ee10f745274 | 9 +---- .../c3451b13501ff3b224ee15977937e916 | 9 +---- .../c35cfac1885964922e77c23599754063 | 9 +---- .../c38b0c2862655f5254c6d38ac0356a40 | 9 +---- .../c58925536db79e6065161661cd4f34d8 | 20 ++++++++-- .../c6605616702fffa5a9fa340ce154d937 | 21 +++++++--- .../c6d06fb320d6f79617d612635443d83c | 9 +---- .../c882c01d6cd8576e85069ad4a184b9fe | 20 ++++++++-- .../c99370f96c34bd44766404a19c5b7e1e | 13 +++++-- .../c9c0a7cd631374e152a023bff8f06c19 | 9 +---- .../ca63dcc3736aca6a5a2f7b31dd6c7807 | 20 ++++++++-- .../ca9452b58640e30b01a14076ec12ab07 | 9 +---- .../ca9b105131a1da20f404c934adca55c8 | 15 +------ .../caa032701b2f148bbfe5fef80ee5e0f8 | 13 +++++-- .../cabef581515886b32b2c245b6821641c | 9 +---- .../cafd1c9a61687416b8d79498083e7828 | 20 ++++++++-- .../cdb0a88fdea4d3ecdb9c3d3e533363cc | 20 ++++++++-- .../cdfca9e5b3d8afb4d0d9485648ba95b7 | 9 +---- .../ce36ff9e106c90dbb7eeaeee1f268316 | 9 +---- .../cf86bf9ab71128c0791c986fd734efe5 | 34 ++++++++++++++-- .../d1ec6f594b0418ae1fda1e827f208310 | 15 +------ .../d3979aa57647e490f961d1127c950769 | 20 ++++++++-- .../d423ceb9eae60cd4252d097f17c4fad9 | 20 ++++++++-- .../d429ff8a61f5b5bdc7c46348508b6214 | 9 +---- .../d49ce8dfd404f80b630039a3eed57959 | 20 ++++++++-- .../d4aaa921d685bd413e4cfa71f94411b8 | 27 +++++++++++-- .../d655eb92d0db9fc8d684747b65cd5972 | 13 +++++-- .../d6bb3621c75ec4c6e91b5c1daac3d94d | 20 ++++++++-- .../d791ec0e505586d915f031f02cbaf0d7 | 9 +---- .../d83287ce809cff873331d44c7808486d | 9 +---- .../d8b04b2893d10452427f09967be07fa0 | 15 +------ .../d9f68ead0cd9d538348a550546d6c90b | 20 ++++++++-- .../dbe0aff7883d30f1f9eaa4f1bf4d24ef | 21 +++++++--- .../dcaac775bde6c89d70d2ae75671301f7 | 9 +---- .../dcd9706d1348bdf7b535e8599c91985b | 14 ++++--- .../ddb9f0e69a28298b274d3a97e0b82dd7 | 20 ++++++++-- .../df0779461daf1c98199d982f7619f395 | 9 +---- .../dff71e30962f7f91ab6ce0e21dfac07e | 20 ++++++++-- .../e0927eea8e952454ee1a008c2b52be7e | 13 +++++-- .../e0e27b1b6ebc852d2ff7e54c764880ae | 9 +---- .../e10af529d538f905393cb854c431bdde | 9 +---- .../e18a9ec9af7a87a7447cbdc6d7b29c97 | 13 +++++-- .../e262953038466e3ecb384a7203d5afea | 9 +---- .../e35a3f6c92398728f6100e796bc47b97 | 20 ++++++++-- .../e432c6ffcff0a73bc94c0e2172958cbc | 20 ++++++++-- .../e519f254c67f814e66cae870e6716027 | 9 +---- .../e66fdfb1ce638e361cc818449c04d005 | 20 ++++++++-- .../e7a858eadabe6443294e88d900450e1a | 13 +++++-- .../e7fbf50469cd7d557eb80ef75fd68553 | 20 ++++++++-- .../e8c7875756ba37d64551cf5fba4a3fc3 | 13 +++++-- .../e8d56f9e3d9452446604a0199497ee93 | 13 +++++-- .../ea2352cdf899bac5cce60dc463858bc1 | 9 +---- .../eabb0530c2ab75ed428030512d0c4106 | 21 +++++++--- .../eb604edda8343fb17d71a50b640b4ecd | 13 +++++-- .../eb9e3a2c6fb03317f6c3202fe6fc04f3 | 9 +---- .../ef0836c220d81fc95a69a91860ac048f | 13 +++++-- .../ef1f88368281d0fcc720f3b903a371ab | 9 +---- .../efb67e749f72fd7d0700399f29fee1b1 | 13 +++++-- .../f0f22908fd27214728fb0e8a0ee561eb | 21 +++++++--- .../f0f565c635e44ddb57b0c049d1b3cc60 | 20 ++++++++-- .../f11a8fcf101803bbaefad6a90cbb589b | 9 +---- .../f1cb3140a093417545ca0dc8064b39b9 | 20 ++++++++-- .../f1d52a5f0cf477a97747d789aa3ec636 | 9 +---- .../f24cfd1473da309b7ba6998cb28e7eda | 20 ++++++++-- .../f3924868f51b79fd1d70e5d81fd491dd | 9 +---- .../f3e0e57930508549d42b59b9e8e8d60f | 9 +---- .../f478763e34af90b0adef3ab65bd4b4c3 | 20 ++++++++-- .../f4c6697e6f589ec52ec9fd1793a59e09 | 9 +---- .../f4cc0472dae406d028ad3ef1c677de84 | 13 +++++-- .../f589ce118d41fb3bf98e4286e583c2a3 | 20 ++++++++-- .../f63f35706381fef03036110d550cfed5 | 20 ++++++++-- .../f67a9dc422577f0eb747c04d60584dea | 20 ++++++++-- .../f70d11826ecd66006b358de0024c957b | 13 +++++-- .../f8fefeddfe23e1ebaad7631687f2812e | 15 +------ .../f9d0ba32e21e9b95e9354a8abd27a216 | 9 +---- .../fa45239d4aa24a77460d3c610bf01eba | 9 +---- .../fb0a093c36fe1f1256ec410fa8fe94ad | 9 +---- bundle/test-suite.spec.ts | 4 +- draft-04/additionalItems.js | 4 +- draft-04/dependencies.js | 4 +- draft-04/items.js | 4 +- draft-2020-12/dynamicRef.js | 4 +- 334 files changed, 3256 insertions(+), 1862 deletions(-) diff --git a/bundle/generate-snapshots.js b/bundle/generate-snapshots.js index 8f4f7ae..1d0dc7b 100644 --- a/bundle/generate-snapshots.js +++ b/bundle/generate-snapshots.js @@ -1,6 +1,6 @@ import { writeFile, mkdir, rm } from "node:fs/promises"; import { isCompatible, md5, loadSchemas, testSuite, unloadSchemas } from "./test-utils.js"; -import { BASIC, compile, getSchema, Validation } from "../lib/experimental.js"; +import { DETAILED, compile, getSchema, Validation } from "../lib/experimental.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; import "../draft-2019-09/index.js"; @@ -30,7 +30,7 @@ const snapshotGenerator = async (version, dialect) => { const instance = Instance.fromJs(test.instance); const errors = []; const annotations = []; - const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat: BASIC }; + const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat: DETAILED }; const valid = Validation.interpret(schemaUri, instance, context); const expectedOutput = { valid, errors, annotations }; diff --git a/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 b/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 +++ b/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c b/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c index 44146d0..94f5788 100644 --- a/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c +++ b/bundle/snapshots/0257ca47cb26d95af6cddee31dc7ad4c @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/unevaluatedProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 b/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 index 44146d0..f1a63ab 100644 --- a/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 +++ b/bundle/snapshots/05009caa10a942d85c5fe0515b7eb0d9 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b b/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b index ecc3c45..ae69678 100644 --- a/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b +++ b/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f b/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f index ecc3c45..ae69678 100644 --- a/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f +++ b/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 b/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 index 44146d0..356a1ac 100644 --- a/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 +++ b/bundle/snapshots/09b5adea8278afad071a2d7b5ac4fc81 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f b/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f index 44146d0..f1a63ab 100644 --- a/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f +++ b/bundle/snapshots/09ecbfa9dbd81a38f0984dba2c5dba2f @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc b/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc index 4ba991c..a61530a 100644 --- a/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc +++ b/bundle/snapshots/0a5429dfef8968c6bd88ac3922f55cbc @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "keyword": "https://json-schema.org/keyword/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d b/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d +++ b/bundle/snapshots/0ada8a1e7e71d8771e5fefbf455bcb0d @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 b/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 +++ b/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 b/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 index 44146d0..8cc085d 100644 --- a/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 +++ b/bundle/snapshots/0ce5981a970aa2c374dc9921ca3e3745 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce b/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce index 8980916..72ec87a 100644 --- a/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce +++ b/bundle/snapshots/0dcb5cd590f2b70cd9ddbc0ad8f045ce @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec b/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec index 44146d0..f1a63ab 100644 --- a/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec +++ b/bundle/snapshots/0e5d4e29ac0020de6434c0e6250738ec @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 b/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 index 1878ba3..aa59fe4 100644 --- a/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 +++ b/bundle/snapshots/114681e245a0b42f2313fc2e0315a1e7 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 b/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 +++ b/bundle/snapshots/120a1e86ded8c56db704fe602846c6b8 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 b/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 +++ b/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 b/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 index 44146d0..37301b6 100644 --- a/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 +++ b/bundle/snapshots/12e5d143b07d6a7353a00207cb117789 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 b/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 +++ b/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/139365710fd189f2fd51509dc69cec43 b/bundle/snapshots/139365710fd189f2fd51509dc69cec43 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/139365710fd189f2fd51509dc69cec43 +++ b/bundle/snapshots/139365710fd189f2fd51509dc69cec43 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 b/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 index 2c9fafc..d29b3d2 100644 --- a/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 +++ b/bundle/snapshots/1398f4f3aaf34a96688a7768cbf41ff0 @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", - "instanceLocation": "#/tree/branch" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$ref", + "instanceLocation": "#/tree/branch", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f b/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f index ecc3c45..ae69678 100644 --- a/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f +++ b/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 b/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 +++ b/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da b/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da index 44146d0..37301b6 100644 --- a/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da +++ b/bundle/snapshots/145eeaee28b6389d709d2c98e008a0da @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 b/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 index 4ba991c..a61530a 100644 --- a/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 +++ b/bundle/snapshots/14a1fe027d91308e0ad53459d6d36724 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "keyword": "https://json-schema.org/keyword/items", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 b/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 index 4ba991c..7ead60f 100644 --- a/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 +++ b/bundle/snapshots/16362d4681a7fc02b09b9af24ae23e82 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "keyword": "https://json-schema.org/keyword/unevaluatedItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 b/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 index 8980916..72ec87a 100644 --- a/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 +++ b/bundle/snapshots/164201e3f9fb61bd594cc5f47cb94d55 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be b/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be index ecc3c45..ae69678 100644 --- a/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be +++ b/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 b/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 +++ b/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf b/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf index 4089504..ae69678 100644 --- a/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf +++ b/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/bar", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a b/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a index f3fe0cc..552bf80 100644 --- a/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a +++ b/bundle/snapshots/19c55f511be1beb3e693bac16d756f4a @@ -2,14 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$recursiveRef", - "instanceLocation": "#/tree/branch" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", - "instanceLocation": "#/tree/branch" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$recursiveRef", + "instanceLocation": "#/tree/branch", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/1a625d786c7bb443da8af47f719908da b/bundle/snapshots/1a625d786c7bb443da8af47f719908da index 1878ba3..3dd8160 100644 --- a/bundle/snapshots/1a625d786c7bb443da8af47f719908da +++ b/bundle/snapshots/1a625d786c7bb443da8af47f719908da @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 b/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 index 1878ba3..3dd8160 100644 --- a/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 +++ b/bundle/snapshots/1b4dbf42e23483d5bd7ca98b00aaaee0 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 b/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 index 44146d0..37301b6 100644 --- a/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 +++ b/bundle/snapshots/1b50751e8a7dafa55c763c9aec465703 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 b/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 index a0b2505..bb96913 100644 --- a/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 +++ b/bundle/snapshots/1b9f06a2dd38791a0f07e262b40986c0 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e b/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e index 1878ba3..aa59fe4 100644 --- a/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e +++ b/bundle/snapshots/1c5b525dd9558bb3bd0db3a72cda5e5e @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/1cea49df736e17a985371c89f01452da b/bundle/snapshots/1cea49df736e17a985371c89f01452da index 6a23099..ae69678 100644 --- a/bundle/snapshots/1cea49df736e17a985371c89f01452da +++ b/bundle/snapshots/1cea49df736e17a985371c89f01452da @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 b/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 index 44146d0..f1a63ab 100644 --- a/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 +++ b/bundle/snapshots/1d8100c94cb9a7cfc0026b535cf41a34 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 b/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 index 6a23099..ae69678 100644 --- a/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 +++ b/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c b/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c index 44146d0..37301b6 100644 --- a/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c +++ b/bundle/snapshots/1ef0aeba519a35c6a083cb650433fc6c @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b b/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b index ecc3c45..ae69678 100644 --- a/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b +++ b/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 b/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 +++ b/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff b/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff +++ b/bundle/snapshots/23ce37639303c4cdb4fa6dfe040fc0ff @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff b/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff index 44146d0..f1a63ab 100644 --- a/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff +++ b/bundle/snapshots/23cf9422bf26e5159ea8c7fa1a1b43ff @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 b/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 +++ b/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 b/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 +++ b/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c b/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c index 4089504..ae69678 100644 --- a/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c +++ b/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/bar", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/295e24d541e261e7fc1145930673ec37 b/bundle/snapshots/295e24d541e261e7fc1145930673ec37 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/295e24d541e261e7fc1145930673ec37 +++ b/bundle/snapshots/295e24d541e261e7fc1145930673ec37 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 b/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 index 44146d0..37301b6 100644 --- a/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 +++ b/bundle/snapshots/2a079a2f1d3d38713c5857b5126380e3 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/2a2f29a42be7c37c15ade2a4d3b1d606 b/bundle/snapshots/2a2f29a42be7c37c15ade2a4d3b1d606 index c44022b..c37a8d8 100644 --- a/bundle/snapshots/2a2f29a42be7c37c15ade2a4d3b1d606 +++ b/bundle/snapshots/2a2f29a42be7c37c15ade2a4d3b1d606 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/2cf8396e0620ac5ec71a5d9a79be3e42 b/bundle/snapshots/2cf8396e0620ac5ec71a5d9a79be3e42 index c44022b..c37a8d8 100644 --- a/bundle/snapshots/2cf8396e0620ac5ec71a5d9a79be3e42 +++ b/bundle/snapshots/2cf8396e0620ac5ec71a5d9a79be3e42 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc b/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc index 4089504..ae69678 100644 --- a/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc +++ b/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/bar", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e b/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e index ecc3c45..ae69678 100644 --- a/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e +++ b/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 b/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 index a08f8fb..72b66a8 100644 --- a/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 +++ b/bundle/snapshots/2f48ec33c3279dc7b8a49c068792dc13 @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 b/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 index 44146d0..94f5788 100644 --- a/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 +++ b/bundle/snapshots/2f7960c00691f686f3c067cffb02f4c1 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/unevaluatedProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/306aab4965c938883dcdf33ac166c126 b/bundle/snapshots/306aab4965c938883dcdf33ac166c126 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/306aab4965c938883dcdf33ac166c126 +++ b/bundle/snapshots/306aab4965c938883dcdf33ac166c126 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/315fa750fea0c01f430ff0851285d350 b/bundle/snapshots/315fa750fea0c01f430ff0851285d350 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/315fa750fea0c01f430ff0851285d350 +++ b/bundle/snapshots/315fa750fea0c01f430ff0851285d350 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 b/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 index 44146d0..5e36764 100644 --- a/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 +++ b/bundle/snapshots/3223bc30e1c92f0566849c6940bab742 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties//$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 b/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 index a08f8fb..d13d819 100644 --- a/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 +++ b/bundle/snapshots/33e5e6eebbbb677a7401180f969c9050 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/33f50872f240cb902c6196c518e53d80 b/bundle/snapshots/33f50872f240cb902c6196c518e53d80 index 6b6e613..23589a1 100644 --- a/bundle/snapshots/33f50872f240cb902c6196c518e53d80 +++ b/bundle/snapshots/33f50872f240cb902c6196c518e53d80 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/element/type", - "instanceLocation": "#/0" + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/items", + "absoluteKeywordLocation": "https://test.json-schema.org/list#/items", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/dynamicRef", + "absoluteKeywordLocation": "https://test.json-schema.org/list#/items/$dynamicRef", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/element/type", + "instanceLocation": "#/0" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e b/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e index 6a23099..ae69678 100644 --- a/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e +++ b/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 b/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 index a0b2505..bb96913 100644 --- a/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 +++ b/bundle/snapshots/3506fd4483c140b60a6ad8b0e7c371f2 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 b/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 index 6a23099..ae69678 100644 --- a/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 +++ b/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/361635a018008bcd5f70257cc035a909 b/bundle/snapshots/361635a018008bcd5f70257cc035a909 index 6a23099..ae69678 100644 --- a/bundle/snapshots/361635a018008bcd5f70257cc035a909 +++ b/bundle/snapshots/361635a018008bcd5f70257cc035a909 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 b/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 index 6a23099..ae69678 100644 --- a/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 +++ b/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 b/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 index b8e535c..45917eb 100644 --- a/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 +++ b/bundle/snapshots/379f482275fa7144adc6eb8061b633e2 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a b/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a index fe10aa3..ae69678 100644 --- a/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a +++ b/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 b/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 +++ b/bundle/snapshots/37cf51cc927985382a5a870e89138cc1 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 b/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 index b8e535c..c91aba6 100644 --- a/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 +++ b/bundle/snapshots/38e3d0fe6da335bf3be09d75dec08db7 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/else", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/398f49c7510a4ce7675d27f2872a94c8 b/bundle/snapshots/398f49c7510a4ce7675d27f2872a94c8 index 57d7f0c..c3d4af0 100644 --- a/bundle/snapshots/398f49c7510a4ce7675d27f2872a94c8 +++ b/bundle/snapshots/398f49c7510a4ce7675d27f2872a94c8 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/oneOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/3b583d182b168837010145a6bfc28896 b/bundle/snapshots/3b583d182b168837010145a6bfc28896 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/3b583d182b168837010145a6bfc28896 +++ b/bundle/snapshots/3b583d182b168837010145a6bfc28896 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/3e016af6c2bc7f7658ee0a739c238680 b/bundle/snapshots/3e016af6c2bc7f7658ee0a739c238680 index 6da48e0..d888589 100644 --- a/bundle/snapshots/3e016af6c2bc7f7658ee0a739c238680 +++ b/bundle/snapshots/3e016af6c2bc7f7658ee0a739c238680 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/anyOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/3e2d02b8cae2a253ea69ed381a8b9d98 b/bundle/snapshots/3e2d02b8cae2a253ea69ed381a8b9d98 index 6da48e0..d888589 100644 --- a/bundle/snapshots/3e2d02b8cae2a253ea69ed381a8b9d98 +++ b/bundle/snapshots/3e2d02b8cae2a253ea69ed381a8b9d98 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/anyOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/3e668d38678948523249b79c5c21b47e b/bundle/snapshots/3e668d38678948523249b79c5c21b47e index ecc3c45..ae69678 100644 --- a/bundle/snapshots/3e668d38678948523249b79c5c21b47e +++ b/bundle/snapshots/3e668d38678948523249b79c5c21b47e @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 b/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 +++ b/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/3f3dee627fbfc887cff9045580b1964d b/bundle/snapshots/3f3dee627fbfc887cff9045580b1964d index c44022b..c37a8d8 100644 --- a/bundle/snapshots/3f3dee627fbfc887cff9045580b1964d +++ b/bundle/snapshots/3f3dee627fbfc887cff9045580b1964d @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 b/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 index 99faa05..989d48d 100644 --- a/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 +++ b/bundle/snapshots/40c0113f25d0f0302def3b49c18d7610 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/draft-04/dependencies", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/bar" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies/foo/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e b/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e index 44146d0..37301b6 100644 --- a/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e +++ b/bundle/snapshots/413b750c53f86e1c95e2c75cc930e84e @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 b/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 index 6627924..6f57d04 100644 --- a/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 +++ b/bundle/snapshots/41a68d14acb0dc09c57e948216e5a735 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/contains", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a b/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a index a0b2505..bb96913 100644 --- a/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a +++ b/bundle/snapshots/441aabbe9efb26a2c634cd494c07aa1a @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 b/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 +++ b/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de b/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de index e6d09c7..ae69678 100644 --- a/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de +++ b/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/45e4100de0755bfb3b5e7f78acf0d2b1 b/bundle/snapshots/45e4100de0755bfb3b5e7f78acf0d2b1 index b219e4e..074cb3a 100644 --- a/bundle/snapshots/45e4100de0755bfb3b5e7f78acf0d2b1 +++ b/bundle/snapshots/45e4100de0755bfb3b5e7f78acf0d2b1 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/draft-06/contains", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/46083f579195b95d9b2928e15f896230 b/bundle/snapshots/46083f579195b95d9b2928e15f896230 index 6627924..6f57d04 100644 --- a/bundle/snapshots/46083f579195b95d9b2928e15f896230 +++ b/bundle/snapshots/46083f579195b95d9b2928e15f896230 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/contains", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/46c15f106452fb1e8856066491320b0f b/bundle/snapshots/46c15f106452fb1e8856066491320b0f index 4ba991c..7ead60f 100644 --- a/bundle/snapshots/46c15f106452fb1e8856066491320b0f +++ b/bundle/snapshots/46c15f106452fb1e8856066491320b0f @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "keyword": "https://json-schema.org/keyword/unevaluatedItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/47dd56964bedafeb0be6f463294df290 b/bundle/snapshots/47dd56964bedafeb0be6f463294df290 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/47dd56964bedafeb0be6f463294df290 +++ b/bundle/snapshots/47dd56964bedafeb0be6f463294df290 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 b/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 +++ b/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de b/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de index ecc3c45..ae69678 100644 --- a/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de +++ b/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 b/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 index e6d09c7..ae69678 100644 --- a/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 +++ b/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 b/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 +++ b/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad b/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad index 44146d0..5e36764 100644 --- a/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad +++ b/bundle/snapshots/4d0ddb9a2f9c4cea66f2d2438f9198ad @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties//$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 b/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 +++ b/bundle/snapshots/4da98c63a6fb5cf4ccdd1bd18ecee508 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f b/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f +++ b/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc b/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc +++ b/bundle/snapshots/4f0fd0ffa38dffa6db8a3d1d5d463bcc @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 b/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 index a08f8fb..0fb7c9d 100644 --- a/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 +++ b/bundle/snapshots/4f19f85845f2e6b0bccfaf8817df9949 @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 b/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 index a08f8fb..a36a5ea 100644 --- a/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 +++ b/bundle/snapshots/50170aa57fcf4eb7d8818e849d9a59a3 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa b/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa index ecc3c45..ae69678 100644 --- a/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa +++ b/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/53489b6846585e5710b6c31d6794072e b/bundle/snapshots/53489b6846585e5710b6c31d6794072e index fa3f83d..46c610a 100644 --- a/bundle/snapshots/53489b6846585e5710b6c31d6794072e +++ b/bundle/snapshots/53489b6846585e5710b6c31d6794072e @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a b/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a index 6a23099..ae69678 100644 --- a/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a +++ b/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 b/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 +++ b/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac b/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac +++ b/bundle/snapshots/54608e2ab681d8d36b330e7ce94d0fac @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 b/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 index e6d09c7..ae69678 100644 --- a/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 +++ b/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a b/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a index e6d09c7..ae69678 100644 --- a/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a +++ b/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/58990e97544d58f01c0480e37a0d68de b/bundle/snapshots/58990e97544d58f01c0480e37a0d68de index 44146d0..37301b6 100644 --- a/bundle/snapshots/58990e97544d58f01c0480e37a0d68de +++ b/bundle/snapshots/58990e97544d58f01c0480e37a0d68de @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea b/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea +++ b/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 b/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 index 6a23099..ae69678 100644 --- a/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 +++ b/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e b/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e index a0b2505..bb96913 100644 --- a/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e +++ b/bundle/snapshots/5b709ee8ce260b37316a856c1dd3af8e @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 b/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 +++ b/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 b/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 +++ b/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf b/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf index a08f8fb..0fb7c9d 100644 --- a/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf +++ b/bundle/snapshots/5e868f5f65688fa850bab82568dd25cf @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 b/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 +++ b/bundle/snapshots/603a07855d1c473b3008bdcd0cd8f730 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 b/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 +++ b/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 b/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 index 6da48e0..5ef007e 100644 --- a/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 +++ b/bundle/snapshots/616cc7e409e5bff800d4b7320389ccd2 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/anyOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 b/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 index a08f8fb..0fb7c9d 100644 --- a/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 +++ b/bundle/snapshots/622f70ca5abdb1c83791e4af90532927 @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 b/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 index 44146d0..356a1ac 100644 --- a/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 +++ b/bundle/snapshots/62cb227d489063c9e34bd0b20205b3f8 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/631601f0587d028272797790d9a69293 b/bundle/snapshots/631601f0587d028272797790d9a69293 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/631601f0587d028272797790d9a69293 +++ b/bundle/snapshots/631601f0587d028272797790d9a69293 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a b/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a index e6d09c7..ae69678 100644 --- a/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a +++ b/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/64913f6902288200f4baf65507d25418 b/bundle/snapshots/64913f6902288200f4baf65507d25418 index 2c9fafc..f14456c 100644 --- a/bundle/snapshots/64913f6902288200f4baf65507d25418 +++ b/bundle/snapshots/64913f6902288200f4baf65507d25418 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", - "instanceLocation": "#/tree/branch" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/64c6bad0f116a7630121c60f853d058d b/bundle/snapshots/64c6bad0f116a7630121c60f853d058d index a0b2505..bb96913 100644 --- a/bundle/snapshots/64c6bad0f116a7630121c60f853d058d +++ b/bundle/snapshots/64c6bad0f116a7630121c60f853d058d @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a b/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a index 44146d0..37301b6 100644 --- a/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a +++ b/bundle/snapshots/668a142b92014d8a44b96c8ea8d9bd5a @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/66a532315c257b4ea8d0e223eb416c51 b/bundle/snapshots/66a532315c257b4ea8d0e223eb416c51 index 57d7f0c..c3d4af0 100644 --- a/bundle/snapshots/66a532315c257b4ea8d0e223eb416c51 +++ b/bundle/snapshots/66a532315c257b4ea8d0e223eb416c51 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/oneOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 b/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 index 6a23099..ae69678 100644 --- a/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 +++ b/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d b/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d +++ b/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/68b09d584199e39d8c997a45df01121f b/bundle/snapshots/68b09d584199e39d8c997a45df01121f index 44146d0..37301b6 100644 --- a/bundle/snapshots/68b09d584199e39d8c997a45df01121f +++ b/bundle/snapshots/68b09d584199e39d8c997a45df01121f @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 b/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 +++ b/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b b/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b +++ b/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 b/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 index e6d09c7..ae69678 100644 --- a/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 +++ b/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 b/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 +++ b/bundle/snapshots/6a4ae86f7a8d2c1d88cd2288eaac3e35 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 b/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 +++ b/bundle/snapshots/6a64bc6825952d799e3b90acb9a198f1 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 b/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 index 4ba991c..7ead60f 100644 --- a/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 +++ b/bundle/snapshots/6ab177eb2011f6de8e7c36352c166bc8 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "keyword": "https://json-schema.org/keyword/unevaluatedItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedItems/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 b/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 +++ b/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf b/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf index 4089504..ae69678 100644 --- a/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf +++ b/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/bar", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6b386352a3bdc92c705312c051682d06 b/bundle/snapshots/6b386352a3bdc92c705312c051682d06 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/6b386352a3bdc92c705312c051682d06 +++ b/bundle/snapshots/6b386352a3bdc92c705312c051682d06 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 b/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 index 6a23099..ae69678 100644 --- a/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 +++ b/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 b/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 index a08f8fb..0fb7c9d 100644 --- a/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 +++ b/bundle/snapshots/6cdfc10761bf99bf875f463ba7ab3b94 @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e b/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e +++ b/bundle/snapshots/6f095742f6db8534ecd5b6ccd293d37e @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 b/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 +++ b/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/6f544c2096b37a690163579f5e728919 b/bundle/snapshots/6f544c2096b37a690163579f5e728919 index 44146d0..37301b6 100644 --- a/bundle/snapshots/6f544c2096b37a690163579f5e728919 +++ b/bundle/snapshots/6f544c2096b37a690163579f5e728919 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 b/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 index e6d09c7..ae69678 100644 --- a/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 +++ b/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 b/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 +++ b/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb b/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb index fe10aa3..ae69678 100644 --- a/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb +++ b/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/743690d9928397863e6c3a28937acdd9 b/bundle/snapshots/743690d9928397863e6c3a28937acdd9 index 1878ba3..aa59fe4 100644 --- a/bundle/snapshots/743690d9928397863e6c3a28937acdd9 +++ b/bundle/snapshots/743690d9928397863e6c3a28937acdd9 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/751061810ec20f303494c7bf3ec7735d b/bundle/snapshots/751061810ec20f303494c7bf3ec7735d index fe10aa3..ae69678 100644 --- a/bundle/snapshots/751061810ec20f303494c7bf3ec7735d +++ b/bundle/snapshots/751061810ec20f303494c7bf3ec7735d @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef b/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef index e88faa4..23853d6 100644 --- a/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef +++ b/bundle/snapshots/75b29268d2cceed3c9894ff6a81235ef @@ -2,14 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/draft-04/items", - "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items", - "instanceLocation": "#/foo" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items/0/type", - "instanceLocation": "#/foo/0" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items/0/type", + "instanceLocation": "#/foo/0" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/75cd205ad240fa2f9c65a803920cedd6 b/bundle/snapshots/75cd205ad240fa2f9c65a803920cedd6 index c44022b..c37a8d8 100644 --- a/bundle/snapshots/75cd205ad240fa2f9c65a803920cedd6 +++ b/bundle/snapshots/75cd205ad240fa2f9c65a803920cedd6 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 b/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 index e6d09c7..ae69678 100644 --- a/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 +++ b/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 b/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 +++ b/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 b/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 index a0b2505..bb96913 100644 --- a/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 +++ b/bundle/snapshots/773f35ea98a5b0395940a1a24bb66f63 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 b/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 +++ b/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7788783f799c519551627f00d0bb9cec b/bundle/snapshots/7788783f799c519551627f00d0bb9cec index c549a85..536bb4c 100644 --- a/bundle/snapshots/7788783f799c519551627f00d0bb9cec +++ b/bundle/snapshots/7788783f799c519551627f00d0bb9cec @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/dependentSchemas", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/77a11629cbbbf038001f606f30435472 b/bundle/snapshots/77a11629cbbbf038001f606f30435472 index 4ba991c..3327f72 100644 --- a/bundle/snapshots/77a11629cbbbf038001f606f30435472 +++ b/bundle/snapshots/77a11629cbbbf038001f606f30435472 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "keyword": "https://json-schema.org/keyword/prefixItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems/0/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf b/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf index 5b2efd6..912e6b9 100644 --- a/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf +++ b/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", + "instanceLocation": "#/foobar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/795cae84dab790d15cda3a397cfd708a b/bundle/snapshots/795cae84dab790d15cda3a397cfd708a index 6627924..6f57d04 100644 --- a/bundle/snapshots/795cae84dab790d15cda3a397cfd708a +++ b/bundle/snapshots/795cae84dab790d15cda3a397cfd708a @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/contains", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 b/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 index a08f8fb..0fb7c9d 100644 --- a/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 +++ b/bundle/snapshots/7972d01ec0044d17b1ad698a09a20893 @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 b/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 index c549a85..536bb4c 100644 --- a/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 +++ b/bundle/snapshots/7a1bcb8d5b6c7d2da38c2fe4b6dfb779 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/dependentSchemas", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde b/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde +++ b/bundle/snapshots/7a2c563c23faa7d9aff4f943b978cfde @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 b/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 +++ b/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7a8b3a53063ecb110cbaff5b1f230335 b/bundle/snapshots/7a8b3a53063ecb110cbaff5b1f230335 index 6da48e0..d888589 100644 --- a/bundle/snapshots/7a8b3a53063ecb110cbaff5b1f230335 +++ b/bundle/snapshots/7a8b3a53063ecb110cbaff5b1f230335 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/anyOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7acc7b0c7341e2712d25763364a74ab2 b/bundle/snapshots/7acc7b0c7341e2712d25763364a74ab2 index 9f7c4de..4b0bce1 100644 --- a/bundle/snapshots/7acc7b0c7341e2712d25763364a74ab2 +++ b/bundle/snapshots/7acc7b0c7341e2712d25763364a74ab2 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/conditional", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/conditional", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/conditional/1/maxLength", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/conditional/1/maxLength", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 b/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 index 57d7f0c..89f8609 100644 --- a/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 +++ b/bundle/snapshots/7b7ea518fd130e2b1711645fcd7f2b28 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/oneOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f b/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f index fe10aa3..ae69678 100644 --- a/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f +++ b/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/7ec506bd89f8ff00deff19be525fbadf b/bundle/snapshots/7ec506bd89f8ff00deff19be525fbadf index b219e4e..074cb3a 100644 --- a/bundle/snapshots/7ec506bd89f8ff00deff19be525fbadf +++ b/bundle/snapshots/7ec506bd89f8ff00deff19be525fbadf @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/draft-06/contains", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/contains", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 b/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 index 2c9fafc..f14456c 100644 --- a/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 +++ b/bundle/snapshots/7ecb6ad65392ca8b8e34aa3dc0c80986 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", - "instanceLocation": "#/tree/branch" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f b/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f index a08f8fb..72b66a8 100644 --- a/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f +++ b/bundle/snapshots/7ee3fcb0e871c2ec5895c816f3b9578f @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 b/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 index 2c9fafc..f14456c 100644 --- a/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 +++ b/bundle/snapshots/7ff4acb0cfeaae933408014b06fa6223 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", - "instanceLocation": "#/tree/branch" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/805bb0a258628a33d224b7bc628be763 b/bundle/snapshots/805bb0a258628a33d224b7bc628be763 index 35441dc..0ea57ab 100644 --- a/bundle/snapshots/805bb0a258628a33d224b7bc628be763 +++ b/bundle/snapshots/805bb0a258628a33d224b7bc628be763 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/required", - "absoluteKeywordLocation": "https://test.json-schema.org/require-baz#/required", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/propertyDependencies", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyDependencies", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyDependencies/foo/bar/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/required", + "absoluteKeywordLocation": "https://test.json-schema.org/require-baz#/required", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 b/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 +++ b/bundle/snapshots/816e852a34eb476ddff3b64b44e6eea4 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b b/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b index 4089504..ae69678 100644 --- a/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b +++ b/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/bar", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 b/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 index 99faa05..989d48d 100644 --- a/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 +++ b/bundle/snapshots/84cb084a44caafafdc02f9572eae88f1 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/draft-04/dependencies", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/bar" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies/foo/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f b/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f index fe10aa3..ae69678 100644 --- a/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f +++ b/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b b/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b index b8e535c..8278e75 100644 --- a/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b +++ b/bundle/snapshots/8584f2ff7840daccfb1ca94df64eae9b @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 b/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 +++ b/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 b/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 index 44146d0..94f5788 100644 --- a/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 +++ b/bundle/snapshots/87a12f711d50d5c2cd39b331b3fc6247 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/unevaluatedProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/unevaluatedProperties/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 b/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 index 2c9fafc..d29b3d2 100644 --- a/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 +++ b/bundle/snapshots/8803185fd392d54d139c871df73eb8e2 @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", - "instanceLocation": "#/tree/branch" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$ref", + "instanceLocation": "#/tree/branch", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 b/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 index 44146d0..37301b6 100644 --- a/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 +++ b/bundle/snapshots/885c2c7e506a7b3994ee0712223fe432 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f b/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f index a08f8fb..d13d819 100644 --- a/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f +++ b/bundle/snapshots/89c1a21aabbf3a632255bfcaea39e87f @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 b/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 index 6a23099..ae69678 100644 --- a/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 +++ b/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 b/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 index 44146d0..8cc085d 100644 --- a/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 +++ b/bundle/snapshots/8b8822ada3f4768fa7ae924560a73398 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 b/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 +++ b/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 b/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 +++ b/bundle/snapshots/8c6ed6685b94d55160ac6be14fe40ed2 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af b/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af index 44146d0..37301b6 100644 --- a/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af +++ b/bundle/snapshots/8e314f133062f33b1b6608ebdf0be4af @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/8e80118d776ce2418345110c62c75f24 b/bundle/snapshots/8e80118d776ce2418345110c62c75f24 index c44022b..f4b398f 100644 --- a/bundle/snapshots/8e80118d776ce2418345110c62c75f24 +++ b/bundle/snapshots/8e80118d776ce2418345110c62c75f24 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 b/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 +++ b/bundle/snapshots/8ef87b9bde2992f331bc363fdc9f50c6 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b b/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b index a08f8fb..0fb7c9d 100644 --- a/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b +++ b/bundle/snapshots/8f0a2b5d0ec288a53862f2c2a2632e5b @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/903105d1609b59a688f9198f51b11b42 b/bundle/snapshots/903105d1609b59a688f9198f51b11b42 index 6a23099..ae69678 100644 --- a/bundle/snapshots/903105d1609b59a688f9198f51b11b42 +++ b/bundle/snapshots/903105d1609b59a688f9198f51b11b42 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 b/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 index fa3f83d..17bb89b 100644 --- a/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 +++ b/bundle/snapshots/9058d063196e4a1b6c023ba7d3975114 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 b/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 +++ b/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 b/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 +++ b/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d b/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d +++ b/bundle/snapshots/9439f14bdd1d80840e0dfec5478b6b0d @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 b/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 index 8980916..72ec87a 100644 --- a/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 +++ b/bundle/snapshots/951cf14e0d14a1aadf5bdeaa5ed8d2a1 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 b/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 index 6a23099..ae69678 100644 --- a/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 +++ b/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9826a4620381995cfc6e938d00979e95 b/bundle/snapshots/9826a4620381995cfc6e938d00979e95 index fa3f83d..46c610a 100644 --- a/bundle/snapshots/9826a4620381995cfc6e938d00979e95 +++ b/bundle/snapshots/9826a4620381995cfc6e938d00979e95 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 b/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 +++ b/bundle/snapshots/990b04d52c40521fb660ded5dc52cdb9 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 b/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 index a0b2505..bb96913 100644 --- a/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 +++ b/bundle/snapshots/9980aa3b3e1c4d06966ec347bffa28d3 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/9a690bdcb6c594657cb8df071954baac b/bundle/snapshots/9a690bdcb6c594657cb8df071954baac index e6d09c7..ae69678 100644 --- a/bundle/snapshots/9a690bdcb6c594657cb8df071954baac +++ b/bundle/snapshots/9a690bdcb6c594657cb8df071954baac @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9b1b667f2966cb8602339540c276802d b/bundle/snapshots/9b1b667f2966cb8602339540c276802d index b8e535c..8278e75 100644 --- a/bundle/snapshots/9b1b667f2966cb8602339540c276802d +++ b/bundle/snapshots/9b1b667f2966cb8602339540c276802d @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 b/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 index b8e535c..cee873f 100644 --- a/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 +++ b/bundle/snapshots/9b8b596cd673f6acb6020628b64323f5 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/else", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca b/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca index 44146d0..60476c9 100644 --- a/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca +++ b/bundle/snapshots/9bb39281f85726e4d1295c4d9755bbca @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 b/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 +++ b/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 b/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 index b8e535c..8278e75 100644 --- a/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 +++ b/bundle/snapshots/9d6b6408d87908bfd9f4e34adef25d36 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb b/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb index a0b2505..bb96913 100644 --- a/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb +++ b/bundle/snapshots/9e697bcb061c883e23c4e22b4a4b35cb @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 b/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 +++ b/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 b/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 index 57d7f0c..89f8609 100644 --- a/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 +++ b/bundle/snapshots/9fa2e59fd4fd83dee0556463433e63d8 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/oneOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 b/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 +++ b/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc b/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc index 5b2efd6..5eb2064 100644 --- a/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc +++ b/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 b/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 +++ b/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 b/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 +++ b/bundle/snapshots/a0bb26611b96a65e2b077977fe95b5e5 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 b/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 +++ b/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db b/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db index 6a23099..ae69678 100644 --- a/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db +++ b/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 b/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 +++ b/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 b/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 +++ b/bundle/snapshots/a3f3186aa2664c82fef37f6e07bcb141 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 b/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 index 8980916..72ec87a 100644 --- a/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 +++ b/bundle/snapshots/a46a44d40b69e5a0f9e59f3d5ac39437 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/then", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/then/maxLength", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 b/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 +++ b/bundle/snapshots/a57ab912aaa16c60bad64247e7fccc25 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 b/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 index 6a23099..ae69678 100644 --- a/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 +++ b/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 b/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 +++ b/bundle/snapshots/a68555395ebef6cb83c0cd53ef7c6f55 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a6c2814c634490d4878583119d08d68e b/bundle/snapshots/a6c2814c634490d4878583119d08d68e index 57d7f0c..c3d4af0 100644 --- a/bundle/snapshots/a6c2814c634490d4878583119d08d68e +++ b/bundle/snapshots/a6c2814c634490d4878583119d08d68e @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/oneOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 b/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 +++ b/bundle/snapshots/a81b835b39da6615a9a766df0fad3301 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe b/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe index 2c9fafc..d29b3d2 100644 --- a/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe +++ b/bundle/snapshots/a8f004bdfb728931d4ef98fb3e581afe @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", - "instanceLocation": "#/tree/branch" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/tree/$ref", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties", + "instanceLocation": "#/tree", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/properties/branch/$ref", + "instanceLocation": "#/tree/branch", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tree#/type", + "instanceLocation": "#/tree/branch" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 b/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 index 44146d0..60476c9 100644 --- a/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 +++ b/bundle/snapshots/a90584694ed77c3c92df6cd3eb2f33f3 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 b/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 index a0b2505..bb96913 100644 --- a/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 +++ b/bundle/snapshots/a9d4bc6419c3955f9d42a176452b9d32 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a b/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a index a08f8fb..d13d819 100644 --- a/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a +++ b/bundle/snapshots/aa0a0aed0c2fcea342e956346e0ecc0a @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/aa594ba1f60117f136d165089ee87318 b/bundle/snapshots/aa594ba1f60117f136d165089ee87318 index 44146d0..37301b6 100644 --- a/bundle/snapshots/aa594ba1f60117f136d165089ee87318 +++ b/bundle/snapshots/aa594ba1f60117f136d165089ee87318 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd b/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd index ecc3c45..ae69678 100644 --- a/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd +++ b/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 b/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 index a08f8fb..a36a5ea 100644 --- a/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 +++ b/bundle/snapshots/ab16c3e46683501268ba03cbf4cd96d9 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 b/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 index 5b2efd6..5eb2064 100644 --- a/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 +++ b/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 b/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 +++ b/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e b/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e index a08f8fb..d13d819 100644 --- a/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e +++ b/bundle/snapshots/abaacaaa6fe1fc05fa1a011f49757c5e @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 b/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 index a08f8fb..a36a5ea 100644 --- a/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 +++ b/bundle/snapshots/ac4bd6c6837c9be7cbf20f2aa62d0287 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f b/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f index ecc3c45..ae69678 100644 --- a/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f +++ b/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 b/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 index 44146d0..60476c9 100644 --- a/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 +++ b/bundle/snapshots/aedbee8ad8addf69cd8472bc14456020 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b b/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b index 44146d0..f1a63ab 100644 --- a/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b +++ b/bundle/snapshots/afa090734d8e0950e64e3edb3b917f7b @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/string/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/afca16bc3569dd90d68489a24733cc12 b/bundle/snapshots/afca16bc3569dd90d68489a24733cc12 index c44022b..c37a8d8 100644 --- a/bundle/snapshots/afca16bc3569dd90d68489a24733cc12 +++ b/bundle/snapshots/afca16bc3569dd90d68489a24733cc12 @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/b17370712f909f37a5634e252a0966cf b/bundle/snapshots/b17370712f909f37a5634e252a0966cf index e88faa4..23853d6 100644 --- a/bundle/snapshots/b17370712f909f37a5634e252a0966cf +++ b/bundle/snapshots/b17370712f909f37a5634e252a0966cf @@ -2,14 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/draft-04/items", - "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items", - "instanceLocation": "#/foo" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items/0/type", - "instanceLocation": "#/foo/0" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-04/items", + "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/tuple#/items/0/type", + "instanceLocation": "#/foo/0" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c b/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c +++ b/bundle/snapshots/b2351c12e1ff2aeba775d10a8b72f47c @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 b/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 +++ b/bundle/snapshots/b3385214d199789cf32f79fe3ab32ec8 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 b/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 index c549a85..536bb4c 100644 --- a/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 +++ b/bundle/snapshots/b49beb308c2fbc7f119a5b577643e971 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/dependentSchemas", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependentSchemas/foo/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 b/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 index 6a23099..ae69678 100644 --- a/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 +++ b/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c b/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c +++ b/bundle/snapshots/b4fe30347745da383dfd315ab1d6db4c @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d b/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d index ecc3c45..ae69678 100644 --- a/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d +++ b/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b62326334234db25ab5c9e026d673141 b/bundle/snapshots/b62326334234db25ab5c9e026d673141 index a0b2505..bb96913 100644 --- a/bundle/snapshots/b62326334234db25ab5c9e026d673141 +++ b/bundle/snapshots/b62326334234db25ab5c9e026d673141 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 b/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 index 44146d0..37301b6 100644 --- a/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 +++ b/bundle/snapshots/b645834450a99e98b200bf71d9028ee2 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 b/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 +++ b/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d b/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d +++ b/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba b/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba +++ b/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 b/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 +++ b/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 b/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 +++ b/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/bcda06077e3818330a0949e74f420b1c b/bundle/snapshots/bcda06077e3818330a0949e74f420b1c index fa3f83d..17bb89b 100644 --- a/bundle/snapshots/bcda06077e3818330a0949e74f420b1c +++ b/bundle/snapshots/bcda06077e3818330a0949e74f420b1c @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc b/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc index 57d7f0c..89f8609 100644 --- a/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc +++ b/bundle/snapshots/bd32454ebe7d406fa0c33274b38d77cc @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/oneOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/oneOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 b/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 index 0dc8e49..b50f59b 100644 --- a/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 +++ b/bundle/snapshots/bf1eee446b935f8dc62dfdd9ea492630 @@ -2,14 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", - "absoluteKeywordLocation": "https://test.json-schema.org/list#/items/$dynamicRef", - "instanceLocation": "#/0" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/element/type", - "instanceLocation": "#/0" + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/items", + "absoluteKeywordLocation": "https://test.json-schema.org/list#/items", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/draft-2020-12/dynamicRef", + "absoluteKeywordLocation": "https://test.json-schema.org/list#/items/$dynamicRef", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$defs/element/type", + "instanceLocation": "#/0" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d b/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d index 6a23099..ae69678 100644 --- a/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d +++ b/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 b/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 index b8e535c..c91aba6 100644 --- a/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 +++ b/bundle/snapshots/c0332fa29559fa9f027c2590e4178f98 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/else", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 b/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 +++ b/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 b/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 +++ b/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c3451b13501ff3b224ee15977937e916 b/bundle/snapshots/c3451b13501ff3b224ee15977937e916 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/c3451b13501ff3b224ee15977937e916 +++ b/bundle/snapshots/c3451b13501ff3b224ee15977937e916 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c35cfac1885964922e77c23599754063 b/bundle/snapshots/c35cfac1885964922e77c23599754063 index e6d09c7..ae69678 100644 --- a/bundle/snapshots/c35cfac1885964922e77c23599754063 +++ b/bundle/snapshots/c35cfac1885964922e77c23599754063 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 b/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 +++ b/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c58925536db79e6065161661cd4f34d8 b/bundle/snapshots/c58925536db79e6065161661cd4f34d8 index 44146d0..37301b6 100644 --- a/bundle/snapshots/c58925536db79e6065161661cd4f34d8 +++ b/bundle/snapshots/c58925536db79e6065161661cd4f34d8 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 b/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 index 6da48e0..5ef007e 100644 --- a/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 +++ b/bundle/snapshots/c6605616702fffa5a9fa340ce154d937 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/anyOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/c6d06fb320d6f79617d612635443d83c b/bundle/snapshots/c6d06fb320d6f79617d612635443d83c index ecc3c45..ae69678 100644 --- a/bundle/snapshots/c6d06fb320d6f79617d612635443d83c +++ b/bundle/snapshots/c6d06fb320d6f79617d612635443d83c @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe b/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe index 1878ba3..3dd8160 100644 --- a/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe +++ b/bundle/snapshots/c882c01d6cd8576e85069ad4a184b9fe @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e b/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e index 44146d0..356a1ac 100644 --- a/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e +++ b/bundle/snapshots/c99370f96c34bd44766404a19c5b7e1e @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 b/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 +++ b/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 b/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 index 5b2efd6..912e6b9 100644 --- a/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 +++ b/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", + "instanceLocation": "#/foobar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 b/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 index e6d09c7..ae69678 100644 --- a/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 +++ b/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 b/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 +++ b/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 b/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 index a0b2505..bb96913 100644 --- a/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 +++ b/bundle/snapshots/caa032701b2f148bbfe5fef80ee5e0f8 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/cabef581515886b32b2c245b6821641c b/bundle/snapshots/cabef581515886b32b2c245b6821641c index 6a23099..ae69678 100644 --- a/bundle/snapshots/cabef581515886b32b2c245b6821641c +++ b/bundle/snapshots/cabef581515886b32b2c245b6821641c @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 b/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 +++ b/bundle/snapshots/cafd1c9a61687416b8d79498083e7828 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc b/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc index fa3f83d..46c610a 100644 --- a/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc +++ b/bundle/snapshots/cdb0a88fdea4d3ecdb9c3d3e533363cc @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 b/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 +++ b/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 b/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 +++ b/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 b/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 index a08f8fb..72b66a8 100644 --- a/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 +++ b/bundle/snapshots/cf86bf9ab71128c0791c986fd734efe5 @@ -2,9 +2,37 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 b/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 +++ b/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d3979aa57647e490f961d1127c950769 b/bundle/snapshots/d3979aa57647e490f961d1127c950769 index 44146d0..4ef3e98 100644 --- a/bundle/snapshots/d3979aa57647e490f961d1127c950769 +++ b/bundle/snapshots/d3979aa57647e490f961d1127c950769 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/definitions/string/allOf", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 b/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 index 44146d0..37301b6 100644 --- a/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 +++ b/bundle/snapshots/d423ceb9eae60cd4252d097f17c4fad9 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 b/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 +++ b/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 b/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 index 44146d0..37301b6 100644 --- a/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 +++ b/bundle/snapshots/d49ce8dfd404f80b630039a3eed57959 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 b/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 index fa3f83d..17bb89b 100644 --- a/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 +++ b/bundle/snapshots/d4aaa921d685bd413e4cfa71f94411b8 @@ -2,9 +2,30 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://test.json-schema.org/foobar#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 b/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 index a0b2505..bb96913 100644 --- a/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 +++ b/bundle/snapshots/d655eb92d0db9fc8d684747b65cd5972 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d b/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d index 44146d0..4ef3e98 100644 --- a/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d +++ b/bundle/snapshots/d6bb3621c75ec4c6e91b5c1daac3d94d @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/definitions/string/allOf", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 b/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 index 6a23099..ae69678 100644 --- a/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 +++ b/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d83287ce809cff873331d44c7808486d b/bundle/snapshots/d83287ce809cff873331d44c7808486d index 6a23099..ae69678 100644 --- a/bundle/snapshots/d83287ce809cff873331d44c7808486d +++ b/bundle/snapshots/d83287ce809cff873331d44c7808486d @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 b/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 index fe10aa3..ae69678 100644 --- a/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 +++ b/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b b/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b +++ b/bundle/snapshots/d9f68ead0cd9d538348a550546d6c90b @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef b/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef index 99faa05..989d48d 100644 --- a/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef +++ b/bundle/snapshots/dbe0aff7883d30f1f9eaa4f1bf4d24ef @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/draft-04/dependencies", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/bar" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/dependencies/foo/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 b/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 +++ b/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/dcd9706d1348bdf7b535e8599c91985b b/bundle/snapshots/dcd9706d1348bdf7b535e8599c91985b index c44022b..c37a8d8 100644 --- a/bundle/snapshots/dcd9706d1348bdf7b535e8599c91985b +++ b/bundle/snapshots/dcd9706d1348bdf7b535e8599c91985b @@ -4,12 +4,14 @@ { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 b/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 index 44146d0..37301b6 100644 --- a/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 +++ b/bundle/snapshots/ddb9f0e69a28298b274d3a97e0b82dd7 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/df0779461daf1c98199d982f7619f395 b/bundle/snapshots/df0779461daf1c98199d982f7619f395 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/df0779461daf1c98199d982f7619f395 +++ b/bundle/snapshots/df0779461daf1c98199d982f7619f395 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e b/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e index 4ba991c..3327f72 100644 --- a/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e +++ b/bundle/snapshots/dff71e30962f7f91ab6ce0e21dfac07e @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "keyword": "https://json-schema.org/keyword/prefixItems", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/prefixItems/0/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e b/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e +++ b/bundle/snapshots/e0927eea8e952454ee1a008c2b52be7e @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae b/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae +++ b/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e10af529d538f905393cb854c431bdde b/bundle/snapshots/e10af529d538f905393cb854c431bdde index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/e10af529d538f905393cb854c431bdde +++ b/bundle/snapshots/e10af529d538f905393cb854c431bdde @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 b/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 +++ b/bundle/snapshots/e18a9ec9af7a87a7447cbdc6d7b29c97 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/e262953038466e3ecb384a7203d5afea b/bundle/snapshots/e262953038466e3ecb384a7203d5afea index ecc3c45..ae69678 100644 --- a/bundle/snapshots/e262953038466e3ecb384a7203d5afea +++ b/bundle/snapshots/e262953038466e3ecb384a7203d5afea @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 b/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 index 5b2efd6..912e6b9 100644 --- a/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 +++ b/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "keyword": "https://json-schema.org/keyword/propertyNames", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", + "instanceLocation": "#/foobar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#/foobar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc b/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc index 44146d0..37301b6 100644 --- a/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc +++ b/bundle/snapshots/e432c6ffcff0a73bc94c0e2172958cbc @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/e519f254c67f814e66cae870e6716027 b/bundle/snapshots/e519f254c67f814e66cae870e6716027 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/e519f254c67f814e66cae870e6716027 +++ b/bundle/snapshots/e519f254c67f814e66cae870e6716027 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 b/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 index b8e535c..c91aba6 100644 --- a/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 +++ b/bundle/snapshots/e66fdfb1ce638e361cc818449c04d005 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/maxLength", - "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#" + "keyword": "https://json-schema.org/keyword/else", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/else/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/maxLength", + "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/e7a858eadabe6443294e88d900450e1a b/bundle/snapshots/e7a858eadabe6443294e88d900450e1a index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/e7a858eadabe6443294e88d900450e1a +++ b/bundle/snapshots/e7a858eadabe6443294e88d900450e1a @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 b/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 +++ b/bundle/snapshots/e7fbf50469cd7d557eb80ef75fd68553 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 b/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 +++ b/bundle/snapshots/e8c7875756ba37d64551cf5fba4a3fc3 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 b/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 +++ b/bundle/snapshots/e8d56f9e3d9452446604a0199497ee93 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 b/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 +++ b/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 b/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 index c44022b..d2f0813 100644 --- a/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 +++ b/bundle/snapshots/eabb0530c2ab75ed428030512d0c4106 @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/draft-04/items", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/0" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/items/0/$ref", + "instanceLocation": "#/0", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/0" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd b/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd index a0b2505..bb96913 100644 --- a/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd +++ b/bundle/snapshots/eb604edda8343fb17d71a50b640b4ecd @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 b/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 index 42fb2bb..ae69678 100644 --- a/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 +++ b/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f b/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f index a0b2505..bb96913 100644 --- a/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f +++ b/bundle/snapshots/ef0836c220d81fc95a69a91860ac048f @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab b/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab index 4089504..ae69678 100644 --- a/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab +++ b/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/bar", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 b/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 index 44146d0..5dd8e7b 100644 --- a/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 +++ b/bundle/snapshots/efb67e749f72fd7d0700399f29fee1b1 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb b/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb index 6da48e0..5ef007e 100644 --- a/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb +++ b/bundle/snapshots/f0f22908fd27214728fb0e8a0ee561eb @@ -4,12 +4,21 @@ { "keyword": "https://json-schema.org/keyword/anyOf", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf", - "instanceLocation": "#" - }, - { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#" + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/anyOf/0/$ref", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 b/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 index a0b2505..3b6cc0e 100644 --- a/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 +++ b/bundle/snapshots/f0f565c635e44ddb57b0c049d1b3cc60 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/bar/$ref", + "instanceLocation": "#/bar", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b b/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b index ecc3c45..ae69678 100644 --- a/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b +++ b/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 b/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 index a08f8fb..d13d819 100644 --- a/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 +++ b/bundle/snapshots/f1cb3140a093417545ca0dc8064b39b9 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 b/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 +++ b/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda b/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda index 44146d0..4ef3e98 100644 --- a/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda +++ b/bundle/snapshots/f24cfd1473da309b7ba6998cb28e7eda @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/definitions/string/allOf", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd b/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd index ecc3c45..ae69678 100644 --- a/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd +++ b/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f b/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f index ecc3c45..ae69678 100644 --- a/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f +++ b/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 b/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 index 44146d0..37301b6 100644 --- a/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 +++ b/bundle/snapshots/f478763e34af90b0adef3ab65bd4b4c3 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 b/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 index ecc3c45..ae69678 100644 --- a/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 +++ b/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 b/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 index a0b2505..bb96913 100644 --- a/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 +++ b/bundle/snapshots/f4cc0472dae406d028ad3ef1c677de84 @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", - "instanceLocation": "#/bar" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/type", + "instanceLocation": "#/bar" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 b/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 index 44146d0..37301b6 100644 --- a/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 +++ b/bundle/snapshots/f589ce118d41fb3bf98e4286e583c2a3 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/properties/foo/$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f63f35706381fef03036110d550cfed5 b/bundle/snapshots/f63f35706381fef03036110d550cfed5 index a08f8fb..d13d819 100644 --- a/bundle/snapshots/f63f35706381fef03036110d550cfed5 +++ b/bundle/snapshots/f63f35706381fef03036110d550cfed5 @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/allOf", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/allOf", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/properties", + "absoluteKeywordLocation": "https://test.json-schema.org/foo#/properties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://test.json-schema.org/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea b/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea index 44146d0..5e36764 100644 --- a/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea +++ b/bundle/snapshots/f67a9dc422577f0eb747c04d60584dea @@ -2,9 +2,23 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/patternProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/ref", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/patternProperties//$ref", + "instanceLocation": "#/foo", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f70d11826ecd66006b358de0024c957b b/bundle/snapshots/f70d11826ecd66006b358de0024c957b index 44146d0..8cc085d 100644 --- a/bundle/snapshots/f70d11826ecd66006b358de0024c957b +++ b/bundle/snapshots/f70d11826ecd66006b358de0024c957b @@ -2,9 +2,16 @@ "valid": false, "errors": [ { - "keyword": "https://json-schema.org/keyword/type", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", - "instanceLocation": "#/foo" + "keyword": "https://json-schema.org/keyword/additionalProperties", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/additionalProperties", + "instanceLocation": "#", + "errors": [ + { + "keyword": "https://json-schema.org/keyword/type", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/type", + "instanceLocation": "#/foo" + } + ] } ], "annotations": [] diff --git a/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e b/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e index fe10aa3..ae69678 100644 --- a/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e +++ b/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e @@ -1,18 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - }, - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 b/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 index e6d09c7..ae69678 100644 --- a/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 +++ b/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", - "instanceLocation": "#/bar", - "annotation": "Number" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba b/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba index ecc3c45..ae69678 100644 --- a/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba +++ b/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/foo", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad b/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad index 6a23099..ae69678 100644 --- a/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad +++ b/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad @@ -1,12 +1,5 @@ { "valid": true, "errors": [], - "annotations": [ - { - "keyword": "https://json-schema.org/keyword/title", - "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", - "instanceLocation": "#/0", - "annotation": "String" - } - ] + "annotations": [] } \ No newline at end of file diff --git a/bundle/test-suite.spec.ts b/bundle/test-suite.spec.ts index 5f62651..c987731 100644 --- a/bundle/test-suite.spec.ts +++ b/bundle/test-suite.spec.ts @@ -2,7 +2,7 @@ import { readFile } from "node:fs/promises"; import { describe, it, expect, beforeAll, afterAll } from "vitest"; import { isCompatible, md5, loadSchemas, unloadSchemas, testSuite } from "./test-utils.js"; import { registerSchema, unregisterSchema } from "../lib/index.js"; -import { BASIC, compile, getKeywordName, getSchema, Validation } from "../lib/experimental.js"; +import { DETAILED, compile, getKeywordName, getSchema, Validation } from "../lib/experimental.js"; import * as Instance from "../lib/instance.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; @@ -60,7 +60,7 @@ const testRunner = (version: number, dialect: string) => { const instance = Instance.fromJs(test.instance); const errors: OutputUnit[] = []; const annotations: OutputUnit[] = []; - const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat: BASIC }; + const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat: DETAILED }; const valid = Validation.interpret(schemaUri, instance, context); const output = { valid, errors, annotations }; diff --git a/draft-04/additionalItems.js b/draft-04/additionalItems.js index 96d0586..fd62ccf 100644 --- a/draft-04/additionalItems.js +++ b/draft-04/additionalItems.js @@ -26,6 +26,8 @@ const interpret = ([numberOfItems, additionalItems], instance, context) => { ); }; +const simpleApplicator = true; + const collectEvaluatedItems = (keywordValue, instance, context) => { if (!interpret(keywordValue, instance, context)) { return false; @@ -39,4 +41,4 @@ const collectEvaluatedItems = (keywordValue, instance, context) => { return evaluatedIndexes; }; -export default { id, compile, interpret, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; diff --git a/draft-04/dependencies.js b/draft-04/dependencies.js index 588d0a3..79f53af 100644 --- a/draft-04/dependencies.js +++ b/draft-04/dependencies.js @@ -31,4 +31,6 @@ const interpret = (dependencies, instance, context) => { }); }; -export default { id, compile, interpret }; +const simpleApplicator = true; + +export default { id, compile, interpret, simpleApplicator }; diff --git a/draft-04/items.js b/draft-04/items.js index 6f4a8c5..be86134 100644 --- a/draft-04/items.js +++ b/draft-04/items.js @@ -34,10 +34,12 @@ const interpret = (items, instance, context) => { } }; +const simpleApplicator = true; + const collectEvaluatedItems = (items, instance, context) => { return interpret(items, instance, context) && (typeof items === "string" ? collectSet(range(0, Instance.length(instance))) : collectSet(range(0, items.length))); }; -export default { id, compile, interpret, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; diff --git a/draft-2020-12/dynamicRef.js b/draft-2020-12/dynamicRef.js index f8b2460..9d33b6e 100644 --- a/draft-2020-12/dynamicRef.js +++ b/draft-2020-12/dynamicRef.js @@ -21,8 +21,10 @@ const evaluate = (strategy, [id, fragment, ref], instance, context) => { } }; +const simpleApplicator = true; + const interpret = (...args) => evaluate(Validation.interpret, ...args); const collectEvaluatedProperties = (...args) => evaluate(Validation.collectEvaluatedProperties, ...args); const collectEvaluatedItems = (...args) => evaluate(Validation.collectEvaluatedItems, ...args); -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; From 66563fcef2baf20a2ef44bec1d906500ab032712 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Tue, 8 Apr 2025 18:03:41 -0700 Subject: [PATCH 14/40] 1.12.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7187cc8..99084e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.12.0", + "version": "1.12.1", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From 9ee3a89647aadaba5e7e2cbba79d49c7c215e10c Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 18 Apr 2025 13:58:18 -0700 Subject: [PATCH 15/40] Fix some types --- lib/experimental.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index ad23da0..68b2215 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -18,7 +18,7 @@ export type CompiledSchema = { type AST = { metaData: Record; -} & Record[] | boolean>>; +} & Record[] | boolean>; type Node = [keywordId: string, schemaUri: string, keywordValue: A]; @@ -81,6 +81,7 @@ export type ValidationContext = { dynamicAnchors: Anchors; errors: OutputUnit[]; annotations: OutputUnit[]; + outputFormat: OutputFormat; }; export const Validation: Keyword; From d1de7785ce6bb1f7815e72781d6dea7badf9c181 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 18 Apr 2025 14:41:19 -0700 Subject: [PATCH 16/40] Cleanup annotation code I missed from refactor --- README.md | 2 +- annotations/annotated-instance.d.ts | 2 +- annotations/annotated-instance.js | 35 +++-------------------------- lib/keywords/validation.js | 6 +++-- 4 files changed, 9 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 493eb6b..4081440 100644 --- a/README.md +++ b/README.md @@ -800,7 +800,7 @@ following functions are available in addition to the functions available in the * **annotation**: (instance: JsonNode, keyword: string, dialect?: string): any[]; Get the annotations for a keyword for the value represented by the JsonNode. -* **annotatedWith**: (instance: JsonNode, keyword: string, dialect?: string): JsonNode[]; +* **annotatedWith**: (instance: JsonNode, keyword: string, dialect?: string): Generator; Get all JsonNodes that are annotated with the given keyword. * **setAnnotation**: (instance: JsonNode, keywordId: string, value: any) => JsonNode diff --git a/annotations/annotated-instance.d.ts b/annotations/annotated-instance.d.ts index 78c6e6f..206df4f 100644 --- a/annotations/annotated-instance.d.ts +++ b/annotations/annotated-instance.d.ts @@ -1,4 +1,4 @@ export const annotation: (instance: JsonNode, keyword: string, dialectUri?: string) => A[]; -export const annotatedWith: (instance: A, keyword: string, dialectUri?: string) => A[]; +export const annotatedWith: (instance: A, keyword: string, dialectUri?: string) => Generator; export * from "../lib/instance.js"; diff --git a/annotations/annotated-instance.js b/annotations/annotated-instance.js index 3541740..c6d414e 100644 --- a/annotations/annotated-instance.js +++ b/annotations/annotated-instance.js @@ -1,4 +1,3 @@ -import * as JsonPointer from "@hyperjump/json-pointer"; import * as Instance from "../lib/instance.js"; import { getKeywordId } from "../lib/keywords.js"; @@ -7,43 +6,15 @@ const defaultDialectId = "https://json-schema.org/validation"; export const annotation = (node, keyword, dialect = defaultDialectId) => { const keywordUri = getKeywordId(keyword, dialect); - - let currentNode = node.root; - const errors = [...invalidSchemas(currentNode)]; - for (let segment of JsonPointer.pointerSegments(node.pointer)) { - segment = segment === "-" && Instance.typeOf(currentNode) === "array" ? Instance.length(currentNode) : segment; - currentNode = Instance.step(segment, currentNode); - errors.push(...invalidSchemas(currentNode)); - } - - const annotations = []; - for (const schemaLocation in node.annotations[keywordUri]) { - if (!errors.some((error) => schemaLocation.startsWith(error))) { - annotations.unshift(node.annotations[keywordUri][schemaLocation]); - } - } - - return annotations; + return node.annotations[keywordUri] ?? []; }; -const invalidSchemas = function* (node) { - for (const error in node.errors) { - if (node.errors[error] === "https://json-schema.org/evaluation/validate") { - yield error; - } - } -}; - -export const annotatedWith = (instance, keyword, dialectId = defaultDialectId) => { - const nodes = []; - +export const annotatedWith = function* (instance, keyword, dialectId = defaultDialectId) { for (const node of Instance.allNodes(instance)) { if (annotation(node, keyword, dialectId).length > 0) { - nodes.push(node); + yield node; } } - - return nodes; }; export * from "../lib/instance.js"; diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index f29ae2c..0cb116c 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -86,14 +86,16 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, ou errors.push(...context.errors); } else { if (keywordHandler.annotation) { - schemaAnnotations.push({ + schemaAnnotations.unshift({ keyword: keywordId, absoluteKeywordLocation: schemaUri, instanceLocation: Instance.uri(instance), annotation: keywordHandler.annotation(keywordValue) }); } - schemaAnnotations.push(...context.annotations); + for (const contextAnnotation of context.annotations) { + schemaAnnotations.unshift(contextAnnotation); + } } break; case DETAILED: { From e12a540fbdf4e9407ca79af59d5a8b0eb2e560a1 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 18 Apr 2025 15:09:08 -0700 Subject: [PATCH 17/40] Include instance in `annotation` handler and allow undefined return --- lib/experimental.d.ts | 2 +- lib/keywords/validation.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index 68b2215..508e0c9 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -73,7 +73,7 @@ export type Keyword = { collectEvaluatedProperties?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; collectEvaluatedItems?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; collectExternalIds?: (visited: Set, parentSchema: Browser, schema: Browser) => Promise>; - annotation?: (compiledKeywordValue: A) => B; + annotation?: (compiledKeywordValue: A, instance: JsonNode) => B | undefined; }; export type ValidationContext = { diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index 0cb116c..349c306 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -85,12 +85,13 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, ou } errors.push(...context.errors); } else { - if (keywordHandler.annotation) { + const annotation = keywordHandler.annotation?.(keywordValue, instance); + if (annotation !== undefined) { schemaAnnotations.unshift({ keyword: keywordId, absoluteKeywordLocation: schemaUri, instanceLocation: Instance.uri(instance), - annotation: keywordHandler.annotation(keywordValue) + annotation: annotation }); } for (const contextAnnotation of context.annotations) { From 7aa39cff6898370b7df450c07ddaf5f57f53d670 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 18 Apr 2025 15:09:53 -0700 Subject: [PATCH 18/40] Update content keywords to only apply to string instances --- annotations/tests/content.json | 56 ++++++++++++++++++++++++++++++-- lib/keywords/contentEncoding.js | 10 +++++- lib/keywords/contentMediaType.js | 10 +++++- lib/keywords/contentSchema.js | 19 +++++++++-- 4 files changed, 88 insertions(+), 7 deletions(-) diff --git a/annotations/tests/content.json b/annotations/tests/content.json index 461722c..5ce8abf 100644 --- a/annotations/tests/content.json +++ b/annotations/tests/content.json @@ -1,6 +1,6 @@ [ { - "title": "`contentMediaType` is an annotation", + "title": "`contentMediaType` is an annotation for string instances", "schema": { "contentMediaType": "application/json" }, @@ -14,11 +14,21 @@ "expected": ["application/json"] } ] + }, + { + "instance": 42, + "assertions": [ + { + "location": "#", + "keyword": "contentMediaType", + "expected": [] + } + ] } ] }, { - "title": "`contentEncoding` is an annotation", + "title": "`contentEncoding` is an annotation for string instances", "schema": { "contentEncoding": "base64" }, @@ -32,13 +42,24 @@ "expected": ["base64"] } ] + }, + { + "instance": 42, + "assertions": [ + { + "location": "#", + "keyword": "contentEncoding", + "expected": [] + } + ] } ] }, { - "title": "`contentSchema` is an annotation", + "title": "`contentSchema` is an annotation for string instances", "schema": { "$id": "https://annotations.json-schema.org/test/contentSchema-is-an-annotation", + "contentMediaType": "application/json", "contentSchema": { "type": "number" } }, "subjects": [ @@ -51,6 +72,35 @@ "expected": ["https://annotations.json-schema.org/test/contentSchema-is-an-annotation#/contentSchema"] } ] + }, + { + "instance": 42, + "assertions": [ + { + "location": "#", + "keyword": "contentSchema", + "expected": [] + } + ] + } + ] + }, + { + "title": "`contentSchema` requires `contentMediaType`", + "schema": { + "$id": "https://annotations.json-schema.org/test/contentSchema-is-an-annotation", + "contentSchema": { "type": "number" } + }, + "subjects": [ + { + "instance": "42", + "assertions": [ + { + "location": "#", + "keyword": "contentSchema", + "expected": [] + } + ] } ] } diff --git a/lib/keywords/contentEncoding.js b/lib/keywords/contentEncoding.js index 61eae1d..7243639 100644 --- a/lib/keywords/contentEncoding.js +++ b/lib/keywords/contentEncoding.js @@ -1,10 +1,18 @@ import * as Browser from "@hyperjump/browser"; +import * as Instance from "../instance.js"; const id = "https://json-schema.org/keyword/contentEncoding"; const compile = (schema) => Browser.value(schema); const interpret = () => true; -const annotation = (contentEncoding) => contentEncoding; + +const annotation = (contentEncoding, instance) => { + if (Instance.typeOf(instance) !== "string") { + return; + } + + return contentEncoding; +}; export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/contentMediaType.js b/lib/keywords/contentMediaType.js index d01c7b2..863e704 100644 --- a/lib/keywords/contentMediaType.js +++ b/lib/keywords/contentMediaType.js @@ -1,10 +1,18 @@ import * as Browser from "@hyperjump/browser"; +import * as Instance from "../instance.js"; const id = "https://json-schema.org/keyword/contentMediaType"; const compile = (schema) => Browser.value(schema); const interpret = () => true; -const annotation = (contentMediaType) => contentMediaType; + +const annotation = (contentMediaType, instance) => { + if (Instance.typeOf(instance) !== "string") { + return; + } + + return contentMediaType; +}; export default { id, compile, interpret, annotation }; diff --git a/lib/keywords/contentSchema.js b/lib/keywords/contentSchema.js index 8da03a3..17cc3d9 100644 --- a/lib/keywords/contentSchema.js +++ b/lib/keywords/contentSchema.js @@ -1,10 +1,25 @@ import { canonicalUri } from "../schema.js"; +import * as Browser from "@hyperjump/browser"; +import * as Instance from "../instance.js"; +import { getKeywordName } from "../keywords.js"; const id = "https://json-schema.org/keyword/contentSchema"; -const compile = (contentSchema) => canonicalUri(contentSchema); +const compile = async (contentSchema, _ast, parentSchema) => { + const contentMediaTypeKeyword = getKeywordName(contentSchema.document.dialectId, "https://json-schema.org/keyword/contentMediaType"); + const contentMediaType = await Browser.step(contentMediaTypeKeyword, parentSchema); + return Browser.value(contentMediaType) && canonicalUri(contentSchema); +}; + const interpret = () => true; -const annotation = (contentSchema) => contentSchema; + +const annotation = (contentSchema, instance) => { + if (Instance.typeOf(instance) !== "string") { + return; + } + + return contentSchema; +}; export default { id, compile, interpret, annotation }; From 2869a4d345911bc466a24a030ae0d8119f52429d Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 18 Apr 2025 15:34:07 -0700 Subject: [PATCH 19/40] 1.13.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 99084e1..6d697d6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.12.1", + "version": "1.13.0", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From 640b53abcc52a83e8748837afb2277a1bcafa397 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Sat, 19 Apr 2025 11:08:29 -0700 Subject: [PATCH 20/40] More cleanup for annotations --- annotations/index.js | 2 +- lib/keywords/validation.js | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/annotations/index.js b/annotations/index.js index d82c1fb..f2c4c28 100644 --- a/annotations/index.js +++ b/annotations/index.js @@ -30,7 +30,7 @@ export const interpret = ({ ast, schemaUri }, instance, outputFormat = BASIC) => if (!node.annotations[keyword]) { node.annotations[keyword] = []; } - node.annotations[keyword].push(annotation.annotation); + node.annotations[keyword].unshift(annotation.annotation); } return instance; diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index 349c306..e72624f 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -87,16 +87,14 @@ const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, ou } else { const annotation = keywordHandler.annotation?.(keywordValue, instance); if (annotation !== undefined) { - schemaAnnotations.unshift({ + schemaAnnotations.push({ keyword: keywordId, absoluteKeywordLocation: schemaUri, instanceLocation: Instance.uri(instance), annotation: annotation }); } - for (const contextAnnotation of context.annotations) { - schemaAnnotations.unshift(contextAnnotation); - } + schemaAnnotations.push(...context.annotations); } break; case DETAILED: { From 64d8a2e3d27903cb7be79eb83b33890060a86c2d Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Mon, 28 Apr 2025 10:45:10 -0700 Subject: [PATCH 21/40] Convert output and annotations to evaluation plugins --- annotations/index.js | 27 ++++- bundle/generate-snapshots.js | 18 ++- .../01be86475358c8fa8bd0cbb66acffae9 | 9 +- .../0847cca3f53b9cd12c08b8ab83d7486b | 9 +- .../09363ddcdd594c48891fa5b808f41d8f | 9 +- .../0c35d06197a49d13face4aa23020ee13 | 9 +- .../12a929ec4027ac23a3bfd2a485688590 | 9 +- .../13588b2ac26c9d54b3616b15944012f1 | 9 +- .../139365710fd189f2fd51509dc69cec43 | 9 +- .../139eaf7720391e4c1e25605f6e21410f | 9 +- .../140107810716e03ab58f4dcf4e4764e5 | 9 +- .../17a2e2c02ca51cfc306983ed174445be | 9 +- .../17d84f87c2eae257b78e5a71047a5ad0 | 15 ++- .../185e15fd0af7f6485875e6a467f013cf | 9 +- .../1cea49df736e17a985371c89f01452da | 9 +- .../1d97116a722902353c4c7c69d7a45df8 | 9 +- .../1efa6ede7b177dcaf2acf457c73b680b | 9 +- .../1fa7f5692e8b36aef495e649b044cab0 | 9 +- .../23e41888dc468f92d7165c0d76363bf5 | 9 +- .../260f9529ba78c8d79d2b84d0b63d2464 | 9 +- .../28c04cb59d9a3e0d0caacbf60dc8404c | 9 +- .../295e24d541e261e7fc1145930673ec37 | 9 +- .../2d53e6a2d0101794d6d63def48bfa2fc | 9 +- .../2e4080f67b91b77b1b5d2147b47c8a2e | 9 +- .../315fa750fea0c01f430ff0851285d350 | 9 +- .../3473c9bdcb047b6543fb424c8623313e | 9 +- .../35a365d04a84908c6a6b71df77a6cfc0 | 9 +- .../361635a018008bcd5f70257cc035a909 | 9 +- .../36b5b64c677a80297dc2d5e932a54b58 | 9 +- .../37a40c54ccbfb5d2a83bd9ac6b5c117a | 15 ++- .../3e668d38678948523249b79c5c21b47e | 9 +- .../3e9eede60da0b5be63b9867c4f025f09 | 9 +- .../4445a88a53e9d8f8d69e8acd369f5254 | 9 +- .../44bbf1c8fe84f62e0fc89472a32441de | 9 +- .../47f0de21a982f0768ceffb58d44a06e9 | 9 +- .../48b9f39400d58f56b7248e301ad7e7de | 9 +- .../4954d2a7bb33977e76dc4adb10333cb8 | 9 +- .../49e532f70ff30fa595e9aef33fadb7d9 | 9 +- .../4ee232632e2175763e5b0d9095a0c96f | 9 +- .../50b03a5e75eb98b3e2d3a57b58e9bcaa | 9 +- .../53f38f6440fff5a02a2fd3114a74cc0a | 9 +- .../540fa5cca68cc5fc017971fe949ec744 | 15 ++- .../57c4f6aefa5b3379d5d51cd4f117df24 | 9 +- .../588ce3c3d051294f32f288dc107aeb2a | 9 +- .../58ba828516dc2a7dd11b211e7b0a4aea | 9 +- .../59ef6a103c67e9a30f20398cbf777603 | 9 +- .../5cd2ea1dea2487662f9eac9b36f99844 | 9 +- .../5d1169fc5ced59e974bb0c760165a205 | 9 +- .../6168882c1056e6815be5413e2a1f5055 | 9 +- .../631601f0587d028272797790d9a69293 | 9 +- .../63cd868ff1cbf34a8528d4d242558f2a | 9 +- .../66c548e3bf559604741d9ed259ed34d7 | 9 +- .../66e9dd8ee0228ecdcf6bd47108b92b3d | 9 +- .../6968c38a401b0688b45288e0ec95c885 | 9 +- .../69b106c927b7f7981fd36a8438bace2b | 9 +- .../69c91d8e93aff9925828b4aaa405dcf2 | 9 +- .../6adbb440ad31560a4a6466c5298e3a60 | 9 +- .../6b01a0eaa2125bf3ed257022d3b3afdf | 9 +- .../6c7c3ba005dbd555285361370ee102d8 | 9 +- .../6f2d46005bed2363d10c8dc12fb0bfb9 | 9 +- .../7167dbda4b0815b291cd8895b4b36a70 | 9 +- .../71e98466e3ed19ba6a721195cc02ce64 | 15 ++- .../72bf4a748844347b9d25e2a72729a7eb | 15 ++- .../751061810ec20f303494c7bf3ec7735d | 15 ++- .../76142a2cb0bab3c94e8411c90b50ac61 | 9 +- .../7617d040bceda39dd57eb9510703ad14 | 9 +- .../77834ece32f1a31063e01f3ec4fa9053 | 9 +- .../7a67d89678cd91c5f1697da5aaa3f9f4 | 9 +- .../7cdc21f87f18840944e4158fa9138d0f | 15 ++- .../82a595a4d57fd6c27d073bbb2bbd231b | 9 +- .../84f573a1e8cb5220e00dc5e3bfc9735f | 15 ++- .../85ec6ca162a3b395988152a9b87636a1 | 9 +- .../8b6344a7c7b41f1737bbaa41d14ddcb5 | 9 +- .../8c14c43b3216be8b16cae4ab91e59c82 | 9 +- .../903105d1609b59a688f9198f51b11b42 | 9 +- .../91cad3e4c5e08c84328e7ccbed552f83 | 15 ++- .../940e35aea577fa47976f8c6e665f0231 | 9 +- .../95923c2e8dc7e5a16eecc57b67dbec60 | 9 +- .../9a690bdcb6c594657cb8df071954baac | 9 +- .../9c8df8e4b331caba03f41952ff505787 | 9 +- .../9f117911cdae56755cabb2b3f791f912 | 9 +- .../a0753ba94a4f5d41f8269e93d4822309 | 15 ++- .../a0a9c59df24729670c60574f20bdc496 | 9 +- .../a1b0605117441433a607b7ffa5f6da29 | 15 ++- .../a2c2de25cdefa86fb7516d81f3d352db | 9 +- .../a3768a2fdf36c7220d9611da76658217 | 9 +- .../a617dea854db2ec149020fb57eefffa8 | 9 +- .../aabb0f472eda564a689ebcb62227cefd | 9 +- .../ab6680d8e66585a70b1c57cf8a13d8b6 | 15 ++- .../ad33cb560813c2806ea52ca22be9615f | 9 +- .../b4b1ef9324f3a148a6b4011bf1b4a506 | 9 +- .../b60562622e7fe9fdc5e3b177e9ce3c1d | 9 +- .../b6e79c069c4c8d03af0d6428a6e54f84 | 15 ++- .../b7377b8628b8a1223dba9f9126b69c8d | 9 +- .../ba7bac6bfa1fc828bef2f88f76db97ba | 9 +- .../bb05a7e41742256f40fbeb98db8f3c66 | 15 ++- .../bc59d5d8465843802e6d0991434a2e69 | 9 +- .../c0214836ff6291b6c79b285d44c6e28d | 9 +- .../c1201e586f9a602a5239f1b86ffe8e07 | 9 +- .../c13c6d3ec550add3c9198ee10f745274 | 9 +- .../c3451b13501ff3b224ee15977937e916 | 9 +- .../c35cfac1885964922e77c23599754063 | 9 +- .../c38b0c2862655f5254c6d38ac0356a40 | 9 +- .../c6d06fb320d6f79617d612635443d83c | 9 +- .../c9c0a7cd631374e152a023bff8f06c19 | 9 +- .../ca9452b58640e30b01a14076ec12ab07 | 9 +- .../ca9b105131a1da20f404c934adca55c8 | 15 ++- .../cabef581515886b32b2c245b6821641c | 9 +- .../cdfca9e5b3d8afb4d0d9485648ba95b7 | 9 +- .../ce36ff9e106c90dbb7eeaeee1f268316 | 9 +- .../d1ec6f594b0418ae1fda1e827f208310 | 15 ++- .../d429ff8a61f5b5bdc7c46348508b6214 | 9 +- .../d791ec0e505586d915f031f02cbaf0d7 | 9 +- .../d83287ce809cff873331d44c7808486d | 9 +- .../d8b04b2893d10452427f09967be07fa0 | 15 ++- .../dcaac775bde6c89d70d2ae75671301f7 | 9 +- .../df0779461daf1c98199d982f7619f395 | 9 +- .../e0e27b1b6ebc852d2ff7e54c764880ae | 9 +- .../e10af529d538f905393cb854c431bdde | 9 +- .../e262953038466e3ecb384a7203d5afea | 9 +- .../e519f254c67f814e66cae870e6716027 | 9 +- .../ea2352cdf899bac5cce60dc463858bc1 | 9 +- .../eb9e3a2c6fb03317f6c3202fe6fc04f3 | 9 +- .../ef1f88368281d0fcc720f3b903a371ab | 9 +- .../f11a8fcf101803bbaefad6a90cbb589b | 9 +- .../f1d52a5f0cf477a97747d789aa3ec636 | 9 +- .../f3924868f51b79fd1d70e5d81fd491dd | 9 +- .../f3e0e57930508549d42b59b9e8e8d60f | 9 +- .../f4c6697e6f589ec52ec9fd1793a59e09 | 9 +- .../f8fefeddfe23e1ebaad7631687f2812e | 15 ++- .../f9d0ba32e21e9b95e9354a8abd27a216 | 9 +- .../fa45239d4aa24a77460d3c610bf01eba | 9 +- .../fb0a093c36fe1f1256ec410fa8fe94ad | 9 +- bundle/test-suite.spec.ts | 26 ++++- lib/core.js | 21 +++- lib/evaluation-plugins/annotations.js | 32 ++++++ lib/evaluation-plugins/basic-output.js | 34 ++++++ lib/evaluation-plugins/detailed-output.js | 36 ++++++ lib/experimental.d.ts | 18 ++- lib/experimental.js | 3 + lib/keywords/validation.js | 108 ++++++------------ 141 files changed, 1386 insertions(+), 224 deletions(-) create mode 100644 lib/evaluation-plugins/annotations.js create mode 100644 lib/evaluation-plugins/basic-output.js create mode 100644 lib/evaluation-plugins/detailed-output.js diff --git a/annotations/index.js b/annotations/index.js index f2c4c28..02b2539 100644 --- a/annotations/index.js +++ b/annotations/index.js @@ -1,8 +1,11 @@ import { FLAG } from "../lib/index.js"; import { ValidationError } from "./validation-error.js"; -import { getSchema, compile, BASIC } from "../lib/experimental.js"; +import { getSchema, compile, BASIC, DETAILED } from "../lib/experimental.js"; import Validation from "../lib/keywords/validation.js"; import * as Instance from "../lib/instance.js"; +import { annotationsPlugin } from "../lib/evaluation-plugins/annotations.js"; +import { basicOutputPlugin } from "../lib/evaluation-plugins/basic-output.js"; +import { detailedOutputPlugin } from "../lib/evaluation-plugins/detailed-output.js"; export const annotate = async (schemaUri, json = undefined, outputFormat = undefined) => { @@ -14,17 +17,29 @@ export const annotate = async (schemaUri, json = undefined, outputFormat = undef }; export const interpret = ({ ast, schemaUri }, instance, outputFormat = BASIC) => { - const errors = []; - const annotations = []; - const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat }; + const context = { ast, plugins: [annotationsPlugin], dynamicAnchors: {} }; + + switch (outputFormat) { + case FLAG: + break; + case BASIC: + context.plugins.push(basicOutputPlugin); + break; + case DETAILED: + context.plugins.push(detailedOutputPlugin); + break; + default: + throw Error(`Unsupported output format '${outputFormat}'`); + } + const valid = Validation.interpret(schemaUri, instance, context); if (!valid) { - const result = outputFormat === FLAG || valid ? { valid } : { valid, errors }; + const result = !valid && "errors" in context ? { valid, errors: context.errors } : { valid }; throw new ValidationError(result); } - for (const annotation of annotations) { + for (const annotation of context.annotations) { const node = Instance.get(annotation.instanceLocation, instance); const keyword = annotation.keyword; if (!node.annotations[keyword]) { diff --git a/bundle/generate-snapshots.js b/bundle/generate-snapshots.js index 1d0dc7b..bb0c573 100644 --- a/bundle/generate-snapshots.js +++ b/bundle/generate-snapshots.js @@ -1,6 +1,6 @@ import { writeFile, mkdir, rm } from "node:fs/promises"; import { isCompatible, md5, loadSchemas, testSuite, unloadSchemas } from "./test-utils.js"; -import { DETAILED, compile, getSchema, Validation } from "../lib/experimental.js"; +import { compile, getSchema, Validation } from "../lib/experimental.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; import "../draft-2019-09/index.js"; @@ -8,6 +8,8 @@ import "../draft-07/index.js"; import "../draft-06/index.js"; import "../draft-04/index.js"; import * as Instance from "../lib/instance.js"; +import { detailedOutputPlugin } from "../lib/evaluation-plugins/detailed-output.js"; +import { annotationsPlugin } from "../lib/evaluation-plugins/annotations.js"; const suite = testSuite("./bundle/tests"); @@ -28,12 +30,18 @@ const snapshotGenerator = async (version, dialect) => { const { ast, schemaUri } = await compile(schema); const instance = Instance.fromJs(test.instance); - const errors = []; - const annotations = []; - const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat: DETAILED }; + const context = { + ast, + plugins: [detailedOutputPlugin, annotationsPlugin], + dynamicAnchors: {} + }; const valid = Validation.interpret(schemaUri, instance, context); - const expectedOutput = { valid, errors, annotations }; + const expectedOutput = { + valid, + errors: context.errors, + annotations: context.annotations + }; unloadSchemas(testCase, mainSchemaUri); diff --git a/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 b/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 +++ b/bundle/snapshots/01be86475358c8fa8bd0cbb66acffae9 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b b/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b index ae69678..ecc3c45 100644 --- a/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b +++ b/bundle/snapshots/0847cca3f53b9cd12c08b8ab83d7486b @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f b/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f index ae69678..ecc3c45 100644 --- a/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f +++ b/bundle/snapshots/09363ddcdd594c48891fa5b808f41d8f @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 b/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 +++ b/bundle/snapshots/0c35d06197a49d13face4aa23020ee13 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 b/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 +++ b/bundle/snapshots/12a929ec4027ac23a3bfd2a485688590 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 b/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 +++ b/bundle/snapshots/13588b2ac26c9d54b3616b15944012f1 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/139365710fd189f2fd51509dc69cec43 b/bundle/snapshots/139365710fd189f2fd51509dc69cec43 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/139365710fd189f2fd51509dc69cec43 +++ b/bundle/snapshots/139365710fd189f2fd51509dc69cec43 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f b/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f index ae69678..ecc3c45 100644 --- a/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f +++ b/bundle/snapshots/139eaf7720391e4c1e25605f6e21410f @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 b/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 +++ b/bundle/snapshots/140107810716e03ab58f4dcf4e4764e5 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be b/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be index ae69678..ecc3c45 100644 --- a/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be +++ b/bundle/snapshots/17a2e2c02ca51cfc306983ed174445be @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 b/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 +++ b/bundle/snapshots/17d84f87c2eae257b78e5a71047a5ad0 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf b/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf index ae69678..4089504 100644 --- a/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf +++ b/bundle/snapshots/185e15fd0af7f6485875e6a467f013cf @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/1cea49df736e17a985371c89f01452da b/bundle/snapshots/1cea49df736e17a985371c89f01452da index ae69678..6a23099 100644 --- a/bundle/snapshots/1cea49df736e17a985371c89f01452da +++ b/bundle/snapshots/1cea49df736e17a985371c89f01452da @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 b/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 index ae69678..6a23099 100644 --- a/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 +++ b/bundle/snapshots/1d97116a722902353c4c7c69d7a45df8 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b b/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b index ae69678..ecc3c45 100644 --- a/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b +++ b/bundle/snapshots/1efa6ede7b177dcaf2acf457c73b680b @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 b/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 +++ b/bundle/snapshots/1fa7f5692e8b36aef495e649b044cab0 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 b/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 +++ b/bundle/snapshots/23e41888dc468f92d7165c0d76363bf5 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 b/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 +++ b/bundle/snapshots/260f9529ba78c8d79d2b84d0b63d2464 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c b/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c index ae69678..4089504 100644 --- a/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c +++ b/bundle/snapshots/28c04cb59d9a3e0d0caacbf60dc8404c @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/295e24d541e261e7fc1145930673ec37 b/bundle/snapshots/295e24d541e261e7fc1145930673ec37 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/295e24d541e261e7fc1145930673ec37 +++ b/bundle/snapshots/295e24d541e261e7fc1145930673ec37 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc b/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc index ae69678..4089504 100644 --- a/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc +++ b/bundle/snapshots/2d53e6a2d0101794d6d63def48bfa2fc @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e b/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e index ae69678..ecc3c45 100644 --- a/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e +++ b/bundle/snapshots/2e4080f67b91b77b1b5d2147b47c8a2e @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/315fa750fea0c01f430ff0851285d350 b/bundle/snapshots/315fa750fea0c01f430ff0851285d350 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/315fa750fea0c01f430ff0851285d350 +++ b/bundle/snapshots/315fa750fea0c01f430ff0851285d350 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e b/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e index ae69678..6a23099 100644 --- a/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e +++ b/bundle/snapshots/3473c9bdcb047b6543fb424c8623313e @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 b/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 index ae69678..6a23099 100644 --- a/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 +++ b/bundle/snapshots/35a365d04a84908c6a6b71df77a6cfc0 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/361635a018008bcd5f70257cc035a909 b/bundle/snapshots/361635a018008bcd5f70257cc035a909 index ae69678..6a23099 100644 --- a/bundle/snapshots/361635a018008bcd5f70257cc035a909 +++ b/bundle/snapshots/361635a018008bcd5f70257cc035a909 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 b/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 index ae69678..6a23099 100644 --- a/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 +++ b/bundle/snapshots/36b5b64c677a80297dc2d5e932a54b58 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a b/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a index ae69678..fe10aa3 100644 --- a/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a +++ b/bundle/snapshots/37a40c54ccbfb5d2a83bd9ac6b5c117a @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/3e668d38678948523249b79c5c21b47e b/bundle/snapshots/3e668d38678948523249b79c5c21b47e index ae69678..ecc3c45 100644 --- a/bundle/snapshots/3e668d38678948523249b79c5c21b47e +++ b/bundle/snapshots/3e668d38678948523249b79c5c21b47e @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 b/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 +++ b/bundle/snapshots/3e9eede60da0b5be63b9867c4f025f09 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 b/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 +++ b/bundle/snapshots/4445a88a53e9d8f8d69e8acd369f5254 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de b/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de index ae69678..e6d09c7 100644 --- a/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de +++ b/bundle/snapshots/44bbf1c8fe84f62e0fc89472a32441de @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 b/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 +++ b/bundle/snapshots/47f0de21a982f0768ceffb58d44a06e9 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de b/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de index ae69678..ecc3c45 100644 --- a/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de +++ b/bundle/snapshots/48b9f39400d58f56b7248e301ad7e7de @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 b/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 index ae69678..e6d09c7 100644 --- a/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 +++ b/bundle/snapshots/4954d2a7bb33977e76dc4adb10333cb8 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 b/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 +++ b/bundle/snapshots/49e532f70ff30fa595e9aef33fadb7d9 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f b/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f index ae69678..42fb2bb 100644 --- a/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f +++ b/bundle/snapshots/4ee232632e2175763e5b0d9095a0c96f @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa b/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa index ae69678..ecc3c45 100644 --- a/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa +++ b/bundle/snapshots/50b03a5e75eb98b3e2d3a57b58e9bcaa @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a b/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a index ae69678..6a23099 100644 --- a/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a +++ b/bundle/snapshots/53f38f6440fff5a02a2fd3114a74cc0a @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 b/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 +++ b/bundle/snapshots/540fa5cca68cc5fc017971fe949ec744 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 b/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 index ae69678..e6d09c7 100644 --- a/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 +++ b/bundle/snapshots/57c4f6aefa5b3379d5d51cd4f117df24 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a b/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a index ae69678..e6d09c7 100644 --- a/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a +++ b/bundle/snapshots/588ce3c3d051294f32f288dc107aeb2a @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea b/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea index ae69678..42fb2bb 100644 --- a/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea +++ b/bundle/snapshots/58ba828516dc2a7dd11b211e7b0a4aea @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 b/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 index ae69678..6a23099 100644 --- a/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 +++ b/bundle/snapshots/59ef6a103c67e9a30f20398cbf777603 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 b/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 +++ b/bundle/snapshots/5cd2ea1dea2487662f9eac9b36f99844 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 b/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 +++ b/bundle/snapshots/5d1169fc5ced59e974bb0c760165a205 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 b/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 +++ b/bundle/snapshots/6168882c1056e6815be5413e2a1f5055 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/631601f0587d028272797790d9a69293 b/bundle/snapshots/631601f0587d028272797790d9a69293 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/631601f0587d028272797790d9a69293 +++ b/bundle/snapshots/631601f0587d028272797790d9a69293 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a b/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a index ae69678..e6d09c7 100644 --- a/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a +++ b/bundle/snapshots/63cd868ff1cbf34a8528d4d242558f2a @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 b/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 index ae69678..6a23099 100644 --- a/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 +++ b/bundle/snapshots/66c548e3bf559604741d9ed259ed34d7 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d b/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d index ae69678..42fb2bb 100644 --- a/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d +++ b/bundle/snapshots/66e9dd8ee0228ecdcf6bd47108b92b3d @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 b/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 +++ b/bundle/snapshots/6968c38a401b0688b45288e0ec95c885 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b b/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b index ae69678..42fb2bb 100644 --- a/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b +++ b/bundle/snapshots/69b106c927b7f7981fd36a8438bace2b @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 b/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 index ae69678..e6d09c7 100644 --- a/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 +++ b/bundle/snapshots/69c91d8e93aff9925828b4aaa405dcf2 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 b/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 +++ b/bundle/snapshots/6adbb440ad31560a4a6466c5298e3a60 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf b/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf index ae69678..4089504 100644 --- a/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf +++ b/bundle/snapshots/6b01a0eaa2125bf3ed257022d3b3afdf @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 b/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 index ae69678..6a23099 100644 --- a/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 +++ b/bundle/snapshots/6c7c3ba005dbd555285361370ee102d8 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 b/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 +++ b/bundle/snapshots/6f2d46005bed2363d10c8dc12fb0bfb9 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 b/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 index ae69678..e6d09c7 100644 --- a/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 +++ b/bundle/snapshots/7167dbda4b0815b291cd8895b4b36a70 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 b/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 +++ b/bundle/snapshots/71e98466e3ed19ba6a721195cc02ce64 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb b/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb index ae69678..fe10aa3 100644 --- a/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb +++ b/bundle/snapshots/72bf4a748844347b9d25e2a72729a7eb @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/751061810ec20f303494c7bf3ec7735d b/bundle/snapshots/751061810ec20f303494c7bf3ec7735d index ae69678..fe10aa3 100644 --- a/bundle/snapshots/751061810ec20f303494c7bf3ec7735d +++ b/bundle/snapshots/751061810ec20f303494c7bf3ec7735d @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 b/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 index ae69678..e6d09c7 100644 --- a/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 +++ b/bundle/snapshots/76142a2cb0bab3c94e8411c90b50ac61 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 b/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 +++ b/bundle/snapshots/7617d040bceda39dd57eb9510703ad14 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 b/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 +++ b/bundle/snapshots/77834ece32f1a31063e01f3ec4fa9053 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 b/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 +++ b/bundle/snapshots/7a67d89678cd91c5f1697da5aaa3f9f4 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f b/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f index ae69678..fe10aa3 100644 --- a/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f +++ b/bundle/snapshots/7cdc21f87f18840944e4158fa9138d0f @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b b/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b index ae69678..4089504 100644 --- a/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b +++ b/bundle/snapshots/82a595a4d57fd6c27d073bbb2bbd231b @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f b/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f index ae69678..fe10aa3 100644 --- a/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f +++ b/bundle/snapshots/84f573a1e8cb5220e00dc5e3bfc9735f @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 b/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 +++ b/bundle/snapshots/85ec6ca162a3b395988152a9b87636a1 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 b/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 index ae69678..6a23099 100644 --- a/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 +++ b/bundle/snapshots/8b6344a7c7b41f1737bbaa41d14ddcb5 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 b/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 +++ b/bundle/snapshots/8c14c43b3216be8b16cae4ab91e59c82 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/903105d1609b59a688f9198f51b11b42 b/bundle/snapshots/903105d1609b59a688f9198f51b11b42 index ae69678..6a23099 100644 --- a/bundle/snapshots/903105d1609b59a688f9198f51b11b42 +++ b/bundle/snapshots/903105d1609b59a688f9198f51b11b42 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 b/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 +++ b/bundle/snapshots/91cad3e4c5e08c84328e7ccbed552f83 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 b/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 +++ b/bundle/snapshots/940e35aea577fa47976f8c6e665f0231 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 b/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 index ae69678..6a23099 100644 --- a/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 +++ b/bundle/snapshots/95923c2e8dc7e5a16eecc57b67dbec60 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/9a690bdcb6c594657cb8df071954baac b/bundle/snapshots/9a690bdcb6c594657cb8df071954baac index ae69678..e6d09c7 100644 --- a/bundle/snapshots/9a690bdcb6c594657cb8df071954baac +++ b/bundle/snapshots/9a690bdcb6c594657cb8df071954baac @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 b/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 +++ b/bundle/snapshots/9c8df8e4b331caba03f41952ff505787 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 b/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 +++ b/bundle/snapshots/9f117911cdae56755cabb2b3f791f912 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 b/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 +++ b/bundle/snapshots/a0753ba94a4f5d41f8269e93d4822309 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 b/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 +++ b/bundle/snapshots/a0a9c59df24729670c60574f20bdc496 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 b/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 +++ b/bundle/snapshots/a1b0605117441433a607b7ffa5f6da29 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db b/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db index ae69678..6a23099 100644 --- a/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db +++ b/bundle/snapshots/a2c2de25cdefa86fb7516d81f3d352db @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 b/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 +++ b/bundle/snapshots/a3768a2fdf36c7220d9611da76658217 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 b/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 index ae69678..6a23099 100644 --- a/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 +++ b/bundle/snapshots/a617dea854db2ec149020fb57eefffa8 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd b/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd index ae69678..ecc3c45 100644 --- a/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd +++ b/bundle/snapshots/aabb0f472eda564a689ebcb62227cefd @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 b/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 +++ b/bundle/snapshots/ab6680d8e66585a70b1c57cf8a13d8b6 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f b/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f index ae69678..ecc3c45 100644 --- a/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f +++ b/bundle/snapshots/ad33cb560813c2806ea52ca22be9615f @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 b/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 index ae69678..6a23099 100644 --- a/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 +++ b/bundle/snapshots/b4b1ef9324f3a148a6b4011bf1b4a506 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d b/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d index ae69678..ecc3c45 100644 --- a/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d +++ b/bundle/snapshots/b60562622e7fe9fdc5e3b177e9ce3c1d @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 b/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 +++ b/bundle/snapshots/b6e79c069c4c8d03af0d6428a6e54f84 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d b/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d index ae69678..42fb2bb 100644 --- a/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d +++ b/bundle/snapshots/b7377b8628b8a1223dba9f9126b69c8d @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba b/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba index ae69678..42fb2bb 100644 --- a/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba +++ b/bundle/snapshots/ba7bac6bfa1fc828bef2f88f76db97ba @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 b/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 +++ b/bundle/snapshots/bb05a7e41742256f40fbeb98db8f3c66 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 b/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 +++ b/bundle/snapshots/bc59d5d8465843802e6d0991434a2e69 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d b/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d index ae69678..6a23099 100644 --- a/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d +++ b/bundle/snapshots/c0214836ff6291b6c79b285d44c6e28d @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 b/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 +++ b/bundle/snapshots/c1201e586f9a602a5239f1b86ffe8e07 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 b/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 +++ b/bundle/snapshots/c13c6d3ec550add3c9198ee10f745274 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c3451b13501ff3b224ee15977937e916 b/bundle/snapshots/c3451b13501ff3b224ee15977937e916 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/c3451b13501ff3b224ee15977937e916 +++ b/bundle/snapshots/c3451b13501ff3b224ee15977937e916 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c35cfac1885964922e77c23599754063 b/bundle/snapshots/c35cfac1885964922e77c23599754063 index ae69678..e6d09c7 100644 --- a/bundle/snapshots/c35cfac1885964922e77c23599754063 +++ b/bundle/snapshots/c35cfac1885964922e77c23599754063 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 b/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 +++ b/bundle/snapshots/c38b0c2862655f5254c6d38ac0356a40 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c6d06fb320d6f79617d612635443d83c b/bundle/snapshots/c6d06fb320d6f79617d612635443d83c index ae69678..ecc3c45 100644 --- a/bundle/snapshots/c6d06fb320d6f79617d612635443d83c +++ b/bundle/snapshots/c6d06fb320d6f79617d612635443d83c @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 b/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 +++ b/bundle/snapshots/c9c0a7cd631374e152a023bff8f06c19 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 b/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 index ae69678..e6d09c7 100644 --- a/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 +++ b/bundle/snapshots/ca9452b58640e30b01a14076ec12ab07 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 b/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 +++ b/bundle/snapshots/ca9b105131a1da20f404c934adca55c8 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/cabef581515886b32b2c245b6821641c b/bundle/snapshots/cabef581515886b32b2c245b6821641c index ae69678..6a23099 100644 --- a/bundle/snapshots/cabef581515886b32b2c245b6821641c +++ b/bundle/snapshots/cabef581515886b32b2c245b6821641c @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 b/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 +++ b/bundle/snapshots/cdfca9e5b3d8afb4d0d9485648ba95b7 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 b/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 +++ b/bundle/snapshots/ce36ff9e106c90dbb7eeaeee1f268316 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 b/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 +++ b/bundle/snapshots/d1ec6f594b0418ae1fda1e827f208310 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 b/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 +++ b/bundle/snapshots/d429ff8a61f5b5bdc7c46348508b6214 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 b/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 index ae69678..6a23099 100644 --- a/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 +++ b/bundle/snapshots/d791ec0e505586d915f031f02cbaf0d7 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d83287ce809cff873331d44c7808486d b/bundle/snapshots/d83287ce809cff873331d44c7808486d index ae69678..6a23099 100644 --- a/bundle/snapshots/d83287ce809cff873331d44c7808486d +++ b/bundle/snapshots/d83287ce809cff873331d44c7808486d @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 b/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 index ae69678..fe10aa3 100644 --- a/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 +++ b/bundle/snapshots/d8b04b2893d10452427f09967be07fa0 @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 b/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 +++ b/bundle/snapshots/dcaac775bde6c89d70d2ae75671301f7 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/df0779461daf1c98199d982f7619f395 b/bundle/snapshots/df0779461daf1c98199d982f7619f395 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/df0779461daf1c98199d982f7619f395 +++ b/bundle/snapshots/df0779461daf1c98199d982f7619f395 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae b/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae index ae69678..42fb2bb 100644 --- a/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae +++ b/bundle/snapshots/e0e27b1b6ebc852d2ff7e54c764880ae @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/e10af529d538f905393cb854c431bdde b/bundle/snapshots/e10af529d538f905393cb854c431bdde index ae69678..42fb2bb 100644 --- a/bundle/snapshots/e10af529d538f905393cb854c431bdde +++ b/bundle/snapshots/e10af529d538f905393cb854c431bdde @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/e262953038466e3ecb384a7203d5afea b/bundle/snapshots/e262953038466e3ecb384a7203d5afea index ae69678..ecc3c45 100644 --- a/bundle/snapshots/e262953038466e3ecb384a7203d5afea +++ b/bundle/snapshots/e262953038466e3ecb384a7203d5afea @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/e519f254c67f814e66cae870e6716027 b/bundle/snapshots/e519f254c67f814e66cae870e6716027 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/e519f254c67f814e66cae870e6716027 +++ b/bundle/snapshots/e519f254c67f814e66cae870e6716027 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 b/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 +++ b/bundle/snapshots/ea2352cdf899bac5cce60dc463858bc1 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 b/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 index ae69678..42fb2bb 100644 --- a/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 +++ b/bundle/snapshots/eb9e3a2c6fb03317f6c3202fe6fc04f3 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab b/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab index ae69678..4089504 100644 --- a/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab +++ b/bundle/snapshots/ef1f88368281d0fcc720f3b903a371ab @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/bar", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b b/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b index ae69678..ecc3c45 100644 --- a/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b +++ b/bundle/snapshots/f11a8fcf101803bbaefad6a90cbb589b @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 b/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 +++ b/bundle/snapshots/f1d52a5f0cf477a97747d789aa3ec636 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd b/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd index ae69678..ecc3c45 100644 --- a/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd +++ b/bundle/snapshots/f3924868f51b79fd1d70e5d81fd491dd @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f b/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f index ae69678..ecc3c45 100644 --- a/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f +++ b/bundle/snapshots/f3e0e57930508549d42b59b9e8e8d60f @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 b/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 index ae69678..ecc3c45 100644 --- a/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 +++ b/bundle/snapshots/f4c6697e6f589ec52ec9fd1793a59e09 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e b/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e index ae69678..fe10aa3 100644 --- a/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e +++ b/bundle/snapshots/f8fefeddfe23e1ebaad7631687f2812e @@ -1,5 +1,18 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + }, + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 b/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 index ae69678..e6d09c7 100644 --- a/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 +++ b/bundle/snapshots/f9d0ba32e21e9b95e9354a8abd27a216 @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/number#/title", + "instanceLocation": "#/bar", + "annotation": "Number" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba b/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba index ae69678..ecc3c45 100644 --- a/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba +++ b/bundle/snapshots/fa45239d4aa24a77460d3c610bf01eba @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/foo", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad b/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad index ae69678..6a23099 100644 --- a/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad +++ b/bundle/snapshots/fb0a093c36fe1f1256ec410fa8fe94ad @@ -1,5 +1,12 @@ { "valid": true, "errors": [], - "annotations": [] + "annotations": [ + { + "keyword": "https://json-schema.org/keyword/title", + "absoluteKeywordLocation": "https://bundler.hyperjump.io/string#/title", + "instanceLocation": "#/0", + "annotation": "String" + } + ] } \ No newline at end of file diff --git a/bundle/test-suite.spec.ts b/bundle/test-suite.spec.ts index c987731..b5bf54f 100644 --- a/bundle/test-suite.spec.ts +++ b/bundle/test-suite.spec.ts @@ -2,7 +2,14 @@ import { readFile } from "node:fs/promises"; import { describe, it, expect, beforeAll, afterAll } from "vitest"; import { isCompatible, md5, loadSchemas, unloadSchemas, testSuite } from "./test-utils.js"; import { registerSchema, unregisterSchema } from "../lib/index.js"; -import { DETAILED, compile, getKeywordName, getSchema, Validation } from "../lib/experimental.js"; +import { + annotationsPlugin, + compile, + detailedOutputPlugin, + getKeywordName, + getSchema, + Validation +} from "../lib/experimental.js"; import * as Instance from "../lib/instance.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; @@ -14,6 +21,7 @@ import { bundle, URI, UUID } from "./index.js"; import type { BundleOptions } from "./index.js"; import type { OutputUnit } from "../lib/index.js"; +import type { AnnotationsContext, ErrorsContext, ValidationContext } from "../lib/experimental.js"; const suite = testSuite("./bundle/tests"); @@ -58,12 +66,20 @@ const testRunner = (version: number, dialect: string) => { const { ast, schemaUri } = await compile(schema); const instance = Instance.fromJs(test.instance); - const errors: OutputUnit[] = []; - const annotations: OutputUnit[] = []; - const context = { ast, dynamicAnchors: {}, errors, annotations, outputFormat: DETAILED }; + const context = { + ast, + plugins: [detailedOutputPlugin, annotationsPlugin], + dynamicAnchors: {}, + errors: [], + annotations: [] + } as ValidationContext & ErrorsContext & AnnotationsContext; const valid = Validation.interpret(schemaUri, instance, context); - const output = { valid, errors, annotations }; + const output = { + valid, + errors: context.errors, + annotations: context.annotations + }; const testId = md5(`${version}|${dialect}|${testCase.description}|${testIndex}`); const expectedOutputJson = await readFile(`./bundle/snapshots/${testId}`, "utf-8"); diff --git a/lib/core.js b/lib/core.js index d1d3759..18d41b8 100644 --- a/lib/core.js +++ b/lib/core.js @@ -11,6 +11,8 @@ import { InvalidSchemaError } from "./invalid-schema-error.js"; import { getSchema, registerSchema, unregisterSchema as schemaUnregister } from "./schema.js"; import { getKeywordName } from "./keywords.js"; import Validation from "./keywords/validation.js"; +import { basicOutputPlugin } from "./evaluation-plugins/basic-output.js"; +import { detailedOutputPlugin } from "./evaluation-plugins/detailed-output.js"; export const FLAG = "FLAG", BASIC = "BASIC", DETAILED = "DETAILED"; @@ -31,10 +33,23 @@ export const compile = async (schema) => { }; export const interpret = curry(({ ast, schemaUri }, instance, outputFormat = FLAG) => { - const errors = []; - const context = { ast, dynamicAnchors: {}, errors, annotations: [], outputFormat }; + const context = { ast, plugins: [], dynamicAnchors: {} }; + + switch (outputFormat) { + case FLAG: + break; + case BASIC: + context.plugins.push(basicOutputPlugin); + break; + case DETAILED: + context.plugins.push(detailedOutputPlugin); + break; + default: + throw Error(`Unsupported output format '${outputFormat}'`); + } + const valid = Validation.interpret(schemaUri, instance, context); - return outputFormat === FLAG || valid ? { valid } : { valid, errors }; + return !valid && "errors" in context ? { valid, errors: context.errors } : { valid }; }); const metaValidators = {}; diff --git a/lib/evaluation-plugins/annotations.js b/lib/evaluation-plugins/annotations.js new file mode 100644 index 0000000..b8ba804 --- /dev/null +++ b/lib/evaluation-plugins/annotations.js @@ -0,0 +1,32 @@ +import * as Instance from "../instance.js"; + + +export const annotationsPlugin = { + beforeSchema(context) { + context.annotations ??= []; + context.schemaAnnotations = []; + }, + beforeKeyword(context) { + context.annotations = []; + }, + afterKeyword(node, instance, valid, keywordContext, schemaContext, keyword) { + if (valid) { + const [keywordId, schemaUri, keywordValue] = node; + const annotation = keyword.annotation?.(keywordValue, instance, keywordContext); + if (annotation !== undefined) { + schemaContext.schemaAnnotations.push({ + keyword: keywordId, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance), + annotation: annotation + }); + } + schemaContext.schemaAnnotations.push(...keywordContext.annotations); + } + }, + afterSchema(_schemaNode, _instanceNode, valid, context) { + if (valid) { + context.annotations.push(...context.schemaAnnotations); + } + } +}; diff --git a/lib/evaluation-plugins/basic-output.js b/lib/evaluation-plugins/basic-output.js new file mode 100644 index 0000000..8b25cea --- /dev/null +++ b/lib/evaluation-plugins/basic-output.js @@ -0,0 +1,34 @@ +import { Validation } from "../experimental.js"; +import * as Instance from "../instance.js"; + + +export const basicOutputPlugin = { + beforeSchema(schemaContext) { + schemaContext.errors ??= []; + }, + beforeKeyword(keywordContext) { + keywordContext.errors = []; + }, + afterKeyword(node, instance, valid, keywordContext, schemaContext, keyword) { + if (!valid) { + if (!keyword.simpleApplicator) { + const [keywordId, schemaUri] = node; + schemaContext.errors.push({ + keyword: keywordId, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance) + }); + } + schemaContext.errors.push(...keywordContext.errors); + } + }, + afterSchema(url, instance, valid, schemaContext) { + if (typeof schemaContext.ast[url] === "boolean" && !valid) { + schemaContext.errors.push({ + keyword: Validation.id, + absoluteKeywordLocation: url, + instanceLocation: Instance.uri(instance) + }); + } + } +}; diff --git a/lib/evaluation-plugins/detailed-output.js b/lib/evaluation-plugins/detailed-output.js new file mode 100644 index 0000000..d990ce9 --- /dev/null +++ b/lib/evaluation-plugins/detailed-output.js @@ -0,0 +1,36 @@ +import { Validation } from "../experimental.js"; +import * as Instance from "../instance.js"; + + +export const detailedOutputPlugin = { + beforeSchema(schemaContext) { + schemaContext.errors ??= []; + }, + beforeKeyword(keywordContext) { + keywordContext.errors = []; + }, + afterKeyword(node, instance, valid, keywordContext, schemaContext) { + if (!valid) { + const [keywordId, schemaUri] = node; + const outputUnit = { + keyword: keywordId, + absoluteKeywordLocation: schemaUri, + instanceLocation: Instance.uri(instance) + }; + + schemaContext.errors.push(outputUnit); + if (keywordContext.errors.length > 0) { + outputUnit.errors = keywordContext.errors; + } + } + }, + afterSchema(url, instance, valid, schemaContext) { + if (typeof schemaContext.ast[url] === "boolean" && !valid) { + schemaContext.errors.push({ + keyword: Validation.id, + absoluteKeywordLocation: url, + instanceLocation: Instance.uri(instance) + }); + } + } +}; diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index 508e0c9..ce6fdbf 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -78,10 +78,26 @@ export type Keyword = { export type ValidationContext = { ast: AST; + plugins: EvaluationPlugin[]; dynamicAnchors: Anchors; +}; + +export type EvaluationPlugin = { + beforeSchema(schemaContext: Context): void; + beforeKeyword(keywordContext: Context, schemaContext: Context): void; + afterKeyword(keywordNode: JsonNode, instanceNode: JsonNode, valid: boolean, keywordContext: Context, schemaContext: Context, keyword: Keyword): void; + afterSchema(schemaNode: JsonNode, instanceNode: JsonNode, valid: boolean, schemaContext: Context): void; +}; + +export const basicOutputPlugin: EvaluationPlugin; +export const detailedOutputPlugin: EvaluationPlugin; +export type ErrorsContext = { errors: OutputUnit[]; +}; + +export const annotationsPlugin: EvaluationPlugin; +export type AnnotationsContext = { annotations: OutputUnit[]; - outputFormat: OutputFormat; }; export const Validation: Keyword; diff --git a/lib/experimental.js b/lib/experimental.js index cc2cbec..ed548d9 100644 --- a/lib/experimental.js +++ b/lib/experimental.js @@ -6,3 +6,6 @@ export { } from "./keywords.js"; export { getSchema, toSchema, canonicalUri, buildSchemaDocument } from "./schema.js"; export { default as Validation } from "./keywords/validation.js"; +export { basicOutputPlugin } from "./evaluation-plugins/basic-output.js"; +export { detailedOutputPlugin } from "./evaluation-plugins/detailed-output.js"; +export { annotationsPlugin } from "./evaluation-plugins/annotations.js"; diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index e72624f..3cbac04 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -2,10 +2,8 @@ import { value, entries } from "@hyperjump/browser"; import { pipe, asyncMap, asyncCollectArray } from "@hyperjump/pact"; import { append as pointerAppend } from "@hyperjump/json-pointer"; import { publishAsync } from "../pubsub.js"; -import * as Instance from "../instance.js"; import { toAbsoluteUri } from "../common.js"; -import { canonicalUri, getKeyword, getKeywordByName, BASIC, DETAILED } from "../experimental.js"; -import { FLAG } from "../index.js"; +import { canonicalUri, getKeyword, getKeywordByName } from "../experimental.js"; const id = "https://json-schema.org/evaluation/validate"; @@ -45,84 +43,48 @@ const compile = async (schema, ast) => { return url; }; -const interpret = (url, instance, { ast, dynamicAnchors, errors, annotations, outputFormat }) => { - dynamicAnchors = { ...ast.metaData[toAbsoluteUri(url)].dynamicAnchors, ...dynamicAnchors }; - - if (typeof ast[url] === "boolean") { - if (ast[url]) { - return true; - } else { - errors.push({ - keyword: id, - absoluteKeywordLocation: url, - instanceLocation: Instance.uri(instance) - }); - return false; - } - } else { - const schemaAnnotations = []; +const interpret = (url, instance, context) => { + context.dynamicAnchors = { + ...context.ast.metaData[toAbsoluteUri(url)].dynamicAnchors, + ...context.dynamicAnchors + }; + + let valid = true; + + for (const plugin of context.plugins) { + plugin.beforeSchema(context); + } - let isSchemaValid = true; - for (const [keywordId, schemaUri, keywordValue] of ast[url]) { - const context = { ast, dynamicAnchors, errors: [], annotations: [], outputFormat }; - const keywordHandler = getKeyword(keywordId); - const isKeywordValid = keywordHandler.interpret(keywordValue, instance, context); + if (typeof context.ast[url] === "boolean") { + valid = context.ast[url]; + } else { + for (const node of context.ast[url]) { + const [keywordId, , keywordValue] = node; + const keyword = getKeyword(keywordId); + + const keywordContext = { + ast: context.ast, + plugins: context.plugins, + dynamicAnchors: context.dynamicAnchors + }; + for (const plugin of context.plugins) { + plugin.beforeKeyword(keywordContext, context); + } + const isKeywordValid = keyword.interpret(keywordValue, instance, keywordContext); if (!isKeywordValid) { - isSchemaValid = false; + valid = false; } - switch (outputFormat) { - case FLAG: - break; - case BASIC: - if (!isKeywordValid) { - if (!keywordHandler.simpleApplicator) { - errors.push({ - keyword: keywordId, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance) - }); - } - errors.push(...context.errors); - } else { - const annotation = keywordHandler.annotation?.(keywordValue, instance); - if (annotation !== undefined) { - schemaAnnotations.push({ - keyword: keywordId, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance), - annotation: annotation - }); - } - schemaAnnotations.push(...context.annotations); - } - break; - case DETAILED: { - if (!isKeywordValid) { - const outputUnit = { - keyword: keywordId, - absoluteKeywordLocation: schemaUri, - instanceLocation: Instance.uri(instance) - }; - - errors.push(outputUnit); - if (context.errors.length > 0) { - outputUnit.errors = context.errors; - } - } - break; - } - default: - throw Error(`Unsupported output format '${outputFormat}'`); + for (const plugin of context.plugins) { + plugin.afterKeyword(node, instance, isKeywordValid, keywordContext, context, keyword); } } + } - if (outputFormat === BASIC && isSchemaValid) { - annotations.push(...schemaAnnotations); - } - - return isSchemaValid; + for (const plugin of context.plugins) { + plugin.afterSchema(url, instance, valid, context); } + return valid; }; const emptyPropertyNames = new Set(); From f4b7807c5cc10d498003432f9a2bad84bf5934ad Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Tue, 29 Apr 2025 16:59:43 -0700 Subject: [PATCH 22/40] Convert unevaluated and dynamic into evaluation plugins --- annotations/index.js | 15 ++- bundle/generate-snapshots.js | 10 +- .../7870eeab5f8ca9101ad59356ae80d8cf | 4 +- .../a08a7afd39db6237f476bcc7a0aea1fc | 2 +- .../ab51f0cdf303246217f87ce8de260742 | 2 +- .../ca63dcc3736aca6a5a2f7b31dd6c7807 | 4 +- .../e35a3f6c92398728f6100e796bc47b97 | 4 +- bundle/test-suite.spec.ts | 5 +- draft-04/additionalItems.js | 32 ++--- draft-04/items.js | 40 +++--- draft-2020-12/dynamicRef.js | 28 +++-- lib/core.js | 4 +- lib/evaluation-plugins/annotations.js | 12 +- lib/evaluation-plugins/basic-output.js | 18 +-- lib/evaluation-plugins/detailed-output.js | 20 +-- lib/experimental.d.ts | 14 +-- lib/instance.js | 15 ++- lib/keywords.js | 60 ++++----- lib/keywords/additionalProperties.js | 30 ++--- lib/keywords/allOf.js | 30 +---- lib/keywords/anyOf.js | 28 +---- lib/keywords/conditional.js | 28 +---- lib/keywords/contains.js | 32 +++-- lib/keywords/dependentSchemas.js | 22 +--- lib/keywords/dynamicRef.js | 25 +++- lib/keywords/else.js | 21 +--- lib/keywords/if.js | 10 +- lib/keywords/itemPattern.js | 14 +-- lib/keywords/items.js | 19 +-- lib/keywords/oneOf.js | 34 +---- lib/keywords/patternProperties.js | 32 ++--- lib/keywords/prefixItems.js | 7 +- lib/keywords/properties.js | 28 +---- lib/keywords/propertyDependencies.js | 21 +--- lib/keywords/propertyNames.js | 2 +- lib/keywords/ref.js | 4 +- lib/keywords/then.js | 21 +--- lib/keywords/unevaluatedItems.js | 64 +++++++--- lib/keywords/unevaluatedProperties.js | 66 ++++++---- lib/keywords/validation.js | 76 ++---------- lib/output-basic.spec.ts | 88 ++++++++++++- lib/output-detailed.spec.ts | 116 +++++++++++++++++- 42 files changed, 527 insertions(+), 580 deletions(-) diff --git a/annotations/index.js b/annotations/index.js index 02b2539..fc7a0fb 100644 --- a/annotations/index.js +++ b/annotations/index.js @@ -1,11 +1,16 @@ import { FLAG } from "../lib/index.js"; import { ValidationError } from "./validation-error.js"; -import { getSchema, compile, BASIC, DETAILED } from "../lib/experimental.js"; +import { + getSchema, + compile, + BASIC, + DETAILED, + annotationsPlugin, + basicOutputPlugin, + detailedOutputPlugin +} from "../lib/experimental.js"; import Validation from "../lib/keywords/validation.js"; import * as Instance from "../lib/instance.js"; -import { annotationsPlugin } from "../lib/evaluation-plugins/annotations.js"; -import { basicOutputPlugin } from "../lib/evaluation-plugins/basic-output.js"; -import { detailedOutputPlugin } from "../lib/evaluation-plugins/detailed-output.js"; export const annotate = async (schemaUri, json = undefined, outputFormat = undefined) => { @@ -17,7 +22,7 @@ export const annotate = async (schemaUri, json = undefined, outputFormat = undef }; export const interpret = ({ ast, schemaUri }, instance, outputFormat = BASIC) => { - const context = { ast, plugins: [annotationsPlugin], dynamicAnchors: {} }; + const context = { ast, plugins: [annotationsPlugin, ...ast.plugins] }; switch (outputFormat) { case FLAG: diff --git a/bundle/generate-snapshots.js b/bundle/generate-snapshots.js index bb0c573..f8dc906 100644 --- a/bundle/generate-snapshots.js +++ b/bundle/generate-snapshots.js @@ -1,6 +1,6 @@ import { writeFile, mkdir, rm } from "node:fs/promises"; import { isCompatible, md5, loadSchemas, testSuite, unloadSchemas } from "./test-utils.js"; -import { compile, getSchema, Validation } from "../lib/experimental.js"; +import { annotationsPlugin, compile, detailedOutputPlugin, getSchema, Validation } from "../lib/experimental.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; import "../draft-2019-09/index.js"; @@ -8,8 +8,6 @@ import "../draft-07/index.js"; import "../draft-06/index.js"; import "../draft-04/index.js"; import * as Instance from "../lib/instance.js"; -import { detailedOutputPlugin } from "../lib/evaluation-plugins/detailed-output.js"; -import { annotationsPlugin } from "../lib/evaluation-plugins/annotations.js"; const suite = testSuite("./bundle/tests"); @@ -30,11 +28,7 @@ const snapshotGenerator = async (version, dialect) => { const { ast, schemaUri } = await compile(schema); const instance = Instance.fromJs(test.instance); - const context = { - ast, - plugins: [detailedOutputPlugin, annotationsPlugin], - dynamicAnchors: {} - }; + const context = { ast, plugins: [detailedOutputPlugin, annotationsPlugin, ...ast.plugins] }; const valid = Validation.interpret(schemaUri, instance, context); const expectedOutput = { diff --git a/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf b/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf index 912e6b9..7c0ec1d 100644 --- a/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf +++ b/bundle/snapshots/7870eeab5f8ca9101ad59356ae80d8cf @@ -9,12 +9,12 @@ { "keyword": "https://json-schema.org/keyword/ref", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", - "instanceLocation": "#/foobar", + "instanceLocation": "#*/foobar", "errors": [ { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "instanceLocation": "#*/foobar" } ] } diff --git a/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc b/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc index 5eb2064..af1a8c4 100644 --- a/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc +++ b/bundle/snapshots/a08a7afd39db6237f476bcc7a0aea1fc @@ -9,7 +9,7 @@ { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "instanceLocation": "#*/foobar" } ] } diff --git a/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 b/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 index 5eb2064..af1a8c4 100644 --- a/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 +++ b/bundle/snapshots/ab51f0cdf303246217f87ce8de260742 @@ -9,7 +9,7 @@ { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "instanceLocation": "#*/foobar" } ] } diff --git a/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 b/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 index 912e6b9..7c0ec1d 100644 --- a/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 +++ b/bundle/snapshots/ca63dcc3736aca6a5a2f7b31dd6c7807 @@ -9,12 +9,12 @@ { "keyword": "https://json-schema.org/keyword/ref", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", - "instanceLocation": "#/foobar", + "instanceLocation": "#*/foobar", "errors": [ { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "instanceLocation": "#*/foobar" } ] } diff --git a/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 b/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 index 912e6b9..7c0ec1d 100644 --- a/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 +++ b/bundle/snapshots/e35a3f6c92398728f6100e796bc47b97 @@ -9,12 +9,12 @@ { "keyword": "https://json-schema.org/keyword/ref", "absoluteKeywordLocation": "https://bundler.hyperjump.io/main#/propertyNames/$ref", - "instanceLocation": "#/foobar", + "instanceLocation": "#*/foobar", "errors": [ { "keyword": "https://json-schema.org/keyword/maxLength", "absoluteKeywordLocation": "https://test.json-schema.org/short-string#/maxLength", - "instanceLocation": "#/foobar" + "instanceLocation": "#*/foobar" } ] } diff --git a/bundle/test-suite.spec.ts b/bundle/test-suite.spec.ts index b5bf54f..fa02531 100644 --- a/bundle/test-suite.spec.ts +++ b/bundle/test-suite.spec.ts @@ -68,10 +68,7 @@ const testRunner = (version: number, dialect: string) => { const instance = Instance.fromJs(test.instance); const context = { ast, - plugins: [detailedOutputPlugin, annotationsPlugin], - dynamicAnchors: {}, - errors: [], - annotations: [] + plugins: [detailedOutputPlugin, annotationsPlugin, ...ast.plugins] } as ValidationContext & ErrorsContext & AnnotationsContext; const valid = Validation.interpret(schemaUri, instance, context); diff --git a/draft-04/additionalItems.js b/draft-04/additionalItems.js index fd62ccf..da09d33 100644 --- a/draft-04/additionalItems.js +++ b/draft-04/additionalItems.js @@ -1,4 +1,4 @@ -import { pipe, drop, every } from "@hyperjump/pact"; +import { drop } from "@hyperjump/pact"; import * as Browser from "@hyperjump/browser"; import * as Instance from "../lib/instance.js"; import { getKeywordName, Validation } from "../lib/experimental.js"; @@ -19,26 +19,20 @@ const interpret = ([numberOfItems, additionalItems], instance, context) => { return true; } - return pipe( - Instance.iter(instance), - drop(numberOfItems), - every((item) => Validation.interpret(additionalItems, item, context)) - ); -}; - -const simpleApplicator = true; + let isValid = true; + let index = numberOfItems; + for (const item of drop(numberOfItems, Instance.iter(instance))) { + if (!Validation.interpret(additionalItems, item, context)) { + isValid = false; + } -const collectEvaluatedItems = (keywordValue, instance, context) => { - if (!interpret(keywordValue, instance, context)) { - return false; + context.evaluatedItems?.add(index); + index++; } - const evaluatedIndexes = new Set(); - for (let ndx = keywordValue[0]; ndx < Instance.length(instance); ndx++) { - evaluatedIndexes.add(ndx); - } - - return evaluatedIndexes; + return isValid; }; -export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; +const simpleApplicator = true; + +export default { id, compile, interpret, simpleApplicator }; diff --git a/draft-04/items.js b/draft-04/items.js index be86134..9d1ece4 100644 --- a/draft-04/items.js +++ b/draft-04/items.js @@ -1,4 +1,4 @@ -import { pipe, asyncMap, asyncCollectArray, every, zip, take, range, collectSet } from "@hyperjump/pact"; +import { pipe, asyncMap, asyncCollectArray, zip } from "@hyperjump/pact"; import * as Browser from "@hyperjump/browser"; import * as Instance from "../lib/instance.js"; import { Validation } from "../lib/experimental.js"; @@ -23,23 +23,35 @@ const interpret = (items, instance, context) => { return true; } + let isValid = true; + let index = 0; + if (typeof items === "string") { - return every((itemValue) => Validation.interpret(items, itemValue, context), Instance.iter(instance)); + for (const item of Instance.iter(instance)) { + if (!Validation.interpret(items, item, context)) { + isValid = false; + } + + context.evaluatedItems?.add(index++); + } } else { - return pipe( - zip(items, Instance.iter(instance)), - take(Instance.length(instance)), - every(([prefixItem, item]) => Validation.interpret(prefixItem, item, context)) - ); + for (const [tupleItem, tupleInstance] of zip(items, Instance.iter(instance))) { + if (!tupleInstance) { + break; + } + + if (!Validation.interpret(tupleItem, tupleInstance, context)) { + isValid = false; + } + + context.evaluatedItems?.add(index); + index++; + } } + + return isValid; }; const simpleApplicator = true; -const collectEvaluatedItems = (items, instance, context) => { - return interpret(items, instance, context) && (typeof items === "string" - ? collectSet(range(0, Instance.length(instance))) - : collectSet(range(0, items.length))); -}; - -export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/draft-2020-12/dynamicRef.js b/draft-2020-12/dynamicRef.js index 9d33b6e..f23b246 100644 --- a/draft-2020-12/dynamicRef.js +++ b/draft-2020-12/dynamicRef.js @@ -1,6 +1,6 @@ import * as Browser from "@hyperjump/browser"; import { Validation, canonicalUri } from "../lib/experimental.js"; -import { uriFragment } from "../lib/common.js"; +import { toAbsoluteUri, uriFragment } from "../lib/common.js"; const id = "https://json-schema.org/keyword/draft-2020-12/dynamicRef"; @@ -12,19 +12,31 @@ const compile = async (dynamicRef, ast) => { return [referencedSchema.document.baseUri, fragment, canonicalUri(referencedSchema)]; }; -const evaluate = (strategy, [id, fragment, ref], instance, context) => { +const interpret = ([id, fragment, ref], instance, context) => { if (fragment in context.ast.metaData[id].dynamicAnchors) { context.dynamicAnchors = { ...context.ast.metaData[id].dynamicAnchors, ...context.dynamicAnchors }; - return strategy(context.dynamicAnchors[fragment], instance, context); + return Validation.interpret(context.dynamicAnchors[fragment], instance, context); } else { - return strategy(ref, instance, context); + return Validation.interpret(ref, instance, context); } }; const simpleApplicator = true; -const interpret = (...args) => evaluate(Validation.interpret, ...args); -const collectEvaluatedProperties = (...args) => evaluate(Validation.collectEvaluatedProperties, ...args); -const collectEvaluatedItems = (...args) => evaluate(Validation.collectEvaluatedItems, ...args); +const plugin = { + beforeSchema(url, _instance, context) { + context.dynamicAnchors = { + ...context.ast.metaData[toAbsoluteUri(url)].dynamicAnchors, + ...context.dynamicAnchors + }; + }, + beforeKeyword(_url, _instance, context, schemaContext) { + context.dynamicAnchors = schemaContext.dynamicAnchors; + }, + afterKeyword() { + }, + afterSchema() { + } +}; -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, plugin }; diff --git a/lib/core.js b/lib/core.js index 18d41b8..e02fdc8 100644 --- a/lib/core.js +++ b/lib/core.js @@ -27,13 +27,13 @@ export const validate = async (url, value = undefined, outputFormat = undefined) }; export const compile = async (schema) => { - const ast = { metaData: {} }; + const ast = { metaData: {}, plugins: new Set() }; const schemaUri = await Validation.compile(schema, ast); return { ast, schemaUri }; }; export const interpret = curry(({ ast, schemaUri }, instance, outputFormat = FLAG) => { - const context = { ast, plugins: [], dynamicAnchors: {} }; + const context = { ast, plugins: [...ast.plugins] }; switch (outputFormat) { case FLAG: diff --git a/lib/evaluation-plugins/annotations.js b/lib/evaluation-plugins/annotations.js index b8ba804..1c8dbcf 100644 --- a/lib/evaluation-plugins/annotations.js +++ b/lib/evaluation-plugins/annotations.js @@ -2,17 +2,17 @@ import * as Instance from "../instance.js"; export const annotationsPlugin = { - beforeSchema(context) { + beforeSchema(_url, _instance, context) { context.annotations ??= []; context.schemaAnnotations = []; }, - beforeKeyword(context) { + beforeKeyword(_node, _instance, context) { context.annotations = []; }, - afterKeyword(node, instance, valid, keywordContext, schemaContext, keyword) { + afterKeyword(node, instance, context, valid, schemaContext, keyword) { if (valid) { const [keywordId, schemaUri, keywordValue] = node; - const annotation = keyword.annotation?.(keywordValue, instance, keywordContext); + const annotation = keyword.annotation?.(keywordValue, instance, context); if (annotation !== undefined) { schemaContext.schemaAnnotations.push({ keyword: keywordId, @@ -21,10 +21,10 @@ export const annotationsPlugin = { annotation: annotation }); } - schemaContext.schemaAnnotations.push(...keywordContext.annotations); + schemaContext.schemaAnnotations.push(...context.annotations); } }, - afterSchema(_schemaNode, _instanceNode, valid, context) { + afterSchema(_schemaNode, _instanceNode, context, valid) { if (valid) { context.annotations.push(...context.schemaAnnotations); } diff --git a/lib/evaluation-plugins/basic-output.js b/lib/evaluation-plugins/basic-output.js index 8b25cea..b005aa3 100644 --- a/lib/evaluation-plugins/basic-output.js +++ b/lib/evaluation-plugins/basic-output.js @@ -3,13 +3,13 @@ import * as Instance from "../instance.js"; export const basicOutputPlugin = { - beforeSchema(schemaContext) { - schemaContext.errors ??= []; + beforeSchema(_url, _intance, context) { + context.errors ??= []; }, - beforeKeyword(keywordContext) { - keywordContext.errors = []; + beforeKeyword(_node, _instance, context) { + context.errors = []; }, - afterKeyword(node, instance, valid, keywordContext, schemaContext, keyword) { + afterKeyword(node, instance, context, valid, schemaContext, keyword) { if (!valid) { if (!keyword.simpleApplicator) { const [keywordId, schemaUri] = node; @@ -19,12 +19,12 @@ export const basicOutputPlugin = { instanceLocation: Instance.uri(instance) }); } - schemaContext.errors.push(...keywordContext.errors); + schemaContext.errors.push(...context.errors); } }, - afterSchema(url, instance, valid, schemaContext) { - if (typeof schemaContext.ast[url] === "boolean" && !valid) { - schemaContext.errors.push({ + afterSchema(url, instance, context, valid) { + if (typeof context.ast[url] === "boolean" && !valid) { + context.errors.push({ keyword: Validation.id, absoluteKeywordLocation: url, instanceLocation: Instance.uri(instance) diff --git a/lib/evaluation-plugins/detailed-output.js b/lib/evaluation-plugins/detailed-output.js index d990ce9..f7c4632 100644 --- a/lib/evaluation-plugins/detailed-output.js +++ b/lib/evaluation-plugins/detailed-output.js @@ -3,13 +3,13 @@ import * as Instance from "../instance.js"; export const detailedOutputPlugin = { - beforeSchema(schemaContext) { - schemaContext.errors ??= []; + beforeSchema(_url, _instance, context) { + context.errors ??= []; }, - beforeKeyword(keywordContext) { - keywordContext.errors = []; + beforeKeyword(_node, _instance, context) { + context.errors = []; }, - afterKeyword(node, instance, valid, keywordContext, schemaContext) { + afterKeyword(node, instance, context, valid, schemaContext) { if (!valid) { const [keywordId, schemaUri] = node; const outputUnit = { @@ -19,14 +19,14 @@ export const detailedOutputPlugin = { }; schemaContext.errors.push(outputUnit); - if (keywordContext.errors.length > 0) { - outputUnit.errors = keywordContext.errors; + if (context.errors.length > 0) { + outputUnit.errors = context.errors; } } }, - afterSchema(url, instance, valid, schemaContext) { - if (typeof schemaContext.ast[url] === "boolean" && !valid) { - schemaContext.errors.push({ + afterSchema(url, instance, context, valid) { + if (typeof context.ast[url] === "boolean" && !valid) { + context.errors.push({ keyword: Validation.id, absoluteKeywordLocation: url, instanceLocation: Instance.uri(instance) diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index ce6fdbf..277004a 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -18,6 +18,7 @@ export type CompiledSchema = { type AST = { metaData: Record; + plugins: Set>; } & Record[] | boolean>; type Node = [keywordId: string, schemaUri: string, keywordValue: A]; @@ -70,23 +71,20 @@ export type Keyword = { compile: (schema: Browser, ast: AST, parentSchema: Browser) => Promise; interpret: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext) => boolean; simpleApplicator: boolean; - collectEvaluatedProperties?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; - collectEvaluatedItems?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set | false; collectExternalIds?: (visited: Set, parentSchema: Browser, schema: Browser) => Promise>; annotation?: (compiledKeywordValue: A, instance: JsonNode) => B | undefined; }; export type ValidationContext = { ast: AST; - plugins: EvaluationPlugin[]; - dynamicAnchors: Anchors; + plugins: EvaluationPlugin[]; }; export type EvaluationPlugin = { - beforeSchema(schemaContext: Context): void; - beforeKeyword(keywordContext: Context, schemaContext: Context): void; - afterKeyword(keywordNode: JsonNode, instanceNode: JsonNode, valid: boolean, keywordContext: Context, schemaContext: Context, keyword: Keyword): void; - afterSchema(schemaNode: JsonNode, instanceNode: JsonNode, valid: boolean, schemaContext: Context): void; + beforeSchema(url: string, instance: JsonNode, context: Context): void; + beforeKeyword(keywordNode: Node, instance: JsonNode, context: Context, schemaContext: Context, keyword: Keyword): void; + afterKeyword(keywordNode: Node, instance: JsonNode, context: Context, valid: boolean, schemaContext: Context, keyword: Keyword): void; + afterSchema(url: string, instance: JsonNode, context: Context, valid: boolean): void; }; export const basicOutputPlugin: EvaluationPlugin; diff --git a/lib/instance.js b/lib/instance.js index d4951dd..de86cdc 100644 --- a/lib/instance.js +++ b/lib/instance.js @@ -27,7 +27,8 @@ export const fromJs = (value, uri = "", pointer = "", parent = undefined) => { objectNode.children = Object.entries(value).map((entry) => { const propertyPointer = JsonPointer.append(entry[0], pointer); const propertyNode = cons(uri, propertyPointer, undefined, "property", [], objectNode); - propertyNode.children = entry.map((property) => fromJs(property, uri, propertyPointer, propertyNode)); + propertyNode.children[0] = fromJs(entry[0], uri, "*" + propertyPointer, propertyNode); + propertyNode.children[1] = fromJs(entry[1], uri, propertyPointer, propertyNode); return propertyNode; }); return objectNode; @@ -62,11 +63,19 @@ export const get = (uri, instance) => { throw Error(`Reference '${uri}' is not local to '${instance.baseUri}'`); } - const pointer = uriFragment(uri); - return reduce((node, segment) => { + let isPropertyNamePointer = false; + let pointer = uriFragment(uri); + if (pointer.startsWith("*")) { + pointer = pointer.slice(1); + isPropertyNamePointer = true; + } + + const result = reduce((node, segment) => { segment = segment === "-" && typeOf(node) === "array" ? length(node) : segment; return step(segment, node); }, instance.root, JsonPointer.pointerSegments(pointer)); + + return isPropertyNamePointer ? result.parent.children[0] : result; }; export const uri = (node) => `${node.baseUri}#${encodeURI(node.pointer)}`; diff --git a/lib/keywords.js b/lib/keywords.js index 18c73e4..59bcac9 100644 --- a/lib/keywords.js +++ b/lib/keywords.js @@ -35,17 +35,19 @@ export const defineVocabulary = (id, keywords) => { }; const _dialects = {}; -const _allowUnknownKeywords = {}; -const _persistentDialects = {}; -export const getKeywordId = (keyword, dialectId) => getDialect(dialectId)?.[keyword] - || (_allowUnknownKeywords[dialectId] || keyword.startsWith("x-")) - && `https://json-schema.org/keyword/unknown#${keyword}`; +export const getKeywordId = (keyword, dialectId) => { + const dialect = getDialect(dialectId); + return dialect.keywords[keyword] + ?? ((dialect.allowUnknownKeywords || keyword.startsWith("x-")) + ? `https://json-schema.org/keyword/unknown#${keyword}` + : undefined); +}; export const getKeywordName = (dialectId, keywordId) => { const dialect = getDialect(dialectId); - for (const keyword in dialect) { - if (dialect[keyword] === keywordId) { + for (const keyword in dialect.keywords) { + if (dialect.keywords[keyword] === keywordId) { return keyword; } } @@ -62,33 +64,31 @@ const getDialect = (dialectId) => { export const hasDialect = (dialectId) => dialectId in _dialects; export const loadDialect = (dialectId, dialect, allowUnknownKeywords = false, isPersistent = true) => { - _allowUnknownKeywords[dialectId] = allowUnknownKeywords; - _persistentDialects[dialectId] = _persistentDialects[dialectId] || isPersistent; - - _dialects[dialectId] = {}; - Object.entries(dialect) - .forEach(([vocabularyId, isRequired]) => { - if (vocabularyId in _vocabularies) { - Object.entries(_vocabularies[vocabularyId]) - .forEach(([keyword, keywordId]) => { - if (!(keywordId in _keywords) && !isRequired) { - // Allow keyword to be ignored - keywordId = `https://json-schema.org/keyword/unknown#${keyword}`; - } - _dialects[dialectId][keyword] = keywordId; - }); - } else if (!allowUnknownKeywords || isRequired) { - delete _dialects[dialectId]; - delete _allowUnknownKeywords[dialectId]; - delete _persistentDialects[dialectId]; - throw Error(`Unrecognized vocabulary: ${vocabularyId}. You can define this vocabulary with the 'defineVocabulary' function.`); + _dialects[dialectId] = { + keywords: {}, + allowUnknownKeywords: allowUnknownKeywords, + persistentDialects: _dialects[dialectId]?.persistentDialects || isPersistent + }; + + for (const vocabularyId in dialect) { + if (vocabularyId in _vocabularies) { + for (const keyword in _vocabularies[vocabularyId]) { + let keywordId = _vocabularies[vocabularyId][keyword]; + if (!(keywordId in _keywords) && !dialect[vocabularyId]) { + // Allow keyword to be ignored + keywordId = `https://json-schema.org/keyword/unknown#${keyword}`; + } + _dialects[dialectId].keywords[keyword] = keywordId; } - }); + } else if (!allowUnknownKeywords || dialect[vocabularyId]) { + delete _dialects[dialectId]; + throw Error(`Unrecognized vocabulary: ${vocabularyId}. You can define this vocabulary with the 'defineVocabulary' function.`); + } + } }; export const unloadDialect = (dialectId) => { - if (!_persistentDialects[dialectId]) { - delete _allowUnknownKeywords[dialectId]; + if (!_dialects[dialectId]?.persistentDialects) { delete _dialects[dialectId]; } }; diff --git a/lib/keywords/additionalProperties.js b/lib/keywords/additionalProperties.js index 4434198..b937eeb 100644 --- a/lib/keywords/additionalProperties.js +++ b/lib/keywords/additionalProperties.js @@ -39,9 +39,15 @@ const interpret = ([isDefinedProperty, additionalProperties], instance, context) let isValid = true; for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); - if (!isDefinedProperty.test(propertyName) && !Validation.interpret(additionalProperties, property, context)) { + if (isDefinedProperty.test(propertyName)) { + continue; + } + + if (!Validation.interpret(additionalProperties, property, context)) { isValid = false; } + + context.evaluatedProperties?.add(propertyName); } return isValid; @@ -49,24 +55,4 @@ const interpret = ([isDefinedProperty, additionalProperties], instance, context) const simpleApplicator = true; -const collectEvaluatedProperties = ([isDefinedProperty, additionalProperties], instance, context) => { - if (Instance.typeOf(instance) !== "object") { - return true; - } - - const evaluatedPropertyNames = new Set(); - for (const [propertyNameNode, property] of Instance.entries(instance)) { - const propertyName = Instance.value(propertyNameNode); - if (!isDefinedProperty.test(propertyName)) { - if (!Validation.interpret(additionalProperties, property, context)) { - return false; - } - - evaluatedPropertyNames.add(propertyName); - } - } - - return evaluatedPropertyNames; -}; - -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/allOf.js b/lib/keywords/allOf.js index c8f32cd..fd565a5 100644 --- a/lib/keywords/allOf.js +++ b/lib/keywords/allOf.js @@ -23,32 +23,4 @@ const interpret = (allOf, instance, ast, dynamicAnchors, quiet) => { const simpleApplicator = true; -const collectEvaluatedProperties = (allOf, instance, context) => { - const evaluatedPropertyNames = new Set(); - for (const schemaUrl of allOf) { - const propertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, context); - if (!propertyNames) { - return false; - } - - propertyNames.forEach(evaluatedPropertyNames.add, evaluatedPropertyNames); - } - - return evaluatedPropertyNames; -}; - -const collectEvaluatedItems = (allOf, instance, context) => { - const evaluatedItemIndexes = new Set(); - for (const schemaUrl of allOf) { - const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, context); - if (!itemIndexes) { - return false; - } - - itemIndexes.forEach(evaluatedItemIndexes.add, evaluatedItemIndexes); - } - - return evaluatedItemIndexes; -}; - -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/anyOf.js b/lib/keywords/anyOf.js index 96aebb6..0861e7d 100644 --- a/lib/keywords/anyOf.js +++ b/lib/keywords/anyOf.js @@ -16,30 +16,4 @@ const interpret = (anyOf, instance, ast, dynamicAnchors, quiet) => { return matches.length > 0; }; -const collectEvaluatedProperties = (anyOf, instance, context) => { - let evaluatedPropertyNames = false; - for (const schemaUrl of anyOf) { - const propertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, context); - if (propertyNames) { - evaluatedPropertyNames ||= new Set(); - propertyNames.forEach(evaluatedPropertyNames.add, evaluatedPropertyNames); - } - } - - return evaluatedPropertyNames; -}; - -const collectEvaluatedItems = (anyOf, instance, context) => { - let evaluatedItemIndexes = false; - for (const schemaUrl of anyOf) { - const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, context); - if (itemIndexes) { - evaluatedItemIndexes ||= new Set(); - itemIndexes.forEach(evaluatedItemIndexes.add, evaluatedItemIndexes); - } - } - - return evaluatedItemIndexes; -}; - -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret }; diff --git a/lib/keywords/conditional.js b/lib/keywords/conditional.js index 133de11..57e919e 100644 --- a/lib/keywords/conditional.js +++ b/lib/keywords/conditional.js @@ -25,32 +25,6 @@ const interpret = (conditional, instance, context) => { return true; }; -const collectEvaluatedProperties = (conditional, instance, context) => { - for (let index = 0; index < conditional.length; index += 2) { - const unevaluatedProperties = Validation.collectEvaluatedProperties(conditional[index], instance, context); - if (index + 1 === conditional.length) { - return unevaluatedProperties; - } else if (unevaluatedProperties !== false) { - return Validation.collectEvaluatedProperties(conditional[index + 1], instance, context); - } - } - - return new Set(); -}; - -const collectEvaluatedItems = (conditional, instance, context) => { - for (let index = 0; index < conditional.length; index += 2) { - const unevaluatedItems = Validation.collectEvaluatedItems(conditional[index], instance, context); - if (index + 1 === conditional.length) { - return unevaluatedItems; - } else if (unevaluatedItems !== false) { - return Validation.collectEvaluatedItems(conditional[index + 1], instance, context); - } - } - - return new Set(); -}; - const schemaFlatten = async function* (iter, depth = 1) { for await (const n of iter) { if (depth > 0 && Browser.typeOf(n) === "array") { @@ -61,4 +35,4 @@ const schemaFlatten = async function* (iter, depth = 1) { } }; -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret }; diff --git a/lib/keywords/contains.js b/lib/keywords/contains.js index 5a025f9..ce6135c 100644 --- a/lib/keywords/contains.js +++ b/lib/keywords/contains.js @@ -1,4 +1,3 @@ -import { pipe, filter, reduce, zip, range, map, collectSet } from "@hyperjump/pact"; import * as Browser from "@hyperjump/browser"; import * as Instance from "../instance.js"; import { getKeywordName, Validation } from "../experimental.js"; @@ -21,23 +20,20 @@ const compile = async (schema, ast, parentSchema) => { }; const interpret = ({ contains, minContains, maxContains }, instance, context) => { - const matches = Instance.typeOf(instance) !== "array" || pipe( - Instance.iter(instance), - filter((item) => Validation.interpret(contains, item, context)), - reduce((matches) => matches + 1, 0) - ); + if (Instance.typeOf(instance) !== "array") { + return true; + } + + let matches = 0; + let index = 0; + for (const item of Instance.iter(instance)) { + if (Validation.interpret(contains, item, context)) { + matches++; + context.evaluatedItems?.add(index); + } + index++; + } return matches >= minContains && matches <= maxContains; }; -const collectEvaluatedItems = (keywordValue, instance, context) => { - return interpret(keywordValue, instance, context) - && Instance.typeOf(instance) === "array" - && pipe( - zip(Instance.iter(instance), range(0)), - filter(([item]) => Validation.interpret(keywordValue.contains, item, context)), - map(([, itemIndex]) => itemIndex), - collectSet - ); -}; - -export default { id, compile, interpret, collectEvaluatedItems }; +export default { id, compile, interpret }; diff --git a/lib/keywords/dependentSchemas.js b/lib/keywords/dependentSchemas.js index bf37659..6ced882 100644 --- a/lib/keywords/dependentSchemas.js +++ b/lib/keywords/dependentSchemas.js @@ -29,24 +29,4 @@ const interpret = (dependentSchemas, instance, context) => { const simpleApplicator = true; -const collectEvaluatedProperties = (dependentSchemas, instance, context) => { - if (Instance.typeOf(instance) !== "object") { - return false; - } - - const evaluatedPropertyNames = new Set(); - for (const [propertyName, dependentSchema] of dependentSchemas) { - if (Instance.has(propertyName, instance)) { - const propertyNames = Validation.collectEvaluatedProperties(dependentSchema, instance, context); - if (propertyNames === false) { - return false; - } - - propertyNames.forEach(Set.prototype.add.bind(evaluatedPropertyNames)); - } - } - - return evaluatedPropertyNames; -}; - -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/dynamicRef.js b/lib/keywords/dynamicRef.js index 89eba46..ec3b7ca 100644 --- a/lib/keywords/dynamicRef.js +++ b/lib/keywords/dynamicRef.js @@ -1,5 +1,6 @@ import * as Browser from "@hyperjump/browser"; import { Validation } from "../experimental.js"; +import { toAbsoluteUri } from "../common.js"; const id = "https://json-schema.org/keyword/dynamicRef"; @@ -12,17 +13,29 @@ const compile = async (schema, ast) => { return reference; }; -const evaluate = (strategy, fragment, instance, context) => { +const interpret = (fragment, instance, context) => { if (!(fragment in context.dynamicAnchors)) { throw Error(`No dynamic anchor found for "${fragment}"`); } - return strategy(context.dynamicAnchors[fragment], instance, context); + return Validation.interpret(context.dynamicAnchors[fragment], instance, context); }; const simpleApplicator = true; -const interpret = (...args) => evaluate(Validation.interpret, ...args); -const collectEvaluatedProperties = (...args) => evaluate(Validation.collectEvaluatedProperties, ...args); -const collectEvaluatedItems = (...args) => evaluate(Validation.collectEvaluatedItems, ...args); +const plugin = { + beforeSchema(url, _instance, context) { + context.dynamicAnchors = { + ...context.ast.metaData[toAbsoluteUri(url)].dynamicAnchors, + ...context.dynamicAnchors + }; + }, + beforeKeyword(_url, _instance, context, schemaContext) { + context.dynamicAnchors = schemaContext.dynamicAnchors; + }, + afterKeyword() { + }, + afterSchema() { + } +}; -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator, plugin }; diff --git a/lib/keywords/else.js b/lib/keywords/else.js index 84a1abb..6d35d37 100644 --- a/lib/keywords/else.js +++ b/lib/keywords/else.js @@ -1,5 +1,4 @@ import * as Browser from "@hyperjump/browser"; -import { FLAG } from "../index.js"; import { getKeywordName, Validation } from "../experimental.js"; @@ -17,26 +16,10 @@ const compile = async (schema, ast, parentSchema) => { const interpret = ([ifSchema, elseSchema], instance, context) => { return ifSchema === undefined - || Validation.interpret(ifSchema, instance, { ...context, errors: [], annotations: [], oututFormat: FLAG }) + || Validation.interpret(ifSchema, instance, { ...context, plugins: context.ast.plugins }) || Validation.interpret(elseSchema, instance, context); }; const simpleApplicator = true; -const collectEvaluatedProperties = ([ifSchema, elseSchema], instance, context) => { - if (ifSchema === undefined || Validation.interpret(ifSchema, instance, context)) { - return new Set(); - } - - return Validation.collectEvaluatedProperties(elseSchema, instance, context); -}; - -const collectEvaluatedItems = ([ifSchema, elseSchema], instance, context) => { - if (ifSchema === undefined || Validation.interpret(ifSchema, instance, context)) { - return new Set(); - } - - return Validation.collectEvaluatedItems(elseSchema, instance, context); -}; - -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/if.js b/lib/keywords/if.js index 2880378..0ff2fd7 100644 --- a/lib/keywords/if.js +++ b/lib/keywords/if.js @@ -10,12 +10,4 @@ const interpret = (ifSchema, instance, context) => { return true; }; -const collectEvaluatedProperties = (ifSchema, instance, context) => { - return Validation.collectEvaluatedProperties(ifSchema, instance, context) || new Set(); -}; - -const collectEvaluatedItems = (ifSchema, instance, context) => { - return Validation.collectEvaluatedItems(ifSchema, instance, context) || new Set(); -}; - -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret }; diff --git a/lib/keywords/itemPattern.js b/lib/keywords/itemPattern.js index b5f852f..87d19b6 100644 --- a/lib/keywords/itemPattern.js +++ b/lib/keywords/itemPattern.js @@ -39,7 +39,7 @@ const compile = async (schema, ast) => { .reduce(union); }; -const evaluate = (strategy, nfa, instance, context) => { +const interpret = (nfa, instance, context) => { if (Instance.typeOf(instance) !== "array") { return true; } @@ -51,7 +51,7 @@ const evaluate = (strategy, nfa, instance, context) => { const nextStates = []; for (const state of currentStates) { - const nextState = transition(strategy, state.transition, item, context); + const nextState = transition(state.transition, item, context); if (nextState) { addNextState(nextState, nextStates, []); } @@ -76,16 +76,12 @@ const addNextState = (state, nextStates, visited) => { } }; -const transition = (strategy, transitions, instance, context) => { +const transition = (transitions, instance, context) => { for (const schema in transitions) { - if (strategy(schema, instance, context)) { + if (Validation.interpret(schema, instance, context)) { return transitions[schema]; } } }; -const interpret = (...args) => evaluate(Validation.interpret, ...args); -const collectEvalatedProperties = (...args) => evaluate(Validation.collectEvaluatedProperties, ...args); -const collectEvalatedItems = (...args) => evaluate(Validation.collectEvaluatedItems, ...args); - -export default { id, compile, interpret, collectEvalatedProperties, collectEvalatedItems }; +export default { id, compile, interpret }; diff --git a/lib/keywords/items.js b/lib/keywords/items.js index a80ca99..6b9f239 100644 --- a/lib/keywords/items.js +++ b/lib/keywords/items.js @@ -20,10 +20,14 @@ const interpret = ([numberOfPrefixItems, items], instance, context) => { } let isValid = true; + let index = numberOfPrefixItems; for (const item of drop(numberOfPrefixItems, Instance.iter(instance))) { if (!Validation.interpret(items, item, context)) { isValid = false; } + + context.evaluatedItems?.add(index); + index++; } return isValid; @@ -31,17 +35,4 @@ const interpret = ([numberOfPrefixItems, items], instance, context) => { const simpleApplicator = true; -const collectEvaluatedItems = (keywordValue, instance, context) => { - if (!interpret(keywordValue, instance, context)) { - return false; - } - - const evaluatedIndexes = new Set(); - for (let ndx = keywordValue[0]; ndx < Instance.length(instance); ndx++) { - evaluatedIndexes.add(ndx); - } - - return evaluatedIndexes; -}; - -export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/oneOf.js b/lib/keywords/oneOf.js index 5358a63..59cde24 100644 --- a/lib/keywords/oneOf.js +++ b/lib/keywords/oneOf.js @@ -22,36 +22,4 @@ const interpret = (oneOf, instance, context) => { return validCount === 1; }; -const collectEvaluatedProperties = (oneOf, instance, context) => { - let evaluatedProperties = false; - for (const schemaUrl of oneOf) { - const propertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, context); - if (propertyNames) { - if (evaluatedProperties) { - return false; - } - - evaluatedProperties = propertyNames; - } - } - - return evaluatedProperties; -}; - -const collectEvaluatedItems = (oneOf, instance, context) => { - let evaluatedItemIndexes = false; - for (const schemaUrl of oneOf) { - const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, context); - if (itemIndexes) { - if (evaluatedItemIndexes) { - return false; - } - - evaluatedItemIndexes = itemIndexes; - } - } - - return evaluatedItemIndexes; -}; - -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret }; diff --git a/lib/keywords/patternProperties.js b/lib/keywords/patternProperties.js index 2c354be..dc85990 100644 --- a/lib/keywords/patternProperties.js +++ b/lib/keywords/patternProperties.js @@ -23,38 +23,20 @@ const interpret = (patternProperties, instance, context) => { let isValid = true; for (const [pattern, schemaUri] of patternProperties) { for (const [propertyNameNode, propertyValue] of Instance.entries(instance)) { - const propertyName = Instance.value(propertyNameNode); - if (pattern.test(propertyName) && !Validation.interpret(schemaUri, propertyValue, context)) { - isValid = false; - } - } - } - - return isValid; -}; - -const simpleApplicator = true; - -const collectEvaluatedProperties = (patternProperties, instance, context) => { - if (Instance.typeOf(instance) !== "object") { - return false; - } - - const evaluatedPropertyNames = new Set(); - for (const [pattern, propertySchema] of patternProperties) { - for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); if (pattern.test(propertyName)) { - if (!Validation.interpret(propertySchema, property, context)) { - return false; + if (!Validation.interpret(schemaUri, propertyValue, context)) { + isValid = false; } - evaluatedPropertyNames.add(propertyName); + context.evaluatedProperties?.add(propertyName); } } } - return evaluatedPropertyNames; + return isValid; }; -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; +const simpleApplicator = true; + +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/prefixItems.js b/lib/keywords/prefixItems.js index 6449363..d1e2a8a 100644 --- a/lib/keywords/prefixItems.js +++ b/lib/keywords/prefixItems.js @@ -29,6 +29,7 @@ const interpret = (prefixItems, instance, context) => { isValid = false; } + context.evaluatedItems?.add(index); index++; } @@ -37,8 +38,4 @@ const interpret = (prefixItems, instance, context) => { const simpleApplicator = true; -const collectEvaluatedItems = (items, instance, context) => { - return interpret(items, instance, context) && new Set(items.map((_item, ndx) => ndx)); -}; - -export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/properties.js b/lib/keywords/properties.js index 8e8af64..3f510b3 100644 --- a/lib/keywords/properties.js +++ b/lib/keywords/properties.js @@ -18,36 +18,20 @@ const interpret = (properties, instance, context) => { } let isValid = true; - for (const [propertyNameNode, property] of Instance.entries(instance)) { - const propertyName = Instance.value(propertyNameNode); - if (propertyName in properties && !Validation.interpret(properties[propertyName], property, context)) { - isValid = false; - } - } - - return isValid; -}; - -const simpleApplicator = true; - -const collectEvaluatedProperties = (properties, instance, context) => { - if (Instance.typeOf(instance) !== "object") { - return false; - } - - const evaluatedPropertyNames = new Set(); for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); if (propertyName in properties) { if (!Validation.interpret(properties[propertyName], property, context)) { - return false; + isValid = false; } - evaluatedPropertyNames.add(propertyName); + context.evaluatedProperties?.add(propertyName); } } - return evaluatedPropertyNames; + return isValid; }; -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; +const simpleApplicator = true; + +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/propertyDependencies.js b/lib/keywords/propertyDependencies.js index 7a09857..33fa71c 100644 --- a/lib/keywords/propertyDependencies.js +++ b/lib/keywords/propertyDependencies.js @@ -43,23 +43,4 @@ const interpret = (propertyDependencies, instance, context) => { const simpleApplicator = true; -const collectEvaluatedProperties = (propertyDependencies, instance, context) => { - const evaluatedPropertyNames = new Set(); - for (const propertyName in propertyDependencies) { - const propertyValue = Instance.value(instance)[propertyName]; - - const valueMappings = propertyDependencies[propertyName]; - if (Instance.has(propertyName, instance) && propertyValue in valueMappings) { - const propertyNames = Validation.collectEvaluatedProperties(valueMappings[propertyValue], instance, context); - if (!propertyNames) { - return false; - } - - propertyNames.forEach(evaluatedPropertyNames.add, evaluatedPropertyNames); - } - } - - return evaluatedPropertyNames; -}; - -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/propertyNames.js b/lib/keywords/propertyNames.js index 4cd0b2a..38c5fff 100644 --- a/lib/keywords/propertyNames.js +++ b/lib/keywords/propertyNames.js @@ -13,7 +13,7 @@ const interpret = (propertyNames, instance, context) => { let isValid = true; for (const key of Instance.keys(instance)) { - if (!Validation.interpret(propertyNames, key, { ...context, annotations: [] })) { + if (!Validation.interpret(propertyNames, key, context)) { isValid = false; } } diff --git a/lib/keywords/ref.js b/lib/keywords/ref.js index 58decad..48fa0dd 100644 --- a/lib/keywords/ref.js +++ b/lib/keywords/ref.js @@ -5,9 +5,7 @@ const id = "https://json-schema.org/keyword/ref"; const compile = (...args) => Validation.compile(...args); const interpret = (...args) => Validation.interpret(...args); -const collectEvaluatedProperties = (...args) => Validation.collectEvaluatedProperties(...args); -const collectEvaluatedItems = (...args) => Validation.collectEvaluatedItems(...args); const simpleApplicator = true; -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/then.js b/lib/keywords/then.js index 0d1cb0d..5c07138 100644 --- a/lib/keywords/then.js +++ b/lib/keywords/then.js @@ -1,5 +1,4 @@ import * as Browser from "@hyperjump/browser"; -import { FLAG } from "../index.js"; import { getKeywordName, Validation } from "../experimental.js"; @@ -17,26 +16,10 @@ const compile = async (schema, ast, parentSchema) => { const interpret = ([ifSchema, thenSchema], instance, context) => { return ifSchema === undefined - || !Validation.interpret(ifSchema, instance, { ...context, errors: [], annotations: [], outputFormat: FLAG }) + || !Validation.interpret(ifSchema, instance, { ...context, plugins: context.ast.plugins }) || Validation.interpret(thenSchema, instance, context); }; const simpleApplicator = true; -const collectEvaluatedProperties = ([ifSchema, thenSchema], instance, context) => { - if (ifSchema === undefined || !Validation.interpret(ifSchema, instance, context)) { - return new Set(); - } - - return Validation.collectEvaluatedProperties(thenSchema, instance, context); -}; - -const collectEvaluatedItems = ([ifSchema, thenSchema], instance, context) => { - if (ifSchema === undefined || !Validation.interpret(ifSchema, instance, context)) { - return new Set(); - } - - return Validation.collectEvaluatedItems(thenSchema, instance, context); -}; - -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/unevaluatedItems.js b/lib/keywords/unevaluatedItems.js index 1a6ac4a..44dbd79 100644 --- a/lib/keywords/unevaluatedItems.js +++ b/lib/keywords/unevaluatedItems.js @@ -1,5 +1,3 @@ -import { zip, range } from "@hyperjump/pact"; -import { FLAG } from "../index.js"; import { canonicalUri, Validation } from "../experimental.js"; import * as Instance from "../instance.js"; @@ -15,17 +13,33 @@ const interpret = ([schemaUrl, unevaluatedItems], instance, context) => { return true; } - const keywordContext = { ...context, errors: [], annotations: [], outputFormat: FLAG }; - const itemIndexes = Validation.collectEvaluatedItems(schemaUrl, instance, keywordContext, true); - if (itemIndexes === false) { + if (context.rootSchema === schemaUrl) { + return true; + } + + // Because order matters, we re-evaluate this schema skipping this keyword + // just to collect all the evalauted items. + const keywordContext = { + ...context, + plugins: [...context.ast.plugins, unevaluatedPlugin], + rootSchema: schemaUrl + }; + if (!Validation.interpret(schemaUrl, instance, keywordContext)) { return true; } let isValid = true; - for (const [item, index] of zip(Instance.iter(instance), range(0))) { - if (!itemIndexes.has(index) && !Validation.interpret(unevaluatedItems, item, context)) { - isValid = false; + let index = 0; + for (const item of Instance.iter(instance)) { + if (!keywordContext.evaluatedItems.has(index)) { + if (!Validation.interpret(unevaluatedItems, item, context)) { + isValid = false; + } + + context.evaluatedItems?.add(index); } + + index++; } return isValid; @@ -33,19 +47,29 @@ const interpret = ([schemaUrl, unevaluatedItems], instance, context) => { const simpleApplicator = true; -const collectEvaluatedItems = (keywordValue, instance, context) => { - const itemIndexes = Validation.collectEvaluatedItems(keywordValue[0], instance, context, true); - if (!itemIndexes) { - return false; - } - - const evaluatedIndexes = new Set(); - for (let ndx = 0; ndx < Instance.length(instance); ndx++) { - if (!itemIndexes.has(ndx)) { - evaluatedIndexes.add(ndx); +const unevaluatedPlugin = { + beforeSchema(_url, _instance, context) { + context.evaluatedItems ??= new Set(); + context.schemaEvaluatedItems ??= new Set(); + }, + beforeKeyword(_node, _instance, context, schemaContext) { + context.rootSchema = schemaContext.rootSchema; + context.evaluatedItems = new Set(); + }, + afterKeyword(_node, _instance, context, valid, schemaContext) { + if (valid) { + for (const index of context.evaluatedItems) { + schemaContext.schemaEvaluatedItems.add(index); + } + } + }, + afterSchema(_url, _instance, context, valid) { + if (valid) { + for (const index of context.schemaEvaluatedItems) { + context.evaluatedItems.add(index); + } } } - return evaluatedIndexes; }; -export default { id, compile, interpret, simpleApplicator, collectEvaluatedItems }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/unevaluatedProperties.js b/lib/keywords/unevaluatedProperties.js index b0aa52c..9882bfc 100644 --- a/lib/keywords/unevaluatedProperties.js +++ b/lib/keywords/unevaluatedProperties.js @@ -1,4 +1,3 @@ -import { FLAG } from "../index.js"; import { Validation, canonicalUri } from "../experimental.js"; import * as Instance from "../instance.js"; @@ -14,18 +13,33 @@ const interpret = ([schemaUrl, unevaluatedProperties], instance, context) => { return true; } - const keywordContext = { ...context, errors: [], annotations: [], outputFormat: FLAG }; - const evaluatedPropertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, keywordContext, true); - if (evaluatedPropertyNames === false) { + if (context.rootSchema === schemaUrl) { + return true; + } + + // Because order matters, we re-evaluate this schema skipping this keyword + // just to collect all the evalauted properties. + const keywordContext = { + ...context, + plugins: [...context.ast.plugins, unevaluatedPlugin], + rootSchema: schemaUrl + }; + if (!Validation.interpret(schemaUrl, instance, keywordContext)) { return true; } let isValid = true; for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); - if (!evaluatedPropertyNames.has(propertyName) && !Validation.interpret(unevaluatedProperties, property, context)) { + if (keywordContext.evaluatedProperties.has(propertyName)) { + continue; + } + + if (!Validation.interpret(unevaluatedProperties, property, context)) { isValid = false; } + + context.evaluatedProperties?.add(propertyName); } return isValid; @@ -33,29 +47,29 @@ const interpret = ([schemaUrl, unevaluatedProperties], instance, context) => { const simpleApplicator = true; -const collectEvaluatedProperties = ([schemaUrl, unevaluatedProperties], instance, context) => { - if (Instance.typeOf(instance) !== "object") { - return true; - } - - const evaluatedPropertyNames = Validation.collectEvaluatedProperties(schemaUrl, instance, context, true); - - if (!evaluatedPropertyNames) { - return false; - } - - for (const [propertyNameNode, property] of Instance.entries(instance)) { - const propertyName = Instance.value(propertyNameNode); - if (!evaluatedPropertyNames.has(propertyName)) { - if (!Validation.interpret(unevaluatedProperties, property, context)) { - return false; +const unevaluatedPlugin = { + beforeSchema(_url, _instance, context) { + context.evaluatedProperties ??= new Set(); + context.schemaEvaluatedProperties ??= new Set(); + }, + beforeKeyword(_node, _instance, context, schemaContext) { + context.rootSchema = schemaContext.rootSchema; + context.evaluatedProperties = new Set(); + }, + afterKeyword(_node, _instance, context, valid, schemaContext) { + if (valid) { + for (const property of context.evaluatedProperties) { + schemaContext.schemaEvaluatedProperties.add(property); + } + } + }, + afterSchema(_url, _instance, context, valid) { + if (valid) { + for (const property of context.schemaEvaluatedProperties) { + context.evaluatedProperties.add(property); } - - evaluatedPropertyNames.add(propertyName); } } - - return evaluatedPropertyNames; }; -export default { id, compile, interpret, simpleApplicator, collectEvaluatedProperties }; +export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index 3cbac04..034ef3e 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -2,7 +2,6 @@ import { value, entries } from "@hyperjump/browser"; import { pipe, asyncMap, asyncCollectArray } from "@hyperjump/pact"; import { append as pointerAppend } from "@hyperjump/json-pointer"; import { publishAsync } from "../pubsub.js"; -import { toAbsoluteUri } from "../common.js"; import { canonicalUri, getKeyword, getKeywordByName } from "../experimental.js"; @@ -33,6 +32,9 @@ const compile = async (schema, ast) => { entries(schema), asyncMap(async ([keyword, keywordSchema]) => { const keywordHandler = getKeywordByName(keyword, schema.document.dialectId); + if (keywordHandler.plugin) { + ast.plugins.add(keywordHandler.plugin); + } const keywordAst = await keywordHandler.compile(keywordSchema, ast, schema); return [keywordHandler.id, pointerAppend(keyword, canonicalUri(schema)), keywordAst]; }), @@ -44,15 +46,10 @@ const compile = async (schema, ast) => { }; const interpret = (url, instance, context) => { - context.dynamicAnchors = { - ...context.ast.metaData[toAbsoluteUri(url)].dynamicAnchors, - ...context.dynamicAnchors - }; - let valid = true; for (const plugin of context.plugins) { - plugin.beforeSchema(context); + plugin.beforeSchema(url, instance, context); } if (typeof context.ast[url] === "boolean") { @@ -64,11 +61,10 @@ const interpret = (url, instance, context) => { const keywordContext = { ast: context.ast, - plugins: context.plugins, - dynamicAnchors: context.dynamicAnchors + plugins: context.plugins }; for (const plugin of context.plugins) { - plugin.beforeKeyword(keywordContext, context); + plugin.beforeKeyword(node, instance, keywordContext, context, keyword); } const isKeywordValid = keyword.interpret(keywordValue, instance, keywordContext); if (!isKeywordValid) { @@ -76,69 +72,15 @@ const interpret = (url, instance, context) => { } for (const plugin of context.plugins) { - plugin.afterKeyword(node, instance, isKeywordValid, keywordContext, context, keyword); + plugin.afterKeyword(node, instance, keywordContext, isKeywordValid, context, keyword); } } } for (const plugin of context.plugins) { - plugin.afterSchema(url, instance, valid, context); + plugin.afterSchema(url, instance, context, valid); } return valid; }; -const emptyPropertyNames = new Set(); -const collectEvaluatedProperties = (url, instance, context, isTop = false) => { - if (typeof context.ast[url] === "boolean") { - return context.ast[url] ? emptyPropertyNames : false; - } - - const accumulatedPropertyNames = new Set(); - for (const [keywordId, , keywordValue] of context.ast[url]) { - if (isTop && keywordId === "https://json-schema.org/keyword/unevaluatedProperties") { - continue; - } - - const keywordHandler = getKeyword(keywordId); - const propertyNames = "collectEvaluatedProperties" in keywordHandler - ? keywordHandler.collectEvaluatedProperties(keywordValue, instance, context, isTop) - : keywordHandler.interpret(keywordValue, instance, context) && emptyPropertyNames; - - if (propertyNames === false) { - return false; - } - - propertyNames.forEach(accumulatedPropertyNames.add, accumulatedPropertyNames); - } - - return accumulatedPropertyNames; -}; - -const emptyItemIndexes = new Set(); -const collectEvaluatedItems = (url, instance, context, isTop = false) => { - if (typeof context.ast[url] === "boolean") { - return context.ast[url] ? emptyItemIndexes : false; - } - - const accumulatedItemIndexes = new Set(); - for (const [keywordId, , keywordValue] of context.ast[url]) { - if (isTop && keywordId === "https://json-schema.org/keyword/unevaluatedItems") { - continue; - } - - const keywordHandler = getKeyword(keywordId); - const itemIndexes = "collectEvaluatedItems" in keywordHandler - ? keywordHandler.collectEvaluatedItems(keywordValue, instance, context, isTop) - : keywordHandler.interpret(keywordValue, instance, context) && emptyItemIndexes; - - if (itemIndexes === false) { - return false; - } - - itemIndexes.forEach(accumulatedItemIndexes.add, accumulatedItemIndexes); - } - - return accumulatedItemIndexes; -}; - -export default { id, compile, interpret, collectEvaluatedProperties, collectEvaluatedItems }; +export default { id, compile, interpret }; diff --git a/lib/output-basic.spec.ts b/lib/output-basic.spec.ts index 7e6f0e6..90edfa5 100644 --- a/lib/output-basic.spec.ts +++ b/lib/output-basic.spec.ts @@ -608,12 +608,12 @@ describe("Basic Output Format", () => { { keyword: "https://json-schema.org/keyword/pattern", absoluteKeywordLocation: `${schemaUri}#/propertyNames/pattern`, - instanceLocation: "#/banana" + instanceLocation: "#*/banana" }, { keyword: "https://json-schema.org/keyword/pattern", absoluteKeywordLocation: `${schemaUri}#/propertyNames/pattern`, - instanceLocation: "#/pear" + instanceLocation: "#*/pear" } ] }); @@ -628,6 +628,90 @@ describe("Basic Output Format", () => { }); }); + describe("unevaluatedProperties", () => { + test("invalid - boolean", async () => { + registerSchema({ unevaluatedProperties: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedProperties`, + instanceLocation: "#/foo" + } + ] + }); + }); + + test("invalid - schema", async () => { + registerSchema({ + unevaluatedProperties: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedProperties/type`, + instanceLocation: "#/foo" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ unevaluatedProperties: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("unevaluatedItems", () => { + test("invalid - boolean", async () => { + registerSchema({ unevaluatedItems: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42], BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedItems`, + instanceLocation: "#/0" + } + ] + }); + }); + + test("invalid - schema", async () => { + registerSchema({ + unevaluatedItems: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42], BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedItems/type`, + instanceLocation: "#/0" + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ unevaluatedItems: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, [], BASIC); + expect(output).to.eql({ valid: true }); + }); + }); + describe("const", () => { test("invalid", async () => { registerSchema({ const: "foo" }, schemaUri, dialectUri); diff --git a/lib/output-detailed.spec.ts b/lib/output-detailed.spec.ts index 8b9ce10..8b78a28 100644 --- a/lib/output-detailed.spec.ts +++ b/lib/output-detailed.spec.ts @@ -717,12 +717,12 @@ describe("Detailed Output Format", () => { { keyword: "https://json-schema.org/keyword/pattern", absoluteKeywordLocation: `${schemaUri}#/propertyNames/pattern`, - instanceLocation: "#/banana" + instanceLocation: "#*/banana" }, { keyword: "https://json-schema.org/keyword/pattern", absoluteKeywordLocation: `${schemaUri}#/propertyNames/pattern`, - instanceLocation: "#/pear" + instanceLocation: "#*/pear" } ] } @@ -739,6 +739,118 @@ describe("Detailed Output Format", () => { }); }); + describe("unevaluatedProperties", () => { + test("invalid - boolean", async () => { + registerSchema({ unevaluatedProperties: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/unevaluatedProperties", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedProperties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedProperties`, + instanceLocation: "#/foo" + } + ] + } + ] + }); + }); + + test("invalid - schema", async () => { + registerSchema({ + unevaluatedProperties: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42 }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/unevaluatedProperties", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedProperties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedProperties/type`, + instanceLocation: "#/foo" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ unevaluatedProperties: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, {}, DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + + describe("unevaluatedItems", () => { + test("invalid - boolean", async () => { + registerSchema({ unevaluatedItems: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42], DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/unevaluatedItems", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedItems`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedItems`, + instanceLocation: "#/0" + } + ] + } + ] + }); + }); + + test("invalid - schema", async () => { + registerSchema({ + unevaluatedItems: { type: "string" } + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42], DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/unevaluatedItems", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedItems`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/keyword/type", + absoluteKeywordLocation: `${schemaUri}#/unevaluatedItems/type`, + instanceLocation: "#/0" + } + ] + } + ] + }); + }); + + test("valid", async () => { + registerSchema({ unevaluatedItems: false }, schemaUri, dialectUri); + const output = await validate(schemaUri, [], DETAILED); + expect(output).to.eql({ valid: true }); + }); + }); + describe("const", () => { test("invalid", async () => { registerSchema({ const: "foo" }, schemaUri, dialectUri); From dc17baa3783e42f1e0209564bda89c374599c12c Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 2 May 2025 11:01:16 -0700 Subject: [PATCH 23/40] Refactor bundling to not depend on keyword handlers --- bundle/index.js | 266 +++++++----------------------------------- lib/experimental.d.ts | 1 - 2 files changed, 39 insertions(+), 228 deletions(-) diff --git a/bundle/index.js b/bundle/index.js index db0c1ec..99c6fe9 100644 --- a/bundle/index.js +++ b/bundle/index.js @@ -1,13 +1,8 @@ -import curry from "just-curry-it"; import { v4 as uuid } from "uuid"; -import * as Browser from "@hyperjump/browser"; +import { jrefTypeOf } from "@hyperjump/browser/jref"; import * as JsonPointer from "@hyperjump/json-pointer"; -import { asyncCollectSet, asyncFilter, asyncFlatten, asyncMap, pipe } from "@hyperjump/pact"; -import { - Validation, - canonicalUri, getSchema, toSchema, - getKeywordName, getKeyword, getKeywordByName -} from "../lib/experimental.js"; +import { resolveIri, toAbsoluteIri } from "@hyperjump/uri"; +import { getSchema, toSchema, getKeywordName } from "../lib/experimental.js"; export const URI = "uri", UUID = "uuid"; @@ -19,32 +14,36 @@ const defaultOptions = { }; export const bundle = async (url, options = {}) => { - loadKeywordSupport(); const fullOptions = { ...defaultOptions, ...options }; const mainSchema = await getSchema(url); - const contextUri = mainSchema.document.baseUri; - const contextDialectId = mainSchema.document.dialectId; + fullOptions.contextUri = mainSchema.document.baseUri; + fullOptions.contextDialectId = mainSchema.document.dialectId; + const bundled = toSchema(mainSchema); + fullOptions.bundlingLocation = "/" + getKeywordName(fullOptions.contextDialectId, "https://json-schema.org/keyword/definitions"); + if (JsonPointer.get(fullOptions.bundlingLocation, bundled) === undefined) { + JsonPointer.assign(fullOptions.bundlingLocation, bundled, {}); + } - const externalIds = await Validation.collectExternalIds(new Set(), mainSchema, mainSchema); + return await doBundling(mainSchema.uri, bundled, fullOptions); +}; - // Bundle - const bundlingLocation = "/" + getKeywordName(contextDialectId, "https://json-schema.org/keyword/definitions"); - if (JsonPointer.get(bundlingLocation, bundled) === undefined && externalIds.size > 0) { - JsonPointer.assign(bundlingLocation, bundled, {}); - } +const doBundling = async (schemaUri, bundled, fullOptions, contextSchema, visited = new Set()) => { + visited.add(schemaUri); - for (const uri of externalIds) { - if (fullOptions.externalSchemas.includes(uri)) { + const schema = await getSchema(schemaUri, contextSchema); + for (const reference of allReferences(schema.document.root)) { + const uri = toAbsoluteIri(resolveIri(reference.href, schema.document.baseUri)); + if (visited.has(uri) || fullOptions.externalSchemas.includes(uri) || (uri in schema.document.embedded && !(uri in schema._cache))) { continue; } - const externalSchema = await getSchema(uri); + const externalSchema = await getSchema(uri, contextSchema); const embeddedSchema = toSchema(externalSchema, { - contextUri: externalSchema.document.baseUri.startsWith("file:") ? contextUri : undefined, + contextUri: externalSchema.document.baseUri.startsWith("file:") ? fullOptions.contextUri : undefined, includeDialect: fullOptions.alwaysIncludeDialect ? "always" : "auto", - contextDialectId: contextDialectId + contextDialectId: fullOptions.contextDialectId }); let id; if (fullOptions.definitionNamingStrategy === URI) { @@ -56,216 +55,29 @@ export const bundle = async (url, options = {}) => { } else { throw Error(`Unknown definition naming stragety: ${fullOptions.definitionNamingStrategy}`); } - const pointer = JsonPointer.append(id, bundlingLocation); + const pointer = JsonPointer.append(id, fullOptions.bundlingLocation); JsonPointer.assign(pointer, bundled, embeddedSchema); + + bundled = await doBundling(uri, bundled, fullOptions, schema, visited); } return bundled; }; -Validation.collectExternalIds = curry(async (visited, parentSchema, schema) => { - const uri = canonicalUri(schema); - if (visited.has(uri) || Browser.typeOf(schema) === "boolean") { - return new Set(); - } - - visited.add(uri); - - const externalIds = await pipe( - Browser.entries(schema), - asyncMap(async ([keyword, keywordSchema]) => { - const keywordHandler = getKeywordByName(keyword, schema.document.dialectId); - - return "collectExternalIds" in keywordHandler - ? await keywordHandler.collectExternalIds(visited, schema, keywordSchema) - : new Set(); - }), - asyncFlatten, - asyncCollectSet - ); - - if (parentSchema.document.baseUri !== schema.document.baseUri - && (!(schema.document.baseUri in parentSchema.document.embedded) || schema.document.baseUri in parentSchema._cache) - ) { - externalIds.add(schema.document.baseUri); - } - - return externalIds; -}); - -const collectExternalIdsFromArrayOfSchemas = (visited, parentSchema, schema) => pipe( - Browser.iter(schema), - asyncMap(Validation.collectExternalIds(visited, parentSchema)), - asyncFlatten, - asyncCollectSet -); - -const collectExternalIdsFromObjectOfSchemas = async (visited, parentSchema, schema) => pipe( - Browser.values(schema), - asyncMap(Validation.collectExternalIds(visited, parentSchema)), - asyncFlatten, - asyncCollectSet -); - -const loadKeywordSupport = () => { - // Stable - - const additionalProperties = getKeyword("https://json-schema.org/keyword/additionalProperties"); - if (additionalProperties) { - additionalProperties.collectExternalIds = Validation.collectExternalIds; - } - - const allOf = getKeyword("https://json-schema.org/keyword/allOf"); - if (allOf) { - allOf.collectExternalIds = collectExternalIdsFromArrayOfSchemas; - } - - const anyOf = getKeyword("https://json-schema.org/keyword/anyOf"); - if (anyOf) { - anyOf.collectExternalIds = collectExternalIdsFromArrayOfSchemas; - } - - const contains = getKeyword("https://json-schema.org/keyword/contains"); - if (contains) { - contains.collectExternalIds = Validation.collectExternalIds; - } - - const dependentSchemas = getKeyword("https://json-schema.org/keyword/dependentSchemas"); - if (dependentSchemas) { - dependentSchemas.collectExternalIds = collectExternalIdsFromObjectOfSchemas; - } - - const if_ = getKeyword("https://json-schema.org/keyword/if"); - if (if_) { - if_.collectExternalIds = Validation.collectExternalIds; - } - - const then = getKeyword("https://json-schema.org/keyword/then"); - if (then) { - then.collectExternalIds = Validation.collectExternalIds; - } - - const else_ = getKeyword("https://json-schema.org/keyword/else"); - if (else_) { - else_.collectExternalIds = Validation.collectExternalIds; - } - - const items = getKeyword("https://json-schema.org/keyword/items"); - if (items) { - items.collectExternalIds = Validation.collectExternalIds; - } - - const not = getKeyword("https://json-schema.org/keyword/not"); - if (not) { - not.collectExternalIds = Validation.collectExternalIds; - } - - const oneOf = getKeyword("https://json-schema.org/keyword/oneOf"); - if (oneOf) { - oneOf.collectExternalIds = collectExternalIdsFromArrayOfSchemas; - } - - const patternProperties = getKeyword("https://json-schema.org/keyword/patternProperties"); - if (patternProperties) { - patternProperties.collectExternalIds = collectExternalIdsFromObjectOfSchemas; - } - - const prefixItems = getKeyword("https://json-schema.org/keyword/prefixItems"); - if (prefixItems) { - prefixItems.collectExternalIds = collectExternalIdsFromArrayOfSchemas; - } - - const properties = getKeyword("https://json-schema.org/keyword/properties"); - if (properties) { - properties.collectExternalIds = collectExternalIdsFromObjectOfSchemas; - } - - const propertyNames = getKeyword("https://json-schema.org/keyword/propertyNames"); - if (propertyNames) { - propertyNames.collectExternalIds = Validation.collectExternalIds; - } - - const ref = getKeyword("https://json-schema.org/keyword/ref"); - if (ref) { - ref.collectExternalIds = Validation.collectExternalIds; - } - - const unevaluatedItems = getKeyword("https://json-schema.org/keyword/unevaluatedItems"); - if (unevaluatedItems) { - unevaluatedItems.collectExternalIds = Validation.collectExternalIds; - } - - const unevaluatedProperties = getKeyword("https://json-schema.org/keyword/unevaluatedProperties"); - if (unevaluatedProperties) { - unevaluatedProperties.collectExternalIds = Validation.collectExternalIds; - } - - // Draft-04 - - const additionalItems4 = getKeyword("https://json-schema.org/keyword/draft-04/additionalItems"); - if (additionalItems4) { - additionalItems4.collectExternalIds = Validation.collectExternalIds; - } - - const dependencies = getKeyword("https://json-schema.org/keyword/draft-04/dependencies"); - if (dependencies) { - dependencies.collectExternalIds = (visited, parentSchema, schema) => pipe( - Browser.values(schema), - asyncFilter((subSchema) => Browser.typeOf(subSchema) === "object"), - asyncMap(Validation.collectExternalIds(visited, parentSchema)), - asyncFlatten, - asyncCollectSet - ); - } - - const items4 = getKeyword("https://json-schema.org/keyword/draft-04/items"); - if (items4) { - items4.collectExternalIds = (visited, parentSchema, schema) => Browser.typeOf(schema) === "array" - ? collectExternalIdsFromArrayOfSchemas(visited, parentSchema, schema) - : Validation.collectExternalIds(visited, parentSchema, schema); - } - - // Draft-06 - - const contains6 = getKeyword("https://json-schema.org/keyword/draft-06/contains"); - if (contains6) { - contains6.collectExternalIds = Validation.collectExternalIds; - } - - // Draft-2019-09 - - const contains19 = getKeyword("https://json-schema.org/keyword/draft-2019-09/contains"); - if (contains19) { - contains19.collectExternalIds = Validation.collectExternalIds; - } - - // Extensions - - const propertyDependencies = getKeyword("https://json-schema.org/keyword/propertyDependencies"); - if (propertyDependencies) { - propertyDependencies.collectExternalIds = (visited, parentSchema, schema) => pipe( - Browser.values(schema), - asyncMap((mapping) => Browser.values(mapping)), - asyncFlatten, - asyncMap(Validation.collectExternalIds(visited, parentSchema)), - asyncFlatten, - asyncCollectSet - ); - } - - const conditional = getKeyword("https://json-schema.org/keyword/conditional"); - if (conditional) { - conditional.collectExternalIds = collectExternalIdsFromArrayOfSchemas; - } - - const itemPattern = getKeyword("https://json-schema.org/keyword/itemPattern"); - if (itemPattern) { - itemPattern.collectExternalIds = (visited, parentSchema, schema) => pipe( - Browser.iter(schema), - asyncFilter((item) => Browser.typeOf(item) === "object"), - asyncMap(Validation.collectExternalIds(visited, parentSchema)), - asyncFlatten, - asyncCollectSet - ); +const allReferences = function* (node) { + switch (jrefTypeOf(node)) { + case "object": + for (const property in node) { + yield* allReferences(node[property]); + } + break; + case "array": + for (const item of node) { + yield* allReferences(item); + } + break; + case "reference": + yield node; + break; } }; diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index 277004a..6cdaa96 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -71,7 +71,6 @@ export type Keyword = { compile: (schema: Browser, ast: AST, parentSchema: Browser) => Promise; interpret: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext) => boolean; simpleApplicator: boolean; - collectExternalIds?: (visited: Set, parentSchema: Browser, schema: Browser) => Promise>; annotation?: (compiledKeywordValue: A, instance: JsonNode) => B | undefined; }; From fd6e18dddb4bcf98bfc124d311ebda0a52915c20 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 2 May 2025 11:16:03 -0700 Subject: [PATCH 24/40] Update README with evaluation plugin changes --- README.md | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 4081440..8538302 100644 --- a/README.md +++ b/README.md @@ -248,8 +248,8 @@ The following types are used in the above definitions * **OutputFormat**: **FLAG** - Only the `FLAG` output format is part of the Stable API. Additional output - formats are included as part of the Experimental API. + Only the `FLAG` output format is part of the Stable API. Additional [output + formats](#output-formats) are included as part of the Experimental API. * **OutputUnit**: { valid: boolean } Output is an experimental feature of the JSON Schema specification. There @@ -336,7 +336,8 @@ These are available from the `@hyperjump/json-schema/bundle` export. The `FLAG` output format isn't very informative. You can change the output format used for validation to get more information about failures. The official output format is still evolving, so these may change or be replaced in the -future. +future. This implementation currently supports the BASIC and DETAILED output +formats. ```javascript import { BASIC } from "@hyperjump/json-schema/experimental"; @@ -536,28 +537,21 @@ These are available from the `@hyperjump/json-schema/experimental` export. validation of its own. In these cases, it isn't helpful to include them in BASIC output. This flag is used to trim those nodes from the output. - * collectEvaluatedProperties?: (compiledKeywordValue: any, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set\ | false - - If the keyword is an applicator, it will need to implement this - function for `unevaluatedProperties` to work as expected. - * collectEvaluatedItems?: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext, isTop?: boolean) => Set\ | false - - If the keyword is an applicator, it will need to implement this - function for `unevaluatedItems` to work as expected. - * collectExternalIds?: (visited: Set\, parentSchema: Browser, schema: Browser) => Set\ - If the keyword is an applicator, it will need to implement this - function to work properly with the [bundle](#bundling) feature. - * annotation?: (compiledKeywordValue: any) => any + * annotation?: (compiledKeywordValue: any) => any | undefined If the keyword is an annotation, it will need to implement this function to return the annotation. + * plugin?: EvaluationPlugin * **ValidationContext**: object * ast: AST - * dynamicAnchors: object - * schemaUrl: string - * errors: OutputUnit[] - * annotations: OutputUnit[] + * plugins: EvaluationPlugins[] + + * **EvaluationPlugin**: object + * beforeSchema(url: string, instance: JsonNode, context: Context): void + * beforeKeyword(keywordNode: Node, instance: JsonNode, context: Context, schemaContext: Context, keyword: Keyword): void + * afterKeyword(keywordNode: Node, instance: JsonNode, context: Context, valid: boolean, schemaContext: Context, keyword: Keyword): void + * afterSchema(url: string, instance: JsonNode, context: Context, valid: boolean): void * **defineVocabulary**: (id: string, keywords: { [keyword: string]: string }) => void Define a vocabulary that maps keyword name to keyword URIs defined using @@ -596,7 +590,7 @@ These are available from the `@hyperjump/json-schema/experimental` export. * **getSchema**: (uri: string, browser?: Browser) => Promise\ Get a schema by it's URI taking the local schema registry into account. -* buildSchemaDocument: (schema: SchemaObject | boolean, retrievalUri?: string, contextDialectId?: string) => SchemaDocument +* **buildSchemaDocument**: (schema: SchemaObject | boolean, retrievalUri?: string, contextDialectId?: string) => SchemaDocument Build a SchemaDocument from a JSON-compatible value. You might use this if you're creating a custom media type plugin, such as supporting JSON Schemas From 243585b28d18e63222670b9d744befd4c45255ef Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 2 May 2025 11:55:10 -0700 Subject: [PATCH 25/40] 1.14.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6d697d6..68efccd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.13.0", + "version": "1.14.0", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From ccf2f3a4466266946b2c38e1ca4b59f74c4b1921 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Tue, 8 Apr 2025 10:51:13 -0700 Subject: [PATCH 26/40] Migrate to official annotation tests --- annotations/index.spec.ts | 107 +++--- annotations/test-utils.d.ts | 1 + annotations/test-utils.js | 38 ++ annotations/tests/applicators.json | 375 ------------------- annotations/tests/content.json | 107 ------ annotations/tests/core.json | 33 -- annotations/tests/format.json | 20 -- annotations/tests/meta-data.json | 128 ------- annotations/tests/pointer.json | 53 --- annotations/tests/unevaluated.json | 557 ----------------------------- annotations/tests/unknown.json | 21 -- annotations/tests/validation.json | 328 ----------------- lib/keywords/contentSchema.js | 9 +- 13 files changed, 107 insertions(+), 1670 deletions(-) create mode 100644 annotations/test-utils.d.ts create mode 100644 annotations/test-utils.js delete mode 100644 annotations/tests/applicators.json delete mode 100644 annotations/tests/content.json delete mode 100644 annotations/tests/core.json delete mode 100644 annotations/tests/format.json delete mode 100644 annotations/tests/meta-data.json delete mode 100644 annotations/tests/pointer.json delete mode 100644 annotations/tests/unevaluated.json delete mode 100644 annotations/tests/unknown.json delete mode 100644 annotations/tests/validation.json diff --git a/annotations/index.spec.ts b/annotations/index.spec.ts index c5b38a1..1a449fa 100644 --- a/annotations/index.spec.ts +++ b/annotations/index.spec.ts @@ -1,12 +1,12 @@ import fs from "node:fs"; -import path from "node:path"; -import { fileURLToPath } from "node:url"; -import { describe, it, expect, beforeEach, beforeAll, afterAll } from "vitest"; +import { describe, test, expect, beforeEach, beforeAll, afterAll } from "vitest"; +import { isCompatible } from "./test-utils.js"; import { toAbsoluteIri } from "@hyperjump/uri"; import { annotate } from "./index.js"; import { registerSchema, unregisterSchema } from "../lib/index.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; +import "../draft-2019-09/index.js"; import "../draft-07/index.js"; import "../draft-06/index.js"; import "../draft-04/index.js"; @@ -19,12 +19,18 @@ import type { Json } from "@hyperjump/json-pointer"; type Suite = { - title: string; + description: string; + suite: TestCase[]; +}; + +type TestCase = { + description: string; + compatibility: string; schema: SchemaObject; - subjects: Subject[]; + tests: Test[]; }; -type Subject = { +type Test = { instance: Json; assertions: Assertion[]; }; @@ -35,57 +41,68 @@ type Assertion = { expected: unknown[]; }; -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -const dialectId = "https://json-schema.org/validation"; const host = "https://annotations.json-schema.hyperjump.io"; -const testSuiteFilePath = `${__dirname}/tests`; +const testSuiteFilePath = "./node_modules/json-schema-test-suite/annotations/tests"; -describe("Annotations", () => { - fs.readdirSync(testSuiteFilePath, { withFileTypes: true }) - .filter((entry) => entry.isFile() && entry.name.endsWith(".json")) - .forEach((entry) => { - const file = `${testSuiteFilePath}/${entry.name}`; - const suites = JSON.parse(fs.readFileSync(file, "utf8")) as Suite[]; +const testRunner = (version: number, dialect: string) => { + describe(dialect, () => { + fs.readdirSync(testSuiteFilePath, { withFileTypes: true }) + .filter((entry) => entry.isFile() && entry.name.endsWith(".json")) + .forEach((entry) => { + const file = `${testSuiteFilePath}/${entry.name}`; + const suite = JSON.parse(fs.readFileSync(file, "utf8")) as Suite; - suites.forEach((suite) => { - describe(suite.title + "\n" + JSON.stringify(suite.schema, null, " "), () => { - let annotator: Annotator; - let id: string; + for (const testCase of suite.suite) { + if (!isCompatible(testCase.compatibility, version)) { + continue; + } - beforeAll(async () => { - id = `${host}/${encodeURIComponent(suite.title)}`; - registerSchema(suite.schema, id, dialectId); + describe(testCase.description + "\n" + JSON.stringify(testCase.schema, null, " "), () => { + let annotator: Annotator; + let id: string; - annotator = await annotate(id); - }); + beforeAll(async () => { + id = `${host}/${encodeURIComponent(testCase.description)}`; + registerSchema(testCase.schema, id, dialect); - afterAll(() => { - unregisterSchema(id); - }); + annotator = await annotate(id); + }); - suite.subjects.forEach((subject) => { - describe("Instance: " + JSON.stringify(subject.instance), () => { - let instance: JsonNode; + afterAll(() => { + unregisterSchema(id); + }); - beforeEach(() => { - // TODO: What's wrong with the type? - instance = annotator(subject.instance); // eslint-disable-line @typescript-eslint/no-unsafe-assignment - }); + for (const subject of testCase.tests) { + describe("Instance: " + JSON.stringify(subject.instance), () => { + let instance: JsonNode; - subject.assertions.forEach((assertion) => { - it(`${assertion.keyword} annotations at '${assertion.location}' should be ${JSON.stringify(assertion.expected)}`, () => { - const dialect: string | undefined = suite.schema.$schema ? toAbsoluteIri(suite.schema.$schema as string) : undefined; - const subject = Instance.get(assertion.location, instance); - const annotations = subject ? Instance.annotation(subject, assertion.keyword, dialect) : []; - expect(annotations).to.eql(assertion.expected); + beforeEach(() => { + // TODO: What's wrong with the type? + instance = annotator(subject.instance); // eslint-disable-line @typescript-eslint/no-unsafe-assignment }); + + for (const assertion of subject.assertions) { + test(`${assertion.keyword} annotations at '${assertion.location}' should be ${JSON.stringify(assertion.expected)}`, () => { + const dialect: string | undefined = testCase.schema.$schema ? toAbsoluteIri(testCase.schema.$schema as string) : undefined; + const subject = Instance.get(`#${assertion.location}`, instance); + const annotations = subject ? Instance.annotation(subject, assertion.keyword, dialect) : []; + expect(annotations).to.eql(Object.values(assertion.expected)); + }); + } }); - }); + } }); - }); + } }); - }); + }); +}; + +describe("annotations", () => { + testRunner(9999, "https://json-schema.org/validation"); + testRunner(2020, "https://json-schema.org/draft/2020-12/schema"); + testRunner(2019, "https://json-schema.org/draft/2019-09/schema"); + testRunner(7, "http://json-schema.org/draft-07/schema"); + testRunner(6, "http://json-schema.org/draft-06/schema"); + testRunner(4, "http://json-schema.org/draft-04/schema"); }); diff --git a/annotations/test-utils.d.ts b/annotations/test-utils.d.ts new file mode 100644 index 0000000..da8693c --- /dev/null +++ b/annotations/test-utils.d.ts @@ -0,0 +1 @@ +export const isCompatible: (compatibility: string | undefined, versionUnderTest: number) => boolean; diff --git a/annotations/test-utils.js b/annotations/test-utils.js new file mode 100644 index 0000000..5841ca7 --- /dev/null +++ b/annotations/test-utils.js @@ -0,0 +1,38 @@ +export const isCompatible = (compatibility, versionUnderTest) => { + if (compatibility === undefined) { + return true; + } + + const constraints = compatibility.split(","); + for (const constraint of constraints) { + const matches = /(?<=|>=|=)?(?\d+)/.exec(constraint); + if (!matches) { + throw Error(`Invalid compatibility string: ${compatibility}`); + } + + const operator = matches[1] ?? ">="; + const version = parseInt(matches[2], 10); + + switch (operator) { + case ">=": + if (versionUnderTest < version) { + return false; + } + break; + case "<=": + if (versionUnderTest > version) { + return false; + } + break; + case "=": + if (versionUnderTest !== version) { + return false; + } + break; + default: + throw Error(`Unsupported contraint operator: ${operator}`); + } + } + + return true; +}; diff --git a/annotations/tests/applicators.json b/annotations/tests/applicators.json deleted file mode 100644 index bdc51e2..0000000 --- a/annotations/tests/applicators.json +++ /dev/null @@ -1,375 +0,0 @@ -[ - { - "title": "`properties`, `patternProperties`, and `additionalProperties`", - "schema": { - "properties": { - "foo": { "title": "Foo" } - }, - "patternProperties": { - "^a": { "title": "Bar" } - }, - "additionalProperties": { "title": "Baz" } - }, - "subjects": [ - { - "instance": {}, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": [] - }, - { - "location": "#/apple", - "keyword": "title", - "expected": [] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": [] - } - ] - }, - { - "instance": { - "foo": {}, - "apple": {}, - "baz": {} - }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Foo"] - }, - { - "location": "#/apple", - "keyword": "title", - "expected": ["Bar"] - }, - { - "location": "#/baz", - "keyword": "title", - "expected": ["Baz"] - } - ] - } - ] - }, - { - "title": "`propertyNames`", - "schema": { - "propertyNames": { - "const": "foo", - "title": "Foo" - } - }, - "subjects": [ - { - "instance": { "foo": 42 }, - "assertions": [ - { - "location": "#", - "keyword": "propertyNames", - "expected": [] - }, - { - "location": "#/foo", - "keyword": "title", - "expected": [] - } - ] - } - ] - }, - { - "title": "`prefixItems` and `items`", - "schema": { - "prefixItems": [{ "title": "Foo" }], - "items": { "title": "Bar" } - }, - "subjects": [ - { - "instance": ["foo", "bar"], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Foo"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Bar"] - }, - { - "location": "#/2", - "keyword": "title", - "expected": [] - } - ] - } - ] - }, - { - "title": "`contains`", - "schema": { - "contains": { - "type": "number", - "title": "Foo" - } - }, - "subjects": [ - { - "instance": ["foo", 42, true], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": [] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Foo"] - }, - { - "location": "#/2", - "keyword": "title", - "expected": [] - }, - { - "location": "#/3", - "keyword": "title", - "expected": [] - } - ] - } - ] - }, - { - "title": "`allOf`", - "schema": { - "allOf": [ - { "title": "Foo" }, - { "title": "Bar" } - ] - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "allOf", - "expected": [] - }, - { - "location": "#", - "keyword": "title", - "expected": ["Bar", "Foo"] - } - ] - } - ] - }, - { - "title": "`anyOf`", - "schema": { - "anyOf": [ - { - "type": "integer", - "title": "Foo" - }, - { - "type": "number", - "title": "Bar" - } - ] - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "anyOf", - "expected": [] - }, - { - "location": "#", - "keyword": "title", - "expected": ["Bar", "Foo"] - } - ] - }, - { - "instance": 4.2, - "assertions": [ - { - "location": "#", - "keyword": "title", - "expected": ["Bar"] - } - ] - } - ] - }, - { - "title": "`oneOf`", - "schema": { - "oneOf": [ - { - "type": "string", - "title": "Foo" - }, - { - "type": "number", - "title": "Bar" - } - ] - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "oneOf", - "expected": [] - }, - { - "location": "#", - "keyword": "title", - "expected": ["Foo"] - } - ] - }, - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "title", - "expected": ["Bar"] - } - ] - } - ] - }, - { - "title": "`not`", - "schema": { - "title": "Foo", - "not": { - "not": { "title": "Bar" } - } - }, - "subjects": [ - { - "instance": {}, - "assertions": [ - { - "location": "#", - "keyword": "not", - "expected": [] - }, - { - "location": "#", - "keyword": "title", - "expected": ["Foo"] - } - ] - } - ] - }, - { - "title": "`dependentSchemas`", - "schema": { - "dependentSchemas": { - "foo": { "title": "Foo" } - } - }, - "subjects": [ - { - "instance": { "foo": 42 }, - "assertions": [ - { - "keyword": "dependentSchemas", - "location": "#", - "expected": [] - }, - { - "keyword": "title", - "location": "#", - "expected": ["Foo"] - } - ] - }, - { - "instance": { "foo": 42 }, - "assertions": [ - { - "keyword": "title", - "location": "#/foo", - "expected": [] - } - ] - } - ] - }, - { - "title": "`if`, `then`, and `else`", - "schema": { - "if": { - "title": "If", - "type": "string" - }, - "then": { "title": "Then" }, - "else": { "title": "Else" } - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "if", - "expected": [] - }, - { - "location": "#", - "keyword": "then", - "expected": [] - }, - { - "location": "#", - "keyword": "title", - "expected": ["Then", "If"] - } - ] - }, - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "if", - "expected": [] - }, - { - "location": "#", - "keyword": "else", - "expected": [] - }, - { - "location": "#", - "keyword": "title", - "expected": ["Else"] - } - ] - } - ] - } -] diff --git a/annotations/tests/content.json b/annotations/tests/content.json deleted file mode 100644 index 5ce8abf..0000000 --- a/annotations/tests/content.json +++ /dev/null @@ -1,107 +0,0 @@ -[ - { - "title": "`contentMediaType` is an annotation for string instances", - "schema": { - "contentMediaType": "application/json" - }, - "subjects": [ - { - "instance": "{ \"foo\": \"bar\" }", - "assertions": [ - { - "location": "#", - "keyword": "contentMediaType", - "expected": ["application/json"] - } - ] - }, - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "contentMediaType", - "expected": [] - } - ] - } - ] - }, - { - "title": "`contentEncoding` is an annotation for string instances", - "schema": { - "contentEncoding": "base64" - }, - "subjects": [ - { - "instance": "SGVsbG8gZnJvbSBKU09OIFNjaGVtYQ==", - "assertions": [ - { - "location": "#", - "keyword": "contentEncoding", - "expected": ["base64"] - } - ] - }, - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "contentEncoding", - "expected": [] - } - ] - } - ] - }, - { - "title": "`contentSchema` is an annotation for string instances", - "schema": { - "$id": "https://annotations.json-schema.org/test/contentSchema-is-an-annotation", - "contentMediaType": "application/json", - "contentSchema": { "type": "number" } - }, - "subjects": [ - { - "instance": "42", - "assertions": [ - { - "location": "#", - "keyword": "contentSchema", - "expected": ["https://annotations.json-schema.org/test/contentSchema-is-an-annotation#/contentSchema"] - } - ] - }, - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "contentSchema", - "expected": [] - } - ] - } - ] - }, - { - "title": "`contentSchema` requires `contentMediaType`", - "schema": { - "$id": "https://annotations.json-schema.org/test/contentSchema-is-an-annotation", - "contentSchema": { "type": "number" } - }, - "subjects": [ - { - "instance": "42", - "assertions": [ - { - "location": "#", - "keyword": "contentSchema", - "expected": [] - } - ] - } - ] - } -] diff --git a/annotations/tests/core.json b/annotations/tests/core.json deleted file mode 100644 index e8fd727..0000000 --- a/annotations/tests/core.json +++ /dev/null @@ -1,33 +0,0 @@ -[ - { - "title": "`$ref` and `$defs`", - "schema": { - "$ref": "#/$defs/foo", - "$defs": { - "foo": { "title": "Foo" } - } - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "$ref", - "expected": [] - }, - { - "location": "#", - "keyword": "$defs", - "expected": [] - }, - { - "location": "#", - "keyword": "title", - "expected": ["Foo"] - } - ] - } - ] - } -] diff --git a/annotations/tests/format.json b/annotations/tests/format.json deleted file mode 100644 index 8ba6979..0000000 --- a/annotations/tests/format.json +++ /dev/null @@ -1,20 +0,0 @@ -[ - { - "title": "`format` is an annotation", - "schema": { - "format": "email" - }, - "subjects": [ - { - "instance": "foo@bar.com", - "assertions": [ - { - "location": "#", - "keyword": "format", - "expected": ["email"] - } - ] - } - ] - } -] diff --git a/annotations/tests/meta-data.json b/annotations/tests/meta-data.json deleted file mode 100644 index 30dc386..0000000 --- a/annotations/tests/meta-data.json +++ /dev/null @@ -1,128 +0,0 @@ -[ - { - "title": "`title` is an annotation", - "schema": { - "title": "Foo" - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "title", - "expected": ["Foo"] - } - ] - } - ] - }, - { - "title": "`description` is an annotation", - "schema": { - "description": "Foo" - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "description", - "expected": ["Foo"] - } - ] - } - ] - }, - { - "title": "`default` is an annotation", - "schema": { - "default": "Foo" - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "default", - "expected": ["Foo"] - } - ] - } - ] - }, - { - "title": "`deprecated` is an annotation", - "schema": { - "deprecated": true - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "deprecated", - "expected": [true] - } - ] - } - ] - }, - { - "title": "`readOnly` is an annotation", - "schema": { - "readOnly": true - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "readOnly", - "expected": [true] - } - ] - } - ] - }, - { - "title": "`writeOnly` is an annotation", - "schema": { - "writeOnly": true - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "writeOnly", - "expected": [true] - } - ] - } - ] - }, - { - "title": "`examples` is an annotation", - "schema": { - "examples": ["Foo", "Bar"] - }, - "subjects": [ - { - "instance": "Foo", - "assertions": [ - { - "location": "#", - "keyword": "examples", - "expected": [["Foo", "Bar"]] - } - ] - } - ] - } -] diff --git a/annotations/tests/pointer.json b/annotations/tests/pointer.json deleted file mode 100644 index 484d21c..0000000 --- a/annotations/tests/pointer.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "title": "annotation pointers are properly decoded", - "schema": { - "properties": { - "paths": { - "properties": { - "/pets/{id}": { - "title": "path", - "properties": { - "get": { - "title": "method" - } - } - } - } - } - } - }, - "subjects": [ - { - "instance": { "paths": { "/pets/{id}": {} } }, - "assertions": [ - { - "location": "#/paths/~1pets~1{id}", - "keyword": "title", - "expected": ["path"] - } - ] - }, - { - "instance": { "paths": { "/pets/{id}": {} } }, - "assertions": [ - { - "location": "#/paths/~1pets~1%7Bid%7D", - "keyword": "title", - "expected": ["path"] - } - ] - }, - { - "instance": { "paths": { "/pets/{id}": { "get": {} } } }, - "assertions": [ - { - "location": "#/paths/~1pets~1%7Bid%7D/get", - "keyword": "title", - "expected": ["method"] - } - ] - } - ] - } -] diff --git a/annotations/tests/unevaluated.json b/annotations/tests/unevaluated.json deleted file mode 100644 index 9733c1a..0000000 --- a/annotations/tests/unevaluated.json +++ /dev/null @@ -1,557 +0,0 @@ -[ - { - "title": "`unevaluatedProperties` alone", - "schema": { - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "foo": 42, "bar": 24 }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Unevaluated"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedProperties` with `properties`", - "schema": { - "properties": { - "foo": { "title": "Evaluated" } - }, - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "foo": 42, "bar": 24 }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedProperties` with `patternProperties`", - "schema": { - "patternProperties": { - "^a": { "title": "Evaluated" } - }, - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "apple": 42, "bar": 24 }, - "assertions": [ - { - "location": "#/apple", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedProperties` with `additionalProperties`", - "schema": { - "additionalProperties": { "title": "Evaluated" }, - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "foo": 42, "bar": 24 }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Evaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedProperties` with `dependentSchemas`", - "schema": { - "dependentSchemas": { - "foo": { - "properties": { - "bar": { "title": "Evaluated" } - } - } - }, - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "foo": 42, "bar": 24 }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Unevaluated"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Evaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedProperties` with `if`, `then`, and `else`", - "schema": { - "if": { - "properties": { - "foo": { - "type": "string", - "title": "If" - } - } - }, - "then": { - "properties": { - "foo": { "title": "Then" } - } - }, - "else": { - "properties": { - "foo": { "title": "Else" } - } - }, - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "foo": "", "bar": 42 }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Then", "If"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - }, - { - "instance": { "foo": 42, "bar": "" }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Else"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedProperties` with `allOf`", - "schema": { - "allOf": [ - { - "properties": { - "foo": { "title": "Evaluated" } - } - } - ], - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "foo": 42, "bar": 24 }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedProperties` with `anyOf`", - "schema": { - "anyOf": [ - { - "properties": { - "foo": { "title": "Evaluated" } - } - } - ], - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "foo": 42, "bar": 24 }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedProperties` with `oneOf`", - "schema": { - "oneOf": [ - { - "properties": { - "foo": { "title": "Evaluated" } - } - } - ], - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "foo": 42, "bar": 24 }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedProperties` with `not`", - "schema": { - "not": { - "not": { - "properties": { - "foo": { "title": "Evaluated" } - } - } - }, - "unevaluatedProperties": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": { "foo": 42, "bar": 24 }, - "assertions": [ - { - "location": "#/foo", - "keyword": "title", - "expected": ["Unevaluated"] - }, - { - "location": "#/bar", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedItems` alone", - "schema": { - "unevaluatedItems": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": [42, 24], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Unevaluated"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedItems` with `prefixItems`", - "schema": { - "prefixItems": [{ "title": "Evaluated" }], - "unevaluatedItems": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": [42, 24], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedItems` with `contains`", - "schema": { - "contains": { - "type": "string", - "title": "Evaluated" - }, - "unevaluatedItems": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": ["foo", 42], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedItems` with `if`, `then`, and `else`", - "schema": { - "if": { - "prefixItems": [ - { - "type": "string", - "title": "If" - } - ] - }, - "then": { - "prefixItems": [ - { "title": "Then" } - ] - }, - "else": { - "prefixItems": [ - { "title": "Else" } - ] - }, - "unevaluatedItems": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": ["", 42], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Then", "If"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - }, - { - "instance": [42, ""], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Else"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedItems` with `allOf`", - "schema": { - "allOf": [ - { - "prefixItems": [ - { "title": "Evaluated" } - ] - } - ], - "unevaluatedItems": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": [42, 24], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedItems` with `anyOf`", - "schema": { - "anyOf": [ - { - "prefixItems": [ - { "title": "Evaluated" } - ] - } - ], - "unevaluatedItems": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": [42, 24], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedItems` with `oneOf`", - "schema": { - "oneOf": [ - { - "prefixItems": [ - { "title": "Evaluated" } - ] - } - ], - "unevaluatedItems": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": [42, 24], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Evaluated"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - }, - { - "title": "`unevaluatedItems` with `not`", - "schema": { - "not": { - "not": { - "prefixItems": [ - { "title": "Evaluated" } - ] - } - }, - "unevaluatedItems": { "title": "Unevaluated" } - }, - "subjects": [ - { - "instance": [42, 24], - "assertions": [ - { - "location": "#/0", - "keyword": "title", - "expected": ["Unevaluated"] - }, - { - "location": "#/1", - "keyword": "title", - "expected": ["Unevaluated"] - } - ] - } - ] - } -] diff --git a/annotations/tests/unknown.json b/annotations/tests/unknown.json deleted file mode 100644 index 93033ea..0000000 --- a/annotations/tests/unknown.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "title": "`unknownKeyword` is an annotation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unknownKeyword": "Foo" - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "unknownKeyword", - "expected": ["Foo"] - } - ] - } - ] - } -] diff --git a/annotations/tests/validation.json b/annotations/tests/validation.json deleted file mode 100644 index 5488ba0..0000000 --- a/annotations/tests/validation.json +++ /dev/null @@ -1,328 +0,0 @@ -[ - { - "title": "`const` doesn't produce annotations", - "schema": { - "const": "foo" - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "const", - "expected": [] - } - ] - } - ] - }, - { - "title": "`dependentRequired` doesn't produce annotations", - "schema": { - "dependentRequired": { - "foo": ["bar"] - } - }, - "subjects": [ - { - "instance": { "foo": 1, "bar": 2 }, - "assertions": [ - { - "location": "#", - "keyword": "dependentRequired", - "expected": [] - } - ] - } - ] - }, - { - "title": "`enum` doesn't produce annotations", - "schema": { - "enum": ["foo"] - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "enum", - "expected": [] - } - ] - } - ] - }, - { - "title": "`exclusiveMaximum` doesn't produce annotations", - "schema": { - "exclusiveMaximum": 50 - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "exclusiveMaximum", - "expected": [] - } - ] - } - ] - }, - { - "title": "`exclusiveMinimum` doesn't produce annotations", - "schema": { - "exclusiveMinimum": 5 - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "exclusiveMinimum", - "expected": [] - } - ] - } - ] - }, - { - "title": "`maxItems` doesn't produce annotations", - "schema": { - "maxItems": 42 - }, - "subjects": [ - { - "instance": ["foo"], - "assertions": [ - { - "location": "#", - "keyword": "maxItems", - "expected": [] - } - ] - } - ] - }, - { - "title": "`maxLength` doesn't produce annotations", - "schema": { - "maxLength": 42 - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "maxLength", - "expected": [] - } - ] - } - ] - }, - { - "title": "`maxProperties` doesn't produce annotations", - "schema": { - "maxProperties": 42 - }, - "subjects": [ - { - "instance": { "foo": 42 }, - "assertions": [ - { - "location": "#", - "keyword": "maxProperties", - "expected": [] - } - ] - } - ] - }, - { - "title": "`maximum` doesn't produce annotations", - "schema": { - "maximum": 50 - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "maximum", - "expected": [] - } - ] - } - ] - }, - { - "title": "`minItems` doesn't produce annotations", - "schema": { - "minItems": 2 - }, - "subjects": [ - { - "instance": ["a", "b"], - "assertions": [ - { - "location": "#", - "keyword": "minItems", - "expected": [] - } - ] - } - ] - }, - { - "title": "`minLength` doesn't produce annotations", - "schema": { - "minLength": 2 - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "minLength", - "expected": [] - } - ] - } - ] - }, - { - "title": "`minProperties` doesn't produce annotations", - "schema": { - "minProperties": 2 - }, - "subjects": [ - { - "instance": { "foo": 42, "bar": 24 }, - "assertions": [ - { - "location": "#", - "keyword": "minProperties", - "expected": [] - } - ] - } - ] - }, - { - "title": "`minimum` doesn't produce annotations", - "schema": { - "minimum": 42 - }, - "subjects": [ - { - "instance": 50, - "assertions": [ - { - "location": "#", - "keyword": "minimum", - "expected": [] - } - ] - } - ] - }, - { - "title": "`multipleOf` doesn't produce annotations", - "schema": { - "multipleOf": 2 - }, - "subjects": [ - { - "instance": 42, - "assertions": [ - { - "location": "#", - "keyword": "multipleOf", - "expected": [] - } - ] - } - ] - }, - { - "title": "`pattern` doesn't produce annotations", - "schema": { - "pattern": ".*" - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "pattern", - "expected": [] - } - ] - } - ] - }, - { - "title": "`required` doesn't produce annotations", - "schema": { - "required": ["foo"] - }, - "subjects": [ - { - "instance": { "foo": 42 }, - "assertions": [ - { - "location": "#", - "keyword": "required", - "expected": [] - } - ] - } - ] - }, - { - "title": "`type` doesn't produce annotations", - "schema": { - "type": "string" - }, - "subjects": [ - { - "instance": "foo", - "assertions": [ - { - "location": "#", - "keyword": "type", - "expected": [] - } - ] - } - ] - }, - { - "title": "`uniqueItems` doesn't produce annotations", - "schema": { - "uniqueItems": true - }, - "subjects": [ - { - "instance": ["foo", "bar"], - "assertions": [ - { - "location": "#", - "keyword": "uniqueItems", - "expected": [] - } - ] - } - ] - } -] diff --git a/lib/keywords/contentSchema.js b/lib/keywords/contentSchema.js index 17cc3d9..9531442 100644 --- a/lib/keywords/contentSchema.js +++ b/lib/keywords/contentSchema.js @@ -1,4 +1,3 @@ -import { canonicalUri } from "../schema.js"; import * as Browser from "@hyperjump/browser"; import * as Instance from "../instance.js"; import { getKeywordName } from "../keywords.js"; @@ -9,13 +8,17 @@ const id = "https://json-schema.org/keyword/contentSchema"; const compile = async (contentSchema, _ast, parentSchema) => { const contentMediaTypeKeyword = getKeywordName(contentSchema.document.dialectId, "https://json-schema.org/keyword/contentMediaType"); const contentMediaType = await Browser.step(contentMediaTypeKeyword, parentSchema); - return Browser.value(contentMediaType) && canonicalUri(contentSchema); + if (Browser.value(contentMediaType) === undefined) { + return; + } + + return Browser.value(contentSchema); }; const interpret = () => true; const annotation = (contentSchema, instance) => { - if (Instance.typeOf(instance) !== "string") { + if (!contentSchema || Instance.typeOf(instance) !== "string") { return; } From 8e9d8830fd6ceabe0a3e4a67734ebf354ba924b5 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Wed, 14 May 2025 13:14:27 -0700 Subject: [PATCH 27/40] Basic output fix for dependencies --- draft-04/dependencies.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/draft-04/dependencies.js b/draft-04/dependencies.js index 79f53af..60e96ce 100644 --- a/draft-04/dependencies.js +++ b/draft-04/dependencies.js @@ -16,21 +16,21 @@ const compile = (schema, ast) => pipe( ); const interpret = (dependencies, instance, context) => { - const value = Instance.value(instance); + if (Instance.typeOf(instance) !== "object") { + return true; + } - return Instance.typeOf(instance) !== "object" || dependencies.every(([propertyName, dependency]) => { - if (!(propertyName in value)) { + return dependencies.every(([propertyName, dependency]) => { + if (!Instance.has(propertyName, instance)) { return true; } if (Array.isArray(dependency)) { - return dependency.every((key) => key in value); + return dependency.every((key) => Instance.has(key, instance)); } else { return Validation.interpret(dependency, instance, context); } }); }; -const simpleApplicator = true; - -export default { id, compile, interpret, simpleApplicator }; +export default { id, compile, interpret }; From a16960f5e08c154e08c5b0fc9cec196352876ad4 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Wed, 14 May 2025 13:27:54 -0700 Subject: [PATCH 28/40] 1.14.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 68efccd..4d170ef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.14.0", + "version": "1.14.1", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From 232714498d75e9444938e3d9e65e79af078ffb85 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Fri, 6 Jun 2025 14:30:47 -0700 Subject: [PATCH 29/40] Add the ability to pass EvaluationPlugins to the validate function --- README.md | 75 ++++++++++++++++++++--- annotations/index.d.ts | 8 +-- annotations/index.js | 44 +++++-------- bundle/generate-snapshots.js | 8 ++- bundle/test-suite.spec.ts | 10 +-- draft-2020-12/dynamicRef.js | 4 -- lib/core.js | 26 +++++--- lib/evaluation-plugins/annotations.js | 15 +++-- lib/evaluation-plugins/basic-output.js | 15 +++-- lib/evaluation-plugins/detailed-output.js | 15 +++-- lib/experimental.d.ts | 37 +++++++---- lib/experimental.js | 6 +- lib/index.d.ts | 10 ++- lib/keywords/dynamicRef.js | 4 -- lib/keywords/unevaluatedItems.js | 42 +++++++------ lib/keywords/unevaluatedProperties.js | 42 +++++++------ lib/keywords/validation.js | 8 +-- 17 files changed, 230 insertions(+), 139 deletions(-) diff --git a/README.md b/README.md index 8538302..f965947 100644 --- a/README.md +++ b/README.md @@ -212,11 +212,11 @@ Schema, such as `@hyperjump/json-schema/draft-2020-12`. Load a schema manually rather than fetching it from the filesystem or over the network. Any schema already registered with the same identifier will be replaced with no warning. -* **validate**: (schemaURI: string, instance: any, outputFormat: OutputFormat = FLAG) => Promise\ +* **validate**: (schemaURI: string, instance: any, outputFormat: ValidationOptions | OutputFormat = FLAG) => Promise\ Validate an instance against a schema. This function is curried to allow compiling the schema once and applying it to multiple instances. -* **validate**: (schemaURI: string) => Promise\<(instance: any, outputFormat: OutputFormat = FLAG) => OutputUnit> +* **validate**: (schemaURI: string) => Promise\<(instance: any, outputFormat: ValidationOptions | OutputFormat = FLAG) => OutputUnit> Compiling a schema to a validation function. * **FLAG**: "FLAG" @@ -255,6 +255,10 @@ The following types are used in the above definitions Output is an experimental feature of the JSON Schema specification. There may be additional fields present in the OutputUnit, but only the `valid` property should be considered part of the Stable API. +* **ValidationOptions**: + + * outputFormat?: OutputFormat + * plugins?: EvaluationPlugin[] ## Bundling @@ -504,6 +508,57 @@ registerSchema({ const output = await validate("https://example.com/schema1", 42); // Expect InvalidSchemaError ``` +### EvaluationPlugins + +EvaluationPlugins allow you to hook into the validation process for various +purposes. There are hooks for before an after schema evaluation and before and +after keyword evaluation. (See the API section for the full interface) The +following is a simple example to record all the schema locations that were +evaluated. This could be used as part of a solution for determining test +coverage for a schema. + +```JavaScript +import { registerSchema, validate } from "@hyperjump/json-schema/draft-2020-12"; +import { BASIC } from "@hyperjump/json-schema/experimental.js"; + +class EvaluatedKeywordsPlugin { + constructor() { + this.schemaLocations = new Set(); + } + + beforeKeyword([, schemaUri]) { + this.schemaLocations.add(schemaUri); + } +} + +registerSchema({ + $schema: "https://json-schema.org/draft/2020-12/schema", + type: "object", + properties: { + foo: { type: "number" }, + bar: { type: "boolean" } + }, + required: ["foo"] +}, "https://schemas.hyperjump.io/main"); + +const evaluatedKeywordPlugin = new EvaluatedKeywordsPlugin(); + +await validate("https://schemas.hyperjump.io/main", { foo: 42 }, { + outputFormat: BASIC, + plugins: [evaluatedKeywordPlugin] +}); + +console.log(evaluatedKeywordPlugin.schemaLocations); +// Set(4) { +// 'https://schemas.hyperjump.io/main#/type', +// 'https://schemas.hyperjump.io/main#/properties', +// 'https://schemas.hyperjump.io/main#/properties/foo/type', +// 'https://schemas.hyperjump.io/main#/required' +// } + +// NOTE: #/properties/bar is not in the list because the instance doesn't include that property. +``` + ### API These are available from the `@hyperjump/json-schema/experimental` export. @@ -543,15 +598,13 @@ These are available from the `@hyperjump/json-schema/experimental` export. function to return the annotation. * plugin?: EvaluationPlugin + If the keyword needs to track state during the evaluation process, you + can include an EvaluationPlugin that will get added only when this + keyword is present in the schema. + * **ValidationContext**: object * ast: AST * plugins: EvaluationPlugins[] - - * **EvaluationPlugin**: object - * beforeSchema(url: string, instance: JsonNode, context: Context): void - * beforeKeyword(keywordNode: Node, instance: JsonNode, context: Context, schemaContext: Context, keyword: Keyword): void - * afterKeyword(keywordNode: Node, instance: JsonNode, context: Context, valid: boolean, schemaContext: Context, keyword: Keyword): void - * afterSchema(url: string, instance: JsonNode, context: Context, valid: boolean): void * **defineVocabulary**: (id: string, keywords: { [keyword: string]: string }) => void Define a vocabulary that maps keyword name to keyword URIs defined using @@ -630,6 +683,12 @@ These are available from the `@hyperjump/json-schema/experimental` export. include annotations or human readable error messages. The output can be processed to create human readable error messages as needed. +* **EvaluationPlugin**: object + * beforeSchema?(url: string, instance: JsonNode, context: Context): void + * beforeKeyword?(keywordNode: CompiledSchemaNode, instance: JsonNode, context: Context, schemaContext: Context, keyword: Keyword): void + * afterKeyword?(keywordNode: CompiledSchemaNode, instance: JsonNode, context: Context, valid: boolean, schemaContext: Context, keyword: Keyword): void + * afterSchema?(url: string, instance: JsonNode, context: Context, valid: boolean): void + ## Instance API (experimental) These functions are available from the diff --git a/annotations/index.d.ts b/annotations/index.d.ts index 080dd2d..dd28dc6 100644 --- a/annotations/index.d.ts +++ b/annotations/index.d.ts @@ -1,18 +1,18 @@ -import type { OutputFormat, OutputUnit } from "../lib/index.js"; +import type { OutputFormat, OutputUnit, ValidationOptions } from "../lib/index.js"; import type { CompiledSchema } from "../lib/experimental.js"; import type { JsonNode } from "../lib/json-node.js"; import type { Json } from "@hyperjump/json-pointer"; export const annotate: ( - (schemaUrl: string, value: Json, outputFormat?: OutputFormat) => Promise + (schemaUrl: string, value: Json, options?: OutputFormat | ValidationOptions) => Promise ) & ( (schemaUrl: string) => Promise ); -export type Annotator = (value: Json, outputFormat?: OutputFormat) => JsonNode; +export type Annotator = (value: Json, options?: OutputFormat | ValidationOptions) => JsonNode; -export const interpret: (compiledSchema: CompiledSchema, value: JsonNode, outputFormat?: OutputFormat) => JsonNode; +export const interpret: (compiledSchema: CompiledSchema, value: JsonNode, options?: OutputFormat | ValidationOptions) => JsonNode; export class ValidationError extends Error { public output: OutputUnit; diff --git a/annotations/index.js b/annotations/index.js index fc7a0fb..82c3d7f 100644 --- a/annotations/index.js +++ b/annotations/index.js @@ -1,50 +1,36 @@ -import { FLAG } from "../lib/index.js"; import { ValidationError } from "./validation-error.js"; import { getSchema, compile, + interpret as validate, BASIC, - DETAILED, - annotationsPlugin, - basicOutputPlugin, - detailedOutputPlugin + AnnotationsPlugin } from "../lib/experimental.js"; -import Validation from "../lib/keywords/validation.js"; import * as Instance from "../lib/instance.js"; -export const annotate = async (schemaUri, json = undefined, outputFormat = undefined) => { +export const annotate = async (schemaUri, json = undefined, options = undefined) => { const schema = await getSchema(schemaUri); const compiled = await compile(schema); - const interpretAst = (json, outputFormat) => interpret(compiled, Instance.fromJs(json), outputFormat); + const interpretAst = (json, options) => interpret(compiled, Instance.fromJs(json), options); - return json === undefined ? interpretAst : interpretAst(json, outputFormat); + return json === undefined ? interpretAst : interpretAst(json, options); }; -export const interpret = ({ ast, schemaUri }, instance, outputFormat = BASIC) => { - const context = { ast, plugins: [annotationsPlugin, ...ast.plugins] }; - - switch (outputFormat) { - case FLAG: - break; - case BASIC: - context.plugins.push(basicOutputPlugin); - break; - case DETAILED: - context.plugins.push(detailedOutputPlugin); - break; - default: - throw Error(`Unsupported output format '${outputFormat}'`); - } +export const interpret = (compiledSchema, instance, options = BASIC) => { + const annotationsPlugin = new AnnotationsPlugin(); + const plugins = options.plugins ?? []; - const valid = Validation.interpret(schemaUri, instance, context); + const output = validate(compiledSchema, instance, { + outputFormat: typeof options === "string" ? options : options.outputFormat ?? BASIC, + plugins: [annotationsPlugin, ...plugins] + }); - if (!valid) { - const result = !valid && "errors" in context ? { valid, errors: context.errors } : { valid }; - throw new ValidationError(result); + if (!output.valid) { + throw new ValidationError(output); } - for (const annotation of context.annotations) { + for (const annotation of annotationsPlugin.annotations) { const node = Instance.get(annotation.instanceLocation, instance); const keyword = annotation.keyword; if (!node.annotations[keyword]) { diff --git a/bundle/generate-snapshots.js b/bundle/generate-snapshots.js index f8dc906..e558e38 100644 --- a/bundle/generate-snapshots.js +++ b/bundle/generate-snapshots.js @@ -1,6 +1,6 @@ import { writeFile, mkdir, rm } from "node:fs/promises"; import { isCompatible, md5, loadSchemas, testSuite, unloadSchemas } from "./test-utils.js"; -import { annotationsPlugin, compile, detailedOutputPlugin, getSchema, Validation } from "../lib/experimental.js"; +import { AnnotationsPlugin, compile, DetailedOutputPlugin, getSchema, Validation } from "../lib/experimental.js"; import "../stable/index.js"; import "../draft-2020-12/index.js"; import "../draft-2019-09/index.js"; @@ -26,6 +26,8 @@ const snapshotGenerator = async (version, dialect) => { const schema = await getSchema(mainSchemaUri); const { ast, schemaUri } = await compile(schema); + const annotationsPlugin = new AnnotationsPlugin(); + const detailedOutputPlugin = new DetailedOutputPlugin(); const instance = Instance.fromJs(test.instance); const context = { ast, plugins: [detailedOutputPlugin, annotationsPlugin, ...ast.plugins] }; @@ -33,8 +35,8 @@ const snapshotGenerator = async (version, dialect) => { const expectedOutput = { valid, - errors: context.errors, - annotations: context.annotations + errors: detailedOutputPlugin.errors, + annotations: annotationsPlugin.annotations }; unloadSchemas(testCase, mainSchemaUri); diff --git a/bundle/test-suite.spec.ts b/bundle/test-suite.spec.ts index fa02531..ef229b7 100644 --- a/bundle/test-suite.spec.ts +++ b/bundle/test-suite.spec.ts @@ -3,9 +3,9 @@ import { describe, it, expect, beforeAll, afterAll } from "vitest"; import { isCompatible, md5, loadSchemas, unloadSchemas, testSuite } from "./test-utils.js"; import { registerSchema, unregisterSchema } from "../lib/index.js"; import { - annotationsPlugin, + AnnotationsPlugin, compile, - detailedOutputPlugin, + DetailedOutputPlugin, getKeywordName, getSchema, Validation @@ -65,6 +65,8 @@ const testRunner = (version: number, dialect: string) => { const schema = await getSchema(mainSchemaUri); const { ast, schemaUri } = await compile(schema); + const annotationsPlugin = new AnnotationsPlugin(); + const detailedOutputPlugin = new DetailedOutputPlugin(); const instance = Instance.fromJs(test.instance); const context = { ast, @@ -74,8 +76,8 @@ const testRunner = (version: number, dialect: string) => { const output = { valid, - errors: context.errors, - annotations: context.annotations + errors: detailedOutputPlugin.errors, + annotations: annotationsPlugin.annotations }; const testId = md5(`${version}|${dialect}|${testCase.description}|${testIndex}`); diff --git a/draft-2020-12/dynamicRef.js b/draft-2020-12/dynamicRef.js index f23b246..a5f2581 100644 --- a/draft-2020-12/dynamicRef.js +++ b/draft-2020-12/dynamicRef.js @@ -32,10 +32,6 @@ const plugin = { }, beforeKeyword(_url, _instance, context, schemaContext) { context.dynamicAnchors = schemaContext.dynamicAnchors; - }, - afterKeyword() { - }, - afterSchema() { } }; diff --git a/lib/core.js b/lib/core.js index e02fdc8..51785a6 100644 --- a/lib/core.js +++ b/lib/core.js @@ -11,19 +11,19 @@ import { InvalidSchemaError } from "./invalid-schema-error.js"; import { getSchema, registerSchema, unregisterSchema as schemaUnregister } from "./schema.js"; import { getKeywordName } from "./keywords.js"; import Validation from "./keywords/validation.js"; -import { basicOutputPlugin } from "./evaluation-plugins/basic-output.js"; -import { detailedOutputPlugin } from "./evaluation-plugins/detailed-output.js"; +import { BasicOutputPlugin } from "./evaluation-plugins/basic-output.js"; +import { DetailedOutputPlugin } from "./evaluation-plugins/detailed-output.js"; export const FLAG = "FLAG", BASIC = "BASIC", DETAILED = "DETAILED"; setMetaSchemaOutputFormat(FLAG); -export const validate = async (url, value = undefined, outputFormat = undefined) => { +export const validate = async (url, value = undefined, options = undefined) => { const schema = await getSchema(url); const compiled = await compile(schema); - const interpretAst = (value, outputFormat) => interpret(compiled, Instance.fromJs(value), outputFormat); + const interpretAst = (value, options) => interpret(compiled, Instance.fromJs(value), options); - return value === undefined ? interpretAst : interpretAst(value, outputFormat); + return value === undefined ? interpretAst : interpretAst(value, options); }; export const compile = async (schema) => { @@ -32,24 +32,30 @@ export const compile = async (schema) => { return { ast, schemaUri }; }; -export const interpret = curry(({ ast, schemaUri }, instance, outputFormat = FLAG) => { - const context = { ast, plugins: [...ast.plugins] }; +export const interpret = curry(({ ast, schemaUri }, instance, options = FLAG) => { + const outputFormat = typeof options === "string" ? options : options.outputFormat ?? FLAG; + const plugins = options.plugins ?? []; + const context = { ast, plugins: [...ast.plugins, ...plugins] }; + + let outputPlugin; switch (outputFormat) { case FLAG: break; case BASIC: - context.plugins.push(basicOutputPlugin); + outputPlugin = new BasicOutputPlugin(); + context.plugins.push(outputPlugin); break; case DETAILED: - context.plugins.push(detailedOutputPlugin); + outputPlugin = new DetailedOutputPlugin(); + context.plugins.push(outputPlugin); break; default: throw Error(`Unsupported output format '${outputFormat}'`); } const valid = Validation.interpret(schemaUri, instance, context); - return !valid && "errors" in context ? { valid, errors: context.errors } : { valid }; + return !valid && outputPlugin ? { valid, errors: outputPlugin.errors } : { valid }; }); const metaValidators = {}; diff --git a/lib/evaluation-plugins/annotations.js b/lib/evaluation-plugins/annotations.js index 1c8dbcf..1575181 100644 --- a/lib/evaluation-plugins/annotations.js +++ b/lib/evaluation-plugins/annotations.js @@ -1,14 +1,16 @@ import * as Instance from "../instance.js"; -export const annotationsPlugin = { +export class AnnotationsPlugin { beforeSchema(_url, _instance, context) { context.annotations ??= []; context.schemaAnnotations = []; - }, + } + beforeKeyword(_node, _instance, context) { context.annotations = []; - }, + } + afterKeyword(node, instance, context, valid, schemaContext, keyword) { if (valid) { const [keywordId, schemaUri, keywordValue] = node; @@ -23,10 +25,13 @@ export const annotationsPlugin = { } schemaContext.schemaAnnotations.push(...context.annotations); } - }, + } + afterSchema(_schemaNode, _instanceNode, context, valid) { if (valid) { context.annotations.push(...context.schemaAnnotations); } + + this.annotations = context.annotations; } -}; +} diff --git a/lib/evaluation-plugins/basic-output.js b/lib/evaluation-plugins/basic-output.js index b005aa3..8a82e65 100644 --- a/lib/evaluation-plugins/basic-output.js +++ b/lib/evaluation-plugins/basic-output.js @@ -2,13 +2,15 @@ import { Validation } from "../experimental.js"; import * as Instance from "../instance.js"; -export const basicOutputPlugin = { +export class BasicOutputPlugin { beforeSchema(_url, _intance, context) { context.errors ??= []; - }, + } + beforeKeyword(_node, _instance, context) { context.errors = []; - }, + } + afterKeyword(node, instance, context, valid, schemaContext, keyword) { if (!valid) { if (!keyword.simpleApplicator) { @@ -21,7 +23,8 @@ export const basicOutputPlugin = { } schemaContext.errors.push(...context.errors); } - }, + } + afterSchema(url, instance, context, valid) { if (typeof context.ast[url] === "boolean" && !valid) { context.errors.push({ @@ -30,5 +33,7 @@ export const basicOutputPlugin = { instanceLocation: Instance.uri(instance) }); } + + this.errors = context.errors; } -}; +} diff --git a/lib/evaluation-plugins/detailed-output.js b/lib/evaluation-plugins/detailed-output.js index f7c4632..84f5593 100644 --- a/lib/evaluation-plugins/detailed-output.js +++ b/lib/evaluation-plugins/detailed-output.js @@ -2,13 +2,15 @@ import { Validation } from "../experimental.js"; import * as Instance from "../instance.js"; -export const detailedOutputPlugin = { +export class DetailedOutputPlugin { beforeSchema(_url, _instance, context) { context.errors ??= []; - }, + } + beforeKeyword(_node, _instance, context) { context.errors = []; - }, + } + afterKeyword(node, instance, context, valid, schemaContext) { if (!valid) { const [keywordId, schemaUri] = node; @@ -23,7 +25,8 @@ export const detailedOutputPlugin = { outputUnit.errors = context.errors; } } - }, + } + afterSchema(url, instance, context, valid) { if (typeof context.ast[url] === "boolean" && !valid) { context.errors.push({ @@ -32,5 +35,7 @@ export const detailedOutputPlugin = { instanceLocation: Instance.uri(instance) }); } + + this.errors = context.errors; } -}; +} diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index 6cdaa96..bc0a275 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -1,5 +1,5 @@ import type { Browser, Document } from "@hyperjump/browser"; -import type { Validator, OutputUnit, OutputFormat, SchemaObject } from "./index.js"; +import type { Validator, OutputUnit, OutputFormat, SchemaObject, EvaluationPlugin } from "./index.js"; import type { JsonNode } from "./instance.js"; @@ -31,6 +31,14 @@ type MetaData = { type Anchors = Record; +// Evaluation Plugins +export type EvaluationPlugin = { + beforeSchema?(url: string, instance: JsonNode, context: Context): void; + beforeKeyword?(keywordNode: Node, instance: JsonNode, context: Context, schemaContext: Context, keyword: Keyword): void; + afterKeyword?(keywordNode: Node, instance: JsonNode, context: Context, valid: boolean, schemaContext: Context, keyword: Keyword): void; + afterSchema?(url: string, instance: JsonNode, context: Context, valid: boolean): void; +}; + // Output Formats export const BASIC: "BASIC"; export const DETAILED: "DETAILED"; @@ -66,12 +74,13 @@ export const loadDialect: (dialectId: string, dialect: Record, export const unloadDialect: (dialectId: string) => void; export const hasDialect: (dialectId: string) => boolean; -export type Keyword = { +export type Keyword = { id: string; compile: (schema: Browser, ast: AST, parentSchema: Browser) => Promise; - interpret: (compiledKeywordValue: A, instance: JsonNode, context: ValidationContext) => boolean; - simpleApplicator: boolean; + interpret: (compiledKeywordValue: A, instance: JsonNode, context: Context) => boolean; + simpleApplicator?: boolean; annotation?: (compiledKeywordValue: A, instance: JsonNode) => B | undefined; + plugin?: EvaluationPlugin; }; export type ValidationContext = { @@ -79,20 +88,22 @@ export type ValidationContext = { plugins: EvaluationPlugin[]; }; -export type EvaluationPlugin = { - beforeSchema(url: string, instance: JsonNode, context: Context): void; - beforeKeyword(keywordNode: Node, instance: JsonNode, context: Context, schemaContext: Context, keyword: Keyword): void; - afterKeyword(keywordNode: Node, instance: JsonNode, context: Context, valid: boolean, schemaContext: Context, keyword: Keyword): void; - afterSchema(url: string, instance: JsonNode, context: Context, valid: boolean): void; -}; +export class BasicOutputPlugin implements EvaluationPlugin { + errors: OutputUnit[]; +} + +export class DetailedOutputPlugin implements EvaluationPlugin { + errors: OutputUnit[]; +} -export const basicOutputPlugin: EvaluationPlugin; -export const detailedOutputPlugin: EvaluationPlugin; export type ErrorsContext = { errors: OutputUnit[]; }; -export const annotationsPlugin: EvaluationPlugin; +export class AnnotationsPlugin implements EvaluationPlugin { + annotations: OutputUnit[]; +} + export type AnnotationsContext = { annotations: OutputUnit[]; }; diff --git a/lib/experimental.js b/lib/experimental.js index ed548d9..7e91b86 100644 --- a/lib/experimental.js +++ b/lib/experimental.js @@ -6,6 +6,6 @@ export { } from "./keywords.js"; export { getSchema, toSchema, canonicalUri, buildSchemaDocument } from "./schema.js"; export { default as Validation } from "./keywords/validation.js"; -export { basicOutputPlugin } from "./evaluation-plugins/basic-output.js"; -export { detailedOutputPlugin } from "./evaluation-plugins/detailed-output.js"; -export { annotationsPlugin } from "./evaluation-plugins/annotations.js"; +export * from "./evaluation-plugins/basic-output.js"; +export * from "./evaluation-plugins/detailed-output.js"; +export * from "./evaluation-plugins/annotations.js"; diff --git a/lib/index.d.ts b/lib/index.d.ts index 3d0935d..c8d3fc9 100644 --- a/lib/index.d.ts +++ b/lib/index.d.ts @@ -1,4 +1,5 @@ import type { Json } from "@hyperjump/json-pointer"; +import type { EvaluationPlugin } from "./experimental.js"; export type SchemaFragment = string | number | boolean | null | SchemaObject | SchemaFragment[]; @@ -16,13 +17,18 @@ export const getAllRegisteredSchemaUris: () => string[]; */ export const addSchema: typeof registerSchema; +export type ValidationOptions = { + outputFormat?: OutputFormat; + plugins?: EvaluationPlugin[]; +}; + export const validate: ( - (url: string, value: Json, outputFormat?: OutputFormat) => Promise + (url: string, value: Json, options?: OutputFormat | ValidationOptions) => Promise ) & ( (url: string) => Promise ); -export type Validator = (value: Json, outputFormat?: OutputFormat) => OutputUnit; +export type Validator = (value: Json, options?: OutputFormat | ValidationOptions) => OutputUnit; export type OutputUnit = { keyword: string; diff --git a/lib/keywords/dynamicRef.js b/lib/keywords/dynamicRef.js index ec3b7ca..731db46 100644 --- a/lib/keywords/dynamicRef.js +++ b/lib/keywords/dynamicRef.js @@ -31,10 +31,6 @@ const plugin = { }, beforeKeyword(_url, _instance, context, schemaContext) { context.dynamicAnchors = schemaContext.dynamicAnchors; - }, - afterKeyword() { - }, - afterSchema() { } }; diff --git a/lib/keywords/unevaluatedItems.js b/lib/keywords/unevaluatedItems.js index 44dbd79..353b33c 100644 --- a/lib/keywords/unevaluatedItems.js +++ b/lib/keywords/unevaluatedItems.js @@ -13,25 +13,22 @@ const interpret = ([schemaUrl, unevaluatedItems], instance, context) => { return true; } - if (context.rootSchema === schemaUrl) { - return true; - } - // Because order matters, we re-evaluate this schema skipping this keyword // just to collect all the evalauted items. - const keywordContext = { - ...context, - plugins: [...context.ast.plugins, unevaluatedPlugin], - rootSchema: schemaUrl - }; - if (!Validation.interpret(schemaUrl, instance, keywordContext)) { + if (context.rootSchema === schemaUrl) { return true; } + const evaluatedItemsPlugin = new EvaluatedItemsPlugin(schemaUrl); + Validation.interpret(schemaUrl, instance, { + ...context, + plugins: [...context.ast.plugins, evaluatedItemsPlugin] + }); + const evaluatedItems = evaluatedItemsPlugin.evaluatedItems; let isValid = true; let index = 0; for (const item of Instance.iter(instance)) { - if (!keywordContext.evaluatedItems.has(index)) { + if (!evaluatedItems.has(index)) { if (!Validation.interpret(unevaluatedItems, item, context)) { isValid = false; } @@ -47,29 +44,38 @@ const interpret = ([schemaUrl, unevaluatedItems], instance, context) => { const simpleApplicator = true; -const unevaluatedPlugin = { +class EvaluatedItemsPlugin { + constructor(rootSchema) { + this.rootSchema = rootSchema; + } + beforeSchema(_url, _instance, context) { context.evaluatedItems ??= new Set(); context.schemaEvaluatedItems ??= new Set(); - }, - beforeKeyword(_node, _instance, context, schemaContext) { - context.rootSchema = schemaContext.rootSchema; + } + + beforeKeyword(_node, _instance, context) { + context.rootSchema = this.rootSchema; context.evaluatedItems = new Set(); - }, + } + afterKeyword(_node, _instance, context, valid, schemaContext) { if (valid) { for (const index of context.evaluatedItems) { schemaContext.schemaEvaluatedItems.add(index); } } - }, + } + afterSchema(_url, _instance, context, valid) { if (valid) { for (const index of context.schemaEvaluatedItems) { context.evaluatedItems.add(index); } } + + this.evaluatedItems = context.evaluatedItems; } -}; +} export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/unevaluatedProperties.js b/lib/keywords/unevaluatedProperties.js index 9882bfc..dd388b4 100644 --- a/lib/keywords/unevaluatedProperties.js +++ b/lib/keywords/unevaluatedProperties.js @@ -13,25 +13,22 @@ const interpret = ([schemaUrl, unevaluatedProperties], instance, context) => { return true; } - if (context.rootSchema === schemaUrl) { - return true; - } - // Because order matters, we re-evaluate this schema skipping this keyword // just to collect all the evalauted properties. - const keywordContext = { - ...context, - plugins: [...context.ast.plugins, unevaluatedPlugin], - rootSchema: schemaUrl - }; - if (!Validation.interpret(schemaUrl, instance, keywordContext)) { + if (context.rootSchema === schemaUrl) { return true; } + const evaluatedPropertiesPlugin = new EvaluatedPropertiesPlugin(schemaUrl); + Validation.interpret(schemaUrl, instance, { + ...context, + plugins: [...context.ast.plugins, evaluatedPropertiesPlugin] + }); + const evaluatedProperties = evaluatedPropertiesPlugin.evaluatedProperties; let isValid = true; for (const [propertyNameNode, property] of Instance.entries(instance)) { const propertyName = Instance.value(propertyNameNode); - if (keywordContext.evaluatedProperties.has(propertyName)) { + if (evaluatedProperties.has(propertyName)) { continue; } @@ -47,29 +44,38 @@ const interpret = ([schemaUrl, unevaluatedProperties], instance, context) => { const simpleApplicator = true; -const unevaluatedPlugin = { +class EvaluatedPropertiesPlugin { + constructor(rootSchema) { + this.rootSchema = rootSchema; + } + beforeSchema(_url, _instance, context) { context.evaluatedProperties ??= new Set(); context.schemaEvaluatedProperties ??= new Set(); - }, - beforeKeyword(_node, _instance, context, schemaContext) { - context.rootSchema = schemaContext.rootSchema; + } + + beforeKeyword(_node, _instance, context) { + context.rootSchema = this.rootSchema; context.evaluatedProperties = new Set(); - }, + } + afterKeyword(_node, _instance, context, valid, schemaContext) { if (valid) { for (const property of context.evaluatedProperties) { schemaContext.schemaEvaluatedProperties.add(property); } } - }, + } + afterSchema(_url, _instance, context, valid) { if (valid) { for (const property of context.schemaEvaluatedProperties) { context.evaluatedProperties.add(property); } } + + this.evaluatedProperties = context.evaluatedProperties; } -}; +} export default { id, compile, interpret, simpleApplicator }; diff --git a/lib/keywords/validation.js b/lib/keywords/validation.js index 034ef3e..8a8e182 100644 --- a/lib/keywords/validation.js +++ b/lib/keywords/validation.js @@ -49,7 +49,7 @@ const interpret = (url, instance, context) => { let valid = true; for (const plugin of context.plugins) { - plugin.beforeSchema(url, instance, context); + plugin.beforeSchema?.(url, instance, context); } if (typeof context.ast[url] === "boolean") { @@ -64,7 +64,7 @@ const interpret = (url, instance, context) => { plugins: context.plugins }; for (const plugin of context.plugins) { - plugin.beforeKeyword(node, instance, keywordContext, context, keyword); + plugin.beforeKeyword?.(node, instance, keywordContext, context, keyword); } const isKeywordValid = keyword.interpret(keywordValue, instance, keywordContext); if (!isKeywordValid) { @@ -72,13 +72,13 @@ const interpret = (url, instance, context) => { } for (const plugin of context.plugins) { - plugin.afterKeyword(node, instance, keywordContext, isKeywordValid, context, keyword); + plugin.afterKeyword?.(node, instance, keywordContext, isKeywordValid, context, keyword); } } } for (const plugin of context.plugins) { - plugin.afterSchema(url, instance, context, valid); + plugin.afterSchema?.(url, instance, context, valid); } return valid; }; From ed8d3eeda7abe818cbdd533c33fd1d9d561a7dc3 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Mon, 9 Jun 2025 14:08:14 -0700 Subject: [PATCH 30/40] 1.15.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4d170ef..28b4c59 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.14.1", + "version": "1.15.0", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From 0d13e04c95004ef8072bc67ee7776ca726d952a9 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Tue, 10 Jun 2025 11:57:01 -0700 Subject: [PATCH 31/40] Fix types --- bundle/test-suite.spec.ts | 6 +++--- lib/experimental.d.ts | 41 ++++++++++++++++++++++++++------------- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/bundle/test-suite.spec.ts b/bundle/test-suite.spec.ts index ef229b7..3b3199d 100644 --- a/bundle/test-suite.spec.ts +++ b/bundle/test-suite.spec.ts @@ -21,7 +21,7 @@ import { bundle, URI, UUID } from "./index.js"; import type { BundleOptions } from "./index.js"; import type { OutputUnit } from "../lib/index.js"; -import type { AnnotationsContext, ErrorsContext, ValidationContext } from "../lib/experimental.js"; +import type { ValidationContext } from "../lib/experimental.js"; const suite = testSuite("./bundle/tests"); @@ -68,10 +68,10 @@ const testRunner = (version: number, dialect: string) => { const annotationsPlugin = new AnnotationsPlugin(); const detailedOutputPlugin = new DetailedOutputPlugin(); const instance = Instance.fromJs(test.instance); - const context = { + const context: ValidationContext = { ast, plugins: [detailedOutputPlugin, annotationsPlugin, ...ast.plugins] - } as ValidationContext & ErrorsContext & AnnotationsContext; + }; const valid = Validation.interpret(schemaUri, instance, context); const output = { diff --git a/lib/experimental.d.ts b/lib/experimental.d.ts index bc0a275..6f5bb35 100644 --- a/lib/experimental.d.ts +++ b/lib/experimental.d.ts @@ -1,5 +1,5 @@ import type { Browser, Document } from "@hyperjump/browser"; -import type { Validator, OutputUnit, OutputFormat, SchemaObject, EvaluationPlugin } from "./index.js"; +import type { Validator, OutputUnit, OutputFormat, SchemaObject } from "./index.js"; import type { JsonNode } from "./instance.js"; @@ -18,7 +18,7 @@ export type CompiledSchema = { type AST = { metaData: Record; - plugins: Set>; + plugins: Set; } & Record[] | boolean>; type Node = [keywordId: string, schemaUri: string, keywordValue: A]; @@ -31,14 +31,6 @@ type MetaData = { type Anchors = Record; -// Evaluation Plugins -export type EvaluationPlugin = { - beforeSchema?(url: string, instance: JsonNode, context: Context): void; - beforeKeyword?(keywordNode: Node, instance: JsonNode, context: Context, schemaContext: Context, keyword: Keyword): void; - afterKeyword?(keywordNode: Node, instance: JsonNode, context: Context, valid: boolean, schemaContext: Context, keyword: Keyword): void; - afterSchema?(url: string, instance: JsonNode, context: Context, valid: boolean): void; -}; - // Output Formats export const BASIC: "BASIC"; export const DETAILED: "DETAILED"; @@ -85,26 +77,49 @@ export type Keyword = export type ValidationContext = { ast: AST; - plugins: EvaluationPlugin[]; + plugins: EvaluationPlugin[]; +}; + +// Evaluation Plugins +export type EvaluationPlugin = { + beforeSchema?(url: string, instance: JsonNode, context: Context): void; + beforeKeyword?(keywordNode: Node, instance: JsonNode, context: Context, schemaContext: Context, keyword: Keyword): void; + afterKeyword?(keywordNode: Node, instance: JsonNode, context: Context, valid: boolean, schemaContext: Context, keyword: Keyword): void; + afterSchema?(url: string, instance: JsonNode, context: Context, valid: boolean): void; }; export class BasicOutputPlugin implements EvaluationPlugin { errors: OutputUnit[]; + + beforeSchema(url: string, instance: JsonNode, context: ErrorsContext): void; + beforeKeyword(keywordNode: Node, instance: JsonNode, context: ErrorsContext, schemaContext: ErrorsContext, keyword: Keyword): void; + afterKeyword(keywordNode: Node, instance: JsonNode, context: ErrorsContext, valid: boolean, schemaContext: ErrorsContext, keyword: Keyword): void; + afterSchema(url: string, instance: JsonNode, context: ErrorsContext, valid: boolean): void; } export class DetailedOutputPlugin implements EvaluationPlugin { errors: OutputUnit[]; + + beforeSchema(url: string, instance: JsonNode, context: ErrorsContext): void; + beforeKeyword(keywordNode: Node, instance: JsonNode, context: ErrorsContext, schemaContext: ErrorsContext, keyword: Keyword): void; + afterKeyword(keywordNode: Node, instance: JsonNode, context: ErrorsContext, valid: boolean, schemaContext: ErrorsContext, keyword: Keyword): void; + afterSchema(url: string, instance: JsonNode, context: ErrorsContext, valid: boolean): void; } -export type ErrorsContext = { +export type ErrorsContext = ValidationContext & { errors: OutputUnit[]; }; export class AnnotationsPlugin implements EvaluationPlugin { annotations: OutputUnit[]; + + beforeSchema(url: string, instance: JsonNode, context: AnnotationsContext): void; + beforeKeyword(keywordNode: Node, instance: JsonNode, context: AnnotationsContext, schemaContext: AnnotationsContext, keyword: Keyword): void; + afterKeyword(keywordNode: Node, instance: JsonNode, context: AnnotationsContext, valid: boolean, schemaContext: AnnotationsContext, keyword: Keyword): void; + afterSchema(url: string, instance: JsonNode, context: AnnotationsContext, valid: boolean): void; } -export type AnnotationsContext = { +export type AnnotationsContext = ValidationContext & { annotations: OutputUnit[]; }; From 9d9153e877209fb9ff8a83b2b3fc971121a052c4 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Tue, 10 Jun 2025 12:10:54 -0700 Subject: [PATCH 32/40] 1.15.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 28b4c59..a6cba6e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.15.0", + "version": "1.15.1", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From cfe6c40bb1b6c6ef03188f2e99c16c24a51adcdc Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Sun, 15 Jun 2025 18:26:04 -0700 Subject: [PATCH 33/40] Update OpenAPI 3.1 schemas --- openapi-3-1/dialect/base.js | 3 +- openapi-3-1/index.d.ts | 2 +- openapi-3-1/index.js | 4 +- openapi-3-1/meta/base.js | 5 +- openapi-3-1/schema-base.js | 2 +- openapi-3-1/schema.js | 221 +++++++++++++++--------------------- 6 files changed, 103 insertions(+), 134 deletions(-) diff --git a/openapi-3-1/dialect/base.js b/openapi-3-1/dialect/base.js index ccc646b..6a2f4b5 100644 --- a/openapi-3-1/dialect/base.js +++ b/openapi-3-1/dialect/base.js @@ -1,5 +1,4 @@ export default { - "$id": "https://spec.openapis.org/oas/3.1/dialect/base", "$schema": "https://json-schema.org/draft/2020-12/schema", "$vocabulary": { "https://json-schema.org/draft/2020-12/vocab/core": true, @@ -14,6 +13,8 @@ export default { "$dynamicAnchor": "meta", "title": "OpenAPI 3.1 Schema Object Dialect", + "description": "A JSON Schema dialect describing schemas found in OpenAPI v3.1 Descriptions", + "allOf": [ { "$ref": "https://json-schema.org/draft/2020-12/schema" }, { "$ref": "https://spec.openapis.org/oas/3.1/meta/base" } diff --git a/openapi-3-1/index.d.ts b/openapi-3-1/index.d.ts index 1566196..6765118 100644 --- a/openapi-3-1/index.d.ts +++ b/openapi-3-1/index.d.ts @@ -3,7 +3,7 @@ import type { JsonSchemaType } from "../lib/common.js"; export type OasSchema31 = boolean | { - $schema?: "https://json-schema.org/draft/2020-12/schema"; + $schema?: "https://spec.openapis.org/oas/3.1/dialect/base"; $id?: string; $anchor?: string; $ref?: string; diff --git a/openapi-3-1/index.js b/openapi-3-1/index.js index a600409..a2840f5 100644 --- a/openapi-3-1/index.js +++ b/openapi-3-1/index.js @@ -32,8 +32,8 @@ defineVocabulary("https://spec.openapis.org/oas/3.1/vocab/base", { "xml": "https://spec.openapis.org/oas/3.0/keyword/xml" }); -registerSchema(vocabularySchema); -registerSchema(dialectSchema); +registerSchema(vocabularySchema, "https://spec.openapis.org/oas/3.1/meta/base"); +registerSchema(dialectSchema, "https://spec.openapis.org/oas/3.1/dialect/base"); // Current Schemas registerSchema(schema, "https://spec.openapis.org/oas/3.1/schema"); diff --git a/openapi-3-1/meta/base.js b/openapi-3-1/meta/base.js index fdaba27..303423f 100644 --- a/openapi-3-1/meta/base.js +++ b/openapi-3-1/meta/base.js @@ -1,8 +1,9 @@ export default { - "$id": "https://spec.openapis.org/oas/3.1/meta/base", "$schema": "https://json-schema.org/draft/2020-12/schema", "$dynamicAnchor": "meta", - "title": "OAS Base vocabulary", + + "title": "OAS Base Vocabulary", + "description": "A JSON Schema Vocabulary used in the OpenAPI Schema Dialect", "type": ["object", "boolean"], "properties": { diff --git a/openapi-3-1/schema-base.js b/openapi-3-1/schema-base.js index f05e7fd..a84f8ab 100644 --- a/openapi-3-1/schema-base.js +++ b/openapi-3-1/schema-base.js @@ -12,7 +12,7 @@ export default { "https://spec.openapis.org/oas/3.1/vocab/base": false }, - "description": "The description of OpenAPI v3.1.x documents using the OpenAPI JSON Schema dialect, as defined by https://spec.openapis.org/oas/v3.1.0", + "description": "The description of OpenAPI v3.1.x Documents using the OpenAPI JSON Schema dialect", "$ref": "https://spec.openapis.org/oas/3.1/schema", "properties": { diff --git a/openapi-3-1/schema.js b/openapi-3-1/schema.js index ac5d550..6aed8ba 100644 --- a/openapi-3-1/schema.js +++ b/openapi-3-1/schema.js @@ -1,7 +1,6 @@ export default { - "$id": "https://spec.openapis.org/oas/3.1/schema/2022-10-07", "$schema": "https://json-schema.org/draft/2020-12/schema", - "description": "The description of OpenAPI v3.1.x documents without schema validation, as defined by https://spec.openapis.org/oas/v3.1.0", + "description": "The description of OpenAPI v3.1.x Documents without Schema Object validation", "type": "object", "properties": { "openapi": { @@ -13,7 +12,7 @@ export default { }, "jsonSchemaDialect": { "type": "string", - "format": "uri", + "format": "uri-reference", "default": "https://spec.openapis.org/oas/3.1/dialect/base" }, "servers": { @@ -33,7 +32,7 @@ export default { "webhooks": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/path-item-or-reference" + "$ref": "#/$defs/path-item" } }, "components": { @@ -80,7 +79,7 @@ export default { "unevaluatedProperties": false, "$defs": { "info": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#info-object", + "$comment": "https://spec.openapis.org/oas/v3.1#info-object", "type": "object", "properties": { "title": { @@ -94,7 +93,7 @@ export default { }, "termsOfService": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "contact": { "$ref": "#/$defs/contact" @@ -114,7 +113,7 @@ export default { "unevaluatedProperties": false }, "contact": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#contact-object", + "$comment": "https://spec.openapis.org/oas/v3.1#contact-object", "type": "object", "properties": { "name": { @@ -122,7 +121,7 @@ export default { }, "url": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "email": { "type": "string", @@ -133,7 +132,7 @@ export default { "unevaluatedProperties": false }, "license": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#license-object", + "$comment": "https://spec.openapis.org/oas/v3.1#license-object", "type": "object", "properties": { "name": { @@ -144,7 +143,7 @@ export default { }, "url": { "type": "string", - "format": "uri" + "format": "uri-reference" } }, "required": [ @@ -163,12 +162,11 @@ export default { "unevaluatedProperties": false }, "server": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#server-object", + "$comment": "https://spec.openapis.org/oas/v3.1#server-object", "type": "object", "properties": { "url": { - "type": "string", - "format": "uri-reference" + "type": "string" }, "description": { "type": "string" @@ -187,7 +185,7 @@ export default { "unevaluatedProperties": false }, "server-variable": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#server-variable-object", + "$comment": "https://spec.openapis.org/oas/v3.1#server-variable-object", "type": "object", "properties": { "enum": { @@ -211,7 +209,7 @@ export default { "unevaluatedProperties": false }, "components": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#components-object", + "$comment": "https://spec.openapis.org/oas/v3.1#components-object", "type": "object", "properties": { "schemas": { @@ -271,7 +269,7 @@ export default { "pathItems": { "type": "object", "additionalProperties": { - "$ref": "#/$defs/path-item-or-reference" + "$ref": "#/$defs/path-item" } } }, @@ -287,7 +285,7 @@ export default { "unevaluatedProperties": false }, "paths": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#paths-object", + "$comment": "https://spec.openapis.org/oas/v3.1#paths-object", "type": "object", "patternProperties": { "^/": { @@ -298,9 +296,13 @@ export default { "unevaluatedProperties": false }, "path-item": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#path-item-object", + "$comment": "https://spec.openapis.org/oas/v3.1#path-item-object", "type": "object", "properties": { + "$ref": { + "type": "string", + "format": "uri-reference" + }, "summary": { "type": "string" }, @@ -347,22 +349,8 @@ export default { "$ref": "#/$defs/specification-extensions", "unevaluatedProperties": false }, - "path-item-or-reference": { - "if": { - "type": "object", - "required": [ - "$ref" - ] - }, - "then": { - "$ref": "#/$defs/reference" - }, - "else": { - "$ref": "#/$defs/path-item" - } - }, "operation": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#operation-object", + "$comment": "https://spec.openapis.org/oas/v3.1#operation-object", "type": "object", "properties": { "tags": { @@ -422,7 +410,7 @@ export default { "unevaluatedProperties": false }, "external-documentation": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#external-documentation-object", + "$comment": "https://spec.openapis.org/oas/v3.1#external-documentation-object", "type": "object", "properties": { "description": { @@ -430,7 +418,7 @@ export default { }, "url": { "type": "string", - "format": "uri" + "format": "uri-reference" } }, "required": [ @@ -440,7 +428,7 @@ export default { "unevaluatedProperties": false }, "parameter": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#parameter-object", + "$comment": "https://spec.openapis.org/oas/v3.1#parameter-object", "type": "object", "properties": { "name": { @@ -535,7 +523,7 @@ export default { "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-cookie" }, { - "$ref": "#/$defs/parameter/dependentSchemas/schema/$defs/styles-for-form" + "$ref": "#/$defs/styles-for-form" } ], "$defs": { @@ -552,9 +540,6 @@ export default { }, "then": { "properties": { - "name": { - "pattern": "[^/#?]+$" - }, "style": { "default": "simple", "enum": [ @@ -640,32 +625,6 @@ export default { } } } - }, - "styles-for-form": { - "if": { - "properties": { - "style": { - "const": "form" - } - }, - "required": [ - "style" - ] - }, - "then": { - "properties": { - "explode": { - "default": true - } - } - }, - "else": { - "properties": { - "explode": { - "default": false - } - } - } } } } @@ -688,7 +647,7 @@ export default { } }, "request-body": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#request-body-object", + "$comment": "https://spec.openapis.org/oas/v3.1#request-body-object", "type": "object", "properties": { "description": { @@ -723,7 +682,7 @@ export default { } }, "content": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#fixed-fields-10", + "$comment": "https://spec.openapis.org/oas/v3.1#fixed-fields-10", "type": "object", "additionalProperties": { "$ref": "#/$defs/media-type" @@ -733,7 +692,7 @@ export default { } }, "media-type": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#media-type-object", + "$comment": "https://spec.openapis.org/oas/v3.1#media-type-object", "type": "object", "properties": { "schema": { @@ -757,7 +716,7 @@ export default { "unevaluatedProperties": false }, "encoding": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#encoding-object", + "$comment": "https://spec.openapis.org/oas/v3.1#encoding-object", "type": "object", "properties": { "contentType": { @@ -792,41 +751,13 @@ export default { "$ref": "#/$defs/specification-extensions" }, { - "$ref": "#/$defs/encoding/$defs/explode-default" + "$ref": "#/$defs/styles-for-form" } ], - "unevaluatedProperties": false, - "$defs": { - "explode-default": { - "if": { - "properties": { - "style": { - "const": "form" - } - }, - "required": [ - "style" - ] - }, - "then": { - "properties": { - "explode": { - "default": true - } - } - }, - "else": { - "properties": { - "explode": { - "default": false - } - } - } - } - } + "unevaluatedProperties": false }, "responses": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#responses-object", + "$comment": "https://spec.openapis.org/oas/v3.1#responses-object", "type": "object", "properties": { "default": { @@ -840,10 +771,21 @@ export default { }, "minProperties": 1, "$ref": "#/$defs/specification-extensions", - "unevaluatedProperties": false + "unevaluatedProperties": false, + "if": { + "$comment": "either default, or at least one response code property must exist", + "patternProperties": { + "^[1-5](?:[0-9]{2}|XX)$": false + } + }, + "then": { + "required": [ + "default" + ] + } }, "response": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#response-object", + "$comment": "https://spec.openapis.org/oas/v3.1#response-object", "type": "object", "properties": { "description": { @@ -886,11 +828,11 @@ export default { } }, "callbacks": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#callback-object", + "$comment": "https://spec.openapis.org/oas/v3.1#callback-object", "type": "object", "$ref": "#/$defs/specification-extensions", "additionalProperties": { - "$ref": "#/$defs/path-item-or-reference" + "$ref": "#/$defs/path-item" } }, "callbacks-or-reference": { @@ -908,7 +850,7 @@ export default { } }, "example": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#example-object", + "$comment": "https://spec.openapis.org/oas/v3.1#example-object", "type": "object", "properties": { "summary": { @@ -920,7 +862,7 @@ export default { "value": true, "externalValue": { "type": "string", - "format": "uri" + "format": "uri-reference" } }, "not": { @@ -947,7 +889,7 @@ export default { } }, "link": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#link-object", + "$comment": "https://spec.openapis.org/oas/v3.1#link-object", "type": "object", "properties": { "operationRef": { @@ -998,7 +940,7 @@ export default { } }, "header": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#header-object", + "$comment": "https://spec.openapis.org/oas/v3.1#header-object", "type": "object", "properties": { "description": { @@ -1066,7 +1008,7 @@ export default { } }, "tag": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#tag-object", + "$comment": "https://spec.openapis.org/oas/v3.1#tag-object", "type": "object", "properties": { "name": { @@ -1086,7 +1028,7 @@ export default { "unevaluatedProperties": false }, "reference": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#reference-object", + "$comment": "https://spec.openapis.org/oas/v3.1#reference-object", "type": "object", "properties": { "$ref": { @@ -1099,11 +1041,10 @@ export default { "description": { "type": "string" } - }, - "unevaluatedProperties": false + } }, "schema": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#schema-object", + "$comment": "https://spec.openapis.org/oas/v3.1#schema-object", "$dynamicAnchor": "meta", "type": [ "object", @@ -1111,7 +1052,7 @@ export default { ] }, "security-scheme": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#security-scheme-object", + "$comment": "https://spec.openapis.org/oas/v3.1#security-scheme-object", "type": "object", "properties": { "type": { @@ -1265,7 +1206,7 @@ export default { "properties": { "openIdConnectUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" } }, "required": [ @@ -1313,11 +1254,11 @@ export default { "properties": { "authorizationUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "refreshUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "scopes": { "$ref": "#/$defs/map-of-strings" @@ -1335,11 +1276,11 @@ export default { "properties": { "tokenUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "refreshUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "scopes": { "$ref": "#/$defs/map-of-strings" @@ -1357,11 +1298,11 @@ export default { "properties": { "tokenUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "refreshUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "scopes": { "$ref": "#/$defs/map-of-strings" @@ -1379,15 +1320,15 @@ export default { "properties": { "authorizationUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "tokenUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "refreshUrl": { "type": "string", - "format": "uri" + "format": "uri-reference" }, "scopes": { "$ref": "#/$defs/map-of-strings" @@ -1404,7 +1345,7 @@ export default { } }, "security-requirement": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#security-requirement-object", + "$comment": "https://spec.openapis.org/oas/v3.1#security-requirement-object", "type": "object", "additionalProperties": { "type": "array", @@ -1414,7 +1355,7 @@ export default { } }, "specification-extensions": { - "$comment": "https://spec.openapis.org/oas/v3.1.0#specification-extensions", + "$comment": "https://spec.openapis.org/oas/v3.1#specification-extensions", "patternProperties": { "^x-": true } @@ -1435,6 +1376,32 @@ export default { "additionalProperties": { "type": "string" } + }, + "styles-for-form": { + "if": { + "properties": { + "style": { + "const": "form" + } + }, + "required": [ + "style" + ] + }, + "then": { + "properties": { + "explode": { + "default": true + } + } + }, + "else": { + "properties": { + "explode": { + "default": false + } + } + } } } }; From 0d14fa04266e4136ae445f3fb72deddfb14b38de Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Sun, 15 Jun 2025 19:00:29 -0700 Subject: [PATCH 34/40] Add support for OpenAPI 3.2 schema dialect --- lib/openapi.js | 17 ++++ openapi-3-2/dialect/base.js | 22 ++++ openapi-3-2/index.d.ts | 91 +++++++++++++++++ openapi-3-2/index.js | 49 +++++++++ openapi-3-2/json-schema-test-suite.spec.ts | 113 +++++++++++++++++++++ openapi-3-2/meta/base.js | 77 ++++++++++++++ openapi-3-2/schema-base.js | 33 ++++++ openapi-3-2/schema-draft-04.js | 33 ++++++ openapi-3-2/schema-draft-06.js | 33 ++++++ openapi-3-2/schema-draft-07.js | 33 ++++++ openapi-3-2/schema-draft-2019-09.js | 33 ++++++ openapi-3-2/schema-draft-2020-12.js | 33 ++++++ openapi-3-2/schema.js | 5 + 13 files changed, 572 insertions(+) create mode 100644 openapi-3-2/dialect/base.js create mode 100644 openapi-3-2/index.d.ts create mode 100644 openapi-3-2/index.js create mode 100644 openapi-3-2/json-schema-test-suite.spec.ts create mode 100644 openapi-3-2/meta/base.js create mode 100644 openapi-3-2/schema-base.js create mode 100644 openapi-3-2/schema-draft-04.js create mode 100644 openapi-3-2/schema-draft-06.js create mode 100644 openapi-3-2/schema-draft-07.js create mode 100644 openapi-3-2/schema-draft-2019-09.js create mode 100644 openapi-3-2/schema-draft-2020-12.js create mode 100644 openapi-3-2/schema.js diff --git a/lib/openapi.js b/lib/openapi.js index f300336..c486d6d 100644 --- a/lib/openapi.js +++ b/lib/openapi.js @@ -3,6 +3,7 @@ import { addMediaTypePlugin } from "@hyperjump/browser"; import { buildSchemaDocument } from "./schema.js"; +const is32 = RegExp.prototype.test.bind(/^3\.2\.\d+(-.+)?$/); const is31 = RegExp.prototype.test.bind(/^3\.1\.\d+(-.+)?$/); const is30 = RegExp.prototype.test.bind(/^3\.0\.\d+(-.+)?$/); @@ -34,6 +35,22 @@ addMediaTypePlugin("application/openapi+json", { } else { defaultDialect = `https://spec.openapis.org/oas/3.1/schema?${encodeURIComponent(doc.jsonSchemaDialect)}`; } + } else if (is32(version)) { + if (!("jsonSchemaDialect" in doc) || doc.jsonSchemaDialect === "https://spec.openapis.org/oas/3.2/dialect/base") { + defaultDialect = "https://spec.openapis.org/oas/3.2/schema-base"; + } else if (doc.jsonSchemaDialect === "https://json-schema.org/draft/2020-12/schema") { + defaultDialect = `https://spec.openapis.org/oas/3.2/schema-draft-2020-12`; + } else if (doc.jsonSchemaDialect === "https://json-schema.org/draft/2019-09/schema") { + defaultDialect = `https://spec.openapis.org/oas/3.2/schema-draft-2019-09`; + } else if (doc.jsonSchemaDialect === "http://json-schema.org/draft-07/schema#") { + defaultDialect = `https://spec.openapis.org/oas/3.2/schema-draft-07`; + } else if (doc.jsonSchemaDialect === "http://json-schema.org/draft-06/schema#") { + defaultDialect = `https://spec.openapis.org/oas/3.2/schema-draft-06`; + } else if (doc.jsonSchemaDialect === "http://json-schema.org/draft-04/schema#") { + defaultDialect = `https://spec.openapis.org/oas/3.2/schema-draft-04`; + } else { + defaultDialect = `https://spec.openapis.org/oas/3.2/schema?${encodeURIComponent(doc.jsonSchemaDialect)}`; + } } else { throw Error(`Encountered unsupported OpenAPI version '${version}' in ${response.url}`); } diff --git a/openapi-3-2/dialect/base.js b/openapi-3-2/dialect/base.js new file mode 100644 index 0000000..e024c78 --- /dev/null +++ b/openapi-3-2/dialect/base.js @@ -0,0 +1,22 @@ +export default { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$vocabulary": { + "https://json-schema.org/draft/2020-12/vocab/core": true, + "https://json-schema.org/draft/2020-12/vocab/applicator": true, + "https://json-schema.org/draft/2020-12/vocab/unevaluated": true, + "https://json-schema.org/draft/2020-12/vocab/validation": true, + "https://json-schema.org/draft/2020-12/vocab/meta-data": true, + "https://json-schema.org/draft/2020-12/vocab/format-annotation": true, + "https://json-schema.org/draft/2020-12/vocab/content": true, + "https://spec.openapis.org/oas/3.2/vocab/base": false + }, + "$dynamicAnchor": "meta", + + "title": "OpenAPI 3.2 Schema Object Dialect", + "description": "A JSON Schema dialect describing schemas found in OpenAPI v3.2 Descriptions", + + "allOf": [ + { "$ref": "https://json-schema.org/draft/2020-12/schema" }, + { "$ref": "https://spec.openapis.org/oas/3.2/meta/base" } + ] +}; diff --git a/openapi-3-2/index.d.ts b/openapi-3-2/index.d.ts new file mode 100644 index 0000000..cde98c0 --- /dev/null +++ b/openapi-3-2/index.d.ts @@ -0,0 +1,91 @@ +import type { Json } from "@hyperjump/json-pointer"; +import type { JsonSchemaType } from "../lib/common.js"; + + +export type OasSchema32 = boolean | { + $schema?: "https://spec.openapis.org/oas/3.2/dialect/base"; + $id?: string; + $anchor?: string; + $ref?: string; + $dynamicRef?: string; + $dynamicAnchor?: string; + $vocabulary?: Record; + $comment?: string; + $defs?: Record; + additionalItems?: OasSchema32; + unevaluatedItems?: OasSchema32; + prefixItems?: OasSchema32[]; + items?: OasSchema32; + contains?: OasSchema32; + additionalProperties?: OasSchema32; + unevaluatedProperties?: OasSchema32; + properties?: Record; + patternProperties?: Record; + dependentSchemas?: Record; + propertyNames?: OasSchema32; + if?: OasSchema32; + then?: OasSchema32; + else?: OasSchema32; + allOf?: OasSchema32[]; + anyOf?: OasSchema32[]; + oneOf?: OasSchema32[]; + not?: OasSchema32; + multipleOf?: number; + maximum?: number; + exclusiveMaximum?: number; + minimum?: number; + exclusiveMinimum?: number; + maxLength?: number; + minLength?: number; + pattern?: string; + maxItems?: number; + minItems?: number; + uniqueItems?: boolean; + maxContains?: number; + minContains?: number; + maxProperties?: number; + minProperties?: number; + required?: string[]; + dependentRequired?: Record; + const?: Json; + enum?: Json[]; + type?: JsonSchemaType | JsonSchemaType[]; + title?: string; + description?: string; + default?: Json; + deprecated?: boolean; + readOnly?: boolean; + writeOnly?: boolean; + examples?: Json[]; + format?: "date-time" | "date" | "time" | "duration" | "email" | "idn-email" | "hostname" | "idn-hostname" | "ipv4" | "ipv6" | "uri" | "uri-reference" | "iri" | "iri-reference" | "uuid" | "uri-template" | "json-pointer" | "relative-json-pointer" | "regex"; + contentMediaType?: string; + contentEncoding?: string; + contentSchema?: OasSchema32; + example?: Json; + discriminator?: Discriminator; + externalDocs?: ExternalDocs; + xml?: Xml; +}; + +type Discriminator = { + propertyName: string; + mappings?: Record; +}; + +type ExternalDocs = { + url: string; + description?: string; +}; + +type Xml = { + name?: string; + namespace?: string; + prefix?: string; + attribute?: boolean; + wrapped?: boolean; +}; + +// TODO: Fill in this type when 3.2 is published +export type OpenApi32 = unknown; + +export * from "../lib/index.js"; diff --git a/openapi-3-2/index.js b/openapi-3-2/index.js new file mode 100644 index 0000000..b0e940a --- /dev/null +++ b/openapi-3-2/index.js @@ -0,0 +1,49 @@ +import { addKeyword, defineVocabulary } from "../lib/keywords.js"; +import { registerSchema } from "../lib/index.js"; +import "../lib/openapi.js"; + +import dialectSchema from "./dialect/base.js"; +import vocabularySchema from "./meta/base.js"; +import schema from "./schema.js"; +import schemaBase from "./schema-base.js"; +import schemaDraft2020 from "./schema-draft-2020-12.js"; +import schemaDraft2019 from "./schema-draft-2019-09.js"; +import schemaDraft07 from "./schema-draft-07.js"; +import schemaDraft06 from "./schema-draft-06.js"; +import schemaDraft04 from "./schema-draft-04.js"; + +import discriminator from "../openapi-3-0/discriminator.js"; +import example from "../openapi-3-0/example.js"; +import externalDocs from "../openapi-3-0/externalDocs.js"; +import xml from "../openapi-3-0/xml.js"; + + +export * from "../draft-2020-12/index.js"; + +addKeyword(discriminator); +addKeyword(example); +addKeyword(externalDocs); +addKeyword(xml); + +defineVocabulary("https://spec.openapis.org/oas/3.2/vocab/base", { + "discriminator": "https://spec.openapis.org/oas/3.0/keyword/discriminator", + "example": "https://spec.openapis.org/oas/3.0/keyword/example", + "externalDocs": "https://spec.openapis.org/oas/3.0/keyword/externalDocs", + "xml": "https://spec.openapis.org/oas/3.0/keyword/xml" +}); + +registerSchema(vocabularySchema, "https://spec.openapis.org/oas/3.2/meta/base"); +registerSchema(dialectSchema, "https://spec.openapis.org/oas/3.2/dialect/base"); + +// Current Schemas +registerSchema(schema, "https://spec.openapis.org/oas/3.2/schema"); +registerSchema(schema, "https://spec.openapis.org/oas/3.2/schema/latest"); +registerSchema(schemaBase, "https://spec.openapis.org/oas/3.2/schema-base"); +registerSchema(schemaBase, "https://spec.openapis.org/oas/3.2/schema-base/latest"); + +// Alternative dialect schemas +registerSchema(schemaDraft2020, "https://spec.openapis.org/oas/3.2/schema-draft-2020-12"); +registerSchema(schemaDraft2019, "https://spec.openapis.org/oas/3.2/schema-draft-2019-09"); +registerSchema(schemaDraft07, "https://spec.openapis.org/oas/3.2/schema-draft-07"); +registerSchema(schemaDraft06, "https://spec.openapis.org/oas/3.2/schema-draft-06"); +registerSchema(schemaDraft04, "https://spec.openapis.org/oas/3.2/schema-draft-04"); diff --git a/openapi-3-2/json-schema-test-suite.spec.ts b/openapi-3-2/json-schema-test-suite.spec.ts new file mode 100644 index 0000000..992b582 --- /dev/null +++ b/openapi-3-2/json-schema-test-suite.spec.ts @@ -0,0 +1,113 @@ +import fs from "node:fs"; +import { describe, it, expect, beforeAll, afterAll } from "vitest"; +import { toAbsoluteIri } from "@hyperjump/uri"; +import { registerSchema, unregisterSchema, validate } from "./index.js"; + +import type { Json } from "@hyperjump/json-pointer"; +import type { OasSchema32, Validator } from "./index.js"; + + +type Suite = { + description: string; + schema: OasSchema32; + tests: Test[]; +}; + +type Test = { + description: string; + data: Json; + valid: boolean; +}; + +// This package is indended to be a compatibility mode from stable JSON Schema. +// Some edge cases might not work exactly as specified, but it should work for +// any real-life schema. +const skip = new Set([ + // Self-identifying with a `file:` URI is not allowed for security reasons. + "|draft2020-12|ref.json|$id with file URI still resolves pointers - *nix", + "|draft2020-12|ref.json|$id with file URI still resolves pointers - windows" +]); + +const shouldSkip = (path: string[]): boolean => { + let key = ""; + for (const segment of path) { + key = `${key}|${segment}`; + if (skip.has(key)) { + return true; + } + } + return false; +}; + +const testSuitePath = "./node_modules/json-schema-test-suite"; + +const addRemotes = (dialectId: string, filePath = `${testSuitePath}/remotes`, url = "") => { + fs.readdirSync(filePath, { withFileTypes: true }) + .forEach((entry) => { + if (entry.isFile() && entry.name.endsWith(".json")) { + const remote = JSON.parse(fs.readFileSync(`${filePath}/${entry.name}`, "utf8")) as Exclude; + if (!remote.$schema || toAbsoluteIri(remote.$schema as string) === "https://json-schema.org/draft/2020-12/schema") { + registerSchema(remote, `http://localhost:1234${url}/${entry.name}`, dialectId); + } + } else if (entry.isDirectory()) { + addRemotes(dialectId, `${filePath}/${entry.name}`, `${url}/${entry.name}`); + } + }); +}; + +const runTestSuite = (draft: string, dialectId: string) => { + const testSuiteFilePath = `${testSuitePath}/tests/${draft}`; + + describe(`${draft} ${dialectId}`, () => { + beforeAll(() => { + addRemotes(dialectId); + }); + + fs.readdirSync(testSuiteFilePath, { withFileTypes: true }) + .filter((entry) => entry.isFile() && entry.name.endsWith(".json")) + .forEach((entry) => { + const file = `${testSuiteFilePath}/${entry.name}`; + + describe(entry.name, () => { + const suites = JSON.parse(fs.readFileSync(file, "utf8")) as Suite[]; + + suites.forEach((suite) => { + describe(suite.description, () => { + let _validate: Validator; + let url: string; + + beforeAll(async () => { + if (shouldSkip([draft, entry.name, suite.description])) { + return; + } + url = `http://${draft}-test-suite.json-schema.org/${entry.name}/${encodeURIComponent(suite.description)}`; + if (typeof suite.schema === "object" && suite.schema.$schema === "https://json-schema.org/draft/2020-12/schema") { + delete suite.schema.$schema; + } + registerSchema(suite.schema, url, dialectId); + + _validate = await validate(url); + }); + + afterAll(() => { + unregisterSchema(url); + }); + + suite.tests.forEach((test) => { + if (shouldSkip([draft, entry.name, suite.description, test.description])) { + it.skip(test.description, () => { /* empty */ }); + } else { + it(test.description, () => { + const output = _validate(test.data); + expect(output.valid).to.equal(test.valid); + }); + } + }); + }); + }); + }); + }); + }); +}; + +runTestSuite("draft2020-12", "https://spec.openapis.org/oas/3.2/dialect/base"); diff --git a/openapi-3-2/meta/base.js b/openapi-3-2/meta/base.js new file mode 100644 index 0000000..303423f --- /dev/null +++ b/openapi-3-2/meta/base.js @@ -0,0 +1,77 @@ +export default { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$dynamicAnchor": "meta", + + "title": "OAS Base Vocabulary", + "description": "A JSON Schema Vocabulary used in the OpenAPI Schema Dialect", + + "type": ["object", "boolean"], + "properties": { + "example": true, + "discriminator": { "$ref": "#/$defs/discriminator" }, + "externalDocs": { "$ref": "#/$defs/external-docs" }, + "xml": { "$ref": "#/$defs/xml" } + }, + "$defs": { + "extensible": { + "patternProperties": { + "^x-": true + } + }, + "discriminator": { + "$ref": "#/$defs/extensible", + "type": "object", + "properties": { + "propertyName": { + "type": "string" + }, + "mapping": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": ["propertyName"], + "unevaluatedProperties": false + }, + "external-docs": { + "$ref": "#/$defs/extensible", + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri-reference" + }, + "description": { + "type": "string" + } + }, + "required": ["url"], + "unevaluatedProperties": false + }, + "xml": { + "$ref": "#/$defs/extensible", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "namespace": { + "type": "string", + "format": "uri" + }, + "prefix": { + "type": "string" + }, + "attribute": { + "type": "boolean" + }, + "wrapped": { + "type": "boolean" + } + }, + "unevaluatedProperties": false + } + } +}; diff --git a/openapi-3-2/schema-base.js b/openapi-3-2/schema-base.js new file mode 100644 index 0000000..279c7cb --- /dev/null +++ b/openapi-3-2/schema-base.js @@ -0,0 +1,33 @@ +export default { + "$schema": "https://json-schema.org/draft/2020-12/schema", + + "$vocabulary": { + "https://json-schema.org/draft/2020-12/vocab/core": true, + "https://json-schema.org/draft/2020-12/vocab/applicator": true, + "https://json-schema.org/draft/2020-12/vocab/unevaluated": true, + "https://json-schema.org/draft/2020-12/vocab/validation": true, + "https://json-schema.org/draft/2020-12/vocab/meta-data": true, + "https://json-schema.org/draft/2020-12/vocab/format-annotation": true, + "https://json-schema.org/draft/2020-12/vocab/content": true, + "https://spec.openapis.org/oas/3.2/vocab/base": false + }, + + "description": "The description of OpenAPI v3.2.x Documents using the OpenAPI JSON Schema dialect", + + "$ref": "https://spec.openapis.org/oas/3.2/schema", + "properties": { + "jsonSchemaDialect": { "$ref": "#/$defs/dialect" } + }, + + "$defs": { + "dialect": { "const": "https://spec.openapis.org/oas/3.2/dialect/base" }, + + "schema": { + "$dynamicAnchor": "meta", + "$ref": "https://spec.openapis.org/oas/3.2/dialect/base", + "properties": { + "$schema": { "$ref": "#/$defs/dialect" } + } + } + } +}; diff --git a/openapi-3-2/schema-draft-04.js b/openapi-3-2/schema-draft-04.js new file mode 100644 index 0000000..8a8581d --- /dev/null +++ b/openapi-3-2/schema-draft-04.js @@ -0,0 +1,33 @@ +export default { + "$schema": "https://json-schema.org/draft/2020-12/schema", + + "$vocabulary": { + "https://json-schema.org/draft/2020-12/vocab/core": true, + "https://json-schema.org/draft/2020-12/vocab/applicator": true, + "https://json-schema.org/draft/2020-12/vocab/unevaluated": true, + "https://json-schema.org/draft/2020-12/vocab/validation": true, + "https://json-schema.org/draft/2020-12/vocab/meta-data": true, + "https://json-schema.org/draft/2020-12/vocab/format-annotation": true, + "https://json-schema.org/draft/2020-12/vocab/content": true, + "https://spec.openapis.org/oas/3.2/vocab/base": false + }, + + "description": "OpenAPI v3.2.x documents using draft-04 JSON Schemas", + + "$ref": "https://spec.openapis.org/oas/3.2/schema", + "properties": { + "jsonSchemaDialect": { "$ref": "#/$defs/dialect" } + }, + + "$defs": { + "dialect": { "const": "http://json-schema.org/draft-04/schema#" }, + + "schema": { + "$dynamicAnchor": "meta", + "$ref": "https://spec.openapis.org/oas/3.2/dialect/base", + "properties": { + "$schema": { "$ref": "#/$defs/dialect" } + } + } + } +}; diff --git a/openapi-3-2/schema-draft-06.js b/openapi-3-2/schema-draft-06.js new file mode 100644 index 0000000..7d52005 --- /dev/null +++ b/openapi-3-2/schema-draft-06.js @@ -0,0 +1,33 @@ +export default { + "$schema": "https://json-schema.org/draft/2020-12/schema", + + "$vocabulary": { + "https://json-schema.org/draft/2020-12/vocab/core": true, + "https://json-schema.org/draft/2020-12/vocab/applicator": true, + "https://json-schema.org/draft/2020-12/vocab/unevaluated": true, + "https://json-schema.org/draft/2020-12/vocab/validation": true, + "https://json-schema.org/draft/2020-12/vocab/meta-data": true, + "https://json-schema.org/draft/2020-12/vocab/format-annotation": true, + "https://json-schema.org/draft/2020-12/vocab/content": true, + "https://spec.openapis.org/oas/3.2/vocab/base": false + }, + + "description": "OpenAPI v3.2.x documents using draft-06 JSON Schemas", + + "$ref": "https://spec.openapis.org/oas/3.2/schema", + "properties": { + "jsonSchemaDialect": { "$ref": "#/$defs/dialect" } + }, + + "$defs": { + "dialect": { "const": "http://json-schema.org/draft-06/schema#" }, + + "schema": { + "$dynamicAnchor": "meta", + "$ref": "https://spec.openapis.org/oas/3.2/dialect/base", + "properties": { + "$schema": { "$ref": "#/$defs/dialect" } + } + } + } +}; diff --git a/openapi-3-2/schema-draft-07.js b/openapi-3-2/schema-draft-07.js new file mode 100644 index 0000000..d4ebe2d --- /dev/null +++ b/openapi-3-2/schema-draft-07.js @@ -0,0 +1,33 @@ +export default { + "$schema": "https://json-schema.org/draft/2020-12/schema", + + "$vocabulary": { + "https://json-schema.org/draft/2020-12/vocab/core": true, + "https://json-schema.org/draft/2020-12/vocab/applicator": true, + "https://json-schema.org/draft/2020-12/vocab/unevaluated": true, + "https://json-schema.org/draft/2020-12/vocab/validation": true, + "https://json-schema.org/draft/2020-12/vocab/meta-data": true, + "https://json-schema.org/draft/2020-12/vocab/format-annotation": true, + "https://json-schema.org/draft/2020-12/vocab/content": true, + "https://spec.openapis.org/oas/3.2/vocab/base": false + }, + + "description": "OpenAPI v3.2.x documents using draft-07 JSON Schemas", + + "$ref": "https://spec.openapis.org/oas/3.2/schema", + "properties": { + "jsonSchemaDialect": { "$ref": "#/$defs/dialect" } + }, + + "$defs": { + "dialect": { "const": "http://json-schema.org/draft-07/schema#" }, + + "schema": { + "$dynamicAnchor": "meta", + "$ref": "https://spec.openapis.org/oas/3.2/dialect/base", + "properties": { + "$schema": { "$ref": "#/$defs/dialect" } + } + } + } +}; diff --git a/openapi-3-2/schema-draft-2019-09.js b/openapi-3-2/schema-draft-2019-09.js new file mode 100644 index 0000000..779adeb --- /dev/null +++ b/openapi-3-2/schema-draft-2019-09.js @@ -0,0 +1,33 @@ +export default { + "$schema": "https://json-schema.org/draft/2020-12/schema", + + "$vocabulary": { + "https://json-schema.org/draft/2020-12/vocab/core": true, + "https://json-schema.org/draft/2020-12/vocab/applicator": true, + "https://json-schema.org/draft/2020-12/vocab/unevaluated": true, + "https://json-schema.org/draft/2020-12/vocab/validation": true, + "https://json-schema.org/draft/2020-12/vocab/meta-data": true, + "https://json-schema.org/draft/2020-12/vocab/format-annotation": true, + "https://json-schema.org/draft/2020-12/vocab/content": true, + "https://spec.openapis.org/oas/3.2/vocab/base": false + }, + + "description": "openapi v3.2.x documents using 2019-09 json schemas", + + "$ref": "https://spec.openapis.org/oas/3.2/schema", + "properties": { + "jsonschemadialect": { "$ref": "#/$defs/dialect" } + }, + + "$defs": { + "dialect": { "const": "https://json-schema.org/draft/2019-09/schema" }, + + "schema": { + "$dynamicanchor": "meta", + "$ref": "https://spec.openapis.org/oas/3.2/dialect/base", + "properties": { + "$schema": { "$ref": "#/$defs/dialect" } + } + } + } +}; diff --git a/openapi-3-2/schema-draft-2020-12.js b/openapi-3-2/schema-draft-2020-12.js new file mode 100644 index 0000000..39c39a8 --- /dev/null +++ b/openapi-3-2/schema-draft-2020-12.js @@ -0,0 +1,33 @@ +export default { + "$schema": "https://json-schema.org/draft/2020-12/schema", + + "$vocabulary": { + "https://json-schema.org/draft/2020-12/vocab/core": true, + "https://json-schema.org/draft/2020-12/vocab/applicator": true, + "https://json-schema.org/draft/2020-12/vocab/unevaluated": true, + "https://json-schema.org/draft/2020-12/vocab/validation": true, + "https://json-schema.org/draft/2020-12/vocab/meta-data": true, + "https://json-schema.org/draft/2020-12/vocab/format-annotation": true, + "https://json-schema.org/draft/2020-12/vocab/content": true, + "https://spec.openapis.org/oas/3.2/vocab/base": false + }, + + "description": "openapi v3.2.x documents using 2020-12 json schemas", + + "$ref": "https://spec.openapis.org/oas/3.2/schema", + "properties": { + "jsonschemadialect": { "$ref": "#/$defs/dialect" } + }, + + "$defs": { + "dialect": { "const": "https://json-schema.org/draft/2020-12/schema" }, + + "schema": { + "$dynamicanchor": "meta", + "$ref": "https://spec.openapis.org/oas/3.2/dialect/base", + "properties": { + "$schema": { "$ref": "#/$defs/dialect" } + } + } + } +}; diff --git a/openapi-3-2/schema.js b/openapi-3-2/schema.js new file mode 100644 index 0000000..4165001 --- /dev/null +++ b/openapi-3-2/schema.js @@ -0,0 +1,5 @@ +export default { + "$schema": "https://json-schema.org/draft/2020-12/schema", + "description": "The description of OpenAPI v3.2.x Documents without Schema Object validation", + "$comment": "The schema is not published yet" +}; From e99010766ab9030a0f3da05a54f8a11ace184706 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Mon, 16 Jun 2025 09:51:50 -0700 Subject: [PATCH 35/40] 1.16.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a6cba6e..d7d70d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.15.1", + "version": "1.16.0", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From f15d7a37838894239936e31d7510dfe038afb641 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Mon, 16 Jun 2025 10:21:24 -0700 Subject: [PATCH 36/40] Fix type error --- openapi-3-1/json-schema-test-suite.spec.ts | 1 + openapi-3-2/json-schema-test-suite.spec.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/openapi-3-1/json-schema-test-suite.spec.ts b/openapi-3-1/json-schema-test-suite.spec.ts index 9740011..cf449fe 100644 --- a/openapi-3-1/json-schema-test-suite.spec.ts +++ b/openapi-3-1/json-schema-test-suite.spec.ts @@ -81,6 +81,7 @@ const runTestSuite = (draft: string, dialectId: string) => { return; } url = `http://${draft}-test-suite.json-schema.org/${entry.name}/${encodeURIComponent(suite.description)}`; + // @ts-expect-error Covert from 2020-12 if (typeof suite.schema === "object" && suite.schema.$schema === "https://json-schema.org/draft/2020-12/schema") { delete suite.schema.$schema; } diff --git a/openapi-3-2/json-schema-test-suite.spec.ts b/openapi-3-2/json-schema-test-suite.spec.ts index 992b582..fa0c27b 100644 --- a/openapi-3-2/json-schema-test-suite.spec.ts +++ b/openapi-3-2/json-schema-test-suite.spec.ts @@ -81,6 +81,7 @@ const runTestSuite = (draft: string, dialectId: string) => { return; } url = `http://${draft}-test-suite.json-schema.org/${entry.name}/${encodeURIComponent(suite.description)}`; + // @ts-expect-error Covert from 2020-12 if (typeof suite.schema === "object" && suite.schema.$schema === "https://json-schema.org/draft/2020-12/schema") { delete suite.schema.$schema; } From 5892278a303286277bfe69b55a81ae112e157326 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Tue, 8 Jul 2025 13:07:50 -0700 Subject: [PATCH 37/40] `if` is a simple applicator --- lib/keywords/if.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/keywords/if.js b/lib/keywords/if.js index 0ff2fd7..a09ac09 100644 --- a/lib/keywords/if.js +++ b/lib/keywords/if.js @@ -10,4 +10,6 @@ const interpret = (ifSchema, instance, context) => { return true; }; -export default { id, compile, interpret }; +const simpleApplicator = true; + +export default { id, compile, interpret, simpleApplicator }; From f836214601d751ac6aa420fde2d19f75cf730c05 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Tue, 8 Jul 2025 13:08:18 -0700 Subject: [PATCH 38/40] 1.16.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d7d70d0..2fb3e7b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.16.0", + "version": "1.16.1", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js", From 977fccfb20d1760797a65c23fd5bd0cf943707a1 Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Sat, 12 Jul 2025 21:12:20 -0700 Subject: [PATCH 39/40] Suppress excessive unevaluated errors --- lib/keywords/unevaluatedItems.js | 6 ++- lib/keywords/unevaluatedProperties.js | 6 ++- lib/output-basic.spec.ts | 41 ++++++++++++++++++++ lib/output-detailed.spec.ts | 55 +++++++++++++++++++++++++++ 4 files changed, 104 insertions(+), 4 deletions(-) diff --git a/lib/keywords/unevaluatedItems.js b/lib/keywords/unevaluatedItems.js index 353b33c..067cab3 100644 --- a/lib/keywords/unevaluatedItems.js +++ b/lib/keywords/unevaluatedItems.js @@ -19,10 +19,12 @@ const interpret = ([schemaUrl, unevaluatedItems], instance, context) => { return true; } const evaluatedItemsPlugin = new EvaluatedItemsPlugin(schemaUrl); - Validation.interpret(schemaUrl, instance, { + if (!Validation.interpret(schemaUrl, instance, { ...context, plugins: [...context.ast.plugins, evaluatedItemsPlugin] - }); + })) { + return true; + } const evaluatedItems = evaluatedItemsPlugin.evaluatedItems; let isValid = true; diff --git a/lib/keywords/unevaluatedProperties.js b/lib/keywords/unevaluatedProperties.js index dd388b4..ac1af30 100644 --- a/lib/keywords/unevaluatedProperties.js +++ b/lib/keywords/unevaluatedProperties.js @@ -19,10 +19,12 @@ const interpret = ([schemaUrl, unevaluatedProperties], instance, context) => { return true; } const evaluatedPropertiesPlugin = new EvaluatedPropertiesPlugin(schemaUrl); - Validation.interpret(schemaUrl, instance, { + if (!Validation.interpret(schemaUrl, instance, { ...context, plugins: [...context.ast.plugins, evaluatedPropertiesPlugin] - }); + })) { + return true; + } const evaluatedProperties = evaluatedPropertiesPlugin.evaluatedProperties; let isValid = true; diff --git a/lib/output-basic.spec.ts b/lib/output-basic.spec.ts index 90edfa5..8811b86 100644 --- a/lib/output-basic.spec.ts +++ b/lib/output-basic.spec.ts @@ -645,6 +645,28 @@ describe("Basic Output Format", () => { }); }); + test("invalid - doesn't apply if the schema fails", async () => { + registerSchema({ + properties: { + foo: true, + bar: false + }, + unevaluatedProperties: false + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: true, baz: null }, BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/properties/bar`, + instanceLocation: "#/bar" + } + ] + }); + }); + test("invalid - schema", async () => { registerSchema({ unevaluatedProperties: { type: "string" } @@ -705,6 +727,25 @@ describe("Basic Output Format", () => { }); }); + test("invalid - doesn't apply if the schema fails", async () => { + registerSchema({ + prefixItems: [true, false], + unevaluatedItems: false + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42, true, null], BASIC); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/prefixItems/1`, + instanceLocation: "#/1" + } + ] + }); + }); + test("valid", async () => { registerSchema({ unevaluatedItems: false }, schemaUri, dialectUri); const output = await validate(schemaUri, [], BASIC); diff --git a/lib/output-detailed.spec.ts b/lib/output-detailed.spec.ts index 8b78a28..ac913ac 100644 --- a/lib/output-detailed.spec.ts +++ b/lib/output-detailed.spec.ts @@ -788,6 +788,35 @@ describe("Detailed Output Format", () => { }); }); + test("invalid - doesn't apply if the schema fails", async () => { + registerSchema({ + properties: { + foo: true, + bar: false + }, + unevaluatedProperties: false + }, schemaUri, dialectUri); + const output = await validate(schemaUri, { foo: 42, bar: true, baz: null }, DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/properties", + absoluteKeywordLocation: `${schemaUri}#/properties`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/properties/bar`, + instanceLocation: "#/bar" + } + ] + } + ] + }); + }); + test("valid", async () => { registerSchema({ unevaluatedProperties: false }, schemaUri, dialectUri); const output = await validate(schemaUri, {}, DETAILED); @@ -844,6 +873,32 @@ describe("Detailed Output Format", () => { }); }); + test("invalid - doesn't apply if the schema fails", async () => { + registerSchema({ + prefixItems: [true, false], + unevaluatedItems: false + }, schemaUri, dialectUri); + const output = await validate(schemaUri, [42, true, null], DETAILED); + + expect(output).to.eql({ + valid: false, + errors: [ + { + keyword: "https://json-schema.org/keyword/prefixItems", + absoluteKeywordLocation: `${schemaUri}#/prefixItems`, + instanceLocation: "#", + errors: [ + { + keyword: "https://json-schema.org/evaluation/validate", + absoluteKeywordLocation: `${schemaUri}#/prefixItems/1`, + instanceLocation: "#/1" + } + ] + } + ] + }); + }); + test("valid", async () => { registerSchema({ unevaluatedItems: false }, schemaUri, dialectUri); const output = await validate(schemaUri, [], DETAILED); From f48086117c55c7da6931337c55911ae557103d1a Mon Sep 17 00:00:00 2001 From: Jason Desrosiers Date: Sat, 12 Jul 2025 21:14:20 -0700 Subject: [PATCH 40/40] 1.16.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2fb3e7b..d1a4ea5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hyperjump/json-schema", - "version": "1.16.1", + "version": "1.16.2", "description": "A JSON Schema validator with support for custom keywords, vocabularies, and dialects", "type": "module", "main": "./stable/index.js",