@banta/sdk 4.4.1 → 4.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/banta-sdk.metadata.json +1 -1
- package/bundles/banta-sdk.umd.js +189 -116
- package/bundles/banta-sdk.umd.js.map +1 -1
- package/bundles/banta-sdk.umd.min.js +1 -1
- package/bundles/banta-sdk.umd.min.js.map +1 -1
- package/esm2015/lib/attachment-scraper.js +2 -87
- package/esm2015/lib/banta-sdk.module.js +23 -1
- package/esm2015/lib/chat-backend-base.js +1 -6
- package/esm2015/lib/common/attachment/attachment.component.js +29 -3
- package/esm2015/lib/giphy-attachments.js +20 -0
- package/esm2015/lib/index.js +6 -1
- package/esm2015/lib/tweet-attachments.js +16 -0
- package/esm2015/lib/url-attachments.js +46 -0
- package/esm2015/lib/youtube-attachments.js +25 -0
- package/fesm2015/banta-sdk.js +149 -92
- package/fesm2015/banta-sdk.js.map +1 -1
- package/lib/attachment-scraper.d.ts +0 -15
- package/lib/banta-sdk.module.d.ts +2 -0
- package/lib/chat-backend-base.d.ts +2 -2
- package/lib/common/attachment/attachment.component.d.ts +4 -0
- package/lib/giphy-attachments.d.ts +5 -0
- package/lib/index.d.ts +5 -0
- package/lib/tweet-attachments.d.ts +5 -0
- package/lib/url-attachments.d.ts +11 -0
- package/lib/youtube-attachments.d.ts +5 -0
- package/package.json +1 -1
|
@@ -1,87 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { ChatBackendBase } from './chat-backend-base';
|
|
4
|
-
const URL_REGEX = new RegExp('(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?', 'ig');
|
|
5
|
-
export class UrlAttachmentScraper {
|
|
6
|
-
findFragments(message) {
|
|
7
|
-
var _a;
|
|
8
|
-
// If a message already has a URL attachment, don't add another one.
|
|
9
|
-
if (message.attachments && message.attachments.filter(x => x.type === 'url').length > 0)
|
|
10
|
-
return null;
|
|
11
|
-
return (Array.from((_a = message.message.match(URL_REGEX)) !== null && _a !== void 0 ? _a : []))
|
|
12
|
-
.reduce((a, item) => (a.includes(item) ? undefined : a.push(item), a), [])
|
|
13
|
-
.map(url => ({
|
|
14
|
-
text: url,
|
|
15
|
-
offset: message.message.indexOf(url),
|
|
16
|
-
type: 'url'
|
|
17
|
-
}));
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export class GiphyAttachmentResolver {
|
|
21
|
-
resolveFragment(message, fragment) {
|
|
22
|
-
var _a;
|
|
23
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
if (fragment.type === 'url' && fragment.text.startsWith('https://giphy.com/gifs')) {
|
|
25
|
-
let gifId = (_a = /[^-\/]+$/.exec(fragment.text)) === null || _a === void 0 ? void 0 : _a.toString();
|
|
26
|
-
if (!gifId)
|
|
27
|
-
return null;
|
|
28
|
-
return {
|
|
29
|
-
type: 'iframe',
|
|
30
|
-
url: `https://giphy.com/embed/${gifId}`,
|
|
31
|
-
style: 'inline'
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export class YouTubeAttachmentResolver {
|
|
39
|
-
resolveFragment(message, fragment) {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
if (fragment.type !== 'url')
|
|
42
|
-
return null;
|
|
43
|
-
let videoId;
|
|
44
|
-
if (fragment.text.match(/https?:\/\/(www\.)?youtube.com\/watch\?v=/)) {
|
|
45
|
-
let match = /watch\?v=([^&]+)/.exec(fragment.text);
|
|
46
|
-
if (match) {
|
|
47
|
-
videoId = match[1];
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (videoId) {
|
|
51
|
-
return {
|
|
52
|
-
type: 'iframe',
|
|
53
|
-
url: `https://www.youtube.com/embed/${videoId}`,
|
|
54
|
-
style: 'block'
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
return null;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export class UrlAttachmentResolver {
|
|
62
|
-
constructor(backend) {
|
|
63
|
-
this.backend = backend;
|
|
64
|
-
}
|
|
65
|
-
resolveFragment(message, fragment) {
|
|
66
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
if (fragment.type !== 'url')
|
|
68
|
-
return null;
|
|
69
|
-
let urlCard = yield this.backend.getCardForUrl(fragment.text);
|
|
70
|
-
if (urlCard) {
|
|
71
|
-
return {
|
|
72
|
-
type: 'card',
|
|
73
|
-
url: fragment.text,
|
|
74
|
-
card: urlCard,
|
|
75
|
-
style: 'block'
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
UrlAttachmentResolver.decorators = [
|
|
82
|
-
{ type: Injectable }
|
|
83
|
-
];
|
|
84
|
-
UrlAttachmentResolver.ctorParameters = () => [
|
|
85
|
-
{ type: ChatBackendBase }
|
|
86
|
-
];
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1zY3JhcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvYXR0YWNobWVudC1zY3JhcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQW9CdEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsMllBQTJZLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFaGIsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixhQUFhLENBQUMsT0FBb0I7O1FBQzlCLG9FQUFvRTtRQUNwRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ25GLE9BQU8sSUFBSSxDQUFDO1FBRWhCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxtQ0FBSSxFQUFFLENBQUMsQ0FBQzthQUN0RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7YUFDekUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNULElBQUksRUFBRSxHQUFHO1lBQ1QsTUFBTSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNwQyxJQUFJLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQyxDQUNOO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHVCQUF1QjtJQUMxQixlQUFlLENBQUMsT0FBb0IsRUFBRSxRQUE0Qjs7O1lBQ3BFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsRUFBRTtnQkFDL0UsSUFBSSxLQUFLLFNBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLDBDQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsS0FBSztvQkFDTixPQUFPLElBQUksQ0FBQztnQkFFaEIsT0FBTztvQkFDSCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxHQUFHLEVBQUUsMkJBQTJCLEtBQUssRUFBRTtvQkFDdkMsS0FBSyxFQUFFLFFBQVE7aUJBQ2xCLENBQUM7YUFDTDtZQUVELE9BQU8sSUFBSSxDQUFDOztLQUNmO0NBQ0o7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBQzVCLGVBQWUsQ0FBQyxPQUFvQixFQUFFLFFBQTRCOztZQUNwRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssS0FBSztnQkFDdkIsT0FBTyxJQUFJLENBQUM7WUFFaEIsSUFBSSxPQUFlLENBQUM7WUFFcEIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxFQUFFO2dCQUNsRSxJQUFJLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuRCxJQUFJLEtBQUssRUFBRTtvQkFDUCxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN0QjthQUNKO1lBRUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTztvQkFDSCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxHQUFHLEVBQUUsaUNBQWlDLE9BQU8sRUFBRTtvQkFDL0MsS0FBSyxFQUFFLE9BQU87aUJBQ2pCLENBQUM7YUFDTDtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtDQUNKO0FBR0QsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUFvQixPQUF3QjtRQUF4QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUM1QyxDQUFDO0lBRUssZUFBZSxDQUFDLE9BQW9CLEVBQUUsUUFBNEI7O1lBQ3BFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxLQUFLO2dCQUN2QixPQUFPLElBQUksQ0FBQztZQUVoQixJQUFJLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RCxJQUFJLE9BQU8sRUFBRTtnQkFDVCxPQUFPO29CQUNILElBQUksRUFBRSxNQUFNO29CQUNaLEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSTtvQkFDbEIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLE9BQU87aUJBQ2pCLENBQUE7YUFDSjtRQUNMLENBQUM7S0FBQTs7O1lBbEJKLFVBQVU7OztZQWxGRixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0TWVzc2FnZUF0dGFjaG1lbnQgfSBmcm9tICdAYmFudGEvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhdEJhY2tlbmRCYXNlIH0gZnJvbSAnLi9jaGF0LWJhY2tlbmQtYmFzZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaG1lbnRGcmFnbWVudCB7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICBvZmZzZXQ6IG51bWJlcjtcclxuICAgIHR5cGU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50U2NyYXBlciB7XHJcbiAgICBmaW5kRnJhZ21lbnRzKG1lc3NhZ2U6IENoYXRNZXNzYWdlKTogQXR0YWNobWVudEZyYWdtZW50W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudFJlc29sdmVyIHtcclxuICAgIHJlc29sdmVGcmFnbWVudChtZXNzYWdlOiBDaGF0TWVzc2FnZSwgZnJhZ21lbnQ6IEF0dGFjaG1lbnRGcmFnbWVudCk6IFByb21pc2U8Q2hhdE1lc3NhZ2VBdHRhY2htZW50PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50UmVuZGVyZXIge1xyXG4gICAgYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50O1xyXG59XHJcblxyXG5jb25zdCBVUkxfUkVHRVggPSBuZXcgUmVnRXhwKCcoPyFtYWlsdG86KSg/Oig/Omh0dHB8aHR0cHN8ZnRwKTovLykoPzpcXFxcUysoPzo6XFxcXFMqKT9AKT8oPzooPzooPzpbMS05XVxcXFxkP3wxXFxcXGRcXFxcZHwyWzAxXVxcXFxkfDIyWzAtM10pKD86XFxcXC4oPzoxP1xcXFxkezEsMn18MlswLTRdXFxcXGR8MjVbMC01XSkpezJ9KD86XFxcXC4oPzpbMC05XVxcXFxkP3wxXFxcXGRcXFxcZHwyWzAtNF1cXFxcZHwyNVswLTRdKSl8KD86KD86W2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKy0/KSpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rKSg/OlxcXFwuKD86W2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKy0/KSpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZjAtOV0rKSooPzpcXFxcLig/OlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmXXsyLH0pKSl8bG9jYWxob3N0KSg/OjpcXFxcZHsyLDV9KT8oPzooL3xcXFxcP3wjKVteXFxcXHNdKik/JywgJ2lnJyk7XHJcblxyXG5leHBvcnQgY2xhc3MgVXJsQXR0YWNobWVudFNjcmFwZXIgaW1wbGVtZW50cyBBdHRhY2htZW50U2NyYXBlciB7XHJcbiAgICBmaW5kRnJhZ21lbnRzKG1lc3NhZ2U6IENoYXRNZXNzYWdlKTogQXR0YWNobWVudEZyYWdtZW50W10ge1xyXG4gICAgICAgIC8vIElmIGEgbWVzc2FnZSBhbHJlYWR5IGhhcyBhIFVSTCBhdHRhY2htZW50LCBkb24ndCBhZGQgYW5vdGhlciBvbmUuXHJcbiAgICAgICAgaWYgKG1lc3NhZ2UuYXR0YWNobWVudHMgJiYgbWVzc2FnZS5hdHRhY2htZW50cy5maWx0ZXIoeCA9PiB4LnR5cGUgPT09ICd1cmwnKS5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgcmV0dXJuIChBcnJheS5mcm9tKG1lc3NhZ2UubWVzc2FnZS5tYXRjaChVUkxfUkVHRVgpID8/IFtdKSlcclxuICAgICAgICAgICAgLnJlZHVjZSgoYSwgaXRlbSkgPT4gKGEuaW5jbHVkZXMoaXRlbSkgPyB1bmRlZmluZWQgOiBhLnB1c2goaXRlbSksIGEpLCBbXSlcclxuICAgICAgICAgICAgLm1hcCh1cmwgPT4gKHsgXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiB1cmwsIFxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiBtZXNzYWdlLm1lc3NhZ2UuaW5kZXhPZih1cmwpLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3VybCdcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2lwaHlBdHRhY2htZW50UmVzb2x2ZXIgaW1wbGVtZW50cyBBdHRhY2htZW50UmVzb2x2ZXIge1xyXG4gICAgYXN5bmMgcmVzb2x2ZUZyYWdtZW50KG1lc3NhZ2U6IENoYXRNZXNzYWdlLCBmcmFnbWVudDogQXR0YWNobWVudEZyYWdtZW50KTogUHJvbWlzZTxDaGF0TWVzc2FnZUF0dGFjaG1lbnQ+IHtcclxuICAgICAgICBpZiAoZnJhZ21lbnQudHlwZSA9PT0gJ3VybCcgJiYgZnJhZ21lbnQudGV4dC5zdGFydHNXaXRoKCdodHRwczovL2dpcGh5LmNvbS9naWZzJykpIHtcclxuICAgICAgICAgICAgbGV0IGdpZklkID0gL1teLVxcL10rJC8uZXhlYyhmcmFnbWVudC50ZXh0KT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgaWYgKCFnaWZJZClcclxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdpZnJhbWUnLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9naXBoeS5jb20vZW1iZWQvJHtnaWZJZH1gLFxyXG4gICAgICAgICAgICAgICAgc3R5bGU6ICdpbmxpbmUnXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFlvdVR1YmVBdHRhY2htZW50UmVzb2x2ZXIgaW1wbGVtZW50cyBBdHRhY2htZW50UmVzb2x2ZXIge1xyXG4gICAgYXN5bmMgcmVzb2x2ZUZyYWdtZW50KG1lc3NhZ2U6IENoYXRNZXNzYWdlLCBmcmFnbWVudDogQXR0YWNobWVudEZyYWdtZW50KTogUHJvbWlzZTxDaGF0TWVzc2FnZUF0dGFjaG1lbnQ+IHtcclxuICAgICAgICBpZiAoZnJhZ21lbnQudHlwZSAhPT0gJ3VybCcpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBsZXQgdmlkZW9JZDogc3RyaW5nO1xyXG5cclxuICAgICAgICBpZiAoZnJhZ21lbnQudGV4dC5tYXRjaCgvaHR0cHM/OlxcL1xcLyh3d3dcXC4pP3lvdXR1YmUuY29tXFwvd2F0Y2hcXD92PS8pKSB7XHJcbiAgICAgICAgICAgIGxldCBtYXRjaCA9IC93YXRjaFxcP3Y9KFteJl0rKS8uZXhlYyhmcmFnbWVudC50ZXh0KTtcclxuICAgICAgICAgICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgICAgICAgICAgICB2aWRlb0lkID0gbWF0Y2hbMV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2aWRlb0lkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnaWZyYW1lJyxcclxuICAgICAgICAgICAgICAgIHVybDogYGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7dmlkZW9JZH1gLFxyXG4gICAgICAgICAgICAgICAgc3R5bGU6ICdibG9jaydcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFVybEF0dGFjaG1lbnRSZXNvbHZlciBpbXBsZW1lbnRzIEF0dGFjaG1lbnRSZXNvbHZlciB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IENoYXRCYWNrZW5kQmFzZSkge1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHJlc29sdmVGcmFnbWVudChtZXNzYWdlOiBDaGF0TWVzc2FnZSwgZnJhZ21lbnQ6IEF0dGFjaG1lbnRGcmFnbWVudCk6IFByb21pc2U8Q2hhdE1lc3NhZ2VBdHRhY2htZW50PiB7XHJcbiAgICAgICAgaWYgKGZyYWdtZW50LnR5cGUgIT09ICd1cmwnKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgbGV0IHVybENhcmQgPSBhd2FpdCB0aGlzLmJhY2tlbmQuZ2V0Q2FyZEZvclVybChmcmFnbWVudC50ZXh0KTtcclxuICAgICAgICBpZiAodXJsQ2FyZCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ2NhcmQnLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBmcmFnbWVudC50ZXh0LFxyXG4gICAgICAgICAgICAgICAgY2FyZDogdXJsQ2FyZCxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYmxvY2snXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59Il19
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1zY3JhcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvYXR0YWNobWVudC1zY3JhcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VBdHRhY2htZW50IH0gZnJvbSAnQGJhbnRhL2NvbW1vbic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dGFjaG1lbnRGcmFnbWVudCB7XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICBvZmZzZXQ6IG51bWJlcjtcclxuICAgIHR5cGU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50U2NyYXBlciB7XHJcbiAgICBmaW5kRnJhZ21lbnRzKG1lc3NhZ2U6IENoYXRNZXNzYWdlKTogQXR0YWNobWVudEZyYWdtZW50W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXR0YWNobWVudFJlc29sdmVyIHtcclxuICAgIHJlc29sdmVGcmFnbWVudChtZXNzYWdlOiBDaGF0TWVzc2FnZSwgZnJhZ21lbnQ6IEF0dGFjaG1lbnRGcmFnbWVudCk6IFByb21pc2U8Q2hhdE1lc3NhZ2VBdHRhY2htZW50PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHRhY2htZW50UmVuZGVyZXIge1xyXG4gICAgYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50O1xyXG59Il19
|
|
@@ -22,7 +22,26 @@ import { BANTA_SDK_OPTIONS } from './sdk-options';
|
|
|
22
22
|
import { ChatBackendBase } from './chat-backend-base';
|
|
23
23
|
import { OverlayModule } from '@angular/cdk/overlay';
|
|
24
24
|
import { PortalModule } from '@angular/cdk/portal';
|
|
25
|
+
import { UrlAttachmentResolver, UrlAttachmentScraper } from './url-attachments';
|
|
26
|
+
import { YouTubeAttachmentResolver } from './youtube-attachments';
|
|
27
|
+
import { GiphyAttachmentResolver } from './giphy-attachments';
|
|
28
|
+
import { TweetAttachmentResolver } from './tweet-attachments';
|
|
25
29
|
export class BantaSdkModule {
|
|
30
|
+
constructor(chatBackend) {
|
|
31
|
+
if (typeof window !== 'undefined') {
|
|
32
|
+
if (!document.querySelector('script[src="https://platform.twitter.com/widgets.js"]')) {
|
|
33
|
+
let script = document.createElement('script');
|
|
34
|
+
script.src = 'https://platform.twitter.com/widgets.js';
|
|
35
|
+
script.async = true;
|
|
36
|
+
document.body.appendChild(script);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
chatBackend.registerAttachmentScraper(new UrlAttachmentScraper());
|
|
40
|
+
chatBackend.registerAttachmentResolver(new GiphyAttachmentResolver());
|
|
41
|
+
chatBackend.registerAttachmentResolver(new YouTubeAttachmentResolver());
|
|
42
|
+
chatBackend.registerAttachmentResolver(new TweetAttachmentResolver());
|
|
43
|
+
chatBackend.registerAttachmentResolver(new UrlAttachmentResolver(chatBackend));
|
|
44
|
+
}
|
|
26
45
|
static configure(options) {
|
|
27
46
|
return {
|
|
28
47
|
ngModule: BantaSdkModule,
|
|
@@ -71,4 +90,7 @@ BantaSdkModule.decorators = [
|
|
|
71
90
|
]
|
|
72
91
|
},] }
|
|
73
92
|
];
|
|
74
|
-
|
|
93
|
+
BantaSdkModule.ctorParameters = () => [
|
|
94
|
+
{ type: ChatBackendBase }
|
|
95
|
+
];
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFudGEtc2RrLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2JhbnRhLXNkay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBb0M5RCxNQUFNLE9BQU8sY0FBYztJQUN2QixZQUNJLFdBQTRCO1FBRTVCLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLHVEQUF1RCxDQUFDLEVBQUU7Z0JBQ2xGLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLE1BQU0sQ0FBQyxHQUFHLEdBQUcseUNBQXlDLENBQUM7Z0JBQ3ZELE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyQztTQUNKO1FBRUQsV0FBVyxDQUFDLHlCQUF5QixDQUFDLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLHVCQUF1QixFQUFFLENBQUMsQ0FBQztRQUN0RSxXQUFXLENBQUMsMEJBQTBCLENBQUMsSUFBSSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7UUFDeEUsV0FBVyxDQUFDLDBCQUEwQixDQUFDLElBQUksdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBb0I7UUFDakMsT0FBTztZQUNILFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsT0FBTyxJQUFJLEVBQUU7aUJBQzFCO2dCQUNELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO2FBQ3REO1NBQ0osQ0FBQTtJQUNMLENBQUM7OztZQWpFSixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxpQkFBaUI7b0JBQ2pCLGNBQWM7b0JBQ2QsVUFBVTtvQkFDVixXQUFXO29CQUVYLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixnQkFBZ0I7b0JBQ2hCLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixrQkFBa0I7b0JBQ2xCLGNBQWM7b0JBQ2Qsd0JBQXdCO29CQUN4QixpQkFBaUI7b0JBQ2pCLGFBQWE7b0JBQ2IsWUFBWTtpQkFDZjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1YsY0FBYztvQkFDZCxrQkFBa0I7b0JBQ2xCLG9CQUFvQjtpQkFDdkI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLGNBQWM7b0JBQ2Qsa0JBQWtCO29CQUNsQixvQkFBb0I7b0JBQ3BCLFVBQVU7b0JBQ1YsY0FBYztpQkFDakI7YUFDSjs7O1lBekNRLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tZW50c01vZHVsZSB9IGZyb20gJy4vY29tbWVudHMnO1xyXG5pbXBvcnQgeyBDaGF0TW9kdWxlIH0gZnJvbSAnLi9jaGF0JztcclxuaW1wb3J0IHsgRW1vamlNb2R1bGUgfSBmcm9tICcuL2Vtb2ppJztcclxuaW1wb3J0IHsgQmFudGFDb21wb25lbnQgfSBmcm9tICcuL2JhbnRhL2JhbnRhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhbnRhTG9nb0NvbXBvbmVudCB9IGZyb20gJy4vYmFudGEtbG9nby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmFudGFDb21tb25Nb2R1bGUgfSBmcm9tICcuL2NvbW1vbi9jb21tb24ubW9kdWxlJztcclxuaW1wb3J0IHsgTGl2ZU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtbWVzc2FnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyXCI7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyXCI7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kIH0gZnJvbSAnLi9jaGF0LWJhY2tlbmQnO1xyXG5pbXBvcnQgeyBTZGtPcHRpb25zIH0gZnJvbSAnLi9zZGstb3B0aW9ucyc7XHJcbmltcG9ydCB7IEJBTlRBX1NES19PUFRJT05TIH0gZnJvbSAnLi9zZGstb3B0aW9ucyc7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kQmFzZSB9IGZyb20gJy4vY2hhdC1iYWNrZW5kLWJhc2UnO1xyXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgVXJsQXR0YWNobWVudFJlc29sdmVyLCBVcmxBdHRhY2htZW50U2NyYXBlciB9IGZyb20gJy4vdXJsLWF0dGFjaG1lbnRzJztcclxuaW1wb3J0IHsgWW91VHViZUF0dGFjaG1lbnRSZXNvbHZlciB9IGZyb20gJy4veW91dHViZS1hdHRhY2htZW50cyc7XHJcbmltcG9ydCB7IEdpcGh5QXR0YWNobWVudFJlc29sdmVyIH0gZnJvbSAnLi9naXBoeS1hdHRhY2htZW50cyc7XHJcbmltcG9ydCB7IFR3ZWV0QXR0YWNobWVudFJlc29sdmVyIH0gZnJvbSAnLi90d2VldC1hdHRhY2htZW50cyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgICBCYW50YUNvbW1vbk1vZHVsZSxcclxuICAgICAgICBDb21tZW50c01vZHVsZSxcclxuICAgICAgICBDaGF0TW9kdWxlLFxyXG4gICAgICAgIEVtb2ppTW9kdWxlLFxyXG4gICAgICAgIFxyXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICAgICAgTWF0TWVudU1vZHVsZSxcclxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgICAgICBNYXRTbmFja0Jhck1vZHVsZSxcclxuICAgICAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgICAgIFBvcnRhbE1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEJhbnRhQ29tcG9uZW50LFxyXG4gICAgICAgIEJhbnRhTG9nb0NvbXBvbmVudCxcclxuICAgICAgICBMaXZlTWVzc2FnZUNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBCYW50YUNvbXBvbmVudCxcclxuICAgICAgICBCYW50YUxvZ29Db21wb25lbnQsXHJcbiAgICAgICAgTGl2ZU1lc3NhZ2VDb21wb25lbnQsXHJcbiAgICAgICAgQ2hhdE1vZHVsZSxcclxuICAgICAgICBDb21tZW50c01vZHVsZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFudGFTZGtNb2R1bGUge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgY2hhdEJhY2tlbmQ6IENoYXRCYWNrZW5kQmFzZVxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGlmICghZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYz1cImh0dHBzOi8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qc1wiXScpKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICAgICAgICAgICAgICBzY3JpcHQuc3JjID0gJ2h0dHBzOi8vcGxhdGZvcm0udHdpdHRlci5jb20vd2lkZ2V0cy5qcyc7XHJcbiAgICAgICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjaGF0QmFja2VuZC5yZWdpc3RlckF0dGFjaG1lbnRTY3JhcGVyKG5ldyBVcmxBdHRhY2htZW50U2NyYXBlcigpKTtcclxuICAgICAgICBjaGF0QmFja2VuZC5yZWdpc3RlckF0dGFjaG1lbnRSZXNvbHZlcihuZXcgR2lwaHlBdHRhY2htZW50UmVzb2x2ZXIoKSk7XHJcbiAgICAgICAgY2hhdEJhY2tlbmQucmVnaXN0ZXJBdHRhY2htZW50UmVzb2x2ZXIobmV3IFlvdVR1YmVBdHRhY2htZW50UmVzb2x2ZXIoKSk7XHJcbiAgICAgICAgY2hhdEJhY2tlbmQucmVnaXN0ZXJBdHRhY2htZW50UmVzb2x2ZXIobmV3IFR3ZWV0QXR0YWNobWVudFJlc29sdmVyKCkpO1xyXG4gICAgICAgIGNoYXRCYWNrZW5kLnJlZ2lzdGVyQXR0YWNobWVudFJlc29sdmVyKG5ldyBVcmxBdHRhY2htZW50UmVzb2x2ZXIoY2hhdEJhY2tlbmQpKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgc3RhdGljIGNvbmZpZ3VyZShvcHRpb25zPzogU2RrT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QmFudGFTZGtNb2R1bGU+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBuZ01vZHVsZTogQmFudGFTZGtNb2R1bGUsXHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgICAgeyBcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBCQU5UQV9TREtfT1BUSU9OUywgXHJcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMgfHwge31cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IENoYXRCYWNrZW5kQmFzZSwgdXNlQ2xhc3M6IENoYXRCYWNrZW5kIH1cclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
import { GiphyAttachmentResolver, UrlAttachmentResolver, UrlAttachmentScraper, YouTubeAttachmentResolver } from './attachment-scraper';
|
|
3
2
|
export class ChatBackendBase {
|
|
4
3
|
constructor() {
|
|
5
4
|
this._userChanged = new BehaviorSubject(null);
|
|
6
5
|
this._attachmentScrapers = [];
|
|
7
6
|
this._attachmentResolvers = [];
|
|
8
|
-
this.registerAttachmentScraper(new UrlAttachmentScraper());
|
|
9
|
-
this.registerAttachmentResolver(new GiphyAttachmentResolver());
|
|
10
|
-
this.registerAttachmentResolver(new YouTubeAttachmentResolver());
|
|
11
|
-
this.registerAttachmentResolver(new UrlAttachmentResolver(this));
|
|
12
7
|
}
|
|
13
8
|
get userChanged() {
|
|
14
9
|
return this._userChanged;
|
|
@@ -33,4 +28,4 @@ export class ChatBackendBase {
|
|
|
33
28
|
return this._attachmentResolvers.slice();
|
|
34
29
|
}
|
|
35
30
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1iYWNrZW5kLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jaGF0LWJhY2tlbmQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBU25ELE1BQU0sT0FBZ0IsZUFBZTtJQUNqQztRQWNRLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQU8sSUFBSSxDQUFDLENBQUM7UUFnQi9DLHdCQUFtQixHQUF3QixFQUFFLENBQUM7UUFDOUMseUJBQW9CLEdBQXlCLEVBQUUsQ0FBQztJQTlCeEQsQ0FBQztJQWdCRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQVc7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBS0QseUJBQXlCLENBQUMsT0FBMEI7UUFDaEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsMEJBQTBCLENBQUMsUUFBNEI7UUFDbkQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgVm90ZSwgQ29tbWVudHNPcmRlciwgTm90aWZpY2F0aW9uLCBVc2VyLCBVcmxDYXJkIH0gZnJvbSAnQGJhbnRhL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYXRTb3VyY2VCYXNlIH0gZnJvbSAnLi9jaGF0LXNvdXJjZS1iYXNlJztcclxuaW1wb3J0IHsgQXR0YWNobWVudFJlc29sdmVyLCBBdHRhY2htZW50U2NyYXBlciB9IGZyb20gJy4vYXR0YWNobWVudC1zY3JhcGVyJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFNvdXJjZU9wdGlvbnMge1xyXG4gICAgc29ydE9yZGVyOiBDb21tZW50c09yZGVyO1xyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2hhdEJhY2tlbmRCYXNlIHtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBhYnN0cmFjdCBnZXRTb3VyY2VGb3JUb3BpYyh0b3BpY0lkIDogc3RyaW5nLCBvcHRpb25zPzogQ2hhdFNvdXJjZU9wdGlvbnMpIDogUHJvbWlzZTxDaGF0U291cmNlQmFzZT47XHJcbiAgICBhYnN0cmFjdCBnZXRTb3VyY2VGb3JUaHJlYWQodG9waWNJZCA6IHN0cmluZywgbWVzc2FnZUlkIDogc3RyaW5nLCBvcHRpb25zPzogQ2hhdFNvdXJjZU9wdGlvbnMpIDogUHJvbWlzZTxDaGF0U291cmNlQmFzZT47XHJcbiAgICBhYnN0cmFjdCBnZXRTb3VyY2VDb3VudEZvclRvcGljKHRvcGljSWQ6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPlxyXG4gICAgYWJzdHJhY3QgcmVmcmVzaE1lc3NhZ2UobWVzc2FnZSA6IENoYXRNZXNzYWdlKTogUHJvbWlzZTxDaGF0TWVzc2FnZT47XHJcbiAgICBhYnN0cmFjdCBnZXRNZXNzYWdlKHRvcGljSWQgOiBzdHJpbmcsIG1lc3NhZ2VJZCA6IHN0cmluZyk6IFByb21pc2U8Q2hhdE1lc3NhZ2U+O1xyXG4gICAgYWJzdHJhY3QgZ2V0U3ViTWVzc2FnZSh0b3BpY0lkIDogc3RyaW5nLCBwYXJlbnRNZXNzYWdlSWQgOiBzdHJpbmcsIG1lc3NhZ2VJZCA6IHN0cmluZyk6IFByb21pc2U8Q2hhdE1lc3NhZ2U+O1xyXG4gICAgYWJzdHJhY3Qgd2F0Y2hNZXNzYWdlKG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSwgaGFuZGxlciA6IChtZXNzYWdlIDogQ2hhdE1lc3NhZ2UpID0+IHZvaWQpIDogKCkgPT4gdm9pZDtcclxuICAgIGFic3RyYWN0IGdldENhcmRGb3JVcmwodXJsOiBzdHJpbmcpOiBQcm9taXNlPFVybENhcmQ+O1xyXG4gICAgcmVhZG9ubHkgbm90aWZpY2F0aW9uc0NoYW5nZWQgOiBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbltdPjtcclxuICAgIHJlYWRvbmx5IG5ld05vdGlmaWNhdGlvbiA6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uPjtcclxuICAgIFxyXG4gICAgcHJpdmF0ZSBfdXNlckNoYW5nZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVzZXI+KG51bGwpO1xyXG4gICAgcHJpdmF0ZSBfdXNlciA6IFVzZXI7XHJcbiAgICBcclxuICAgIGdldCB1c2VyQ2hhbmdlZCgpIDogT2JzZXJ2YWJsZTxVc2VyPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJDaGFuZ2VkO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBzZXQgdXNlcih1c2VyIDogVXNlcikge1xyXG4gICAgICAgIHRoaXMuX3VzZXIgPSB1c2VyO1xyXG4gICAgICAgIHRoaXMuX3VzZXJDaGFuZ2VkLm5leHQodXNlcik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHVzZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXI7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHByaXZhdGUgX2F0dGFjaG1lbnRTY3JhcGVyczogQXR0YWNobWVudFNjcmFwZXJbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfYXR0YWNobWVudFJlc29sdmVyczogQXR0YWNobWVudFJlc29sdmVyW10gPSBbXTtcclxuXHJcbiAgICByZWdpc3RlckF0dGFjaG1lbnRTY3JhcGVyKHNjcmFwZXI6IEF0dGFjaG1lbnRTY3JhcGVyKSB7XHJcbiAgICAgICAgdGhpcy5fYXR0YWNobWVudFNjcmFwZXJzLnB1c2goc2NyYXBlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmVnaXN0ZXJBdHRhY2htZW50UmVzb2x2ZXIocmVzb2x2ZXI6IEF0dGFjaG1lbnRSZXNvbHZlcikge1xyXG4gICAgICAgIHRoaXMuX2F0dGFjaG1lbnRSZXNvbHZlcnMucHVzaChyZXNvbHZlcik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGF0dGFjaG1lbnRTY3JhcGVycygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXR0YWNobWVudFNjcmFwZXJzLnNsaWNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGF0dGFjaG1lbnRSZXNvbHZlcnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F0dGFjaG1lbnRSZXNvbHZlcnMuc2xpY2UoKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -10,6 +10,15 @@ export class BantaAttachmentComponent {
|
|
|
10
10
|
this.removed = new Subject();
|
|
11
11
|
this.activated = new Subject();
|
|
12
12
|
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
if (typeof window !== 'undefined') {
|
|
15
|
+
setTimeout(() => {
|
|
16
|
+
if (!window['twttr'])
|
|
17
|
+
return;
|
|
18
|
+
window['twttr'].widgets.load();
|
|
19
|
+
}, 100);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
13
22
|
activate() {
|
|
14
23
|
this.activated.next();
|
|
15
24
|
}
|
|
@@ -33,14 +42,31 @@ export class BantaAttachmentComponent {
|
|
|
33
42
|
return true;
|
|
34
43
|
return false;
|
|
35
44
|
}
|
|
45
|
+
get hasFrame() {
|
|
46
|
+
if (!this.attachment)
|
|
47
|
+
return false;
|
|
48
|
+
return this.attachment.type === 'iframe' || (this.attachment.type === 'card'
|
|
49
|
+
&& this.attachment.card.player);
|
|
50
|
+
}
|
|
51
|
+
get frameUrl() {
|
|
52
|
+
if (!this.attachment)
|
|
53
|
+
return undefined;
|
|
54
|
+
if (this.attachment.type === 'iframe') {
|
|
55
|
+
return this.attachment.url;
|
|
56
|
+
}
|
|
57
|
+
else if (this.attachment.type === 'card') {
|
|
58
|
+
return this.attachment.card.player;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
36
61
|
}
|
|
37
62
|
BantaAttachmentComponent.decorators = [
|
|
38
63
|
{ type: Component, args: [{
|
|
39
64
|
selector: 'banta-attachment',
|
|
40
|
-
template: "<button type=\"button\" (click)=\"remove()\" mat-mini-fab color=\"primary\" class=\"remove-button\" *ngIf=\"editing\">\r\n <mat-icon>close</mat-icon>\r\n</button>\r\n\r\n<ng-container *ngIf=\"isError\">\r\n <mat-icon class=\"error\">close</mat-icon>\r\n <em class=\"error\">{{theErrorMessage}}</em>\r\n</ng-container>\r\n<ng-container *ngIf=\"!isError\">\r\n <ng-container *ngIf=\"isLoading\">\r\n <mat-spinner></mat-spinner>\r\n <em>{{loadingMessage}}</em>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <iframe
|
|
41
|
-
styles: [":host{position:relative;display:block}:host.loading{outline:1px solid #333;padding:1em 0;width:300px;text-align:center}:host.loading mat-spinner{display:block;margin:0 auto .5em;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}a.card{display:flex;align-items:flex-start;gap:1em;width:100%;border:1px solid #666;border-radius:4px;padding:1em;box-sizing:border-box;background-color:#191919}a.card img{width:
|
|
65
|
+
template: "<button type=\"button\" (click)=\"remove()\" mat-mini-fab color=\"primary\" class=\"remove-button\" *ngIf=\"editing\">\r\n <mat-icon>close</mat-icon>\r\n</button>\r\n\r\n<ng-container *ngIf=\"isError\">\r\n <mat-icon class=\"error\">close</mat-icon>\r\n <em class=\"error\">{{theErrorMessage}}</em>\r\n</ng-container>\r\n<ng-container *ngIf=\"!isError\">\r\n <ng-container *ngIf=\"isLoading\">\r\n <mat-spinner></mat-spinner>\r\n <em>{{loadingMessage}}</em>\r\n </ng-container>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <iframe *ngIf=\"hasFrame\"\r\n sandbox=\"allow-scripts allow-popups allow-same-origin allow-presentation\" \r\n [src]=\"frameUrl | trustResourceUrl\"></iframe>\r\n <a *ngIf=\"attachment.type === 'card'\" class=\"card\" [href]=\"attachment.url\" target=\"_blank\" [class.has-image]=\"attachment.card.image\">\r\n <img \r\n *ngIf=\"attachment.card.image\"\r\n class=\"thumbnail\" \r\n [src]=\"attachment.card.image\"\r\n />\r\n <div class=\"description\">\r\n <h1>{{attachment.card.title}}</h1>\r\n <div>\r\n {{attachment.card.description}}\r\n </div>\r\n <cite>{{attachment.card.url}}</cite>\r\n </div>\r\n </a>\r\n <a class=\"image-attachment\" *ngIf=\"isImageAttachment\" href=\"javascript:;\" (click)=\"activate()\">\r\n <img [src]=\"attachment.url\" alt=\"Image Attachment\">\r\n </a>\r\n <blockquote *ngIf=\"attachment.type === 'tweet'\" \r\n class=\"twitter-tweet\">\r\n <p lang=\"en\" dir=\"ltr\"></p>\r\n <a href=\"https://twitter.com/seldo/status/1562553608083714050?ref_src=twsrc%5Etfw\"></a>\r\n </blockquote>\r\n </ng-container>\r\n</ng-container>",
|
|
66
|
+
styles: [":host{position:relative;display:block}:host.loading{outline:1px solid #333;padding:1em 0;width:300px;text-align:center}:host.loading mat-spinner{display:block;margin:0 auto .5em;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}a.card{display:flex;align-items:flex-start;gap:1em;width:100%;border:1px solid #666;border-radius:4px;padding:1em;box-sizing:border-box;background-color:#191919;margin:1em 0}a.card img{width:250px;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;border-radius:10px}a.card.has-image h1{font-size:22px}a.card h1{min-width:0;margin:0 0 .5em;font-size:26px}a.card cite{min-width:0;opacity:.75;margin-top:1em;display:block;font-size:90%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}a.card .description{min-width:0}.remove-button{position:absolute;right:10px;top:10px;margin:0;z-index:1}a.image-attachment{width:300px;position:relative;text-align:center}a.image-attachment.with-border{outline:1px solid #333;padding:1em 0}a.image-attachment mat-spinner{display:block;margin:0 auto .5em;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}a.image-attachment mat-icon.error{display:block;font-size:48px;width:48px;height:48px;margin:0 auto .5em}a.image-attachment .error{color:#b76363}a.image-attachment img{width:300px;border-radius:10px;max-width:100%;max-height:20em;-o-object-fit:cover;object-fit:cover}iframe{border:none;width:100%;aspect-ratio:16/9}"]
|
|
42
67
|
},] }
|
|
43
68
|
];
|
|
69
|
+
BantaAttachmentComponent.ctorParameters = () => [];
|
|
44
70
|
BantaAttachmentComponent.propDecorators = {
|
|
45
71
|
attachment: [{ type: Input }],
|
|
46
72
|
loading: [{ type: Input }],
|
|
@@ -52,4 +78,4 @@ BantaAttachmentComponent.propDecorators = {
|
|
|
52
78
|
activated: [{ type: Output }],
|
|
53
79
|
isLoading: [{ type: HostBinding, args: ['class.loading',] }]
|
|
54
80
|
};
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jb21tb24vYXR0YWNobWVudC9hdHRhY2htZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPL0IsTUFBTSxPQUFPLHdCQUF3QjtJQUNqQztRQUtTLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYyxHQUFXLGdCQUFnQixDQUFDO1FBQzFDLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxpQkFBWSxHQUFXLHVCQUF1QixDQUFDO1FBQzlDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzlCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBVDFDLENBQUM7SUFXRCxRQUFRO1FBQ0osSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztvQkFDaEIsT0FBTztnQkFDWCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25DLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNYO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxPQUFPOztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssaUJBQUksSUFBSSxDQUFDLFVBQVUsMENBQUUsY0FBYywwQ0FBRSxLQUFLLENBQUEsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxlQUFlOztRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksaUJBQUksSUFBSSxDQUFDLFVBQVUsMENBQUUsY0FBYywwQ0FBRSxZQUFZLENBQUEsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFDSSxTQUFTOztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLFdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLDBDQUFFLE9BQU8sQ0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDL0csQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQztRQUNoQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQ2hCLE9BQU8sS0FBSyxDQUFDO1FBRWpCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLE1BQU07ZUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUNqQyxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUNoQixPQUFPLFNBQVMsQ0FBQztRQUVyQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1NBQzlCO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDdEM7SUFDTCxDQUFDOzs7WUEzRUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLGs0REFBMEM7O2FBRTdDOzs7O3lCQU1JLEtBQUs7c0JBQ0wsS0FBSztzQkFDTCxLQUFLOzZCQUNMLEtBQUs7b0JBQ0wsS0FBSzsyQkFDTCxLQUFLO3NCQUNMLE1BQU07d0JBQ04sTUFBTTt3QkE0Qk4sV0FBVyxTQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ2hhdE1lc3NhZ2VBdHRhY2htZW50IH0gZnJvbSBcIkBiYW50YS9jb21tb25cIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmFudGEtYXR0YWNobWVudCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXR0YWNobWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hdHRhY2htZW50LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhbnRhQXR0YWNobWVudENvbXBvbmVudCB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgYXR0YWNobWVudDogQ2hhdE1lc3NhZ2VBdHRhY2htZW50O1xyXG4gICAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZWRpdGluZyA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbG9hZGluZ01lc3NhZ2U6IHN0cmluZyA9ICdQbGVhc2Ugd2FpdC4uLic7XHJcbiAgICBASW5wdXQoKSBlcnJvciA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnQW4gZXJyb3IgaGFzIG9jY3VycmVkJztcclxuICAgIEBPdXRwdXQoKSByZW1vdmVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIEBPdXRwdXQoKSBhY3RpdmF0ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghd2luZG93Wyd0d3R0ciddKVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIHdpbmRvd1sndHd0dHInXS53aWRnZXRzLmxvYWQoKTtcclxuICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWN0aXZhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZSgpIHtcclxuICAgICAgICB0aGlzLnJlbW92ZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0Vycm9yKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yIHx8IHRoaXMuYXR0YWNobWVudD8udHJhbnNpZW50U3RhdGU/LmVycm9yO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0aGVFcnJvck1lc3NhZ2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlIHx8IHRoaXMuYXR0YWNobWVudD8udHJhbnNpZW50U3RhdGU/LmVycm9yTWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxvYWRpbmcnKVxyXG4gICAgZ2V0IGlzTG9hZGluZygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nIHx8ICF0aGlzLmF0dGFjaG1lbnQgfHwgdGhpcy5hdHRhY2htZW50LnRyYW5zaWVudFN0YXRlPy5sb2FkaW5nIHx8ICF0aGlzLmF0dGFjaG1lbnQudXJsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0ltYWdlQXR0YWNobWVudCgpIHtcclxuICAgICAgICBpZiAodGhpcy5hdHRhY2htZW50LnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaGFzRnJhbWUoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmF0dGFjaG1lbnQpXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXR0YWNobWVudC50eXBlID09PSAnaWZyYW1lJyB8fCAoXHJcbiAgICAgICAgICAgIHRoaXMuYXR0YWNobWVudC50eXBlID09PSAnY2FyZCcgXHJcbiAgICAgICAgICAgICYmIHRoaXMuYXR0YWNobWVudC5jYXJkLnBsYXllclxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZyYW1lVXJsKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5hdHRhY2htZW50KVxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLmF0dGFjaG1lbnQudHlwZSA9PT0gJ2lmcmFtZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXR0YWNobWVudC51cmw7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmF0dGFjaG1lbnQudHlwZSA9PT0gJ2NhcmQnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmF0dGFjaG1lbnQuY2FyZC5wbGF5ZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
export class GiphyAttachmentResolver {
|
|
3
|
+
resolveFragment(message, fragment) {
|
|
4
|
+
var _a;
|
|
5
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
6
|
+
if (fragment.type === 'url' && fragment.text.startsWith('https://giphy.com/gifs')) {
|
|
7
|
+
let gifId = (_a = /[^-\/]+$/.exec(fragment.text)) === null || _a === void 0 ? void 0 : _a.toString();
|
|
8
|
+
if (!gifId)
|
|
9
|
+
return null;
|
|
10
|
+
return {
|
|
11
|
+
type: 'iframe',
|
|
12
|
+
url: `https://giphy.com/embed/${gifId}`,
|
|
13
|
+
style: 'inline'
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lwaHktYXR0YWNobWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9naXBoeS1hdHRhY2htZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsTUFBTSxPQUFPLHVCQUF1QjtJQUMxQixlQUFlLENBQUMsT0FBb0IsRUFBRSxRQUE0Qjs7O1lBQ3BFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsRUFBRTtnQkFDL0UsSUFBSSxLQUFLLFNBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLDBDQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsS0FBSztvQkFDTixPQUFPLElBQUksQ0FBQztnQkFFaEIsT0FBTztvQkFDSCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxHQUFHLEVBQUUsMkJBQTJCLEtBQUssRUFBRTtvQkFDdkMsS0FBSyxFQUFFLFFBQVE7aUJBQ2xCLENBQUM7YUFDTDtZQUVELE9BQU8sSUFBSSxDQUFDOztLQUNmO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VBdHRhY2htZW50IH0gZnJvbSBcIkBiYW50YS9jb21tb25cIjtcclxuaW1wb3J0IHsgQXR0YWNobWVudEZyYWdtZW50LCBBdHRhY2htZW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9hdHRhY2htZW50LXNjcmFwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBHaXBoeUF0dGFjaG1lbnRSZXNvbHZlciBpbXBsZW1lbnRzIEF0dGFjaG1lbnRSZXNvbHZlciB7XHJcbiAgICBhc3luYyByZXNvbHZlRnJhZ21lbnQobWVzc2FnZTogQ2hhdE1lc3NhZ2UsIGZyYWdtZW50OiBBdHRhY2htZW50RnJhZ21lbnQpOiBQcm9taXNlPENoYXRNZXNzYWdlQXR0YWNobWVudD4ge1xyXG4gICAgICAgIGlmIChmcmFnbWVudC50eXBlID09PSAndXJsJyAmJiBmcmFnbWVudC50ZXh0LnN0YXJ0c1dpdGgoJ2h0dHBzOi8vZ2lwaHkuY29tL2dpZnMnKSkge1xyXG4gICAgICAgICAgICBsZXQgZ2lmSWQgPSAvW14tXFwvXSskLy5leGVjKGZyYWdtZW50LnRleHQpPy50b1N0cmluZygpO1xyXG4gICAgICAgICAgICBpZiAoIWdpZklkKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ2lmcmFtZScsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGBodHRwczovL2dpcGh5LmNvbS9lbWJlZC8ke2dpZklkfWAsXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogJ2lubGluZSdcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59Il19
|
package/esm2015/lib/index.js
CHANGED
|
@@ -10,5 +10,10 @@ export * from './chat-source-base';
|
|
|
10
10
|
export * from './chat-backend';
|
|
11
11
|
export * from './chat-source';
|
|
12
12
|
export * from './sdk-options';
|
|
13
|
+
export * from './attachment-scraper';
|
|
14
|
+
export * from './url-attachments';
|
|
15
|
+
export * from './youtube-attachments';
|
|
16
|
+
export * from './giphy-attachments';
|
|
17
|
+
export * from './tweet-attachments';
|
|
13
18
|
export * from './banta-sdk.module';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbW9qaSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYmFudGEvYmFudGEuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9iYW50YS1sb2dvLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGl2ZS1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29tbWVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXQtYmFja2VuZC1iYXNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGF0LXNvdXJjZS1iYXNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGF0LWJhY2tlbmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXQtc291cmNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZGstb3B0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXR0YWNobWVudC1zY3JhcGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi91cmwtYXR0YWNobWVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3lvdXR1YmUtYXR0YWNobWVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2dpcGh5LWF0dGFjaG1lbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi90d2VldC1hdHRhY2htZW50cyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2JhbnRhLXNkay5tb2R1bGUnOyJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
export class TweetAttachmentResolver {
|
|
3
|
+
resolveFragment(message, fragment) {
|
|
4
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5
|
+
if (fragment.type === 'url' && fragment.text.startsWith('https://twitter.com/')) {
|
|
6
|
+
return {
|
|
7
|
+
type: 'tweet',
|
|
8
|
+
url: fragment.text,
|
|
9
|
+
style: 'block'
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdlZXQtYXR0YWNobWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi90d2VldC1hdHRhY2htZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBR0EsTUFBTSxPQUFPLHVCQUF1QjtJQUMxQixlQUFlLENBQUMsT0FBb0IsRUFBRSxRQUE0Qjs7WUFDcEUsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUM3RSxPQUFPO29CQUNILElBQUksRUFBRSxPQUFPO29CQUNiLEdBQUcsRUFBRSxRQUFRLENBQUMsSUFBSTtvQkFDbEIsS0FBSyxFQUFFLE9BQU87aUJBQ2pCLENBQUM7YUFDTDtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7S0FBQTtDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRNZXNzYWdlQXR0YWNobWVudCB9IGZyb20gXCJAYmFudGEvY29tbW9uXCI7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRGcmFnbWVudCwgQXR0YWNobWVudFJlc29sdmVyIH0gZnJvbSBcIi4vYXR0YWNobWVudC1zY3JhcGVyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVHdlZXRBdHRhY2htZW50UmVzb2x2ZXIgaW1wbGVtZW50cyBBdHRhY2htZW50UmVzb2x2ZXIge1xyXG4gICAgYXN5bmMgcmVzb2x2ZUZyYWdtZW50KG1lc3NhZ2U6IENoYXRNZXNzYWdlLCBmcmFnbWVudDogQXR0YWNobWVudEZyYWdtZW50KTogUHJvbWlzZTxDaGF0TWVzc2FnZUF0dGFjaG1lbnQ+IHtcclxuICAgICAgICBpZiAoZnJhZ21lbnQudHlwZSA9PT0gJ3VybCcgJiYgZnJhZ21lbnQudGV4dC5zdGFydHNXaXRoKCdodHRwczovL3R3aXR0ZXIuY29tLycpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAndHdlZXQnLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBmcmFnbWVudC50ZXh0LFxyXG4gICAgICAgICAgICAgICAgc3R5bGU6ICdibG9jaydcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
import { ChatBackendBase } from "./chat-backend-base";
|
|
4
|
+
const URL_REGEX = new RegExp('(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?', 'ig');
|
|
5
|
+
export class UrlAttachmentScraper {
|
|
6
|
+
findFragments(message) {
|
|
7
|
+
var _a;
|
|
8
|
+
// If a message already has a URL attachment, don't add another one.
|
|
9
|
+
if (message.attachments && message.attachments.filter(x => x.type === 'url').length > 0)
|
|
10
|
+
return null;
|
|
11
|
+
return (Array.from((_a = message.message.match(URL_REGEX)) !== null && _a !== void 0 ? _a : []))
|
|
12
|
+
.reduce((a, item) => (a.includes(item) ? undefined : a.push(item), a), [])
|
|
13
|
+
.map(url => ({
|
|
14
|
+
text: url,
|
|
15
|
+
offset: message.message.indexOf(url),
|
|
16
|
+
type: 'url'
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class UrlAttachmentResolver {
|
|
21
|
+
constructor(backend) {
|
|
22
|
+
this.backend = backend;
|
|
23
|
+
}
|
|
24
|
+
resolveFragment(message, fragment) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
if (fragment.type !== 'url')
|
|
27
|
+
return null;
|
|
28
|
+
let urlCard = yield this.backend.getCardForUrl(fragment.text);
|
|
29
|
+
if (urlCard) {
|
|
30
|
+
return {
|
|
31
|
+
type: 'card',
|
|
32
|
+
url: fragment.text,
|
|
33
|
+
card: urlCard,
|
|
34
|
+
style: 'block'
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
UrlAttachmentResolver.decorators = [
|
|
41
|
+
{ type: Injectable }
|
|
42
|
+
];
|
|
43
|
+
UrlAttachmentResolver.ctorParameters = () => [
|
|
44
|
+
{ type: ChatBackendBase }
|
|
45
|
+
];
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWF0dGFjaG1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2RrL3NyYy9saWIvdXJsLWF0dGFjaG1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxNQUFNLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQywyWUFBMlksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVoYixNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLGFBQWEsQ0FBQyxPQUFvQjs7UUFDOUIsb0VBQW9FO1FBQ3BFLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDbkYsT0FBTyxJQUFJLENBQUM7UUFFaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3RELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUN6RSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ1QsSUFBSSxFQUFFLEdBQUc7WUFDVCxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ3BDLElBQUksRUFBRSxLQUFLO1NBQ2QsQ0FBQyxDQUFDLENBQ047SUFDTCxDQUFDO0NBQ0o7QUFHRCxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFlBQW9CLE9BQXdCO1FBQXhCLFlBQU8sR0FBUCxPQUFPLENBQWlCO0lBQzVDLENBQUM7SUFFSyxlQUFlLENBQUMsT0FBb0IsRUFBRSxRQUE0Qjs7WUFDcEUsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLEtBQUs7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDO1lBRWhCLElBQUksT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlELElBQUksT0FBTyxFQUFFO2dCQUNULE9BQU87b0JBQ0gsSUFBSSxFQUFFLE1BQU07b0JBQ1osR0FBRyxFQUFFLFFBQVEsQ0FBQyxJQUFJO29CQUNsQixJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsT0FBTztpQkFDakIsQ0FBQTthQUNKO1FBQ0wsQ0FBQztLQUFBOzs7WUFsQkosVUFBVTs7O1lBckJGLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIENoYXRNZXNzYWdlQXR0YWNobWVudCB9IGZyb20gXCJAYmFudGEvY29tbW9uXCI7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRGcmFnbWVudCwgQXR0YWNobWVudFJlc29sdmVyLCBBdHRhY2htZW50U2NyYXBlciB9IGZyb20gXCIuL2F0dGFjaG1lbnQtc2NyYXBlclwiO1xyXG5pbXBvcnQgeyBDaGF0QmFja2VuZEJhc2UgfSBmcm9tIFwiLi9jaGF0LWJhY2tlbmQtYmFzZVwiO1xyXG5cclxuY29uc3QgVVJMX1JFR0VYID0gbmV3IFJlZ0V4cCgnKD8hbWFpbHRvOikoPzooPzpodHRwfGh0dHBzfGZ0cCk6Ly8pKD86XFxcXFMrKD86OlxcXFxTKik/QCk/KD86KD86KD86WzEtOV1cXFxcZD98MVxcXFxkXFxcXGR8MlswMV1cXFxcZHwyMlswLTNdKSg/OlxcXFwuKD86MT9cXFxcZHsxLDJ9fDJbMC00XVxcXFxkfDI1WzAtNV0pKXsyfSg/OlxcXFwuKD86WzAtOV1cXFxcZD98MVxcXFxkXFxcXGR8MlswLTRdXFxcXGR8MjVbMC00XSkpfCg/Oig/OlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSstPykqW2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKykoPzpcXFxcLig/OlthLXpcXFxcdTAwYTEtXFxcXHVmZmZmMC05XSstPykqW2EtelxcXFx1MDBhMS1cXFxcdWZmZmYwLTldKykqKD86XFxcXC4oPzpbYS16XFxcXHUwMGExLVxcXFx1ZmZmZl17Mix9KSkpfGxvY2FsaG9zdCkoPzo6XFxcXGR7Miw1fSk/KD86KC98XFxcXD98IylbXlxcXFxzXSopPycsICdpZycpO1xyXG5cclxuZXhwb3J0IGNsYXNzIFVybEF0dGFjaG1lbnRTY3JhcGVyIGltcGxlbWVudHMgQXR0YWNobWVudFNjcmFwZXIge1xyXG4gICAgZmluZEZyYWdtZW50cyhtZXNzYWdlOiBDaGF0TWVzc2FnZSk6IEF0dGFjaG1lbnRGcmFnbWVudFtdIHtcclxuICAgICAgICAvLyBJZiBhIG1lc3NhZ2UgYWxyZWFkeSBoYXMgYSBVUkwgYXR0YWNobWVudCwgZG9uJ3QgYWRkIGFub3RoZXIgb25lLlxyXG4gICAgICAgIGlmIChtZXNzYWdlLmF0dGFjaG1lbnRzICYmIG1lc3NhZ2UuYXR0YWNobWVudHMuZmlsdGVyKHggPT4geC50eXBlID09PSAndXJsJykubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIHJldHVybiAoQXJyYXkuZnJvbShtZXNzYWdlLm1lc3NhZ2UubWF0Y2goVVJMX1JFR0VYKSA/PyBbXSkpXHJcbiAgICAgICAgICAgIC5yZWR1Y2UoKGEsIGl0ZW0pID0+IChhLmluY2x1ZGVzKGl0ZW0pID8gdW5kZWZpbmVkIDogYS5wdXNoKGl0ZW0pLCBhKSwgW10pXHJcbiAgICAgICAgICAgIC5tYXAodXJsID0+ICh7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiB1cmwsIFxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiBtZXNzYWdlLm1lc3NhZ2UuaW5kZXhPZih1cmwpLFxyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3VybCdcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgO1xyXG4gICAgfVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBVcmxBdHRhY2htZW50UmVzb2x2ZXIgaW1wbGVtZW50cyBBdHRhY2htZW50UmVzb2x2ZXIge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBDaGF0QmFja2VuZEJhc2UpIHtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyByZXNvbHZlRnJhZ21lbnQobWVzc2FnZTogQ2hhdE1lc3NhZ2UsIGZyYWdtZW50OiBBdHRhY2htZW50RnJhZ21lbnQpOiBQcm9taXNlPENoYXRNZXNzYWdlQXR0YWNobWVudD4ge1xyXG4gICAgICAgIGlmIChmcmFnbWVudC50eXBlICE9PSAndXJsJylcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICAgIGxldCB1cmxDYXJkID0gYXdhaXQgdGhpcy5iYWNrZW5kLmdldENhcmRGb3JVcmwoZnJhZ21lbnQudGV4dCk7XHJcbiAgICAgICAgaWYgKHVybENhcmQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdjYXJkJyxcclxuICAgICAgICAgICAgICAgIHVybDogZnJhZ21lbnQudGV4dCxcclxuICAgICAgICAgICAgICAgIGNhcmQ6IHVybENhcmQsXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogJ2Jsb2NrJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
export class YouTubeAttachmentResolver {
|
|
3
|
+
resolveFragment(message, fragment) {
|
|
4
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5
|
+
if (fragment.type !== 'url')
|
|
6
|
+
return null;
|
|
7
|
+
let videoId;
|
|
8
|
+
if (fragment.text.match(/https?:\/\/(www\.)?youtube.com\/watch\?v=/)) {
|
|
9
|
+
let match = /watch\?v=([^&]+)/.exec(fragment.text);
|
|
10
|
+
if (match) {
|
|
11
|
+
videoId = match[1];
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
if (videoId) {
|
|
15
|
+
return {
|
|
16
|
+
type: 'iframe',
|
|
17
|
+
url: `https://www.youtube.com/embed/${videoId}`,
|
|
18
|
+
style: 'block'
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW91dHViZS1hdHRhY2htZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL3lvdXR1YmUtYXR0YWNobWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUdBLE1BQU0sT0FBTyx5QkFBeUI7SUFDNUIsZUFBZSxDQUFDLE9BQW9CLEVBQUUsUUFBNEI7O1lBQ3BFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxLQUFLO2dCQUN2QixPQUFPLElBQUksQ0FBQztZQUVoQixJQUFJLE9BQWUsQ0FBQztZQUVwQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLEVBQUU7Z0JBQ2xFLElBQUksS0FBSyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25ELElBQUksS0FBSyxFQUFFO29CQUNQLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RCO2FBQ0o7WUFFRCxJQUFJLE9BQU8sRUFBRTtnQkFDVCxPQUFPO29CQUNILElBQUksRUFBRSxRQUFRO29CQUNkLEdBQUcsRUFBRSxpQ0FBaUMsT0FBTyxFQUFFO29CQUMvQyxLQUFLLEVBQUUsT0FBTztpQkFDakIsQ0FBQzthQUNMO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztLQUFBO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VBdHRhY2htZW50IH0gZnJvbSBcIkBiYW50YS9jb21tb25cIjtcclxuaW1wb3J0IHsgQXR0YWNobWVudEZyYWdtZW50LCBBdHRhY2htZW50UmVzb2x2ZXIgfSBmcm9tIFwiLi9hdHRhY2htZW50LXNjcmFwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBZb3VUdWJlQXR0YWNobWVudFJlc29sdmVyIGltcGxlbWVudHMgQXR0YWNobWVudFJlc29sdmVyIHtcclxuICAgIGFzeW5jIHJlc29sdmVGcmFnbWVudChtZXNzYWdlOiBDaGF0TWVzc2FnZSwgZnJhZ21lbnQ6IEF0dGFjaG1lbnRGcmFnbWVudCk6IFByb21pc2U8Q2hhdE1lc3NhZ2VBdHRhY2htZW50PiB7XHJcbiAgICAgICAgaWYgKGZyYWdtZW50LnR5cGUgIT09ICd1cmwnKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgbGV0IHZpZGVvSWQ6IHN0cmluZztcclxuXHJcbiAgICAgICAgaWYgKGZyYWdtZW50LnRleHQubWF0Y2goL2h0dHBzPzpcXC9cXC8od3d3XFwuKT95b3V0dWJlLmNvbVxcL3dhdGNoXFw/dj0vKSkge1xyXG4gICAgICAgICAgICBsZXQgbWF0Y2ggPSAvd2F0Y2hcXD92PShbXiZdKykvLmV4ZWMoZnJhZ21lbnQudGV4dCk7XHJcbiAgICAgICAgICAgIGlmIChtYXRjaCkge1xyXG4gICAgICAgICAgICAgICAgdmlkZW9JZCA9IG1hdGNoWzFdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmlkZW9JZCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ2lmcmFtZScsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGBodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke3ZpZGVvSWR9YCxcclxuICAgICAgICAgICAgICAgIHN0eWxlOiAnYmxvY2snXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|