payload 2.30.0 → 2.30.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index.js +4 -4
- package/dist/admin/components/elements/DuplicateDocument/baseBeforeDuplicate.d.ts +6 -0
- package/dist/admin/components/elements/DuplicateDocument/baseBeforeDuplicate.d.ts.map +1 -0
- package/dist/admin/components/elements/DuplicateDocument/baseBeforeDuplicate.js +75 -0
- package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DuplicateDocument/index.js +7 -1
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +45 -16
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +19 -19
- package/dist/versions/drafts/appendVersionToQueryKey.d.ts +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.js +2 -2
- package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
- package/dist/versions/drafts/getQueryDraftsSort.js +4 -1
- package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
- package/dist/versions/getLatestCollectionVersion.js +5 -3
- package/package.json +15 -15
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type BeforeDuplicate } from '../../../../exports/types';
|
|
2
|
+
/**
|
|
3
|
+
* Creates new IDs for blocks / arrays items to avoid errors with relational databases.
|
|
4
|
+
*/
|
|
5
|
+
export declare const baseBeforeDuplicate: (args: Parameters<BeforeDuplicate>[0]) => any;
|
|
6
|
+
//# sourceMappingURL=baseBeforeDuplicate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseBeforeDuplicate.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/DuplicateDocument/baseBeforeDuplicate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,2BAA2B,CAAA;AAExF;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAAU,WAAW,eAAe,CAAC,CAAC,CAAC,CAAC,QASvE,CAAA"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "baseBeforeDuplicate", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return baseBeforeDuplicate;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _bsonobjectid = /*#__PURE__*/ _interop_require_default(require("bson-objectid"));
|
|
12
|
+
const _types = require("../../../../exports/types");
|
|
13
|
+
function _interop_require_default(obj) {
|
|
14
|
+
return obj && obj.__esModule ? obj : {
|
|
15
|
+
default: obj
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
const baseBeforeDuplicate = (args)=>{
|
|
19
|
+
const { collection: { fields }, data } = args;
|
|
20
|
+
traverseFields(fields, data);
|
|
21
|
+
return data;
|
|
22
|
+
};
|
|
23
|
+
function traverseFields(fields, data) {
|
|
24
|
+
if (typeof data === 'undefined' || data === null) return;
|
|
25
|
+
fields.forEach((field)=>{
|
|
26
|
+
switch(field.type){
|
|
27
|
+
case 'array':
|
|
28
|
+
if (Array.isArray(data?.[field.name])) {
|
|
29
|
+
data[field.name].forEach((row)=>{
|
|
30
|
+
if (!row) return;
|
|
31
|
+
row.id = new _bsonobjectid.default().toHexString();
|
|
32
|
+
traverseFields(field.fields, row);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
break;
|
|
36
|
+
case 'blocks':
|
|
37
|
+
{
|
|
38
|
+
if (Array.isArray(data?.[field.name])) {
|
|
39
|
+
data[field.name].forEach((row)=>{
|
|
40
|
+
if (!row) return;
|
|
41
|
+
const configBlock = field.blocks.find((block)=>block.slug === row.blockType);
|
|
42
|
+
if (!configBlock) return;
|
|
43
|
+
row.id = new _bsonobjectid.default().toHexString();
|
|
44
|
+
traverseFields(configBlock.fields, row);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case 'row':
|
|
50
|
+
case 'collapsible':
|
|
51
|
+
traverseFields(field.fields, data);
|
|
52
|
+
break;
|
|
53
|
+
case 'tabs':
|
|
54
|
+
field.tabs.forEach((tab)=>{
|
|
55
|
+
if (!(0, _types.tabHasName)(tab)) {
|
|
56
|
+
traverseFields(tab.fields, data);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (data && data[tab.name]) {
|
|
60
|
+
traverseFields(tab.fields, data[tab.name]);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
break;
|
|
64
|
+
case 'group':
|
|
65
|
+
if (data && data[field.name]) {
|
|
66
|
+
traverseFields(field.fields, data[field.name]);
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
default:
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0R1cGxpY2F0ZURvY3VtZW50L2Jhc2VCZWZvcmVEdXBsaWNhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9iamVjdElEIGZyb20gJ2Jzb24tb2JqZWN0aWQnXG5cbmltcG9ydCB7IHR5cGUgQmVmb3JlRHVwbGljYXRlLCB0eXBlIEZpZWxkLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXhwb3J0cy90eXBlcydcblxuLyoqXG4gKiBDcmVhdGVzIG5ldyBJRHMgZm9yIGJsb2NrcyAvIGFycmF5cyBpdGVtcyB0byBhdm9pZCBlcnJvcnMgd2l0aCByZWxhdGlvbmFsIGRhdGFiYXNlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGJhc2VCZWZvcmVEdXBsaWNhdGUgPSAoYXJnczogUGFyYW1ldGVyczxCZWZvcmVEdXBsaWNhdGU+WzBdKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb2xsZWN0aW9uOiB7IGZpZWxkcyB9LFxuICAgIGRhdGEsXG4gIH0gPSBhcmdzXG5cbiAgdHJhdmVyc2VGaWVsZHMoZmllbGRzLCBkYXRhKVxuXG4gIHJldHVybiBkYXRhXG59XG5cbmZ1bmN0aW9uIHRyYXZlcnNlRmllbGRzKGZpZWxkczogRmllbGRbXSwgZGF0YTogdW5rbm93bikge1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICd1bmRlZmluZWQnIHx8IGRhdGEgPT09IG51bGwpIHJldHVyblxuXG4gIGZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhPy5bZmllbGQubmFtZV0pKSB7XG4gICAgICAgICAgZGF0YVtmaWVsZC5uYW1lXS5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICAgIGlmICghcm93KSByZXR1cm5cbiAgICAgICAgICAgIHJvdy5pZCA9IG5ldyBPYmplY3RJRCgpLnRvSGV4U3RyaW5nKClcbiAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKGZpZWxkLmZpZWxkcywgcm93KVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YT8uW2ZpZWxkLm5hbWVdKSkge1xuICAgICAgICAgIGRhdGFbZmllbGQubmFtZV0uZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJvdykgcmV0dXJuXG4gICAgICAgICAgICBjb25zdCBjb25maWdCbG9jayA9IGZpZWxkLmJsb2Nrcy5maW5kKChibG9jaykgPT4gYmxvY2suc2x1ZyA9PT0gcm93LmJsb2NrVHlwZSlcbiAgICAgICAgICAgIGlmICghY29uZmlnQmxvY2spIHJldHVyblxuICAgICAgICAgICAgcm93LmlkID0gbmV3IE9iamVjdElEKCkudG9IZXhTdHJpbmcoKVxuICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoY29uZmlnQmxvY2suZmllbGRzLCByb3cpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAncm93JzpcbiAgICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzpcbiAgICAgICAgdHJhdmVyc2VGaWVsZHMoZmllbGQuZmllbGRzLCBkYXRhKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAndGFicyc6XG4gICAgICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgICAgaWYgKCF0YWJIYXNOYW1lKHRhYikpIHtcbiAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHRhYi5maWVsZHMsIGRhdGEpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhW3RhYi5uYW1lXSkge1xuICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHModGFiLmZpZWxkcywgZGF0YVt0YWIubmFtZV0pXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnZ3JvdXAnOlxuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhW2ZpZWxkLm5hbWVdKSB7XG4gICAgICAgICAgdHJhdmVyc2VGaWVsZHMoZmllbGQuZmllbGRzLCBkYXRhW2ZpZWxkLm5hbWVdKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVha1xuICAgIH1cbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlQmVmb3JlRHVwbGljYXRlIiwiYXJncyIsImNvbGxlY3Rpb24iLCJmaWVsZHMiLCJkYXRhIiwidHJhdmVyc2VGaWVsZHMiLCJmb3JFYWNoIiwiZmllbGQiLCJ0eXBlIiwiQXJyYXkiLCJpc0FycmF5IiwibmFtZSIsInJvdyIsImlkIiwiT2JqZWN0SUQiLCJ0b0hleFN0cmluZyIsImNvbmZpZ0Jsb2NrIiwiYmxvY2tzIiwiZmluZCIsImJsb2NrIiwic2x1ZyIsImJsb2NrVHlwZSIsInRhYnMiLCJ0YWIiLCJ0YWJIYXNOYW1lIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkFPYUE7OztlQUFBQTs7O3FFQVBRO3VCQUV3Qzs7Ozs7O0FBS3RELE1BQU1BLHNCQUFzQixDQUFDQztJQUNsQyxNQUFNLEVBQ0pDLFlBQVksRUFBRUMsTUFBTSxFQUFFLEVBQ3RCQyxJQUFJLEVBQ0wsR0FBR0g7SUFFSkksZUFBZUYsUUFBUUM7SUFFdkIsT0FBT0E7QUFDVDtBQUVBLFNBQVNDLGVBQWVGLE1BQWUsRUFBRUMsSUFBYTtJQUNwRCxJQUFJLE9BQU9BLFNBQVMsZUFBZUEsU0FBUyxNQUFNO0lBRWxERCxPQUFPRyxPQUFPLENBQUMsQ0FBQ0M7UUFDZCxPQUFRQSxNQUFNQyxJQUFJO1lBQ2hCLEtBQUs7Z0JBQ0gsSUFBSUMsTUFBTUMsT0FBTyxDQUFDTixNQUFNLENBQUNHLE1BQU1JLElBQUksQ0FBQyxHQUFHO29CQUNyQ1AsSUFBSSxDQUFDRyxNQUFNSSxJQUFJLENBQUMsQ0FBQ0wsT0FBTyxDQUFDLENBQUNNO3dCQUN4QixJQUFJLENBQUNBLEtBQUs7d0JBQ1ZBLElBQUlDLEVBQUUsR0FBRyxJQUFJQyxxQkFBUSxHQUFHQyxXQUFXO3dCQUNuQ1YsZUFBZUUsTUFBTUosTUFBTSxFQUFFUztvQkFDL0I7Z0JBQ0Y7Z0JBQ0E7WUFDRixLQUFLO2dCQUFVO29CQUNiLElBQUlILE1BQU1DLE9BQU8sQ0FBQ04sTUFBTSxDQUFDRyxNQUFNSSxJQUFJLENBQUMsR0FBRzt3QkFDckNQLElBQUksQ0FBQ0csTUFBTUksSUFBSSxDQUFDLENBQUNMLE9BQU8sQ0FBQyxDQUFDTTs0QkFDeEIsSUFBSSxDQUFDQSxLQUFLOzRCQUNWLE1BQU1JLGNBQWNULE1BQU1VLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLFFBQVVBLE1BQU1DLElBQUksS0FBS1IsSUFBSVMsU0FBUzs0QkFDN0UsSUFBSSxDQUFDTCxhQUFhOzRCQUNsQkosSUFBSUMsRUFBRSxHQUFHLElBQUlDLHFCQUFRLEdBQUdDLFdBQVc7NEJBQ25DVixlQUFlVyxZQUFZYixNQUFNLEVBQUVTO3dCQUNyQztvQkFDRjtvQkFDQTtnQkFDRjtZQUNBLEtBQUs7WUFDTCxLQUFLO2dCQUNIUCxlQUFlRSxNQUFNSixNQUFNLEVBQUVDO2dCQUM3QjtZQUNGLEtBQUs7Z0JBQ0hHLE1BQU1lLElBQUksQ0FBQ2hCLE9BQU8sQ0FBQyxDQUFDaUI7b0JBQ2xCLElBQUksQ0FBQ0MsSUFBQUEsaUJBQVUsRUFBQ0QsTUFBTTt3QkFDcEJsQixlQUFla0IsSUFBSXBCLE1BQU0sRUFBRUM7d0JBQzNCO29CQUNGO29CQUVBLElBQUlBLFFBQVFBLElBQUksQ0FBQ21CLElBQUlaLElBQUksQ0FBQyxFQUFFO3dCQUMxQk4sZUFBZWtCLElBQUlwQixNQUFNLEVBQUVDLElBQUksQ0FBQ21CLElBQUlaLElBQUksQ0FBQztvQkFDM0M7Z0JBQ0Y7Z0JBQ0E7WUFDRixLQUFLO2dCQUNILElBQUlQLFFBQVFBLElBQUksQ0FBQ0csTUFBTUksSUFBSSxDQUFDLEVBQUU7b0JBQzVCTixlQUFlRSxNQUFNSixNQUFNLEVBQUVDLElBQUksQ0FBQ0csTUFBTUksSUFBSSxDQUFDO2dCQUMvQztnQkFDQTtZQUNGO2dCQUNFO1FBQ0o7SUFDRjtBQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAUpC,OAAO,cAAc,CAAA;AAIrB,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiM9B,CAAA;AAED,eAAe,SAAS,CAAA"}
|
|
@@ -20,6 +20,7 @@ const _Minimal = /*#__PURE__*/ _interop_require_default(require("../../templates
|
|
|
20
20
|
const _Config = require("../../utilities/Config");
|
|
21
21
|
const _Button = /*#__PURE__*/ _interop_require_default(require("../Button"));
|
|
22
22
|
const _PopupButtonList = /*#__PURE__*/ _interop_require_wildcard(require("../Popup/PopupButtonList"));
|
|
23
|
+
const _baseBeforeDuplicate = require("./baseBeforeDuplicate");
|
|
23
24
|
require("./index.scss");
|
|
24
25
|
function _interop_require_default(obj) {
|
|
25
26
|
return obj && obj.__esModule ? obj : {
|
|
@@ -100,6 +101,11 @@ const Duplicate = ({ id, slug, collection })=>{
|
|
|
100
101
|
}
|
|
101
102
|
});
|
|
102
103
|
let data = await response.json();
|
|
104
|
+
data = (0, _baseBeforeDuplicate.baseBeforeDuplicate)({
|
|
105
|
+
collection,
|
|
106
|
+
data,
|
|
107
|
+
locale
|
|
108
|
+
});
|
|
103
109
|
if (typeof collection.admin.hooks?.beforeDuplicate === 'function') {
|
|
104
110
|
data = await collection.admin.hooks.beforeDuplicate({
|
|
105
111
|
collection,
|
|
@@ -222,4 +228,4 @@ const Duplicate = ({ id, slug, collection })=>{
|
|
|
222
228
|
};
|
|
223
229
|
const _default = Duplicate;
|
|
224
230
|
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0R1cGxpY2F0ZURvY3VtZW50L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RhbCwgdXNlTW9kYWwgfSBmcm9tICdAZmFjZWxlc3MtdWkvbW9kYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9nZXRUcmFuc2xhdGlvbidcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vLi4vYXBpJ1xuaW1wb3J0IHsgdXNlRm9ybSwgdXNlRm9ybU1vZGlmaWVkIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS9jb250ZXh0J1xuaW1wb3J0IE1pbmltYWxUZW1wbGF0ZSBmcm9tICcuLi8uLi90ZW1wbGF0ZXMvTWluaW1hbCdcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Db25maWcnXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCAqIGFzIFBvcHVwTGlzdCBmcm9tICcuLi9Qb3B1cC9Qb3B1cEJ1dHRvbkxpc3QnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2R1cGxpY2F0ZSdcblxuY29uc3QgRHVwbGljYXRlOiBSZWFjdC5GQzxQcm9wcz4gPSAoeyBpZCwgc2x1ZywgY29sbGVjdGlvbiB9KSA9PiB7XG4gIGNvbnN0IHsgcHVzaCB9ID0gdXNlSGlzdG9yeSgpXG4gIGNvbnN0IG1vZGlmaWVkID0gdXNlRm9ybU1vZGlmaWVkKClcbiAgY29uc3QgeyB0b2dnbGVNb2RhbCB9ID0gdXNlTW9kYWwoKVxuICBjb25zdCB7IHNldE1vZGlmaWVkIH0gPSB1c2VGb3JtKClcbiAgY29uc3Qge1xuICAgIGxvY2FsaXphdGlvbixcbiAgICByb3V0ZXM6IHsgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3Qge1xuICAgIHJvdXRlczogeyBhZG1pbiB9LFxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgW2hhc0NsaWNrZWQsIHNldEhhc0NsaWNrZWRdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IFtpc1N1Ym1pdHRpbmcsIHNldElzU3VibWl0dGluZ10gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbignZ2VuZXJhbCcpXG5cbiAgY29uc3QgbW9kYWxTbHVnID0gYGR1cGxpY2F0ZS0ke2lkfWBcblxuICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChvdmVycmlkZSA9IGZhbHNlKSA9PiB7XG4gICAgICBpZiAoaXNTdWJtaXR0aW5nKSByZXR1cm5cbiAgICAgIHNldElzU3VibWl0dGluZyh0cnVlKVxuICAgICAgc2V0SGFzQ2xpY2tlZCh0cnVlKVxuXG4gICAgICBpZiAobW9kaWZpZWQgJiYgIW92ZXJyaWRlKSB7XG4gICAgICAgIHRvZ2dsZU1vZGFsKG1vZGFsU2x1ZylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNhdmVEb2N1bWVudCA9IGFzeW5jICh7XG4gICAgICAgIGlkLFxuICAgICAgICBkdXBsaWNhdGVJRCA9ICcnLFxuICAgICAgICBsb2NhbGUgPSAnJyxcbiAgICAgIH0pOiBQcm9taXNlPG51bGwgfCBzdHJpbmc+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0cy5nZXQoYCR7c2VydmVyVVJMfSR7YXBpfS8ke3NsdWd9LyR7aWR9YCwge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICAgIGRyYWZ0OiB0cnVlLFxuICAgICAgICAgICAgJ2ZhbGxiYWNrLWxvY2FsZSc6ICdub25lJyxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBsZXQgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuXG4gICAgICAgIGlmICh0eXBlb2YgY29sbGVjdGlvbi5hZG1pbi5ob29rcz8uYmVmb3JlRHVwbGljYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgZGF0YSA9IGF3YWl0IGNvbGxlY3Rpb24uYWRtaW4uaG9va3MuYmVmb3JlRHVwbGljYXRlKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWR1cGxpY2F0ZUlEKSB7XG4gICAgICAgICAgaWYgKCdjcmVhdGVkQXQnIGluIGRhdGEpIGRlbGV0ZSBkYXRhLmNyZWF0ZWRBdFxuICAgICAgICAgIGlmICgndXBkYXRlZEF0JyBpbiBkYXRhKSBkZWxldGUgZGF0YS51cGRhdGVkQXRcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3RzW2R1cGxpY2F0ZUlEID8gJ3BhdGNoJyA6ICdwb3N0J10oXG4gICAgICAgICAgYCR7c2VydmVyVVJMfSR7YXBpfS8ke3NsdWd9LyR7ZHVwbGljYXRlSUR9P2xvY2FsZT0ke2xvY2FsZX0mZmFsbGJhY2stbG9jYWxlPW5vbmVgLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBqc29uID0gYXdhaXQgcmVzdWx0Lmpzb24oKVxuXG4gICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSAyMDEgfHwgcmVzdWx0LnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgcmV0dXJuIGpzb24uZG9jLmlkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBvbmx5IHNob3cgdGhlIGVycm9yIGlmIHRoaXMgaXMgdGhlIGluaXRpYWwgcmVxdWVzdCBmYWlsaW5nXG4gICAgICAgIGlmICghZHVwbGljYXRlSUQpIHtcbiAgICAgICAgICBqc29uLmVycm9ycy5mb3JFYWNoKChlcnJvcikgPT4gdG9hc3QuZXJyb3IoZXJyb3IubWVzc2FnZSkpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgbGV0IGR1cGxpY2F0ZUlEOiBzdHJpbmdcbiAgICAgIGxldCBhYm9ydCA9IGZhbHNlXG4gICAgICBjb25zdCBsb2NhbGVFcnJvcnMgPSBbXVxuXG4gICAgICBpZiAobG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGF3YWl0IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoYXN5bmMgKHByaW9yTG9jYWxlUGF0Y2gsIGxvY2FsZSkgPT4ge1xuICAgICAgICAgIGF3YWl0IHByaW9yTG9jYWxlUGF0Y2hcbiAgICAgICAgICBpZiAoYWJvcnQpIHJldHVyblxuICAgICAgICAgIGNvbnN0IGxvY2FsZVJlc3VsdCA9IGF3YWl0IHNhdmVEb2N1bWVudCh7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIGR1cGxpY2F0ZUlELFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgZHVwbGljYXRlSUQgPSBsb2NhbGVSZXN1bHQgfHwgZHVwbGljYXRlSURcbiAgICAgICAgICBpZiAoZHVwbGljYXRlSUQgJiYgIWxvY2FsZVJlc3VsdCkge1xuICAgICAgICAgICAgbG9jYWxlRXJyb3JzLnB1c2gobG9jYWxlKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWR1cGxpY2F0ZUlEKSB7XG4gICAgICAgICAgICBhYm9ydCA9IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHVwbGljYXRlSUQgPSBhd2FpdCBzYXZlRG9jdW1lbnQoeyBpZCB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoIWR1cGxpY2F0ZUlEKSB7XG4gICAgICAgIC8vIGRvY3VtZW50IHdhcyBub3Qgc2F2ZWQsIGVycm9yIHRvYXN0IHdhcyBkaXNwbGF5ZWRcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgIHQoJ3N1Y2Nlc3NmdWxseUR1cGxpY2F0ZWQnLCB7IGxhYmVsOiBnZXRUcmFuc2xhdGlvbihjb2xsZWN0aW9uLmxhYmVscy5zaW5ndWxhciwgaTE4bikgfSksXG4gICAgICAgIHsgYXV0b0Nsb3NlOiAzMDAwIH0sXG4gICAgICApXG5cbiAgICAgIGlmIChsb2NhbGVFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0b2FzdC5lcnJvcihcbiAgICAgICAgICBgXG4gICAgICAgICAgJHt0KCdlcnJvcjpsb2NhbGVzTm90U2F2ZWRfb3RoZXInLCB7IGNvdW50OiBsb2NhbGVFcnJvcnMubGVuZ3RoIH0pfVxuICAgICAgICAgICR7bG9jYWxlRXJyb3JzLmpvaW4oJywgJyl9XG4gICAgICAgICAgYCxcbiAgICAgICAgICB7IGF1dG9DbG9zZTogNTAwMCB9LFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuICAgICAgc2V0SXNTdWJtaXR0aW5nKGZhbHNlKVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcHVzaCh7XG4gICAgICAgICAgcGF0aG5hbWU6IGAke2FkbWlufS9jb2xsZWN0aW9ucy8ke3NsdWd9LyR7ZHVwbGljYXRlSUR9YCxcbiAgICAgICAgfSlcbiAgICAgIH0sIDEwKVxuICAgIH0sXG4gICAgW1xuICAgICAgbW9kaWZpZWQsXG4gICAgICBsb2NhbGl6YXRpb24sXG4gICAgICB0LFxuICAgICAgaTE4bixcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBzZXRNb2RpZmllZCxcbiAgICAgIHRvZ2dsZU1vZGFsLFxuICAgICAgbW9kYWxTbHVnLFxuICAgICAgc2VydmVyVVJMLFxuICAgICAgYXBpLFxuICAgICAgc2x1ZyxcbiAgICAgIGlkLFxuICAgICAgcHVzaCxcbiAgICAgIGFkbWluLFxuICAgIF0sXG4gIClcblxuICBjb25zdCBjb25maXJtID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGhhbmRsZUNsaWNrKHRydWUpXG4gICAgc2V0SGFzQ2xpY2tlZChmYWxzZSlcbiAgfSwgW2hhbmRsZUNsaWNrXSlcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxQb3B1cExpc3QuQnV0dG9uXG4gICAgICAgIGRpc2FibGVkPXtpc1N1Ym1pdHRpbmd9XG4gICAgICAgIGlkPVwiYWN0aW9uLWR1cGxpY2F0ZVwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNsaWNrKGZhbHNlKX1cbiAgICAgID5cbiAgICAgICAge3QoJ2R1cGxpY2F0ZScpfVxuICAgICAgPC9Qb3B1cExpc3QuQnV0dG9uPlxuICAgICAge21vZGlmaWVkICYmIGhhc0NsaWNrZWQgJiYgKFxuICAgICAgICA8TW9kYWwgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19tb2RhbGB9IHNsdWc9e21vZGFsU2x1Z30+XG4gICAgICAgICAgPE1pbmltYWxUZW1wbGF0ZSBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX21vZGFsLXRlbXBsYXRlYH0+XG4gICAgICAgICAgICA8aDE+e3QoJ2NvbmZpcm1EdXBsaWNhdGlvbicpfTwvaDE+XG4gICAgICAgICAgICA8cD57dCgndW5zYXZlZENoYW5nZXNEdXBsaWNhdGUnKX08L3A+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgaWQ9XCJjb25maXJtLWNhbmNlbFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZU1vZGFsKG1vZGFsU2x1Zyl9XG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dCgnY2FuY2VsJyl9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDxCdXR0b24gaWQ9XCJjb25maXJtLWR1cGxpY2F0ZVwiIG9uQ2xpY2s9e2NvbmZpcm19PlxuICAgICAgICAgICAgICB7dCgnZHVwbGljYXRlV2l0aG91dFNhdmluZycpfVxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9NaW5pbWFsVGVtcGxhdGU+XG4gICAgICAgIDwvTW9kYWw+XG4gICAgICApfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgRHVwbGljYXRlXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwiRHVwbGljYXRlIiwiaWQiLCJzbHVnIiwiY29sbGVjdGlvbiIsInB1c2giLCJ1c2VIaXN0b3J5IiwibW9kaWZpZWQiLCJ1c2VGb3JtTW9kaWZpZWQiLCJ0b2dnbGVNb2RhbCIsInVzZU1vZGFsIiwic2V0TW9kaWZpZWQiLCJ1c2VGb3JtIiwibG9jYWxpemF0aW9uIiwicm91dGVzIiwiYXBpIiwic2VydmVyVVJMIiwidXNlQ29uZmlnIiwiYWRtaW4iLCJoYXNDbGlja2VkIiwic2V0SGFzQ2xpY2tlZCIsInVzZVN0YXRlIiwiaXNTdWJtaXR0aW5nIiwic2V0SXNTdWJtaXR0aW5nIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsIm1vZGFsU2x1ZyIsImhhbmRsZUNsaWNrIiwidXNlQ2FsbGJhY2siLCJvdmVycmlkZSIsInNhdmVEb2N1bWVudCIsImR1cGxpY2F0ZUlEIiwibG9jYWxlIiwicmVzcG9uc2UiLCJyZXF1ZXN0cyIsImdldCIsImhlYWRlcnMiLCJsYW5ndWFnZSIsInBhcmFtcyIsImRlcHRoIiwiZHJhZnQiLCJkYXRhIiwianNvbiIsImhvb2tzIiwiYmVmb3JlRHVwbGljYXRlIiwiY3JlYXRlZEF0IiwidXBkYXRlZEF0IiwicmVzdWx0IiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0dXMiLCJkb2MiLCJlcnJvcnMiLCJmb3JFYWNoIiwiZXJyb3IiLCJ0b2FzdCIsIm1lc3NhZ2UiLCJhYm9ydCIsImxvY2FsZUVycm9ycyIsImxvY2FsZUNvZGVzIiwicmVkdWNlIiwicHJpb3JMb2NhbGVQYXRjaCIsImxvY2FsZVJlc3VsdCIsIlByb21pc2UiLCJyZXNvbHZlIiwic3VjY2VzcyIsImxhYmVsIiwiZ2V0VHJhbnNsYXRpb24iLCJsYWJlbHMiLCJzaW5ndWxhciIsImF1dG9DbG9zZSIsImxlbmd0aCIsImNvdW50Iiwiam9pbiIsInNldFRpbWVvdXQiLCJwYXRobmFtZSIsImNvbmZpcm0iLCJSZWFjdCIsIkZyYWdtZW50IiwiUG9wdXBMaXN0IiwiQnV0dG9uIiwiZGlzYWJsZWQiLCJvbkNsaWNrIiwiTW9kYWwiLCJjbGFzc05hbWUiLCJNaW5pbWFsVGVtcGxhdGUiLCJoMSIsInAiLCJidXR0b25TdHlsZSIsInR5cGUiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0R1cGxpY2F0ZURvY3VtZW50L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RhbCwgdXNlTW9kYWwgfSBmcm9tICdAZmFjZWxlc3MtdWkvbW9kYWwnXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9nZXRUcmFuc2xhdGlvbidcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vLi4vYXBpJ1xuaW1wb3J0IHsgdXNlRm9ybSwgdXNlRm9ybU1vZGlmaWVkIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS9jb250ZXh0J1xuaW1wb3J0IE1pbmltYWxUZW1wbGF0ZSBmcm9tICcuLi8uLi90ZW1wbGF0ZXMvTWluaW1hbCdcbmltcG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Db25maWcnXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbidcbmltcG9ydCAqIGFzIFBvcHVwTGlzdCBmcm9tICcuLi9Qb3B1cC9Qb3B1cEJ1dHRvbkxpc3QnXG5pbXBvcnQgeyBiYXNlQmVmb3JlRHVwbGljYXRlIH0gZnJvbSAnLi9iYXNlQmVmb3JlRHVwbGljYXRlJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdkdXBsaWNhdGUnXG5cbmNvbnN0IER1cGxpY2F0ZTogUmVhY3QuRkM8UHJvcHM+ID0gKHsgaWQsIHNsdWcsIGNvbGxlY3Rpb24gfSkgPT4ge1xuICBjb25zdCB7IHB1c2ggfSA9IHVzZUhpc3RvcnkoKVxuICBjb25zdCBtb2RpZmllZCA9IHVzZUZvcm1Nb2RpZmllZCgpXG4gIGNvbnN0IHsgdG9nZ2xlTW9kYWwgfSA9IHVzZU1vZGFsKClcbiAgY29uc3QgeyBzZXRNb2RpZmllZCB9ID0gdXNlRm9ybSgpXG4gIGNvbnN0IHtcbiAgICBsb2NhbGl6YXRpb24sXG4gICAgcm91dGVzOiB7IGFwaSB9LFxuICAgIHNlcnZlclVSTCxcbiAgfSA9IHVzZUNvbmZpZygpXG4gIGNvbnN0IHtcbiAgICByb3V0ZXM6IHsgYWRtaW4gfSxcbiAgfSA9IHVzZUNvbmZpZygpXG4gIGNvbnN0IFtoYXNDbGlja2VkLCBzZXRIYXNDbGlja2VkXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCBbaXNTdWJtaXR0aW5nLCBzZXRJc1N1Ym1pdHRpbmddID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2dlbmVyYWwnKVxuXG4gIGNvbnN0IG1vZGFsU2x1ZyA9IGBkdXBsaWNhdGUtJHtpZH1gXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAob3ZlcnJpZGUgPSBmYWxzZSkgPT4ge1xuICAgICAgaWYgKGlzU3VibWl0dGluZykgcmV0dXJuXG4gICAgICBzZXRJc1N1Ym1pdHRpbmcodHJ1ZSlcbiAgICAgIHNldEhhc0NsaWNrZWQodHJ1ZSlcblxuICAgICAgaWYgKG1vZGlmaWVkICYmICFvdmVycmlkZSkge1xuICAgICAgICB0b2dnbGVNb2RhbChtb2RhbFNsdWcpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBzYXZlRG9jdW1lbnQgPSBhc3luYyAoe1xuICAgICAgICBpZCxcbiAgICAgICAgZHVwbGljYXRlSUQgPSAnJyxcbiAgICAgICAgbG9jYWxlID0gJycsXG4gICAgICB9KTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdHMuZ2V0KGAke3NlcnZlclVSTH0ke2FwaX0vJHtzbHVnfS8ke2lkfWAsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgZGVwdGg6IDAsXG4gICAgICAgICAgICBkcmFmdDogdHJ1ZSxcbiAgICAgICAgICAgICdmYWxsYmFjay1sb2NhbGUnOiAnbm9uZScsXG4gICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgbGV0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcblxuICAgICAgICBkYXRhID0gYmFzZUJlZm9yZUR1cGxpY2F0ZSh7IGNvbGxlY3Rpb24sIGRhdGEsIGxvY2FsZSB9KVxuXG4gICAgICAgIGlmICh0eXBlb2YgY29sbGVjdGlvbi5hZG1pbi5ob29rcz8uYmVmb3JlRHVwbGljYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgZGF0YSA9IGF3YWl0IGNvbGxlY3Rpb24uYWRtaW4uaG9va3MuYmVmb3JlRHVwbGljYXRlKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWR1cGxpY2F0ZUlEKSB7XG4gICAgICAgICAgaWYgKCdjcmVhdGVkQXQnIGluIGRhdGEpIGRlbGV0ZSBkYXRhLmNyZWF0ZWRBdFxuICAgICAgICAgIGlmICgndXBkYXRlZEF0JyBpbiBkYXRhKSBkZWxldGUgZGF0YS51cGRhdGVkQXRcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3RzW2R1cGxpY2F0ZUlEID8gJ3BhdGNoJyA6ICdwb3N0J10oXG4gICAgICAgICAgYCR7c2VydmVyVVJMfSR7YXBpfS8ke3NsdWd9LyR7ZHVwbGljYXRlSUR9P2xvY2FsZT0ke2xvY2FsZX0mZmFsbGJhY2stbG9jYWxlPW5vbmVgLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgICBjb25zdCBqc29uID0gYXdhaXQgcmVzdWx0Lmpzb24oKVxuXG4gICAgICAgIGlmIChyZXN1bHQuc3RhdHVzID09PSAyMDEgfHwgcmVzdWx0LnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgcmV0dXJuIGpzb24uZG9jLmlkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBvbmx5IHNob3cgdGhlIGVycm9yIGlmIHRoaXMgaXMgdGhlIGluaXRpYWwgcmVxdWVzdCBmYWlsaW5nXG4gICAgICAgIGlmICghZHVwbGljYXRlSUQpIHtcbiAgICAgICAgICBqc29uLmVycm9ycy5mb3JFYWNoKChlcnJvcikgPT4gdG9hc3QuZXJyb3IoZXJyb3IubWVzc2FnZSkpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgbGV0IGR1cGxpY2F0ZUlEOiBzdHJpbmdcbiAgICAgIGxldCBhYm9ydCA9IGZhbHNlXG4gICAgICBjb25zdCBsb2NhbGVFcnJvcnMgPSBbXVxuXG4gICAgICBpZiAobG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGF3YWl0IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoYXN5bmMgKHByaW9yTG9jYWxlUGF0Y2gsIGxvY2FsZSkgPT4ge1xuICAgICAgICAgIGF3YWl0IHByaW9yTG9jYWxlUGF0Y2hcbiAgICAgICAgICBpZiAoYWJvcnQpIHJldHVyblxuICAgICAgICAgIGNvbnN0IGxvY2FsZVJlc3VsdCA9IGF3YWl0IHNhdmVEb2N1bWVudCh7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIGR1cGxpY2F0ZUlELFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgZHVwbGljYXRlSUQgPSBsb2NhbGVSZXN1bHQgfHwgZHVwbGljYXRlSURcbiAgICAgICAgICBpZiAoZHVwbGljYXRlSUQgJiYgIWxvY2FsZVJlc3VsdCkge1xuICAgICAgICAgICAgbG9jYWxlRXJyb3JzLnB1c2gobG9jYWxlKVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWR1cGxpY2F0ZUlEKSB7XG4gICAgICAgICAgICBhYm9ydCA9IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHVwbGljYXRlSUQgPSBhd2FpdCBzYXZlRG9jdW1lbnQoeyBpZCB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoIWR1cGxpY2F0ZUlEKSB7XG4gICAgICAgIC8vIGRvY3VtZW50IHdhcyBub3Qgc2F2ZWQsIGVycm9yIHRvYXN0IHdhcyBkaXNwbGF5ZWRcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIHRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgIHQoJ3N1Y2Nlc3NmdWxseUR1cGxpY2F0ZWQnLCB7IGxhYmVsOiBnZXRUcmFuc2xhdGlvbihjb2xsZWN0aW9uLmxhYmVscy5zaW5ndWxhciwgaTE4bikgfSksXG4gICAgICAgIHsgYXV0b0Nsb3NlOiAzMDAwIH0sXG4gICAgICApXG5cbiAgICAgIGlmIChsb2NhbGVFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0b2FzdC5lcnJvcihcbiAgICAgICAgICBgXG4gICAgICAgICAgJHt0KCdlcnJvcjpsb2NhbGVzTm90U2F2ZWRfb3RoZXInLCB7IGNvdW50OiBsb2NhbGVFcnJvcnMubGVuZ3RoIH0pfVxuICAgICAgICAgICR7bG9jYWxlRXJyb3JzLmpvaW4oJywgJyl9XG4gICAgICAgICAgYCxcbiAgICAgICAgICB7IGF1dG9DbG9zZTogNTAwMCB9LFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuICAgICAgc2V0SXNTdWJtaXR0aW5nKGZhbHNlKVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgcHVzaCh7XG4gICAgICAgICAgcGF0aG5hbWU6IGAke2FkbWlufS9jb2xsZWN0aW9ucy8ke3NsdWd9LyR7ZHVwbGljYXRlSUR9YCxcbiAgICAgICAgfSlcbiAgICAgIH0sIDEwKVxuICAgIH0sXG4gICAgW1xuICAgICAgbW9kaWZpZWQsXG4gICAgICBsb2NhbGl6YXRpb24sXG4gICAgICB0LFxuICAgICAgaTE4bixcbiAgICAgIGNvbGxlY3Rpb24sXG4gICAgICBzZXRNb2RpZmllZCxcbiAgICAgIHRvZ2dsZU1vZGFsLFxuICAgICAgbW9kYWxTbHVnLFxuICAgICAgc2VydmVyVVJMLFxuICAgICAgYXBpLFxuICAgICAgc2x1ZyxcbiAgICAgIGlkLFxuICAgICAgcHVzaCxcbiAgICAgIGFkbWluLFxuICAgIF0sXG4gIClcblxuICBjb25zdCBjb25maXJtID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGhhbmRsZUNsaWNrKHRydWUpXG4gICAgc2V0SGFzQ2xpY2tlZChmYWxzZSlcbiAgfSwgW2hhbmRsZUNsaWNrXSlcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxQb3B1cExpc3QuQnV0dG9uXG4gICAgICAgIGRpc2FibGVkPXtpc1N1Ym1pdHRpbmd9XG4gICAgICAgIGlkPVwiYWN0aW9uLWR1cGxpY2F0ZVwiXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUNsaWNrKGZhbHNlKX1cbiAgICAgID5cbiAgICAgICAge3QoJ2R1cGxpY2F0ZScpfVxuICAgICAgPC9Qb3B1cExpc3QuQnV0dG9uPlxuICAgICAge21vZGlmaWVkICYmIGhhc0NsaWNrZWQgJiYgKFxuICAgICAgICA8TW9kYWwgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19tb2RhbGB9IHNsdWc9e21vZGFsU2x1Z30+XG4gICAgICAgICAgPE1pbmltYWxUZW1wbGF0ZSBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX21vZGFsLXRlbXBsYXRlYH0+XG4gICAgICAgICAgICA8aDE+e3QoJ2NvbmZpcm1EdXBsaWNhdGlvbicpfTwvaDE+XG4gICAgICAgICAgICA8cD57dCgndW5zYXZlZENoYW5nZXNEdXBsaWNhdGUnKX08L3A+XG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgaWQ9XCJjb25maXJtLWNhbmNlbFwiXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZU1vZGFsKG1vZGFsU2x1Zyl9XG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dCgnY2FuY2VsJyl9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgIDxCdXR0b24gaWQ9XCJjb25maXJtLWR1cGxpY2F0ZVwiIG9uQ2xpY2s9e2NvbmZpcm19PlxuICAgICAgICAgICAgICB7dCgnZHVwbGljYXRlV2l0aG91dFNhdmluZycpfVxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9NaW5pbWFsVGVtcGxhdGU+XG4gICAgICAgIDwvTW9kYWw+XG4gICAgICApfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgRHVwbGljYXRlXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwiRHVwbGljYXRlIiwiaWQiLCJzbHVnIiwiY29sbGVjdGlvbiIsInB1c2giLCJ1c2VIaXN0b3J5IiwibW9kaWZpZWQiLCJ1c2VGb3JtTW9kaWZpZWQiLCJ0b2dnbGVNb2RhbCIsInVzZU1vZGFsIiwic2V0TW9kaWZpZWQiLCJ1c2VGb3JtIiwibG9jYWxpemF0aW9uIiwicm91dGVzIiwiYXBpIiwic2VydmVyVVJMIiwidXNlQ29uZmlnIiwiYWRtaW4iLCJoYXNDbGlja2VkIiwic2V0SGFzQ2xpY2tlZCIsInVzZVN0YXRlIiwiaXNTdWJtaXR0aW5nIiwic2V0SXNTdWJtaXR0aW5nIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsIm1vZGFsU2x1ZyIsImhhbmRsZUNsaWNrIiwidXNlQ2FsbGJhY2siLCJvdmVycmlkZSIsInNhdmVEb2N1bWVudCIsImR1cGxpY2F0ZUlEIiwibG9jYWxlIiwicmVzcG9uc2UiLCJyZXF1ZXN0cyIsImdldCIsImhlYWRlcnMiLCJsYW5ndWFnZSIsInBhcmFtcyIsImRlcHRoIiwiZHJhZnQiLCJkYXRhIiwianNvbiIsImJhc2VCZWZvcmVEdXBsaWNhdGUiLCJob29rcyIsImJlZm9yZUR1cGxpY2F0ZSIsImNyZWF0ZWRBdCIsInVwZGF0ZWRBdCIsInJlc3VsdCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdHVzIiwiZG9jIiwiZXJyb3JzIiwiZm9yRWFjaCIsImVycm9yIiwidG9hc3QiLCJtZXNzYWdlIiwiYWJvcnQiLCJsb2NhbGVFcnJvcnMiLCJsb2NhbGVDb2RlcyIsInJlZHVjZSIsInByaW9yTG9jYWxlUGF0Y2giLCJsb2NhbGVSZXN1bHQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInN1Y2Nlc3MiLCJsYWJlbCIsImdldFRyYW5zbGF0aW9uIiwibGFiZWxzIiwic2luZ3VsYXIiLCJhdXRvQ2xvc2UiLCJsZW5ndGgiLCJjb3VudCIsImpvaW4iLCJzZXRUaW1lb3V0IiwicGF0aG5hbWUiLCJjb25maXJtIiwiUmVhY3QiLCJGcmFnbWVudCIsIlBvcHVwTGlzdCIsIkJ1dHRvbiIsImRpc2FibGVkIiwib25DbGljayIsIk1vZGFsIiwiY2xhc3NOYW1lIiwiTWluaW1hbFRlbXBsYXRlIiwiaDEiLCJwIiwiYnV0dG9uU3R5bGUiLCJ0eXBlIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6Ijs7OzsrQkF1TkE7OztlQUFBOzs7dUJBdk5nQzsrREFDYTs4QkFDZDtnQ0FDSjsrQkFDTDtnQ0FJUztxQkFDTjt5QkFDZ0I7Z0VBQ2I7d0JBQ0Y7K0RBQ1A7eUVBQ1E7cUNBQ1M7UUFDN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUEsWUFBWTtBQUVsQixNQUFNQyxZQUE2QixDQUFDLEVBQUVDLEVBQUUsRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUU7SUFDMUQsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsSUFBQUEsMEJBQVU7SUFDM0IsTUFBTUMsV0FBV0MsSUFBQUEsd0JBQWU7SUFDaEMsTUFBTSxFQUFFQyxXQUFXLEVBQUUsR0FBR0MsSUFBQUEsZUFBUTtJQUNoQyxNQUFNLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxJQUFBQSxnQkFBTztJQUMvQixNQUFNLEVBQ0pDLFlBQVksRUFDWkMsUUFBUSxFQUFFQyxHQUFHLEVBQUUsRUFDZkMsU0FBUyxFQUNWLEdBQUdDLElBQUFBLGlCQUFTO0lBQ2IsTUFBTSxFQUNKSCxRQUFRLEVBQUVJLEtBQUssRUFBRSxFQUNsQixHQUFHRCxJQUFBQSxpQkFBUztJ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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,UAAU,EAAgC,MAAM,SAAS,CAAA;AAcjF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAY,UAAU,EAAgC,MAAM,SAAS,CAAA;AAcjF,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,WAAW,CAAC,EAAE,CAAC,CAAA;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,iKAiT5B,CAAA"}
|
|
@@ -180,22 +180,51 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
180
180
|
widthInPixels: uploadEdits.widthInPixels,
|
|
181
181
|
withMetadata
|
|
182
182
|
});
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
183
|
+
// Apply resize after cropping to ensure it conforms to resizeOptions
|
|
184
|
+
if (resizeOptions) {
|
|
185
|
+
const resizedAfterCrop = await (0, _sharp.default)(croppedImage).resize({
|
|
186
|
+
fit: resizeOptions?.fit || 'cover',
|
|
187
|
+
height: resizeOptions?.height,
|
|
188
|
+
position: resizeOptions?.position || 'center',
|
|
189
|
+
width: resizeOptions?.width
|
|
190
|
+
}).toBuffer({
|
|
191
|
+
resolveWithObject: true
|
|
192
|
+
});
|
|
193
|
+
filesToSave.push({
|
|
194
|
+
buffer: resizedAfterCrop.data,
|
|
195
|
+
path: `${staticPath}/${fsSafeName}`
|
|
196
|
+
});
|
|
197
|
+
fileForResize = {
|
|
198
|
+
...fileForResize,
|
|
199
|
+
data: resizedAfterCrop.data,
|
|
200
|
+
size: resizedAfterCrop.info.size
|
|
201
|
+
};
|
|
202
|
+
fileData.width = resizedAfterCrop.info.width;
|
|
203
|
+
fileData.height = resizedAfterCrop.info.height;
|
|
204
|
+
if (fileIsAnimatedType) {
|
|
205
|
+
const metadata = await sharpFile.metadata();
|
|
206
|
+
fileData.height = metadata.pages ? resizedAfterCrop.info.height / metadata.pages : resizedAfterCrop.info.height;
|
|
207
|
+
}
|
|
208
|
+
fileData.filesize = resizedAfterCrop.info.size;
|
|
209
|
+
} else {
|
|
210
|
+
// If resizeOptions is not present, just save the cropped image
|
|
211
|
+
filesToSave.push({
|
|
212
|
+
buffer: croppedImage,
|
|
213
|
+
path: `${staticPath}/${fsSafeName}`
|
|
214
|
+
});
|
|
215
|
+
fileForResize = {
|
|
216
|
+
...file,
|
|
217
|
+
data: croppedImage,
|
|
218
|
+
size: info.size
|
|
219
|
+
};
|
|
220
|
+
fileData.width = info.width;
|
|
221
|
+
fileData.height = info.height;
|
|
222
|
+
if (fileIsAnimatedType) {
|
|
223
|
+
const metadata = await sharpFile.metadata();
|
|
224
|
+
fileData.height = metadata.pages ? info.height / metadata.pages : info.height;
|
|
225
|
+
}
|
|
226
|
+
fileData.filesize = info.size;
|
|
197
227
|
}
|
|
198
|
-
fileData.filesize = info.size;
|
|
199
228
|
if (file.tempFilePath) {
|
|
200
229
|
await _fs.default.promises.writeFile(file.tempFilePath, croppedImage) // write fileBuffer to the temp path
|
|
201
230
|
;
|
|
@@ -291,4 +320,4 @@ const generateFileData = async ({ collection: { config: collectionConfig }, conf
|
|
|
291
320
|
return uploadEdits;
|
|
292
321
|
}
|
|
293
322
|
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSwgVXBsb2FkRWRpdHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IEZpbGVSZXRyaWV2YWxFcnJvciBmcm9tICcuLi9lcnJvcnMvRmlsZVJldHJpZXZhbEVycm9yJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgeyBjcm9wSW1hZ2UgfSBmcm9tICcuL2Nyb3BJbWFnZSdcbmltcG9ydCB7IGdldEV4dGVybmFsRmlsZSB9IGZyb20gJy4vZ2V0RXh0ZXJuYWxGaWxlJ1xuaW1wb3J0IGdldEZpbGVCeVBhdGggZnJvbSAnLi9nZXRGaWxlQnlQYXRoJ1xuaW1wb3J0IGdldEltYWdlU2l6ZSBmcm9tICcuL2dldEltYWdlU2l6ZSdcbmltcG9ydCBnZXRTYWZlRmlsZU5hbWUgZnJvbSAnLi9nZXRTYWZlRmlsZW5hbWUnXG5pbXBvcnQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyBmcm9tICcuL2ltYWdlUmVzaXplcidcbmltcG9ydCBpc0ltYWdlIGZyb20gJy4vaXNJbWFnZSdcbmltcG9ydCB7IG9wdGlvbmFsbHlBcHBlbmRNZXRhZGF0YSB9IGZyb20gJy4vb3B0aW9uYWxseUFwcGVuZE1ldGFkYXRhJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M/OiBUXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdGhyb3dPbk1pc3NpbmdGaWxlPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdDxUPiA9IFByb21pc2U8e1xuICBkYXRhOiBUXG4gIGZpbGVzOiBGaWxlVG9TYXZlW11cbn0+XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZpbGVEYXRhID0gYXN5bmMgPFQ+KHtcbiAgY29sbGVjdGlvbjogeyBjb25maWc6IGNvbGxlY3Rpb25Db25maWcgfSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBvcGVyYXRpb24sXG4gIG9yaWdpbmFsRG9jLFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICByZXEsXG4gIHRocm93T25NaXNzaW5nRmlsZSxcbn06IEFyZ3M8VD4pOiBSZXN1bHQ8VD4gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgbGV0IGZpbGUgPSByZXEuZmlsZXM/LmZpbGUgfHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgdXBsb2FkRWRpdHMgPSBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKHtcbiAgICBkYXRhLFxuICAgIG9wZXJhdGlvbixcbiAgICBvcmlnaW5hbERvYyxcbiAgICByZXEsXG4gIH0pXG5cbiAgY29uc3Qge1xuICAgIGRpc2FibGVMb2NhbFN0b3JhZ2UsXG4gICAgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQsXG4gICAgZm9ybWF0T3B0aW9ucyxcbiAgICBpbWFnZVNpemVzLFxuICAgIHJlc2l6ZU9wdGlvbnMsXG4gICAgc3RhdGljRGlyLFxuICAgIHRyaW1PcHRpb25zLFxuICAgIHdpdGhNZXRhZGF0YSxcbiAgfSA9IGNvbGxlY3Rpb25Db25maWcudXBsb2FkXG5cbiAgbGV0IHN0YXRpY1BhdGggPSBzdGF0aWNEaXJcbiAgaWYgKHN0YXRpY0Rpci5pbmRleE9mKCcvJykgIT09IDApIHtcbiAgICBzdGF0aWNQYXRoID0gcGF0aC5yZXNvbHZlKGNvbmZpZy5wYXRocy5jb25maWdEaXIsIHN0YXRpY0RpcilcbiAgfVxuXG4gIGlmICghZmlsZSAmJiB1cGxvYWRFZGl0cyAmJiBkYXRhKSB7XG4gICAgY29uc3QgeyBmaWxlbmFtZSwgdXJsIH0gPSBkYXRhIGFzIEZpbGVEYXRhXG5cbiAgICB0cnkge1xuICAgICAgaWYgKHVybCAmJiB1cmwuc3RhcnRzV2l0aCgnLycpICYmICFkaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RmlsZUJ5UGF0aChmaWxlUGF0aClcbiAgICAgICAgZmlsZSA9IHJlc3BvbnNlIGFzIFVwbG9hZGVkRmlsZVxuICAgICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgICAgfSBlbHNlIGlmIChmaWxlbmFtZSAmJiB1cmwpIHtcbiAgICAgICAgZmlsZSA9IChhd2FpdCBnZXRFeHRlcm5hbEZpbGUoe1xuICAgICAgICAgIGRhdGE6IGRhdGEgYXMgRmlsZURhdGEsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHVwbG9hZENvbmZpZzogY29sbGVjdGlvbkNvbmZpZy51cGxvYWQsXG4gICAgICAgIH0pKSBhcyBVcGxvYWRlZEZpbGVcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRmlsZVJldHJpZXZhbEVycm9yKHJlcS50LCBlcnIubWVzc2FnZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIWZpbGUpIHtcbiAgICBpZiAodGhyb3dPbk1pc3NpbmdGaWxlKSB0aHJvdyBuZXcgTWlzc2luZ0ZpbGUocmVxLnQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBpZiAoIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICBta2RpcnAuc3luYyhzdGF0aWNQYXRoKVxuICB9XG5cbiAgbGV0IG5ld0RhdGEgPSBkYXRhXG4gIGNvbnN0IGZpbGVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXVxuICBjb25zdCBmaWxlRGF0YTogUGFydGlhbDxGaWxlRGF0YT4gPSB7fVxuICBjb25zdCBmaWxlSXNBbmltYXRlZFR5cGUgPSBbJ2ltYWdlL2F2aWYnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL3dlYnAnXS5pbmNsdWRlcyhmaWxlLm1pbWV0eXBlKVxuICBjb25zdCBjcm9wRGF0YSA9XG4gICAgdHlwZW9mIHVwbG9hZEVkaXRzID09PSAnb2JqZWN0JyAmJiAnY3JvcCcgaW4gdXBsb2FkRWRpdHMgPyB1cGxvYWRFZGl0cy5jcm9wIDogdW5kZWZpbmVkXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBmaWxlU3VwcG9ydHNSZXNpemUgPSBjYW5SZXNpemVJbWFnZShmaWxlLm1pbWV0eXBlKVxuICAgIGxldCBmc1NhZmVOYW1lOiBzdHJpbmdcbiAgICBsZXQgc2hhcnBGaWxlOiBTaGFycCB8IHVuZGVmaW5lZFxuICAgIGxldCBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemUgfCB1bmRlZmluZWRcbiAgICBsZXQgZmlsZUJ1ZmZlcjogeyBkYXRhOiBCdWZmZXI7IGluZm86IE91dHB1dEluZm8gfVxuICAgIGxldCBleHRcbiAgICBsZXQgbWltZTogc3RyaW5nXG4gICAgY29uc3QgZmlsZUhhc0FkanVzdG1lbnRzID1cbiAgICAgIGZpbGVTdXBwb3J0c1Jlc2l6ZSAmJlxuICAgICAgQm9vbGVhbihyZXNpemVPcHRpb25zIHx8IGZvcm1hdE9wdGlvbnMgfHwgaW1hZ2VTaXplcyB8fCB0cmltT3B0aW9ucyB8fCBmaWxlLnRlbXBGaWxlUGF0aClcblxuICAgIGNvbnN0IHNoYXJwT3B0aW9uczogU2hhcnBPcHRpb25zID0ge31cblxuICAgIGlmIChmaWxlSXNBbmltYXRlZFR5cGUpIHNoYXJwT3B0aW9ucy5hbmltYXRlZCA9IHRydWVcblxuICAgIGlmIChzaGFycCAmJiAoZmlsZUlzQW5pbWF0ZWRUeXBlIHx8IGZpbGVIYXNBZGp1c3RtZW50cykpIHtcbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUuZGF0YSwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVIYXNBZGp1c3RtZW50cykge1xuICAgICAgICBpZiAocmVzaXplT3B0aW9ucykge1xuICAgICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS5yZXNpemUocmVzaXplT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0T3B0aW9ucykge1xuICAgICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50b0Zvcm1hdChmb3JtYXRPcHRpb25zLmZvcm1hdCwgZm9ybWF0T3B0aW9ucy5vcHRpb25zKVxuICAgICAgICB9XG4gICAgICAgIGlmICh0cmltT3B0aW9ucykge1xuICAgICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50cmltKHRyaW1PcHRpb25zKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVTdXBwb3J0c1Jlc2l6ZSB8fCBpc0ltYWdlKGZpbGUubWltZXR5cGUpKSB7XG4gICAgICBkaW1lbnNpb25zID0gYXdhaXQgZ2V0SW1hZ2VTaXplKGZpbGUpXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGRpbWVuc2lvbnMud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgfVxuXG4gICAgaWYgKHNoYXJwRmlsZSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycEZpbGUubWV0YWRhdGEoKVxuICAgICAgc2hhcnBGaWxlID0gYXdhaXQgb3B0aW9uYWxseUFwcGVuZE1ldGFkYXRhKHtcbiAgICAgICAgcmVxLFxuICAgICAgICBzaGFycEZpbGUsXG4gICAgICAgIHdpdGhNZXRhZGF0YSxcbiAgICAgIH0pXG4gICAgICBmaWxlQnVmZmVyID0gYXdhaXQgc2hhcnBGaWxlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcbiAgICAgIDsoeyBleHQsIG1pbWUgfSA9IGF3YWl0IGZyb21CdWZmZXIoZmlsZUJ1ZmZlci5kYXRhKSkgLy8gVGhpcyBpcyBnZXR0aW5nIGFuIGluY29ycmVjdCBnaWYgaGVpZ2h0IGJhY2suXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGZpbGVCdWZmZXIuaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmluZm8uc2l6ZVxuXG4gICAgICAvLyBBbmltYXRlZCBHSUZzICsgV2ViUCBhZ2dyZWdhdGUgdGhlIGhlaWdodCBmcm9tIGV2ZXJ5IGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHVzZSBkaXZpZGUgYnkgbnVtYmVyIG9mIHBhZ2VzXG4gICAgICBpZiAobWV0YWRhdGEucGFnZXMpIHtcbiAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzXG4gICAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5kYXRhLmxlbmd0aFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtaW1lID0gZmlsZS5taW1ldHlwZVxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlLnNpemVcblxuICAgICAgaWYgKGZpbGUubmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgIGV4dCA9IGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpLnNwbGl0KCc/JylbMF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4dCA9ICcnXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRqdXN0IFNWRyBtaW1lIHR5cGUuIGZyb21CdWZmZXIgbW9kaWZpZXMgaXQuXG4gICAgaWYgKG1pbWUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV4dCA9PT0gJ3N2ZycpIG1pbWUgPSAnaW1hZ2Uvc3ZnK3htbCdcbiAgICBmaWxlRGF0YS5taW1lVHlwZSA9IG1pbWVcblxuICAgIGNvbnN0IGJhc2VGaWxlbmFtZSA9IHNhbml0aXplKGZpbGUubmFtZS5zdWJzdHJpbmcoMCwgZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJykpIHx8IGZpbGUubmFtZSlcbiAgICBmc1NhZmVOYW1lID0gYCR7YmFzZUZpbGVuYW1lfSR7ZXh0ID8gYC4ke2V4dH1gIDogJyd9YFxuXG4gICAgaWYgKCFvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzKSB7XG4gICAgICBmc1NhZmVOYW1lID0gYXdhaXQgZ2V0U2FmZUZpbGVOYW1lKHtcbiAgICAgICAgY29sbGVjdGlvblNsdWc6IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgZGVzaXJlZEZpbGVuYW1lOiBmc1NhZmVOYW1lLFxuICAgICAgICByZXEsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZpbGVEYXRhLmZpbGVuYW1lID0gZnNTYWZlTmFtZVxuICAgIGxldCBmaWxlRm9yUmVzaXplID0gZmlsZVxuXG4gICAgaWYgKGNyb3BEYXRhKSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGNyb3BwZWRJbWFnZSwgaW5mbyB9ID0gYXdhaXQgY3JvcEltYWdlKHtcbiAgICAgICAgY3JvcERhdGEsXG4gICAgICAgIGRpbWVuc2lvbnMsXG4gICAgICAgIGZpbGUsXG4gICAgICAgIGhlaWdodEluUGl4ZWxzOiB1cGxvYWRFZGl0cy5oZWlnaHRJblBpeGVscyxcbiAgICAgICAgcmVxLFxuICAgICAgICB3aWR0aEluUGl4ZWxzOiB1cGxvYWRFZGl0cy53aWR0aEluUGl4ZWxzLFxuICAgICAgICB3aXRoTWV0YWRhdGEsXG4gICAgICB9KVxuXG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKHtcbiAgICAgICAgYnVmZmVyOiBjcm9wcGVkSW1hZ2UsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgZmlsZUZvclJlc2l6ZSA9IHtcbiAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgZGF0YTogY3JvcHBlZEltYWdlLFxuICAgICAgICBzaXplOiBpbmZvLnNpemUsXG4gICAgICB9XG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGluZm8uaGVpZ2h0XG4gICAgICBpZiAoZmlsZUlzQW5pbWF0ZWRUeXBlKSB7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnBGaWxlLm1ldGFkYXRhKClcbiAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gbWV0YWRhdGEucGFnZXMgPyBpbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzIDogaW5mby5oZWlnaHRcbiAgICAgIH1cbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gaW5mby5zaXplXG5cbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGNyb3BwZWRJbWFnZSkgLy8gd3JpdGUgZmlsZUJ1ZmZlciB0byB0aGUgdGVtcCBwYXRoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXEuZmlsZXMuZmlsZSA9IGZpbGVGb3JSZXNpemVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgLy8gSWYgdXNpbmcgdGVtcCBmaWxlcyBhbmQgdGhlIGltYWdlIGlzIGJlaW5nIHJlc2l6ZWQsIHdyaXRlIHRoZSBmaWxlIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIGlmIChmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlLnRlbXBGaWxlUGF0aCwgZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFzc2lnbiB0aGUgX3Bvc3NpYmx5IG1vZGlmaWVkXyBmaWxlIHRvIHRoZSByZXF1ZXN0IG9iamVjdFxuICAgICAgICAgIHJlcS5maWxlcy5maWxlID0ge1xuICAgICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICAgIGRhdGE6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICAgICAgc2l6ZTogZmlsZUJ1ZmZlcj8uaW5mby5zaXplLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWxlU3VwcG9ydHNSZXNpemUgJiYgKEFycmF5LmlzQXJyYXkoaW1hZ2VTaXplcykgfHwgZm9jYWxQb2ludEVuYWJsZWQgIT09IGZhbHNlKSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG4gICAgICBjb25zdCB7IGZvY2FsUG9pbnQsIHNpemVEYXRhLCBzaXplc1RvU2F2ZSB9ID0gYXdhaXQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgZGltZW5zaW9uczogIWNyb3BEYXRhXG4gICAgICAgICAgPyBkaW1lbnNpb25zXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLmRpbWVuc2lvbnMsXG4gICAgICAgICAgICAgIGhlaWdodDogZmlsZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogZmlsZURhdGEud2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICBmaWxlOiBmaWxlRm9yUmVzaXplLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICAgIHVwbG9hZEVkaXRzLFxuICAgICAgICB3aXRoTWV0YWRhdGEsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRGF0YS5zaXplcyA9IHNpemVEYXRhXG4gICAgICBmaWxlRGF0YS5mb2NhbFggPSBmb2NhbFBvaW50Py54XG4gICAgICBmaWxlRGF0YS5mb2NhbFkgPSBmb2NhbFBvaW50Py55XG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKC4uLnNpemVzVG9TYXZlKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmVxLnBheWxvYWQubG9nZ2VyLmVycm9yKHsgZXJyLCBtc2c6ICdFcnJvciB1cGxvYWRpbmcgZmlsZScgfSlcbiAgICB0aHJvdyBuZXcgRmlsZVVwbG9hZEVycm9yKHJlcS50KVxuICB9XG5cbiAgbmV3RGF0YSA9IHtcbiAgICAuLi5uZXdEYXRhLFxuICAgIC4uLmZpbGVEYXRhLFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhOiBuZXdEYXRhLFxuICAgIGZpbGVzOiBmaWxlc1RvU2F2ZSxcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIHVwbG9hZCBlZGl0cyBmcm9tIHJlcSBvciBpbmNvbWluZyBkYXRhXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVXBsb2FkRWRpdHNGcm9tUmVxT3JJbmNvbWluZ0RhdGEoYXJnczoge1xuICBkYXRhOiB1bmtub3duXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJ1xuICBvcmlnaW5hbERvYzogdW5rbm93blxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59KTogVXBsb2FkRWRpdHMge1xuICBjb25zdCB7IGRhdGEsIG9wZXJhdGlvbiwgb3JpZ2luYWxEb2MsIHJlcSB9ID0gYXJnc1xuXG4gIC8vIEdldCBpbnRlbmRlZCBmb2NhbCBwb2ludCBjaGFuZ2UgZnJvbSBxdWVyeSBzdHJpbmcgb3IgaW5jb21pbmcgZGF0YVxuICBjb25zdCB1cGxvYWRFZGl0cyA9XG4gICAgcmVxLnF1ZXJ5Py51cGxvYWRFZGl0cyAmJiB0eXBlb2YgcmVxLnF1ZXJ5LnVwbG9hZEVkaXRzID09PSAnb2JqZWN0J1xuICAgICAgPyAocmVxLnF1ZXJ5LnVwbG9hZEVkaXRzIGFzIFVwbG9hZEVkaXRzKVxuICAgICAgOiB7fVxuXG4gIGlmICh1cGxvYWRFZGl0cy5mb2NhbFBvaW50KSByZXR1cm4gdXBsb2FkRWRpdHNcblxuICBjb25zdCBpbmNvbWluZ0RhdGEgPSBkYXRhIGFzIEZpbGVEYXRhXG4gIGNvbnN0IG9yaWdEb2MgPSBvcmlnaW5hbERvYyBhcyBGaWxlRGF0YVxuXG4gIC8vIElmIG5vIGNoYW5nZSBpbiBmb2NhbCBwb2ludCwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgLy8gVGhpcyBwcmV2ZW50cyBhIHJlZm9jYWwgb3BlcmF0aW9uIHRyaWdnZXJlZCBmcm9tIGFkbWluLCBiZWNhdXNlIGl0IGFsd2F5cyBzZW5kcyB0aGUgZm9jYWwgcG9pbnQuXG4gIGlmIChvcmlnRG9jICYmIGluY29taW5nRGF0YS5mb2NhbFggPT09IG9yaWdEb2MuZm9jYWxYICYmIGluY29taW5nRGF0YS5mb2NhbFkgPT09IG9yaWdEb2MuZm9jYWxZKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgaWYgKGluY29taW5nRGF0YS5mb2NhbFggJiYgaW5jb21pbmdEYXRhLmZvY2FsWSkge1xuICAgIHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQgPSB7XG4gICAgICB4OiBpbmNvbWluZ0RhdGEuZm9jYWxYLFxuICAgICAgeTogaW5jb21pbmdEYXRhLmZvY2FsWSxcbiAgICB9XG4gICAgcmV0dXJuIHVwbG9hZEVkaXRzXG4gIH1cblxuICAvLyBJZiBubyBmb2NhbCBwb2ludCBpcyBzZXQsIGRlZmF1bHQgdG8gY2VudGVyXG4gIGlmIChvcGVyYXRpb24gPT09ICdjcmVhdGUnKSB7XG4gICAgdXBsb2FkRWRpdHMuZm9jYWxQb2ludCA9IHtcbiAgICAgIHg6IDUwLFxuICAgICAgeTogNTAsXG4gICAgfVxuICB9XG4gIHJldHVybiB1cGxvYWRFZGl0c1xufVxuIl0sIm5hbWVzIjpbImdlbmVyYXRlRmlsZURhdGEiLCJjb2xsZWN0aW9uIiwiY29uZmlnIiwiY29sbGVjdGlvbkNvbmZpZyIsImRhdGEiLCJvcGVyYXRpb24iLCJvcmlnaW5hbERvYyIsIm92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMiLCJyZXEiLCJ0aHJvd09uTWlzc2luZ0ZpbGUiLCJ1cGxvYWQiLCJmaWxlcyIsImZpbGUiLCJ1bmRlZmluZWQiLCJ1cGxvYWRFZGl0cyIsInBhcnNlVXBsb2FkRWRpdHNGcm9tUmVxT3JJbmNvbWluZ0RhdGEiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwiZm9jYWxQb2ludCIsImZvY2FsUG9pbnRFbmFibGVkIiwiZm9ybWF0T3B0aW9ucyIsImltYWdlU2l6ZXMiLCJyZXNpemVPcHRpb25zIiwic3RhdGljRGlyIiwidHJpbU9wdGlvbnMiLCJ3aXRoTWV0YWRhdGEiLCJzdGF0aWNQYXRoIiwiaW5kZXhPZiIsInBhdGgiLCJyZXNvbHZlIiwicGF0aHMiLCJjb25maWdEaXIiLCJmaWxlbmFtZSIsInVybCIsInN0YXJ0c1dpdGgiLCJmaWxlUGF0aCIsInJlc3BvbnNlIiwiZ2V0RmlsZUJ5UGF0aCIsImdldEV4dGVybmFsRmlsZSIsInVwbG9hZENvbmZpZyIsImVyciIsIkVycm9yIiwiRmlsZVJldHJpZXZhbEVycm9yIiwidCIsIm1lc3NhZ2UiLCJNaXNzaW5nRmlsZSIsIm1rZGlycCIsInN5bmMiLCJuZXdEYXRhIiwiZmlsZXNUb1NhdmUiLCJmaWxlRGF0YSIsImZpbGVJc0FuaW1hdGVkVHlwZSIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJjcm9wRGF0YSIsImNyb3AiLCJmaWxlU3VwcG9ydHNSZXNpemUiLCJjYW5SZXNpemVJbWFnZSIsImZzU2FmZU5hbWUiLCJzaGFycEZpbGUiLCJkaW1lbnNpb25zIiwiZmlsZUJ1ZmZlciIsImV4dCIsIm1pbWUiLCJmaWxlSGFzQWRqdXN0bWVudHMiLCJCb29sZWFuIiwidGVtcEZpbGVQYXRoIiwic2hhcnBPcHRpb25zIiwiYW5pbWF0ZWQiLCJzaGFycCIsInJvdGF0ZSIsInJlc2l6ZSIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW0iLCJpc0ltYWdlIiwiZ2V0SW1hZ2VTaXplIiwid2lkdGgiLCJoZWlnaHQiLCJtZXRhZGF0YSIsIm9wdGlvbmFsbHlBcHBlbmRNZXRhZGF0YSIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJmcm9tQnVmZmVyIiwiaW5mbyIsImZpbGVzaXplIiwic2l6ZSIsInBhZ2VzIiwibGVuZ3RoIiwibmFtZSIsInNwbGl0IiwicG9wIiwibWltZVR5cGUiLCJiYXNlRmlsZW5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZ2V0U2FmZUZpbGVOYW1lIiwiY29sbGVjdGlvblNsdWciLCJzbHVnIiwiZGVzaXJlZEZpbGVuYW1lIiwiZmlsZUZvclJlc2l6ZSIsImNyb3BwZWRJbWFnZSIsImNyb3BJbWFnZSIsImhlaWdodEluUGl4ZWxzIiwid2lkdGhJblBpeGVscyIsInB1c2giLCJidWZmZXIiLCJmcyIsInByb21pc2VzIiwid3JpdGVGaWxlIiwiQXJyYXkiLCJpc0FycmF5IiwicGF5bG9hZFVwbG9hZFNpemVzIiwic2l6ZURhdGEiLCJzaXplc1RvU2F2ZSIsInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJzYXZlZEZpbGVuYW1lIiwic2l6ZXMiLCJmb2NhbFgiLCJ4IiwiZm9jYWxZIiwieSIsInBheWxvYWQiLCJsb2dnZXIiLCJlcnJvciIsIm1zZyIsIkZpbGVVcGxvYWRFcnJvciIsImFyZ3MiLCJxdWVyeSIsImluY29taW5nRGF0YSIsIm9yaWdEb2MiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7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
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVcGxvYWRlZEZpbGUgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIFNoYXJwLCBTaGFycE9wdGlvbnMgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBta2RpcnAgZnJvbSAnbWtkaXJwJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZURhdGEsIEZpbGVUb1NhdmUsIFByb2JlZEltYWdlU2l6ZSwgVXBsb2FkRWRpdHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IEZpbGVSZXRyaWV2YWxFcnJvciBmcm9tICcuLi9lcnJvcnMvRmlsZVJldHJpZXZhbEVycm9yJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgeyBjcm9wSW1hZ2UgfSBmcm9tICcuL2Nyb3BJbWFnZSdcbmltcG9ydCB7IGdldEV4dGVybmFsRmlsZSB9IGZyb20gJy4vZ2V0RXh0ZXJuYWxGaWxlJ1xuaW1wb3J0IGdldEZpbGVCeVBhdGggZnJvbSAnLi9nZXRGaWxlQnlQYXRoJ1xuaW1wb3J0IGdldEltYWdlU2l6ZSBmcm9tICcuL2dldEltYWdlU2l6ZSdcbmltcG9ydCBnZXRTYWZlRmlsZU5hbWUgZnJvbSAnLi9nZXRTYWZlRmlsZW5hbWUnXG5pbXBvcnQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyBmcm9tICcuL2ltYWdlUmVzaXplcidcbmltcG9ydCBpc0ltYWdlIGZyb20gJy4vaXNJbWFnZSdcbmltcG9ydCB7IG9wdGlvbmFsbHlBcHBlbmRNZXRhZGF0YSB9IGZyb20gJy4vb3B0aW9uYWxseUFwcGVuZE1ldGFkYXRhJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3JpZ2luYWxEb2M/OiBUXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdGhyb3dPbk1pc3NpbmdGaWxlPzogYm9vbGVhblxufVxuXG50eXBlIFJlc3VsdDxUPiA9IFByb21pc2U8e1xuICBkYXRhOiBUXG4gIGZpbGVzOiBGaWxlVG9TYXZlW11cbn0+XG5cbmV4cG9ydCBjb25zdCBnZW5lcmF0ZUZpbGVEYXRhID0gYXN5bmMgPFQ+KHtcbiAgY29sbGVjdGlvbjogeyBjb25maWc6IGNvbGxlY3Rpb25Db25maWcgfSxcbiAgY29uZmlnLFxuICBkYXRhLFxuICBvcGVyYXRpb24sXG4gIG9yaWdpbmFsRG9jLFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzLFxuICByZXEsXG4gIHRocm93T25NaXNzaW5nRmlsZSxcbn06IEFyZ3M8VD4pOiBSZXN1bHQ8VD4gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgbGV0IGZpbGUgPSByZXEuZmlsZXM/LmZpbGUgfHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgdXBsb2FkRWRpdHMgPSBwYXJzZVVwbG9hZEVkaXRzRnJvbVJlcU9ySW5jb21pbmdEYXRhKHtcbiAgICBkYXRhLFxuICAgIG9wZXJhdGlvbixcbiAgICBvcmlnaW5hbERvYyxcbiAgICByZXEsXG4gIH0pXG5cbiAgY29uc3Qge1xuICAgIGRpc2FibGVMb2NhbFN0b3JhZ2UsXG4gICAgZm9jYWxQb2ludDogZm9jYWxQb2ludEVuYWJsZWQsXG4gICAgZm9ybWF0T3B0aW9ucyxcbiAgICBpbWFnZVNpemVzLFxuICAgIHJlc2l6ZU9wdGlvbnMsXG4gICAgc3RhdGljRGlyLFxuICAgIHRyaW1PcHRpb25zLFxuICAgIHdpdGhNZXRhZGF0YSxcbiAgfSA9IGNvbGxlY3Rpb25Db25maWcudXBsb2FkXG5cbiAgbGV0IHN0YXRpY1BhdGggPSBzdGF0aWNEaXJcbiAgaWYgKHN0YXRpY0Rpci5pbmRleE9mKCcvJykgIT09IDApIHtcbiAgICBzdGF0aWNQYXRoID0gcGF0aC5yZXNvbHZlKGNvbmZpZy5wYXRocy5jb25maWdEaXIsIHN0YXRpY0RpcilcbiAgfVxuXG4gIGlmICghZmlsZSAmJiB1cGxvYWRFZGl0cyAmJiBkYXRhKSB7XG4gICAgY29uc3QgeyBmaWxlbmFtZSwgdXJsIH0gPSBkYXRhIGFzIEZpbGVEYXRhXG5cbiAgICB0cnkge1xuICAgICAgaWYgKHVybCAmJiB1cmwuc3RhcnRzV2l0aCgnLycpICYmICFkaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gYCR7c3RhdGljUGF0aH0vJHtmaWxlbmFtZX1gXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RmlsZUJ5UGF0aChmaWxlUGF0aClcbiAgICAgICAgZmlsZSA9IHJlc3BvbnNlIGFzIFVwbG9hZGVkRmlsZVxuICAgICAgICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzID0gdHJ1ZVxuICAgICAgfSBlbHNlIGlmIChmaWxlbmFtZSAmJiB1cmwpIHtcbiAgICAgICAgZmlsZSA9IChhd2FpdCBnZXRFeHRlcm5hbEZpbGUoe1xuICAgICAgICAgIGRhdGE6IGRhdGEgYXMgRmlsZURhdGEsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHVwbG9hZENvbmZpZzogY29sbGVjdGlvbkNvbmZpZy51cGxvYWQsXG4gICAgICAgIH0pKSBhcyBVcGxvYWRlZEZpbGVcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aHJvdyBuZXcgRmlsZVJldHJpZXZhbEVycm9yKHJlcS50LCBlcnIubWVzc2FnZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoIWZpbGUpIHtcbiAgICBpZiAodGhyb3dPbk1pc3NpbmdGaWxlKSB0aHJvdyBuZXcgTWlzc2luZ0ZpbGUocmVxLnQpXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBpZiAoIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICBta2RpcnAuc3luYyhzdGF0aWNQYXRoKVxuICB9XG5cbiAgbGV0IG5ld0RhdGEgPSBkYXRhXG4gIGNvbnN0IGZpbGVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXVxuICBjb25zdCBmaWxlRGF0YTogUGFydGlhbDxGaWxlRGF0YT4gPSB7fVxuICBjb25zdCBmaWxlSXNBbmltYXRlZFR5cGUgPSBbJ2ltYWdlL2F2aWYnLCAnaW1hZ2UvZ2lmJywgJ2ltYWdlL3dlYnAnXS5pbmNsdWRlcyhmaWxlLm1pbWV0eXBlKVxuICBjb25zdCBjcm9wRGF0YSA9XG4gICAgdHlwZW9mIHVwbG9hZEVkaXRzID09PSAnb2JqZWN0JyAmJiAnY3JvcCcgaW4gdXBsb2FkRWRpdHMgPyB1cGxvYWRFZGl0cy5jcm9wIDogdW5kZWZpbmVkXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBmaWxlU3VwcG9ydHNSZXNpemUgPSBjYW5SZXNpemVJbWFnZShmaWxlLm1pbWV0eXBlKVxuICAgIGxldCBmc1NhZmVOYW1lOiBzdHJpbmdcbiAgICBsZXQgc2hhcnBGaWxlOiBTaGFycCB8IHVuZGVmaW5lZFxuICAgIGxldCBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemUgfCB1bmRlZmluZWRcbiAgICBsZXQgZmlsZUJ1ZmZlcjogeyBkYXRhOiBCdWZmZXI7IGluZm86IE91dHB1dEluZm8gfVxuICAgIGxldCBleHRcbiAgICBsZXQgbWltZTogc3RyaW5nXG4gICAgY29uc3QgZmlsZUhhc0FkanVzdG1lbnRzID1cbiAgICAgIGZpbGVTdXBwb3J0c1Jlc2l6ZSAmJlxuICAgICAgQm9vbGVhbihyZXNpemVPcHRpb25zIHx8IGZvcm1hdE9wdGlvbnMgfHwgaW1hZ2VTaXplcyB8fCB0cmltT3B0aW9ucyB8fCBmaWxlLnRlbXBGaWxlUGF0aClcblxuICAgIGNvbnN0IHNoYXJwT3B0aW9uczogU2hhcnBPcHRpb25zID0ge31cblxuICAgIGlmIChmaWxlSXNBbmltYXRlZFR5cGUpIHNoYXJwT3B0aW9ucy5hbmltYXRlZCA9IHRydWVcblxuICAgIGlmIChzaGFycCAmJiAoZmlsZUlzQW5pbWF0ZWRUeXBlIHx8IGZpbGVIYXNBZGp1c3RtZW50cykpIHtcbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwKGZpbGUuZGF0YSwgc2hhcnBPcHRpb25zKS5yb3RhdGUoKSAvLyBwYXNzIHJvdGF0ZSgpIHRvIGF1dG8tcm90YXRlIGJhc2VkIG9uIEVYSUYgZGF0YS4gaHR0cHM6Ly9naXRodWIuY29tL3BheWxvYWRjbXMvcGF5bG9hZC9wdWxsLzMwODFcbiAgICAgIH1cblxuICAgICAgaWYgKGZpbGVIYXNBZGp1c3RtZW50cykge1xuICAgICAgICBpZiAocmVzaXplT3B0aW9ucykge1xuICAgICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS5yZXNpemUocmVzaXplT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9ybWF0T3B0aW9ucykge1xuICAgICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50b0Zvcm1hdChmb3JtYXRPcHRpb25zLmZvcm1hdCwgZm9ybWF0T3B0aW9ucy5vcHRpb25zKVxuICAgICAgICB9XG4gICAgICAgIGlmICh0cmltT3B0aW9ucykge1xuICAgICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50cmltKHRyaW1PcHRpb25zKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGZpbGVTdXBwb3J0c1Jlc2l6ZSB8fCBpc0ltYWdlKGZpbGUubWltZXR5cGUpKSB7XG4gICAgICBkaW1lbnNpb25zID0gYXdhaXQgZ2V0SW1hZ2VTaXplKGZpbGUpXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGRpbWVuc2lvbnMud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgfVxuXG4gICAgaWYgKHNoYXJwRmlsZSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycEZpbGUubWV0YWRhdGEoKVxuICAgICAgc2hhcnBGaWxlID0gYXdhaXQgb3B0aW9uYWxseUFwcGVuZE1ldGFkYXRhKHtcbiAgICAgICAgcmVxLFxuICAgICAgICBzaGFycEZpbGUsXG4gICAgICAgIHdpdGhNZXRhZGF0YSxcbiAgICAgIH0pXG4gICAgICBmaWxlQnVmZmVyID0gYXdhaXQgc2hhcnBGaWxlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcbiAgICAgIDsoeyBleHQsIG1pbWUgfSA9IGF3YWl0IGZyb21CdWZmZXIoZmlsZUJ1ZmZlci5kYXRhKSkgLy8gVGhpcyBpcyBnZXR0aW5nIGFuIGluY29ycmVjdCBnaWYgaGVpZ2h0IGJhY2suXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGZpbGVCdWZmZXIuaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodFxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlQnVmZmVyLmluZm8uc2l6ZVxuXG4gICAgICAvLyBBbmltYXRlZCBHSUZzICsgV2ViUCBhZ2dyZWdhdGUgdGhlIGhlaWdodCBmcm9tIGV2ZXJ5IGZyYW1lLCBzbyB3ZSBuZWVkIHRvIHVzZSBkaXZpZGUgYnkgbnVtYmVyIG9mIHBhZ2VzXG4gICAgICBpZiAobWV0YWRhdGEucGFnZXMpIHtcbiAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gZmlsZUJ1ZmZlci5pbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzXG4gICAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5kYXRhLmxlbmd0aFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtaW1lID0gZmlsZS5taW1ldHlwZVxuICAgICAgZmlsZURhdGEuZmlsZXNpemUgPSBmaWxlLnNpemVcblxuICAgICAgaWYgKGZpbGUubmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgIGV4dCA9IGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpLnNwbGl0KCc/JylbMF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4dCA9ICcnXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRqdXN0IFNWRyBtaW1lIHR5cGUuIGZyb21CdWZmZXIgbW9kaWZpZXMgaXQuXG4gICAgaWYgKG1pbWUgPT09ICdhcHBsaWNhdGlvbi94bWwnICYmIGV4dCA9PT0gJ3N2ZycpIG1pbWUgPSAnaW1hZ2Uvc3ZnK3htbCdcbiAgICBmaWxlRGF0YS5taW1lVHlwZSA9IG1pbWVcblxuICAgIGNvbnN0IGJhc2VGaWxlbmFtZSA9IHNhbml0aXplKGZpbGUubmFtZS5zdWJzdHJpbmcoMCwgZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJykpIHx8IGZpbGUubmFtZSlcbiAgICBmc1NhZmVOYW1lID0gYCR7YmFzZUZpbGVuYW1lfSR7ZXh0ID8gYC4ke2V4dH1gIDogJyd9YFxuXG4gICAgaWYgKCFvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzKSB7XG4gICAgICBmc1NhZmVOYW1lID0gYXdhaXQgZ2V0U2FmZUZpbGVOYW1lKHtcbiAgICAgICAgY29sbGVjdGlvblNsdWc6IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgZGVzaXJlZEZpbGVuYW1lOiBmc1NhZmVOYW1lLFxuICAgICAgICByZXEsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGZpbGVEYXRhLmZpbGVuYW1lID0gZnNTYWZlTmFtZVxuICAgIGxldCBmaWxlRm9yUmVzaXplID0gZmlsZVxuXG4gICAgaWYgKGNyb3BEYXRhKSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGNyb3BwZWRJbWFnZSwgaW5mbyB9ID0gYXdhaXQgY3JvcEltYWdlKHtcbiAgICAgICAgY3JvcERhdGEsXG4gICAgICAgIGRpbWVuc2lvbnMsXG4gICAgICAgIGZpbGUsXG4gICAgICAgIGhlaWdodEluUGl4ZWxzOiB1cGxvYWRFZGl0cy5oZWlnaHRJblBpeGVscyxcbiAgICAgICAgcmVxLFxuICAgICAgICB3aWR0aEluUGl4ZWxzOiB1cGxvYWRFZGl0cy53aWR0aEluUGl4ZWxzLFxuICAgICAgICB3aXRoTWV0YWRhdGEsXG4gICAgICB9KVxuXG4gICAgICAvLyBBcHBseSByZXNpemUgYWZ0ZXIgY3JvcHBpbmcgdG8gZW5zdXJlIGl0IGNvbmZvcm1zIHRvIHJlc2l6ZU9wdGlvbnNcbiAgICAgIGlmIChyZXNpemVPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHJlc2l6ZWRBZnRlckNyb3AgPSBhd2FpdCBzaGFycChjcm9wcGVkSW1hZ2UpXG4gICAgICAgICAgLnJlc2l6ZSh7XG4gICAgICAgICAgICBmaXQ6IHJlc2l6ZU9wdGlvbnM/LmZpdCB8fCAnY292ZXInLFxuICAgICAgICAgICAgaGVpZ2h0OiByZXNpemVPcHRpb25zPy5oZWlnaHQsXG4gICAgICAgICAgICBwb3NpdGlvbjogcmVzaXplT3B0aW9ucz8ucG9zaXRpb24gfHwgJ2NlbnRlcicsXG4gICAgICAgICAgICB3aWR0aDogcmVzaXplT3B0aW9ucz8ud2lkdGgsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAudG9CdWZmZXIoeyByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSB9KVxuXG4gICAgICAgIGZpbGVzVG9TYXZlLnB1c2goe1xuICAgICAgICAgIGJ1ZmZlcjogcmVzaXplZEFmdGVyQ3JvcC5kYXRhLFxuICAgICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgICB9KVxuXG4gICAgICAgIGZpbGVGb3JSZXNpemUgPSB7XG4gICAgICAgICAgLi4uZmlsZUZvclJlc2l6ZSxcbiAgICAgICAgICBkYXRhOiByZXNpemVkQWZ0ZXJDcm9wLmRhdGEsXG4gICAgICAgICAgc2l6ZTogcmVzaXplZEFmdGVyQ3JvcC5pbmZvLnNpemUsXG4gICAgICAgIH1cblxuICAgICAgICBmaWxlRGF0YS53aWR0aCA9IHJlc2l6ZWRBZnRlckNyb3AuaW5mby53aWR0aFxuICAgICAgICBmaWxlRGF0YS5oZWlnaHQgPSByZXNpemVkQWZ0ZXJDcm9wLmluZm8uaGVpZ2h0XG4gICAgICAgIGlmIChmaWxlSXNBbmltYXRlZFR5cGUpIHtcbiAgICAgICAgICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IHNoYXJwRmlsZS5tZXRhZGF0YSgpXG4gICAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gbWV0YWRhdGEucGFnZXNcbiAgICAgICAgICAgID8gcmVzaXplZEFmdGVyQ3JvcC5pbmZvLmhlaWdodCAvIG1ldGFkYXRhLnBhZ2VzXG4gICAgICAgICAgICA6IHJlc2l6ZWRBZnRlckNyb3AuaW5mby5oZWlnaHRcbiAgICAgICAgfVxuICAgICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IHJlc2l6ZWRBZnRlckNyb3AuaW5mby5zaXplXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiByZXNpemVPcHRpb25zIGlzIG5vdCBwcmVzZW50LCBqdXN0IHNhdmUgdGhlIGNyb3BwZWQgaW1hZ2VcbiAgICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgICAgYnVmZmVyOiBjcm9wcGVkSW1hZ2UsXG4gICAgICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgICAgIH0pXG5cbiAgICAgICAgZmlsZUZvclJlc2l6ZSA9IHtcbiAgICAgICAgICAuLi5maWxlLFxuICAgICAgICAgIGRhdGE6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgICBzaXplOiBpbmZvLnNpemUsXG4gICAgICAgIH1cblxuICAgICAgICBmaWxlRGF0YS53aWR0aCA9IGluZm8ud2lkdGhcbiAgICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gaW5mby5oZWlnaHRcbiAgICAgICAgaWYgKGZpbGVJc0FuaW1hdGVkVHlwZSkge1xuICAgICAgICAgIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnBGaWxlLm1ldGFkYXRhKClcbiAgICAgICAgICBmaWxlRGF0YS5oZWlnaHQgPSBtZXRhZGF0YS5wYWdlcyA/IGluZm8uaGVpZ2h0IC8gbWV0YWRhdGEucGFnZXMgOiBpbmZvLmhlaWdodFxuICAgICAgICB9XG4gICAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gaW5mby5zaXplXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGNyb3BwZWRJbWFnZSkgLy8gd3JpdGUgZmlsZUJ1ZmZlciB0byB0aGUgdGVtcCBwYXRoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXEuZmlsZXMuZmlsZSA9IGZpbGVGb3JSZXNpemVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgLy8gSWYgdXNpbmcgdGVtcCBmaWxlcyBhbmQgdGhlIGltYWdlIGlzIGJlaW5nIHJlc2l6ZWQsIHdyaXRlIHRoZSBmaWxlIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIGlmIChmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlLnRlbXBGaWxlUGF0aCwgZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFzc2lnbiB0aGUgX3Bvc3NpYmx5IG1vZGlmaWVkXyBmaWxlIHRvIHRoZSByZXF1ZXN0IG9iamVjdFxuICAgICAgICAgIHJlcS5maWxlcy5maWxlID0ge1xuICAgICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICAgIGRhdGE6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICAgICAgc2l6ZTogZmlsZUJ1ZmZlcj8uaW5mby5zaXplLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWxlU3VwcG9ydHNSZXNpemUgJiYgKEFycmF5LmlzQXJyYXkoaW1hZ2VTaXplcykgfHwgZm9jYWxQb2ludEVuYWJsZWQgIT09IGZhbHNlKSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG4gICAgICBjb25zdCB7IGZvY2FsUG9pbnQsIHNpemVEYXRhLCBzaXplc1RvU2F2ZSB9ID0gYXdhaXQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgZGltZW5zaW9uczogIWNyb3BEYXRhXG4gICAgICAgICAgPyBkaW1lbnNpb25zXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLmRpbWVuc2lvbnMsXG4gICAgICAgICAgICAgIGhlaWdodDogZmlsZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogZmlsZURhdGEud2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICBmaWxlOiBmaWxlRm9yUmVzaXplLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICAgIHVwbG9hZEVkaXRzLFxuICAgICAgICB3aXRoTWV0YWRhdGEsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRGF0YS5zaXplcyA9IHNpemVEYXRhXG4gICAgICBmaWxlRGF0YS5mb2NhbFggPSBmb2NhbFBvaW50Py54XG4gICAgICBmaWxlRGF0YS5mb2NhbFkgPSBmb2NhbFBvaW50Py55XG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKC4uLnNpemVzVG9TYXZlKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmVxLnBheWxvYWQubG9nZ2VyLmVycm9yKHsgZXJyLCBtc2c6ICdFcnJvciB1cGxvYWRpbmcgZmlsZScgfSlcbiAgICB0aHJvdyBuZXcgRmlsZVVwbG9hZEVycm9yKHJlcS50KVxuICB9XG5cbiAgbmV3RGF0YSA9IHtcbiAgICAuLi5uZXdEYXRhLFxuICAgIC4uLmZpbGVEYXRhLFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhOiBuZXdEYXRhLFxuICAgIGZpbGVzOiBmaWxlc1RvU2F2ZSxcbiAgfVxufVxuXG4vKipcbiAqIFBhcnNlIHVwbG9hZCBlZGl0cyBmcm9tIHJlcSBvciBpbmNvbWluZyBkYXRhXG4gKi9cbmZ1bmN0aW9uIHBhcnNlVXBsb2FkRWRpdHNGcm9tUmVxT3JJbmNvbWluZ0RhdGEoYXJnczoge1xuICBkYXRhOiB1bmtub3duXG4gIG9wZXJhdGlvbjogJ2NyZWF0ZScgfCAndXBkYXRlJ1xuICBvcmlnaW5hbERvYzogdW5rbm93blxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59KTogVXBsb2FkRWRpdHMge1xuICBjb25zdCB7IGRhdGEsIG9wZXJhdGlvbiwgb3JpZ2luYWxEb2MsIHJlcSB9ID0gYXJnc1xuXG4gIC8vIEdldCBpbnRlbmRlZCBmb2NhbCBwb2ludCBjaGFuZ2UgZnJvbSBxdWVyeSBzdHJpbmcgb3IgaW5jb21pbmcgZGF0YVxuICBjb25zdCB1cGxvYWRFZGl0cyA9XG4gICAgcmVxLnF1ZXJ5Py51cGxvYWRFZGl0cyAmJiB0eXBlb2YgcmVxLnF1ZXJ5LnVwbG9hZEVkaXRzID09PSAnb2JqZWN0J1xuICAgICAgPyAocmVxLnF1ZXJ5LnVwbG9hZEVkaXRzIGFzIFVwbG9hZEVkaXRzKVxuICAgICAgOiB7fVxuXG4gIGlmICh1cGxvYWRFZGl0cy5mb2NhbFBvaW50KSByZXR1cm4gdXBsb2FkRWRpdHNcblxuICBjb25zdCBpbmNvbWluZ0RhdGEgPSBkYXRhIGFzIEZpbGVEYXRhXG4gIGNvbnN0IG9yaWdEb2MgPSBvcmlnaW5hbERvYyBhcyBGaWxlRGF0YVxuXG4gIC8vIElmIG5vIGNoYW5nZSBpbiBmb2NhbCBwb2ludCwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgLy8gVGhpcyBwcmV2ZW50cyBhIHJlZm9jYWwgb3BlcmF0aW9uIHRyaWdnZXJlZCBmcm9tIGFkbWluLCBiZWNhdXNlIGl0IGFsd2F5cyBzZW5kcyB0aGUgZm9jYWwgcG9pbnQuXG4gIGlmIChvcmlnRG9jICYmIGluY29taW5nRGF0YS5mb2NhbFggPT09IG9yaWdEb2MuZm9jYWxYICYmIGluY29taW5nRGF0YS5mb2NhbFkgPT09IG9yaWdEb2MuZm9jYWxZKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgaWYgKGluY29taW5nRGF0YS5mb2NhbFggJiYgaW5jb21pbmdEYXRhLmZvY2FsWSkge1xuICAgIHVwbG9hZEVkaXRzLmZvY2FsUG9pbnQgPSB7XG4gICAgICB4OiBpbmNvbWluZ0RhdGEuZm9jYWxYLFxuICAgICAgeTogaW5jb21pbmdEYXRhLmZvY2FsWSxcbiAgICB9XG4gICAgcmV0dXJuIHVwbG9hZEVkaXRzXG4gIH1cblxuICAvLyBJZiBubyBmb2NhbCBwb2ludCBpcyBzZXQsIGRlZmF1bHQgdG8gY2VudGVyXG4gIGlmIChvcGVyYXRpb24gPT09ICdjcmVhdGUnKSB7XG4gICAgdXBsb2FkRWRpdHMuZm9jYWxQb2ludCA9IHtcbiAgICAgIHg6IDUwLFxuICAgICAgeTogNTAsXG4gICAgfVxuICB9XG4gIHJldHVybiB1cGxvYWRFZGl0c1xufVxuIl0sIm5hbWVzIjpbImdlbmVyYXRlRmlsZURhdGEiLCJjb2xsZWN0aW9uIiwiY29uZmlnIiwiY29sbGVjdGlvbkNvbmZpZyIsImRhdGEiLCJvcGVyYXRpb24iLCJvcmlnaW5hbERvYyIsIm92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMiLCJyZXEiLCJ0aHJvd09uTWlzc2luZ0ZpbGUiLCJ1cGxvYWQiLCJmaWxlcyIsImZpbGUiLCJ1bmRlZmluZWQiLCJ1cGxvYWRFZGl0cyIsInBhcnNlVXBsb2FkRWRpdHNGcm9tUmVxT3JJbmNvbWluZ0RhdGEiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwiZm9jYWxQb2ludCIsImZvY2FsUG9pbnRFbmFibGVkIiwiZm9ybWF0T3B0aW9ucyIsImltYWdlU2l6ZXMiLCJyZXNpemVPcHRpb25zIiwic3RhdGljRGlyIiwidHJpbU9wdGlvbnMiLCJ3aXRoTWV0YWRhdGEiLCJzdGF0aWNQYXRoIiwiaW5kZXhPZiIsInBhdGgiLCJyZXNvbHZlIiwicGF0aHMiLCJjb25maWdEaXIiLCJmaWxlbmFtZSIsInVybCIsInN0YXJ0c1dpdGgiLCJmaWxlUGF0aCIsInJlc3BvbnNlIiwiZ2V0RmlsZUJ5UGF0aCIsImdldEV4dGVybmFsRmlsZSIsInVwbG9hZENvbmZpZyIsImVyciIsIkVycm9yIiwiRmlsZVJldHJpZXZhbEVycm9yIiwidCIsIm1lc3NhZ2UiLCJNaXNzaW5nRmlsZSIsIm1rZGlycCIsInN5bmMiLCJuZXdEYXRhIiwiZmlsZXNUb1NhdmUiLCJmaWxlRGF0YSIsImZpbGVJc0FuaW1hdGVkVHlwZSIsImluY2x1ZGVzIiwibWltZXR5cGUiLCJjcm9wRGF0YSIsImNyb3AiLCJmaWxlU3VwcG9ydHNSZXNpemUiLCJjYW5SZXNpemVJbWFnZSIsImZzU2FmZU5hbWUiLCJzaGFycEZpbGUiLCJkaW1lbnNpb25zIiwiZmlsZUJ1ZmZlciIsImV4dCIsIm1pbWUiLCJmaWxlSGFzQWRqdXN0bWVudHMiLCJCb29sZWFuIiwidGVtcEZpbGVQYXRoIiwic2hhcnBPcHRpb25zIiwiYW5pbWF0ZWQiLCJzaGFycCIsInJvdGF0ZSIsInJlc2l6ZSIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW0iLCJpc0ltYWdlIiwiZ2V0SW1hZ2VTaXplIiwid2lkdGgiLCJoZWlnaHQiLCJtZXRhZGF0YSIsIm9wdGlvbmFsbHlBcHBlbmRNZXRhZGF0YSIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJmcm9tQnVmZmVyIiwiaW5mbyIsImZpbGVzaXplIiwic2l6ZSIsInBhZ2VzIiwibGVuZ3RoIiwibmFtZSIsInNwbGl0IiwicG9wIiwibWltZVR5cGUiLCJiYXNlRmlsZW5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZ2V0U2FmZUZpbGVOYW1lIiwiY29sbGVjdGlvblNsdWciLCJzbHVnIiwiZGVzaXJlZEZpbGVuYW1lIiwiZmlsZUZvclJlc2l6ZSIsImNyb3BwZWRJbWFnZSIsImNyb3BJbWFnZSIsImhlaWdodEluUGl4ZWxzIiwid2lkdGhJblBpeGVscyIsInJlc2l6ZWRBZnRlckNyb3AiLCJmaXQiLCJwb3NpdGlvbiIsInB1c2giLCJidWZmZXIiLCJmcyIsInByb21pc2VzIiwid3JpdGVGaWxlIiwiQXJyYXkiLCJpc0FycmF5IiwicGF5bG9hZFVwbG9hZFNpemVzIiwic2l6ZURhdGEiLCJzaXplc1RvU2F2ZSIsInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJzYXZlZEZpbGVuYW1lIiwic2l6ZXMiLCJmb2NhbFgiLCJ4IiwiZm9jYWxZIiwieSIsInBheWxvYWQiLCJsb2dnZXIiLCJlcnJvciIsIm1zZyIsIkZpbGVVcGxvYWRFcnJvciIsImFyZ3MiLCJxdWVyeSIsImluY29taW5nRGF0YSIsIm9yaWdEb2MiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBMkNhQTs7O2VBQUFBOzs7MEJBeENjOzJEQUNaOytEQUNJOzZEQUNGO3lFQUNJOzhEQUNIO3dCQU8yQjsyRUFDZDt1RUFDSjsyQkFDRDtpQ0FDTTtzRUFDTjtxRUFDRDt3RUFDRztxRUFDYTtnRUFDckI7MENBQ3FCOzs7Ozs7QUFrQmxDLE1BQU1BLG1CQUFtQixPQUFVLEVBQ3hD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EAEV,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,4BAA4B,CAAA;AAExF,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;
|
|
1
|
+
{"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAQtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EAEV,eAAe,EACf,WAAW,EACZ,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,4BAA4B,CAAA;AAExF,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AA0LD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,GACb,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+NxC"}
|