From 9bea2c0a4b41cf4f89127ff914089a165dca1105 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Jun 2021 22:24:14 +0000 Subject: [PATCH 1/2] Build(deps): Bump ws from 6.2.1 to 6.2.2 Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/commits) --- updated-dependencies: - dependency-name: ws dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index ae627a90..4f36005e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9322,9 +9322,9 @@ wrappy@1: integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= ws@^6.0.0, ws@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== dependencies: async-limiter "~1.0.0" From 7c84708847d986a3e7921d01072801f22bd7a061 Mon Sep 17 00:00:00 2001 From: Thackery Archuletta <29556317+colossatr0n@users.noreply.github.com> Date: Tue, 6 Jul 2021 10:37:04 -0600 Subject: [PATCH 2/2] fix(ajsf/core): Fix $refs check when enum has `null` value. Added null check for `subSchema`. When an enum has a `null` value, the $refs check fail since the `subSchema` variable will be `null` and the logic tries to access `'$ref'` of `null`. --- .../src/lib/shared/json-schema.functions.ts | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/projects/ajsf-core/src/lib/shared/json-schema.functions.ts b/projects/ajsf-core/src/lib/shared/json-schema.functions.ts index 97514ff1..e8b23b59 100755 --- a/projects/ajsf-core/src/lib/shared/json-schema.functions.ts +++ b/projects/ajsf-core/src/lib/shared/json-schema.functions.ts @@ -643,32 +643,34 @@ export function resolveSchemaReferences( // Make sure all remaining schema $refs are recursive, and build final // schemaRefLibrary, schemaRecursiveRefMap, dataRecursiveRefMap, & arrayMap JsonPointer.forEachDeep(compiledSchema, (subSchema, subSchemaPointer) => { - if (isString(subSchema['$ref'])) { - let refPointer = JsonPointer.compile(subSchema['$ref']); - if (!JsonPointer.isSubPointer(refPointer, subSchemaPointer, true)) { - refPointer = removeRecursiveReferences(subSchemaPointer, recursiveRefMap); - JsonPointer.set(compiledSchema, subSchemaPointer, { $ref: `#${refPointer}` }); - } - if (!hasOwn(schemaRefLibrary, 'refPointer')) { - schemaRefLibrary[refPointer] = !refPointer.length ? compiledSchema : - getSubSchema(compiledSchema, refPointer, schemaRefLibrary, recursiveRefMap); - } - if (!schemaRecursiveRefMap.has(subSchemaPointer)) { - schemaRecursiveRefMap.set(subSchemaPointer, refPointer); - } - const fromDataRef = JsonPointer.toDataPointer(subSchemaPointer, compiledSchema); - if (!dataRecursiveRefMap.has(fromDataRef)) { - const toDataRef = JsonPointer.toDataPointer(refPointer, compiledSchema); - dataRecursiveRefMap.set(fromDataRef, toDataRef); + if (isObject(subSchema)) { + if (isString(subSchema['$ref'])) { + let refPointer = JsonPointer.compile(subSchema['$ref']); + if (!JsonPointer.isSubPointer(refPointer, subSchemaPointer, true)) { + refPointer = removeRecursiveReferences(subSchemaPointer, recursiveRefMap); + JsonPointer.set(compiledSchema, subSchemaPointer, { $ref: `#${refPointer}` }); + } + if (!hasOwn(schemaRefLibrary, 'refPointer')) { + schemaRefLibrary[refPointer] = !refPointer.length ? compiledSchema : + getSubSchema(compiledSchema, refPointer, schemaRefLibrary, recursiveRefMap); + } + if (!schemaRecursiveRefMap.has(subSchemaPointer)) { + schemaRecursiveRefMap.set(subSchemaPointer, refPointer); + } + const fromDataRef = JsonPointer.toDataPointer(subSchemaPointer, compiledSchema); + if (!dataRecursiveRefMap.has(fromDataRef)) { + const toDataRef = JsonPointer.toDataPointer(refPointer, compiledSchema); + dataRecursiveRefMap.set(fromDataRef, toDataRef); + } } - } - if (subSchema.type === 'array' && - (hasOwn(subSchema, 'items') || hasOwn(subSchema, 'additionalItems')) - ) { - const dataPointer = JsonPointer.toDataPointer(subSchemaPointer, compiledSchema); - if (!arrayMap.has(dataPointer)) { - const tupleItems = isArray(subSchema.items) ? subSchema.items.length : 0; - arrayMap.set(dataPointer, tupleItems); + if (subSchema.type === 'array' && + (hasOwn(subSchema, 'items') || hasOwn(subSchema, 'additionalItems')) + ) { + const dataPointer = JsonPointer.toDataPointer(subSchemaPointer, compiledSchema); + if (!arrayMap.has(dataPointer)) { + const tupleItems = isArray(subSchema.items) ? subSchema.items.length : 0; + arrayMap.set(dataPointer, tupleItems); + } } } }, true);