@stemy/backend 3.5.3 → 3.5.6

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,26 +1,35 @@
1
1
  import { getStatusCode, OpenAPI } from "routing-controllers-openapi";
2
- export function IsDocumented(summary = null) {
3
- return OpenAPI(operation => {
4
- operation.summary = summary || operation.summary;
5
- operation.tags = ["Documented"].concat(operation.tags || []);
6
- return operation;
2
+ export function IsDocumented(summary = null, paramDescriptions = {}) {
3
+ return OpenAPI(op => {
4
+ var _a;
5
+ op.summary = summary || op.summary;
6
+ op.tags = ["Documented"].concat(op.tags || []);
7
+ (_a = op.parameters) === null || _a === void 0 ? void 0 : _a.forEach(p => {
8
+ if (p.$ref)
9
+ return;
10
+ const schema = p;
11
+ schema.description = paramDescriptions[schema.name]
12
+ || schema.description
13
+ || `param.${op.operationId}.${schema.name}`.toLowerCase();
14
+ });
15
+ return op;
7
16
  });
8
17
  }
9
18
  export function JsonResponse(description = "Success", statusCode = null) {
10
- return OpenAPI((operation, route) => {
19
+ return OpenAPI((op, route) => {
11
20
  const status = statusCode !== null && statusCode !== void 0 ? statusCode : getStatusCode(route) + "";
12
- operation.responses = operation.responses || {};
13
- operation.responses[status] = {
21
+ op.responses = op.responses || {};
22
+ op.responses[status] = {
14
23
  description,
15
24
  content: {
16
25
  "application/json": {}
17
26
  }
18
27
  };
19
- return operation;
28
+ return op;
20
29
  });
21
30
  }
22
31
  export function ResponseType(type, options = {}) {
23
- return OpenAPI((operation, route) => {
32
+ return OpenAPI((op, route) => {
24
33
  var _a;
25
34
  const contentType = "application/json";
26
35
  const statusCode = (_a = options === null || options === void 0 ? void 0 : options.statusCode) !== null && _a !== void 0 ? _a : getStatusCode(route) + "";
@@ -30,8 +39,8 @@ export function ResponseType(type, options = {}) {
30
39
  const schema = options.isArray
31
40
  ? { items: reference, type: "array" }
32
41
  : reference;
33
- operation.responses = operation.responses || {};
34
- operation.responses[statusCode] = {
42
+ op.responses = op.responses || {};
43
+ op.responses[statusCode] = {
35
44
  description: options.description || "Success",
36
45
  content: {
37
46
  [contentType]: {
@@ -39,7 +48,7 @@ export function ResponseType(type, options = {}) {
39
48
  }
40
49
  }
41
50
  };
42
- return operation;
51
+ return op;
43
52
  });
44
53
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsaXRpZXMvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFFLE9BQU8sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR25FLE1BQU0sVUFBVSxZQUFZLENBQUMsVUFBa0IsSUFBSTtJQUMvQyxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUN2QixTQUFTLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQ2pELFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLGNBQXNCLFNBQVMsRUFBRSxhQUFxQixJQUFJO0lBQ25GLE9BQU8sT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkQsU0FBUyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUNoRCxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQzFCLFdBQVc7WUFDWCxPQUFPLEVBQUU7Z0JBQ0wsa0JBQWtCLEVBQUUsRUFBRTthQUN6QjtTQUNKLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFRRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQWMsRUFBRSxVQUFnQyxFQUFFO0lBQzNFLE9BQU8sT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFOztRQUNoQyxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztRQUN2QyxNQUFNLFVBQVUsR0FBRyxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxVQUFVLG1DQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEUsTUFBTSxTQUFTLEdBQW9CO1lBQy9CLElBQUksRUFBRSx3QkFBd0IsSUFBSSxDQUFDLElBQUksRUFBRTtTQUM1QyxDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQWlCLE9BQU8sQ0FBQyxPQUFPO1lBQ3hDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUNyQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2hCLFNBQVMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDaEQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRztZQUM5QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVcsSUFBSSxTQUFTO1lBQzdDLE9BQU8sRUFBRTtnQkFDTCxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUNYLE1BQU07aUJBQ1Q7YUFDSjtTQUNKLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dldFN0YXR1c0NvZGUsIE9wZW5BUEl9IGZyb20gXCJyb3V0aW5nLWNvbnRyb2xsZXJzLW9wZW5hcGlcIjtcclxuaW1wb3J0IHtSZWZlcmVuY2VPYmplY3QsIFNjaGVtYU9iamVjdH0gZnJvbSBcIm9wZW5hcGkzLXRzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gSXNEb2N1bWVudGVkKHN1bW1hcnk6IHN0cmluZyA9IG51bGwpIHtcclxuICAgIHJldHVybiBPcGVuQVBJKG9wZXJhdGlvbiA9PiB7XHJcbiAgICAgICAgb3BlcmF0aW9uLnN1bW1hcnkgPSBzdW1tYXJ5IHx8IG9wZXJhdGlvbi5zdW1tYXJ5O1xyXG4gICAgICAgIG9wZXJhdGlvbi50YWdzID0gW1wiRG9jdW1lbnRlZFwiXS5jb25jYXQob3BlcmF0aW9uLnRhZ3MgfHwgW10pO1xyXG4gICAgICAgIHJldHVybiBvcGVyYXRpb247XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEpzb25SZXNwb25zZShkZXNjcmlwdGlvbjogc3RyaW5nID0gXCJTdWNjZXNzXCIsIHN0YXR1c0NvZGU6IG51bWJlciA9IG51bGwpIHtcclxuICAgIHJldHVybiBPcGVuQVBJKChvcGVyYXRpb24sIHJvdXRlKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gc3RhdHVzQ29kZSA/PyBnZXRTdGF0dXNDb2RlKHJvdXRlKSArIFwiXCI7XHJcbiAgICAgICAgb3BlcmF0aW9uLnJlc3BvbnNlcyA9IG9wZXJhdGlvbi5yZXNwb25zZXMgfHwge307XHJcbiAgICAgICAgb3BlcmF0aW9uLnJlc3BvbnNlc1tzdGF0dXNdID0ge1xyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgY29udGVudDoge1xyXG4gICAgICAgICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBvcGVyYXRpb247XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUmVzcG9uc2VUeXBlT3B0aW9ucyB7XHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICAgIHN0YXR1c0NvZGU/OiBudW1iZXI7XHJcbiAgICBpc0FycmF5PzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFJlc3BvbnNlVHlwZSh0eXBlOiBGdW5jdGlvbiwgb3B0aW9uczogSVJlc3BvbnNlVHlwZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgcmV0dXJuIE9wZW5BUEkoKG9wZXJhdGlvbiwgcm91dGUpID0+IHtcclxuICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IFwiYXBwbGljYXRpb24vanNvblwiO1xyXG4gICAgICAgIGNvbnN0IHN0YXR1c0NvZGUgPSBvcHRpb25zPy5zdGF0dXNDb2RlID8/IGdldFN0YXR1c0NvZGUocm91dGUpICsgXCJcIjtcclxuICAgICAgICBjb25zdCByZWZlcmVuY2U6IFJlZmVyZW5jZU9iamVjdCA9IHtcclxuICAgICAgICAgICAgJHJlZjogYCMvY29tcG9uZW50cy9zY2hlbWFzLyR7dHlwZS5uYW1lfWAsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBzY2hlbWE6IFNjaGVtYU9iamVjdCA9IG9wdGlvbnMuaXNBcnJheVxyXG4gICAgICAgICAgICA/IHsgaXRlbXM6IHJlZmVyZW5jZSwgdHlwZTogXCJhcnJheVwiIH1cclxuICAgICAgICAgICAgOiByZWZlcmVuY2U7XHJcbiAgICAgICAgb3BlcmF0aW9uLnJlc3BvbnNlcyA9IG9wZXJhdGlvbi5yZXNwb25zZXMgfHwge307XHJcbiAgICAgICAgb3BlcmF0aW9uLnJlc3BvbnNlc1tzdGF0dXNDb2RlXSA9IHtcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb24gfHwgXCJTdWNjZXNzXCIsXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgICAgIFtjb250ZW50VHlwZV06IHtcclxuICAgICAgICAgICAgICAgICAgICBzY2hlbWFcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgcmV0dXJuIG9wZXJhdGlvbjtcclxuICAgIH0pO1xyXG59XHJcbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsaXRpZXMvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFFLE9BQU8sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR25FLE1BQU0sVUFBVSxZQUFZLENBQUMsVUFBa0IsSUFBSSxFQUFFLG9CQUE4QyxFQUFFO0lBQ2pHLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFOztRQUNoQixFQUFFLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQ25DLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxNQUFBLEVBQUUsQ0FBQyxVQUFVLDBDQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsQ0FBQyxJQUFJO2dCQUFFLE9BQU87WUFDbkIsTUFBTSxNQUFNLEdBQUcsQ0FBaUIsQ0FBQztZQUNqQyxNQUFNLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7bUJBQzVDLE1BQU0sQ0FBQyxXQUFXO21CQUNsQixTQUFTLEVBQUUsQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLGNBQXNCLFNBQVMsRUFBRSxhQUFxQixJQUFJO0lBQ25GLE9BQU8sT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkQsRUFBRSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ25CLFdBQVc7WUFDWCxPQUFPLEVBQUU7Z0JBQ0wsa0JBQWtCLEVBQUUsRUFBRTthQUN6QjtTQUNKLENBQUM7UUFDRixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQVFELE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBYyxFQUFFLFVBQWdDLEVBQUU7SUFDM0UsT0FBTyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUU7O1FBQ3pCLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFVBQVUsbUNBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwRSxNQUFNLFNBQVMsR0FBb0I7WUFDL0IsSUFBSSxFQUFFLHdCQUF3QixJQUFJLENBQUMsSUFBSSxFQUFFO1NBQzVDLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBaUIsT0FBTyxDQUFDLE9BQU87WUFDeEMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3JDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsRUFBRSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHO1lBQ3ZCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxJQUFJLFNBQVM7WUFDN0MsT0FBTyxFQUFFO2dCQUNMLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ1gsTUFBTTtpQkFDVDthQUNKO1NBQ0osQ0FBQztRQUNGLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtnZXRTdGF0dXNDb2RlLCBPcGVuQVBJfSBmcm9tIFwicm91dGluZy1jb250cm9sbGVycy1vcGVuYXBpXCI7XHJcbmltcG9ydCB7UmVmZXJlbmNlT2JqZWN0LCBTY2hlbWFPYmplY3R9IGZyb20gXCJvcGVuYXBpMy10c1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIElzRG9jdW1lbnRlZChzdW1tYXJ5OiBzdHJpbmcgPSBudWxsLCBwYXJhbURlc2NyaXB0aW9uczoge1tuYW1lOiBzdHJpbmddOiBzdHJpbmd9ID0ge30pIHtcclxuICAgIHJldHVybiBPcGVuQVBJKG9wID0+IHtcclxuICAgICAgICBvcC5zdW1tYXJ5ID0gc3VtbWFyeSB8fCBvcC5zdW1tYXJ5O1xyXG4gICAgICAgIG9wLnRhZ3MgPSBbXCJEb2N1bWVudGVkXCJdLmNvbmNhdChvcC50YWdzIHx8IFtdKTtcclxuICAgICAgICBvcC5wYXJhbWV0ZXJzPy5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgICBpZiAocC4kcmVmKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYSA9IHAgYXMgU2NoZW1hT2JqZWN0O1xyXG4gICAgICAgICAgICBzY2hlbWEuZGVzY3JpcHRpb24gPSBwYXJhbURlc2NyaXB0aW9uc1tzY2hlbWEubmFtZV1cclxuICAgICAgICAgICAgICAgIHx8IHNjaGVtYS5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgfHwgYHBhcmFtLiR7b3Aub3BlcmF0aW9uSWR9LiR7c2NoZW1hLm5hbWV9YC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBvcDtcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gSnNvblJlc3BvbnNlKGRlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIlN1Y2Nlc3NcIiwgc3RhdHVzQ29kZTogbnVtYmVyID0gbnVsbCkge1xyXG4gICAgcmV0dXJuIE9wZW5BUEkoKG9wLCByb3V0ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IHN0YXR1c0NvZGUgPz8gZ2V0U3RhdHVzQ29kZShyb3V0ZSkgKyBcIlwiO1xyXG4gICAgICAgIG9wLnJlc3BvbnNlcyA9IG9wLnJlc3BvbnNlcyB8fCB7fTtcclxuICAgICAgICBvcC5yZXNwb25zZXNbc3RhdHVzXSA9IHtcclxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6IHtcclxuICAgICAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gb3A7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJUmVzcG9uc2VUeXBlT3B0aW9ucyB7XHJcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICAgIHN0YXR1c0NvZGU/OiBudW1iZXI7XHJcbiAgICBpc0FycmF5PzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFJlc3BvbnNlVHlwZSh0eXBlOiBGdW5jdGlvbiwgb3B0aW9uczogSVJlc3BvbnNlVHlwZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgcmV0dXJuIE9wZW5BUEkoKG9wLCByb3V0ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gXCJhcHBsaWNhdGlvbi9qc29uXCI7XHJcbiAgICAgICAgY29uc3Qgc3RhdHVzQ29kZSA9IG9wdGlvbnM/LnN0YXR1c0NvZGUgPz8gZ2V0U3RhdHVzQ29kZShyb3V0ZSkgKyBcIlwiO1xyXG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZTogUmVmZXJlbmNlT2JqZWN0ID0ge1xyXG4gICAgICAgICAgICAkcmVmOiBgIy9jb21wb25lbnRzL3NjaGVtYXMvJHt0eXBlLm5hbWV9YCxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IHNjaGVtYTogU2NoZW1hT2JqZWN0ID0gb3B0aW9ucy5pc0FycmF5XHJcbiAgICAgICAgICAgID8geyBpdGVtczogcmVmZXJlbmNlLCB0eXBlOiBcImFycmF5XCIgfVxyXG4gICAgICAgICAgICA6IHJlZmVyZW5jZTtcclxuICAgICAgICBvcC5yZXNwb25zZXMgPSBvcC5yZXNwb25zZXMgfHwge307XHJcbiAgICAgICAgb3AucmVzcG9uc2VzW3N0YXR1c0NvZGVdID0ge1xyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbiB8fCBcIlN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgY29udGVudDoge1xyXG4gICAgICAgICAgICAgICAgW2NvbnRlbnRUeXBlXToge1xyXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gb3A7XHJcbiAgICB9KTtcclxufVxyXG4iXX0=