@microsoft/omnichannel-chat-sdk 1.4.7 → 1.4.8-main.73ecb9b

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.
@@ -0,0 +1,276 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ var WebUtils_1 = require("../../utils/WebUtils");
51
+ var AMSFileManager_1 = require("./AMSFileManager");
52
+ var activityUtils_1 = require("./activityUtils");
53
+ var defaultScanPollingInterval = 7 * 1000;
54
+ var defaultScanStatusRetrievalDelay = 1000;
55
+ var AMSFileScanner = /** @class */ (function () {
56
+ function AMSFileScanner(amsClient, options) {
57
+ if (options === void 0) { options = {}; }
58
+ this.scanResults = null;
59
+ this.amsClient = amsClient;
60
+ this.scanResults = new Map();
61
+ this.shouldQueueScan = false;
62
+ this.test = false;
63
+ this.options = options;
64
+ this.queueScan();
65
+ }
66
+ AMSFileScanner.prototype.queueScan = function () {
67
+ var _a;
68
+ return __awaiter(this, void 0, void 0, function () {
69
+ var e_1, _b;
70
+ return __generator(this, function (_c) {
71
+ switch (_c.label) {
72
+ case 0:
73
+ this.shouldQueueScan = true;
74
+ _c.label = 1;
75
+ case 1:
76
+ _c.trys.push([1, 3, 4, 8]);
77
+ return [4 /*yield*/, this.scanFiles()];
78
+ case 2:
79
+ _c.sent();
80
+ return [3 /*break*/, 8];
81
+ case 3:
82
+ e_1 = _c.sent();
83
+ console.error(e_1);
84
+ return [3 /*break*/, 8];
85
+ case 4: return [4 /*yield*/, WebUtils_1.default.sleep(((_a = this.options) === null || _a === void 0 ? void 0 : _a.pollingInterval) || defaultScanPollingInterval)];
86
+ case 5:
87
+ _c.sent();
88
+ _b = this.shouldQueueScan && !this.test;
89
+ if (!_b) return [3 /*break*/, 7];
90
+ return [4 /*yield*/, this.queueScan()];
91
+ case 6:
92
+ _b = (_c.sent());
93
+ _c.label = 7;
94
+ case 7:
95
+ _b;
96
+ return [7 /*endfinally*/];
97
+ case 8: return [2 /*return*/];
98
+ }
99
+ });
100
+ });
101
+ };
102
+ AMSFileScanner.prototype.retrieveFileScanResult = function (id) {
103
+ var _a;
104
+ return (_a = this.scanResults) === null || _a === void 0 ? void 0 : _a.get(id);
105
+ };
106
+ AMSFileScanner.prototype.addOrUpdateFile = function (id, fileMetadata, scan) {
107
+ var _a;
108
+ var scanResult = this.retrieveFileScanResult(id);
109
+ (_a = this.scanResults) === null || _a === void 0 ? void 0 : _a.set(id, __assign(__assign({}, (scanResult || {})), { fileMetadata: fileMetadata,
110
+ scan: scan }));
111
+ };
112
+ AMSFileScanner.prototype.addNext = function (id, next) {
113
+ var _a, _b;
114
+ var scanResult = (_a = this.scanResults) === null || _a === void 0 ? void 0 : _a.get(id);
115
+ if (scanResult) {
116
+ (_b = this.scanResults) === null || _b === void 0 ? void 0 : _b.set(id, __assign(__assign({}, scanResult), { next: next }));
117
+ }
118
+ };
119
+ AMSFileScanner.prototype.addActivity = function (id, activity) {
120
+ var _a, _b;
121
+ var scanResult = (_a = this.scanResults) === null || _a === void 0 ? void 0 : _a.get(id);
122
+ if (scanResult) {
123
+ (_b = this.scanResults) === null || _b === void 0 ? void 0 : _b.set(id, __assign(__assign({}, scanResult), { activity: activity }));
124
+ }
125
+ };
126
+ AMSFileScanner.prototype.scanFileCallback = function (scanResult, id) {
127
+ var _a;
128
+ return __awaiter(this, void 0, void 0, function () {
129
+ var fileMetadata, next, activity, scan, response, view_location, scan_1, e_2;
130
+ return __generator(this, function (_b) {
131
+ switch (_b.label) {
132
+ case 0:
133
+ fileMetadata = scanResult.fileMetadata, next = scanResult.next, activity = scanResult.activity, scan = scanResult.scan;
134
+ if (!((scan === null || scan === void 0 ? void 0 : scan.status) === AMSFileManager_1.AMSViewScanStatus.INPROGRESS)) return [3 /*break*/, 10];
135
+ _b.label = 1;
136
+ case 1:
137
+ _b.trys.push([1, 7, , 8]);
138
+ return [4 /*yield*/, this.amsClient.getViewStatus(fileMetadata)];
139
+ case 2:
140
+ response = _b.sent();
141
+ view_location = response.view_location, scan_1 = response.scan;
142
+ this.addOrUpdateFile(id, scanResult.fileMetadata, scan_1);
143
+ if (!(scan_1.status === AMSFileManager_1.AMSViewScanStatus.PASSED && next && activity)) return [3 /*break*/, 4];
144
+ return [4 /*yield*/, this.renderAttachmentActivity(scanResult, view_location)];
145
+ case 3:
146
+ _b.sent();
147
+ _b.label = 4;
148
+ case 4:
149
+ if (!(scan_1.status === AMSFileManager_1.AMSViewScanStatus.MALWARE && next && activity)) return [3 /*break*/, 6];
150
+ return [4 /*yield*/, this.renderMalwareActivity(scanResult)];
151
+ case 5:
152
+ _b.sent();
153
+ _b.label = 6;
154
+ case 6: return [3 /*break*/, 8];
155
+ case 7:
156
+ e_2 = _b.sent();
157
+ console.error(e_2);
158
+ return [3 /*break*/, 8];
159
+ case 8: return [4 /*yield*/, WebUtils_1.default.sleep(((_a = this.options) === null || _a === void 0 ? void 0 : _a.scanStatusRetrievalDelay) || defaultScanStatusRetrievalDelay)];
160
+ case 9:
161
+ _b.sent();
162
+ _b.label = 10;
163
+ case 10: return [2 /*return*/];
164
+ }
165
+ });
166
+ });
167
+ };
168
+ AMSFileScanner.prototype.scanFiles = function () {
169
+ var _this = this;
170
+ // eslint-disable-next-line no-async-promise-executor
171
+ return new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, function () {
172
+ var _this = this;
173
+ var _a;
174
+ return __generator(this, function (_b) {
175
+ (_a = this.scanResults) === null || _a === void 0 ? void 0 : _a.forEach(function (scanResult, id) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
176
+ switch (_a.label) {
177
+ case 0: return [4 /*yield*/, this.scanFileCallback(scanResult, id)];
178
+ case 1:
179
+ _a.sent();
180
+ return [2 /*return*/];
181
+ }
182
+ }); }); });
183
+ resolve();
184
+ return [2 /*return*/];
185
+ });
186
+ }); });
187
+ };
188
+ AMSFileScanner.prototype.end = function () {
189
+ this.shouldQueueScan = false;
190
+ };
191
+ AMSFileScanner.prototype.retrieveFileBlob = function (fileMetadata, view_location) {
192
+ return __awaiter(this, void 0, void 0, function () {
193
+ var blob, error_1;
194
+ return __generator(this, function (_a) {
195
+ switch (_a.label) {
196
+ case 0:
197
+ _a.trys.push([0, 2, , 3]);
198
+ return [4 /*yield*/, this.amsClient.getView(fileMetadata, view_location)];
199
+ case 1:
200
+ blob = _a.sent(); // eslint-disable-line @typescript-eslint/no-explicit-any
201
+ return [3 /*break*/, 3];
202
+ case 2:
203
+ error_1 = _a.sent();
204
+ console.error(error_1);
205
+ return [3 /*break*/, 3];
206
+ case 3: return [2 /*return*/, blob];
207
+ }
208
+ });
209
+ });
210
+ };
211
+ AMSFileScanner.prototype.addAttachmentToActivity = function (activity, file) {
212
+ return __awaiter(this, void 0, void 0, function () {
213
+ var attachmentData, attachmentSizes, index;
214
+ return __generator(this, function (_a) {
215
+ switch (_a.label) {
216
+ case 0: return [4 /*yield*/, activityUtils_1.default.getAttachments([file])];
217
+ case 1:
218
+ attachmentData = _a.sent();
219
+ return [4 /*yield*/, activityUtils_1.default.getAttachmentSizes([file])];
220
+ case 2:
221
+ attachmentSizes = _a.sent();
222
+ index = activity.attachments.findIndex(function (attachment) { return (attachment.name === file.name); });
223
+ activity.attachments[index] = attachmentData[0];
224
+ activity.channelData.attachmentSizes[index] = attachmentSizes[0];
225
+ return [2 /*return*/];
226
+ }
227
+ });
228
+ });
229
+ };
230
+ AMSFileScanner.prototype.renderAttachmentActivity = function (scanResult, view_location) {
231
+ return __awaiter(this, void 0, void 0, function () {
232
+ var fileMetadata, next, activity, blob, file, index, hasMultipleAttachments, amsreferences, fileIds;
233
+ var _this = this;
234
+ return __generator(this, function (_a) {
235
+ switch (_a.label) {
236
+ case 0:
237
+ fileMetadata = scanResult.fileMetadata, next = scanResult.next, activity = scanResult.activity;
238
+ return [4 /*yield*/, this.retrieveFileBlob(fileMetadata, view_location)];
239
+ case 1:
240
+ blob = _a.sent();
241
+ file = new File([blob], fileMetadata.name, { type: fileMetadata.type });
242
+ return [4 /*yield*/, this.addAttachmentToActivity(activity, file)];
243
+ case 2:
244
+ _a.sent();
245
+ index = activity.attachments.findIndex(function (attachment) { return (attachment.name === file.name); });
246
+ activity.channelData.fileScan[index] = { status: AMSFileManager_1.AMSViewScanStatus.PASSED };
247
+ hasMultipleAttachments = index > 0;
248
+ if (hasMultipleAttachments) {
249
+ amsreferences = activity.channelData.metadata.amsreferences;
250
+ fileIds = JSON.parse(amsreferences);
251
+ fileIds.forEach(function (fileId) {
252
+ _this.addActivity(fileId, activity);
253
+ });
254
+ }
255
+ next(activity); // Send updated activity to webchat
256
+ return [2 /*return*/];
257
+ }
258
+ });
259
+ });
260
+ };
261
+ AMSFileScanner.prototype.renderMalwareActivity = function (scanResult) {
262
+ return __awaiter(this, void 0, void 0, function () {
263
+ var fileMetadata, next, activity, index;
264
+ return __generator(this, function (_a) {
265
+ fileMetadata = scanResult.fileMetadata, next = scanResult.next, activity = scanResult.activity;
266
+ index = activity.attachments.findIndex(function (attachment) { return (attachment.name === fileMetadata.name); });
267
+ activity.channelData.fileScan[index] = { status: AMSFileManager_1.AMSViewScanStatus.MALWARE };
268
+ next(activity);
269
+ return [2 /*return*/];
270
+ });
271
+ });
272
+ };
273
+ return AMSFileScanner;
274
+ }());
275
+ exports.default = AMSFileScanner;
276
+ //# sourceMappingURL=AMSFileScanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AMSFileScanner.js","sourceRoot":"","sources":["../../../src/external/ACSAdapter/AMSFileScanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const getDataURL: (file: File) => Promise<string | ArrayBuffer>;
2
+ export declare const getAttachments: (files: File[]) => Promise<Array<any>>;
3
+ export declare const getAttachmentSizes: (files: File[]) => number[];
4
+ declare const _default: {
5
+ getDataURL: (file: File) => Promise<string | ArrayBuffer>;
6
+ getAttachments: (files: File[]) => Promise<any[]>;
7
+ getAttachmentSizes: (files: File[]) => number[];
8
+ };
9
+ export default _default;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.getAttachmentSizes = exports.getAttachments = exports.getDataURL = void 0;
40
+ exports.getDataURL = function (file) { return __awaiter(void 0, void 0, void 0, function () {
41
+ return __generator(this, function (_a) {
42
+ return [2 /*return*/, new Promise(function (resolve) {
43
+ var fileReader = new FileReader();
44
+ fileReader.onloadend = function () {
45
+ resolve(fileReader.result); // eslint-disable-line @typescript-eslint/no-explicit-any
46
+ };
47
+ fileReader.readAsDataURL(file);
48
+ })];
49
+ });
50
+ }); };
51
+ exports.getAttachments = function (files) { return __awaiter(void 0, void 0, void 0, function () {
52
+ return __generator(this, function (_a) {
53
+ return [2 /*return*/, Promise.all(files.map(function (file) { return __awaiter(void 0, void 0, void 0, function () {
54
+ var url;
55
+ return __generator(this, function (_a) {
56
+ switch (_a.label) {
57
+ case 0:
58
+ if (!file) return [3 /*break*/, 2];
59
+ return [4 /*yield*/, exports.getDataURL(file)];
60
+ case 1:
61
+ url = _a.sent();
62
+ return [2 /*return*/, {
63
+ contentType: file.type,
64
+ contentUrl: url,
65
+ name: file.name,
66
+ thumbnailUrl: file.type.match("(image|video|audio).*") ? url : undefined
67
+ }];
68
+ case 2: return [2 /*return*/];
69
+ }
70
+ });
71
+ }); }))];
72
+ });
73
+ }); };
74
+ exports.getAttachmentSizes = function (files) {
75
+ return files.map(function (file) {
76
+ return file.size;
77
+ });
78
+ };
79
+ exports.default = { getDataURL: exports.getDataURL, getAttachments: exports.getAttachments, getAttachmentSizes: exports.getAttachmentSizes };
80
+ //# sourceMappingURL=activityUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activityUtils.js","sourceRoot":"","sources":["../../../src/external/ACSAdapter/activityUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAa,QAAA,UAAU,GAAG,UAAO,IAAU;;QACvC,sBAAO,IAAI,OAAO,CAAC,UAAC,OAAO;gBACvB,IAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;gBACpC,UAAU,CAAC,SAAS,GAAG;oBACnB,OAAO,CAAE,UAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,yDAAyD;gBAClG,CAAC,CAAC;gBACF,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC,CAAC,EAAC;;KACN,CAAA;AAEY,QAAA,cAAc,GAAG,UAAO,KAAa;;QAC9C,sBAAO,OAAO,CAAC,GAAG,CACd,KAAK,CAAC,GAAG,CAAC,UAAO,IAAU;;;;;iCACnB,IAAI,EAAJ,wBAAI;4BACQ,qBAAM,kBAAU,CAAC,IAAI,CAAC,EAAA;;4BAA5B,GAAG,GAAG,SAAsB;4BAClC,sBAAO;oCACH,WAAW,EAAE,IAAI,CAAC,IAAI;oCACtB,UAAU,EAAE,GAAG;oCACf,IAAI,EAAE,IAAI,CAAC,IAAI;oCACf,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,CAAC,CAAC,SAAS;iCAC1E,EAAA;;;;iBAER,CAAC,CACL,EAAA;;KACJ,CAAA;AAEY,QAAA,kBAAkB,GAAG,UAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,UAAC,IAAU;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC,CAAA;AAED,kBAAe,EAAC,UAAU,oBAAA,EAAE,cAAc,wBAAA,EAAE,kBAAkB,4BAAA,EAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare const createFileScanIngressMiddleware: () => CallableFunction;
2
+ export default createFileScanIngressMiddleware;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ var createFileScanIngressMiddleware = function () {
51
+ var fileScanIngressMiddleware = function () { return function (next) { return function (activity) { return __awaiter(void 0, void 0, void 0, function () {
52
+ var attachments, channelData, amsreferences, scanFile_1, fileIds;
53
+ var _a, _b;
54
+ return __generator(this, function (_c) {
55
+ attachments = activity.attachments, channelData = activity.channelData;
56
+ if (!attachments) {
57
+ return [2 /*return*/, next(activity)];
58
+ }
59
+ // Patch references
60
+ if (!((_a = channelData === null || channelData === void 0 ? void 0 : channelData.metadata) === null || _a === void 0 ? void 0 : _a.amsreferences) && ((_b = channelData === null || channelData === void 0 ? void 0 : channelData.metadata) === null || _b === void 0 ? void 0 : _b.amsReferences)) {
61
+ activity.channelData.metadata.amsreferences = channelData.metadata.amsReferences;
62
+ }
63
+ amsreferences = channelData.metadata.amsreferences;
64
+ if (amsreferences) {
65
+ try {
66
+ scanFile_1 = function (fileId) {
67
+ var fileScanner = window.chatAdapter.fileManager.fileScanner; // eslint-disable-line @typescript-eslint/no-explicit-any
68
+ if (!fileScanner) {
69
+ return next(activity);
70
+ }
71
+ var scanResult = fileScanner.retrieveFileScanResult(fileId);
72
+ if (scanResult) {
73
+ var scan = scanResult.scan, fileMetadata_1 = scanResult.fileMetadata;
74
+ var index = activity.attachments.findIndex(function (attachment) { return (attachment.name === fileMetadata_1.name); }); // eslint-disable-line @typescript-eslint/no-explicit-any
75
+ if (!activity.channelData.fileScan) {
76
+ activity.channelData.fileScan = [];
77
+ }
78
+ activity.channelData.fileScan[index] = scan;
79
+ }
80
+ fileScanner.addNext(fileId, next);
81
+ fileScanner.addActivity(fileId, __assign({}, activity));
82
+ };
83
+ fileIds = JSON.parse(amsreferences);
84
+ fileIds.forEach(function (fileId) { return scanFile_1(fileId); });
85
+ }
86
+ catch (e) {
87
+ console.error(e);
88
+ }
89
+ }
90
+ return [2 /*return*/, next(activity)];
91
+ });
92
+ }); }; }; };
93
+ return fileScanIngressMiddleware;
94
+ };
95
+ exports.default = createFileScanIngressMiddleware;
96
+ //# sourceMappingURL=createFileScanIngressMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFileScanIngressMiddleware.js","sourceRoot":"","sources":["../../../src/external/ACSAdapter/createFileScanIngressMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,+BAA+B,GAAG;IACpC,IAAM,yBAAyB,GAAG,cAAM,OAAA,UAAC,IAAS,IAAK,OAAA,UAAO,QAAa;;;;YAChE,WAAW,GAAiB,QAAQ,YAAzB,EAAE,WAAW,GAAI,QAAQ,YAAZ,CAAa;YAC5C,IAAI,CAAC,WAAW,EAAE;gBACd,sBAAO,IAAI,CAAC,QAAQ,CAAC,EAAC;aACzB;YAED,mBAAmB;YACnB,IAAI,QAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,0CAAE,aAAa,CAAA,WAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,0CAAE,aAAa,CAAA,EAAE;gBAC/E,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC;aACpF;YAEiB,aAAa,GAAK,WAAW,uBAAhB,CAAiB;YAEhD,IAAI,aAAa,EAAE;gBACf,IAAI;oBACM,aAAW,UAAC,MAAc;wBACpB,IAAA,WAAW,GAAM,MAAc,CAAC,WAAW,CAAC,WAAW,YAA5C,CAA6C,CAAE,yDAAyD;wBAE3H,IAAI,CAAC,WAAW,EAAE;4BACd,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;yBACzB;wBAED,IAAM,UAAU,GAAG,WAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;wBAC9D,IAAI,UAAU,EAAE;4BACL,IAAA,IAAI,GAAkB,UAAU,KAA5B,EAAE,cAAY,GAAI,UAAU,aAAd,CAAe;4BACxC,IAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,UAAC,UAAe,IAAK,OAAA,CAAC,UAAU,CAAC,IAAI,KAAK,cAAY,CAAC,IAAI,CAAC,EAAvC,CAAuC,CAAC,CAAC,CAAC,yDAAyD;4BAErK,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE;gCAChC,QAAQ,CAAC,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC;6BACtC;4BAED,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;yBAC/C;wBAED,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBAClC,WAAW,CAAC,WAAW,CAAC,MAAM,eAAM,QAAQ,EAAE,CAAC;oBACnD,CAAC,CAAC;oBAEI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;oBAC1C,OAAO,CAAC,OAAO,CAAC,UAAC,MAAc,IAAK,OAAA,UAAQ,CAAC,MAAM,CAAC,EAAhB,CAAgB,CAAC,CAAC;iBACzD;gBAAC,OAAO,CAAC,EAAE;oBACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACpB;aACJ;YAED,sBAAO,IAAI,CAAC,QAAQ,CAAC,EAAC;;SACzB,EA9CsD,CA8CtD,EA9CuC,CA8CvC,CAAA;IAED,OAAO,yBAAyB,CAAC;AACrC,CAAC,CAAA;AAED,kBAAe,+BAA+B,CAAC"}