@payloadcms/db-mongodb 1.4.1 → 1.4.3
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/dist/findVersions.d.ts.map +1 -1
- package/dist/findVersions.js +1 -2
- package/dist/models/buildSchema.d.ts.map +1 -1
- package/dist/models/buildSchema.js +46 -46
- package/dist/testCredentials.js +4 -4
- package/dist/transactions/rollbackTransaction.d.ts.map +1 -1
- package/dist/transactions/rollbackTransaction.js +7 -3
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../src/findVersions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAWpD,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"findVersions.d.ts","sourceRoot":"","sources":["../src/findVersions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAWpD,eAAO,MAAM,YAAY,EAAE,YAiG1B,CAAA"}
|
package/dist/findVersions.js
CHANGED
|
@@ -52,7 +52,6 @@ const findVersions = async function findVersions({ collection, limit, locale, pa
|
|
|
52
52
|
lean: true,
|
|
53
53
|
leanWithId: true,
|
|
54
54
|
limit,
|
|
55
|
-
offset: skip || 0,
|
|
56
55
|
options,
|
|
57
56
|
page,
|
|
58
57
|
pagination,
|
|
@@ -94,4 +93,4 @@ const findVersions = async function findVersions({ collection, limit, locale, pa
|
|
|
94
93
|
};
|
|
95
94
|
};
|
|
96
95
|
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maW5kVmVyc2lvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYWdpbmF0ZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgRmluZFZlcnNpb25zIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBmbGF0dGVuV2hlcmVUb09wZXJhdG9ycyB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5cbmltcG9ydCB0eXBlIHsgTW9uZ29vc2VBZGFwdGVyIH0gZnJvbSAnLidcblxuaW1wb3J0IHsgYnVpbGRTb3J0UGFyYW0gfSBmcm9tICcuL3F1ZXJpZXMvYnVpbGRTb3J0UGFyYW0nXG5pbXBvcnQgc2FuaXRpemVJbnRlcm5hbEZpZWxkcyBmcm9tICcuL3V0aWxpdGllcy9zYW5pdGl6ZUludGVybmFsRmllbGRzJ1xuaW1wb3J0IHsgd2l0aFNlc3Npb24gfSBmcm9tICcuL3dpdGhTZXNzaW9uJ1xuXG5leHBvcnQgY29uc3QgZmluZFZlcnNpb25zOiBGaW5kVmVyc2lvbnMgPSBhc3luYyBmdW5jdGlvbiBmaW5kVmVyc2lvbnMoXG4gIHRoaXM6IE1vbmdvb3NlQWRhcHRlcixcbiAge1xuICAgIGNvbGxlY3Rpb24sXG4gICAgbGltaXQsXG4gICAgbG9jYWxlLFxuICAgIHBhZ2UsXG4gICAgcGFnaW5hdGlvbixcbiAgICByZXEgPSB7fSBhcyBQYXlsb2FkUmVxdWVzdCxcbiAgICBza2lwLFxuICAgIHNvcnQ6IHNvcnRBcmcsXG4gICAgd2hlcmUsXG4gIH0sXG4pIHtcbiAgY29uc3QgTW9kZWwgPSB0aGlzLnZlcnNpb25zW2NvbGxlY3Rpb25dXG4gIGNvbnN0IGNvbGxlY3Rpb25Db25maWcgPSB0aGlzLnBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvbl0uY29uZmlnXG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgLi4ud2l0aFNlc3Npb24odGhpcywgcmVxLnRyYW5zYWN0aW9uSUQpLFxuICAgIGxpbWl0LFxuICAgIHNraXAsXG4gIH1cblxuICBsZXQgaGFzTmVhckNvbnN0cmFpbnQgPSBmYWxzZVxuXG4gIGlmICh3aGVyZSkge1xuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gZmxhdHRlbldoZXJlVG9PcGVyYXRvcnMod2hlcmUpXG4gICAgaGFzTmVhckNvbnN0cmFpbnQgPSBjb25zdHJhaW50cy5zb21lKChwcm9wKSA9PiBPYmplY3Qua2V5cyhwcm9wKS5zb21lKChrZXkpID0+
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9maW5kVmVyc2lvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYWdpbmF0ZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgRmluZFZlcnNpb25zIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5pbXBvcnQgeyBmbGF0dGVuV2hlcmVUb09wZXJhdG9ycyB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5cbmltcG9ydCB0eXBlIHsgTW9uZ29vc2VBZGFwdGVyIH0gZnJvbSAnLidcblxuaW1wb3J0IHsgYnVpbGRTb3J0UGFyYW0gfSBmcm9tICcuL3F1ZXJpZXMvYnVpbGRTb3J0UGFyYW0nXG5pbXBvcnQgc2FuaXRpemVJbnRlcm5hbEZpZWxkcyBmcm9tICcuL3V0aWxpdGllcy9zYW5pdGl6ZUludGVybmFsRmllbGRzJ1xuaW1wb3J0IHsgd2l0aFNlc3Npb24gfSBmcm9tICcuL3dpdGhTZXNzaW9uJ1xuXG5leHBvcnQgY29uc3QgZmluZFZlcnNpb25zOiBGaW5kVmVyc2lvbnMgPSBhc3luYyBmdW5jdGlvbiBmaW5kVmVyc2lvbnMoXG4gIHRoaXM6IE1vbmdvb3NlQWRhcHRlcixcbiAge1xuICAgIGNvbGxlY3Rpb24sXG4gICAgbGltaXQsXG4gICAgbG9jYWxlLFxuICAgIHBhZ2UsXG4gICAgcGFnaW5hdGlvbixcbiAgICByZXEgPSB7fSBhcyBQYXlsb2FkUmVxdWVzdCxcbiAgICBza2lwLFxuICAgIHNvcnQ6IHNvcnRBcmcsXG4gICAgd2hlcmUsXG4gIH0sXG4pIHtcbiAgY29uc3QgTW9kZWwgPSB0aGlzLnZlcnNpb25zW2NvbGxlY3Rpb25dXG4gIGNvbnN0IGNvbGxlY3Rpb25Db25maWcgPSB0aGlzLnBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvbl0uY29uZmlnXG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgLi4ud2l0aFNlc3Npb24odGhpcywgcmVxLnRyYW5zYWN0aW9uSUQpLFxuICAgIGxpbWl0LFxuICAgIHNraXAsXG4gIH1cblxuICBsZXQgaGFzTmVhckNvbnN0cmFpbnQgPSBmYWxzZVxuXG4gIGlmICh3aGVyZSkge1xuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gZmxhdHRlbldoZXJlVG9PcGVyYXRvcnMod2hlcmUpXG4gICAgaGFzTmVhckNvbnN0cmFpbnQgPSBjb25zdHJhaW50cy5zb21lKChwcm9wKSA9PiBPYmplY3Qua2V5cyhwcm9wKS5zb21lKChrZXkpID0+IGtleSA9PT0gJ25lYXInKSlcbiAgfVxuXG4gIGxldCBzb3J0XG4gIGlmICghaGFzTmVhckNvbnN0cmFpbnQpIHtcbiAgICBzb3J0ID0gYnVpbGRTb3J0UGFyYW0oe1xuICAgICAgY29uZmlnOiB0aGlzLnBheWxvYWQuY29uZmlnLFxuICAgICAgZmllbGRzOiBjb2xsZWN0aW9uQ29uZmlnLmZpZWxkcyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIHNvcnQ6IHNvcnRBcmcgfHwgJy11cGRhdGVkQXQnLFxuICAgICAgdGltZXN0YW1wczogdHJ1ZSxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgcXVlcnkgPSBhd2FpdCBNb2RlbC5idWlsZFF1ZXJ5KHtcbiAgICBsb2NhbGUsXG4gICAgcGF5bG9hZDogdGhpcy5wYXlsb2FkLFxuICAgIHdoZXJlLFxuICB9KVxuXG4gIC8vIHVzZUVzdGltYXRlZENvdW50IGlzIGZhc3RlciwgYnV0IG5vdCBhY2N1cmF0ZSwgYXMgaXQgaWdub3JlcyBhbnkgZmlsdGVycy4gSXQgaXMgdGh1cyBzZXQgdG8gdHJ1ZSBpZiB0aGVyZSBhcmUgbm8gZmlsdGVycy5cbiAgY29uc3QgdXNlRXN0aW1hdGVkQ291bnQgPSBoYXNOZWFyQ29uc3RyYWludCB8fCAhcXVlcnkgfHwgT2JqZWN0LmtleXMocXVlcnkpLmxlbmd0aCA9PT0gMFxuICBjb25zdCBwYWdpbmF0aW9uT3B0aW9uczogUGFnaW5hdGVPcHRpb25zID0ge1xuICAgIGZvcmNlQ291bnRGbjogaGFzTmVhckNvbnN0cmFpbnQsXG4gICAgbGVhbjogdHJ1ZSxcbiAgICBsZWFuV2l0aElkOiB0cnVlLFxuICAgIGxpbWl0LFxuICAgIG9wdGlvbnMsXG4gICAgcGFnZSxcbiAgICBwYWdpbmF0aW9uLFxuICAgIHNvcnQsXG4gICAgdXNlRXN0aW1hdGVkQ291bnQsXG4gIH1cblxuICBpZiAoIXVzZUVzdGltYXRlZENvdW50ICYmIE9iamVjdC5rZXlzKHF1ZXJ5KS5sZW5ndGggPT09IDAgJiYgdGhpcy5kaXNhYmxlSW5kZXhIaW50cyAhPT0gdHJ1ZSkge1xuICAgIC8vIEltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBjb3VudERvY3VtZW50cyBxdWVyeSB3aGljaCBpcyB1c2VkIGlmIHVzZUVzdGltYXRlZENvdW50IGlzIHNldCB0byBmYWxzZSBieSBhZGRpbmdcbiAgICAvLyBhIGhpbnQuIEJ5IGRlZmF1bHQsIGlmIG5vIGhpbnQgaXMgcHJvdmlkZWQsIE1vbmdvREIgZG9lcyBub3QgdXNlIGFuIGluZGV4ZWQgZmllbGQgdG8gY291bnQgdGhlIHJldHVybmVkIGRvY3VtZW50cyxcbiAgICAvLyB3aGljaCBtYWtlcyBxdWVyaWVzIHZlcnkgc2xvdy4gVGhpcyBvbmx5IGhhcHBlbnMgd2hlbiBubyBxdWVyeSAoZmlsdGVyKSBpcyBwcm92aWRlZC4gSWYgb25lIGlzIHByb3ZpZGVkLCBpdCB1c2VzXG4gICAgLy8gdGhlIGNvcnJlY3QgaW5kZXhlZCBmaWVsZFxuICAgIHBhZ2luYXRpb25PcHRpb25zLnVzZUN1c3RvbUNvdW50Rm4gPSAoKSA9PiB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICBNb2RlbC5jb3VudERvY3VtZW50cyhxdWVyeSwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgaGludDogeyBfaWQ6IDEgfSxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgaWYgKGxpbWl0ID49IDApIHtcbiAgICBwYWdpbmF0aW9uT3B0aW9ucy5saW1pdCA9IGxpbWl0XG4gICAgLy8gbGltaXQgbXVzdCBhbHNvIGJlIHNldCBoZXJlLCBpdCdzIGlnbm9yZWQgd2hlbiBwYWdpbmF0aW9uIGlzIGZhbHNlXG4gICAgcGFnaW5hdGlvbk9wdGlvbnMub3B0aW9ucy5saW1pdCA9IGxpbWl0XG5cbiAgICAvLyBEaXNhYmxlIHBhZ2luYXRpb24gaWYgbGltaXQgaXMgMFxuICAgIGlmIChsaW1pdCA9PT0gMCkge1xuICAgICAgcGFnaW5hdGlvbk9wdGlvbnMucGFnaW5hdGlvbiA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgTW9kZWwucGFnaW5hdGUocXVlcnksIHBhZ2luYXRpb25PcHRpb25zKVxuICBjb25zdCBkb2NzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXN1bHQuZG9jcykpXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5yZXN1bHQsXG4gICAgZG9jczogZG9jcy5tYXAoKGRvYykgPT4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG4gICAgICBkb2MuaWQgPSBkb2MuX2lkXG4gICAgICByZXR1cm4gc2FuaXRpemVJbnRlcm5hbEZpZWxkcyhkb2MpXG4gICAgfSksXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaW5kVmVyc2lvbnMiLCJjb2xsZWN0aW9uIiwibGltaXQiLCJsb2NhbGUiLCJwYWdlIiwicGFnaW5hdGlvbiIsInJlcSIsInNraXAiLCJzb3J0Iiwic29ydEFyZyIsIndoZXJlIiwiTW9kZWwiLCJ2ZXJzaW9ucyIsImNvbGxlY3Rpb25Db25maWciLCJwYXlsb2FkIiwiY29sbGVjdGlvbnMiLCJjb25maWciLCJvcHRpb25zIiwid2l0aFNlc3Npb24iLCJ0cmFuc2FjdGlvbklEIiwiaGFzTmVhckNvbnN0cmFpbnQiLCJjb25zdHJhaW50cyIsImZsYXR0ZW5XaGVyZVRvT3BlcmF0b3JzIiwic29tZSIsInByb3AiLCJPYmplY3QiLCJrZXlzIiwia2V5IiwiYnVpbGRTb3J0UGFyYW0iLCJmaWVsZHMiLCJ0aW1lc3RhbXBzIiwicXVlcnkiLCJidWlsZFF1ZXJ5IiwidXNlRXN0aW1hdGVkQ291bnQiLCJsZW5ndGgiLCJwYWdpbmF0aW9uT3B0aW9ucyIsImZvcmNlQ291bnRGbiIsImxlYW4iLCJsZWFuV2l0aElkIiwiZGlzYWJsZUluZGV4SGludHMiLCJ1c2VDdXN0b21Db3VudEZuIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjb3VudERvY3VtZW50cyIsImhpbnQiLCJfaWQiLCJyZXN1bHQiLCJwYWdpbmF0ZSIsImRvY3MiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJtYXAiLCJkb2MiLCJpZCIsInNhbml0aXplSW50ZXJuYWxGaWVsZHMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBWWFBOzs7ZUFBQUE7OzswQkFSMkI7Z0NBSVQ7K0VBQ0k7NkJBQ1A7Ozs7OztBQUVyQixNQUFNQSxlQUE2QixlQUFlQSxhQUV2RCxFQUNFQyxVQUFVLEVBQ1ZDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxJQUFJLEVBQ0pDLFVBQVUsRUFDVkMsTUFBTSxDQUFDLENBQW1CLEVBQzFCQyxJQUFJLEVBQ0pDLE1BQU1DLE9BQU8sRUFDYkMsS0FBSyxFQUNOO0lBRUQsTUFBTUMsUUFBUSxJQUFJLENBQUNDLFFBQVEsQ0FBQ1gsV0FBVztJQUN2QyxNQUFNWSxtQkFBbUIsSUFBSSxDQUFDQyxPQUFPLENBQUNDLFdBQVcsQ0FBQ2QsV0FBVyxDQUFDZSxNQUFNO0lBQ3BFLE1BQU1DLFVBQVU7UUFDZCxHQUFHQyxJQUFBQSx3QkFBVyxFQUFDLElBQUksRUFBRVosSUFBSWEsYUFBYSxDQUFDO1FBQ3ZDakI7UUFDQUs7SUFDRjtJQUVBLElBQUlhLG9CQUFvQjtJQUV4QixJQUFJVixPQUFPO1FBQ1QsTUFBTVcsY0FBY0MsSUFBQUEsaUNBQXVCLEVBQUNaO1FBQzVDVSxvQkFBb0JDLFlBQVlFLElBQUksQ0FBQyxDQUFDQyxPQUFTQyxPQUFPQyxJQUFJLENBQUNGLE1BQU1ELElBQUksQ0FBQyxDQUFDSSxNQUFRQSxRQUFRO0lBQ3pGO0lBRUEsSUFBSW5CO0lBQ0osSUFBSSxDQUFDWSxtQkFBbUI7UUFDdEJaLE9BQU9vQixJQUFBQSw4QkFBYyxFQUFDO1lBQ3BCWixRQUFRLElBQUksQ0FBQ0YsT0FBTyxDQUFDRSxNQUFNO1lBQzNCYSxRQUFRaEIsaUJBQWlCZ0IsTUFBTTtZQUMvQjFCO1lBQ0FLLE1BQU1DLFdBQVc7WUFDakJxQixZQUFZO1FBQ2Q7SUFDRjtJQUVBLE1BQU1DLFFBQVEsTUFBTXBCLE1BQU1xQixVQUFVLENBQUM7UUFDbkM3QjtRQUNBVyxTQUFTLElBQUksQ0FBQ0EsT0FBTztRQUNyQko7SUFDRjtJQUVBLDRIQUE0SDtJQUM1SCxNQUFNdUIsb0JBQW9CYixxQkFBcUIsQ0FBQ1csU0FBU04sT0FBT0MsSUFBSSxDQUFDSyxPQUFPRyxNQUFNLEtBQUs7SUFDdkYsTUFBTUMsb0JBQXFDO1FBQ3pDQyxjQUFjaEI7UUFDZGlCLE1BQU07UUFDTkMsWUFBWTtRQUNacEM7UUFDQWU7UUFDQWI7UUFDQUM7UUFDQUc7UUFDQXlCO0lBQ0Y7SUFFQSxJQUFJLENBQUNBLHFCQUFxQlIsT0FBT0MsSUFBSSxDQUFDSyxPQUFPRyxNQUFNLEtBQUssS0FBSyxJQUFJLENBQUNLLGlCQUFpQixLQUFLLE1BQU07UUFDNUYsbUhBQW1IO1FBQ25ILHFIQUFxSDtRQUNySCxtSEFBbUg7UUFDbkgsNEJBQTRCO1FBQzVCSixrQkFBa0JLLGdCQUFnQixHQUFHO1lBQ25DLE9BQU9DLFFBQVFDLE9BQU8sQ0FDcEIvQixNQUFNZ0MsY0FBYyxDQUFDWixPQUFPO2dCQUMxQixHQUFHZCxPQUFPO2dCQUNWMkIsTUFBTTtvQkFBRUMsS0FBSztnQkFBRTtZQUNqQjtRQUVKO0lBQ0Y7SUFFQSxJQUFJM0MsU0FBUyxHQUFHO1FBQ2RpQyxrQkFBa0JqQyxLQUFLLEdBQUdBO1FBQzFCLHFFQUFxRTtRQUNyRWlDLGtCQUFrQmxCLE9BQU8sQ0FBQ2YsS0FBSyxHQUFHQTtRQUVsQyxtQ0FBbUM7UUFDbkMsSUFBSUEsVUFBVSxHQUFHO1lBQ2ZpQyxrQkFBa0I5QixVQUFVLEdBQUc7UUFDakM7SUFDRjtJQUVBLE1BQU15QyxTQUFTLE1BQU1uQyxNQUFNb0MsUUFBUSxDQUFDaEIsT0FBT0k7SUFDM0MsTUFBTWEsT0FBT0MsS0FBS0MsS0FBSyxDQUFDRCxLQUFLRSxTQUFTLENBQUNMLE9BQU9FLElBQUk7SUFFbEQsT0FBTztRQUNMLEdBQUdGLE1BQU07UUFDVEUsTUFBTUEsS0FBS0ksR0FBRyxDQUFDLENBQUNDO1lBQ2QsNkNBQTZDO1lBQzdDQSxJQUFJQyxFQUFFLEdBQUdELElBQUlSLEdBQUc7WUFDaEIsT0FBT1UsSUFBQUEsK0JBQXNCLEVBQUNGO1FBQ2hDO0lBQ0Y7QUFDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,aAAa,EAAqB,MAAM,UAAU,CAAA;AAC9E,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAClF,OAAO,KAAK,EASV,KAAK,
|
|
1
|
+
{"version":3,"file":"buildSchema.d.ts","sourceRoot":"","sources":["../../src/models/buildSchema.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,aAAa,EAAqB,MAAM,UAAU,CAAA;AAC9E,OAAO,KAAK,EAAE,eAAe,EAA+B,MAAM,gBAAgB,CAAA;AAClF,OAAO,KAAK,EASV,KAAK,EAiBN,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAQjC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB,CAAA;AA0DD,QAAA,MAAM,WAAW,WACP,eAAe,gBACT,KAAK,EAAE,uBACD,kBAAkB,KACrC,MA+BF,CAAA;AAycD,eAAe,WAAW,CAAA"}
|
|
@@ -17,7 +17,7 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
|
|
|
17
17
|
required: false,
|
|
18
18
|
unique: !disableUnique && field.unique || false
|
|
19
19
|
};
|
|
20
|
-
if (schema.unique && (field.localized || draftsEnabled)) {
|
|
20
|
+
if (schema.unique && (field.localized || draftsEnabled || (0, _types.fieldAffectsData)(field) && field.type !== 'group' && field.type !== 'tab' && field.required !== true)) {
|
|
21
21
|
schema.sparse = true;
|
|
22
22
|
}
|
|
23
23
|
if (field.hidden) {
|
|
@@ -28,13 +28,13 @@ const formatBaseSchema = (field, buildSchemaOptions)=>{
|
|
|
28
28
|
const localizeSchema = (entity, schema, localization)=>{
|
|
29
29
|
if ((0, _types.fieldIsLocalized)(entity) && localization && Array.isArray(localization.locales)) {
|
|
30
30
|
return {
|
|
31
|
-
localized: true,
|
|
32
31
|
type: localization.localeCodes.reduce((localeSchema, locale)=>({
|
|
33
32
|
...localeSchema,
|
|
34
33
|
[locale]: schema
|
|
35
34
|
}), {
|
|
36
35
|
_id: false
|
|
37
|
-
})
|
|
36
|
+
}),
|
|
37
|
+
localized: true
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
return schema;
|
|
@@ -67,7 +67,6 @@ const fieldToSchemaMap = {
|
|
|
67
67
|
array: (field, schema, config, buildSchemaOptions)=>{
|
|
68
68
|
const baseSchema = {
|
|
69
69
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
70
|
-
default: undefined,
|
|
71
70
|
type: [
|
|
72
71
|
buildSchema(config, field.fields, {
|
|
73
72
|
allowIDField: true,
|
|
@@ -79,7 +78,8 @@ const fieldToSchemaMap = {
|
|
|
79
78
|
minimize: false
|
|
80
79
|
}
|
|
81
80
|
})
|
|
82
|
-
]
|
|
81
|
+
],
|
|
82
|
+
default: undefined
|
|
83
83
|
};
|
|
84
84
|
schema.add({
|
|
85
85
|
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
@@ -87,13 +87,13 @@ const fieldToSchemaMap = {
|
|
|
87
87
|
},
|
|
88
88
|
blocks: (field, schema, config, buildSchemaOptions)=>{
|
|
89
89
|
const fieldSchema = {
|
|
90
|
-
default: undefined,
|
|
91
90
|
type: [
|
|
92
91
|
new _mongoose.Schema({}, {
|
|
93
92
|
_id: false,
|
|
94
93
|
discriminatorKey: 'blockType'
|
|
95
94
|
})
|
|
96
|
-
]
|
|
95
|
+
],
|
|
96
|
+
default: undefined
|
|
97
97
|
};
|
|
98
98
|
schema.add({
|
|
99
99
|
[field.name]: localizeSchema(field, fieldSchema, config.localization)
|
|
@@ -112,12 +112,12 @@ const fieldToSchemaMap = {
|
|
|
112
112
|
if (field.localized && config.localization) {
|
|
113
113
|
config.localization.localeCodes.forEach((localeCode)=>{
|
|
114
114
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
115
|
-
// @ts-
|
|
115
|
+
// @ts-expect-error Possible incorrect typing in mongoose types, this works
|
|
116
116
|
schema.path(`${field.name}.${localeCode}`).discriminator(blockItem.slug, blockSchema);
|
|
117
117
|
});
|
|
118
118
|
} else {
|
|
119
119
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
120
|
-
// @ts-
|
|
120
|
+
// @ts-expect-error Possible incorrect typing in mongoose types, this works
|
|
121
121
|
schema.path(field.name).discriminator(blockItem.slug, blockSchema);
|
|
122
122
|
}
|
|
123
123
|
});
|
|
@@ -209,18 +209,18 @@ const fieldToSchemaMap = {
|
|
|
209
209
|
},
|
|
210
210
|
point: (field, schema, config, buildSchemaOptions)=>{
|
|
211
211
|
const baseSchema = {
|
|
212
|
-
coordinates: {
|
|
213
|
-
default: field.defaultValue || undefined,
|
|
214
|
-
required: false,
|
|
215
|
-
type: [
|
|
216
|
-
Number
|
|
217
|
-
]
|
|
218
|
-
},
|
|
219
212
|
type: {
|
|
213
|
+
type: String,
|
|
220
214
|
enum: [
|
|
221
215
|
'Point'
|
|
216
|
+
]
|
|
217
|
+
},
|
|
218
|
+
coordinates: {
|
|
219
|
+
type: [
|
|
220
|
+
Number
|
|
222
221
|
],
|
|
223
|
-
|
|
222
|
+
default: field.defaultValue || undefined,
|
|
223
|
+
required: false
|
|
224
224
|
}
|
|
225
225
|
};
|
|
226
226
|
if (buildSchemaOptions.disableUnique && field.unique && field.localized) {
|
|
@@ -251,11 +251,11 @@ const fieldToSchemaMap = {
|
|
|
251
251
|
radio: (field, schema, config, buildSchemaOptions)=>{
|
|
252
252
|
const baseSchema = {
|
|
253
253
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
254
|
+
type: String,
|
|
254
255
|
enum: field.options.map((option)=>{
|
|
255
256
|
if (typeof option === 'object') return option.value;
|
|
256
257
|
return option;
|
|
257
|
-
})
|
|
258
|
-
type: String
|
|
258
|
+
})
|
|
259
259
|
};
|
|
260
260
|
schema.add({
|
|
261
261
|
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
@@ -266,75 +266,75 @@ const fieldToSchemaMap = {
|
|
|
266
266
|
let schemaToReturn = {};
|
|
267
267
|
if (field.localized && config.localization) {
|
|
268
268
|
schemaToReturn = {
|
|
269
|
-
localized: true,
|
|
270
269
|
type: config.localization.localeCodes.reduce((locales, locale)=>{
|
|
271
270
|
let localeSchema = {};
|
|
272
271
|
if (hasManyRelations) {
|
|
273
272
|
localeSchema = {
|
|
274
273
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
275
274
|
_id: false,
|
|
275
|
+
type: _mongoose.Schema.Types.Mixed,
|
|
276
276
|
relationTo: {
|
|
277
|
-
|
|
278
|
-
|
|
277
|
+
type: String,
|
|
278
|
+
enum: field.relationTo
|
|
279
279
|
},
|
|
280
|
-
type: _mongoose.Schema.Types.Mixed,
|
|
281
280
|
value: {
|
|
282
|
-
|
|
283
|
-
|
|
281
|
+
type: _mongoose.Schema.Types.Mixed,
|
|
282
|
+
refPath: `${field.name}.${locale}.relationTo`
|
|
284
283
|
}
|
|
285
284
|
};
|
|
286
285
|
} else {
|
|
287
286
|
localeSchema = {
|
|
288
287
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
289
|
-
|
|
290
|
-
|
|
288
|
+
type: _mongoose.Schema.Types.Mixed,
|
|
289
|
+
ref: field.relationTo
|
|
291
290
|
};
|
|
292
291
|
}
|
|
293
292
|
return {
|
|
294
293
|
...locales,
|
|
295
294
|
[locale]: field.hasMany ? {
|
|
296
|
-
default: undefined,
|
|
297
295
|
type: [
|
|
298
296
|
localeSchema
|
|
299
|
-
]
|
|
297
|
+
],
|
|
298
|
+
default: undefined
|
|
300
299
|
} : localeSchema
|
|
301
300
|
};
|
|
302
|
-
}, {})
|
|
301
|
+
}, {}),
|
|
302
|
+
localized: true
|
|
303
303
|
};
|
|
304
304
|
} else if (hasManyRelations) {
|
|
305
305
|
schemaToReturn = {
|
|
306
306
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
307
307
|
_id: false,
|
|
308
|
+
type: _mongoose.Schema.Types.Mixed,
|
|
308
309
|
relationTo: {
|
|
309
|
-
|
|
310
|
-
|
|
310
|
+
type: String,
|
|
311
|
+
enum: field.relationTo
|
|
311
312
|
},
|
|
312
|
-
type: _mongoose.Schema.Types.Mixed,
|
|
313
313
|
value: {
|
|
314
|
-
|
|
315
|
-
|
|
314
|
+
type: _mongoose.Schema.Types.Mixed,
|
|
315
|
+
refPath: `${field.name}.relationTo`
|
|
316
316
|
}
|
|
317
317
|
};
|
|
318
318
|
if (field.hasMany) {
|
|
319
319
|
schemaToReturn = {
|
|
320
|
-
default: undefined,
|
|
321
320
|
type: [
|
|
322
321
|
schemaToReturn
|
|
323
|
-
]
|
|
322
|
+
],
|
|
323
|
+
default: undefined
|
|
324
324
|
};
|
|
325
325
|
}
|
|
326
326
|
} else {
|
|
327
327
|
schemaToReturn = {
|
|
328
328
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
329
|
-
|
|
330
|
-
|
|
329
|
+
type: _mongoose.Schema.Types.Mixed,
|
|
330
|
+
ref: field.relationTo
|
|
331
331
|
};
|
|
332
332
|
if (field.hasMany) {
|
|
333
333
|
schemaToReturn = {
|
|
334
|
-
default: undefined,
|
|
335
334
|
type: [
|
|
336
335
|
schemaToReturn
|
|
337
|
-
]
|
|
336
|
+
],
|
|
337
|
+
default: undefined
|
|
338
338
|
};
|
|
339
339
|
}
|
|
340
340
|
}
|
|
@@ -362,11 +362,11 @@ const fieldToSchemaMap = {
|
|
|
362
362
|
select: (field, schema, config, buildSchemaOptions)=>{
|
|
363
363
|
const baseSchema = {
|
|
364
364
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
365
|
+
type: String,
|
|
365
366
|
enum: field.options.map((option)=>{
|
|
366
367
|
if (typeof option === 'object') return option.value;
|
|
367
368
|
return option;
|
|
368
|
-
})
|
|
369
|
-
type: String
|
|
369
|
+
})
|
|
370
370
|
};
|
|
371
371
|
if (buildSchemaOptions.draftsEnabled || !field.required) {
|
|
372
372
|
baseSchema.enum.push(null);
|
|
@@ -427,8 +427,8 @@ const fieldToSchemaMap = {
|
|
|
427
427
|
upload: (field, schema, config, buildSchemaOptions)=>{
|
|
428
428
|
const baseSchema = {
|
|
429
429
|
...formatBaseSchema(field, buildSchemaOptions),
|
|
430
|
-
|
|
431
|
-
|
|
430
|
+
type: _mongoose.Schema.Types.Mixed,
|
|
431
|
+
ref: field.relationTo
|
|
432
432
|
};
|
|
433
433
|
schema.add({
|
|
434
434
|
[field.name]: localizeSchema(field, baseSchema, config.localization)
|
|
@@ -437,4 +437,4 @@ const fieldToSchemaMap = {
|
|
|
437
437
|
};
|
|
438
438
|
const _default = buildSchema;
|
|
439
439
|
|
|
440
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEluZGV4T3B0aW9ucywgU2NoZW1hT3B0aW9ucywgU2NoZW1hVHlwZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnLCBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2ssXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgQ29sbGFwc2libGVGaWVsZCxcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBGaWVsZCxcbiAgR3JvdXBGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFJvd0ZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGFic0ZpZWxkLFxuICBUZXh0RmllbGQsXG4gIFRleHRhcmVhRmllbGQsXG4gIFVwbG9hZEZpZWxkLFxufSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZEFmZmVjdGluZ0RhdGEsIE5vblByZXNlbnRhdGlvbmFsRmllbGQsIFRhYiwgVW5uYW1lZFRhYiB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IFNjaGVtYSB9IGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHtcbiAgZmllbGRBZmZlY3RzRGF0YSxcbiAgZmllbGRJc0xvY2FsaXplZCxcbiAgZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSxcbiAgdGFiSGFzTmFtZSxcbn0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuZXhwb3J0IHR5cGUgQnVpbGRTY2hlbWFPcHRpb25zID0ge1xuICBhbGxvd0lERmllbGQ/OiBib29sZWFuXG4gIGRpc2FibGVVbmlxdWU/OiBib29sZWFuXG4gIGRyYWZ0c0VuYWJsZWQ/OiBib29sZWFuXG4gIGluZGV4U29ydGFibGVGaWVsZHM/OiBib29sZWFuXG4gIG9wdGlvbnM/OiBTY2hlbWFPcHRpb25zXG59XG5cbnR5cGUgRmllbGRTY2hlbWFHZW5lcmF0b3IgPSAoXG4gIGZpZWxkOiBGaWVsZCxcbiAgc2NoZW1hOiBTY2hlbWEsXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbikgPT4gdm9pZFxuXG5jb25zdCBmb3JtYXRCYXNlU2NoZW1hID0gKGZpZWxkOiBGaWVsZEFmZmVjdGluZ0RhdGEsIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zKSA9PiB7XG4gIGNvbnN0IHsgZGlzYWJsZVVuaXF1ZSwgZHJhZnRzRW5hYmxlZCwgaW5kZXhTb3J0YWJsZUZpZWxkcyB9ID0gYnVpbGRTY2hlbWFPcHRpb25zXG4gIGNvbnN0IHNjaGVtYTogU2NoZW1hVHlwZU9wdGlvbnM8dW5rbm93bj4gPSB7XG4gICAgaW5kZXg6IGZpZWxkLmluZGV4IHx8ICghZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHx8IGluZGV4U29ydGFibGVGaWVsZHMgfHwgZmFsc2UsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIHVuaXF1ZTogKCFkaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkgfHwgZmFsc2UsXG4gIH1cblxuICBpZiAoc2NoZW1hLnVuaXF1ZSAmJiAoZmllbGQubG9jYWxpemVkIHx8IGRyYWZ0c0VuYWJsZWQpKSB7XG4gICAgc2NoZW1hLnNwYXJzZSA9IHRydWVcbiAgfVxuXG4gIGlmIChmaWVsZC5oaWRkZW4pIHtcbiAgICBzY2hlbWEuaGlkZGVuID0gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBsb2NhbGl6ZVNjaGVtYSA9IChcbiAgZW50aXR5OiBOb25QcmVzZW50YXRpb25hbEZpZWxkIHwgVGFiLFxuICBzY2hlbWEsXG4gIGxvY2FsaXphdGlvbjogU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2UsXG4pID0+IHtcbiAgaWYgKGZpZWxkSXNMb2NhbGl6ZWQoZW50aXR5KSAmJiBsb2NhbGl6YXRpb24gJiYgQXJyYXkuaXNBcnJheShsb2NhbGl6YXRpb24ubG9jYWxlcykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgdHlwZTogbG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLnJlZHVjZShcbiAgICAgICAgKGxvY2FsZVNjaGVtYSwgbG9jYWxlKSA9PiAoe1xuICAgICAgICAgIC4uLmxvY2FsZVNjaGVtYSxcbiAgICAgICAgICBbbG9jYWxlXTogc2NoZW1hLFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICApLFxuICAgIH1cbiAgfVxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGJ1aWxkU2NoZW1hID0gKFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgY29uZmlnRmllbGRzOiBGaWVsZFtdLFxuICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyA9IHt9LFxuKTogU2NoZW1hID0+IHtcbiAgY29uc3QgeyBhbGxvd0lERmllbGQsIG9wdGlvbnMgfSA9IGJ1aWxkU2NoZW1hT3B0aW9uc1xuICBsZXQgZmllbGRzID0ge31cblxuICBsZXQgc2NoZW1hRmllbGRzID0gY29uZmlnRmllbGRzXG5cbiAgaWYgKCFhbGxvd0lERmllbGQpIHtcbiAgICBjb25zdCBpZEZpZWxkID0gc2NoZW1hRmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuICAgIGlmIChpZEZpZWxkKSB7XG4gICAgICBmaWVsZHMgPSB7XG4gICAgICAgIF9pZDogaWRGaWVsZC50eXBlID09PSAnbnVtYmVyJyA/IE51bWJlciA6IFN0cmluZyxcbiAgICAgIH1cbiAgICAgIHNjaGVtYUZpZWxkcyA9IHNjaGVtYUZpZWxkcy5maWx0ZXIoXG4gICAgICAgIChmaWVsZCkgPT4gIShmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKSxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBjb25zdCBzY2hlbWEgPSBuZXcgU2NoZW1hKGZpZWxkcywgb3B0aW9ucylcblxuICBzY2hlbWFGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICBpZiAoIWZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkoZmllbGQpKSB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW2ZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShmaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBmaWVsZFRvU2NoZW1hTWFwOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZFNjaGVtYUdlbmVyYXRvcj4gPSB7XG4gIGFycmF5OiAoXG4gICAgZmllbGQ6IEFycmF5RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICkgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgdHlwZTogW1xuICAgICAgICBidWlsZFNjaGVtYShjb25maWcsIGZpZWxkLmZpZWxkcywge1xuICAgICAgICAgIGFsbG93SURGaWVsZDogdHJ1ZSxcbiAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICBkcmFmdHNFbmFibGVkOiBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZCxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgaWQ6IGZhbHNlLFxuICAgICAgICAgICAgbWluaW1pemU6IGZhbHNlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGJsb2NrczogKFxuICAgIGZpZWxkOiBCbG9ja0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBmaWVsZFNjaGVtYSA9IHtcbiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgIHR5cGU6IFtuZXcgU2NoZW1hKHt9LCB7IF9pZDogZmFsc2UsIGRpc2NyaW1pbmF0b3JLZXk6ICdibG9ja1R5cGUnIH0pXSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGZpZWxkU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuXG4gICAgZmllbGQuYmxvY2tzLmZvckVhY2goKGJsb2NrSXRlbTogQmxvY2spID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrU2NoZW1hID0gbmV3IFNjaGVtYSh7fSwgeyBfaWQ6IGZhbHNlLCBpZDogZmFsc2UgfSlcblxuICAgICAgYmxvY2tJdGVtLmZpZWxkcy5mb3JFYWNoKChibG9ja0ZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbYmxvY2tGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICBhZGRGaWVsZFNjaGVtYShibG9ja0ZpZWxkLCBibG9ja1NjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLmZvckVhY2goKGxvY2FsZUNvZGUpID0+IHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZSBQb3NzaWJsZSBpbmNvcnJlY3QgdHlwaW5nIGluIG1vbmdvb3NlIHR5cGVzLCB0aGlzIHdvcmtzXG4gICAgICAgICAgc2NoZW1hLnBhdGgoYCR7ZmllbGQubmFtZX0uJHtsb2NhbGVDb2RlfWApLmRpc2NyaW1pbmF0b3IoYmxvY2tJdGVtLnNsdWcsIGJsb2NrU2NoZW1hKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlIFBvc3NpYmxlIGluY29ycmVjdCB0eXBpbmcgaW4gbW9uZ29vc2UgdHlwZXMsIHRoaXMgd29ya3NcbiAgICAgICAgc2NoZW1hLnBhdGgoZmllbGQubmFtZSkuZGlzY3JpbWluYXRvcihibG9ja0l0ZW0uc2x1ZywgYmxvY2tTY2hlbWEpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgY2hlY2tib3g6IChcbiAgICBmaWVsZDogQ2hlY2tib3hGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogQm9vbGVhbiB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGNvZGU6IChcbiAgICBmaWVsZDogQ29kZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2xsYXBzaWJsZTogKFxuICAgIGZpZWxkOiBDb2xsYXBzaWJsZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBkYXRlOiAoXG4gICAgZmllbGQ6IERhdGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogRGF0ZSB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGVtYWlsOiAoXG4gICAgZmllbGQ6IEVtYWlsRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGdyb3VwOiAoXG4gICAgZmllbGQ6IEdyb3VwRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGZvcm1hdHRlZEJhc2VTY2hlbWEgPSBmb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpXG5cbiAgICAvLyBjYXJyeSBpbmRleFNvcnRhYmxlRmllbGRzIHRocm91Z2ggdG8gdmVyc2lvbnMgaWYgZHJhZnRzIGVuYWJsZWRcbiAgICBjb25zdCBpbmRleFNvcnRhYmxlRmllbGRzID1cbiAgICAgIGJ1aWxkU2NoZW1hT3B0aW9ucy5pbmRleFNvcnRhYmxlRmllbGRzICYmXG4gICAgICBmaWVsZC5uYW1lID09PSAndmVyc2lvbicgJiZcbiAgICAgIGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkXG5cbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0dGVkQmFzZVNjaGVtYSxcbiAgICAgIHR5cGU6IGJ1aWxkU2NoZW1hKGNvbmZpZywgZmllbGQuZmllbGRzLCB7XG4gICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICBkcmFmdHNFbmFibGVkOiBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZCxcbiAgICAgICAgaW5kZXhTb3J0YWJsZUZpZWxkcyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgaWQ6IGZhbHNlLFxuICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAganNvbjogKFxuICAgIGZpZWxkOiBKU09ORmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIG51bWJlcjogKFxuICAgIGZpZWxkOiBOdW1iZXJGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW051bWJlcl0gOiBOdW1iZXIsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBwb2ludDogKFxuICAgIGZpZWxkOiBQb2ludEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICAgIGNvb3JkaW5hdGVzOiB7XG4gICAgICAgIGRlZmF1bHQ6IGZpZWxkLmRlZmF1bHRWYWx1ZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgdHlwZTogW051bWJlcl0sXG4gICAgICB9LFxuICAgICAgdHlwZToge1xuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXG4gICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUgJiYgZmllbGQubG9jYWxpemVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmNvb3JkaW5hdGVzLnNwYXJzZSA9IHRydWVcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBpZiAoZmllbGQuaW5kZXggPT09IHRydWUgfHwgZmllbGQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaW5kZXhPcHRpb25zOiBJbmRleE9wdGlvbnMgPSB7fVxuICAgICAgaWYgKCFidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgaW5kZXhPcHRpb25zLnNwYXJzZSA9IHRydWVcbiAgICAgICAgaW5kZXhPcHRpb25zLnVuaXF1ZSA9IHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZXMuZm9yRWFjaCgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgc2NoZW1hLmluZGV4KHsgW2Ake2ZpZWxkLm5hbWV9LiR7bG9jYWxlfWBdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYS5pbmRleCh7IFtmaWVsZC5uYW1lXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9LFxuICByYWRpbzogKFxuICAgIGZpZWxkOiBSYWRpb0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiAoXG4gICAgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBoYXNNYW55UmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKVxuICAgIGxldCBzY2hlbWFUb1JldHVybjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgICAgIHR5cGU6IGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKChsb2NhbGVzLCBsb2NhbGUpID0+IHtcbiAgICAgICAgICBsZXQgbG9jYWxlU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgIGlmIChoYXNNYW55UmVsYXRpb25zKSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGF0aW9uVG86IHsgZW51bTogZmllbGQucmVsYXRpb25UbywgdHlwZTogU3RyaW5nIH0sXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICByZWZQYXRoOiBgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgICAgICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5sb2NhbGVzLFxuICAgICAgICAgICAgW2xvY2FsZV06IGZpZWxkLmhhc01hbnkgPyB7IGRlZmF1bHQ6IHVuZGVmaW5lZCwgdHlwZTogW2xvY2FsZVNjaGVtYV0gfSA6IGxvY2FsZVNjaGVtYSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGhhc01hbnlSZWxhdGlvbnMpIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICByZWxhdGlvblRvOiB7IGVudW06IGZpZWxkLnJlbGF0aW9uVG8sIHR5cGU6IFN0cmluZyB9LFxuICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICAgICAgdHlwZTogW3NjaGVtYVRvUmV0dXJuXSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICB0eXBlOiBbc2NoZW1hVG9SZXR1cm5dLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IHNjaGVtYVRvUmV0dXJuLFxuICAgIH0pXG4gIH0sXG4gIHJpY2hUZXh0OiAoXG4gICAgZmllbGQ6IFJpY2hUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHJvdzogKFxuICAgIGZpZWxkOiBSb3dGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgc2VsZWN0OiAoXG4gICAgZmllbGQ6IFNlbGVjdEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgIH1cblxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZCB8fCAhZmllbGQucmVxdWlyZWQpIHtcbiAgICAgIGJhc2VTY2hlbWEuZW51bS5wdXNoKG51bGwpXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgZmllbGQuaGFzTWFueSA/IFtiYXNlU2NoZW1hXSA6IGJhc2VTY2hlbWEsXG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24sXG4gICAgICApLFxuICAgIH0pXG4gIH0sXG4gIHRhYnM6IChcbiAgICBmaWVsZDogVGFic0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgaWYgKHRhYkhhc05hbWUodGFiKSkge1xuICAgICAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgICAgIHR5cGU6IGJ1aWxkU2NoZW1hKGNvbmZpZywgdGFiLmZpZWxkcywge1xuICAgICAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgICBkcmFmdHNFbmFibGVkOiBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgICAgaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9XG5cbiAgICAgICAgc2NoZW1hLmFkZCh7XG4gICAgICAgICAgW3RhYi5uYW1lXTogbG9jYWxpemVTY2hlbWEodGFiLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYi5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgdGV4dDogKFxuICAgIGZpZWxkOiBUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogZmllbGQuaGFzTWFueSA/IFtTdHJpbmddIDogU3RyaW5nLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgdGV4dGFyZWE6IChcbiAgICBmaWVsZDogVGV4dGFyZWFGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgdXBsb2FkOiAoXG4gICAgZmllbGQ6IFVwbG9hZEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkU2NoZW1hXG4iXSwibmFtZXMiOlsiZm9ybWF0QmFzZVNjaGVtYSIsImZpZWxkIiwiYnVpbGRTY2hlbWFPcHRpb25zIiwiZGlzYWJsZVVuaXF1ZSIsImRyYWZ0c0VuYWJsZWQiLCJpbmRleFNvcnRhYmxlRmllbGRzIiwic2NoZW1hIiwiaW5kZXgiLCJ1bmlxdWUiLCJyZXF1aXJlZCIsImxvY2FsaXplZCIsInNwYXJzZSIsImhpZGRlbiIsImxvY2FsaXplU2NoZW1hIiwiZW50aXR5IiwibG9jYWxpemF0aW9uIiwiZmllbGRJc0xvY2FsaXplZCIsIkFycmF5IiwiaXNBcnJheSIsImxvY2FsZXMiLCJ0eXBlIiwibG9jYWxlQ29kZXMiLCJyZWR1Y2UiLCJsb2NhbGVTY2hlbWEiLCJsb2NhbGUiLCJfaWQiLCJidWlsZFNjaGVtYSIsImNvbmZpZyIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwiTnVtYmVyIiwiU3RyaW5nIiwiZmlsdGVyIiwiU2NoZW1hIiwiZm9yRWFjaCIsImZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkiLCJhZGRGaWVsZFNjaGVtYSIsImZpZWxkVG9TY2hlbWFNYXAiLCJhcnJheSIsImJhc2VTY2hlbWEiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwiaWQiLCJtaW5pbWl6ZSIsImFkZCIsImJsb2NrcyIsImZpZWxkU2NoZW1hIiwiZGlzY3JpbWluYXRvcktleSIsImJsb2NrSXRlbSIsImJsb2NrU2NoZW1hIiwiYmxvY2tGaWVsZCIsImxvY2FsZUNvZGUiLCJwYXRoIiwiZGlzY3JpbWluYXRvciIsInNsdWciLCJjaGVja2JveCIsIkJvb2xlYW4iLCJjb2RlIiwiY29sbGFwc2libGUiLCJzdWJGaWVsZCIsImRhdGUiLCJEYXRlIiwiZW1haWwiLCJncm91cCIsImZvcm1hdHRlZEJhc2VTY2hlbWEiLCJqc29uIiwiVHlwZXMiLCJNaXhlZCIsIm51bWJlciIsImhhc01hbnkiLCJwb2ludCIsImNvb3JkaW5hdGVzIiwiZGVmYXVsdFZhbHVlIiwiZW51bSIsImluZGV4T3B0aW9ucyIsInJhZGlvIiwibWFwIiwib3B0aW9uIiwidmFsdWUiLCJyZWxhdGlvbnNoaXAiLCJoYXNNYW55UmVsYXRpb25zIiwicmVsYXRpb25UbyIsInNjaGVtYVRvUmV0dXJuIiwicmVmUGF0aCIsInJlZiIsInJpY2hUZXh0Iiwicm93Iiwic2VsZWN0IiwicHVzaCIsInRhYnMiLCJ0YWIiLCJ0YWJIYXNOYW1lIiwidGV4dCIsInRleHRhcmVhIiwidXBsb2FkIl0sIm1hcHBpbmdzIjoiQUFB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
|
|
440
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEluZGV4T3B0aW9ucywgU2NoZW1hT3B0aW9ucywgU2NoZW1hVHlwZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnLCBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2ssXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgQ29sbGFwc2libGVGaWVsZCxcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBGaWVsZCxcbiAgRmllbGRBZmZlY3RpbmdEYXRhLFxuICBHcm91cEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE5vblByZXNlbnRhdGlvbmFsRmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWIsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgU2NoZW1hIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQge1xuICBmaWVsZEFmZmVjdHNEYXRhLFxuICBmaWVsZElzTG9jYWxpemVkLFxuICBmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5LFxuICB0YWJIYXNOYW1lLFxufSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7XG4gIGFsbG93SURGaWVsZD86IGJvb2xlYW5cbiAgZGlzYWJsZVVuaXF1ZT86IGJvb2xlYW5cbiAgZHJhZnRzRW5hYmxlZD86IGJvb2xlYW5cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgb3B0aW9ucz86IFNjaGVtYU9wdGlvbnNcbn1cblxudHlwZSBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IChcbiAgZmllbGQ6IEZpZWxkLFxuICBzY2hlbWE6IFNjaGVtYSxcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuKSA9PiB2b2lkXG5cbmNvbnN0IGZvcm1hdEJhc2VTY2hlbWEgPSAoZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSwgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMpID0+IHtcbiAgY29uc3QgeyBkaXNhYmxlVW5pcXVlLCBkcmFmdHNFbmFibGVkLCBpbmRleFNvcnRhYmxlRmllbGRzIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgY29uc3Qgc2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICBpbmRleDogZmllbGQuaW5kZXggfHwgKCFkaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkgfHwgaW5kZXhTb3J0YWJsZUZpZWxkcyB8fCBmYWxzZSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgdW5pcXVlOiAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBmYWxzZSxcbiAgfVxuXG4gIGlmIChcbiAgICBzY2hlbWEudW5pcXVlICYmXG4gICAgKGZpZWxkLmxvY2FsaXplZCB8fFxuICAgICAgZHJhZnRzRW5hYmxlZCB8fFxuICAgICAgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmXG4gICAgICAgIGZpZWxkLnR5cGUgIT09ICdncm91cCcgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ3RhYicgJiZcbiAgICAgICAgZmllbGQucmVxdWlyZWQgIT09IHRydWUpKVxuICApIHtcbiAgICBzY2hlbWEuc3BhcnNlID0gdHJ1ZVxuICB9XG5cbiAgaWYgKGZpZWxkLmhpZGRlbikge1xuICAgIHNjaGVtYS5oaWRkZW4gPSB0cnVlXG4gIH1cblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGxvY2FsaXplU2NoZW1hID0gKFxuICBlbnRpdHk6IE5vblByZXNlbnRhdGlvbmFsRmllbGQgfCBUYWIsXG4gIHNjaGVtYSxcbiAgbG9jYWxpemF0aW9uOiBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZSxcbikgPT4ge1xuICBpZiAoZmllbGRJc0xvY2FsaXplZChlbnRpdHkpICYmIGxvY2FsaXphdGlvbiAmJiBBcnJheS5pc0FycmF5KGxvY2FsaXphdGlvbi5sb2NhbGVzKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBsb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKFxuICAgICAgICAobG9jYWxlU2NoZW1hLCBsb2NhbGUpID0+ICh7XG4gICAgICAgICAgLi4ubG9jYWxlU2NoZW1hLFxuICAgICAgICAgIFtsb2NhbGVdOiBzY2hlbWEsXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgfVxuICB9XG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgYnVpbGRTY2hlbWEgPSAoXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBjb25maWdGaWVsZHM6IEZpZWxkW10sXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zID0ge30sXG4pOiBTY2hlbWEgPT4ge1xuICBjb25zdCB7IGFsbG93SURGaWVsZCwgb3B0aW9ucyB9ID0gYnVpbGRTY2hlbWFPcHRpb25zXG4gIGxldCBmaWVsZHMgPSB7fVxuXG4gIGxldCBzY2hlbWFGaWVsZHMgPSBjb25maWdGaWVsZHNcblxuICBpZiAoIWFsbG93SURGaWVsZCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBzY2hlbWFGaWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG4gICAgaWYgKGlkRmllbGQpIHtcbiAgICAgIGZpZWxkcyA9IHtcbiAgICAgICAgX2lkOiBpZEZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gTnVtYmVyIDogU3RyaW5nLFxuICAgICAgfVxuICAgICAgc2NoZW1hRmllbGRzID0gc2NoZW1hRmllbGRzLmZpbHRlcihcbiAgICAgICAgKGZpZWxkKSA9PiAhKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNjaGVtYSA9IG5ldyBTY2hlbWEoZmllbGRzLCBvcHRpb25zKVxuXG4gIHNjaGVtYUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmICghZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZCkpIHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKGZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGZpZWxkVG9TY2hlbWFNYXA6IFJlY29yZDxzdHJpbmcsIEZpZWxkU2NoZW1hR2VuZXJhdG9yPiA9IHtcbiAgYXJyYXk6IChcbiAgICBmaWVsZDogQXJyYXlGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKSA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBbXG4gICAgICAgIGJ1aWxkU2NoZW1hKGNvbmZpZywgZmllbGQuZmllbGRzLCB7XG4gICAgICAgICAgYWxsb3dJREZpZWxkOiB0cnVlLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgYmxvY2tzOiAoXG4gICAgZmllbGQ6IEJsb2NrRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGZpZWxkU2NoZW1hID0ge1xuICAgICAgdHlwZTogW25ldyBTY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgZGlzY3JpbWluYXRvcktleTogJ2Jsb2NrVHlwZScgfSldLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgZmllbGRTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBmaWVsZC5ibG9ja3MuZm9yRWFjaCgoYmxvY2tJdGVtOiBCbG9jaykgPT4ge1xuICAgICAgY29uc3QgYmxvY2tTY2hlbWEgPSBuZXcgU2NoZW1hKHt9LCB7IF9pZDogZmFsc2UsIGlkOiBmYWxzZSB9KVxuXG4gICAgICBibG9ja0l0ZW0uZmllbGRzLmZvckVhY2goKGJsb2NrRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtibG9ja0ZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKGJsb2NrRmllbGQsIGJsb2NrU2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMuZm9yRWFjaCgobG9jYWxlQ29kZSkgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFBvc3NpYmxlIGluY29ycmVjdCB0eXBpbmcgaW4gbW9uZ29vc2UgdHlwZXMsIHRoaXMgd29ya3NcbiAgICAgICAgICBzY2hlbWEucGF0aChgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZUNvZGV9YCkuZGlzY3JpbWluYXRvcihibG9ja0l0ZW0uc2x1ZywgYmxvY2tTY2hlbWEpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICBzY2hlbWEucGF0aChmaWVsZC5uYW1lKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBjaGVja2JveDogKFxuICAgIGZpZWxkOiBDaGVja2JveEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBCb29sZWFuIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29kZTogKFxuICAgIGZpZWxkOiBDb2RlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGNvbGxhcHNpYmxlOiAoXG4gICAgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGRhdGU6IChcbiAgICBmaWVsZDogRGF0ZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBEYXRlIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZW1haWw6IChcbiAgICBmaWVsZDogRW1haWxGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZ3JvdXA6IChcbiAgICBmaWVsZDogR3JvdXBGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZm9ybWF0dGVkQmFzZVNjaGVtYSA9IGZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucylcblxuICAgIC8vIGNhcnJ5IGluZGV4U29ydGFibGVGaWVsZHMgdGhyb3VnaCB0byB2ZXJzaW9ucyBpZiBkcmFmdHMgZW5hYmxlZFxuICAgIGNvbnN0IGluZGV4U29ydGFibGVGaWVsZHMgPVxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmluZGV4U29ydGFibGVGaWVsZHMgJiZcbiAgICAgIGZpZWxkLm5hbWUgPT09ICd2ZXJzaW9uJyAmJlxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWRcblxuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXR0ZWRCYXNlU2NoZW1hLFxuICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICBpbmRleFNvcnRhYmxlRmllbGRzLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgbWluaW1pemU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBqc29uOiAoXG4gICAgZmllbGQ6IEpTT05GaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgbnVtYmVyOiAoXG4gICAgZmllbGQ6IE51bWJlckZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IGZpZWxkLmhhc01hbnkgPyBbTnVtYmVyXSA6IE51bWJlcixcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHBvaW50OiAoXG4gICAgZmllbGQ6IFBvaW50RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgICAgdHlwZToge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIGVudW06IFsnUG9pbnQnXSxcbiAgICAgIH0sXG4gICAgICBjb29yZGluYXRlczoge1xuICAgICAgICB0eXBlOiBbTnVtYmVyXSxcbiAgICAgICAgZGVmYXVsdDogZmllbGQuZGVmYXVsdFZhbHVlIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9XG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSAmJiBmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgIGJhc2VTY2hlbWEuY29vcmRpbmF0ZXMuc3BhcnNlID0gdHJ1ZVxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGlmIChmaWVsZC5pbmRleCA9PT0gdHJ1ZSB8fCBmaWVsZC5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpbmRleE9wdGlvbnM6IEluZGV4T3B0aW9ucyA9IHt9XG4gICAgICBpZiAoIWJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkge1xuICAgICAgICBpbmRleE9wdGlvbnMuc3BhcnNlID0gdHJ1ZVxuICAgICAgICBpbmRleE9wdGlvbnMudW5pcXVlID0gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlcy5mb3JFYWNoKChsb2NhbGUpID0+IHtcbiAgICAgICAgICBzY2hlbWEuaW5kZXgoeyBbYCR7ZmllbGQubmFtZX0uJHtsb2NhbGV9YF06ICcyZHNwaGVyZScgfSwgaW5kZXhPcHRpb25zKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NoZW1hLmluZGV4KHsgW2ZpZWxkLm5hbWVdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHJhZGlvOiAoXG4gICAgZmllbGQ6IFJhZGlvRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICByZWxhdGlvbnNoaXA6IChcbiAgICBmaWVsZDogUmVsYXRpb25zaGlwRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICkgPT4ge1xuICAgIGNvbnN0IGhhc01hbnlSZWxhdGlvbnMgPSBBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pXG4gICAgbGV0IHNjaGVtYVRvUmV0dXJuOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIHR5cGU6IGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKChsb2NhbGVzLCBsb2NhbGUpID0+IHtcbiAgICAgICAgICBsZXQgbG9jYWxlU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgIGlmIChoYXNNYW55UmVsYXRpb25zKSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0uJHtsb2NhbGV9LnJlbGF0aW9uVG9gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5sb2NhbGVzLFxuICAgICAgICAgICAgW2xvY2FsZV06IGZpZWxkLmhhc01hbnkgPyB7IHR5cGU6IFtsb2NhbGVTY2hlbWFdLCBkZWZhdWx0OiB1bmRlZmluZWQgfSA6IGxvY2FsZVNjaGVtYSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgICAgdHlwZTogW3NjaGVtYVRvUmV0dXJuXSxcbiAgICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogc2NoZW1hVG9SZXR1cm4sXG4gICAgfSlcbiAgfSxcbiAgcmljaFRleHQ6IChcbiAgICBmaWVsZDogUmljaFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwiZmllbGRBZmZlY3RzRGF0YSIsInR5cGUiLCJzcGFyc2UiLCJoaWRkZW4iLCJsb2NhbGl6ZVNjaGVtYSIsImVudGl0eSIsImxvY2FsaXphdGlvbiIsImZpZWxkSXNMb2NhbGl6ZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsb2NhbGVzIiwibG9jYWxlQ29kZXMiLCJyZWR1Y2UiLCJsb2NhbGVTY2hlbWEiLCJsb2NhbGUiLCJfaWQiLCJidWlsZFNjaGVtYSIsImNvbmZpZyIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsIm5hbWUiLCJOdW1iZXIiLCJTdHJpbmciLCJmaWx0ZXIiLCJTY2hlbWEiLCJmb3JFYWNoIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsImFkZEZpZWxkU2NoZW1hIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiYmFzZVNjaGVtYSIsImlkIiwibWluaW1pemUiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwiYWRkIiwiYmxvY2tzIiwiZmllbGRTY2hlbWEiLCJkaXNjcmltaW5hdG9yS2V5IiwiYmxvY2tJdGVtIiwiYmxvY2tTY2hlbWEiLCJibG9ja0ZpZWxkIiwibG9jYWxlQ29kZSIsInBhdGgiLCJkaXNjcmltaW5hdG9yIiwic2x1ZyIsImNoZWNrYm94IiwiQm9vbGVhbiIsImNvZGUiLCJjb2xsYXBzaWJsZSIsInN1YkZpZWxkIiwiZGF0ZSIsIkRhdGUiLCJlbWFpbCIsImdyb3VwIiwiZm9ybWF0dGVkQmFzZVNjaGVtYSIsImpzb24iLCJUeXBlcyIsIk1peGVkIiwibnVtYmVyIiwiaGFzTWFueSIsInBvaW50IiwiZW51bSIsImNvb3JkaW5hdGVzIiwiZGVmYXVsdFZhbHVlIiwiaW5kZXhPcHRpb25zIiwicmFkaW8iLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsInJlbGF0aW9uc2hpcCIsImhhc01hbnlSZWxhdGlvbnMiLCJyZWxhdGlvblRvIiwic2NoZW1hVG9SZXR1cm4iLCJyZWZQYXRoIiwicmVmIiwicmljaFRleHQiLCJyb3ciLCJzZWxlY3QiLCJwdXNoIiwidGFicyIsInRhYiIsInRhYkhhc05hbWUiLCJ0ZXh0IiwidGV4dGFyZWEiLCJ1cGxvYWQiXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRCxHQUNwRCx5Q0FBeUMsR0FDekMsMERBQTBELEdBQzFELHVDQUF1Qzs7OzsrQkFtbEJ2Qzs7O2VBQUE7OzswQkFwakJ1Qjt1QkFNaEI7QUFpQlAsTUFBTUEsbUJBQW1CLENBQUNDLE9BQTJCQztJQUNuRCxNQUFNLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxtQkFBbUIsRUFBRSxHQUFHSDtJQUM5RCxNQUFNSSxTQUFxQztRQUN6Q0MsT0FBT04sTUFBTU0sS0FBSyxJQUFLLENBQUNKLGlCQUFpQkYsTUFBTU8sTUFBTSxJQUFLSCx1QkFBdUI7UUFDakZJLFVBQVU7UUFDVkQsUUFBUSxBQUFDLENBQUNMLGlCQUFpQkYsTUFBTU8sTUFBTSxJQUFLO0lBQzlDO0lBRUEsSUFDRUYsT0FBT0UsTUFBTSxJQUNaUCxDQUFBQSxNQUFNUyxTQUFTLElBQ2ROLGlCQUNDTyxJQUFBQSx1QkFBZ0IsRUFBQ1YsVUFDaEJBLE1BQU1XLElBQUksS0FBSyxXQUNmWCxNQUFNVyxJQUFJLEtBQUssU0FDZlgsTUFBTVEsUUFBUSxLQUFLLElBQUksR0FDM0I7UUFDQUgsT0FBT08sTUFBTSxHQUFHO0lBQ2xCO0lBRUEsSUFBSVosTUFBTWEsTUFBTSxFQUFFO1FBQ2hCUixPQUFPUSxNQUFNLEdBQUc7SUFDbEI7SUFFQSxPQUFPUjtBQUNUO0FBRUEsTUFBTVMsaUJBQWlCLENBQ3JCQyxRQUNBVixRQUNBVztJQUVBLElBQUlDLElBQUFBLHVCQUFnQixFQUFDRixXQUFXQyxnQkFBZ0JFLE1BQU1DLE9BQU8sQ0FBQ0gsYUFBYUksT0FBTyxHQUFHO1FBQ25GLE9BQU87WUFDTFQsTUFBTUssYUFBYUssV0FBVyxDQUFDQyxNQUFNLENBQ25DLENBQUNDLGNBQWNDLFNBQVksQ0FBQTtv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
|
package/dist/testCredentials.js
CHANGED
|
@@ -9,14 +9,14 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
connection: function() {
|
|
13
|
+
return connection;
|
|
14
|
+
},
|
|
12
15
|
email: function() {
|
|
13
16
|
return email;
|
|
14
17
|
},
|
|
15
18
|
password: function() {
|
|
16
19
|
return password;
|
|
17
|
-
},
|
|
18
|
-
connection: function() {
|
|
19
|
-
return connection;
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
const email = 'test@test.com';
|
|
@@ -27,4 +27,4 @@ const connection = {
|
|
|
27
27
|
url: 'mongodb://127.0.0.1'
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXN0Q3JlZGVudGlhbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVtYWlsID0gJ3Rlc3RAdGVzdC5jb20nXG5leHBvcnQgY29uc3QgcGFzc3dvcmQgPSAndGVzdDEyMydcbmV4cG9ydCBjb25zdCBjb25uZWN0aW9uID0ge1xuICBuYW1lOiAncGF5bG9hZG1lbW9yeScsXG4gIHBvcnQ6IDI3MDE4LFxuICB1cmw6ICdtb25nb2RiOi8vMTI3LjAuMC4xJyxcbn1cbiJdLCJuYW1lcyI6WyJjb25uZWN0aW9uIiwiZW1haWwiLCJwYXNzd29yZCIsIm5hbWUiLCJwb3J0IiwidXJsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUVhQSxVQUFVO2VBQVZBOztJQUZBQyxLQUFLO2VBQUxBOztJQUNBQyxRQUFRO2VBQVJBOzs7QUFETixNQUFNRCxRQUFRO0FBQ2QsTUFBTUMsV0FBVztBQUNqQixNQUFNRixhQUFhO0lBQ3hCRyxNQUFNO0lBQ05DLE1BQU07SUFDTkMsS0FBSztBQUNQIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollbackTransaction.d.ts","sourceRoot":"","sources":["../../src/transactions/rollbackTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,eAAO,MAAM,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"rollbackTransaction.d.ts","sourceRoot":"","sources":["../../src/transactions/rollbackTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,eAAO,MAAM,mBAAmB,EAAE,mBAwBjC,CAAA"}
|
|
@@ -21,9 +21,13 @@ const rollbackTransaction = async function rollbackTransaction(id = '') {
|
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
23
|
// the first call for rollback should be aborted and deleted causing any other operations with the same transaction to fail
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
try {
|
|
25
|
+
await this.sessions[id].abortTransaction();
|
|
26
|
+
await this.sessions[id].endSession();
|
|
27
|
+
} catch (error) {
|
|
28
|
+
// ignore the error as it is likely a race condition from multiple errors
|
|
29
|
+
}
|
|
26
30
|
delete this.sessions[id];
|
|
27
31
|
};
|
|
28
32
|
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2FjdGlvbnMvcm9sbGJhY2tUcmFuc2FjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJvbGxiYWNrVHJhbnNhY3Rpb24gfSBmcm9tICdwYXlsb2FkL2RhdGFiYXNlJ1xuXG5leHBvcnQgY29uc3Qgcm9sbGJhY2tUcmFuc2FjdGlvbjogUm9sbGJhY2tUcmFuc2FjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIHJvbGxiYWNrVHJhbnNhY3Rpb24oXG4gIGlkID0gJycsXG4pIHtcbiAgLy8gaWYgbXVsdGlwbGUgb3BlcmF0aW9ucyBhcmUgdXNpbmcgdGhlIHNhbWUgdHJhbnNhY3Rpb24sIHRoZSBmaXJzdCB3aWxsIGZsb3cgdGhyb3VnaCBhbmQgZGVsZXRlIHRoZSBzZXNzaW9uLlxuICAvLyBzdWJzZXF1ZW50IGNhbGxzIHNob3VsZCBiZSBpZ25vcmVkLlxuICBpZiAoIXRoaXMuc2Vzc2lvbnNbaWRdKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyB3aGVuIHNlc3Npb24gZXhpc3RzIGJ1dCBpcyBub3QgaW5UcmFuc2FjdGlvbiBzb21ldGhpbmcgdW5leHBlY3RlZCBpcyBoYXBwZW5pbmcgdG8gdGhlIHNlc3Npb25cbiAgaWYgKCF0aGlzLnNlc3Npb25zW2lkXS5pblRyYW5zYWN0aW9uKCkpIHtcbiAgICB0aGlzLnBheWxvYWQubG9nZ2VyLndhcm4oJ3JvbGxiYWNrVHJhbnNhY3Rpb24gY2FsbGVkIHdoZW4gbm8gdHJhbnNhY3Rpb24gZXhpc3RzJylcbiAgICBkZWxldGUgdGhpcy5zZXNzaW9uc1tpZF1cbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIHRoZSBmaXJzdCBjYWxsIGZvciByb2xsYmFjayBzaG91bGQgYmUgYWJvcnRlZCBhbmQgZGVsZXRlZCBjYXVzaW5nIGFueSBvdGhlciBvcGVyYXRpb25zIHdpdGggdGhlIHNhbWUgdHJhbnNhY3Rpb24gdG8gZmFpbFxuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbnNbaWRdLmFib3J0VHJhbnNhY3Rpb24oKVxuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbnNbaWRdLmVuZFNlc3Npb24oKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIGlnbm9yZSB0aGUgZXJyb3IgYXMgaXQgaXMgbGlrZWx5IGEgcmFjZSBjb25kaXRpb24gZnJvbSBtdWx0aXBsZSBlcnJvcnNcbiAgfVxuICBkZWxldGUgdGhpcy5zZXNzaW9uc1tpZF1cbn1cbiJdLCJuYW1lcyI6WyJyb2xsYmFja1RyYW5zYWN0aW9uIiwiaWQiLCJzZXNzaW9ucyIsImluVHJhbnNhY3Rpb24iLCJwYXlsb2FkIiwibG9nZ2VyIiwid2FybiIsImFib3J0VHJhbnNhY3Rpb24iLCJlbmRTZXNzaW9uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHNCQUEyQyxlQUFlQSxvQkFDckVDLEtBQUssRUFBRTtJQUVQLDZHQUE2RztJQUM3RyxzQ0FBc0M7SUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQ0MsUUFBUSxDQUFDRCxHQUFHLEVBQUU7UUFDdEI7SUFDRjtJQUVBLGdHQUFnRztJQUNoRyxJQUFJLENBQUMsSUFBSSxDQUFDQyxRQUFRLENBQUNELEdBQUcsQ0FBQ0UsYUFBYSxJQUFJO1FBQ3RDLElBQUksQ0FBQ0MsT0FBTyxDQUFDQyxNQUFNLENBQUNDLElBQUksQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQ0osUUFBUSxDQUFDRCxHQUFHO1FBQ3hCO0lBQ0Y7SUFFQSwySEFBMkg7SUFDM0gsSUFBSTtRQUNGLE1BQU0sSUFBSSxDQUFDQyxRQUFRLENBQUNELEdBQUcsQ0FBQ00sZ0JBQWdCO1FBQ3hDLE1BQU0sSUFBSSxDQUFDTCxRQUFRLENBQUNELEdBQUcsQ0FBQ08sVUFBVTtJQUNwQyxFQUFFLE9BQU9DLE9BQU87SUFDZCx5RUFBeUU7SUFDM0U7SUFDQSxPQUFPLElBQUksQ0FBQ1AsUUFBUSxDQUFDRCxHQUFHO0FBQzFCIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/db-mongodb",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.3",
|
|
4
4
|
"description": "The officially supported MongoDB database adapter for Payload",
|
|
5
5
|
"repository": "https://github.com/payloadcms/payload",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@types/mongoose-aggregate-paginate-v2": "1.0.9",
|
|
28
28
|
"mongodb": "4.17.1",
|
|
29
29
|
"mongodb-memory-server": "^9",
|
|
30
|
-
"payload": "2.
|
|
30
|
+
"payload": "2.11.2",
|
|
31
31
|
"@payloadcms/eslint-config": "1.1.1"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|