ResolveFilePath will inspect and resolve given file, and make sure that its final path is within the boundaries of
the path specified in repoRoot.
appPath is the path we're operating in, e.g. where a Helm chart was unpacked
to. repoRoot is the path to the root of the repository.
If either appPath or repoRoot is relative, it will be treated as relative
to the current working directory.
valueFile is the path to a value file, relative to appPath. If valueFile is
specified as an absolute path (i.e. leading slash), it will be treated as
relative to the repoRoot. In case valueFile is a symlink in the extracted
chart, it will be resolved recursively and the decision of whether it is in
the boundary of repoRoot will be made using the final resolved path.
valueFile can also be a remote URL with a protocol scheme as prefix,
in which case the scheme must be included in the list of allowed schemes
specified by allowedURLSchemes.
Will return an error if either valueFile is outside the boundaries of the
repoRoot, valueFile is an URL with a forbidden protocol scheme or if
valueFile is a recursive symlink nested too deep. May return errors for
other reasons as well.
resolvedPath will hold the absolute, resolved path for valueFile on success
or set to the empty string on failure.
isRemote will be set to true if valueFile is an URL using an allowed
protocol scheme, or to false if it resolved to a local file.