async addAuthToken(authToken, config) { if (!config) { config = await this.loadConfig(); } const payload = jwt.decode(authToken); if (!payload || !payload.url) { // eslint-disable-next-line no-throw-literal throw 'Malformed Cube Cloud token'; } config.auth = config.auth || {}; config.auth[payload.url] = { auth: authToken }; await this.writeConfig(config); return config; }
async deployAuth(url) { if (process.env.CUBE_CLOUD_DEPLOY_AUTH) { const payload = jwt.decode(process.env.CUBE_CLOUD_DEPLOY_AUTH); if (!payload.url) { throw new Error('Malformed token in CUBE_CLOUD_DEPLOY_AUTH'); } if (url && payload.url !== url) { throw new Error('CUBE_CLOUD_DEPLOY_AUTH token doesn\'t match url in .cubecloud'); } return { [payload.url]: { auth: process.env.CUBE_CLOUD_DEPLOY_AUTH } }; } const config = await this.loadConfig(); if (config.auth) { return config.auth; } else { const auth = await inquirer.prompt([{ name: 'auth', message: `Cube Cloud Auth Token${url ? ` for ${url}` : ''}` }]); const authToken = auth.auth; return (await this.addAuthToken(authToken, config)).auth; } }