message: [client] Remove extraneous file read during deployment upload
  The `file` object already contains the contents as a Buffer, so there's no need to read the files again.
  Extracted from
diff: import { Agent } from 'https';
  import retry from 'async-retry';
  import { Sema } from 'async-sema';
  -import fs from 'fs-extra';
  import { DeploymentFile } from './utils/hashes';
  import { fetch, API_FILES, createDebug } from './utils';
  @@ -9,7 +8,7 @@ import { DeploymentError } from './errors';
  import { deploy } from './deploy';
  import { VercelClientOptions, DeploymentOptions } from './types';
  -const isClientNetworkError = (err: Error | DeploymentError) => {
  +const isClientNetworkError = (err: Error) => {
  if (err.message) {
  // These are common network errors that may happen occasionally and we should retry if we encounter these
  return (
  @@ -86,17 +85,6 @@ export async function* upload(
  await semaphore.acquire();
  - const fPath = file.names[0];
  -
  - let body: fs.ReadStream | string | null = null;
  -
  - const stat = await fs.lstat(fPath);
  - if (stat.isSymbolicLink()) {
  - body = await fs.readlink(fPath);
  - } else {
  - body = fs.createReadStream(fPath);
  - }
  -
  const { data } = file;
  let err;
  @@ -115,7 +103,7 @@ export async function* upload(
  'x-now-digest': sha,
  'x-now-size': data.length,
  },
  - body,
  + body: data,
  teamId,
  apiUrl,
  userAgent,
  @@ -152,11 +140,6 @@ export async function* upload(
  } catch (e: any) {
  debug(`An unexpected error occurred in upload promise:\n${e}`);
  err = new Error(e);
  - } finally {
  - if (body && typeof body !== 'string') {
  - body.close();
  - body.destroy();
  - }
  }
  semaphore.release();
  