I think you just have decide which you'd prefer- having to put up with the puppy in the house or your sister and her family not visiting. If it really annoys you that much, tell her so- sitting stewing about about it isn't going to change anything and is only going to wind you up.
I agree she should have told you they were planning to get your DN a puppy and would need to bring it with them, so you could be prepared/say no or whatever. If they had told you in advance, would you have asked them not to come?
I imagine your DS and BIL decided to get the puppy for their daughter as a lovely christmas present and didn't think about what they were going to do when they came to yours. Somewhat thoughtless of them not to think to mention it, I'll grant you. Worth making a big deal over- maybe not, IMHO.
I think you are in danger of making a mountain out of a molehill. If you think the cat will be a danger to the puppy/be frightened or upset by the puppies presence- could you not just identify a room where the puppy could go (with crate/litter tray and water) and say that your sister/BIL/Niece need to check on the puppy regularly.
We have a cat and 3 dogs. I don't think I'd be put up nor down if guests turned up with a puppy unannounced- as long as they had brought the necessary equipment. Our cat doesn't "come first in her own home"- we do. If we have guests who have to bring their dog, then the cat has to put up with it, frankly. We would keep an area "dog free" for her to retreat to, complete with a bowl of water/litter tray etc. If our dogs don't get on with the visiting dog, we just keep them separated.
Although, in my experience our cat has been more terrified of my nephew when he visits than she ever has of guests dogs. Perhaps I should ask him to be left in a separate room with a crate so as not to scare the cat
?