UNPKG

xrmcli

Version:

A suite of cli tools to support Xrm/D365/Dataverse development

68 lines 3.09 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AddAuthCommandOptions = exports.Authenticate = void 0; const adal_node_1 = require("adal-node"); const commander_1 = require("commander"); const terms_1 = __importDefault(require("./terms")); const authenticateWithUsernamePassword = (tenent, url, username, password, clientid) => // eslint-disable-next-line implicit-arrow-linebreak new Promise((resolve, reject) => { const authContext = new adal_node_1.AuthenticationContext(tenent); authContext.acquireTokenWithUsernamePassword(url, username, password, clientid, (error, response) => { if (error) { reject(error); } if (response.accessToken) { resolve(response); } if (response.error) { reject(response.error); } reject(new Error('Unknow authentication error!')); }); }); const authenticateWithClientSecret = (tenent, url, clientid, secret) => // eslint-disable-next-line implicit-arrow-linebreak new Promise((resolve, reject) => { const authContext = new adal_node_1.AuthenticationContext(tenent); authContext.acquireTokenWithClientCredentials(url, clientid, secret, (error, response) => { if (error) { reject(error); } if (response.accessToken) { resolve(response); } if (response.error) { reject(response.error); } reject(new Error('Unknow authentication error!')); }); }); const Authenticate = (options) => { // eslint-disable-next-line object-curly-newline const { tenent, url, clientid, secret, username, password } = options; if (username && password && clientid) { return authenticateWithUsernamePassword(tenent, url, username, password, clientid); } if (clientid && secret) { return authenticateWithClientSecret(tenent, url, clientid, secret); } throw new Error('Invalid authetication options!'); }; exports.Authenticate = Authenticate; const AddAuthCommandOptions = () => { commander_1.program .requiredOption('-u, --url <url>', `${terms_1.default.d365} Url. e.g. https://myorg.crm11.dynamics.com/`) .option('-n, --username <username>', `Username for ${terms_1.default.d365}`) .option('-p, --password <password>', `Password for ${terms_1.default.d365}`) .option('-cs, --secret <secret>', 'OAuth Client Secret') .requiredOption('-t, --tenent <tenent>', `${terms_1.default.AAD} authority. e.g. https://login.windows.net/myorg.onmicrosoft.com`) .option('-c, --clientid <clientid>', 'OAuth Client Id', '51f81489-12ee-4a9e-aaae-a2591f45987d') .addHelpText('after', terms_1.default.AuthHelp); }; exports.AddAuthCommandOptions = AddAuthCommandOptions; exports.default = exports.Authenticate; //# sourceMappingURL=connect.js.map