According to my understanding and what I have just confirmed by searching through the internet, full-stack developer is a software developer that is familiar with technologies from all layers of software. He/she should be able to design and code on a database, a back-end and a front-end. Obviously, it does not mean such person is an expert of all technologies because it is impossible. Even a front-end expert does not have an experience with all front-end frameworks. As far as I understand, a full-stack developer can do the job on all layers but not necessarily he/she is an expert in all libraries.
I bear in mind that for some questions somebody can disagree with me on whether it is necessary knowledge for a full-stack developer or not. And that is fine. I would like to present you my point of view and I even do not want to convince you to it. You have to decide on your own. The first question in two weeks!