UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

281 lines 14.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendMessageNode = void 0; /** Custom Modules */ const createNodeDescriptor_1 = require("../../../createNodeDescriptor"); /** Helper Modules */ const design_1 = require("../utils/design"); const paramUtils_1 = require("../utils/paramUtils"); const utils_1 = require("./helper/utils"); exports.sendMessageNode = (0, createNodeDescriptor_1.createNodeDescriptor)({ type: "sendMessage", defaultLabel: "Send Message", summary: "UI__NODE_EDITOR__VG__SEND_MESSAGE__SUMMARY", // @ts-ignore fields: [ { key: "text", label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__LABEL", type: "cognigyText", params: { required: true, multiline: true, ssmlOptions: [ { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__AUDIO__LABEL", prefix: '<audio src=""/>', }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__EMPHASIS__LABEL", buttons: [ { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__EMPHASIS__BUTTONS__STRONG__LABEL", prefix: '<emphasis level="strong">', suffix: "</emphasis> ", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__EMPHASIS__BUTTONS__MODERATE__LABEL", prefix: '<emphasis level="moderate">', suffix: "</emphasis> ", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__EMPHASIS__BUTTONS__REDUCED__LABEL", prefix: '<emphasis level="reduced">', suffix: "</emphasis> ", }, ], }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__LANG__LABEL", buttons: [ { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__LANG__BUTTONS__MEDIUM__LABEL", prefix: '<break strength="medium"/>', }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__LANG__BUTTONS__STRONG__LABEL", prefix: '<break strength="strong"/>', }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__LANG__BUTTONS__EXTRA_STRONG__LABEL", prefix: '<break strength="x-strong"/>', }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__LANG__BUTTONS__NONE__LABEL", prefix: '<break strength="none"/>', }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__LANG__BUTTONS__1__SECOND__LABEL", prefix: '<break time="1500ms"/>', }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__LANG__BUTTONS__3__SECONDS__LABEL", prefix: '<break time="3s"/>', }, ], }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__STRUCTURE__LABEL", buttons: [ { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__STRUCTURE__BUTTONS__PARAGRAPH__LABEL", prefix: "<p>", suffix: "</p>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__STRUCTURE__BUTTONS__SENTENCE__LABEL", prefix: "<s>", suffix: "</s>", }, ], }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__LABEL", buttons: [ { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__BUTTONS__VERBATIM__LABEL", prefix: '<say-as interpret-as="verbatim">', suffix: "</say-as>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__BUTTONS__CARDINAL__LABEL", prefix: '<say-as interpret-as="cardinal">', suffix: "</say-as>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__BUTTONS__ORDINAL__LABEL", prefix: '<say-as interpret-as="ordinal">', suffix: "</say-as>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__BUTTONS__CHARACTERS__LABEL", prefix: '<say-as interpret-as="characters">', suffix: "</say-as>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__BUTTONS__FRACTION__LABEL", prefix: '<say-as interpret-as="fraction">', suffix: "</say-as>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__BUTTONS__UNIT__LABEL", prefix: '<say-as interpret-as="unit">', suffix: "</say-as>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__BUTTONS__TIME__LABEL", prefix: '<say-as interpret-as="time format="hms12">', suffix: "</say-as>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__BUTTONS__EXPLETIVE__LABEL", prefix: '<say-as interpret-as="expletive">', suffix: "</say-as>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SAY_AS__BUTTONS__DATE__LABEL", prefix: '<say-as interpret-as="date" format="ymd">', suffix: "</say-as>", }, ], }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__SUB__LABEL", prefix: '<sub alias="aluminium">', suffix: "</sub>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__PROSODY__LABEL", buttons: [ { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__PROSODY__BUTTONS__RATE__LABEL", prefix: '<prosody rate="medium">', suffix: "</prosody>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__PROSODY__BUTTONS__PITCH__LABEL", prefix: '<prosody pitch="medium">', suffix: "</prosody>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__PROSODY__BUTTONS__VOLUME__LABEL", prefix: '<prosody volume="medium">', suffix: "</prosody>", }, ], }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__MEDIA__CONTAINER__LABEL", buttons: [ { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__MEDIA__CONTAINER__BUTTONS__PARALLEL__LABEL", prefix: "<par>", suffix: "</par>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__MEDIA__CONTAINER__BUTTONS__SEQUENCE__LABEL", prefix: "<seq>", suffix: "</seq>", }, ], }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__MEDIA_LAYER__LABEL", buttons: [ { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__MEDIA_LAYER__BUTTONS__SPEAK__LABEL", prefix: "<media><speak>", suffix: "</speak></media>", }, { label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__TEXT__SSML_OPTIONS__MEDIA_LAYER__BUTTONS__AUDIO__LABEL", prefix: "<media><audio>", suffix: "</audio></media>", }, ], }, ] } }, { key: "setActivityParams", label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__SET_ACTIVITY_PARAMS__LABEL", type: "toggle", defaultValue: false }, { key: "activityParams", label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__FIELDS__ACTIVITY_PARAMS__LABEL", type: "json", defaultValue: "{}" } ].concat((0, paramUtils_1.getParameterFields)()), sections: [ { key: "advanced", label: "UI__NODE_EDITOR__VG__SEND_MESSAGE__SECTIONS__ADVANCED__LABEL", defaultCollapsed: true, fields: [ "activityParams", ], condition: { key: "setActivityParams", value: true } } ].concat((0, paramUtils_1.getParamSections)({ key: "setActivityParams", value: true })), form: [ { type: "field", key: "text" }, { type: "field", key: "setActivityParams" }, { type: "section", key: "params_stt" }, { type: "section", key: "params_tts" }, { type: "section", key: "params_dtmf" }, { type: "section", key: "params_bargein" }, { type: "section", key: "params_continuousasr" }, { type: "section", key: "params_user_timeouts" }, { type: "section", key: "params_bot_timeouts" }, { type: "section", key: "params_azure" }, { type: "section", key: "params_google" }, { type: "section", key: "advanced" }, ], preview: { type: "text", key: "text" }, appearance: { color: design_1.nodeColor }, function: async ({ cognigy, config, nodeId }) => { const { api } = cognigy; const { text, activityParams, setActivityParams } = config; const { isFeatureAccmEnabled } = api.getEndpointSettings(); if (isFeatureAccmEnabled && text) { await api.say(null, { _cognigy: (0, utils_1.buildPayloadAccm)("sendMessage", config, nodeId) }); return; } let compiledParams = activityParams || {}; if (setActivityParams) { (0, paramUtils_1.compileParams)(config, compiledParams); } if (text) { await api.output(null, { "_cognigy": { "_voiceGateway": { "json": { "activities": [ { "type": "message", "text": text, "activityParams": compiledParams } ] } } } }); } } }); //# sourceMappingURL=sendMessage.js.map