ask-cli
Version:
Alexa Skills Kit (ASK) Command Line Interfaces
75 lines (74 loc) • 3.82 kB
JavaScript
;
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();