This module is loosely modelled after the scws2 Python module, supporting the 2.x REST API.
const { ConManager } = require('scjs');
const baseurl = "http://localhost/ContentManager";
const username = "user";
const password = "pass";
const cm = new ConManager(baseurl);
(async () => {
    const resp = await cm.login(username, password);
    try {
        const players = await cm.get('players', { 'limit': 0, 'offset': 0, 'fields': 'id,name,enabled,active,type' });
        console.log(players.list);
        const media = await cm.get('media', { 'limit': 10, 'filters': '{"type":{"values":["IMAGE"]}}' });
        let items = [];
        for (const item of media.list) {
            items.push(cm.download(item.downloadPath, item.name));
        }
        await Promise.all(items);
        const item = await cm.upload('LocalFolder/MyPicture.jpg', 'RemoteFolder/MyPicture.jpg');
        console.log(item);
    } finally {
        await cm.post('auth/logout');
    }
})().catch((e) => {
    console.log(e);
});