@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.
@@ -1,87 +1,2 @@
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 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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFudGEtc2RrLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3Nkay9zcmMvbGliL2JhbnRhLXNkay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBb0NuRCxNQUFNLE9BQU8sY0FBYztJQUN2QixNQUFNLENBQUMsU0FBUyxDQUFDLE9BQW9CO1FBQ2pDLE9BQU87WUFDSCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsUUFBUSxFQUFFLE9BQU8sSUFBSSxFQUFFO2lCQUMxQjtnQkFDRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTthQUN0RDtTQUNKLENBQUE7SUFDTCxDQUFDOzs7WUE5Q0osUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLFdBQVc7b0JBQ1gsaUJBQWlCO29CQUNqQixjQUFjO29CQUNkLFVBQVU7b0JBQ1YsV0FBVztvQkFFWCxhQUFhO29CQUNiLGVBQWU7b0JBQ2YsZ0JBQWdCO29CQUNoQixhQUFhO29CQUNiLGVBQWU7b0JBQ2Ysa0JBQWtCO29CQUNsQixjQUFjO29CQUNkLHdCQUF3QjtvQkFDeEIsaUJBQWlCO29CQUNqQixhQUFhO29CQUNiLFlBQVk7aUJBQ2Y7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLGNBQWM7b0JBQ2Qsa0JBQWtCO29CQUNsQixvQkFBb0I7aUJBQ3ZCO2dCQUNELE9BQU8sRUFBRTtvQkFDTCxjQUFjO29CQUNkLGtCQUFrQjtvQkFDbEIsb0JBQW9CO29CQUNwQixVQUFVO29CQUNWLGNBQWM7aUJBQ2pCO2FBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tZW50c01vZHVsZSB9IGZyb20gJy4vY29tbWVudHMnO1xyXG5pbXBvcnQgeyBDaGF0TW9kdWxlIH0gZnJvbSAnLi9jaGF0JztcclxuaW1wb3J0IHsgRW1vamlNb2R1bGUgfSBmcm9tICcuL2Vtb2ppJztcclxuaW1wb3J0IHsgQmFudGFDb21wb25lbnQgfSBmcm9tICcuL2JhbnRhL2JhbnRhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhbnRhTG9nb0NvbXBvbmVudCB9IGZyb20gJy4vYmFudGEtbG9nby5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmFudGFDb21tb25Nb2R1bGUgfSBmcm9tICcuL2NvbW1vbi9jb21tb24ubW9kdWxlJztcclxuaW1wb3J0IHsgTGl2ZU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2xpdmUtbWVzc2FnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyXCI7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyXCI7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kIH0gZnJvbSAnLi9jaGF0LWJhY2tlbmQnO1xyXG5pbXBvcnQgeyBTZGtPcHRpb25zIH0gZnJvbSAnLi9zZGstb3B0aW9ucyc7XHJcbmltcG9ydCB7IEJBTlRBX1NES19PUFRJT05TIH0gZnJvbSAnLi9zZGstb3B0aW9ucyc7XHJcbmltcG9ydCB7IENoYXRCYWNrZW5kQmFzZSB9IGZyb20gJy4vY2hhdC1iYWNrZW5kLWJhc2UnO1xyXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIEJhbnRhQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIENvbW1lbnRzTW9kdWxlLFxyXG4gICAgICAgIENoYXRNb2R1bGUsXHJcbiAgICAgICAgRW1vamlNb2R1bGUsXHJcbiAgICAgICAgXHJcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcclxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgICAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxyXG4gICAgICAgIE92ZXJsYXlNb2R1bGUsXHJcbiAgICAgICAgUG9ydGFsTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgQmFudGFDb21wb25lbnQsXHJcbiAgICAgICAgQmFudGFMb2dvQ29tcG9uZW50LFxyXG4gICAgICAgIExpdmVNZXNzYWdlQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIEJhbnRhQ29tcG9uZW50LFxyXG4gICAgICAgIEJhbnRhTG9nb0NvbXBvbmVudCxcclxuICAgICAgICBMaXZlTWVzc2FnZUNvbXBvbmVudCxcclxuICAgICAgICBDaGF0TW9kdWxlLFxyXG4gICAgICAgIENvbW1lbnRzTW9kdWxlXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYW50YVNka01vZHVsZSB7XHJcbiAgICBzdGF0aWMgY29uZmlndXJlKG9wdGlvbnM/OiBTZGtPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxCYW50YVNka01vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5nTW9kdWxlOiBCYW50YVNka01vZHVsZSxcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgICAgICAgICB7IFxyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEJBTlRBX1NES19PUFRJT05TLCBcclxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyB8fCB7fVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogQ2hhdEJhY2tlbmRCYXNlLCB1c2VDbGFzczogQ2hhdEJhY2tlbmQgfVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1iYWNrZW5kLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jaGF0LWJhY2tlbmQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR25ELE9BQU8sRUFBeUMsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU05SyxNQUFNLE9BQWdCLGVBQWU7SUFDakM7UUFrQlEsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBTyxJQUFJLENBQUMsQ0FBQztRQWdCL0Msd0JBQW1CLEdBQXdCLEVBQUUsQ0FBQztRQUM5Qyx5QkFBb0IsR0FBeUIsRUFBRSxDQUFDO1FBbENwRCxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLHlCQUF5QixFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFnQkQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFXO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUtELHlCQUF5QixDQUFDLE9BQTBCO1FBQ2hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELDBCQUEwQixDQUFDLFFBQTRCO1FBQ25ELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UsIFZvdGUsIENvbW1lbnRzT3JkZXIsIE5vdGlmaWNhdGlvbiwgVXNlciB9IGZyb20gJ0BiYW50YS9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGF0U291cmNlQmFzZSB9IGZyb20gJy4vY2hhdC1zb3VyY2UtYmFzZSc7XHJcbmltcG9ydCB7IEF0dGFjaG1lbnRSZXNvbHZlciwgQXR0YWNobWVudFNjcmFwZXIsIEdpcGh5QXR0YWNobWVudFJlc29sdmVyLCBVcmxBdHRhY2htZW50UmVzb2x2ZXIsIFVybEF0dGFjaG1lbnRTY3JhcGVyLCBZb3VUdWJlQXR0YWNobWVudFJlc29sdmVyIH0gZnJvbSAnLi9hdHRhY2htZW50LXNjcmFwZXInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGF0U291cmNlT3B0aW9ucyB7XHJcbiAgICBzb3J0T3JkZXI6IENvbW1lbnRzT3JkZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDaGF0QmFja2VuZEJhc2Uge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5yZWdpc3RlckF0dGFjaG1lbnRTY3JhcGVyKG5ldyBVcmxBdHRhY2htZW50U2NyYXBlcigpKTtcclxuICAgICAgICB0aGlzLnJlZ2lzdGVyQXR0YWNobWVudFJlc29sdmVyKG5ldyBHaXBoeUF0dGFjaG1lbnRSZXNvbHZlcigpKTtcclxuICAgICAgICB0aGlzLnJlZ2lzdGVyQXR0YWNobWVudFJlc29sdmVyKG5ldyBZb3VUdWJlQXR0YWNobWVudFJlc29sdmVyKCkpO1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJBdHRhY2htZW50UmVzb2x2ZXIobmV3IFVybEF0dGFjaG1lbnRSZXNvbHZlcih0aGlzKSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGFic3RyYWN0IGdldFNvdXJjZUZvclRvcGljKHRvcGljSWQgOiBzdHJpbmcsIG9wdGlvbnM/OiBDaGF0U291cmNlT3B0aW9ucykgOiBQcm9taXNlPENoYXRTb3VyY2VCYXNlPjtcclxuICAgIGFic3RyYWN0IGdldFNvdXJjZUZvclRocmVhZCh0b3BpY0lkIDogc3RyaW5nLCBtZXNzYWdlSWQgOiBzdHJpbmcsIG9wdGlvbnM/OiBDaGF0U291cmNlT3B0aW9ucykgOiBQcm9taXNlPENoYXRTb3VyY2VCYXNlPjtcclxuICAgIGFic3RyYWN0IGdldFNvdXJjZUNvdW50Rm9yVG9waWModG9waWNJZDogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+XHJcbiAgICBhYnN0cmFjdCByZWZyZXNoTWVzc2FnZShtZXNzYWdlIDogQ2hhdE1lc3NhZ2UpOiBQcm9taXNlPENoYXRNZXNzYWdlPjtcclxuICAgIGFic3RyYWN0IGdldE1lc3NhZ2UodG9waWNJZCA6IHN0cmluZywgbWVzc2FnZUlkIDogc3RyaW5nKTogUHJvbWlzZTxDaGF0TWVzc2FnZT47XHJcbiAgICBhYnN0cmFjdCBnZXRTdWJNZXNzYWdlKHRvcGljSWQgOiBzdHJpbmcsIHBhcmVudE1lc3NhZ2VJZCA6IHN0cmluZywgbWVzc2FnZUlkIDogc3RyaW5nKTogUHJvbWlzZTxDaGF0TWVzc2FnZT47XHJcbiAgICBhYnN0cmFjdCB3YXRjaE1lc3NhZ2UobWVzc2FnZSA6IENoYXRNZXNzYWdlLCBoYW5kbGVyIDogKG1lc3NhZ2UgOiBDaGF0TWVzc2FnZSkgPT4gdm9pZCkgOiAoKSA9PiB2b2lkO1xyXG4gICAgYWJzdHJhY3QgZ2V0Q2FyZEZvclVybCh1cmw6IHN0cmluZyk7XHJcbiAgICByZWFkb25seSBub3RpZmljYXRpb25zQ2hhbmdlZCA6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uW10+O1xyXG4gICAgcmVhZG9ubHkgbmV3Tm90aWZpY2F0aW9uIDogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb24+O1xyXG4gICAgXHJcbiAgICBwcml2YXRlIF91c2VyQ2hhbmdlZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VXNlcj4obnVsbCk7XHJcbiAgICBwcml2YXRlIF91c2VyIDogVXNlcjtcclxuICAgIFxyXG4gICAgZ2V0IHVzZXJDaGFuZ2VkKCkgOiBPYnNlcnZhYmxlPFVzZXI+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdXNlckNoYW5nZWQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHNldCB1c2VyKHVzZXIgOiBVc2VyKSB7XHJcbiAgICAgICAgdGhpcy5fdXNlciA9IHVzZXI7XHJcbiAgICAgICAgdGhpcy5fdXNlckNoYW5nZWQubmV4dCh1c2VyKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdXNlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdXNlcjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHJpdmF0ZSBfYXR0YWNobWVudFNjcmFwZXJzOiBBdHRhY2htZW50U2NyYXBlcltdID0gW107XHJcbiAgICBwcml2YXRlIF9hdHRhY2htZW50UmVzb2x2ZXJzOiBBdHRhY2htZW50UmVzb2x2ZXJbXSA9IFtdO1xyXG5cclxuICAgIHJlZ2lzdGVyQXR0YWNobWVudFNjcmFwZXIoc2NyYXBlcjogQXR0YWNobWVudFNjcmFwZXIpIHtcclxuICAgICAgICB0aGlzLl9hdHRhY2htZW50U2NyYXBlcnMucHVzaChzY3JhcGVyKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3RlckF0dGFjaG1lbnRSZXNvbHZlcihyZXNvbHZlcjogQXR0YWNobWVudFJlc29sdmVyKSB7XHJcbiAgICAgICAgdGhpcy5fYXR0YWNobWVudFJlc29sdmVycy5wdXNoKHJlc29sdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYXR0YWNobWVudFNjcmFwZXJzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hdHRhY2htZW50U2NyYXBlcnMuc2xpY2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYXR0YWNobWVudFJlc29sdmVycygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYXR0YWNobWVudFJlc29sdmVycy5zbGljZSgpO1xyXG4gICAgfVxyXG59Il19
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 \r\n *ngIf=\"attachment.type === 'iframe'\" \r\n sandbox=\"allow-scripts allow-popups allow-same-origin allow-presentation\" \r\n [src]=\"attachment.url | trustResourceUrl\"></iframe>\r\n <a *ngIf=\"attachment.type === 'card'\" class=\"card\" [href]=\"attachment.url\" target=\"_blank\">\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 {{attachment.card.description}}\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 </ng-container>\r\n</ng-container>",
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:300px;aspect-ratio:16/9;-o-object-fit:cover;object-fit:cover;border-radius:10px}a.card h1{margin:0;font-size:30px}.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}"]
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9jb21tb24vYXR0YWNobWVudC9hdHRhY2htZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPL0IsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU9hLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYyxHQUFXLGdCQUFnQixDQUFDO1FBQzFDLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxpQkFBWSxHQUFXLHVCQUF1QixDQUFDO1FBQzlDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzlCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBMkI5QyxDQUFDO0lBMUJHLFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxPQUFPOztRQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssaUJBQUksSUFBSSxDQUFDLFVBQVUsMENBQUUsY0FBYywwQ0FBRSxLQUFLLENBQUEsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxlQUFlOztRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksaUJBQUksSUFBSSxDQUFDLFVBQVUsMENBQUUsY0FBYywwQ0FBRSxZQUFZLENBQUEsQ0FBQztJQUM5RSxDQUFDO0lBRUQsSUFDSSxTQUFTOztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLFdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLDBDQUFFLE9BQU8sQ0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDL0csQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQztRQUNoQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7WUF2Q0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLG8vQ0FBMEM7O2FBRTdDOzs7eUJBRUksS0FBSztzQkFDTCxLQUFLO3NCQUNMLEtBQUs7NkJBQ0wsS0FBSztvQkFDTCxLQUFLOzJCQUNMLEtBQUs7c0JBQ0wsTUFBTTt3QkFDTixNQUFNO3dCQWlCTixXQUFXLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDaGF0TWVzc2FnZUF0dGFjaG1lbnQgfSBmcm9tIFwiQGJhbnRhL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdiYW50YS1hdHRhY2htZW50JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdHRhY2htZW50LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFudGFBdHRhY2htZW50Q29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIGF0dGFjaG1lbnQ6IENoYXRNZXNzYWdlQXR0YWNobWVudDtcclxuICAgIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGVkaXRpbmcgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGxvYWRpbmdNZXNzYWdlOiBzdHJpbmcgPSAnUGxlYXNlIHdhaXQuLi4nO1xyXG4gICAgQElucHV0KCkgZXJyb3IgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ0FuIGVycm9yIGhhcyBvY2N1cnJlZCc7XHJcbiAgICBAT3V0cHV0KCkgcmVtb3ZlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgYWN0aXZhdGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIGFjdGl2YXRlKCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmUoKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVkLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNFcnJvcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvciB8fCB0aGlzLmF0dGFjaG1lbnQ/LnRyYW5zaWVudFN0YXRlPy5lcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdGhlRXJyb3JNZXNzYWdlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZSB8fCB0aGlzLmF0dGFjaG1lbnQ/LnRyYW5zaWVudFN0YXRlPy5lcnJvck1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sb2FkaW5nJylcclxuICAgIGdldCBpc0xvYWRpbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZyB8fCAhdGhpcy5hdHRhY2htZW50IHx8IHRoaXMuYXR0YWNobWVudC50cmFuc2llbnRTdGF0ZT8ubG9hZGluZyB8fCAhdGhpcy5hdHRhY2htZW50LnVybDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNJbWFnZUF0dGFjaG1lbnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXR0YWNobWVudC50eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpKVxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbn0iXX0=
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
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zZGsvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUU5QixjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vtb2ppJztcclxuZXhwb3J0ICogZnJvbSAnLi9iYW50YS9iYW50YS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2JhbnRhLWxvZ28uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jaGF0JztcclxuZXhwb3J0ICogZnJvbSAnLi9saXZlLW1lc3NhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21tZW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhdC1iYWNrZW5kLWJhc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXQtc291cmNlLWJhc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoYXQtYmFja2VuZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hhdC1zb3VyY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Nkay1vcHRpb25zJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vYmFudGEtc2RrLm1vZHVsZSc7Il19
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==