@botique/bmp
Advanced tools
Comparing version 0.2.3 to 0.2.4
"use strict"; | ||
var __assign = (this && this.__assign) || Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const lodash_1 = require("lodash"); | ||
const uuid_1 = require("uuid"); | ||
const urlUtil = require("url"); | ||
const UserMessage_1 = require("../types/UserMessage"); | ||
const utils_1 = require("../utils"); | ||
const DirectLineExtensions_1 = require("../types/DirectLineExtensions"); | ||
var lodash_1 = require("lodash"); | ||
var uuid_1 = require("uuid"); | ||
var urlUtil = require("url"); | ||
var UserMessage_1 = require("../types/UserMessage"); | ||
var utils_1 = require("../utils"); | ||
var DirectLineExtensions_1 = require("../types/DirectLineExtensions"); | ||
exports.BUTTON_TYPE_MAPPINGS = { | ||
@@ -20,3 +28,3 @@ web_url: "openUrl", | ||
function mapUserConversationToDirectLineMessage(conversation, userId, userProfile) { | ||
let result; | ||
var result; | ||
if (conversation.fromBot === true) { | ||
@@ -45,3 +53,3 @@ result = mapBotMessageToDirectLineMessage(conversation.message); | ||
default: | ||
throw new Error(`Could not map directline activity of type ${directlineActivity.type}`); | ||
throw new Error("Could not map directline activity of type " + directlineActivity.type); | ||
} | ||
@@ -53,3 +61,3 @@ } | ||
try { | ||
const activityJSON = directlineActivity.value || JSON.parse(directlineActivity.text || "{}"); | ||
var activityJSON = directlineActivity.value || JSON.parse(directlineActivity.text || "{}"); | ||
if (!lodash_1.isEmpty(activityJSON.payload)) { | ||
@@ -75,10 +83,10 @@ // If we have a valid json with a payload attribute, we assume a payload message was sent | ||
if (directlineActivity.attachments.length > 1) { | ||
console.warn(`Directline attachment to UserMessage only supports one attachment\n using only the first one`); | ||
console.warn("Directline attachment to UserMessage only supports one attachment\n using only the first one"); | ||
} | ||
return { | ||
originId: lodash_1.get(directlineActivity, "channelData.clientActivityId", uuid_1.v4()), | ||
bot: { _id: botId, platformData }, | ||
bot: { _id: botId, platformData: platformData }, | ||
isEcho: false, | ||
dateReceived: new Date(directlineActivity.timestamp), | ||
userId, | ||
userId: userId, | ||
contentType: UserMessage_1.ContentType.Attachment, | ||
@@ -98,7 +106,7 @@ content: { | ||
_id: botId, | ||
platformData | ||
platformData: platformData | ||
}, | ||
isEcho: false, | ||
dateReceived: new Date(directlineActivity.timestamp), | ||
userId, | ||
userId: userId, | ||
contentType: UserMessage_1.ContentType.Text, | ||
@@ -116,11 +124,11 @@ content: { | ||
_id: botId, | ||
platformData | ||
platformData: platformData | ||
}, | ||
isEcho: false, | ||
dateReceived: new Date(directlineActivity.timestamp), | ||
userId, | ||
userId: userId, | ||
contentType: UserMessage_1.ContentType.Payload, | ||
content: { | ||
payload: directlineActivity.value | ||
? JSON.stringify(Object.assign({}, JSON.parse(directlineActivity.value.payload), { title: directlineActivity.value.title })) | ||
? JSON.stringify(__assign({}, JSON.parse(directlineActivity.value.payload), { title: directlineActivity.value.title })) | ||
: JSON.parse(directlineActivity.text).payload | ||
@@ -138,7 +146,7 @@ } | ||
_id: botId, | ||
platformData | ||
platformData: platformData | ||
}, | ||
isEcho: false, | ||
dateReceived: new Date(directlineEventActivity.timestamp), | ||
userId, | ||
userId: userId, | ||
contentType: UserMessage_1.ContentType.Notification, | ||
@@ -150,3 +158,3 @@ content: { | ||
default: | ||
throw new Error(`Could not translate activity event with name "${directlineEventActivity.name}", see DIRECT_LINE_SUPPORTED_EVENT_NAMES for supported names`); | ||
throw new Error("Could not translate activity event with name \"" + directlineEventActivity.name + "\", see DIRECT_LINE_SUPPORTED_EVENT_NAMES for supported names"); | ||
} | ||
@@ -156,3 +164,3 @@ } | ||
function mapUserMessageToDirectLineMessage(userMessage, userId, userProfile, overrides) { | ||
let resultMessage = { | ||
var resultMessage = { | ||
id: userMessage.originId, | ||
@@ -168,3 +176,3 @@ type: "message", | ||
id: userId, | ||
name: `${userProfile.firstName} ${userProfile.lastName}` | ||
name: userProfile.firstName + " " + userProfile.lastName | ||
} | ||
@@ -176,6 +184,6 @@ }; | ||
case UserMessage_1.ContentType.Attachment: | ||
resultMessage.attachments = lodash_1.reduce(userMessage.content.attachments, (acc, v) => { | ||
const att = mapAttachment(v); | ||
resultMessage.attachments = lodash_1.reduce(userMessage.content.attachments, function (acc, v) { | ||
var att = mapAttachment(v); | ||
if (!att) { | ||
resultMessage.text = `Sent attachment`; | ||
resultMessage.text = "Sent attachment"; | ||
} | ||
@@ -189,3 +197,3 @@ else { | ||
case UserMessage_1.ContentType.Payload: | ||
const title = utils_1.parseJSONwithStringFallback(userMessage.content.payload) | ||
var title = utils_1.parseJSONwithStringFallback(userMessage.content.payload) | ||
.title; | ||
@@ -195,13 +203,13 @@ resultMessage.text = title; | ||
case UserMessage_1.ContentType.Link: | ||
const link = userMessage.content.link; | ||
var link = userMessage.content.link; | ||
resultMessage.text = link; | ||
break; | ||
default: | ||
resultMessage.text = `Cannot display content of type ${UserMessage_1.ContentType[userMessage.contentType]}`; | ||
resultMessage.text = "Cannot display content of type " + UserMessage_1.ContentType[userMessage.contentType]; | ||
} | ||
return Object.assign({}, resultMessage, overrides); | ||
return __assign({}, resultMessage, overrides); | ||
} | ||
exports.mapUserMessageToDirectLineMessage = mapUserMessageToDirectLineMessage; | ||
function mapBotMessageToDirectLineMessage(botMessage, overrides) { | ||
let resultMessage; | ||
var resultMessage; | ||
if (botMessage.message.sender_action === "typing_on") { | ||
@@ -214,3 +222,3 @@ resultMessage = { | ||
id: botMessage.bot._id.toString(), | ||
name: `${botMessage.bot.name}` | ||
name: "" + botMessage.bot.name | ||
}, | ||
@@ -231,3 +239,3 @@ attachments: [] | ||
id: botMessage.bot._id.toString(), | ||
name: `${botMessage.bot.name}` | ||
name: "" + botMessage.bot.name | ||
}, | ||
@@ -237,7 +245,7 @@ attachments: [] | ||
// Check if we have any attachments, usually templates | ||
const attachment = botMessage.message.message.attachment; | ||
var attachment = botMessage.message.message.attachment; | ||
if (!lodash_1.isEmpty(attachment)) { | ||
const att = mapAttachment(attachment); | ||
var att = mapAttachment(attachment); | ||
if (!att) { | ||
resultMessage.text = `<Bot sent attachment of type ${attachment.type}>`; | ||
resultMessage.text = "<Bot sent attachment of type " + attachment.type + ">"; | ||
} | ||
@@ -252,3 +260,3 @@ else { | ||
if (!lodash_1.isEmpty(botMessage.message.message.quick_replies)) { | ||
resultMessage = Object.assign({}, resultMessage, { suggestedActions: { | ||
resultMessage = __assign({}, resultMessage, { suggestedActions: { | ||
actions: mapQuickReplies(botMessage.message.message.quick_replies) | ||
@@ -259,3 +267,3 @@ } }); | ||
if (resultMessage) { | ||
return Object.assign({}, resultMessage, overrides); | ||
return __assign({}, resultMessage, overrides); | ||
} | ||
@@ -302,6 +310,6 @@ } | ||
return { | ||
contentType: `${attachment.type}/${urlUtil | ||
contentType: attachment.type + "/" + urlUtil | ||
.parse(attachment.payload.url) | ||
.pathname.split(".") | ||
.pop()}`, | ||
.pop(), | ||
contentUrl: attachment.payload.url, | ||
@@ -316,5 +324,7 @@ name: decodeURIComponent(urlUtil | ||
function mapQuickReplies(quickReplies) { | ||
return lodash_1.map(quickReplies, (quickReply) => quickReply.content_type === "location" | ||
? mapLocationQuickReply(quickReply) | ||
: mapTextQuickReply(quickReply)); | ||
return lodash_1.map(quickReplies, function (quickReply) { | ||
return quickReply.content_type === "location" | ||
? mapLocationQuickReply(quickReply) | ||
: mapTextQuickReply(quickReply); | ||
}); | ||
} | ||
@@ -339,16 +349,18 @@ exports.mapQuickReplies = mapQuickReplies; | ||
if (attachment.payload.template_type === "generic") { | ||
const elements = attachment.payload.elements; | ||
return lodash_1.map(elements, el => ({ | ||
contentType: "application/vnd.microsoft.card.hero", | ||
content: { | ||
title: el.title, | ||
subtitle: el.subtitle, | ||
images: [{ url: el.image_url }], | ||
imageRatio: attachment.payload.image_aspect_ratio, | ||
buttons: lodash_1.map(el.buttons, (button) => mapButton(button)) | ||
} | ||
})); | ||
var elements = attachment.payload.elements; | ||
return lodash_1.map(elements, function (el) { | ||
return ({ | ||
contentType: "application/vnd.microsoft.card.hero", | ||
content: { | ||
title: el.title, | ||
subtitle: el.subtitle, | ||
images: [{ url: el.image_url }], | ||
imageRatio: attachment.payload.image_aspect_ratio, | ||
buttons: lodash_1.map(el.buttons, function (button) { return mapButton(button); }) | ||
} | ||
}); | ||
}); | ||
} | ||
else if (attachment.payload.template_type === "button") { | ||
const buttons = attachment.payload.buttons; | ||
var buttons = attachment.payload.buttons; | ||
return { | ||
@@ -372,12 +384,12 @@ contentType: "application/vnd.microsoft.card.adaptive", | ||
} | ||
const cardActionType = exports.BUTTON_TYPE_MAPPINGS[button.type]; | ||
var cardActionType = exports.BUTTON_TYPE_MAPPINGS[button.type]; | ||
if (!cardActionType) { | ||
return; | ||
} | ||
let value = button.title; | ||
var value = button.title; | ||
if (cardActionType === "openUrl") { | ||
const url = button.url["urlString"] || button.url; | ||
const params = button.url["parameters"]; | ||
var url = button.url["urlString"] || button.url; | ||
var params = button.url["parameters"]; | ||
value = params | ||
? `${url}?${lodash_1.map(params, (v, k) => `${k}=${v}&`)}`.slice(0, -1) | ||
? (url + "?" + lodash_1.map(params, function (v, k) { return k + "=" + v + "&"; })).slice(0, -1) | ||
: url; | ||
@@ -388,3 +400,3 @@ } | ||
// save it in history | ||
const modifiedPayload = Object.assign({}, JSON.parse(button.payload), { title: button.title }); | ||
var modifiedPayload = __assign({}, JSON.parse(button.payload), { title: button.title }); | ||
value = JSON.stringify({ payload: modifiedPayload }); | ||
@@ -395,3 +407,3 @@ } | ||
title: button.title, | ||
value | ||
value: value | ||
}; | ||
@@ -408,4 +420,4 @@ } | ||
} | ||
const cardActionType = exports.ADAPTIVE_CARD_ACTION_TYPE_MAPPINGS[button.type]; | ||
let value = button.title; | ||
var cardActionType = exports.ADAPTIVE_CARD_ACTION_TYPE_MAPPINGS[button.type]; | ||
var value = button.title; | ||
if (!cardActionType) { | ||
@@ -415,6 +427,6 @@ return; | ||
if (cardActionType === "Action.OpenUrl") { | ||
const url = button.url["urlString"] || button.url; | ||
const params = button.url["parameters"]; | ||
var url = button.url["urlString"] || button.url; | ||
var params = button.url["parameters"]; | ||
value = params | ||
? `${url}?${lodash_1.map(params, (v, k) => `${k}=${v}&`)}`.slice(0, -1) | ||
? (url + "?" + lodash_1.map(params, function (v, k) { return k + "=" + v + "&"; })).slice(0, -1) | ||
: url; | ||
@@ -421,0 +433,0 @@ return { |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const DirectLineAdapter = require("./DirectLineAdapter"); | ||
var DirectLineAdapter = require("./DirectLineAdapter"); | ||
exports.DirectLineAdapter = DirectLineAdapter; | ||
//# sourceMappingURL=index.js.map |
@@ -12,4 +12,4 @@ "use strict"; | ||
// Adapters | ||
const DirectLineAdapter = require("./adapters/DirectLineAdapter"); | ||
var DirectLineAdapter = require("./adapters/DirectLineAdapter"); | ||
exports.DirectLineAdapter = DirectLineAdapter; | ||
//# sourceMappingURL=index.js.map |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const lodash_1 = require("lodash"); | ||
const uuid_1 = require("uuid"); | ||
var lodash_1 = require("lodash"); | ||
var uuid_1 = require("uuid"); | ||
function createButton(title, type, url, payload) { | ||
return lodash_1.pickBy({ | ||
type, | ||
title, | ||
url, | ||
payload | ||
type: type, | ||
title: title, | ||
url: url, | ||
payload: payload | ||
}); | ||
@@ -24,7 +24,7 @@ } | ||
return lodash_1.pickBy({ | ||
title, | ||
item_url, | ||
image_url, | ||
subtitle, | ||
buttons | ||
title: title, | ||
item_url: item_url, | ||
image_url: image_url, | ||
subtitle: subtitle, | ||
buttons: buttons | ||
}); | ||
@@ -35,3 +35,3 @@ } | ||
return { | ||
bot, | ||
bot: bot, | ||
originId: uuid_1.v4(), | ||
@@ -43,3 +43,3 @@ message: { | ||
message: { | ||
text, | ||
text: text, | ||
quick_replies: quickReplies | ||
@@ -53,3 +53,3 @@ } | ||
return { | ||
bot, | ||
bot: bot, | ||
originId: uuid_1.v4(), | ||
@@ -65,3 +65,3 @@ message: { | ||
template_type: "generic", | ||
elements | ||
elements: elements | ||
} | ||
@@ -68,0 +68,0 @@ }, |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const mongodb_1 = require("mongodb"); | ||
const BotPlatformType_1 = require("./BotPlatformType"); | ||
var mongodb_1 = require("mongodb"); | ||
var BotPlatformType_1 = require("./BotPlatformType"); | ||
function createFBPlatform(pageIdAccessTokenIndex, greeting, getStartedIntent, menuButtons) { | ||
const platform = { | ||
var platform = { | ||
_id: new mongodb_1.ObjectID(), | ||
type: BotPlatformType_1.BotPlatformType.Facebook, | ||
pageIdAccessTokenIndex, | ||
greeting, | ||
pageIdAccessTokenIndex: pageIdAccessTokenIndex, | ||
greeting: greeting, | ||
menuButtons: menuButtons || [] | ||
@@ -12,0 +12,0 @@ }; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
function parseJSONwithStringFallback(str) { | ||
let result; | ||
var result; | ||
try { | ||
@@ -6,0 +6,0 @@ result = JSON.parse(str); |
{ | ||
"name": "@botique/bmp", | ||
"version": "0.2.3", | ||
"version": "0.2.4", | ||
"description": "Botique Messaging Protocol", | ||
@@ -5,0 +5,0 @@ "main": "./build/index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
54581
918