- Fix a bug where
resolveRefswould fail to dereference URI where fragments were encoded with:,/,?,#,@,$,&,+,,,;,=(Issue #186)
- Fix a regression where a reference to the original JSON Reference defintion was not available in the resolution metadata (Issue #176)
- Fix a bug where
.and..in relative references could be represented wrongly inrefDetails.fqURI - Fix a bug where locally-circular references to itself is identified
- Fix a bug where when locally-circular references in relative/remote documents are handled inappropriately such that the local reference is left intact instead of representing in a relative way (Issue #175)
- Upgrade
path-loaderso that the location being resolved is passed tooptions.loaderOptions.processContent(Issue #157)
- Another attempt at fixing the TypeScript definition for
RetrievedResolvedRefsResults(Issue #145)
- Fixed the TypeScript definition for
RetrievedResolvedRefsResults(Issue #145)
- Another attempt at fixing the TypeScript declarations (Issue #139)
- Another attempt at fixing the TypeScript declarations (Issue #139)
- Fixed API documentation and TypeScript declarations (Issue #139)
- Upgraded
path-loaderto upgradesuperagent
- Fix bug where
options.locationhaving URI escapable characters in it breaks resolution (Issue #138)
- Added the
fqURIproperty to the resolved reference metadata (Issue #136) - Fixed bug in circular reference processing where circular references span multiple documents (Issue #135)
- Fixed issue where
#getRefDetailsdid not validate JSON Pointer values leading to runtime failure later when resolving references (Issue #131) - Fixed issue where URI encoded JSON References were not resolved properly (Issue #130)
- Fix bug where objects containing a
lengthproperty were not processed properly (PR #129)
- Fix bug where local references containing remote references were unresolved (Issue #125)
- Updated dependencies for security
- Added
options.locationto allow for better relative reference resolution - Added
options.resolveCircularsto allow for resolving circular references (Issue #74) - Removed
options.relativeBaseas it's too confusing and easier to get right usingoptions.location - Fixed accidental feature of resolver that would that resolved remote references against parent documents (Issue #100)
- Fixed issue where
json-refs resolvedid not handle a location with a fragment in it (Issue #104) - Fixed issue where
options.filtercould keep remote references from being fully resolved (Issue #111) - Fixed issue where circular reference in remote documents were not handled properly (Issue #97)
- Fixed issue where references to the root document were not marked as circular at proper depth (Issue #88)
- Fixed issue where references within the root document but outside of
options.subDocPathwere rolled up instead of reporting the real reference locatin (Issue #112) - Fixed issue where documents could be resolved more than once (Issues #87, #89 and #103)
- Fixed issue with remote references not being fully resolved (Issue #80)
- Rewrote resolver for accuracy and efficiency (Issues #80, #87, #88, #89, #97, #100 and #103)
- Updated
#pathFromPtrto include the reason why#isPtrfails (Issue #85)
- Updated dependencies for security (Issues #108, #109)
- Fixed a bug where identifying circular references failed for local, indirect references (Issue #82)
- Fixed an issue with altering the original input
- Fixed an issue with recursively processing references already planned to be processed created extra reference metadata which caused issues with resolution (Issue #73)
- Fixed a problem where multiple references to the same object were not all fully resolved (Issue #72)
- Fixed a problem where references were not fully resolved for remote references with fragments (Issue #70)
- Updated handling of resolving circular references to leave circular references as-is instead of resolving to an empty object (Issue #69)
- Scoped fixed for issue #67 to relative references only
- Use Node.js
pathAPIs instead of reinventing them
- Fixed an issue with
#findRefsAtand#resolveRefsAtand relative locations (Issue #67) - Updated
json-refs resolveto validate by default to avoid confusion (Removed the--validateflag and replaced it with the--forceflag to disable validation)
- First pass at a
json-refsCLI utility
- Fixed an issue with options that filter references (
options.filterandoptions.subDocPath) and the internal document cache
- Further address issues with lack of encoding in JSON References (path segments instead of fragments) (Issue #61)
- Fix an issue where a JSON Reference at the root of the document was not resolved properly (Issue #65)
- Added support to work with URI encoded JSON References and to handle JSON References with unescaped special
characters (This means that if you have a reference like
#/paths/{petId}, which is technically invalid, we will not mark it as invalid and will process it. It also means if your reference is escaped, like#/definitions/My%20Pet, it will also work as expected.) (Issue #61) - Fix an issue with combining
options.filterandoptions.includeInvalid(Issue #63) - We now clone the JSON Reference definition and JSON Reference details respectively for
options.refPreProcessor' andoptions.refPostProcessor` (Issue #64)
- Fixed a bug where a reference to another object that shares a common pointer could be marked as
circularerroneously (For example:#/definitions/Person/properties/namereferences#/definitions/PersonWithNameshares the same#/definitions/Personbase but are to different objects) (PR #59)
- Fixed a problem when loading relative paths with relative references
- Fixed another inconsistency with error handling
- Fix a consistency issue with error handling
- Added
#clearCacheto allow you to clear the remote document cache and its JSON References details - Added
#decodePathto allow you to take an array of path segments and decode their JSON Pointer tokens (Issue #47) - Added
#encodePathto allow you to take an array of path segments and encode the special JSON Pointer characters (Issue #47) - Added
#findRefsAtto allow you to retrieve a remote document and then find its references - Added
#getRefDetailsto centralize the code used to generate reference metadata (Also allows you to see why an object you expect to be returned by#findRefsis not returned.) - Added
#resolveRefsAtto allow you to retrieve a remote document and then resolve its references - Fixed a bug where Windows paths containing
\were not processed properly (Issue #48) - Removed
#resolveLocalRefs - Renamed
#isJsonPointerto#isPtr - Renamed
#isJsonReferenceto#isRef - Renamed
#pathFromPointerto#pathFromPtr - Renamed
#pathToPointerto#pathToPtr - Updated
#findRefsto no longer process child properties of JSON Reference objects - Updated
#findRefsto no longer use js-traverse - Updated
#findRefsto use an options objectoptions.filterallows you to filter referencesoptions.includeInvalidallows you to include JSON Reference details for invalid referencesoptions.refPreProcessorallows you to take a JSON Reference like object and process it prior to#isRefbeing called against itoptions.refPostProcessorallows you to take the JSON Reference details/metadata and process it (This runs prior tooptions.filter)options.subDocPathallows you to find JSON References at/below a certain location in the document like objects that fail validation so that you can identify invalid JSON References easier (See API documentation for details)
- Updated
#isPtrto validate the$refvalue is a URI instead of treating all string values as valid - Updated
#isPtrto validate the tokens (Issue #47) - Updated
#isPtrto have an optional second argument which dictates whether or not to throw anErrorfor invalid JSON Pointer values (TheErrorwould have the details as to why the provided value is not a JSON Pointer) (Issue #47) - Updated
#isRefto have an optional second argument which dictates whether or not to throw anErrorfor invalid JSON Reference values (TheErrorwould have the details as to why the provided value is not a JSON Reference) (Issue #47) - Updated
#pathToPtrto take an optional second argument to allow for returning both hash-based (default) and slash-based JSON Pointers - Updated
#resolveRefsto work with the newoptionsobjectoptions.depthwas removedoptions.loaderOptionsis now used for the options passed to path-loaderoptions.prepareRequestwas removed (Now available atoptions.loaderOptions.prepareRequest)options.processContentwas removed (Now available atoptions.loaderOptions.processContent)options.locationwas removed (Now available atoptions.relativeBase)options.relativeBaseis used to specify the root location to resolve relative references from- All
optionsused by#findRefsare supported here
- Added
#resolveLocalRefsto avoid forcing consumers only resolving local references to use a callback/Promise based API (#resolveRefs) - Update reference metadata to record when a reference is remote
- Updated
#findRefsand#resolveRefsto work with arrays and objects (Issue #39)
- Added options to
#resolveRefsthat allow you to choose which reference type(s) to resolve (Issue #27, PR #41)
- Fix a bug in the handling of remote reference errors (Issue #37)
- Fix issue where a hash in
options.locationcould create a double slash in the requested path (Issue #34)
- Fixed support for service/web workers (Issue #32)
- Fixed a bug where unresolved references occur for remote document fragments did not get reported
- Fix problem where local references in a remote document, referenced using a fragment, were not resolved (Issue #30)
- Fix problem where local references in a remote document were not resolved (Issue #30)
- Fix problem where references to schemas with circular composition/inheritance could result in attempting to update reference metadata that does not exist
- Fix problem where circular references caused by composition/inheritance wasn't caught properly
- Circular references are now identified in metadata (Issue #22)
- Fixed a few scenarios where local self references to root didn't work right
- Rewrote using ES5 which removed the need for
lodash-compat #resolveRefsnow collapses all reference pointers so that the metadata key is now the reference to the local document instead of where its$refwas (This is a breaking change and that is why we are doing a1.0release)#resolveRefsnow defers local reference resolution until after remote references are resolved (Issue #26)#resolveRefsnow handles recursive relative references gracefully (Issue #24)#resolveRefsnow records metadata for remote references (Issue #25)#resolveRefsnow supports callbacks, as always, and promises (Always returns a promise even if callbacks are used)
- Unresolved references leave the original reference in the document so as not to break JSON Schema validation
- Errors resolving remote references no longer bubble up errors and instead show up in metadata as unresolved
- Fix issue with Bower build as it had old dependency paths in it (PR #15)
- Fix issue with circular references not being detected in arrays (Issue #20)
- Fix problem with references at the root of the document and having hashes (Issue #19)
- Support relative references (Issue 11)
- Support to specify a depth for
#resolveRefsfor circular references (Issue #5)
- Replace file loading with path-loader
- Fixed an issue due to difference in superagent in browser vs. Node.js
- Fixed a browser build issue
- Updated
isRemotePointerto only returntruefor explicit URLs or relative paths
- Added support in
resolveRefsto alter a remote request prior to sending the request (Useful for authentication) (Issue #12) - Added support in
resolveRefsto process the remote request responses - Fixed bug in
resolveRefswhere multiple remote references resulted in callback being called multiple times - Updated
isRemotePointerto handle relative references and file URL references (Issue #9) - Updated
resolveRefsto return resolution metadata (What references were resolved, where they were located and what they resolved to)