v0.18.3
This fixes vacuum rules that lookup operations in the index where:
The original spec (root.yaml) has an external reference to a file in a different directory ./paths/mypath.yaml
In that location, there is a relative reference to a path-item in a nearby file, e.g. ./components.yaml#/path-item
What was previously happening in [2] is that the ./components.yaml was being resolved in ./components.yaml (the parent directory) instead of ./paths/components.yaml (the right directory). This resulted in a failure to evaluate path item references and unexpected linting failures.
This changes adjusts the lookup to search through the index's nodeMap to find the location of the YAML $ref node value that's been evaluated. Once we find it, we lookup the associated index of that file and do a seek in that specific index.
We also fix a race condition with resolving the specification asyncronously -- if we are going to an external ref we must do it sequentially as otherwise an index might be added multiple times during an async FindComponent call. This latent bug was exposed as we tested this.