Socket
Socket
Sign inDemoInstall

@payloadcms/db-mongodb

Package Overview
Dependencies
Maintainers
6
Versions
307
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@payloadcms/db-mongodb - npm Package Compare versions

Comparing version 3.0.0-alpha.12 to 3.0.0-alpha.13

3

dist/models/buildSchema.d.ts

@@ -1,5 +0,4 @@

import type { SchemaOptions } from 'mongoose';
import type { Schema, SchemaOptions } from 'mongoose';
import type { SanitizedConfig } from 'payload/config';
import type { Field } from 'payload/types';
import { Schema } from 'mongoose';
export type BuildSchemaOptions = {

@@ -6,0 +5,0 @@ allowIDField?: boolean;

@@ -1,2 +0,2 @@

/* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable class-methods-use-this */ /* eslint-disable @typescript-eslint/no-use-before-define */ /* eslint-disable no-use-before-define */ "use strict";
/* eslint-disable @typescript-eslint/ban-ts-comment */ /* eslint-disable class-methods-use-this */ /* eslint-disable @typescript-eslint/no-use-before-define */ "use strict";
Object.defineProperty(exports, "__esModule", {

@@ -11,4 +11,9 @@ value: true

});
const _mongoose = require("mongoose");
const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
const _types = require("payload/types");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const formatBaseSchema = (field, buildSchemaOptions)=>{

@@ -56,3 +61,3 @@ const { disableUnique, draftsEnabled, indexSortableFields } = buildSchemaOptions;

}
const schema = new _mongoose.Schema(fields, options);
const schema = new _mongoose.default.Schema(fields, options);
schemaFields.forEach((field)=>{

@@ -93,3 +98,3 @@ if (!(0, _types.fieldIsPresentationalOnly)(field)) {

type: [
new _mongoose.Schema({}, {
new _mongoose.default.Schema({}, {
_id: false,

@@ -105,3 +110,3 @@ discriminatorKey: 'blockType'

field.blocks.forEach((blockItem)=>{
const blockSchema = new _mongoose.Schema({}, {
const blockSchema = new _mongoose.default.Schema({}, {
_id: false,

@@ -197,3 +202,3 @@ id: false

...formatBaseSchema(field, buildSchemaOptions),
type: _mongoose.Schema.Types.Mixed
type: _mongoose.default.Schema.Types.Mixed
};

@@ -280,3 +285,3 @@ schema.add({

_id: false,
type: _mongoose.Schema.Types.Mixed,
type: _mongoose.default.Schema.Types.Mixed,
relationTo: {

@@ -287,3 +292,3 @@ type: String,

value: {
type: _mongoose.Schema.Types.Mixed,
type: _mongoose.default.Schema.Types.Mixed,
refPath: `${field.name}.${locale}.relationTo`

@@ -295,3 +300,3 @@ }

...formatBaseSchema(field, buildSchemaOptions),
type: _mongoose.Schema.Types.Mixed,
type: _mongoose.default.Schema.Types.Mixed,
ref: field.relationTo

@@ -316,3 +321,3 @@ };

_id: false,
type: _mongoose.Schema.Types.Mixed,
type: _mongoose.default.Schema.Types.Mixed,
relationTo: {

@@ -323,3 +328,3 @@ type: String,

value: {
type: _mongoose.Schema.Types.Mixed,
type: _mongoose.default.Schema.Types.Mixed,
refPath: `${field.name}.relationTo`

@@ -339,3 +344,3 @@ }

...formatBaseSchema(field, buildSchemaOptions),
type: _mongoose.Schema.Types.Mixed,
type: _mongoose.default.Schema.Types.Mixed,
ref: field.relationTo

@@ -359,3 +364,3 @@ };

...formatBaseSchema(field, buildSchemaOptions),
type: _mongoose.Schema.Types.Mixed
type: _mongoose.default.Schema.Types.Mixed
};

@@ -442,3 +447,3 @@ schema.add({

...formatBaseSchema(field, buildSchemaOptions),
type: _mongoose.Schema.Types.Mixed,
type: _mongoose.default.Schema.Types.Mixed,
ref: field.relationTo

@@ -453,2 +458,2 @@ };

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEluZGV4T3B0aW9ucywgU2NoZW1hT3B0aW9ucywgU2NoZW1hVHlwZU9wdGlvbnMgfSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnLCBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfSBmcm9tICdwYXlsb2FkL2NvbmZpZydcbmltcG9ydCB0eXBlIHtcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2ssXG4gIEJsb2NrRmllbGQsXG4gIENoZWNrYm94RmllbGQsXG4gIENvZGVGaWVsZCxcbiAgQ29sbGFwc2libGVGaWVsZCxcbiAgRGF0ZUZpZWxkLFxuICBFbWFpbEZpZWxkLFxuICBGaWVsZCxcbiAgRmllbGRBZmZlY3RpbmdEYXRhLFxuICBHcm91cEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE5vblByZXNlbnRhdGlvbmFsRmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWIsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAncGF5bG9hZC90eXBlcydcblxuaW1wb3J0IHsgU2NoZW1hIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQge1xuICBmaWVsZEFmZmVjdHNEYXRhLFxuICBmaWVsZElzTG9jYWxpemVkLFxuICBmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5LFxuICB0YWJIYXNOYW1lLFxufSBmcm9tICdwYXlsb2FkL3R5cGVzJ1xuXG5leHBvcnQgdHlwZSBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7XG4gIGFsbG93SURGaWVsZD86IGJvb2xlYW5cbiAgZGlzYWJsZVVuaXF1ZT86IGJvb2xlYW5cbiAgZHJhZnRzRW5hYmxlZD86IGJvb2xlYW5cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgb3B0aW9ucz86IFNjaGVtYU9wdGlvbnNcbn1cblxudHlwZSBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IChcbiAgZmllbGQ6IEZpZWxkLFxuICBzY2hlbWE6IFNjaGVtYSxcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuKSA9PiB2b2lkXG5cbmNvbnN0IGZvcm1hdEJhc2VTY2hlbWEgPSAoZmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSwgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMpID0+IHtcbiAgY29uc3QgeyBkaXNhYmxlVW5pcXVlLCBkcmFmdHNFbmFibGVkLCBpbmRleFNvcnRhYmxlRmllbGRzIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgY29uc3Qgc2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICBpbmRleDogZmllbGQuaW5kZXggfHwgKCFkaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkgfHwgaW5kZXhTb3J0YWJsZUZpZWxkcyB8fCBmYWxzZSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgdW5pcXVlOiAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBmYWxzZSxcbiAgfVxuXG4gIGlmIChcbiAgICBzY2hlbWEudW5pcXVlICYmXG4gICAgKGZpZWxkLmxvY2FsaXplZCB8fFxuICAgICAgZHJhZnRzRW5hYmxlZCB8fFxuICAgICAgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmXG4gICAgICAgIGZpZWxkLnR5cGUgIT09ICdncm91cCcgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ3RhYicgJiZcbiAgICAgICAgZmllbGQucmVxdWlyZWQgIT09IHRydWUpKVxuICApIHtcbiAgICBzY2hlbWEuc3BhcnNlID0gdHJ1ZVxuICB9XG5cbiAgaWYgKGZpZWxkLmhpZGRlbikge1xuICAgIHNjaGVtYS5oaWRkZW4gPSB0cnVlXG4gIH1cblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGxvY2FsaXplU2NoZW1hID0gKFxuICBlbnRpdHk6IE5vblByZXNlbnRhdGlvbmFsRmllbGQgfCBUYWIsXG4gIHNjaGVtYSxcbiAgbG9jYWxpemF0aW9uOiBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZSxcbikgPT4ge1xuICBpZiAoZmllbGRJc0xvY2FsaXplZChlbnRpdHkpICYmIGxvY2FsaXphdGlvbiAmJiBBcnJheS5pc0FycmF5KGxvY2FsaXphdGlvbi5sb2NhbGVzKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBsb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKFxuICAgICAgICAobG9jYWxlU2NoZW1hLCBsb2NhbGUpID0+ICh7XG4gICAgICAgICAgLi4ubG9jYWxlU2NoZW1hLFxuICAgICAgICAgIFtsb2NhbGVdOiBzY2hlbWEsXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgICBsb2NhbGl6ZWQ6IHRydWUsXG4gICAgfVxuICB9XG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgYnVpbGRTY2hlbWEgPSAoXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBjb25maWdGaWVsZHM6IEZpZWxkW10sXG4gIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zID0ge30sXG4pOiBTY2hlbWEgPT4ge1xuICBjb25zdCB7IGFsbG93SURGaWVsZCwgb3B0aW9ucyB9ID0gYnVpbGRTY2hlbWFPcHRpb25zXG4gIGxldCBmaWVsZHMgPSB7fVxuXG4gIGxldCBzY2hlbWFGaWVsZHMgPSBjb25maWdGaWVsZHNcblxuICBpZiAoIWFsbG93SURGaWVsZCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBzY2hlbWFGaWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG4gICAgaWYgKGlkRmllbGQpIHtcbiAgICAgIGZpZWxkcyA9IHtcbiAgICAgICAgX2lkOiBpZEZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gTnVtYmVyIDogU3RyaW5nLFxuICAgICAgfVxuICAgICAgc2NoZW1hRmllbGRzID0gc2NoZW1hRmllbGRzLmZpbHRlcihcbiAgICAgICAgKGZpZWxkKSA9PiAhKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpLFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNjaGVtYSA9IG5ldyBTY2hlbWEoZmllbGRzLCBvcHRpb25zKVxuXG4gIHNjaGVtYUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgIGlmICghZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZCkpIHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbZmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKGZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gc2NoZW1hXG59XG5cbmNvbnN0IGZpZWxkVG9TY2hlbWFNYXA6IFJlY29yZDxzdHJpbmcsIEZpZWxkU2NoZW1hR2VuZXJhdG9yPiA9IHtcbiAgYXJyYXk6IChcbiAgICBmaWVsZDogQXJyYXlGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKSA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBbXG4gICAgICAgIGJ1aWxkU2NoZW1hKGNvbmZpZywgZmllbGQuZmllbGRzLCB7XG4gICAgICAgICAgYWxsb3dJREZpZWxkOiB0cnVlLFxuICAgICAgICAgIGRpc2FibGVVbmlxdWU6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlLFxuICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgYmxvY2tzOiAoXG4gICAgZmllbGQ6IEJsb2NrRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGZpZWxkU2NoZW1hID0ge1xuICAgICAgdHlwZTogW25ldyBTY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgZGlzY3JpbWluYXRvcktleTogJ2Jsb2NrVHlwZScgfSldLFxuICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgZmllbGRTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBmaWVsZC5ibG9ja3MuZm9yRWFjaCgoYmxvY2tJdGVtOiBCbG9jaykgPT4ge1xuICAgICAgY29uc3QgYmxvY2tTY2hlbWEgPSBuZXcgU2NoZW1hKHt9LCB7IF9pZDogZmFsc2UsIGlkOiBmYWxzZSB9KVxuXG4gICAgICBibG9ja0l0ZW0uZmllbGRzLmZvckVhY2goKGJsb2NrRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtibG9ja0ZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKGJsb2NrRmllbGQsIGJsb2NrU2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMuZm9yRWFjaCgobG9jYWxlQ29kZSkgPT4ge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFBvc3NpYmxlIGluY29ycmVjdCB0eXBpbmcgaW4gbW9uZ29vc2UgdHlwZXMsIHRoaXMgd29ya3NcbiAgICAgICAgICBzY2hlbWEucGF0aChgJHtmaWVsZC5uYW1lfS4ke2xvY2FsZUNvZGV9YCkuZGlzY3JpbWluYXRvcihibG9ja0l0ZW0uc2x1ZywgYmxvY2tTY2hlbWEpXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICBzY2hlbWEucGF0aChmaWVsZC5uYW1lKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBjaGVja2JveDogKFxuICAgIGZpZWxkOiBDaGVja2JveEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBCb29sZWFuIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29kZTogKFxuICAgIGZpZWxkOiBDb2RlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IFN0cmluZyB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGNvbGxhcHNpYmxlOiAoXG4gICAgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGFkZEZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYUdlbmVyYXRvciA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cblxuICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGRhdGU6IChcbiAgICBmaWVsZDogRGF0ZUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBEYXRlIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZW1haWw6IChcbiAgICBmaWVsZDogRW1haWxGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgZ3JvdXA6IChcbiAgICBmaWVsZDogR3JvdXBGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZm9ybWF0dGVkQmFzZVNjaGVtYSA9IGZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucylcblxuICAgIC8vIGNhcnJ5IGluZGV4U29ydGFibGVGaWVsZHMgdGhyb3VnaCB0byB2ZXJzaW9ucyBpZiBkcmFmdHMgZW5hYmxlZFxuICAgIGNvbnN0IGluZGV4U29ydGFibGVGaWVsZHMgPVxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmluZGV4U29ydGFibGVGaWVsZHMgJiZcbiAgICAgIGZpZWxkLm5hbWUgPT09ICd2ZXJzaW9uJyAmJlxuICAgICAgYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWRcblxuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXR0ZWRCYXNlU2NoZW1hLFxuICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICBpbmRleFNvcnRhYmxlRmllbGRzLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgbWluaW1pemU6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBqc29uOiAoXG4gICAgZmllbGQ6IEpTT05GaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgbnVtYmVyOiAoXG4gICAgZmllbGQ6IE51bWJlckZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IGZpZWxkLmhhc01hbnkgPyBbTnVtYmVyXSA6IE51bWJlcixcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIHBvaW50OiAoXG4gICAgZmllbGQ6IFBvaW50RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgICAgdHlwZToge1xuICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgIGVudW06IFsnUG9pbnQnXSxcbiAgICAgIH0sXG4gICAgICBjb29yZGluYXRlczoge1xuICAgICAgICB0eXBlOiBbTnVtYmVyXSxcbiAgICAgICAgZGVmYXVsdDogZmllbGQuZGVmYXVsdFZhbHVlIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9XG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSAmJiBmaWVsZC5sb2NhbGl6ZWQpIHtcbiAgICAgIGJhc2VTY2hlbWEuY29vcmRpbmF0ZXMuc3BhcnNlID0gdHJ1ZVxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGlmIChmaWVsZC5pbmRleCA9PT0gdHJ1ZSB8fCBmaWVsZC5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBpbmRleE9wdGlvbnM6IEluZGV4T3B0aW9ucyA9IHt9XG4gICAgICBpZiAoIWJ1aWxkU2NoZW1hT3B0aW9ucy5kaXNhYmxlVW5pcXVlICYmIGZpZWxkLnVuaXF1ZSkge1xuICAgICAgICBpbmRleE9wdGlvbnMuc3BhcnNlID0gdHJ1ZVxuICAgICAgICBpbmRleE9wdGlvbnMudW5pcXVlID0gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmxvY2FsaXplZCAmJiBjb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlcy5mb3JFYWNoKChsb2NhbGUpID0+IHtcbiAgICAgICAgICBzY2hlbWEuaW5kZXgoeyBbYCR7ZmllbGQubmFtZX0uJHtsb2NhbGV9YF06ICcyZHNwaGVyZScgfSwgaW5kZXhPcHRpb25zKVxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2NoZW1hLmluZGV4KHsgW2ZpZWxkLm5hbWVdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHJhZGlvOiAoXG4gICAgZmllbGQ6IFJhZGlvRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICByZWxhdGlvbnNoaXA6IChcbiAgICBmaWVsZDogUmVsYXRpb25zaGlwRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICkgPT4ge1xuICAgIGNvbnN0IGhhc01hbnlSZWxhdGlvbnMgPSBBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pXG4gICAgbGV0IHNjaGVtYVRvUmV0dXJuOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIHR5cGU6IGNvbmZpZy5sb2NhbGl6YXRpb24ubG9jYWxlQ29kZXMucmVkdWNlKChsb2NhbGVzLCBsb2NhbGUpID0+IHtcbiAgICAgICAgICBsZXQgbG9jYWxlU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgIGlmIChoYXNNYW55UmVsYXRpb25zKSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0uJHtsb2NhbGV9LnJlbGF0aW9uVG9gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2NhbGVTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5sb2NhbGVzLFxuICAgICAgICAgICAgW2xvY2FsZV06IGZpZWxkLmhhc01hbnkgPyB7IHR5cGU6IFtsb2NhbGVTY2hlbWFdLCBkZWZhdWx0OiB1bmRlZmluZWQgfSA6IGxvY2FsZVNjaGVtYSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgICAgbG9jYWxpemVkOiB0cnVlLFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICAgIF9pZDogZmFsc2UsXG4gICAgICAgIHR5cGU6IFNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICAgICAgcmVsYXRpb25UbzogeyB0eXBlOiBTdHJpbmcsIGVudW06IGZpZWxkLnJlbGF0aW9uVG8gfSxcbiAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgcmVmUGF0aDogYCR7ZmllbGQubmFtZX0ucmVsYXRpb25Ub2AsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICB0eXBlOiBTY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgc2NoZW1hVG9SZXR1cm4gPSB7XG4gICAgICAgICAgdHlwZTogW3NjaGVtYVRvUmV0dXJuXSxcbiAgICAgICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogc2NoZW1hVG9SZXR1cm4sXG4gICAgfSlcbiAgfSxcbiAgcmljaFRleHQ6IChcbiAgICBmaWVsZDogUmljaFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwiZmllbGRBZmZlY3RzRGF0YSIsInR5cGUiLCJzcGFyc2UiLCJoaWRkZW4iLCJsb2NhbGl6ZVNjaGVtYSIsImVudGl0eSIsImxvY2FsaXphdGlvbiIsImZpZWxkSXNMb2NhbGl6ZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsb2NhbGVzIiwibG9jYWxlQ29kZXMiLCJyZWR1Y2UiLCJsb2NhbGVTY2hlbWEiLCJsb2NhbGUiLCJfaWQiLCJidWlsZFNjaGVtYSIsImNvbmZpZyIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsIm5hbWUiLCJOdW1iZXIiLCJTdHJpbmciLCJmaWx0ZXIiLCJTY2hlbWEiLCJmb3JFYWNoIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsImFkZEZpZWxkU2NoZW1hIiwiZmllbGRUb1NjaGVtYU1hcCIsImFycmF5IiwiYmFzZVNjaGVtYSIsImlkIiwibWluaW1pemUiLCJkZWZhdWx0IiwidW5kZWZpbmVkIiwiYWRkIiwiYmxvY2tzIiwiZmllbGRTY2hlbWEiLCJkaXNjcmltaW5hdG9yS2V5IiwiYmxvY2tJdGVtIiwiYmxvY2tTY2hlbWEiLCJibG9ja0ZpZWxkIiwibG9jYWxlQ29kZSIsInBhdGgiLCJkaXNjcmltaW5hdG9yIiwic2x1ZyIsImNoZWNrYm94IiwiQm9vbGVhbiIsImNvZGUiLCJjb2xsYXBzaWJsZSIsInN1YkZpZWxkIiwiZGF0ZSIsIkRhdGUiLCJlbWFpbCIsImdyb3VwIiwiZm9ybWF0dGVkQmFzZVNjaGVtYSIsImpzb24iLCJUeXBlcyIsIk1peGVkIiwibnVtYmVyIiwiaGFzTWFueSIsInBvaW50IiwiZW51bSIsImNvb3JkaW5hdGVzIiwiZGVmYXVsdFZhbHVlIiwiaW5kZXhPcHRpb25zIiwicmFkaW8iLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsInJlbGF0aW9uc2hpcCIsImhhc01hbnlSZWxhdGlvbnMiLCJyZWxhdGlvblRvIiwic2NoZW1hVG9SZXR1cm4iLCJyZWZQYXRoIiwicmVmIiwicmljaFRleHQiLCJyb3ciLCJzZWxlY3QiLCJwdXNoIiwidGFicyIsInRhYiIsInRhYkhhc05hbWUiLCJ0ZXh0IiwidGV4dGFyZWEiLCJ1cGxvYWQiXSwibWFwcGluZ3MiOiJBQUFBLG9EQUFvRCxHQUNwRCx5Q0FBeUMsR0FDekMsMERBQTBELEdBQzFELHVDQUF1Qzs7OzsrQkFtbEJ2Qzs7O2VBQUE7OzswQkFwakJ1Qjt1QkFNaEI7QUFpQlAsTUFBTUEsbUJBQW1CLENBQUNDLE9BQTJCQztJQUNuRCxNQUFNLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxtQkFBbUIsRUFBRSxHQUFHSDtJQUM5RCxNQUFNSSxTQUFxQztRQUN6Q0MsT0FBT04sTUFBTU0sS0FBSyxJQUFLLENBQUNKLGlCQUFpQkYsTUFBTU8sTUFBTSxJQUFLSCx1QkFBdUI7UUFDakZJLFVBQVU7UUFDVkQsUUFBUSxBQUFDLENBQUNMLGlCQUFpQkYsTUFBTU8sTUFBTSxJQUFLO0lBQzlDO0lBRUEsSUFDRUYsT0FBT0UsTUFBTSxJQUNaUCxDQUFBQSxNQUFNUyxTQUFTLElBQ2ROLGlCQUNDTyxJQUFBQSx1QkFBZ0IsRUFBQ1YsVUFDaEJBLE1BQU1XLElBQUksS0FBSyxXQUNmWCxNQUFNVyxJQUFJLEtBQUssU0FDZlgsTUFBTVEsUUFBUSxLQUFLLElBQUksR0FDM0I7UUFDQUgsT0FBT08sTUFBTSxHQUFHO0lBQ2xCO0lBRUEsSUFBSVosTUFBTWEsTUFBTSxFQUFFO1FBQ2hCUixPQUFPUSxNQUFNLEdBQUc7SUFDbEI7SUFFQSxPQUFPUjtBQUNUO0FBRUEsTUFBTVMsaUJBQWlCLENBQ3JCQyxRQUNBVixRQUNBVztJQUVBLElBQUlDLElBQUFBLHVCQUFnQixFQUFDRixXQUFXQyxnQkFBZ0JFLE1BQU1DLE9BQU8sQ0FBQ0gsYUFBYUksT0FBTyxHQUFHO1FBQ25GLE9BQU87WUFDTFQsTUFBTUssYUFBYUssV0FBVyxDQUFDQyxNQUFNLENBQ25DLENBQUNDLGNBQWNDLFNBQVksQ0FBQTtv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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbHMvYnVpbGRTY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmltcG9ydCB0eXBlIHsgSW5kZXhPcHRpb25zLCBTY2hlbWEsIFNjaGVtYU9wdGlvbnMsIFNjaGVtYVR5cGVPcHRpb25zIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZywgU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7XG4gIEFycmF5RmllbGQsXG4gIEJsb2NrLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEZpZWxkQWZmZWN0aW5nRGF0YSxcbiAgR3JvdXBGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOb25QcmVzZW50YXRpb25hbEZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJpY2hUZXh0RmllbGQsXG4gIFJvd0ZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGFiLFxuICBUYWJzRmllbGQsXG4gIFRleHRGaWVsZCxcbiAgVGV4dGFyZWFGaWVsZCxcbiAgVXBsb2FkRmllbGQsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCBtb25nb29zZSBmcm9tICdtb25nb29zZSdcbmltcG9ydCB7XG4gIGZpZWxkQWZmZWN0c0RhdGEsXG4gIGZpZWxkSXNMb2NhbGl6ZWQsXG4gIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHksXG4gIHRhYkhhc05hbWUsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmV4cG9ydCB0eXBlIEJ1aWxkU2NoZW1hT3B0aW9ucyA9IHtcbiAgYWxsb3dJREZpZWxkPzogYm9vbGVhblxuICBkaXNhYmxlVW5pcXVlPzogYm9vbGVhblxuICBkcmFmdHNFbmFibGVkPzogYm9vbGVhblxuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICBvcHRpb25zPzogU2NoZW1hT3B0aW9uc1xufVxuXG50eXBlIEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gKFxuICBmaWVsZDogRmllbGQsXG4gIHNjaGVtYTogU2NoZW1hLFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4pID0+IHZvaWRcblxuY29uc3QgZm9ybWF0QmFzZVNjaGVtYSA9IChmaWVsZDogRmllbGRBZmZlY3RpbmdEYXRhLCBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucykgPT4ge1xuICBjb25zdCB7IGRpc2FibGVVbmlxdWUsIGRyYWZ0c0VuYWJsZWQsIGluZGV4U29ydGFibGVGaWVsZHMgfSA9IGJ1aWxkU2NoZW1hT3B0aW9uc1xuICBjb25zdCBzY2hlbWE6IFNjaGVtYVR5cGVPcHRpb25zPHVua25vd24+ID0ge1xuICAgIGluZGV4OiBmaWVsZC5pbmRleCB8fCAoIWRpc2FibGVVbmlxdWUgJiYgZmllbGQudW5pcXVlKSB8fCBpbmRleFNvcnRhYmxlRmllbGRzIHx8IGZhbHNlLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB1bmlxdWU6ICghZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHx8IGZhbHNlLFxuICB9XG5cbiAgaWYgKFxuICAgIHNjaGVtYS51bmlxdWUgJiZcbiAgICAoZmllbGQubG9jYWxpemVkIHx8XG4gICAgICBkcmFmdHNFbmFibGVkIHx8XG4gICAgICAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiZcbiAgICAgICAgZmllbGQudHlwZSAhPT0gJ2dyb3VwJyAmJlxuICAgICAgICBmaWVsZC50eXBlICE9PSAndGFiJyAmJlxuICAgICAgICBmaWVsZC5yZXF1aXJlZCAhPT0gdHJ1ZSkpXG4gICkge1xuICAgIHNjaGVtYS5zcGFyc2UgPSB0cnVlXG4gIH1cblxuICBpZiAoZmllbGQuaGlkZGVuKSB7XG4gICAgc2NoZW1hLmhpZGRlbiA9IHRydWVcbiAgfVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgbG9jYWxpemVTY2hlbWEgPSAoXG4gIGVudGl0eTogTm9uUHJlc2VudGF0aW9uYWxGaWVsZCB8IFRhYixcbiAgc2NoZW1hLFxuICBsb2NhbGl6YXRpb246IFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlLFxuKSA9PiB7XG4gIGlmIChmaWVsZElzTG9jYWxpemVkKGVudGl0eSkgJiYgbG9jYWxpemF0aW9uICYmIEFycmF5LmlzQXJyYXkobG9jYWxpemF0aW9uLmxvY2FsZXMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5yZWR1Y2UoXG4gICAgICAgIChsb2NhbGVTY2hlbWEsIGxvY2FsZSkgPT4gKHtcbiAgICAgICAgICAuLi5sb2NhbGVTY2hlbWEsXG4gICAgICAgICAgW2xvY2FsZV06IHNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNjaGVtYVxufVxuXG5jb25zdCBidWlsZFNjaGVtYSA9IChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGNvbmZpZ0ZpZWxkczogRmllbGRbXSxcbiAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMgPSB7fSxcbik6IFNjaGVtYSA9PiB7XG4gIGNvbnN0IHsgYWxsb3dJREZpZWxkLCBvcHRpb25zIH0gPSBidWlsZFNjaGVtYU9wdGlvbnNcbiAgbGV0IGZpZWxkcyA9IHt9XG5cbiAgbGV0IHNjaGVtYUZpZWxkcyA9IGNvbmZpZ0ZpZWxkc1xuXG4gIGlmICghYWxsb3dJREZpZWxkKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IHNjaGVtYUZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcbiAgICBpZiAoaWRGaWVsZCkge1xuICAgICAgZmllbGRzID0ge1xuICAgICAgICBfaWQ6IGlkRmllbGQudHlwZSA9PT0gJ251bWJlcicgPyBOdW1iZXIgOiBTdHJpbmcsXG4gICAgICB9XG4gICAgICBzY2hlbWFGaWVsZHMgPSBzY2hlbWFGaWVsZHMuZmlsdGVyKFxuICAgICAgICAoZmllbGQpID0+ICEoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyksXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NoZW1hID0gbmV3IG1vbmdvb3NlLlNjaGVtYShmaWVsZHMsIG9wdGlvbnMpXG5cbiAgc2NoZW1hRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgaWYgKCFmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5KGZpZWxkKSkge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtmaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoZmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBzY2hlbWFcbn1cblxuY29uc3QgZmllbGRUb1NjaGVtYU1hcDogUmVjb3JkPHN0cmluZywgRmllbGRTY2hlbWFHZW5lcmF0b3I+ID0ge1xuICBhcnJheTogKFxuICAgIGZpZWxkOiBBcnJheUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFtcbiAgICAgICAgYnVpbGRTY2hlbWEoY29uZmlnLCBmaWVsZC5maWVsZHMsIHtcbiAgICAgICAgICBhbGxvd0lERmllbGQ6IHRydWUsXG4gICAgICAgICAgZGlzYWJsZVVuaXF1ZTogYnVpbGRTY2hlbWFPcHRpb25zLmRpc2FibGVVbmlxdWUsXG4gICAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgX2lkOiBmYWxzZSxcbiAgICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBibG9ja3M6IChcbiAgICBmaWVsZDogQmxvY2tGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgZmllbGRTY2hlbWEgPSB7XG4gICAgICB0eXBlOiBbbmV3IG1vbmdvb3NlLlNjaGVtYSh7fSwgeyBfaWQ6IGZhbHNlLCBkaXNjcmltaW5hdG9yS2V5OiAnYmxvY2tUeXBlJyB9KV0sXG4gICAgICBkZWZhdWx0OiB1bmRlZmluZWQsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBmaWVsZFNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcblxuICAgIGZpZWxkLmJsb2Nrcy5mb3JFYWNoKChibG9ja0l0ZW06IEJsb2NrKSA9PiB7XG4gICAgICBjb25zdCBibG9ja1NjaGVtYSA9IG5ldyBtb25nb29zZS5TY2hlbWEoe30sIHsgX2lkOiBmYWxzZSwgaWQ6IGZhbHNlIH0pXG5cbiAgICAgIGJsb2NrSXRlbS5maWVsZHMuZm9yRWFjaCgoYmxvY2tGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW2Jsb2NrRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZEZpZWxkU2NoZW1hKSB7XG4gICAgICAgICAgYWRkRmllbGRTY2hlbWEoYmxvY2tGaWVsZCwgYmxvY2tTY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbi5sb2NhbGVDb2Rlcy5mb3JFYWNoKChsb2NhbGVDb2RlKSA9PiB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUG9zc2libGUgaW5jb3JyZWN0IHR5cGluZyBpbiBtb25nb29zZSB0eXBlcywgdGhpcyB3b3Jrc1xuICAgICAgICAgIHNjaGVtYS5wYXRoKGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlQ29kZX1gKS5kaXNjcmltaW5hdG9yKGJsb2NrSXRlbS5zbHVnLCBibG9ja1NjaGVtYSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBQb3NzaWJsZSBpbmNvcnJlY3QgdHlwaW5nIGluIG1vbmdvb3NlIHR5cGVzLCB0aGlzIHdvcmtzXG4gICAgICAgIHNjaGVtYS5wYXRoKGZpZWxkLm5hbWUpLmRpc2NyaW1pbmF0b3IoYmxvY2tJdGVtLnNsdWcsIGJsb2NrU2NoZW1hKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGNoZWNrYm94OiAoXG4gICAgZmllbGQ6IENoZWNrYm94RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IEJvb2xlYW4gfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBjb2RlOiAoXG4gICAgZmllbGQ6IENvZGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHsgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSwgdHlwZTogU3RyaW5nIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgY29sbGFwc2libGU6IChcbiAgICBmaWVsZDogQ29sbGFwc2libGVGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgZmllbGQuZmllbGRzLmZvckVhY2goKHN1YkZpZWxkOiBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgYWRkRmllbGRTY2hlbWE6IEZpZWxkU2NoZW1hR2VuZXJhdG9yID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgYWRkRmllbGRTY2hlbWEoc3ViRmllbGQsIHNjaGVtYSwgY29uZmlnLCBidWlsZFNjaGVtYU9wdGlvbnMpXG4gICAgICB9XG4gICAgfSlcbiAgfSxcbiAgZGF0ZTogKFxuICAgIGZpZWxkOiBEYXRlRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7IC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksIHR5cGU6IERhdGUgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBlbWFpbDogKFxuICAgIGZpZWxkOiBFbWFpbEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBncm91cDogKFxuICAgIGZpZWxkOiBHcm91cEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBmb3JtYXR0ZWRCYXNlU2NoZW1hID0gZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKVxuXG4gICAgLy8gY2FycnkgaW5kZXhTb3J0YWJsZUZpZWxkcyB0aHJvdWdoIHRvIHZlcnNpb25zIGlmIGRyYWZ0cyBlbmFibGVkXG4gICAgY29uc3QgaW5kZXhTb3J0YWJsZUZpZWxkcyA9XG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuaW5kZXhTb3J0YWJsZUZpZWxkcyAmJlxuICAgICAgZmllbGQubmFtZSA9PT0gJ3ZlcnNpb24nICYmXG4gICAgICBidWlsZFNjaGVtYU9wdGlvbnMuZHJhZnRzRW5hYmxlZFxuXG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdHRlZEJhc2VTY2hlbWEsXG4gICAgICB0eXBlOiBidWlsZFNjaGVtYShjb25maWcsIGZpZWxkLmZpZWxkcywge1xuICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgZHJhZnRzRW5hYmxlZDogYnVpbGRTY2hlbWFPcHRpb25zLmRyYWZ0c0VuYWJsZWQsXG4gICAgICAgIGluZGV4U29ydGFibGVGaWVsZHMsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgIGlkOiBmYWxzZSxcbiAgICAgICAgICBtaW5pbWl6ZTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIGpzb246IChcbiAgICBmaWVsZDogSlNPTkZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IG1vbmdvb3NlLlNjaGVtYS5UeXBlcy5NaXhlZCxcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG4gIH0sXG4gIG51bWJlcjogKFxuICAgIGZpZWxkOiBOdW1iZXJGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW051bWJlcl0gOiBOdW1iZXIsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICBwb2ludDogKFxuICAgIGZpZWxkOiBQb2ludEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hOiBTY2hlbWFUeXBlT3B0aW9uczx1bmtub3duPiA9IHtcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICBlbnVtOiBbJ1BvaW50J10sXG4gICAgICB9LFxuICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgdHlwZTogW051bWJlcl0sXG4gICAgICAgIGRlZmF1bHQ6IGZpZWxkLmRlZmF1bHRWYWx1ZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgfVxuICAgIGlmIChidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUgJiYgZmllbGQubG9jYWxpemVkKSB7XG4gICAgICBiYXNlU2NoZW1hLmNvb3JkaW5hdGVzLnNwYXJzZSA9IHRydWVcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoZmllbGQsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgIH0pXG5cbiAgICBpZiAoZmllbGQuaW5kZXggPT09IHRydWUgfHwgZmllbGQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgaW5kZXhPcHRpb25zOiBJbmRleE9wdGlvbnMgPSB7fVxuICAgICAgaWYgKCFidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSAmJiBmaWVsZC51bmlxdWUpIHtcbiAgICAgICAgaW5kZXhPcHRpb25zLnNwYXJzZSA9IHRydWVcbiAgICAgICAgaW5kZXhPcHRpb25zLnVuaXF1ZSA9IHRydWVcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5sb2NhbGl6ZWQgJiYgY29uZmlnLmxvY2FsaXphdGlvbikge1xuICAgICAgICBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZXMuZm9yRWFjaCgobG9jYWxlKSA9PiB7XG4gICAgICAgICAgc2NoZW1hLmluZGV4KHsgW2Ake2ZpZWxkLm5hbWV9LiR7bG9jYWxlfWBdOiAnMmRzcGhlcmUnIH0sIGluZGV4T3B0aW9ucylcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNjaGVtYS5pbmRleCh7IFtmaWVsZC5uYW1lXTogJzJkc3BoZXJlJyB9LCBpbmRleE9wdGlvbnMpXG4gICAgICB9XG4gICAgfVxuICB9LFxuICByYWRpbzogKFxuICAgIGZpZWxkOiBSYWRpb0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0ge1xuICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIGVudW06IGZpZWxkLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdvYmplY3QnKSByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgIHJldHVybiBvcHRpb25cbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcmVsYXRpb25zaGlwOiAoXG4gICAgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApID0+IHtcbiAgICBjb25zdCBoYXNNYW55UmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKVxuICAgIGxldCBzY2hlbWFUb1JldHVybjogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICBpZiAoZmllbGQubG9jYWxpemVkICYmIGNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICB0eXBlOiBjb25maWcubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLnJlZHVjZSgobG9jYWxlcywgbG9jYWxlKSA9PiB7XG4gICAgICAgICAgbGV0IGxvY2FsZVNjaGVtYTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9XG5cbiAgICAgICAgICBpZiAoaGFzTWFueVJlbGF0aW9ucykge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LiR7bG9jYWxlfS5yZWxhdGlvblRvYCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9jYWxlU2NoZW1hID0ge1xuICAgICAgICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgICAgICAgIHJlZjogZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubG9jYWxlcyxcbiAgICAgICAgICAgIFtsb2NhbGVdOiBmaWVsZC5oYXNNYW55ID8geyB0eXBlOiBbbG9jYWxlU2NoZW1hXSwgZGVmYXVsdDogdW5kZWZpbmVkIH0gOiBsb2NhbGVTY2hlbWEsXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSksXG4gICAgICAgIGxvY2FsaXplZDogdHJ1ZSxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGhhc01hbnlSZWxhdGlvbnMpIHtcbiAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICB0eXBlOiBtb25nb29zZS5TY2hlbWEuVHlwZXMuTWl4ZWQsXG4gICAgICAgIHJlbGF0aW9uVG86IHsgdHlwZTogU3RyaW5nLCBlbnVtOiBmaWVsZC5yZWxhdGlvblRvIH0sXG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICAgIHJlZlBhdGg6IGAke2ZpZWxkLm5hbWV9LnJlbGF0aW9uVG9gLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgICB0eXBlOiBbc2NoZW1hVG9SZXR1cm5dLFxuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlbWFUb1JldHVybiA9IHtcbiAgICAgICAgLi4uZm9ybWF0QmFzZVNjaGVtYShmaWVsZCwgYnVpbGRTY2hlbWFPcHRpb25zKSxcbiAgICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgICByZWY6IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgIHNjaGVtYVRvUmV0dXJuID0ge1xuICAgICAgICAgIHR5cGU6IFtzY2hlbWFUb1JldHVybl0sXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IHNjaGVtYVRvUmV0dXJuLFxuICAgIH0pXG4gIH0sXG4gIHJpY2hUZXh0OiAoXG4gICAgZmllbGQ6IFJpY2hUZXh0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbiAgcm93OiAoXG4gICAgZmllbGQ6IFJvd0ZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBmaWVsZC5maWVsZHMuZm9yRWFjaCgoc3ViRmllbGQ6IEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgIGlmIChhZGRGaWVsZFNjaGVtYSkge1xuICAgICAgICBhZGRGaWVsZFNjaGVtYShzdWJGaWVsZCwgc2NoZW1hLCBjb25maWcsIGJ1aWxkU2NoZW1hT3B0aW9ucylcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICBzZWxlY3Q6IChcbiAgICBmaWVsZDogU2VsZWN0RmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgZW51bTogZmllbGQub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcpIHJldHVybiBvcHRpb24udmFsdWVcbiAgICAgICAgcmV0dXJuIG9wdGlvblxuICAgICAgfSksXG4gICAgfVxuXG4gICAgaWYgKGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkIHx8ICFmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgYmFzZVNjaGVtYS5lbnVtLnB1c2gobnVsbClcbiAgICB9XG5cbiAgICBzY2hlbWEuYWRkKHtcbiAgICAgIFtmaWVsZC5uYW1lXTogbG9jYWxpemVTY2hlbWEoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBmaWVsZC5oYXNNYW55ID8gW2Jhc2VTY2hlbWFdIDogYmFzZVNjaGVtYSxcbiAgICAgICAgY29uZmlnLmxvY2FsaXphdGlvbixcbiAgICAgICksXG4gICAgfSlcbiAgfSxcbiAgdGFiczogKFxuICAgIGZpZWxkOiBUYWJzRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGZpZWxkLnRhYnMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAgICAgdHlwZTogYnVpbGRTY2hlbWEoY29uZmlnLCB0YWIuZmllbGRzLCB7XG4gICAgICAgICAgICBkaXNhYmxlVW5pcXVlOiBidWlsZFNjaGVtYU9wdGlvbnMuZGlzYWJsZVVuaXF1ZSxcbiAgICAgICAgICAgIGRyYWZ0c0VuYWJsZWQ6IGJ1aWxkU2NoZW1hT3B0aW9ucy5kcmFmdHNFbmFibGVkLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBfaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICAgIG1pbmltaXplOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBzY2hlbWEuYWRkKHtcbiAgICAgICAgICBbdGFiLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYSh0YWIsIGJhc2VTY2hlbWEsIGNvbmZpZy5sb2NhbGl6YXRpb24pLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFiLmZpZWxkcy5mb3JFYWNoKChzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRGaWVsZFNjaGVtYTogRmllbGRTY2hlbWFHZW5lcmF0b3IgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG5cbiAgICAgICAgICBpZiAoYWRkRmllbGRTY2hlbWEpIHtcbiAgICAgICAgICAgIGFkZEZpZWxkU2NoZW1hKHN1YkZpZWxkLCBzY2hlbWEsIGNvbmZpZywgYnVpbGRTY2hlbWFPcHRpb25zKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9LFxuICB0ZXh0OiAoXG4gICAgZmllbGQ6IFRleHRGaWVsZCxcbiAgICBzY2hlbWE6IFNjaGVtYSxcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgICBidWlsZFNjaGVtYU9wdGlvbnM6IEJ1aWxkU2NoZW1hT3B0aW9ucyxcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgYmFzZVNjaGVtYSA9IHtcbiAgICAgIC4uLmZvcm1hdEJhc2VTY2hlbWEoZmllbGQsIGJ1aWxkU2NoZW1hT3B0aW9ucyksXG4gICAgICB0eXBlOiBmaWVsZC5oYXNNYW55ID8gW1N0cmluZ10gOiBTdHJpbmcsXG4gICAgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB0ZXh0YXJlYTogKFxuICAgIGZpZWxkOiBUZXh0YXJlYUZpZWxkLFxuICAgIHNjaGVtYTogU2NoZW1hLFxuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICAgIGJ1aWxkU2NoZW1hT3B0aW9uczogQnVpbGRTY2hlbWFPcHRpb25zLFxuICApOiB2b2lkID0+IHtcbiAgICBjb25zdCBiYXNlU2NoZW1hID0geyAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLCB0eXBlOiBTdHJpbmcgfVxuXG4gICAgc2NoZW1hLmFkZCh7XG4gICAgICBbZmllbGQubmFtZV06IGxvY2FsaXplU2NoZW1hKGZpZWxkLCBiYXNlU2NoZW1hLCBjb25maWcubG9jYWxpemF0aW9uKSxcbiAgICB9KVxuICB9LFxuICB1cGxvYWQ6IChcbiAgICBmaWVsZDogVXBsb2FkRmllbGQsXG4gICAgc2NoZW1hOiBTY2hlbWEsXG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gICAgYnVpbGRTY2hlbWFPcHRpb25zOiBCdWlsZFNjaGVtYU9wdGlvbnMsXG4gICk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGJhc2VTY2hlbWEgPSB7XG4gICAgICAuLi5mb3JtYXRCYXNlU2NoZW1hKGZpZWxkLCBidWlsZFNjaGVtYU9wdGlvbnMpLFxuICAgICAgdHlwZTogbW9uZ29vc2UuU2NoZW1hLlR5cGVzLk1peGVkLFxuICAgICAgcmVmOiBmaWVsZC5yZWxhdGlvblRvLFxuICAgIH1cblxuICAgIHNjaGVtYS5hZGQoe1xuICAgICAgW2ZpZWxkLm5hbWVdOiBsb2NhbGl6ZVNjaGVtYShmaWVsZCwgYmFzZVNjaGVtYSwgY29uZmlnLmxvY2FsaXphdGlvbiksXG4gICAgfSlcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRTY2hlbWFcbiJdLCJuYW1lcyI6WyJmb3JtYXRCYXNlU2NoZW1hIiwiZmllbGQiLCJidWlsZFNjaGVtYU9wdGlvbnMiLCJkaXNhYmxlVW5pcXVlIiwiZHJhZnRzRW5hYmxlZCIsImluZGV4U29ydGFibGVGaWVsZHMiLCJzY2hlbWEiLCJpbmRleCIsInVuaXF1ZSIsInJlcXVpcmVkIiwibG9jYWxpemVkIiwiZmllbGRBZmZlY3RzRGF0YSIsInR5cGUiLCJzcGFyc2UiLCJoaWRkZW4iLCJsb2NhbGl6ZVNjaGVtYSIsImVudGl0eSIsImxvY2FsaXphdGlvbiIsImZpZWxkSXNMb2NhbGl6ZWQiLCJBcnJheSIsImlzQXJyYXkiLCJsb2NhbGVzIiwibG9jYWxlQ29kZXMiLCJyZWR1Y2UiLCJsb2NhbGVTY2hlbWEiLCJsb2NhbGUiLCJfaWQiLCJidWlsZFNjaGVtYSIsImNvbmZpZyIsImNvbmZpZ0ZpZWxkcyIsImFsbG93SURGaWVsZCIsIm9wdGlvbnMiLCJmaWVsZHMiLCJzY2hlbWFGaWVsZHMiLCJpZEZpZWxkIiwiZmluZCIsIm5hbWUiLCJOdW1iZXIiLCJTdHJpbmciLCJmaWx0ZXIiLCJtb25nb29zZSIsIlNjaGVtYSIsImZvckVhY2giLCJmaWVsZElzUHJlc2VudGF0aW9uYWxPbmx5IiwiYWRkRmllbGRTY2hlbWEiLCJmaWVsZFRvU2NoZW1hTWFwIiwiYXJyYXkiLCJiYXNlU2NoZW1hIiwiaWQiLCJtaW5pbWl6ZSIsImRlZmF1bHQiLCJ1bmRlZmluZWQiLCJhZGQiLCJibG9ja3MiLCJmaWVsZFNjaGVtYSIsImRpc2NyaW1pbmF0b3JLZXkiLCJibG9ja0l0ZW0iLCJibG9ja1NjaGVtYSIsImJsb2NrRmllbGQiLCJsb2NhbGVDb2RlIiwicGF0aCIsImRpc2NyaW1pbmF0b3IiLCJzbHVnIiwiY2hlY2tib3giLCJCb29sZWFuIiwiY29kZSIsImNvbGxhcHNpYmxlIiwic3ViRmllbGQiLCJkYXRlIiwiRGF0ZSIsImVtYWlsIiwiZ3JvdXAiLCJmb3JtYXR0ZWRCYXNlU2NoZW1hIiwianNvbiIsIlR5cGVzIiwiTWl4ZWQiLCJudW1iZXIiLCJoYXNNYW55IiwicG9pbnQiLCJlbnVtIiwiY29vcmRpbmF0ZXMiLCJkZWZhdWx0VmFsdWUiLCJpbmRleE9wdGlvbnMiLCJyYWRpbyIsIm1hcCIsIm9wdGlvbiIsInZhbHVlIiwicmVsYXRpb25zaGlwIiwiaGFzTWFueVJlbGF0aW9ucyIsInJlbGF0aW9uVG8iLCJzY2hlbWFUb1JldHVybiIsInJlZlBhdGgiLCJyZWYiLCJyaWNoVGV4dCIsInJvdyIsInNlbGVjdCIsInB1c2giLCJ0YWJzIiwidGFiIiwidGFiSGFzTmFtZSIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCJdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9ELEdBQ3BELHlDQUF5QyxHQUN6QywwREFBMEQ7Ozs7K0JBeWxCMUQ7OztlQUFBOzs7aUVBMWpCcUI7dUJBTWQ7Ozs7OztBQWlCUCxNQUFNQSxtQkFBbUIsQ0FBQ0MsT0FBMkJDO0lBQ25ELE1BQU0sRUFBRUMsYUFBYSxFQUFFQyxhQUFhLEVBQUVDLG1CQUFtQixFQUFFLEdBQUdIO0lBQzlELE1BQU1JLFNBQXFDO1FBQ3pDQyxPQUFPTixNQUFNTSxLQUFLLElBQUssQ0FBQ0osaUJBQWlCRixNQUFNTyxNQUFNLElBQUtILHVCQUF1QjtRQUNqRkksVUFBVTtRQUNWRCxRQUFRLEFBQUMsQ0FBQ0wsaUJBQWlCRixNQUFNTyxNQUFNLElBQUs7SUFDOUM7SUFFQSxJQUNFRixPQUFPRSxNQUFNLElBQ1pQLENBQUFBLE1BQU1TLFNBQVMsSUFDZE4saUJBQ0NPLElBQUFBLHVCQUFnQixFQUFDVixVQUNoQkEsTUFBTVcsSUFBSSxLQUFLLFdBQ2ZYLE1BQU1XLElBQUksS0FBSyxTQUNmWCxNQUFNUSxRQUFRLEtBQUssSUFBSSxHQUMzQjtRQUNBSCxPQUFPTyxNQUFNLEdBQUc7SUFDbEI7SUFFQSxJQUFJWixNQUFNYSxNQUFNLEVBQUU7UUFDaEJSLE9BQU9RLE1BQU0sR0FBRztJQUNsQjtJQUVBLE9BQU9SO0FBQ1Q7QUFFQSxNQUFNUyxpQkFBaUIsQ0FDckJDLFFBQ0FWLFFBQ0FXO0lBRUEsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNGLFdBQVdDLGdC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
{
"name": "@payloadcms/db-mongodb",
"version": "3.0.0-alpha.12",
"version": "3.0.0-alpha.13",
"description": "The officially supported MongoDB database adapter for Payload - Update 2",

@@ -31,6 +31,6 @@ "repository": "https://github.com/payloadcms/payload",

"@payloadcms/eslint-config": "1.1.1",
"payload": "3.0.0-alpha.12"
"payload": "3.0.0-alpha.13"
},
"peerDependencies": {
"payload": "3.0.0-alpha.12"
"payload": "3.0.0-alpha.13"
},

@@ -37,0 +37,0 @@ "publishConfig": {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc