UNPKG

@salesforce/plugin-org

Version:

Commands to interact with Salesforce orgs

61 lines 2.66 kB
/* * Copyright (c) 2020, salesforce.com, inc. * All rights reserved. * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import { Flags } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; import { buildFrontdoorUrl } from '../../../shared/orgOpenUtils.js'; import { OrgOpenCommandBase } from '../../../shared/orgOpenCommandBase.js'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const messages = Messages.loadMessages('@salesforce/plugin-org', 'open.agent'); export class OrgOpenAgent extends OrgOpenCommandBase { static summary = messages.getMessage('summary'); static description = messages.getMessage('description'); static examples = messages.getMessages('examples'); static state = 'beta'; static flags = { ...OrgOpenCommandBase.flags, 'target-org': Flags.requiredOrg(), 'api-version': Flags.orgApiVersion(), name: Flags.string({ char: 'n', summary: messages.getMessage('flags.name.summary'), required: true, }), private: Flags.boolean({ summary: messages.getMessage('flags.private.summary'), exclusive: ['url-only', 'browser'], }), browser: Flags.option({ char: 'b', summary: messages.getMessage('flags.browser.summary'), options: ['chrome', 'edge', 'firefox'], // These are ones supported by "open" package exclusive: ['url-only', 'private'], })(), 'url-only': Flags.boolean({ char: 'r', summary: messages.getMessage('flags.url-only.summary'), aliases: ['urlonly'], deprecateAliases: true, }), }; async run() { const { flags } = await this.parse(OrgOpenAgent); this.org = flags['target-org']; this.connection = this.org.getConnection(flags['api-version']); const [frontDoorUrl, retUrl] = await Promise.all([ buildFrontdoorUrl(this.org, this.connection, true), buildRetUrl(this.connection, flags.name), ]); return this.openOrgUI(flags, frontDoorUrl, encodeURIComponent(retUrl)); } } // Build the URL part to the Agent Builder given a Bot API name. const buildRetUrl = async (conn, botName) => { const query = `SELECT id FROM BotDefinition WHERE DeveloperName='${botName}'`; const botId = (await conn.singleRecordQuery(query)).Id; return `AiCopilot/copilotStudio.app#/copilot/builder?copilotId=${botId}`; }; //# sourceMappingURL=agent.js.map