tsconfig has to be different for tests due to cjs/esm issues with jest.
Deploy scripts need to use the original tsconfig though,
which is why we have the current nested tsconfigs.
Dynamic imports cause segmentation faults with Jest:
https://github.com/nodejs/node/issues/35889.
We work around this by handling imports in IdentityProviderFactory
differently when Jest is running.
For unit tests we use a different tsconfig
that transpiles dynamic imports differently,
as those are also used in AppRunner.