@valueflows/vf-graphql-holochain
Version:
GraphQL schema bindings for the Holochain implementation of ValueFlows
106 lines • 20.6 kB
JavaScript
/**
* 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9yZXNvbHZlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQWtDLEdBQUcsRUFBK0IsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hHLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU5RCxPQUFPLEVBQUUsV0FBVyxFQUFrQixNQUFNLGtCQUFrQixDQUFBO0FBRTlELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFBO0FBQ3ZDLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFBO0FBRTVDLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUVwQyxPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFDbEMsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8scUJBQXFCLE1BQU0sNEJBQTRCLENBQUE7QUFFOUQsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBRTlCLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQTtBQUNsQyxPQUFPLG9CQUFvQixNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sZ0JBQWdCLE1BQU0sdUJBQXVCLENBQUE7QUFDcEQsT0FBTyxhQUFhLE1BQU0sb0JBQW9CLENBQUE7QUFFOUMsT0FBTyxVQUFVLE1BQU0saUJBQWlCLENBQUE7QUFDeEMsT0FBTyxXQUFXLE1BQU0sa0JBQWtCLENBQUE7QUFFMUMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sWUFBWSxNQUFNLG1CQUFtQixDQUFBO0FBRTVDLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUNwQyxPQUFPLFVBQVUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QyxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQTtBQUVoRCxPQUFPLFNBQVMsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN0QyxPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFFNUIsNEJBQTRCO0FBQzVCLE1BQU0saUJBQWlCLEdBQUc7SUFDeEIsYUFBYSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVO0NBQ2xELENBQUE7QUFDRCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVTtDQUNsRCxDQUFBO0FBQ0QsTUFBTSxlQUFlLEdBQUc7SUFDdEIsYUFBYSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVO0NBQ2xELENBQUE7QUFDRCxNQUFNLGNBQWMsR0FBRztJQUNyQixhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVU7Q0FDbEQsQ0FBQTtBQUVELHFCQUFxQjtBQUNyQixNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxPQUF3QixFQUFFLEVBQUU7SUFDM0QsTUFBTSxFQUNKLGdCQUFnQixFQUNoQixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxTQUFTLEVBQ1QsZUFBZSxHQUFHLFNBQVMsR0FDNUIsR0FBRyxPQUFPLENBQUE7SUFFWCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BFLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUM1RSxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUNoRyxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzVFLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEUsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDOUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMxRSxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzVFLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM5RSxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3RFLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDeEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUU5RCwwQ0FBMEM7SUFDMUMsaUZBQWlGO0lBQ2pGLDRCQUE0QjtJQUM1QixNQUFNLFdBQVcsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFBO0lBRTFFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNuQixVQUFVO1FBQ1YsR0FBRyxFQUFFLFFBQVE7UUFDYixlQUFlO1FBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDO1FBQ3ZELFFBQVEsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztLQUM5RDtJQUNELDRCQUE0QjtJQUM1QixDQUFDLGNBQWMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzVELENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDckMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQzlDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEMseUJBQXlCO0lBQ3pCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNaLFFBQVEsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztLQUM5RCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDVixLQUFLLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUM7UUFDdkQsTUFBTSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDO1FBQ3hELFlBQVksRUFBRSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztLQUMvRCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDO1FBQzNELElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztLQUN0RCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDN0gsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLGFBQWEsRUFBRSxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztRQUN2RSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQzlFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNQLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNaLE9BQU8sRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztLQUM1RCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUN6QixvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3RGLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNQLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNmLFVBQVUsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztLQUNsRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3BFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNQLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNYLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztLQUMxRCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDUCxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDakIsWUFBWSxFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDO0tBQ3RFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNQLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNiLFFBQVEsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztRQUM3RCxjQUFjLEVBQUUsY0FBYyxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUM7S0FDMUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ1AsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN6QixVQUFVLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUM7S0FDbEUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ1AsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ3pGLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUMzRSxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsZUFBZSxpQkFBaUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVzb2x2ZXIgY2FsbGJhY2tzIHRvIGJpbmQgdmYtZ3JhcGhxbCB3aXRoIEhvbG9SRUEgRE5Bc1xuICpcbiAqIEBwYWNrYWdlOiBIb2xvUkVBXG4gKiBAc2luY2U6ICAgMjAxOS0wNS0yMFxuICovXG5cbmltcG9ydCB7IEROQUlkTWFwcGluZ3MsIFJlc29sdmVyT3B0aW9ucywgVVJJLCBEZWNpbWFsLCBERUZBVUxUX1ZGX01PRFVMRVMsIFZmTW9kdWxlIH0gZnJvbSAnLi4vdHlwZXMuanMnXG5pbXBvcnQgeyBEYXRlVGltZVJlc29sdmVyIGFzIERhdGVUaW1lIH0gZnJvbSAnZ3JhcGhxbC1zY2FsYXJzJ1xuXG5pbXBvcnQgeyBhdXRvQ29ubmVjdCwgb3BlbkNvbm5lY3Rpb24gfSBmcm9tICcuLi9jb25uZWN0aW9uLmpzJ1xuXG5pbXBvcnQgUXVlcnkgZnJvbSAnLi4vcXVlcmllcy9pbmRleC5qcydcbmltcG9ydCBNdXRhdGlvbiBmcm9tICcuLi9tdXRhdGlvbnMvaW5kZXguanMnXG5cbmltcG9ydCBSZXZpc2lvbiBmcm9tICcuL3JldmlzaW9uLmpzJ1xuXG5pbXBvcnQgTWVhc3VyZSBmcm9tICcuL21lYXN1cmUuanMnXG5pbXBvcnQgVW5pdCBmcm9tICcuL3VuaXQuanMnXG5pbXBvcnQgUmVzb3VyY2VTcGVjaWZpY2F0aW9uIGZyb20gJy4vcmVzb3VyY2VTcGVjaWZpY2F0aW9uLmpzJ1xuXG5pbXBvcnQgQWdlbnQgZnJvbSAnLi9hZ2VudC5qcydcblxuaW1wb3J0IFByb2Nlc3MgZnJvbSAnLi9wcm9jZXNzLmpzJ1xuaW1wb3J0IFByb2Nlc3NTcGVjaWZpY2F0aW9uIGZyb20gJy4vcHJvY2Vzc1NwZWNpZmljYXRpb24uanMnXG5pbXBvcnQgRWNvbm9taWNSZXNvdXJjZSBmcm9tICcuL2Vjb25vbWljUmVzb3VyY2UuanMnXG5pbXBvcnQgRWNvbm9taWNFdmVudCBmcm9tICcuL2Vjb25vbWljRXZlbnQuanMnXG5cbmltcG9ydCBDb21taXRtZW50IGZyb20gJy4vY29tbWl0bWVudC5qcydcbmltcG9ydCBGdWxmaWxsbWVudCBmcm9tICcuL2Z1bGZpbGxtZW50LmpzJ1xuXG5pbXBvcnQgSW50ZW50IGZyb20gJy4vaW50ZW50LmpzJ1xuaW1wb3J0IFNhdGlzZmFjdGlvbiBmcm9tICcuL3NhdGlzZmFjdGlvbi5qcydcblxuaW1wb3J0IFByb3Bvc2FsIGZyb20gJy4vcHJvcG9zYWwuanMnXG5pbXBvcnQgUHJvcG9zZWRUbyBmcm9tICcuL3Byb3Bvc2VkVG8uanMnXG5pbXBvcnQgUHJvcG9zZWRJbnRlbnQgZnJvbSAnLi9wcm9wb3NlZEludGVudC5qcydcblxuaW1wb3J0IEFncmVlbWVudCBmcm9tICcuL2FncmVlbWVudC5qcydcbmltcG9ydCBQbGFuIGZyb20gJy4vcGxhbi5qcydcblxuLy8gdW5pb24gdHlwZSBkaXNhbWJpZ3VhdGlvblxuY29uc3QgRXZlbnRPckNvbW1pdG1lbnQgPSB7XG4gIF9fcmVzb2x2ZVR5cGU6IChvYmosIGN0eCwgaW5mbykgPT4gb2JqLl9fdHlwZW5hbWUsXG59XG5jb25zdCBQcm9kdWN0aW9uRmxvd0l0ZW0gPSB7XG4gIF9fcmVzb2x2ZVR5cGU6IChvYmosIGN0eCwgaW5mbykgPT4gb2JqLl9fdHlwZW5hbWUsXG59XG5jb25zdCBBY2NvdW50aW5nU2NvcGUgPSB7XG4gIF9fcmVzb2x2ZVR5cGU6IChvYmosIGN0eCwgaW5mbykgPT4gb2JqLl9fdHlwZW5hbWUsXG59XG5jb25zdCBUcmFja1RyYWNlSXRlbSA9IHtcbiAgX19yZXNvbHZlVHlwZTogKG9iaiwgY3R4LCBpbmZvKSA9PiBvYmouX190eXBlbmFtZSxcbn1cblxuLy8gdGhlIGRlZmF1bHQgZXhwb3J0XG5jb25zdCBnZW5lcmF0ZVJlc29sdmVycyA9IGFzeW5jIChvcHRpb25zOiBSZXNvbHZlck9wdGlvbnMpID0+IHtcbiAgY29uc3Qge1xuICAgIGVuYWJsZWRWRk1vZHVsZXMsXG4gICAgY29uZHVjdG9yVXJpLFxuICAgIGFkbWluQ29uZHVjdG9yVXJpLFxuICAgIGFwcElkLFxuICAgIGRuYUNvbmZpZyxcbiAgICB0cmFjZUFwcFNpZ25hbHMgPSB1bmRlZmluZWQsXG4gIH0gPSBvcHRpb25zXG5cbiAgY29uc3QgaGFzSGlzdG9yeSA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuSGlzdG9yeSlcbiAgY29uc3QgaGFzQWdlbnQgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkFnZW50KVxuICBjb25zdCBoYXNNZWFzdXJlbWVudCA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuTWVhc3VyZW1lbnQpXG4gIGNvbnN0IGhhc1Jlc291cmNlU3BlY2lmaWNhdGlvbiA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuUmVzb3VyY2VTcGVjaWZpY2F0aW9uKVxuICBjb25zdCBoYXNPYnNlcnZhdGlvbiA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuT2JzZXJ2YXRpb24pXG4gIGNvbnN0IGhhc1Byb2Nlc3MgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLlByb2Nlc3MpXG4gIGNvbnN0IGhhc1Byb2Nlc3NTcGVjaWZpY2F0aW9uID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5Qcm9jZXNzU3BlY2lmaWNhdGlvbilcbiAgY29uc3QgaGFzQ29tbWl0bWVudCA9IC0xICE9PSBlbmFibGVkVkZNb2R1bGVzLmluZGV4T2YoVmZNb2R1bGUuQ29tbWl0bWVudClcbiAgY29uc3QgaGFzRnVsZmlsbG1lbnQgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkZ1bGZpbGxtZW50KVxuICBjb25zdCBoYXNJbnRlbnQgPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLkludGVudClcbiAgY29uc3QgaGFzU2F0aXNmYWN0aW9uID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5TYXRpc2ZhY3Rpb24pXG4gIGNvbnN0IGhhc1Byb3Bvc2FsID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5Qcm9wb3NhbClcbiAgY29uc3QgaGFzQWdyZWVtZW50ID0gLTEgIT09IGVuYWJsZWRWRk1vZHVsZXMuaW5kZXhPZihWZk1vZHVsZS5BZ3JlZW1lbnQpXG4gIGNvbnN0IGhhc1BsYW4gPSAtMSAhPT0gZW5hYmxlZFZGTW9kdWxlcy5pbmRleE9mKFZmTW9kdWxlLlBsYW4pXG5cbiAgLy8gcHJlZmV0Y2ggY29ubmVjdGlvbiBmb3IgdGhpcyBBUEkgc2NoZW1hXG4gIC8vIGFuZCBhbHNvIHRoaXMgbWFrZXMgY2FsbHMgdG8gdGhlIGFkbWluIGNvbmR1Y3RvciB0byBhdXRob3JpemUgYSBzZXQgb2Ygc2lnbmluZ1xuICAvLyBjcmVkZW50aWFscyBmb3IgZWFjaCBDZWxsXG4gIGF3YWl0IGF1dG9Db25uZWN0KGNvbmR1Y3RvclVyaSwgYWRtaW5Db25kdWN0b3JVcmksIGFwcElkLCB0cmFjZUFwcFNpZ25hbHMpXG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe1xuICAgIC8vIHNjYWxhcnNcbiAgICBVUkksIERhdGVUaW1lLFxuICAgIC8vIHJvb3Qgc2NoZW1hc1xuICAgIFF1ZXJ5OiBRdWVyeShlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgTXV0YXRpb246IE11dGF0aW9uKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgfSxcbiAgLy8gdW5pb24gdHlwZSBkaXNhbWJpZ3VhdG9yc1xuICAoaGFzT2JzZXJ2YXRpb24gJiYgaGFzUHJvY2VzcyA/IHsgUHJvZHVjdGlvbkZsb3dJdGVtIH0gOiB7fSksXG4gIChoYXNBZ2VudCA/IHsgQWNjb3VudGluZ1Njb3BlIH0gOiB7fSksXG4gIChoYXNTYXRpc2ZhY3Rpb24gPyB7IEV2ZW50T3JDb21taXRtZW50IH0gOiB7fSksXG4gIChoYXNPYnNlcnZhdGlvbiA/IHsgVHJhY2tUcmFjZUl0ZW0gfSA6IHt9KSxcbiAgICAvLyBvYmplY3QgZmllbGQgcmVzb2x2ZXJzXG4gICAgKGhhc0hpc3RvcnkgPyB7XG4gICAgICBSZXZpc2lvbjogUmV2aXNpb24oZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgIH0gOiB7fSksXG4gICAgKGhhc0FnZW50ID8ge1xuICAgICAgQWdlbnQ6IEFnZW50KGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICAgIFBlcnNvbjogQWdlbnQoZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgICAgT3JnYW5pemF0aW9uOiBBZ2VudChlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzTWVhc3VyZW1lbnQgPyB7XG4gICAgICBNZWFzdXJlOiBNZWFzdXJlKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICAgIFVuaXQ6IFVuaXQoZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzUmVzb3VyY2VTcGVjaWZpY2F0aW9uID8geyBSZXNvdXJjZVNwZWNpZmljYXRpb246IFJlc291cmNlU3BlY2lmaWNhdGlvbihlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSkgfSA6IHt9KSxcbiAgICAoaGFzT2JzZXJ2YXRpb24gPyB7XG4gICAgICBFY29ub21pY0V2ZW50OiBFY29ub21pY0V2ZW50KGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICAgIEVjb25vbWljUmVzb3VyY2U6IEVjb25vbWljUmVzb3VyY2UoZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgIH0gOiB7fSksXG4gICAgKGhhc1Byb2Nlc3MgPyB7XG4gICAgICBQcm9jZXNzOiBQcm9jZXNzKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICB9IDoge30pLFxuICAgIChoYXNQcm9jZXNzU3BlY2lmaWNhdGlvbiA/IHtcbiAgICAgIFByb2Nlc3NTcGVjaWZpY2F0aW9uOiBQcm9jZXNzU3BlY2lmaWNhdGlvbihlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzQ29tbWl0bWVudCA/IHtcbiAgICAgIENvbW1pdG1lbnQ6IENvbW1pdG1lbnQoZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgIH0gOiB7fSksXG4gICAgKGhhc0Z1bGZpbGxtZW50ID8ge1xuICAgICAgRnVsZmlsbG1lbnQ6IEZ1bGZpbGxtZW50KGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICB9IDoge30pLFxuICAgIChoYXNJbnRlbnQgPyB7XG4gICAgICBJbnRlbnQ6IEludGVudChlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzU2F0aXNmYWN0aW9uID8ge1xuICAgICAgU2F0aXNmYWN0aW9uOiBTYXRpc2ZhY3Rpb24oZW5hYmxlZFZGTW9kdWxlcywgZG5hQ29uZmlnLCBjb25kdWN0b3JVcmkpLFxuICAgIH0gOiB7fSksXG4gICAgKGhhc1Byb3Bvc2FsID8ge1xuICAgICAgUHJvcG9zYWw6IFByb3Bvc2FsKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICAgIFByb3Bvc2VkSW50ZW50OiBQcm9wb3NlZEludGVudChlbmFibGVkVkZNb2R1bGVzLCBkbmFDb25maWcsIGNvbmR1Y3RvclVyaSksXG4gICAgfSA6IHt9KSxcbiAgICAoaGFzUHJvcG9zYWwgJiYgaGFzQWdlbnQgPyB7XG4gICAgICBQcm9wb3NlZFRvOiBQcm9wb3NlZFRvKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSxcbiAgICB9IDoge30pLFxuICAgIChoYXNBZ3JlZW1lbnQgPyB7IEFncmVlbWVudDogQWdyZWVtZW50KGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSB9IDoge30pLFxuICAgIChoYXNQbGFuID8geyBQbGFuOiBQbGFuKGVuYWJsZWRWRk1vZHVsZXMsIGRuYUNvbmZpZywgY29uZHVjdG9yVXJpKSB9IDoge30pLFxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IGdlbmVyYXRlUmVzb2x2ZXJzXG4iXX0=