UNPKG

@valueflows/vf-graphql-holochain

Version:

GraphQL schema bindings for the Holochain implementation of ValueFlows

106 lines 20.6 kB
/** * Resolver callbacks to bind vf-graphql with HoloREA DNAs * * @package: HoloREA * @since: 2019-05-20 */ import { URI, VfModule } from '../types.js'; import { DateTimeResolver as DateTime } from 'graphql-scalars'; import { autoConnect } from '../connection.js'; import Query from '../queries/index.js'; import Mutation from '../mutations/index.js'; import Revision from './revision.js'; import Measure from './measure.js'; import Unit from './unit.js'; import ResourceSpecification from './resourceSpecification.js'; import Agent from './agent.js'; import Process from './process.js'; import ProcessSpecification from './processSpecification.js'; import EconomicResource from './economicResource.js'; import EconomicEvent from './economicEvent.js'; import Commitment from './commitment.js'; import Fulfillment from './fulfillment.js'; import Intent from './intent.js'; import Satisfaction from './satisfaction.js'; import Proposal from './proposal.js'; import ProposedTo from './proposedTo.js'; import ProposedIntent from './proposedIntent.js'; import Agreement from './agreement.js'; import Plan from './plan.js'; // union type disambiguation const EventOrCommitment = { __resolveType: (obj, ctx, info) => obj.__typename, }; const ProductionFlowItem = { __resolveType: (obj, ctx, info) => obj.__typename, }; const AccountingScope = { __resolveType: (obj, ctx, info) => obj.__typename, }; const TrackTraceItem = { __resolveType: (obj, ctx, info) => obj.__typename, }; // the default export const generateResolvers = async (options) => { const { enabledVFModules, conductorUri, adminConductorUri, appId, dnaConfig, traceAppSignals = undefined, } = options; const hasHistory = -1 !== enabledVFModules.indexOf(VfModule.History); const hasAgent = -1 !== enabledVFModules.indexOf(VfModule.Agent); const hasMeasurement = -1 !== enabledVFModules.indexOf(VfModule.Measurement); const hasResourceSpecification = -1 !== enabledVFModules.indexOf(VfModule.ResourceSpecification); const hasObservation = -1 !== enabledVFModules.indexOf(VfModule.Observation); const hasProcess = -1 !== enabledVFModules.indexOf(VfModule.Process); const hasProcessSpecification = -1 !== enabledVFModules.indexOf(VfModule.ProcessSpecification); const hasCommitment = -1 !== enabledVFModules.indexOf(VfModule.Commitment); const hasFulfillment = -1 !== enabledVFModules.indexOf(VfModule.Fulfillment); const hasIntent = -1 !== enabledVFModules.indexOf(VfModule.Intent); const hasSatisfaction = -1 !== enabledVFModules.indexOf(VfModule.Satisfaction); const hasProposal = -1 !== enabledVFModules.indexOf(VfModule.Proposal); const hasAgreement = -1 !== enabledVFModules.indexOf(VfModule.Agreement); const hasPlan = -1 !== enabledVFModules.indexOf(VfModule.Plan); // prefetch connection for this API schema // and also this makes calls to the admin conductor to authorize a set of signing // credentials for each Cell await autoConnect(conductorUri, adminConductorUri, appId, traceAppSignals); return Object.assign({ // scalars URI, DateTime, // root schemas Query: Query(enabledVFModules, dnaConfig, conductorUri), Mutation: Mutation(enabledVFModules, dnaConfig, conductorUri), }, // union type disambiguators (hasObservation && hasProcess ? { ProductionFlowItem } : {}), (hasAgent ? { AccountingScope } : {}), (hasSatisfaction ? { EventOrCommitment } : {}), (hasObservation ? { TrackTraceItem } : {}), // object field resolvers (hasHistory ? { Revision: Revision(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasAgent ? { Agent: Agent(enabledVFModules, dnaConfig, conductorUri), Person: Agent(enabledVFModules, dnaConfig, conductorUri), Organization: Agent(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasMeasurement ? { Measure: Measure(enabledVFModules, dnaConfig, conductorUri), Unit: Unit(enabledVFModules, dnaConfig, conductorUri) } : {}), (hasResourceSpecification ? { ResourceSpecification: ResourceSpecification(enabledVFModules, dnaConfig, conductorUri) } : {}), (hasObservation ? { EconomicEvent: EconomicEvent(enabledVFModules, dnaConfig, conductorUri), EconomicResource: EconomicResource(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasProcess ? { Process: Process(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasProcessSpecification ? { ProcessSpecification: ProcessSpecification(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasCommitment ? { Commitment: Commitment(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasFulfillment ? { Fulfillment: Fulfillment(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasIntent ? { Intent: Intent(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasSatisfaction ? { Satisfaction: Satisfaction(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasProposal ? { Proposal: Proposal(enabledVFModules, dnaConfig, conductorUri), ProposedIntent: ProposedIntent(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasProposal && hasAgent ? { ProposedTo: ProposedTo(enabledVFModules, dnaConfig, conductorUri), } : {}), (hasAgreement ? { Agreement: Agreement(enabledVFModules, dnaConfig, conductorUri) } : {}), (hasPlan ? { Plan: Plan(enabledVFModules, dnaConfig, conductorUri) } : {})); }; export default generateResolvers; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9yZXNvbHZlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQWtDLEdBQUcsRUFBK0IsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hHLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU5RCxPQUFPLEVBQUUsV0FBVyxFQUFrQixNQUFNLGtCQUFrQixDQUFBO0FBRTlELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFBO0FBRTVDLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUVwQyxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFDbEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8scUJBQXFCLE1BQU0sNEJBQTRCLENBQUE7QUFFOUQsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBRTlCLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQTtBQUNsQyxPQUFPLG9CQUFvQixNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sZ0JBQWdCLE1BQU0sdUJBQXVCLENBQUE7QUFDcEQsT0FBTyxhQUFhLE1BQU0sb0JBQW9CLENBQUE7QUFFOUMsT0FBTyxVQUFVLE1BQU0saUJBQWlCLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sa0JBQWtCLENBQUE7QUFFMUMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG1CQUFtQixDQUFBO0FBRTVDLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUNwQyxPQUFPLFVBQVUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QyxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQTtBQUVoRCxPQUFPLFNBQVMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN0QyxP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QUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUMzRSxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsZUFBZSxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb2x2ZXIgY2FsbGJhY2tzIHRvIGJpbmQgdmYtZ3JhcGhxbCB3aXRoIEhvbG9SRUEgRE5Bc1xuICpcbiAqIEBwYWNrYWdlOiBIb2xvUkVBXG4gKiBAc2luY2U6ICAgMjAxOS0wNS0yMFxuICovXG5cbmltcG9ydCB7IEROQUlkTWFwcGluZ3MsIFJlc29sdmVyT3B0aW9ucywgVVJJLCBEZWNpbWFsLCBERUZBVUxUX1ZGX01PRFVMRVMsIFZmTW9kdWxlIH0gZnJvbSAnLi4vdHlwZXMuanMnXG5pbXBvcnQgeyBEYXRlVGltZVJlc29sdmVyIGFzIERhdGVUaW1lIH0gZnJvbSAnZ3JhcGhxbC1zY2FsYXJzJ1xuXG5pbXBvcnQgeyBhdXRvQ29ubmVjdCwgb3BlbkNvbm5lY3Rpb24gfSBmcm9tICcuLi9jb25uZWN0aW9uLmpzJ1xuXG5pbXBvcnQgUXVlcnkgZnJvbSAnLi4vcXVlcmllcy9pbmRleC5qcydcbmltcG9ydCBNdXRhdGlvbiBmcm9tICcuLi9tdXRhdGlvbnMvaW5kZXguanMnXG5cbmltcG9ydCBSZXZpc2lvbiBmcm9tICcuL3JldmlzaW9uLmpzJ1xuXG5pbXBvcnQgTWVhc3VyZSBmcm9tICcuL21lYXN1cmUuanMnXG5pbXBvcnQgVW5pdCBmcm9tICcuL3VuaXQuanMnXG5pbXBvcnQgUmVzb3VyY2VTcGVjaWZpY2F0aW9uIGZyb20gJy4vcmVzb3VyY2VTcGVjaWZpY2F0aW9uLmpzJ1xuXG5pbXBvcnQgQWdlbnQgZnJvbSAnLi9hZ2VudC5qcydcblxuaW1wb3J0IFByb2Nlc3MgZnJvbSAnLi9wcm9jZXNzLmpzJ1xuaW1wb3J0IFByb2Nlc3NTcGVjaWZpY2F0aW9uIGZyb20gJy4vcHJvY2Vzc1NwZWNpZmljYXRpb24uanMnXG5pbXBvcnQgRWNvbm9taWNSZXNvdXJjZSBmcm9tICcuL2Vjb25vbWljUmVzb3VyY2UuanMnXG5pbXBvcnQgRWNvbm9taWNFdmVudCBmcm9tICcuL2Vjb25vbWljRXZlbnQuanMnXG5cbmltcG9ydCBDb21taXRtZW50IGZyb20gJy4vY29tbWl0bWVudC5qcydcbmltcG9ydCBGdWxmaWxsbWVudCBmcm9tICcuL2Z1bGZpbGxtZW50LmpzJ1xuXG5pbXBvcnQgSW50ZW50IGZyb20gJy4vaW50ZW50LmpzJ1xuaW1wb3J0IFNhdGlzZmFjdGlvbiBmcm9tICcuL3NhdGlzZmFjdGlvbi5qcydcblxuaW1wb3J0IFByb3Bvc2FsIGZyb20gJy4vcHJvcG9zYWwuanMnXG5pbXBvcnQgUHJvcG9zZWRUbyBmcm9tICcuL3Byb3Bvc2VkVG8uanMnXG5pbXBvcnQgUHJvcG9zZWRJbnRlbnQgZnJvbSAnLi9wcm9wb3NlZEludGVudC5qcydcblxuaW1wb3J0IEFncmVlbWVudCBmcm9tICcuL2FncmVlbWVudC5qcydcbmltcG9ydCBQbGFuIGZyb20gJy4vcGxhbi5qcydcblxuLy8gdW5pb24gdHlwZSBkaXNhbWJpZ3VhdGlvblxuY29uc3QgRXZlbnRPckNvbW1pdG1lbnQgPSB7XG4gIF9fcmVzb2x2ZVR5cGU6IChvYmosIGN0eCwgaW5mbykgPT4gb2JqLl9fdHlwZW5hbWUsXG59XG5jb25zdCBQcm9kdWN0aW9uRmxvd0l0ZW0gPSB7XG4gIF9fcmVzb2x2ZVR5cGU6IChvYmosIGN0eCwgaW5mbykgPT4gb2JqLl9fdHlwZW5hbWUsXG59XG5jb25zdCBBY2NvdW50aW5nU2NvcGUgPSB7XG4gIF9fcmVzb2x2ZVR5cGU6IChvYmosIGN0eCwgaW5mbykgPT4gb2JqLl9fdHlwZW5hbWUsXG59XG5jb25zdCBUcmFja1RyYWNlSXRlbSA9IHtcbiAgX19yZXNvbHZlVHlwZTogKG9iaiwgY3R4LCBpbmZvKSA9PiBvYmouX190eXBlbmFtZSxcbn1cblxuLy8gdGhlIGRlZmF1bHQgZXhwb3J0XG5jb25zdCBnZW5lcmF0ZVJlc29sdmVycyA9IGFzeW5jIChvcHRpb25zOiBSZXNvbHZlck9wdGlvbnMpID0+IHtcbiAgY29uc3Qge1xuICAgIGVuYWJsZWRWRk1vZHVsZXMsXG4gICAgY29uZHVjdG9yVXJpLFxuICAgIGFkbWluQ29uZHVjdG9yVXJpLFxuICAgIGFwcElkLFxuICAgIGRuYUNvbmZpZyxcbiAgICB0cmFjZUFwcFNpZ25hbHMgPSB1bmRlZmluZWQsXG4gIH0gPSBvcHRpb25zXG5cbiAgY29uc3QgaGFzSGlzdG9yeSA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuSGlzdG9yeSlcbiAgY29uc3QgaGFzQWdlbnQgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkFnZW50KVxuICBjb25zdCBoYXNNZWFzdXJlbWVudCA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuTWVhc3VyZW1lbnQpXG4gIGNvbnN0IGhhc1Jlc291cmNlU3BlY2lmaWNhdGlvbiA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuUmVzb3VyY2VTcGVjaWZpY2F0aW9uKVxuICBjb25zdCBoYXNPYnNlcnZhdGlvbiA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuT2JzZXJ2YXRpb24pXG4gIGNvbnN0IGhhc1Byb2Nlc3MgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLlByb2Nlc3MpXG4gIGNvbnN0IGhhc1Byb2Nlc3NTcGVjaWZpY2F0aW9uID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5Qcm9jZXNzU3BlY2lmaWNhdGlvbilcbiAgY29uc3QgaGFzQ29tbWl0bWVudCA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuQ29tbWl0bWVudClcbiAgY29uc3QgaGFzRnVsZmlsbG1lbnQgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkZ1bGZpbGxtZW50KVxuICBjb25zdCBoYXNJbnRlbnQgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkludGVudClcbiAgY29uc3QgaGFzU2F0aXNmYWN0aW9uID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5TYXRpc2ZhY3Rpb24pXG4gIGNvbnN0IGhhc1Byb3Bvc2FsID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5Qcm9wb3NhbClcbiAgY29uc3QgaGFzQWdyZWVtZW50ID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5BZ3JlZW1lbnQpXG4gIGNvbnN0IGhhc1BsYW4gPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLlBsYW4pXG5cbiAgLy8gcHJlZmV0Y2ggY29ubmVjdGlvbiBmb3IgdGhpcyBBUEkgc2NoZW1hXG4gIC8vIGFuZCBhbHNvIHRoaXMgbWFrZXMgY2FsbHMgdG8gdGhlIGFkbWluIGNvbmR1Y3RvciB0byBhdXRob3JpemUgYSBzZXQgb2Ygc2lnbmluZ1xuICAvLyBjcmVkZW50aWFscyBmb3IgZWFjaCBDZWxsXG4gIGF3YWl0IGF1dG9Db25uZWN0KGNvbmR1Y3RvclVyaSwgYWRtaW5Db25kdWN0b3JVcmksIGFwcElkLCB0cmFjZUFwcFNpZ25hbHMpXG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe1xuICAgIC8vIHNjYWxhcnNcbiAgICBVUkksIERhdGVUaW1lLFxuICAgIC8vIHJvb3Qgc2NoZW1hc1xuICAgIFF1ZXJ5OiBRdWVyeShlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgTXV0YXRpb246IE11dGF0aW9uKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgfSxcbiAgLy8gdW5pb24gdHlwZSBkaXNhbWJpZ3VhdG9yc1xuICAoaGFzT2JzZXJ2YXRpb24gJiYgaGFzUHJvY2VzcyA/IHsgUHJvZHVjdGlvbkZsb3dJdGVtIH0gOiB7fSksXG4gIChoYXNBZ2VudCA/IHsgQWNjb3VudGluZ1Njb3BlIH0gOiB7fSksXG4gIChoYXNTYXRpc2ZhY3Rpb24gPyB7IEV2ZW50T3JDb21taXRtZW50IH0gOiB7fSksXG4gIChoYXNPYnNlcnZhdGlvbiA/IHsgVHJhY2tUcmFjZUl0ZW0gfSA6IHt9KSxcbiAgICAvLyBvYmplY3QgZmllbGQgcmVzb2x2ZXJzXG4gICAgKGhhc0hpc3RvcnkgPyB7XG4gICAgICBSZXZpc2lvbjogUmV2aXNpb24oZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgIH0gOiB7fSksXG4gICAgKGhhc0FnZW50ID8ge1xuICAgICAgQWdlbnQ6IEFnZW50KGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICAgIFBlcnNvbjogQWdlbnQoZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgICAgT3JnYW5pemF0aW9uOiBBZ2VudChlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzTWVhc3VyZW1lbnQgPyB7XG4gICAgICBNZWFzdXJlOiBNZWFzdXJlKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICAgIFVuaXQ6IFVuaXQoZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzUmVzb3VyY2VTcGVjaWZpY2F0aW9uID8geyBSZXNvdXJjZVNwZWNpZmljYXRpb246IFJlc291cmNlU3BlY2lmaWNhdGlvbihlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSkgfSA6IHt9KSxcbiAgICAoaGFzT2JzZXJ2YXRpb24gPyB7XG4gICAgICBFY29ub21pY0V2ZW50OiBFY29ub21pY0V2ZW50KGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICAgIEVjb25vbWljUmVzb3VyY2U6IEVjb25vbWljUmVzb3VyY2UoZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgIH0gOiB7fSksXG4gICAgKGhhc1Byb2Nlc3MgPyB7XG4gICAgICBQcm9jZXNzOiBQcm9jZXNzKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICB9IDoge30pLFxuICAgIChoYXNQcm9jZXNzU3BlY2lmaWNhdGlvbiA/IHtcbiAgICAgIFByb2Nlc3NTcGVjaWZpY2F0aW9uOiBQcm9jZXNzU3BlY2lmaWNhdGlvbihlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzQ29tbWl0bWVudCA/IHtcbiAgICAgIENvbW1pdG1lbnQ6IENvbW1pdG1lbnQoZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgIH0gOiB7fSksXG4gICAgKGhhc0Z1bGZpbGxtZW50ID8ge1xuICAgICAgRnVsZmlsbG1lbnQ6IEZ1bGZpbGxtZW50KGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICB9IDoge30pLFxuICAgIChoYXNJbnRlbnQgPyB7XG4gICAgICBJbnRlbnQ6IEludGVudChlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzU2F0aXNmYWN0aW9uID8ge1xuICAgICAgU2F0aXNmYWN0aW9uOiBTYXRpc2ZhY3Rpb24oZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgIH0gOiB7fSksXG4gICAgKGhhc1Byb3Bvc2FsID8ge1xuICAgICAgUHJvcG9zYWw6IFByb3Bvc2FsKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICAgIFByb3Bvc2VkSW50ZW50OiBQcm9wb3NlZEludGVudChlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzUHJvcG9zYWwgJiYgaGFzQWdlbnQgPyB7XG4gICAgICBQcm9wb3NlZFRvOiBQcm9wb3NlZFRvKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICB9IDoge30pLFxuICAgIChoYXNBZ3JlZW1lbnQgPyB7IEFncmVlbWVudDogQWdyZWVtZW50KGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSB9IDoge30pLFxuICAgIChoYXNQbGFuID8geyBQbGFuOiBQbGFuKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSB9IDoge30pLFxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IGdlbmVyYXRlUmVzb2x2ZXJzXG4iXX0=