This “friendship” sounds toxic. Realistically, you should have cut her off a while ago. The things she is saying to you are unacceptable. It will only continue because she knows that you will not cut contact. She has even been bold enough to say you have no one else, as if she is justifying the way she speaks to you. I ended a 20 year friendship because she told me I was an “ignorant black person” for not agreeing that anyone that wasn’t BME was racist. I forgave other behaviours. That was the final straw for me. I haven’t looked back since.
I thought it said “wouldn’t continue to forgive them”. I’m blunt and sometimes harsh but I would never speak to my friends like crap, cuss them or make them feel uncomfortable whether they liked what I’m saying or not. So I know for sure if someone did what you’re saying to me they’d have no further access to me cause I don’t play the disrespectful stuff. & If she was wrong I’d let her know so there’d be no room to get on me about not sticking up . Tell her to stop contacting you if she can’t behave like an ADULT
She is way out of line & this isn’t the first time. She’s not a true friend. Cut ties with her ASAP
Talk to this girl and see what's going on, could be something behind the scenes she isn't telling you. Let her know how you feel also but be kind as you never know what is going on in her mind x
If she's a close friend of 10 years I'd see this behaviour (you say has been going on a few months) and be concerned about what might be making her act this way. Perhaps there's something else going on behind the scenes if this is a change in character. I'd have one last talk and try to understand/get to the bottom of things, and set clear boundaries that you won't be spoken to like crap again. At the end of the day she's messaging as well so has a bit more time to think about what she's saying than in the heat of the moment in person. Being concerned doesn't mean being a punching bag, you can give yourself some distance whilst keeping a door open for her to change/open up if there is a bigger issue.