There is currently a bug when running `node@18.14.2` when running with
experimentalLoader
```
TypeError: The URL must be of scheme file
at new NodeError (node:internal/errors:399:5)
at Object.fileURLToPath (node:internal/url:1492:11)
at resolve (./node_modules/@playwright/test/lib/experimentalLoader.js:39:48)
at nextResolve (node:internal/modules/esm/loader:163:22)
at ESMLoader.resolve (node:internal/modules/esm/loader:838:24)
at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:7)
at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:79:21)
```
This came from my test `vrt.spec.ts` which had a non package import
inside of it
```ts
import fs from "node:fs/promises"
```
The test run failed due to node imports not returning fileUrls when
resolved.
---------
Co-authored-by: Nowell Strite <nstrite@nvidia.com>
A small change in the API requires `shortCircuit: true` when returning the
transformed source.
Another API change removes third argument from the chained resolve/load,
but passing three instead of two still works.
This uses `Module._resolveFilename` to intercept module resolution and
check `tsconfig.paths` similarly to pirates usage ot `Module._compile`.
Previously, we resolved during compilation that required reproducible
resolution due to caching. Now we can resolve as we go and support
all `tsconfig.paths`.