Serverless functions created in v1.14 only have source files
(serverless-function/{id}/draft/src/index.ts). The built files
(built-function/{id}/draft/index.mjs) are only created when a
function is executed. The migration assumed both always exist,
crashing with ENOENT (local storage) or "Missing index.mjs"
(S3) for never-executed functions.
When the built folder is missing, build the source on the fly
using esbuild with the same config used elsewhere in the codebase.