UNPKG

ask-cli

Version:

Alexa Skills Kit (ASK) Command Line Interfaces

75 lines (74 loc) 3.82 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createCommand = void 0; const abstract_command_1 = require("../../abstract-command"); const ui_1 = __importDefault(require("../../configure/ui")); const option_model_json_1 = __importDefault(require("../../option-model.json")); const authorization_controller_1 = __importDefault(require("../../../controllers/authorization-controller")); const constants_1 = __importDefault(require("../../../utils/constants")); const json_view_1 = __importDefault(require("../../../view/json-view")); const messenger_1 = __importDefault(require("../../../view/messenger")); class GenerateLwaTokensCommand extends abstract_command_1.AbstractCommand { name() { return "generate-lwa-tokens"; } description() { return "generate Login with Amazon tokens from any LWA client"; } requiredOptions() { return []; } optionalOptions() { return ["client-id", "client-confirmation", "scopes", "no-browser", "debug"]; } async handle(cmd) { const authConfig = { auth_client_type: "LWA", clientId: cmd.clientId, clientConfirmation: cmd.clientConfirmation, scope: cmd.scopes || constants_1.default.LWA.DEFAULT_PUBLIC_SCOPES, doDebug: cmd.debug, }; // redirect_url must be pre-set depending on the CLI mode and with the trusted domain if (cmd.browser === false) { const lwaController = new authorization_controller_1.default({ ...authConfig, redirectUri: constants_1.default.LWA.S3_RESPONSE_PARSER_URL }); const authorizeUrl = lwaController.getAuthorizeUrl(); messenger_1.default.getInstance().info(`Paste the following url to your browser:\n ${authorizeUrl}`); return new Promise((resolve, reject) => { ui_1.default.getAuthCode((uiErr, authCode) => { if (uiErr) { messenger_1.default.getInstance().error(uiErr); return reject(uiErr); } lwaController.getAccessTokenUsingAuthCode(authCode, (getTokenErr, accessToken) => { if (getTokenErr) { messenger_1.default.getInstance().error(getTokenErr); return reject(getTokenErr); } messenger_1.default.getInstance().info("\nThe LWA tokens result:"); messenger_1.default.getInstance().info(json_view_1.default.toString(accessToken)); return resolve(); }); }); }); } else { const lwaController = new authorization_controller_1.default({ ...authConfig, redirectUri: `http://127.0.0.1:${constants_1.default.LWA.LOCAL_PORT}/cb` }); return new Promise((resolve, reject) => { lwaController.getTokensByListeningOnPort((browserGetTokenErr, accessToken) => { if (browserGetTokenErr) { messenger_1.default.getInstance().error(browserGetTokenErr); return reject(browserGetTokenErr); } messenger_1.default.getInstance().info("The LWA tokens result:"); messenger_1.default.getInstance().info(json_view_1.default.toString(accessToken)); resolve(); }); }); } } } exports.default = GenerateLwaTokensCommand; exports.createCommand = new GenerateLwaTokensCommand(option_model_json_1.default).createCommand();