Fetch is not Defined

I’m very new to Javascript and just built my very first bot, I try to run my bot and it WORKS! But when I use the discord command it crashes on Replit :(. I have done npm install node-fetch but that doesnt seem to be working aswell. I am depsperate in finishing my first bot please help.
Here is the error:

/home/runner/myrepl/index.js:52
    fetch(`https://www.rolimons.com/uaid/` + id).then(res => res.text()).then(res => {
    ^

ReferenceError: fetch is not defined
    at Client.<anonymous> (/home/runner/Poisithink/index.js:52:5)
    at Client.emit (node:events:390:28)
    at Client.emit (node:domain:475:12)
    at MessageCreateAction.handle (/home/runner/Poisithink/node_modules/discord.js/src/client/actions/MessageCreate.js:26:14)
    at Object.module.exports [as MESSAGE_CREATE] (/home/runner/Poisithink/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (/home/runner/Poisithink/node_modules/discord.js/src/client/websocket/WebSocketManager.js:351:31)
    at WebSocketShard.onPacket (/home/runner/Poisithink/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (/home/runner/Poisithink/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
    at WebSocket.onMessage (/home/runner/myrepl/node_modules/ws/lib/event-target.js:199:18)
repl process died unexpectedly: exit status 1

My Index.js is:

const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
const { token } = require("./token.json");
var jsonconfig = require("./config.json")
var jsonconfig,DISCORD_ID
var CMDS = jsonconfig.CMDS

client
    .login(token);

var prefix = '$'
client.on("messageCreate", message => {
  console.log('Ready!');
var args = message.content.split(" ")
args.forEach((a, b) => {
  args[b] = a.replace("`", "")

  args[b] = args[b].replace(".", "")

  args[b] = args[b].replace("`", "")
  args[b] = args[b].replace(`"`, "")

  args[b] = args[b].replace(`'`, "")

})
var args = message.content.split(" ")
if (message.author.bot == false) {
  if (message.content.startsWith("$")) {

    if (message.channel.id != CMDS && message.author.id != DISCORD_ID) {
      message.reply("stop using cmds here idiot. <#" + CMDS + ">")
      return;
    }
  }

  args.forEach((a, b) => {
    args[b] = a.replace("`", "")
    
    args[b] = args[b].replace(".", "")

    args[b] = args[b].replace("`", "")
    args[b] = args[b].replace(`"`, "")

    args[b] = args[b].replace(`'`, "")

        })
  switch (args[0]) {
    
    case prefix + "pois":
  var id = parseInt(args[1])
  if (id) {
    fetch(`https://www.rolimons.com/uaid/` + id).then(res => res.text()).then(res => {
      //// clog(res)
      if (res != 'Uaid not found, try again later') {
        var search = res,
          first = 'uaid_details'
        var second = `owner_list`;
        var itemdat = JSON.parse(search.substring(search.indexOf(first) + first.length, search.indexOf(second)).replace(";", "").replace("=", "").replace("var", ''))
        // clog(itemdat)
        var search = res,
          first = 'item_details'
        var second = `uaid_details`;
        var itemname = JSON.parse(search.substring(search.indexOf(first) + first.length, search.indexOf(second)).replace(";", "").replace("=", "").replace("var", ''))
        var search = res,
          first = 'owner_list'
        var second = `lucky_cat_uaid`;
        var owners = JSON.parse(search.substring(search.indexOf(first) + first.length, search.indexOf(second)).replace(";", "").replace("=", "").replace("var", ''))
        message.reply(`Checking be patient bozo...`)
        var em = new discord.messageEmbed()
        .setFooter("Archs")
      .setURL("https://www.rolimons.com/item/" + args[1])
        .setColor("#ffc0cb")
        .setThumbnail("https://www.roblox.com/thumbs/asset.ashx?width=420&height=420&assetid=" + itemdat["asset_id"])
        .setTitle(`UAID ` + args[1])
        .setURL(`https://www.rolimons.com/uaid/` + args[1])
        .setAuthor(itemname.name, `https://www.roblox.com/thumbs/asset.ashx?width=420&height=420&assetid=` + itemdat["asset_id"])
      if (itemdat.serial) {
        em.addField('SERIAL', itemdat.serial)
          }
        em.addField('OWNER', (itemdat.owner_name || `Hidden/Deleted`))
        em.addField(`Last Traded`, itemdat["updated_relative_string"])
        message.reply(em)
        if (itemdat["updated_relative_string"].search(`month`) != -1 || itemdat["updated_relative_string"].search(`year`) != -1) {
          message.channel.send(`Since the current owner has had it for more than a month, we have deemed this uaid(${args[1]}) as CLEAN :white_check_mark:`)
          } else {
          comped_detected = false
          Object.keys(owners).forEach(x => {
            var item = owners[x][0]
            if (item && parseInt(x) + 2628000 >= Date.now() / 1000) {
              fetch(`https://avatar.roblox.com/v1/users/${item}/avatar`).then(res => res.json().catch(err => { })).then(avatar => {
                avatar.assets.forEach(a => {
                  if (badassets[a.id] != undefined) {
                    comped_detected = true
                                                            }
                })
                fetch("https://inventory.roblox.com/v1/users/" + item + "/assets/collectibles?sortOrder=Asc&limit=100").then(res => res.json().catch(err => { })).then(p => {
                  // clog(p)
                  var amt = 0
                  if (p.data) {
                    p.data.forEach(l => {
                      amt = amt + itemdata[l.assetId][4]
                      })
                    if (amt < 5000) {
                      comped_detected = true
                    }
                  }
                })
              })
            }
          })
        }
      }
    }
  )}
  }
}
})

Please help I am SO SO CLOSE to finishing my very first discord bot!!! Any help is appreciated.