old_contents: import { join } from 'path'
  import { readdirSync, existsSync } from 'fs'
  
  export const IS_BUNDLED_PAGE = /^bundles[/\\]pages.*\.js$/
  export const MATCH_ROUTE_NAME = /^bundles[/\\]pages[/\\](.*)\.js$/
  
  export function getAvailableChunks (distDir) {
    const chunksDir = join(distDir, 'chunks')
    if (!existsSync(chunksDir)) return {}
  
    const chunksMap = {}
    const chunkFiles = readdirSync(chunksDir)
  
    chunkFiles.forEach(filename => {
      if (/\.js$/.test(filename)) {
        const chunkName = filename.replace(/-.*/, '')
        chunksMap[chunkName] = filename
      }
    })
  
    return chunksMap
  }
  
  const internalPrefixes = [
    /^\/_next\//,
    /^\/static\//
  ]
  
  export function isInternalUrl (url) {
    for (const prefix of internalPrefixes) {
      if (prefix.test(url)) {
        return true
      }
    }
  
    return false
  }
  
  export function addCorsSupport (req, res) {
    if (!req.headers.origin) {
      return { preflight: false }
    }
  
    res.setHeader('Access-Control-Allow-Origin', req.headers.origin)
    res.setHeader('Access-Control-Request-Method', req.headers.origin)
    res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET')
    res.setHeader('Access-Control-Allow-Headers', req.headers.origin)
  
    if (req.method === 'OPTIONS') {
      res.writeHead(200)
      res.end()
      return { preflight: true }
    }
  
    return { preflight: false }
  }
  
new_contents: import { join } from 'path'
  import { readdirSync, existsSync } from 'fs'
  
  export const IS_BUNDLED_PAGE = /^bundles[/\\]pages.*\.js$/
  export const MATCH_ROUTE_NAME = /^bundles[/\\]pages[/\\](.*)\.js$/
  
  export function getAvailableChunks (distDir) {
    const chunksDir = join(distDir, 'chunks')
    if (!existsSync(chunksDir)) return {}
  
    const chunksMap = {}
    const chunkFiles = readdirSync(chunksDir)
  
    chunkFiles.forEach(filename => {
      if (/\.js$/.test(filename)) {
        const chunkName = filename.replace(/-[^-]*/, '')
        chunksMap[chunkName] = filename
      }
    })
  
    return chunksMap
  }
  
  const internalPrefixes = [
    /^\/_next\//,
    /^\/static\//
  ]
  
  export function isInternalUrl (url) {
    for (const prefix of internalPrefixes) {
      if (prefix.test(url)) {
        return true
      }
    }
  
    return false
  }
  
  export function addCorsSupport (req, res) {
    if (!req.headers.origin) {
      return { preflight: false }
    }
  
    res.setHeader('Access-Control-Allow-Origin', req.headers.origin)
    res.setHeader('Access-Control-Request-Method', req.headers.origin)
    res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET')
    res.setHeader('Access-Control-Allow-Headers', req.headers.origin)
  
    if (req.method === 'OPTIONS') {
      res.writeHead(200)
      res.end()
      return { preflight: true }
    }
  
    return { preflight: false }
  }
  
subject: Use a more appropriate regexp for removing hash from a filename (#4510)