Expand description
Build a UriComponents from a fully-formed URL string. Handles
file:// (authority-optional) and any other scheme generically
(scheme:path + optional //authority). Fragment / query are split
off verbatim so downstream URI.revive() reconstructs the same URL.
Strings that don’t parse as URLs fall back to { scheme:"file", path:<input> } - a defensive shape the workbench tolerates for
unknown-location placeholders.