Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@aws-c2a/models

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-c2a/models - npm Package Compare versions

Comparing version 0.3.3 to 0.3.8

.eslintrc.js

72

aggregations/aggregation.ts

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

import { JSONSerializable, Serialized } from "../export/json-serializable";
import { SerializationClasses } from "../export/serialization-classes";
import { SerializedAggregation } from "../export/serialized-interfaces/aggregations/serialized-aggregation";
import { JSONSerializable, Serialized } from '../export/json-serializable';
import { SerializationClasses } from '../export/serialization-classes';
import { SerializedAggregation } from '../export/serialized-interfaces/aggregations/serialized-aggregation';

@@ -8,47 +8,47 @@ export type AggCharacteristicValue = string | number | boolean | undefined;

export interface Aggregation<T> {
entities: Set<T>,
characteristics: Record<string, AggCharacteristicValue>,
subAggs?: Aggregation<T>[],
parentAgg?: Aggregation<T>,
descriptions?: string[]
entities: Set<T>,
characteristics: Record<string, AggCharacteristicValue>,
subAggs?: Aggregation<T>[],
parentAgg?: Aggregation<T>,
descriptions?: string[]
}
export const aggregationSerializer = <T extends JSONSerializable>(
ig: Aggregation<T>,
serialize: (obj: JSONSerializable) => number,
serializeCustom: (obj: any, serializationClass: string, serialized: Serialized) => number
ig: Aggregation<T>,
serialize: (obj: JSONSerializable) => number,
serializeCustom: (obj: any, serializationClass: string, serialized: Serialized) => number,
): SerializedAggregation => {
return {
entities: [...ig.entities].map(e => serialize(e)),
characteristics: ig.characteristics,
subAggs: ig.subAggs?.map(sg => serializeCustom(
sg, SerializationClasses.AGGREGATION, aggregationSerializer(sg, serialize, serializeCustom)
)),
descriptions: ig.descriptions
};
return {
entities: [...ig.entities].map(e => serialize(e)),
characteristics: ig.characteristics,
subAggs: ig.subAggs?.map(sg => serializeCustom(
sg, SerializationClasses.AGGREGATION, aggregationSerializer(sg, serialize, serializeCustom),
)),
descriptions: ig.descriptions,
};
};
export const getAllDescriptions = <T>(agg: Aggregation<T>): string[] => {
const result: string[] = [];
let a: Aggregation<T> | undefined = agg;
while(a){
if(a.descriptions)
result.unshift(...a.descriptions);
a = a.parentAgg;
}
const result: string[] = [];
return result;
let a: Aggregation<T> | undefined = agg;
while(a){
if(a.descriptions)
result.unshift(...a.descriptions);
a = a.parentAgg;
}
return result;
};
export const getAllCharacteristics = <T>(agg: Aggregation<T>): Record<string, AggCharacteristicValue> => {
let result: Record<string, AggCharacteristicValue> = {};
let a: Aggregation<T> | undefined = agg;
while(a){
result = {...result, ...a.characteristics};
a = a.parentAgg;
}
let result: Record<string, AggCharacteristicValue> = {};
return result;
let a: Aggregation<T> | undefined = agg;
while(a){
result = {...result, ...a.characteristics};
a = a.parentAgg;
}
return result;
};
export enum CompOpAggCharacteristics {
RISK = "RISK",
AFFECTED_ENTITY = 'Affected Entity',
COMPONENT_TYPE = 'Component Type',
COMPONENT_SUBTYPE = 'Component Subtype',
OPERATION_CAUSE = 'Operation Cause',
OPERATION_CERTAINTY = 'Operation Certainty',
OPERATION_TYPE = 'Operation Type',
ENTITY_OPERATION_TYPE = 'Entity Operation Type',
PROPERTY_PATH_BEFORE = 'Previous Property Path',
PROPERTY_PATH_AFTER = 'Property Path',
PROPERTY_VALUE_BEFORE = 'Previous Property Value',
PROPERTY_VALUE_AFTER = 'Property Value',
RISK = 'RISK',
AFFECTED_ENTITY = 'Affected Entity',
COMPONENT_TYPE = 'Component Type',
COMPONENT_SUBTYPE = 'Component Subtype',
OPERATION_CAUSE = 'Operation Cause',
OPERATION_CERTAINTY = 'Operation Certainty',
OPERATION_TYPE = 'Operation Type',
ENTITY_OPERATION_TYPE = 'Entity Operation Type',
PROPERTY_PATH_BEFORE = 'Previous Property Path',
PROPERTY_PATH_AFTER = 'Property Path',
PROPERTY_VALUE_BEFORE = 'Previous Property Value',
PROPERTY_VALUE_AFTER = 'Property Value',
}

@@ -1,50 +0,50 @@

import { JSONSerializable, Serialized } from "../export/json-serializable";
import { SerializationClasses } from "../export/serialization-classes";
import { SerializedChangeAnalysisReport } from "../export/serialized-interfaces/serialized-change-analysis-report";
import { Aggregation, aggregationSerializer } from "../aggregations";
import { ComponentOperation, InfraModelDiff, Transition, UpdatePropertyComponentOperation } from "../model-diffing";
import { Component } from "../infra-model";
import { RuleEffect } from "../rules";
import { fromEntries } from "../utils";
import { Aggregation, aggregationSerializer } from '../aggregations';
import { JSONSerializable, Serialized } from '../export/json-serializable';
import { SerializationClasses } from '../export/serialization-classes';
import { SerializedChangeAnalysisReport } from '../export/serialized-interfaces/serialized-change-analysis-report';
import { Component } from '../infra-model';
import { ComponentOperation, InfraModelDiff, Transition } from '../model-diffing';
import { RuleEffect } from '../rules';
import { fromEntries } from '../utils';
export class ChangeAnalysisReport implements JSONSerializable {
constructor(
public readonly infraModelDiff: InfraModelDiff,
public readonly aggregations: Aggregation<ComponentOperation>[],
public readonly aggregationsPerComponent: Map<Transition<Component>, Aggregation<ComponentOperation>[]>,
public readonly rulesOutput: Map<ComponentOperation, RuleEffect>,
){}
constructor(
public readonly infraModelDiff: InfraModelDiff,
public readonly aggregations: Aggregation<ComponentOperation>[],
public readonly aggregationsPerComponent: Map<Transition<Component>, Aggregation<ComponentOperation>[]>,
public readonly rulesOutput: Map<ComponentOperation, RuleEffect>,
){}
toSerialized(
serialize: (obj: JSONSerializable) => number,
serializeCustom: (obj: any, serializationClass: string, serialized: Serialized) => number
): SerializedChangeAnalysisReport {
return {
infraModelDiff: serialize(this.infraModelDiff),
aggregations: this.aggregations.map(agg => this.serializeAgg(agg, serialize, serializeCustom)),
aggregationsPerComponent: fromEntries(
[...this.aggregationsPerComponent].map(([compTransition, aggArr]) => {
return [serialize(compTransition), aggArr.map(agg => this.serializeAgg(agg, serialize, serializeCustom))];
})
),
rulesOutput: fromEntries(
[...this.rulesOutput].map(([op, effect]) => [serialize(op), effect])
)
};
}
toSerialized(
serialize: (obj: JSONSerializable) => number,
serializeCustom: (obj: any, serializationClass: string, serialized: Serialized) => number,
): SerializedChangeAnalysisReport {
return {
infraModelDiff: serialize(this.infraModelDiff),
aggregations: this.aggregations.map(agg => this.serializeAgg(agg, serialize, serializeCustom)),
aggregationsPerComponent: fromEntries(
[...this.aggregationsPerComponent].map(([compTransition, aggArr]) => {
return [serialize(compTransition), aggArr.map(agg => this.serializeAgg(agg, serialize, serializeCustom))];
}),
),
rulesOutput: fromEntries(
[...this.rulesOutput].map(([op, effect]) => [serialize(op), effect]),
),
};
}
private serializeAgg(agg: Aggregation<ComponentOperation>,
serialize: (obj: JSONSerializable) => number,
serializeCustom: (obj: any, serializationClass: string, serialized: Serialized) => number){
return serializeCustom(
agg,
SerializationClasses.AGGREGATION,
aggregationSerializer(agg, serialize, serializeCustom)
);
}
private serializeAgg(agg: Aggregation<ComponentOperation>,
serialize: (obj: JSONSerializable) => number,
serializeCustom: (obj: any, serializationClass: string, serialized: Serialized) => number){
return serializeCustom(
agg,
SerializationClasses.AGGREGATION,
aggregationSerializer(agg, serialize, serializeCustom),
);
}
getSerializationClass(): string {
return SerializationClasses.CHANGE_ANALYSIS_REPORT;
}
getSerializationClass(): string {
return SerializationClasses.CHANGE_ANALYSIS_REPORT;
}
}

@@ -1,15 +0,15 @@

import { SerializationClasses } from './serialization-classes';
import { aggregationDeserializer } from './deserializers/aggregations/aggregation-deserializer';
import { changeAnalysisReportDeserializer } from './deserializers/change-analysis-report-deserializer';
import { insertComponentOperationDeserializer, removeComponentOperationDeserializer, renameComponentOperationDeserializer, replaceComponentOperationDeserializer } from './deserializers/infra-model-diff/component-operations/component-operation-deserializers';
import { insertPropertyComponentOperationDeserializer, movePropertyComponentOperationDeserializer, removePropertyComponentOperationDeserializer, updatePropertyComponentOperationDeserializer } from './deserializers/infra-model-diff/component-operations/property-component-operation-deserializer';
import { infraModelDiffDeserializer } from './deserializers/infra-model-diff/infra-model-diff-deserializer';
import { componentDeserializer } from './deserializers/infra-model/component-deserializer';
import { componentPropertyArrayDeserializer, componentPropertyEmptyDeserializer, componentPropertyPrimitiveDeserializer, componentPropertyRecordDeserializer } from './deserializers/infra-model/component-property-deserializer';
import { dependencyRelationshipDeserializer } from './deserializers/infra-model/dependency-relationship-deserializer';
import { infraModelDeserializer } from './deserializers/infra-model/infra-model-deserializer';
import { structuralRelationshipDeserializer } from './deserializers/infra-model/structural-relationship-deserializer';
import { infraModelDeserializer } from './deserializers/infra-model/infra-model-deserializer';
import { componentPropertyArrayDeserializer, componentPropertyEmptyDeserializer, componentPropertyPrimitiveDeserializer, componentPropertyRecordDeserializer } from './deserializers/infra-model/component-property-deserializer';
import { infraModelDiffDeserializer } from './deserializers/infra-model-diff/infra-model-diff-deserializer';
import { transitionDeserializer } from './deserializers/transition-deserializer';
import { JSONSerializable, Serialized } from './json-serializable';
import { SerializationID } from './json-serializer';
import { JSONSerializable, Serialized } from './json-serializable';
import { aggregationDeserializer } from './deserializers/aggregations/aggregation-deserializer';
import { transitionDeserializer } from './deserializers/transition-deserializer';
import { changeAnalysisReportDeserializer } from './deserializers/change-analysis-report-deserializer';
import { SerializationClasses } from './serialization-classes';

@@ -22,27 +22,27 @@ type classDeserializer = (obj: Serialized, deserialize: (id: SerializationID) => JSONSerializable) => any;

export const classToDeserializer: Record<string, classDeserializer> = Object.freeze({
// Infra Model
[SerializationClasses.COMPONENT]: componentDeserializer,
[SerializationClasses.DEPENDENCY_RELATIONSHIP]: dependencyRelationshipDeserializer,
[SerializationClasses.STRUCTURAL_RELATIONSHIP]: structuralRelationshipDeserializer,
[SerializationClasses.INFRA_MODEL]: infraModelDeserializer,
[SerializationClasses.COMPONENT_PROPERTY_RECORD]: componentPropertyRecordDeserializer,
[SerializationClasses.COMPONENT_PROPERTY_ARRAY]: componentPropertyArrayDeserializer,
[SerializationClasses.COMPONENT_PROPERTY_EMPTY]: componentPropertyEmptyDeserializer,
[SerializationClasses.COMPONENT_PROPERTY_PRIMITIVE]: componentPropertyPrimitiveDeserializer,
// Infra Model
[SerializationClasses.COMPONENT]: componentDeserializer,
[SerializationClasses.DEPENDENCY_RELATIONSHIP]: dependencyRelationshipDeserializer,
[SerializationClasses.STRUCTURAL_RELATIONSHIP]: structuralRelationshipDeserializer,
[SerializationClasses.INFRA_MODEL]: infraModelDeserializer,
[SerializationClasses.COMPONENT_PROPERTY_RECORD]: componentPropertyRecordDeserializer,
[SerializationClasses.COMPONENT_PROPERTY_ARRAY]: componentPropertyArrayDeserializer,
[SerializationClasses.COMPONENT_PROPERTY_EMPTY]: componentPropertyEmptyDeserializer,
[SerializationClasses.COMPONENT_PROPERTY_PRIMITIVE]: componentPropertyPrimitiveDeserializer,
// Infra Model Diff
[SerializationClasses.INFRA_MODEL_DIFF]: infraModelDiffDeserializer,
[SerializationClasses.TRANSITION]: transitionDeserializer,
[SerializationClasses.INSERT_COMPONENT_OPERATION]: insertComponentOperationDeserializer,
[SerializationClasses.REMOVE_COMPONENT_OPERATION]: removeComponentOperationDeserializer,
[SerializationClasses.REPLACE_COMPONENT_OPERATION]: replaceComponentOperationDeserializer,
[SerializationClasses.RENAME_COMPONENT_OPERATION]: renameComponentOperationDeserializer,
[SerializationClasses.INSERT_PROPERTY_COMPONENT_OPERATION]: insertPropertyComponentOperationDeserializer,
[SerializationClasses.REMOVE_PROPERTY_COMPONENT_OPERATION]: removePropertyComponentOperationDeserializer,
[SerializationClasses.UPDATE_PROPERTY_COMPONENT_OPERATION]: updatePropertyComponentOperationDeserializer,
[SerializationClasses.MOVE_PROPERTY_COMPONENT_OPERATION]: movePropertyComponentOperationDeserializer,
// Infra Model Diff
[SerializationClasses.INFRA_MODEL_DIFF]: infraModelDiffDeserializer,
[SerializationClasses.TRANSITION]: transitionDeserializer,
[SerializationClasses.INSERT_COMPONENT_OPERATION]: insertComponentOperationDeserializer,
[SerializationClasses.REMOVE_COMPONENT_OPERATION]: removeComponentOperationDeserializer,
[SerializationClasses.REPLACE_COMPONENT_OPERATION]: replaceComponentOperationDeserializer,
[SerializationClasses.RENAME_COMPONENT_OPERATION]: renameComponentOperationDeserializer,
[SerializationClasses.INSERT_PROPERTY_COMPONENT_OPERATION]: insertPropertyComponentOperationDeserializer,
[SerializationClasses.REMOVE_PROPERTY_COMPONENT_OPERATION]: removePropertyComponentOperationDeserializer,
[SerializationClasses.UPDATE_PROPERTY_COMPONENT_OPERATION]: updatePropertyComponentOperationDeserializer,
[SerializationClasses.MOVE_PROPERTY_COMPONENT_OPERATION]: movePropertyComponentOperationDeserializer,
[SerializationClasses.AGGREGATION]: aggregationDeserializer,
[SerializationClasses.AGGREGATION]: aggregationDeserializer,
[SerializationClasses.CHANGE_ANALYSIS_REPORT]: changeAnalysisReportDeserializer,
[SerializationClasses.CHANGE_ANALYSIS_REPORT]: changeAnalysisReportDeserializer,
});

@@ -1,20 +0,23 @@

import { Aggregation } from "../../../aggregations";
import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedAggregation } from "../../serialized-interfaces/aggregations/serialized-aggregation";
import { Aggregation } from '../../../aggregations';
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
import { SerializedAggregation } from '../../serialized-interfaces/aggregations/serialized-aggregation';
export function aggregationDeserializer<T extends JSONSerializable>(obj: Serialized, deserialize: (obj: SerializationID) => any): Aggregation<T> {
const serialized = obj as SerializedAggregation;
export function aggregationDeserializer<T extends JSONSerializable>(
obj: Serialized,
deserialize: (obj: SerializationID) => any,
): Aggregation<T> {
const serialized = obj as SerializedAggregation;
const agg = {
entities: new Set(serialized.entities.map(deserialize) as T[]),
characteristics: serialized.characteristics,
subAggs: serialized.subAggs?.map(deserialize) as Aggregation<T>[],
descriptions: serialized.descriptions
};
const agg = {
entities: new Set(serialized.entities.map(deserialize) as T[]),
characteristics: serialized.characteristics,
subAggs: serialized.subAggs?.map(deserialize) as Aggregation<T>[],
descriptions: serialized.descriptions,
};
if(agg.subAggs)
agg.subAggs.forEach(a => a.parentAgg = agg);
if(agg.subAggs)
agg.subAggs.forEach(a => a.parentAgg = agg);
return agg;
return agg;
}

@@ -1,18 +0,25 @@

import { ChangeAnalysisReport } from "../../change-analysis-report";
import { Aggregation } from "../../aggregations";
import { ComponentOperation, InfraModelDiff, Transition } from "../../model-diffing";
import { JSONSerializable, Serialized } from "../json-serializable";
import { SerializationID } from "../json-serializer";
import { SerializedChangeAnalysisReport } from "../serialized-interfaces/serialized-change-analysis-report";
import { Component } from "../../infra-model";
import { Aggregation } from '../../aggregations';
import { ChangeAnalysisReport } from '../../change-analysis-report';
import { Component } from '../../infra-model';
import { ComponentOperation, InfraModelDiff, Transition } from '../../model-diffing';
import { JSONSerializable, Serialized } from '../json-serializable';
import { SerializationID } from '../json-serializer';
import { SerializedChangeAnalysisReport } from '../serialized-interfaces/serialized-change-analysis-report';
export function changeAnalysisReportDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => any): JSONSerializable {
const serialized = obj as SerializedChangeAnalysisReport;
export function changeAnalysisReportDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => any,
): JSONSerializable {
const serialized = obj as SerializedChangeAnalysisReport;
return new ChangeAnalysisReport(
deserialize(serialized.infraModelDiff) as InfraModelDiff,
serialized.aggregations.map(deserialize) as Aggregation<ComponentOperation>[],
new Map(Object.entries(serialized.aggregationsPerComponent).map(([k,v]) => [deserialize(parseInt(k)) as Transition<Component>, v.map(deserialize) as Aggregation<ComponentOperation>[]])),
new Map(Object.entries(serialized.rulesOutput).map(([id, effect]) => [deserialize(parseInt(id)), effect]))
);
return new ChangeAnalysisReport(
deserialize(serialized.infraModelDiff) as InfraModelDiff,
serialized.aggregations.map(deserialize) as Aggregation<ComponentOperation>[],
new Map(Object.entries(serialized.aggregationsPerComponent)
.map(([k,v]) => [
deserialize(parseInt(k)) as Transition<Component>,
v.map(deserialize) as Aggregation<ComponentOperation>[],
])),
new Map(Object.entries(serialized.rulesOutput).map(([id, effect]) => [deserialize(parseInt(id)), effect])),
);
}
import {
InsertComponentOperation,
RemoveComponentOperation,
RenameComponentOperation,
ReplaceComponentOperation,
} from "../../../../model-diffing/";
import { JSONSerializable, Serialized } from "../../../json-serializable";
import { SerializationID } from "../../../json-serializer";
import { SerializedComponentOperation } from "../../../serialized-interfaces/infra-model-diff/serialized-component-operation";
import { deserializeOpNodeData, deserializeOpOutoingNodeReferences } from "./utils";
InsertComponentOperation,
RemoveComponentOperation,
RenameComponentOperation,
ReplaceComponentOperation,
} from '../../../../model-diffing/';
import { JSONSerializable, Serialized } from '../../../json-serializable';
import { SerializationID } from '../../../json-serializer';
import { SerializedComponentOperation } from '../../../serialized-interfaces/infra-model-diff/serialized-component-operation';
import { deserializeOpNodeData, deserializeOpOutoingNodeReferences } from './utils';
export function insertComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serialized = obj as SerializedComponentOperation;
export function insertComponentOperationDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serialized = obj as SerializedComponentOperation;
return new InsertComponentOperation(
deserializeOpNodeData(serialized),
deserializeOpOutoingNodeReferences(serialized, deserialize),
);
return new InsertComponentOperation(
deserializeOpNodeData(serialized),
deserializeOpOutoingNodeReferences(serialized, deserialize),
);
}
export function removeComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serialized = obj as SerializedComponentOperation;
export function removeComponentOperationDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serialized = obj as SerializedComponentOperation;
return new RemoveComponentOperation(
deserializeOpNodeData(serialized),
deserializeOpOutoingNodeReferences(serialized, deserialize),
);
return new RemoveComponentOperation(
deserializeOpNodeData(serialized),
deserializeOpOutoingNodeReferences(serialized, deserialize),
);
}
export function replaceComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serialized = obj as SerializedComponentOperation;
export function replaceComponentOperationDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serialized = obj as SerializedComponentOperation;
return new ReplaceComponentOperation(
deserializeOpNodeData(serialized),
deserializeOpOutoingNodeReferences(serialized, deserialize),
);
return new ReplaceComponentOperation(
deserializeOpNodeData(serialized),
deserializeOpOutoingNodeReferences(serialized, deserialize),
);
}
export function renameComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serialized = obj as SerializedComponentOperation;
export function renameComponentOperationDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serialized = obj as SerializedComponentOperation;
return new RenameComponentOperation(
deserializeOpNodeData(serialized),
deserializeOpOutoingNodeReferences(serialized, deserialize),
);
return new RenameComponentOperation(
deserializeOpNodeData(serialized),
deserializeOpOutoingNodeReferences(serialized, deserialize),
);
}
import {
InsertPropertyComponentOperation,
MovePropertyComponentOperation,
RemovePropertyComponentOperation,
} from "../../../../model-diffing/";
import { JSONSerializable, Serialized } from "../../../json-serializable";
import { SerializationID } from "../../../json-serializer";
import { SerializedPropertyComponentOperation } from "../../../serialized-interfaces/infra-model-diff/serialized-component-operation";
import { deserializeOpNodeData, deserializePropOpOutoingNodeReferences, deserializeUpdatePropOpOutoingNodeReferences } from "./utils";
InsertPropertyComponentOperation,
MovePropertyComponentOperation,
RemovePropertyComponentOperation,
} from '../../../../model-diffing/';
import { JSONSerializable, Serialized } from '../../../json-serializable';
import { SerializationID } from '../../../json-serializer';
import { SerializedPropertyComponentOperation } from '../../../serialized-interfaces/infra-model-diff/serialized-component-operation';
import { deserializeOpNodeData, deserializePropOpOutoingNodeReferences, deserializeUpdatePropOpOutoingNodeReferences } from './utils';
export function insertPropertyComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serialized = obj as SerializedPropertyComponentOperation;
export function insertPropertyComponentOperationDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serialized = obj as SerializedPropertyComponentOperation;
return new InsertPropertyComponentOperation(
deserializeOpNodeData(serialized),
deserializePropOpOutoingNodeReferences(serialized, deserialize),
);
return new InsertPropertyComponentOperation(
deserializeOpNodeData(serialized),
deserializePropOpOutoingNodeReferences(serialized, deserialize),
);
}
export function removePropertyComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serialized = obj as SerializedPropertyComponentOperation;
export function removePropertyComponentOperationDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serialized = obj as SerializedPropertyComponentOperation;
return new RemovePropertyComponentOperation(
deserializeOpNodeData(serialized),
deserializePropOpOutoingNodeReferences(serialized, deserialize),
);
return new RemovePropertyComponentOperation(
deserializeOpNodeData(serialized),
deserializePropOpOutoingNodeReferences(serialized, deserialize),
);
}
export function movePropertyComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serialized = obj as SerializedPropertyComponentOperation;
export function movePropertyComponentOperationDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serialized = obj as SerializedPropertyComponentOperation;
return new MovePropertyComponentOperation(
deserializeOpNodeData(serialized),
deserializePropOpOutoingNodeReferences(serialized, deserialize),
);
return new MovePropertyComponentOperation(
deserializeOpNodeData(serialized),
deserializePropOpOutoingNodeReferences(serialized, deserialize),
);
}
export function updatePropertyComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serialized = obj as SerializedPropertyComponentOperation;
export function updatePropertyComponentOperationDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serialized = obj as SerializedPropertyComponentOperation;
return new MovePropertyComponentOperation(
deserializeOpNodeData(serialized),
deserializeUpdatePropOpOutoingNodeReferences(serialized, deserialize),
);
return new MovePropertyComponentOperation(
deserializeOpNodeData(serialized),
deserializeUpdatePropOpOutoingNodeReferences(serialized, deserialize),
);
}

@@ -1,35 +0,43 @@

import { Component, ComponentPropertyValue, PropertyPath, Relationship } from "../../../../infra-model";
import { ComponentOperation, OperationCertainty, OpNodeData, OpOutgoingNodeReferences, PropertyComponentOperation, PropOpOutgoingNodeReferences, Transition, UpdatePropOpOutgoingNodeReferences } from "../../../../model-diffing/";
import { JSONSerializable } from "../../../json-serializable";
import { SerializationID } from "../../../json-serializer";
import { SerializedComponentOperation, SerializedOutgoingRelationshipComponentOperation, SerializedPropertyComponentOperation, SerializedUpdatePropertyComponentOperation } from "../../../serialized-interfaces/infra-model-diff/serialized-component-operation";
import { Component, ComponentPropertyValue, PropertyPath } from '../../../../infra-model';
import { ComponentOperation, OperationCertainty, OpNodeData, OpOutgoingNodeReferences, PropertyComponentOperation, PropOpOutgoingNodeReferences, Transition, UpdatePropOpOutgoingNodeReferences } from '../../../../model-diffing/';
import { JSONSerializable } from '../../../json-serializable';
import { SerializationID } from '../../../json-serializer';
import { SerializedComponentOperation, SerializedPropertyComponentOperation, SerializedUpdatePropertyComponentOperation } from '../../../serialized-interfaces/infra-model-diff/serialized-component-operation';
export function deserializeOpNodeData(serialized: SerializedComponentOperation): OpNodeData {
return {
certainty: OperationCertainty[serialized.certainty as keyof typeof OperationCertainty],
};
return {
certainty: OperationCertainty[serialized.certainty as keyof typeof OperationCertainty],
};
}
export function deserializeOpOutoingNodeReferences(serialized: SerializedComponentOperation, deserialize: (obj: SerializationID) => JSONSerializable): OpOutgoingNodeReferences {
return {
cause: serialized.cause ? deserialize(serialized.cause) as ComponentOperation : undefined,
componentTransition: deserialize(serialized.componentTransition) as Transition<Component>,
};
export function deserializeOpOutoingNodeReferences(
serialized: SerializedComponentOperation,
deserialize: (obj: SerializationID) => JSONSerializable,
): OpOutgoingNodeReferences {
return {
cause: serialized.cause ? deserialize(serialized.cause) as ComponentOperation : undefined,
componentTransition: deserialize(serialized.componentTransition) as Transition<Component>,
};
}
// PropertyComponentOperations
export function deserializePropOpOutoingNodeReferences(serialized: SerializedPropertyComponentOperation, deserialize: (obj: SerializationID) => JSONSerializable): PropOpOutgoingNodeReferences {
return {
...deserializeOpOutoingNodeReferences(serialized, deserialize),
pathTransition: deserialize(serialized.pathTransition) as Transition<PropertyPath>,
propertyTransition: deserialize(serialized.propertyTransition) as Transition<ComponentPropertyValue>,
};
export function deserializePropOpOutoingNodeReferences(
serialized: SerializedPropertyComponentOperation,
deserialize: (obj: SerializationID) => JSONSerializable,
): PropOpOutgoingNodeReferences {
return {
...deserializeOpOutoingNodeReferences(serialized, deserialize),
pathTransition: deserialize(serialized.pathTransition) as Transition<PropertyPath>,
propertyTransition: deserialize(serialized.propertyTransition) as Transition<ComponentPropertyValue>,
};
}
export function deserializeUpdatePropOpOutoingNodeReferences(serialized: SerializedUpdatePropertyComponentOperation, deserialize: (obj: SerializationID) => JSONSerializable): UpdatePropOpOutgoingNodeReferences {
return {
...deserializePropOpOutoingNodeReferences(serialized, deserialize),
innerOperations: serialized.innerOperations ? serialized.innerOperations.map(deserialize) as PropertyComponentOperation[] : undefined,
};
export function deserializeUpdatePropOpOutoingNodeReferences(
serialized: SerializedUpdatePropertyComponentOperation,
deserialize: (obj: SerializationID) => JSONSerializable,
): UpdatePropOpOutgoingNodeReferences {
return {
...deserializePropOpOutoingNodeReferences(serialized, deserialize),
innerOperations: serialized.innerOperations?.map(deserialize) as PropertyComponentOperation[],
};
}

@@ -1,15 +0,18 @@

import { Component, InfraModel } from "../../../infra-model";
import { ComponentOperation, InfraModelDiff, Transition } from "../../../model-diffing";
import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedInfraModelDiff } from "../../serialized-interfaces/infra-model-diff/serialized-infra-model-diff";
import { Component, InfraModel } from '../../../infra-model';
import { ComponentOperation, InfraModelDiff, Transition } from '../../../model-diffing';
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
import { SerializedInfraModelDiff } from '../../serialized-interfaces/infra-model-diff/serialized-infra-model-diff';
export function infraModelDiffDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serialized = obj as SerializedInfraModelDiff;
export function infraModelDiffDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serialized = obj as SerializedInfraModelDiff;
return new InfraModelDiff(
serialized.componentOperations.map(deserialize) as ComponentOperation[],
serialized.componentTransitions.map(deserialize) as Transition<Component>[],
deserialize(serialized.infraModelTransition) as Transition<InfraModel>
);
return new InfraModelDiff(
serialized.componentOperations.map(deserialize) as ComponentOperation[],
serialized.componentTransitions.map(deserialize) as Transition<Component>[],
deserialize(serialized.infraModelTransition) as Transition<InfraModel>,
);
}

@@ -1,19 +0,22 @@

import { Component, ComponentPropertyValue } from "../../../infra-model";
import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedComponent } from "../../serialized-interfaces/infra-model/serialized-component";
import { Component, ComponentPropertyValue } from '../../../infra-model';
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
import { SerializedComponent } from '../../serialized-interfaces/infra-model/serialized-component';
export function componentDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serializedComponent: SerializedComponent = obj as SerializedComponent;
export function componentDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serializedComponent: SerializedComponent = obj as SerializedComponent;
const component = new Component(
serializedComponent.name,
serializedComponent.type,
{
subtype: serializedComponent?.subtype,
properties: deserialize(serializedComponent.properties) as ComponentPropertyValue
}
);
const component = new Component(
serializedComponent.name,
serializedComponent.type,
{
subtype: serializedComponent?.subtype,
properties: deserialize(serializedComponent.properties) as ComponentPropertyValue,
},
);
return component;
return component;
}

@@ -1,36 +0,43 @@

import { ComponentPropertyValue, ComponentPropertyArray, ComponentPropertyPrimitive, ComponentPropertyRecord, EmptyComponentProperty } from "../../../infra-model";
import { fromEntries } from "../../../utils";
import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedComponentPropertyArray, SerializedComponentPropertyPrimitive, SerializedComponentPropertyRecord } from "../../serialized-interfaces/infra-model/serialized-component-property";
import { ComponentPropertyValue, ComponentPropertyArray, ComponentPropertyPrimitive, ComponentPropertyRecord, EmptyComponentProperty } from '../../../infra-model';
import { fromEntries } from '../../../utils';
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
import { SerializedComponentPropertyArray, SerializedComponentPropertyPrimitive, SerializedComponentPropertyRecord } from '../../serialized-interfaces/infra-model/serialized-component-property';
export function componentPropertyArrayDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serializedComponentProperty = obj as SerializedComponentPropertyArray;
export function componentPropertyArrayDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serializedComponentProperty = obj as SerializedComponentPropertyArray;
return new ComponentPropertyArray(
serializedComponentProperty.value.map(v => deserialize(v) as ComponentPropertyValue),
serializedComponentProperty.componentUpdateType
);
return new ComponentPropertyArray(
serializedComponentProperty.value.map(v => deserialize(v) as ComponentPropertyValue),
serializedComponentProperty.componentUpdateType,
);
}
export function componentPropertyRecordDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serializedComponentProperty = obj as SerializedComponentPropertyRecord;
export function componentPropertyRecordDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serializedComponentProperty = obj as SerializedComponentPropertyRecord;
return new ComponentPropertyRecord(
fromEntries(Object.entries(serializedComponentProperty.value).map(([k,v]) => [k, deserialize(v) as ComponentPropertyValue])),
serializedComponentProperty.componentUpdateType
);
return new ComponentPropertyRecord(
fromEntries(Object.entries(serializedComponentProperty.value)
.map(([k,v]) => [k, deserialize(v) as ComponentPropertyValue])),
serializedComponentProperty.componentUpdateType,
);
}
export function componentPropertyPrimitiveDeserializer(obj: Serialized): JSONSerializable {
const serializedComponentProperty = obj as SerializedComponentPropertyPrimitive;
const serializedComponentProperty = obj as SerializedComponentPropertyPrimitive;
return new ComponentPropertyPrimitive(
serializedComponentProperty.value,
serializedComponentProperty.componentUpdateType
);
return new ComponentPropertyPrimitive(
serializedComponentProperty.value,
serializedComponentProperty.componentUpdateType,
);
}
export function componentPropertyEmptyDeserializer(): JSONSerializable {
return new EmptyComponentProperty();
return new EmptyComponentProperty();
}

@@ -1,25 +0,28 @@

import { Component, DependencyRelationship } from "../../../infra-model";
import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedDependencyRelationship } from "../../serialized-interfaces/infra-model/serialized-relationship";
import { Component, DependencyRelationship } from '../../../infra-model';
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
import { SerializedDependencyRelationship } from '../../serialized-interfaces/infra-model/serialized-relationship';
export function dependencyRelationshipDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serializedDependencyRelationship = obj as SerializedDependencyRelationship;
export function dependencyRelationshipDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serializedDependencyRelationship = obj as SerializedDependencyRelationship;
const target = deserialize(serializedDependencyRelationship.target) as Component;
const source = deserialize(serializedDependencyRelationship.source) as Component;
const target = deserialize(serializedDependencyRelationship.target) as Component;
const source = deserialize(serializedDependencyRelationship.source) as Component;
const relationship = new DependencyRelationship(
source,
target,
serializedDependencyRelationship.type,
{
targetAttributePath: serializedDependencyRelationship.targetAttributePath,
sourcePropertyPath: serializedDependencyRelationship.sourcePropertyPath
}
);
const relationship = new DependencyRelationship(
source,
target,
serializedDependencyRelationship.type,
{
targetAttributePath: serializedDependencyRelationship.targetAttributePath,
sourcePropertyPath: serializedDependencyRelationship.sourcePropertyPath,
},
);
source.addOutgoing(relationship);
source.addOutgoing(relationship);
return relationship;
return relationship;
}

@@ -1,13 +0,16 @@

import { Component, InfraModel, Relationship } from "../../../infra-model";
import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedInfraModel } from "../../serialized-interfaces/infra-model/serialized-infra-model";
import { Component, InfraModel, Relationship } from '../../../infra-model';
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
import { SerializedInfraModel } from '../../serialized-interfaces/infra-model/serialized-infra-model';
export function infraModelDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serializedInfraModel = obj as SerializedInfraModel;
export function infraModelDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serializedInfraModel = obj as SerializedInfraModel;
return new InfraModel(
serializedInfraModel.components.map(c => deserialize(c) as Component),
serializedInfraModel.relationships.map(r => deserialize(r) as Relationship),
);
return new InfraModel(
serializedInfraModel.components.map(c => deserialize(c) as Component),
serializedInfraModel.relationships.map(r => deserialize(r) as Relationship),
);
}

@@ -1,21 +0,24 @@

import { Component, StructuralRelationship } from "../../../infra-model";
import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedRelationship } from "../../serialized-interfaces/infra-model/serialized-relationship";
import { Component, StructuralRelationship } from '../../../infra-model';
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
import { SerializedRelationship } from '../../serialized-interfaces/infra-model/serialized-relationship';
export function structuralRelationshipDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable {
const serializedStructuralRelationship = obj as SerializedRelationship;
export function structuralRelationshipDeserializer(
obj: Serialized,
deserialize: (obj: SerializationID) => JSONSerializable,
): JSONSerializable {
const serializedStructuralRelationship = obj as SerializedRelationship;
const target = deserialize(serializedStructuralRelationship.target) as Component;
const source = deserialize(serializedStructuralRelationship.source) as Component;
const target = deserialize(serializedStructuralRelationship.target) as Component;
const source = deserialize(serializedStructuralRelationship.source) as Component;
const relationship = new StructuralRelationship(
source,
target,
serializedStructuralRelationship.type
);
const relationship = new StructuralRelationship(
source,
target,
serializedStructuralRelationship.type,
);
source.addOutgoing(relationship);
source.addOutgoing(relationship);
return relationship;
return relationship;
}

@@ -1,17 +0,17 @@

import { Transition } from "../../model-diffing";
import { JSONSerializable, Serialized } from "../json-serializable";
import { SerializationID } from "../json-serializer";
import { SerializedTransition } from "../serialized-interfaces/infra-model-diff/serialized-transition";
import { Transition } from '../../model-diffing';
import { JSONSerializable, Serialized } from '../json-serializable';
import { SerializationID } from '../json-serializer';
import { SerializedTransition } from '../serialized-interfaces/infra-model-diff/serialized-transition';
export function transitionDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => any): JSONSerializable {
const serialized = obj as SerializedTransition;
const serialized = obj as SerializedTransition;
const deserializeVersion = (version: SerializationID | {value: Serialized }) =>
typeof version === 'object' ? version.value : deserialize(version);
const deserializeVersion = (version: SerializationID | {value: Serialized }) =>
typeof version === 'object' ? version.value : deserialize(version);
return new Transition({
v1: serialized.v1 ? deserializeVersion(serialized.v1) : undefined,
v2: serialized.v2 ? deserializeVersion(serialized.v2) : undefined,
});
return new Transition({
v1: serialized.v1 ? deserializeVersion(serialized.v1) : undefined,
v2: serialized.v2 ? deserializeVersion(serialized.v2) : undefined,
});
}

@@ -0,40 +1,40 @@

import { classToDeserializer } from './deserializer-mapping';
import { JSONSerializable, Serialized } from './json-serializable';
import { SerializationID } from './json-serializer';
import { classToDeserializer } from './deserializer-mapping';
export class JSONDeserializer<T extends JSONSerializable> {
private readonly deserializedObjects: Map<SerializationID, any> = new Map();
private objects: {class: string, content: Serialized}[];
public deserialize(str: string): T {
const obj = JSON.parse(str);
if(typeof obj !== 'object' || obj === null || Array.isArray(obj)){
throw Error("Cannot deserialize string as it does not represent an object");
} else if(typeof obj.entryPointId !== 'number'){
throw Error("Cannot deserialize: entry point id not found");
}
this.objects = obj.objects;
return this.deserializeObject(obj.entryPointId) as T;
private readonly deserializedObjects: Map<SerializationID, any> = new Map();
private objects: {class: string, content: Serialized}[];
public deserialize(str: string): T {
const obj = JSON.parse(str);
if(typeof obj !== 'object' || obj === null || Array.isArray(obj)){
throw Error('Cannot deserialize string as it does not represent an object');
} else if(typeof obj.entryPointId !== 'number'){
throw Error('Cannot deserialize: entry point id not found');
}
this.objects = obj.objects;
return this.deserializeObject(obj.entryPointId) as T;
}
private deserializeObject(id: SerializationID): JSONSerializable {
let createdObj = this.deserializedObjects.get(id);
private deserializeObject(id: SerializationID): JSONSerializable {
let createdObj = this.deserializedObjects.get(id);
if(!createdObj){
if(this.objects.length <= id){
throw Error("SerializationID could not be found");
}
if(!createdObj){
if(this.objects.length <= id){
throw Error('SerializationID could not be found');
}
const objectDeserializer = classToDeserializer[this.objects[id].class];
if(!objectDeserializer)
throw Error(`Object deserializer for class ${this.objects[id].class} is not configured`);
createdObj = objectDeserializer(this.objects[id].content, this.deserializeObject.bind(this));
this.deserializedObjects.set(id, createdObj);
}
return createdObj;
const objectDeserializer = classToDeserializer[this.objects[id].class];
if(!objectDeserializer)
throw Error(`Object deserializer for class ${this.objects[id].class} is not configured`);
createdObj = objectDeserializer(this.objects[id].content, this.deserializeObject.bind(this));
this.deserializedObjects.set(id, createdObj);
}
return createdObj;
}
}

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

import { SerializationID } from "./json-serializer";
import { SerializationID } from './json-serializer';

@@ -14,3 +14,3 @@ type SerializablePrimitive = string | number | boolean | undefined | null;

export interface JSONSerializable {
/**
/**
* This method converts an object into a serializable object.

@@ -21,11 +21,14 @@ * Offers a callback to serialize its references.

*/
toSerialized(serialize: (obj: JSONSerializable) => SerializationID, serializeCustom: (obj: any, serializationClass: string, serialized: Serialized) => SerializationID): Serialized;
toSerialized(
serialize: (obj: JSONSerializable) => SerializationID,
serializeCustom: (obj: any, serializationClass: string, serialized: Serialized) => SerializationID
): Serialized;
getSerializationClass(): string;
getSerializationClass(): string;
}
export function isJSONSerializable(o: any): o is JSONSerializable {
return typeof o.toSerialized === 'function'
return typeof o.toSerialized === 'function'
&& typeof o.getSerializationClass === 'function'
&& typeof o.getSerializationClass() === 'string';
&& typeof o.getSerializationClass() === 'string';
}

@@ -6,31 +6,36 @@ import { JSONSerializable, Serialized } from './json-serializable';

export class JSONSerializer {
private readonly encodedReferences: Map<JSONSerializable, SerializationID> = new Map();
private readonly objectsToWrite: Serialized[] = [];
public add(obj: JSONSerializable): SerializationID {
const id = this.encodedReferences.get(obj);
if(!id){ //for performance. Would not want to serialize the object if it already exists
return this.addCustom(obj, obj.getSerializationClass(), obj.toSerialized(this.add.bind(this), this.addCustom.bind(this)));
}
return id;
private readonly encodedReferences: Map<JSONSerializable, SerializationID> = new Map();
private readonly objectsToWrite: Serialized[] = [];
public add(obj: JSONSerializable): SerializationID {
const id = this.encodedReferences.get(obj);
if(!id){ //for performance. Would not want to serialize the object if it already exists
return this.addCustom(
obj,
obj.getSerializationClass(),
obj.toSerialized(this.add.bind(this),
this.addCustom.bind(this)),
);
}
return id;
}
public addCustom(obj: any, serializerClass: string, serialized: Serialized): SerializationID {
let id = this.encodedReferences.get(obj);
if(!id){
id = this.objectsToWrite.length;
this.encodedReferences.set(obj, id);
this.objectsToWrite.push({
class: serializerClass,
content: serialized
});
}
return id;
public addCustom(obj: any, serializerClass: string, serialized: Serialized): SerializationID {
let id = this.encodedReferences.get(obj);
if(!id){
id = this.objectsToWrite.length;
this.encodedReferences.set(obj, id);
this.objectsToWrite.push({
class: serializerClass,
content: serialized,
});
}
public serialize(obj: JSONSerializable): string{
const entryPointId = this.add(obj);
return JSON.stringify({entryPointId, objects: this.objectsToWrite});
}
return id;
}
public serialize(obj: JSONSerializable): string{
const entryPointId = this.add(obj);
return JSON.stringify({entryPointId, objects: this.objectsToWrite});
}
}
export enum SerializationClasses {
// INFRA MODEL
COMPONENT = "Component",
STRUCTURAL_RELATIONSHIP = "StructuralRelationship",
DEPENDENCY_RELATIONSHIP = "DependencyRelationship",
COMPONENT_PROPERTY_RECORD = "ComponentPropertyRecord",
COMPONENT_PROPERTY_ARRAY = "ComponentPropertyArray",
COMPONENT_PROPERTY_PRIMITIVE = "ComponentPropertyPrimitive",
COMPONENT_PROPERTY_EMPTY = "ComponentPropertyEmpty",
INFRA_MODEL = "InfraModel",
// INFRA MODEL
COMPONENT = 'Component',
STRUCTURAL_RELATIONSHIP = 'StructuralRelationship',
DEPENDENCY_RELATIONSHIP = 'DependencyRelationship',
COMPONENT_PROPERTY_RECORD = 'ComponentPropertyRecord',
COMPONENT_PROPERTY_ARRAY = 'ComponentPropertyArray',
COMPONENT_PROPERTY_PRIMITIVE = 'ComponentPropertyPrimitive',
COMPONENT_PROPERTY_EMPTY = 'ComponentPropertyEmpty',
INFRA_MODEL = 'InfraModel',
// INFRA MODEL DIFF
INFRA_MODEL_DIFF = "InfraModelDiff",
TRANSITION = "Transition",
INSERT_COMPONENT_OPERATION = "InsertComponentOperation",
REMOVE_COMPONENT_OPERATION = "RemoveComponentOperation",
REPLACE_COMPONENT_OPERATION = "ReplaceComponentOperation",
RENAME_COMPONENT_OPERATION = "RenameComponentOperation",
INSERT_OUTGOING_RELATIONSHIP_COMPONENT_OPERATION = "InsertOutgoingRelationshipComponentOperation",
REMOVE_OUTGOING_RELATIONSHIP_COMPONENT_OPERATION = "RemoveOutgoingRelationshipComponentOperation",
UPDATE_OUTGOING_RELATIONSHIP_COMPONENT_OPERATION = "UpdateOutgoingRelationshipComponentOperation",
INSERT_PROPERTY_COMPONENT_OPERATION = "InsertPropertyComponentOperation",
REMOVE_PROPERTY_COMPONENT_OPERATION = "RemovePropertyComponentOperation",
UPDATE_PROPERTY_COMPONENT_OPERATION = "UpdatePropertyComponentOperation",
MOVE_PROPERTY_COMPONENT_OPERATION = "MovePropertyComponentOperation",
// INFRA MODEL DIFF
INFRA_MODEL_DIFF = 'InfraModelDiff',
TRANSITION = 'Transition',
INSERT_COMPONENT_OPERATION = 'InsertComponentOperation',
REMOVE_COMPONENT_OPERATION = 'RemoveComponentOperation',
REPLACE_COMPONENT_OPERATION = 'ReplaceComponentOperation',
RENAME_COMPONENT_OPERATION = 'RenameComponentOperation',
INSERT_OUTGOING_RELATIONSHIP_COMPONENT_OPERATION = 'InsertOutgoingRelationshipComponentOperation',
REMOVE_OUTGOING_RELATIONSHIP_COMPONENT_OPERATION = 'RemoveOutgoingRelationshipComponentOperation',
UPDATE_OUTGOING_RELATIONSHIP_COMPONENT_OPERATION = 'UpdateOutgoingRelationshipComponentOperation',
INSERT_PROPERTY_COMPONENT_OPERATION = 'InsertPropertyComponentOperation',
REMOVE_PROPERTY_COMPONENT_OPERATION = 'RemovePropertyComponentOperation',
UPDATE_PROPERTY_COMPONENT_OPERATION = 'UpdatePropertyComponentOperation',
MOVE_PROPERTY_COMPONENT_OPERATION = 'MovePropertyComponentOperation',
AGGREGATION = "Aggregation",
AGGREGATION = 'Aggregation',
CHANGE_ANALYSIS_REPORT = "ChangeAnalysisReport",
CHANGE_ANALYSIS_REPORT = 'ChangeAnalysisReport',
}

@@ -1,10 +0,10 @@

import { AggCharacteristicValue } from "../../../aggregations";
import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { AggCharacteristicValue } from '../../../aggregations';
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedAggregation extends SerializedRecord {
readonly entities: SerializationID[],
readonly characteristics: Record<string, AggCharacteristicValue>,
readonly subAggs?: SerializationID[],
readonly descriptions?: string[]
readonly entities: SerializationID[],
readonly characteristics: Record<string, AggCharacteristicValue>,
readonly subAggs?: SerializationID[],
readonly descriptions?: string[]
}

@@ -1,21 +0,21 @@

import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedComponentOperation extends SerializedRecord {
cause?: SerializationID,
certainty: string,
componentTransition: SerializationID
cause?: SerializationID,
certainty: string,
componentTransition: SerializationID
}
export interface SerializedOutgoingRelationshipComponentOperation extends SerializedComponentOperation {
relationshipTransition: SerializationID
relationshipTransition: SerializationID
}
export interface SerializedPropertyComponentOperation extends SerializedComponentOperation {
pathTransition: SerializationID,
propertyTransition: SerializationID
pathTransition: SerializationID,
propertyTransition: SerializationID
}
export interface SerializedUpdatePropertyComponentOperation extends SerializedPropertyComponentOperation {
innerOperations?: SerializationID[]
innerOperations?: SerializationID[]
}

@@ -1,8 +0,8 @@

import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedInfraModelDiff extends SerializedRecord {
readonly componentOperations: SerializationID[],
readonly componentTransitions: SerializationID[],
readonly infraModelTransition: SerializationID
readonly componentOperations: SerializationID[],
readonly componentTransitions: SerializationID[],
readonly infraModelTransition: SerializationID
}

@@ -1,7 +0,7 @@

import { Serialized, SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { Serialized, SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedTransition extends SerializedRecord {
v1?: SerializationID | {value: Serialized },
v2?: SerializationID | {value: Serialized },
v1?: SerializationID | {value: Serialized },
v2?: SerializationID | {value: Serialized },
}

@@ -1,24 +0,24 @@

import { ComponentUpdateType, PropertyPrimitive } from "../../../infra-model";
import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { ComponentUpdateType, PropertyPrimitive } from '../../../infra-model';
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedComponentProperty extends SerializedRecord {
value: PropertyPrimitive | SerializationID[] | Record<string, SerializationID> | undefined,
componentUpdateType: ComponentUpdateType
value: PropertyPrimitive | SerializationID[] | Record<string, SerializationID> | undefined,
componentUpdateType: ComponentUpdateType
}
export interface SerializedComponentPropertyRecord extends SerializedComponentProperty {
value: Record<string, SerializationID>
value: Record<string, SerializationID>
}
export interface SerializedComponentPropertyArray extends SerializedComponentProperty {
value: SerializationID[]
value: SerializationID[]
}
export interface SerializedComponentPropertyPrimitive extends SerializedComponentProperty {
value: PropertyPrimitive
value: PropertyPrimitive
}
export interface SerializedComponentPropertyEmpty extends SerializedComponentProperty {
value: undefined
value: undefined
}

@@ -1,9 +0,9 @@

import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedComponent extends SerializedRecord {
properties: SerializationID,
type: string,
subtype?: string,
name: string
properties: SerializationID,
type: string,
subtype?: string,
name: string
}

@@ -1,7 +0,7 @@

import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedInfraModel extends SerializedRecord {
components: SerializationID[],
relationships: SerializationID[],
}
components: SerializationID[],
relationships: SerializationID[],
}

@@ -1,14 +0,14 @@

import { PropertyPath } from "../../../infra-model";
import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { PropertyPath } from '../../../infra-model';
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedRelationship extends SerializedRecord {
readonly target: SerializationID,
readonly source: SerializationID,
readonly type: string,
readonly target: SerializationID,
readonly source: SerializationID,
readonly type: string,
}
export interface SerializedDependencyRelationship extends SerializedRelationship {
readonly sourcePropertyPath: PropertyPath,
readonly targetAttributePath: PropertyPath
readonly sourcePropertyPath: PropertyPath,
readonly targetAttributePath: PropertyPath
}

@@ -1,10 +0,10 @@

import { RuleEffect } from "../../rules";
import { SerializedRecord } from "../json-serializable";
import { SerializationID } from "../json-serializer";
import { RuleEffect } from '../../rules';
import { SerializedRecord } from '../json-serializable';
import { SerializationID } from '../json-serializer';
export interface SerializedChangeAnalysisReport extends SerializedRecord {
readonly infraModelDiff: SerializationID,
readonly aggregations: SerializationID[],
readonly aggregationsPerComponent: Record<SerializationID, SerializationID[]>,
readonly rulesOutput: Record<SerializationID, RuleEffect>,
readonly infraModelDiff: SerializationID,
readonly aggregations: SerializationID[],
readonly aggregationsPerComponent: Record<SerializationID, SerializationID[]>,
readonly rulesOutput: Record<SerializationID, RuleEffect>,
}

@@ -1,8 +0,8 @@

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializationClasses } from "../export/serialization-classes";
import { SerializedComponentProperty, SerializedComponentPropertyArray, SerializedComponentPropertyEmpty, SerializedComponentPropertyPrimitive, SerializedComponentPropertyRecord } from "../export/serialized-interfaces/infra-model/serialized-component-property";
import { flatMap, fromEntries } from "../utils";
import { ModelEntity, OutgoingReferences } from "./model-entity";
import { ModelEntityTypes } from "./model-entity-types";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializationClasses } from '../export/serialization-classes';
import { SerializedComponentProperty, SerializedComponentPropertyArray, SerializedComponentPropertyEmpty, SerializedComponentPropertyPrimitive, SerializedComponentPropertyRecord } from '../export/serialized-interfaces/infra-model/serialized-component-property';
import { flatMap, fromEntries } from '../utils';
import { ModelEntity, OutgoingReferences } from './model-entity';
import { ModelEntityTypes } from './model-entity-types';

@@ -14,5 +14,5 @@ /**

export enum ComponentUpdateType {
NONE = 'None',
REPLACEMENT = 'Replacement',
POSSIBLE_REPLACEMENT = 'PossibleReplacement',
NONE = 'None',
REPLACEMENT = 'Replacement',
POSSIBLE_REPLACEMENT = 'PossibleReplacement',
}

@@ -29,136 +29,140 @@

type NodeData = {
readonly componentUpdateType?: ComponentUpdateType,
readonly componentUpdateType?: ComponentUpdateType,
}
/* TODO Value*/
export abstract class ComponentPropertyValue<ND extends NodeData = any, OR extends OutgoingReferences = any>
extends ModelEntity<ND, OR>
implements JSONSerializable {
export abstract class ComponentPropertyValue/* TODO Value*/<ND extends NodeData = any, OR extends OutgoingReferences = any>
extends ModelEntity<ND, OR>
implements JSONSerializable {
public get componentUpdateType(): ComponentUpdateType { return this.nodeData.componentUpdateType ?? ComponentUpdateType.NONE; }
public abstract get value(): ComponentPropertyValueType | undefined;
public get componentUpdateType(): ComponentUpdateType {
return this.nodeData.componentUpdateType ?? ComponentUpdateType.NONE;
}
constructor(
data: ND,
outgoingReferences: OR,
) {
super(ModelEntityTypes.property, data, outgoingReferences);
}
public abstract get value(): ComponentPropertyValueType | undefined;
getRecord(): Record<string, ComponentPropertyValue> {
if(!this.isRecord()){
throw new ComponentPropertyAccessError("Trying to read component property as Record, but it is not one");
}
return this.value as Record<string, ComponentPropertyValue>;
}
constructor(
data: ND,
outgoingReferences: OR,
) {
super(ModelEntityTypes.property, data, outgoingReferences);
}
getArray(): Array<ComponentPropertyValue> {
if(!this.isArray()){
throw new ComponentPropertyAccessError("Trying to read component property as an Array, but it is not one");
}
return this.value as Array<ComponentPropertyValue>;
getRecord(): Record<string, ComponentPropertyValue> {
if(!this.isRecord()){
throw new ComponentPropertyAccessError('Trying to read component property as Record, but it is not one');
}
return this.value as Record<string, ComponentPropertyValue>;
}
getCollection(): Array<ComponentPropertyValue> | Record<string, ComponentPropertyValue> {
if(this.isPrimitive()){
throw new ComponentPropertyAccessError("Trying to read component property as a Collection, but it is not one");
}
return this.value as Array<ComponentPropertyValue> | Record<string, ComponentPropertyValue>;
getArray(): Array<ComponentPropertyValue> {
if(!this.isArray()){
throw new ComponentPropertyAccessError('Trying to read component property as an Array, but it is not one');
}
return this.value as Array<ComponentPropertyValue>;
}
getPrimitive(): PropertyPrimitive {
if(!this.isPrimitive()){
throw new ComponentPropertyAccessError("Trying to read component property as a primitive, but it is not one");
}
return this.value as PropertyPrimitive;
getCollection(): Array<ComponentPropertyValue> | Record<string, ComponentPropertyValue> {
if(this.isPrimitive()){
throw new ComponentPropertyAccessError('Trying to read component property as a Collection, but it is not one');
}
return this.value as Array<ComponentPropertyValue> | Record<string, ComponentPropertyValue>;
}
isRecord(): this is ComponentPropertyRecord {
return this instanceof ComponentPropertyRecord;
getPrimitive(): PropertyPrimitive {
if(!this.isPrimitive()){
throw new ComponentPropertyAccessError('Trying to read component property as a primitive, but it is not one');
}
return this.value as PropertyPrimitive;
}
isArray(): this is ComponentPropertyArray {
return this instanceof ComponentPropertyArray;
}
isRecord(): this is ComponentPropertyRecord {
return this instanceof ComponentPropertyRecord;
}
isPrimitive(): this is ComponentPropertyPrimitive {
return this instanceof ComponentPropertyPrimitive;
}
isArray(): this is ComponentPropertyArray {
return this instanceof ComponentPropertyArray;
}
getPropertyInPath(path: PropertyPath): ComponentPropertyValue {
if(path.length === 0){
return this;
} else if(typeof path[0] === 'number') {
if(this.getArray().length <= path[0])
throw new ComponentPropertyAccessError(`Component property array does not have any property in index ${path[0]}`);
return this.getArray()[path[0]].getPropertyInPath(path.slice(1));
} else if(typeof path[0] === 'string') {
if(!this.getRecord()[path[0]])
throw new ComponentPropertyAccessError(`Component property does not have any component for key ${path[0]}`);
return this.getRecord()[path[0]].getPropertyInPath(path.slice(1));
}
throw Error(`Path includes non valid value: ${path[0]}`);
}
isPrimitive(): this is ComponentPropertyPrimitive {
return this instanceof ComponentPropertyPrimitive;
}
public explode(): ComponentPropertyValue[]{
if(this.isPrimitive() || this.value === undefined) return [this];
return flatMap(Object.values(this.value), v => v.explode());
getPropertyInPath(path: PropertyPath): ComponentPropertyValue {
if(path.length === 0){
return this;
} else if(typeof path[0] === 'number') {
if(this.getArray().length <= path[0])
throw new ComponentPropertyAccessError(`Component property array does not have any property in index ${path[0]}`);
return this.getArray()[path[0]].getPropertyInPath(path.slice(1));
} else if(typeof path[0] === 'string') {
if(!this.getRecord()[path[0]])
throw new ComponentPropertyAccessError(`Component property does not have any component for key ${path[0]}`);
return this.getRecord()[path[0]].getPropertyInPath(path.slice(1));
}
throw Error(`Path includes non valid value: ${path[0]}`);
}
public abstract toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedComponentProperty;
public explode(): ComponentPropertyValue[]{
if(this.isPrimitive() || this.value === undefined) return [this];
public abstract getSerializationClass(): string;
return flatMap(Object.values(this.value), v => v.explode());
}
public toJSON(): ComponentPropertyValueType | undefined{
return this.value;
}
public abstract toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedComponentProperty;
public abstract getSerializationClass(): string;
public toJSON(): ComponentPropertyValueType | undefined{
return this.value;
}
}
interface NodeDataPrimitive extends NodeData {
readonly value: PropertyPrimitive;
readonly value: PropertyPrimitive;
}
type OutgoingCollectionReferences = {
readonly value: PropertyCollectionValue;
readonly value: PropertyCollectionValue;
}
export abstract class ComponentCollectionProperty extends ComponentPropertyValue<NodeData, OutgoingCollectionReferences> {
public get value(): ComponentPropertyValueType {
return this.outgoingNodeReferences.value;
}
export abstract class ComponentCollectionProperty
extends ComponentPropertyValue<NodeData, OutgoingCollectionReferences>
{
public get value(): ComponentPropertyValueType {
return this.outgoingNodeReferences.value;
}
}
export class ComponentPropertyRecord extends ComponentCollectionProperty {
constructor(value: Record<string, ComponentPropertyValue>, componentUpdateType?: ComponentUpdateType){
super({componentUpdateType}, {value});
}
constructor(value: Record<string, ComponentPropertyValue>, componentUpdateType?: ComponentUpdateType){
super({componentUpdateType}, {value});
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedComponentPropertyRecord {
return {
value: fromEntries(Object.entries(this.getRecord()).map(([k, v]) => [k, serialize(v)])),
componentUpdateType: this.componentUpdateType,
};
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedComponentPropertyRecord {
return {
value: fromEntries(Object.entries(this.getRecord()).map(([k, v]) => [k, serialize(v)])),
componentUpdateType: this.componentUpdateType,
};
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT_PROPERTY_RECORD;
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT_PROPERTY_RECORD;
}
}
export class ComponentPropertyArray extends ComponentCollectionProperty {
constructor(value: ComponentPropertyValue[], componentUpdateType?: ComponentUpdateType){
super({componentUpdateType}, {value});
}
constructor(value: ComponentPropertyValue[], componentUpdateType?: ComponentUpdateType){
super({componentUpdateType}, {value});
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedComponentPropertyArray {
return {
value: this.getArray().map(v => serialize(v)),
componentUpdateType: this.componentUpdateType,
};
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedComponentPropertyArray {
return {
value: this.getArray().map(v => serialize(v)),
componentUpdateType: this.componentUpdateType,
};
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT_PROPERTY_ARRAY;
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT_PROPERTY_ARRAY;
}
}

@@ -168,39 +172,39 @@

public get value(): ComponentPropertyValueType {
return this.nodeData.value;
}
public get value(): ComponentPropertyValueType {
return this.nodeData.value;
}
constructor(value: PropertyPrimitive, componentUpdateType?: ComponentUpdateType){
super({componentUpdateType, value}, {});
}
constructor(value: PropertyPrimitive, componentUpdateType?: ComponentUpdateType){
super({componentUpdateType, value}, {});
}
public toSerialized(): SerializedComponentPropertyPrimitive {
return {
value: this.getPrimitive(),
componentUpdateType: this.componentUpdateType,
};
}
public toSerialized(): SerializedComponentPropertyPrimitive {
return {
value: this.getPrimitive(),
componentUpdateType: this.componentUpdateType,
};
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT_PROPERTY_PRIMITIVE;
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT_PROPERTY_PRIMITIVE;
}
}
export class EmptyComponentProperty extends ComponentPropertyValue {
public get value(): ComponentPropertyValueType | undefined { return undefined; }
constructor(){
super({},{});
}
public get value(): ComponentPropertyValueType | undefined { return undefined; }
public toSerialized(): SerializedComponentPropertyEmpty {
return {
value: undefined,
componentUpdateType: this.componentUpdateType
};
}
constructor(){
super({},{});
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT_PROPERTY_EMPTY;
}
public toSerialized(): SerializedComponentPropertyEmpty {
return {
value: undefined,
componentUpdateType: this.componentUpdateType,
};
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT_PROPERTY_EMPTY;
}
}

@@ -1,24 +0,24 @@

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializationClasses } from "../export/serialization-classes";
import { SerializedComponent } from "../export/serialized-interfaces/infra-model/serialized-component";
import { ComponentPropertyValue, EmptyComponentProperty } from "./component-property";
import { ModelEntity } from "./model-entity";
import { ModelEntityTypes } from "./model-entity-types";
import { Relationship } from "./relationship";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializationClasses } from '../export/serialization-classes';
import { SerializedComponent } from '../export/serialized-interfaces/infra-model/serialized-component';
import { ComponentPropertyValue, EmptyComponentProperty } from './component-property';
import { ModelEntity } from './model-entity';
import { ModelEntityTypes } from './model-entity-types';
import { Relationship } from './relationship';
type NodeData = {
readonly type: string;
readonly subtype?: string;
readonly name: string;
readonly type: string;
readonly subtype?: string;
readonly name: string;
}
type OutgoingNodeReferences = {
readonly hasRelationship: Set<Relationship>;
readonly hasProperties: ComponentPropertyValue;
readonly hasRelationship: Set<Relationship>;
readonly hasProperties: ComponentPropertyValue;
}
interface ComponentOptions {
readonly subtype?: string;
readonly properties: ComponentPropertyValue;
readonly subtype?: string;
readonly properties: ComponentPropertyValue;
}

@@ -28,3 +28,3 @@

* Component is any element of the infrastructure definition
*
*
* Examples include resources, resource groups, sets of configurations, variables,

@@ -35,70 +35,70 @@ * or any other entity that influences the infrastructure deployment or the user's

export class Component extends ModelEntity<NodeData, OutgoingNodeReferences> implements JSONSerializable {
get outgoing(): Set<Relationship>{ return this.outgoingNodeReferences.hasRelationship; }
public incoming: Set<Relationship> = new Set();
get properties(): ComponentPropertyValue { return this.outgoingNodeReferences.hasProperties; }
get outgoing(): Set<Relationship>{ return this.outgoingNodeReferences.hasRelationship; }
public incoming: Set<Relationship> = new Set();
/**
get properties(): ComponentPropertyValue { return this.outgoingNodeReferences.hasProperties; }
/**
* properties hold any values that should be tracked
* by the change analysis but do not have any other relevant behaviors
*/
public get type(): string { return this.nodeData.type; }
public get subtype(): string | undefined { return this.nodeData.subtype; }
public get name(): string { return this.nodeData.name; }
public get type(): string { return this.nodeData.type; }
public get subtype(): string | undefined { return this.nodeData.subtype; }
public get name(): string { return this.nodeData.name; }
constructor(name: string, type: string, options? : ComponentOptions){
super(
ModelEntityTypes.component,
{
name,
type,
subtype: options?.subtype,
}, {
hasRelationship: new Set(),
hasProperties: options?.properties ?? new EmptyComponentProperty()
}
);
}
constructor(name: string, type: string, options? : ComponentOptions){
super(
ModelEntityTypes.component,
{
name,
type,
subtype: options?.subtype,
}, {
hasRelationship: new Set(),
hasProperties: options?.properties ?? new EmptyComponentProperty(),
},
);
}
public addOutgoing(relationship: Relationship): void{
if(relationship.source !== this)
throw Error("Trying to add relationship that does not belong to component");
this.outgoing.add(relationship);
relationship.target.incoming.add(relationship);
}
public addOutgoing(relationship: Relationship): void{
if(relationship.source !== this)
throw Error('Trying to add relationship that does not belong to component');
this.outgoing.add(relationship);
relationship.target.incoming.add(relationship);
}
public addIncoming(relationship: Relationship): void {
if(relationship.target !== this)
throw Error("Trying to add relationship that does not belong to component");
public addIncoming(relationship: Relationship): void {
if(relationship.target !== this)
throw Error('Trying to add relationship that does not belong to component');
relationship.source.addOutgoing(relationship);
}
relationship.source.addOutgoing(relationship);
}
public removeOutgoing(relationship: Relationship): void{
if(relationship.source !== this)
throw Error("Trying to remove relationship that does not belong to component");
this.outgoing.delete(relationship);
relationship.target.incoming.delete(relationship);
}
public removeOutgoing(relationship: Relationship): void{
if(relationship.source !== this)
throw Error('Trying to remove relationship that does not belong to component');
this.outgoing.delete(relationship);
relationship.target.incoming.delete(relationship);
}
public removeIncoming(relationship: Relationship): void {
if(relationship.target !== this)
throw Error("Trying to remove relationship that does not belong to component");
public removeIncoming(relationship: Relationship): void {
if(relationship.target !== this)
throw Error('Trying to remove relationship that does not belong to component');
relationship.source.removeOutgoing(relationship);
}
relationship.source.removeOutgoing(relationship);
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedComponent {
return {
properties: serialize(this.properties),
type: this.type,
subtype: this.subtype,
name: this.name
};
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedComponent {
return {
properties: serialize(this.properties),
type: this.type,
subtype: this.subtype,
name: this.name,
};
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT;
}
public getSerializationClass(): string{
return SerializationClasses.COMPONENT;
}
}

@@ -1,12 +0,12 @@

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializationClasses } from "../export/serialization-classes";
import { SerializedDependencyRelationship } from "../export/serialized-interfaces/infra-model/serialized-relationship";
import { Component } from "./component";
import { PropertyPath } from "./component-property";
import { Relationship, RelationshipData } from "./relationship";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializationClasses } from '../export/serialization-classes';
import { SerializedDependencyRelationship } from '../export/serialized-interfaces/infra-model/serialized-relationship';
import { Component } from './component';
import { PropertyPath } from './component-property';
import { Relationship, RelationshipData } from './relationship';
export type DependencyRelationshipOptions = {
readonly sourcePropertyPath?: PropertyPath
readonly targetAttributePath?: PropertyPath
readonly sourcePropertyPath?: PropertyPath
readonly targetAttributePath?: PropertyPath
}

@@ -22,21 +22,21 @@

public get sourcePropertyPath(): PropertyPath { return this.nodeData.sourcePropertyPath ?? []; }
public get targetAttributePath(): PropertyPath { return this.nodeData.targetAttributePath ?? []; }
public get sourcePropertyPath(): PropertyPath { return this.nodeData.sourcePropertyPath ?? []; }
public get targetAttributePath(): PropertyPath { return this.nodeData.targetAttributePath ?? []; }
constructor(source: Component, target: Component, type: string, options?: DependencyRelationshipOptions){
super(source, target, {type, ...options});
}
constructor(source: Component, target: Component, type: string, options?: DependencyRelationshipOptions){
super(source, target, {type, ...options});
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedDependencyRelationship {
return {
...super.toSerialized(serialize),
sourcePropertyPath: this.sourcePropertyPath,
targetAttributePath: this.targetAttributePath
};
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedDependencyRelationship {
return {
...super.toSerialized(serialize),
sourcePropertyPath: this.sourcePropertyPath,
targetAttributePath: this.targetAttributePath,
};
}
public getSerializationClass(): string{
return SerializationClasses.DEPENDENCY_RELATIONSHIP;
}
public getSerializationClass(): string{
return SerializationClasses.DEPENDENCY_RELATIONSHIP;
}
}

@@ -1,13 +0,13 @@

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializationClasses } from "../export/serialization-classes";
import { SerializedInfraModel } from "../export/serialized-interfaces/infra-model/serialized-infra-model";
import { Component } from "./component";
import { ModelEntity } from "./model-entity";
import { ModelEntityTypes } from "./model-entity-types";
import { Relationship } from "./relationship";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializationClasses } from '../export/serialization-classes';
import { SerializedInfraModel } from '../export/serialized-interfaces/infra-model/serialized-infra-model';
import { Component } from './component';
import { ModelEntity } from './model-entity';
import { ModelEntityTypes } from './model-entity-types';
import { Relationship } from './relationship';
type OutgoingNodeReferences = {
components: Component[],
relationships: Relationship[],
components: Component[],
relationships: Relationship[],
}

@@ -17,19 +17,19 @@

public get components(): Component[] { return this.outgoingNodeReferences.components; }
public get relationships(): Relationship[] { return this.outgoingNodeReferences.relationships; }
public get components(): Component[] { return this.outgoingNodeReferences.components; }
public get relationships(): Relationship[] { return this.outgoingNodeReferences.relationships; }
constructor(components: Component[], relationships: Relationship[]){
super(ModelEntityTypes.infrastructureState, {}, {components, relationships});
}
constructor(components: Component[], relationships: Relationship[]){
super(ModelEntityTypes.infrastructureState, {}, {components, relationships});
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedInfraModel {
return {
components: this.components.map(c => serialize(c)),
relationships: this.relationships.map(r => serialize(r))
};
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedInfraModel {
return {
components: this.components.map(c => serialize(c)),
relationships: this.relationships.map(r => serialize(r)),
};
}
public getSerializationClass(): string{
return SerializationClasses.INFRA_MODEL;
}
public getSerializationClass(): string{
return SerializationClasses.INFRA_MODEL;
}
}
export enum ModelEntityTypes {
property = 'property',
change = 'change',
component = 'component',
relationship = 'relationship',
infrastructureState = 'infrastructureState',
transition = 'transition',
property = 'property',
change = 'change',
component = 'component',
relationship = 'relationship',
infrastructureState = 'infrastructureState',
transition = 'transition',
}

@@ -6,66 +6,68 @@ import * as fn from 'fifinet';

export type OutgoingReferences = Record<
string,
Iterable<ModelEntity> | ModelEntity | Record<string, ModelEntity> | undefined
string,
Iterable<ModelEntity> | ModelEntity | Record<string, ModelEntity> | undefined
>;
export class ModelEntity<
ND extends Record<string, Serialized> = any, // vertex data
OR extends OutgoingReferences = any // vertex edge targets
> {
ND extends Record<string, Serialized> = any, // vertex data
OR extends OutgoingReferences = any // vertex edge targets
> {
static idCounter = 0;
static idCounter = 0;
public readonly nodeData: fn.VertexProps<ND> & { entityType: string };
protected readonly outgoingNodeReferences: OR;
public readonly nodeData: fn.VertexProps<ND> & { entityType: string };
protected readonly outgoingNodeReferences: OR;
constructor(entityType: string, nodeData: fn.InVertex<ND>, outgoingNodeReferences: OR){
this.nodeData = { entityType, _id: `${++ModelEntity.idCounter}`, ...nodeData};
this.outgoingNodeReferences = outgoingNodeReferences;
}
constructor(entityType: string, nodeData: fn.InVertex<ND>, outgoingNodeReferences: OR){
this.nodeData = { entityType, _id: `${++ModelEntity.idCounter}`, ...nodeData};
this.outgoingNodeReferences = outgoingNodeReferences;
}
public getOutgoingNodeEdges(): fn.InEdge<{ _label: string; _in: string; _out: string; }>[] {
const createModelEntityEdge = (label: string, e: ModelEntity, key?: string) => ({
_label: label,
_in: e.nodeData._id,
_out: this.nodeData._id,
key
});
return this.explodeDirectReferences().filter(({ref}) => isDefined(ref)).map(({refName, ref, key}) => createModelEntityEdge(refName, ref, key));
}
public getOutgoingNodeEdges(): fn.InEdge<{ _label: string; _in: string; _out: string; }>[] {
const createModelEntityEdge = (label: string, e: ModelEntity, key?: string) => ({
_label: label,
_in: e.nodeData._id,
_out: this.nodeData._id,
key,
});
private explodeDirectReferences(): {refName: string, ref: ModelEntity, key?: string}[] {
const createInfoObj = (label: string, e: ModelEntity, key?: string) => ({
refName: label, ref: e, key
});
return flatMap(Object.entries(this.outgoingNodeReferences), ([k, v]) => {
if(v instanceof ModelEntity){
return [createInfoObj(k, v)];
} if(v instanceof Set) {
return [...v].map(entity => createInfoObj(k, entity));
} else if(typeof v === 'object' && v !== null) { // arrays and objects have key on the edges
return Object.entries(v).map(([key, e]) => createInfoObj(k, e, key));
} else return [];
});
}
return this.explodeDirectReferences()
.filter(({ref}) => isDefined(ref))
.map(({refName, ref, key}) => createModelEntityEdge(refName, ref, key));
}
private explodeNodeReferences(): ModelEntity[] {
const stack: ModelEntity[] = [this];
const result: Set<ModelEntity> = new Set();
private explodeDirectReferences(): {refName: string, ref: ModelEntity, key?: string}[] {
const createInfoObj = (label: string, e: ModelEntity, key?: string) => ({
refName: label, ref: e, key,
});
while(stack.length) {
const e = stack.pop();
if(e === undefined || result.has(e)) continue;
result.add(e);
stack.push(...e.explodeDirectReferences().map(({ref}) => ref));
}
return flatMap(Object.entries(this.outgoingNodeReferences), ([k, v]) => {
if(v instanceof ModelEntity){
return [createInfoObj(k, v)];
} if(v instanceof Set) {
return [...v].map(entity => createInfoObj(k, entity));
} else if(typeof v === 'object' && v !== null) { // arrays and objects have key on the edges
return Object.entries(v).map(([key, e]) => createInfoObj(k, e, key));
} else return [];
});
}
return [...result];
private explodeNodeReferences(): ModelEntity[] {
const stack: ModelEntity[] = [this];
const result: Set<ModelEntity> = new Set();
while(stack.length) {
const e = stack.pop();
if(e === undefined || result.has(e)) continue;
result.add(e);
stack.push(...e.explodeDirectReferences().map(({ref}) => ref));
}
public generateOutgoingGraph() {
const entities = this.explodeNodeReferences();
return new fn.Graph(entities.map(e => e.nodeData), flatMap(entities, e => e.getOutgoingNodeEdges()));
}
return [...result];
}
public generateOutgoingGraph(): fn.Graph<any, {_label: string, _in: string, _out: string}> {
const entities = this.explodeNodeReferences();
return new fn.Graph(entities.map(e => e.nodeData), flatMap(entities, e => e.getOutgoingNodeEdges()));
}
}

@@ -1,15 +0,15 @@

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializedRelationship } from "../export/serialized-interfaces/infra-model/serialized-relationship";
import { Component } from "./component";
import { ModelEntity } from "./model-entity";
import { ModelEntityTypes } from "./model-entity-types";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializedRelationship } from '../export/serialized-interfaces/infra-model/serialized-relationship';
import { Component } from './component';
import { ModelEntity } from './model-entity';
import { ModelEntityTypes } from './model-entity-types';
export type RelationshipData = {
readonly type: string;
readonly type: string;
}
export type RelationshipEdges = {
readonly source: Component,
readonly target: Component,
readonly source: Component,
readonly target: Component,
}

@@ -22,22 +22,22 @@

export abstract class Relationship<T extends RelationshipData = RelationshipData>
extends ModelEntity<T, RelationshipEdges>
implements JSONSerializable
extends ModelEntity<T, RelationshipEdges>
implements JSONSerializable
{
public get type(): string { return this.nodeData.type; }
public get target(): Component { return this.outgoingNodeReferences.target; }
public get source(): Component { return this.outgoingNodeReferences.source; }
public get type(): string { return this.nodeData.type; }
public get target(): Component { return this.outgoingNodeReferences.target; }
public get source(): Component { return this.outgoingNodeReferences.source; }
constructor(source: Component, target: Component, nodeData: T){
super(ModelEntityTypes.relationship, nodeData, {source, target});
}
constructor(source: Component, target: Component, nodeData: T){
super(ModelEntityTypes.relationship, nodeData, {source, target});
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedRelationship {
return {
target: serialize(this.target),
source: serialize(this.source),
type: this.type,
};
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedRelationship {
return {
target: serialize(this.target),
source: serialize(this.source),
type: this.type,
};
}
public abstract getSerializationClass(): string;
public abstract getSerializationClass(): string;
}

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

import { SerializationClasses } from "../export/serialization-classes";
import { Component } from "./component";
import { Relationship } from "./relationship";
import { SerializationClasses } from '../export/serialization-classes';
import { Component } from './component';
import { Relationship } from './relationship';

@@ -12,10 +12,10 @@ /**

constructor(source: Component, target: Component, type: string){
super(source, target, {type});
}
constructor(source: Component, target: Component, type: string){
super(source, target, {type});
}
public getSerializationClass(): string{
return SerializationClasses.STRUCTURAL_RELATIONSHIP;
}
public getSerializationClass(): string{
return SerializationClasses.STRUCTURAL_RELATIONSHIP;
}
}

@@ -1,72 +0,82 @@

import { JSONSerializable, Serialized } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializationClasses } from "../export/serialization-classes";
import { Component, InfraModel, ModelEntity } from "../infra-model";
import { flatMap, groupArrayBy, isDefined } from "../utils";
import { ComponentOperation } from "./operations";
import { Transition } from "./transition";
import { JSONSerializable, Serialized } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializationClasses } from '../export/serialization-classes';
import { Component, InfraModel, ModelEntity } from '../infra-model';
import { flatMap, groupArrayBy, isDefined } from '../utils';
import { ComponentOperation } from './operations';
import { Transition } from './transition';
export class TransitionNotFoundError extends Error {}
type OutgoingNodeReferences = {
readonly componentOperations: ComponentOperation[],
readonly componentTransitions: Transition<Component>[],
readonly infraModelTransition: Transition<InfraModel>,
readonly componentOperations: ComponentOperation[],
readonly componentTransitions: Transition<Component>[],
readonly infraModelTransition: Transition<InfraModel>,
}
// eslint-disable-next-line @typescript-eslint/ban-types
export class InfraModelDiff extends ModelEntity<{}, OutgoingNodeReferences> implements JSONSerializable {
private readonly componentToTransitionMap: Map<Component, Transition<Component>>;
private readonly componentTransitionToOperationsMap: Map<Transition<Component>, ComponentOperation[]>;
export class InfraModelDiff
extends ModelEntity<Record<string, Serialized>, OutgoingNodeReferences>
implements JSONSerializable
{
private static createComponentTransitionMap(
componentTransitions: Transition<Component>[],
): Map<Component, Transition<Component>> {
return new Map(
flatMap(componentTransitions, t => [[t.v1, t], [t.v2, t]])
.filter(([v]) => isDefined(v)) as [Component, Transition<Component>][],
);
}
public get componentOperations() { return this.outgoingNodeReferences.componentOperations; }
public get componentTransitions() { return this.outgoingNodeReferences.componentTransitions; }
public get infraModelTransition() { return this.outgoingNodeReferences.infraModelTransition; }
private static createComponentTransitionToOperationsMap(
componentOperations: ComponentOperation[],
): Map<Transition<Component>, ComponentOperation[]> {
return groupArrayBy(componentOperations, o => o.componentTransition);
}
constructor(
componentOperations: ComponentOperation[],
componentTransitions: Transition<Component>[],
infraModelTransition: Transition<InfraModel>,
){
super('diff', {}, {componentOperations, componentTransitions, infraModelTransition});
this.componentToTransitionMap = InfraModelDiff.createComponentTransitionMap(componentTransitions);
this.componentTransitionToOperationsMap = InfraModelDiff.createComponentTransitionToOperationsMap(componentOperations);
}
private readonly componentToTransitionMap: Map<Component, Transition<Component>>;
private readonly componentTransitionToOperationsMap: Map<Transition<Component>, ComponentOperation[]>;
private static createComponentTransitionMap(
componentTransitions: Transition<Component>[]
): Map<Component, Transition<Component>> {
return new Map(
flatMap(componentTransitions, t => [[t.v1, t], [t.v2, t]])
.filter(([v]) => isDefined(v)) as [Component, Transition<Component>][]
);
}
public get componentOperations(): ComponentOperation[] {
return this.outgoingNodeReferences.componentOperations;
}
public get componentTransitions(): Transition<Component>[] {
return this.outgoingNodeReferences.componentTransitions;
}
public get infraModelTransition(): Transition<InfraModel> {
return this.outgoingNodeReferences.infraModelTransition;
}
private static createComponentTransitionToOperationsMap(componentOperations: ComponentOperation[]) {
return groupArrayBy(componentOperations, o => o.componentTransition);
}
constructor(
componentOperations: ComponentOperation[],
componentTransitions: Transition<Component>[],
infraModelTransition: Transition<InfraModel>,
){
super('diff', {}, {componentOperations, componentTransitions, infraModelTransition});
this.componentToTransitionMap = InfraModelDiff.createComponentTransitionMap(componentTransitions);
this.componentTransitionToOperationsMap =
InfraModelDiff.createComponentTransitionToOperationsMap(componentOperations);
}
public getComponentTransition(e: Component): Transition<Component>{
const t = this.componentToTransitionMap.get(e);
if(!t)
throw new TransitionNotFoundError(`Could not find transition for component ${e.name} in model`);
return t;
}
public getComponentTransition(e: Component): Transition<Component>{
const t = this.componentToTransitionMap.get(e);
if(!t)
throw new TransitionNotFoundError(`Could not find transition for component ${e.name} in model`);
return t;
}
public getTransitionOperations(t: Transition<Component>): ComponentOperation[] {
return this.componentTransitionToOperationsMap.get(t) ?? [];
}
public getTransitionOperations(t: Transition<Component>): ComponentOperation[] {
return this.componentTransitionToOperationsMap.get(t) ?? [];
}
public toSerialized(
serialize: (obj: JSONSerializable) => SerializationID,
): Serialized {
return {
componentOperations: this.componentOperations.map(serialize),
componentTransitions: this.componentTransitions.map(t => serialize(t)),
infraModelTransition: serialize(this.infraModelTransition)
};
}
public getSerializationClass(): string {
return SerializationClasses.INFRA_MODEL_DIFF;
}
public toSerialized(
serialize: (obj: JSONSerializable) => SerializationID,
): Serialized {
return {
componentOperations: this.componentOperations.map(serialize),
componentTransitions: this.componentTransitions.map(t => serialize(t)),
infraModelTransition: serialize(this.infraModelTransition),
};
}
public getSerializationClass(): string {
return SerializationClasses.INFRA_MODEL_DIFF;
}
}

@@ -1,118 +0,118 @@

import { JSONSerializable } from "../../export/json-serializable";
import { SerializationClasses } from "../../export/serialization-classes";
import { SerializedComponentOperation, SerializedOutgoingRelationshipComponentOperation } from "../../export/serialized-interfaces/infra-model-diff/serialized-component-operation";
import { Component, ComponentPropertyValue, Relationship } from "../../infra-model";
import { ModelEntity } from "../../infra-model/model-entity";
import { ModelEntityTypes } from "../../infra-model/model-entity-types";
import { Transition } from "../transition";
import { JSONSerializable } from '../../export/json-serializable';
import { SerializationClasses } from '../../export/serialization-classes';
import { SerializedComponentOperation } from '../../export/serialized-interfaces/infra-model-diff/serialized-component-operation';
import { Component, ComponentPropertyValue } from '../../infra-model';
import { ModelEntity } from '../../infra-model/model-entity';
import { ModelEntityTypes } from '../../infra-model/model-entity-types';
import { Transition } from '../transition';
export enum OperationCertainty {
ABSOLUTE = 'Absolute',
PARTIAL = 'Partial'
ABSOLUTE = 'Absolute',
PARTIAL = 'Partial'
}
export enum OperationType {
UPDATE = 'UPDATE',
INSERT = 'INSERT',
REMOVE = 'REMOVE',
REPLACE = 'REPLACE',
RENAME = 'RENAME'
UPDATE = 'UPDATE',
INSERT = 'INSERT',
REMOVE = 'REMOVE',
REPLACE = 'REPLACE',
RENAME = 'RENAME'
}
export type OpNodeData = {
readonly certainty?: OperationCertainty
readonly certainty?: OperationCertainty
}
type InternalOpNodeData = {
readonly type: OperationType,
readonly type: OperationType,
}
export type OpOutgoingNodeReferences = {
readonly cause?: ComponentOperation,
readonly componentTransition: Transition<Component>,
readonly appliesTo?: ModelEntity[],
readonly cause?: ComponentOperation,
readonly componentTransition: Transition<Component>,
readonly appliesTo?: ModelEntity[],
}
type InternalOutgoingNodeReferences = {
readonly appliesTo: ModelEntity[],
readonly exposesValues: {
readonly old?: Component | ComponentPropertyValue,
readonly new?: Component | ComponentPropertyValue
}
readonly appliesTo: ModelEntity[],
readonly exposesValues: {
readonly old?: Component | ComponentPropertyValue,
readonly new?: Component | ComponentPropertyValue
}
}
export abstract class ComponentOperation<ND extends OpNodeData = any, OR extends OpOutgoingNodeReferences = any>
extends ModelEntity<ND & InternalOpNodeData, OR & InternalOutgoingNodeReferences>
implements JSONSerializable {
extends ModelEntity<ND & InternalOpNodeData, OR & InternalOutgoingNodeReferences>
implements JSONSerializable {
public get cause(): ComponentOperation | undefined { return this.outgoingNodeReferences.cause; }
public get componentTransition(): Transition<Component> { return this.outgoingNodeReferences.componentTransition; }
public get certainty(): OperationCertainty { return this.nodeData.certainty ?? OperationCertainty.ABSOLUTE; }
public get operationType(): OperationType { return this.nodeData.type; }
public get cause(): ComponentOperation | undefined { return this.outgoingNodeReferences.cause; }
public get componentTransition(): Transition<Component> { return this.outgoingNodeReferences.componentTransition; }
public get certainty(): OperationCertainty { return this.nodeData.certainty ?? OperationCertainty.ABSOLUTE; }
public get operationType(): OperationType { return this.nodeData.type; }
constructor(
nodeData: ND,
outgoingReferences: OR,
operationType: OperationType,
){
super(
ModelEntityTypes.change,
{...nodeData, type: operationType},
{
exposesValues: {
old: outgoingReferences.componentTransition.v1,
new: outgoingReferences.componentTransition.v2,
},
...outgoingReferences,
appliesTo: [
...(outgoingReferences.appliesTo ?? []),
...outgoingReferences.componentTransition.explode()
]
}
);
}
constructor(
nodeData: ND,
outgoingReferences: OR,
operationType: OperationType,
){
super(
ModelEntityTypes.change,
{...nodeData, type: operationType},
{
exposesValues: {
old: outgoingReferences.componentTransition.v1,
new: outgoingReferences.componentTransition.v2,
},
...outgoingReferences,
appliesTo: [
...(outgoingReferences.appliesTo ?? []),
...outgoingReferences.componentTransition.explode(),
],
},
);
}
public isDirectChange(): boolean{
return !this.cause;
}
public isDirectChange(): boolean{
return !this.cause;
}
public toSerialized(
serialize: (obj: JSONSerializable) => number,
): SerializedComponentOperation {
return {
cause: this.cause ? serialize(this.cause) : undefined,
certainty: this.certainty,
componentTransition: serialize(this.componentTransition),
};
}
public abstract getSerializationClass(): string;
public toSerialized(
serialize: (obj: JSONSerializable) => number,
): SerializedComponentOperation {
return {
cause: this.cause ? serialize(this.cause) : undefined,
certainty: this.certainty,
componentTransition: serialize(this.componentTransition),
};
}
public abstract getSerializationClass(): string;
}
export class InsertComponentOperation extends ComponentOperation {
constructor(
nodeData: OpNodeData,
outgoingReferences: OpOutgoingNodeReferences
){ super(nodeData, outgoingReferences, OperationType.INSERT);
if(this.componentTransition.v1 !== undefined || this.componentTransition.v2 === undefined)
throw Error("Insert Operation's component transition has to have exclusively version 2");
}
constructor(
nodeData: OpNodeData,
outgoingReferences: OpOutgoingNodeReferences,
){ super(nodeData, outgoingReferences, OperationType.INSERT);
if(this.componentTransition.v1 !== undefined || this.componentTransition.v2 === undefined)
throw Error("Insert Operation's component transition has to have exclusively version 2");
}
public getSerializationClass(): string {
return SerializationClasses.INSERT_COMPONENT_OPERATION;
}
public getSerializationClass(): string {
return SerializationClasses.INSERT_COMPONENT_OPERATION;
}
}
export class RemoveComponentOperation extends ComponentOperation {
constructor(
nodeData: OpNodeData,
outgoingReferences: OpOutgoingNodeReferences
){ super(nodeData, outgoingReferences, OperationType.REMOVE);
if(this.componentTransition.v1 === undefined || this.componentTransition.v2 !== undefined)
throw Error("Remove Operation's component transition has to have exclusively version 1");
}
constructor(
nodeData: OpNodeData,
outgoingReferences: OpOutgoingNodeReferences,
){ super(nodeData, outgoingReferences, OperationType.REMOVE);
if(this.componentTransition.v1 === undefined || this.componentTransition.v2 !== undefined)
throw Error("Remove Operation's component transition has to have exclusively version 1");
}
public getSerializationClass(): string {
return SerializationClasses.REMOVE_COMPONENT_OPERATION;
}
public getSerializationClass(): string {
return SerializationClasses.REMOVE_COMPONENT_OPERATION;
}
}

@@ -122,13 +122,13 @@

constructor(
nodeData: OpNodeData,
outgoingReferences: OpOutgoingNodeReferences
){ super(nodeData, outgoingReferences, OperationType.REPLACE);
if(this.componentTransition.v1 === undefined || this.componentTransition.v2 === undefined)
throw Error("Replace Operation's component transition has to have both v1 and v2");
}
constructor(
nodeData: OpNodeData,
outgoingReferences: OpOutgoingNodeReferences,
){ super(nodeData, outgoingReferences, OperationType.REPLACE);
if(this.componentTransition.v1 === undefined || this.componentTransition.v2 === undefined)
throw Error("Replace Operation's component transition has to have both v1 and v2");
}
public getSerializationClass(): string {
return SerializationClasses.REPLACE_COMPONENT_OPERATION;
}
public getSerializationClass(): string {
return SerializationClasses.REPLACE_COMPONENT_OPERATION;
}
}

@@ -138,13 +138,13 @@

constructor(
nodeData: OpNodeData,
outgoingReferences: OpOutgoingNodeReferences
){ super(nodeData, outgoingReferences, OperationType.RENAME);
if(this.componentTransition.v1 === undefined || this.componentTransition.v2 === undefined)
throw Error("Rename Operation's component transition has to have both v1 and v2");
}
constructor(
nodeData: OpNodeData,
outgoingReferences: OpOutgoingNodeReferences,
){ super(nodeData, outgoingReferences, OperationType.RENAME);
if(this.componentTransition.v1 === undefined || this.componentTransition.v2 === undefined)
throw Error("Rename Operation's component transition has to have both v1 and v2");
}
public getSerializationClass(): string {
return SerializationClasses.RENAME_COMPONENT_OPERATION;
}
public getSerializationClass(): string {
return SerializationClasses.RENAME_COMPONENT_OPERATION;
}
}

@@ -1,90 +0,95 @@

import { JSONSerializable } from "../../export/json-serializable";
import { SerializationClasses } from "../../export/serialization-classes";
import { SerializedPropertyComponentOperation, SerializedUpdatePropertyComponentOperation } from "../../export/serialized-interfaces/infra-model-diff/serialized-component-operation";
import { ComponentPropertyValue, ComponentUpdateType, PropertyPath } from "../../infra-model";
import { arraysEqual, flatMap } from "../../utils";
import { Transition } from "../transition";
import { ComponentOperation, OperationType, OpNodeData, OpOutgoingNodeReferences } from "./component-operation";
import { JSONSerializable } from '../../export/json-serializable';
import { SerializationClasses } from '../../export/serialization-classes';
import { SerializedPropertyComponentOperation, SerializedUpdatePropertyComponentOperation } from '../../export/serialized-interfaces/infra-model-diff/serialized-component-operation';
import { ComponentPropertyValue, ComponentUpdateType, PropertyPath } from '../../infra-model';
import { arraysEqual, flatMap } from '../../utils';
import { Transition } from '../transition';
import { ComponentOperation, OperationType, OpNodeData, OpOutgoingNodeReferences } from './component-operation';
type InternalOpNodeData = {
propertyOperationType: OperationType,
propertyOperationType: OperationType,
}
export type PropOpOutgoingNodeReferences = OpOutgoingNodeReferences & {
readonly propertyTransition: Transition<ComponentPropertyValue>,
readonly pathTransition: Transition<PropertyPath>,
readonly propertyTransition: Transition<ComponentPropertyValue>,
readonly pathTransition: Transition<PropertyPath>,
}
export abstract class PropertyComponentOperation<ND extends OpNodeData = any, OR extends PropOpOutgoingNodeReferences = any>
extends ComponentOperation<ND & InternalOpNodeData, OR> {
public get pathTransition(): Transition<PropertyPath> { return this.outgoingNodeReferences.pathTransition; }
public get propertyTransition(): Transition<ComponentPropertyValue> { return this.outgoingNodeReferences.propertyTransition; }
public get propertyOperationType(): OperationType { return this.nodeData.propertyOperationType; }
export abstract class PropertyComponentOperation
<ND extends OpNodeData = any, OR extends PropOpOutgoingNodeReferences = any>
extends ComponentOperation<ND & InternalOpNodeData, OR>
{
constructor(
nodeData: ND,
outgoingReferences: OR,
propertyOperationType: OperationType,
){
super(
{ ...nodeData, propertyOperationType },
{
exposesValues: {
old: outgoingReferences.propertyTransition.v1,
new: outgoingReferences.propertyTransition.v2,
},
...outgoingReferences,
appliesTo: [...outgoingReferences.appliesTo ?? [], ...outgoingReferences.propertyTransition.explode()],
}, OperationType.UPDATE
);
}
public get pathTransition(): Transition<PropertyPath> { return this.outgoingNodeReferences.pathTransition; }
public get propertyTransition(): Transition<ComponentPropertyValue> {
return this.outgoingNodeReferences.propertyTransition;
}
public get propertyOperationType(): OperationType { return this.nodeData.propertyOperationType; }
getUpdateType(): ComponentUpdateType {
if(!this.propertyTransition.v2 && !this.propertyTransition.v1){
throw Error("Property Operation has no before or after property states");
}
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return this.propertyTransition.v1?.componentUpdateType ?? this.propertyTransition.v2!.componentUpdateType;
constructor(
nodeData: ND,
outgoingReferences: OR,
propertyOperationType: OperationType,
){
super(
{ ...nodeData, propertyOperationType },
{
exposesValues: {
old: outgoingReferences.propertyTransition.v1,
new: outgoingReferences.propertyTransition.v2,
},
...outgoingReferences,
appliesTo: [...outgoingReferences.appliesTo ?? [], ...outgoingReferences.propertyTransition.explode()],
}, OperationType.UPDATE,
);
}
getUpdateType(): ComponentUpdateType {
if(!this.propertyTransition.v2 && !this.propertyTransition.v1){
throw Error('Property Operation has no before or after property states');
}
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
return this.propertyTransition.v1?.componentUpdateType ?? this.propertyTransition.v2!.componentUpdateType;
}
getV1Path(v2path: PropertyPath): PropertyPath | undefined {
if(this.pathTransition.v1 && this.pathTransition.v2
getV1Path(v2path: PropertyPath): PropertyPath | undefined {
if(this.pathTransition.v1 && this.pathTransition.v2
&& v2path.length >= this.pathTransition.v2.length
&& arraysEqual(v2path, this.pathTransition.v2.slice(0, v2path.length))){
return [...this.pathTransition.v1, ...v2path.slice(this.pathTransition.v1.length)];
}
return;
return [...this.pathTransition.v1, ...v2path.slice(this.pathTransition.v1.length)];
}
return;
}
public toSerialized(
serialize: (obj: JSONSerializable) => number,
): SerializedPropertyComponentOperation {
return {
...super.toSerialized(serialize),
pathTransition: serialize(this.pathTransition),
propertyTransition: serialize(this.propertyTransition),
};
}
public toSerialized(
serialize: (obj: JSONSerializable) => number,
): SerializedPropertyComponentOperation {
return {
...super.toSerialized(serialize),
pathTransition: serialize(this.pathTransition),
propertyTransition: serialize(this.propertyTransition),
};
}
public explode(): PropertyComponentOperation[] {
return this instanceof UpdatePropertyComponentOperation ? this.getAllInnerOperations() : [this];
}
public explode(): PropertyComponentOperation[] {
return this instanceof UpdatePropertyComponentOperation ? this.getAllInnerOperations() : [this];
}
}
export class InsertPropertyComponentOperation extends PropertyComponentOperation<OpNodeData, PropOpOutgoingNodeReferences> {
export class InsertPropertyComponentOperation
extends PropertyComponentOperation<OpNodeData, PropOpOutgoingNodeReferences>
{
constructor(
nodeData: OpNodeData,
outgoingReferences: PropOpOutgoingNodeReferences,
){
super(nodeData, {
...outgoingReferences,
appliesTo: [...outgoingReferences.appliesTo ?? [], ...outgoingReferences.propertyTransition.v2?.explode() ?? []],
}, OperationType.INSERT);
}
constructor(
nodeData: OpNodeData,
outgoingReferences: PropOpOutgoingNodeReferences
){
super(nodeData, {
...outgoingReferences,
appliesTo: [...outgoingReferences.appliesTo ?? [], ...outgoingReferences.propertyTransition.v2?.explode() ?? []]
}, OperationType.INSERT);
}
public getSerializationClass(): string {
return SerializationClasses.INSERT_PROPERTY_COMPONENT_OPERATION;
}
public getSerializationClass(): string {
return SerializationClasses.INSERT_PROPERTY_COMPONENT_OPERATION;
}
}

@@ -94,75 +99,78 @@

constructor(
nodeData: OpNodeData,
outgoingReferences: PropOpOutgoingNodeReferences
){
super(nodeData, {
...outgoingReferences,
appliesTo: [...outgoingReferences.appliesTo ?? [], ...outgoingReferences.propertyTransition.v1?.explode() ?? []]
}, OperationType.REMOVE);
}
constructor(
nodeData: OpNodeData,
outgoingReferences: PropOpOutgoingNodeReferences,
){
super(nodeData, {
...outgoingReferences,
appliesTo: [...outgoingReferences.appliesTo ?? [], ...outgoingReferences.propertyTransition.v1?.explode() ?? []],
}, OperationType.REMOVE);
}
public getSerializationClass(): string {
return SerializationClasses.REMOVE_PROPERTY_COMPONENT_OPERATION;
}
public getSerializationClass(): string {
return SerializationClasses.REMOVE_PROPERTY_COMPONENT_OPERATION;
}
}
export type UpdatePropOpOutgoingNodeReferences = PropOpOutgoingNodeReferences & {
readonly innerOperations?: PropertyComponentOperation[],
readonly innerOperations?: PropertyComponentOperation[],
}
export class UpdatePropertyComponentOperation extends PropertyComponentOperation<OpNodeData, UpdatePropOpOutgoingNodeReferences> {
export class UpdatePropertyComponentOperation
extends PropertyComponentOperation<OpNodeData, UpdatePropOpOutgoingNodeReferences>
{
public get innerOperations(): PropertyComponentOperation[] | undefined {
return this.outgoingNodeReferences.innerOperations;
}
public get innerOperations(): PropertyComponentOperation[] | undefined { return this.outgoingNodeReferences.innerOperations; }
constructor(
nodeData: OpNodeData,
outgoingReferences: UpdatePropOpOutgoingNodeReferences,
operationType: OperationType = OperationType.UPDATE,
){super(nodeData, outgoingReferences, operationType);}
constructor(
nodeData: OpNodeData,
outgoingReferences: UpdatePropOpOutgoingNodeReferences,
operationType: OperationType = OperationType.UPDATE
){super(nodeData, outgoingReferences, operationType);}
getAllInnerOperations(): PropertyComponentOperation[]{
if(!this.innerOperations || this.innerOperations.length === 0) {
return [this];
}
return flatMap(this.innerOperations, o =>
[this, ...(
o instanceof UpdatePropertyComponentOperation
? o.getAllInnerOperations()
: [o]
)
]
);
getAllInnerOperations(): PropertyComponentOperation[]{
if(!this.innerOperations || this.innerOperations.length === 0) {
return [this];
}
return flatMap(this.innerOperations, o =>
[this, ...(
o instanceof UpdatePropertyComponentOperation
? o.getAllInnerOperations()
: [o]
),
],
);
}
getV1Path(v2path: PropertyPath): PropertyPath | undefined {
const pathFoundSoFar = super.getV1Path(v2path);
if(pathFoundSoFar){
if(!this.innerOperations)
return pathFoundSoFar;
for(const op of this.innerOperations){
const p = op.getV1Path(v2path);
if(p) return p;
}
}
return;
getV1Path(v2path: PropertyPath): PropertyPath | undefined {
const pathFoundSoFar = super.getV1Path(v2path);
if(pathFoundSoFar){
if(!this.innerOperations)
return pathFoundSoFar;
for(const op of this.innerOperations){
const p = op.getV1Path(v2path);
if(p) return p;
}
}
return;
}
public getLeaves(): PropertyComponentOperation[] {
if(!this.innerOperations) return [this];
return flatMap(this.innerOperations, o => (o instanceof UpdatePropertyComponentOperation) ? o.getLeaves() : [o]);
}
public getLeaves(): PropertyComponentOperation[] {
if(!this.innerOperations) return [this];
return flatMap(this.innerOperations, o => (o instanceof UpdatePropertyComponentOperation) ? o.getLeaves() : [o]);
}
public toSerialized(
serialize: (obj: JSONSerializable) => number,
): SerializedUpdatePropertyComponentOperation {
return {
...super.toSerialized(serialize),
innerOperations: this.innerOperations?.map(o => serialize(o)),
};
}
public toSerialized(
serialize: (obj: JSONSerializable) => number,
): SerializedUpdatePropertyComponentOperation {
return {
...super.toSerialized(serialize),
innerOperations: this.innerOperations?.map(o => serialize(o)),
};
}
public getSerializationClass(): string {
return SerializationClasses.UPDATE_PROPERTY_COMPONENT_OPERATION;
}
public getSerializationClass(): string {
return SerializationClasses.UPDATE_PROPERTY_COMPONENT_OPERATION;
}
}

@@ -172,11 +180,11 @@

constructor(
nodeData: OpNodeData,
outgoingReferences: UpdatePropOpOutgoingNodeReferences,
operationType: OperationType = OperationType.RENAME
){super(nodeData, outgoingReferences, operationType);}
constructor(
nodeData: OpNodeData,
outgoingReferences: UpdatePropOpOutgoingNodeReferences,
operationType: OperationType = OperationType.RENAME,
){super(nodeData, outgoingReferences, operationType);}
public getSerializationClass(): string {
return SerializationClasses.MOVE_PROPERTY_COMPONENT_OPERATION;
}
public getSerializationClass(): string {
return SerializationClasses.MOVE_PROPERTY_COMPONENT_OPERATION;
}
}

@@ -1,8 +0,8 @@

import { isDefined } from "../utils";
import { isJSONSerializable, JSONSerializable, Serialized, SerializedRecord } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializationClasses } from "../export/serialization-classes";
import { SerializedTransition } from "../export/serialized-interfaces/infra-model-diff/serialized-transition";
import { ModelEntity } from "../infra-model/model-entity";
import { ModelEntityTypes } from "../infra-model/model-entity-types";
import { isJSONSerializable, JSONSerializable, Serialized } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializationClasses } from '../export/serialization-classes';
import { SerializedTransition } from '../export/serialized-interfaces/infra-model-diff/serialized-transition';
import { ModelEntity } from '../infra-model/model-entity';
import { ModelEntityTypes } from '../infra-model/model-entity-types';
import { isDefined } from '../utils';

@@ -13,4 +13,4 @@ /**

export type TransitionVersions<T> = {
v1?: T,
v2?: T,
v1?: T,
v2?: T,
}

@@ -23,55 +23,65 @@

export type CompleteTransitionVersions<T> = TransitionVersions<T> & {
v1: T,
v2: T
v1: T,
v2: T
}
export class Transition<T extends JSONSerializable | Serialized, V extends TransitionVersions<T> = TransitionVersions<T>>
extends ModelEntity<Record<string, any>, Record<string, any>>
implements JSONSerializable {
export class Transition
<T extends JSONSerializable | Serialized, V extends TransitionVersions<T> = TransitionVersions<T>>
extends ModelEntity<Record<string, any>, Record<string, any>>
implements JSONSerializable
{
private static isModelEntityTransition(
versions: TransitionVersions<any>,
): versions is TransitionVersions<ModelEntity> {
return versions.v1 instanceof ModelEntity || versions.v2 instanceof ModelEntity;
}
get v1(): T|undefined { return this.isModelEntityTransition ? this.outgoingNodeReferences.v1 : this.nodeData.v1; }
get v2(): T|undefined { return this.isModelEntityTransition ? this.outgoingNodeReferences.v2 : this.nodeData.v2; }
private isModelEntityTransition: boolean;
constructor(versions: V){
const isModelEntityTransition = Transition.isModelEntityTransition(versions);
super(ModelEntityTypes.transition, isModelEntityTransition ? {} : versions, isModelEntityTransition ? versions : {});
this.isModelEntityTransition = isModelEntityTransition;
}
get v1(): T|undefined { return this.isModelEntityTransition ? this.outgoingNodeReferences.v1 : this.nodeData.v1; }
get v2(): T|undefined { return this.isModelEntityTransition ? this.outgoingNodeReferences.v2 : this.nodeData.v2; }
private isModelEntityTransition: boolean;
public isCompleteTransition(): this is CompleteTransition<T> {
return this.v1 !== undefined && this.v2 !== undefined;
}
constructor(versions: V){
const isModelEntityTransition = Transition.isModelEntityTransition(versions);
super(
ModelEntityTypes.transition,
isModelEntityTransition ? {} : versions,
isModelEntityTransition ? versions : {},
);
this.isModelEntityTransition = isModelEntityTransition;
}
public getSerializationClass(): string {
return SerializationClasses.TRANSITION;
}
public isCompleteTransition(): this is CompleteTransition<T> {
return this.v1 !== undefined && this.v2 !== undefined;
}
private static isModelEntityTransition(versions: TransitionVersions<any>): versions is TransitionVersions<ModelEntity> {
return versions.v1 instanceof ModelEntity || versions.v2 instanceof ModelEntity;
}
public getSerializationClass(): string {
return SerializationClasses.TRANSITION;
}
public explode() {
return [this.v1, this.v2].filter(isDefined);
}
public explode(): NonNullable<T>[]{
return [this.v1, this.v2].filter(isDefined);
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedTransition {
const serializeVersion = (version: T) => isJSONSerializable(version) ? serialize(version) : {value: version as Serialized};
return {
v1: this.v1 ? serializeVersion(this.v1) : undefined,
v2: this.v2 ? serializeVersion(this.v2) : undefined,
};
}
public toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedTransition {
const serializeVersion = (version: T) => isJSONSerializable(version)
? serialize(version)
: {value: version as Serialized};
return {
v1: this.v1 ? serializeVersion(this.v1) : undefined,
v2: this.v2 ? serializeVersion(this.v2) : undefined,
};
}
}
export class CompleteTransition<T extends JSONSerializable | Serialized> extends Transition<T, CompleteTransitionVersions<T>> {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
get v1(): T { return super.v1!; }
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
get v2(): T { return super.v2!; }
constructor(versions: CompleteTransitionVersions<T>){
super(versions);
}
export class CompleteTransition
<T extends JSONSerializable | Serialized> extends Transition<T, CompleteTransitionVersions<T>>
{
// By definition these need to be defined
get v1(): T { return super.v1!; } // eslint-disable-line @typescript-eslint/no-non-null-assertion
get v2(): T { return super.v2!; } // eslint-disable-line @typescript-eslint/no-non-null-assertion
constructor(versions: CompleteTransitionVersions<T>){
super(versions);
}
}

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../export/json-serializable";
import { SerializedAggregation } from "../export/serialized-interfaces/aggregations/serialized-aggregation";
import { JSONSerializable, Serialized } from '../export/json-serializable';
import { SerializedAggregation } from '../export/serialized-interfaces/aggregations/serialized-aggregation';
export declare type AggCharacteristicValue = string | number | boolean | undefined;

@@ -4,0 +4,0 @@ export interface Aggregation<T> {

@@ -11,3 +11,3 @@ "use strict";

subAggs: (_a = ig.subAggs) === null || _a === void 0 ? void 0 : _a.map(sg => serializeCustom(sg, serialization_classes_1.SerializationClasses.AGGREGATION, exports.aggregationSerializer(sg, serialize, serializeCustom))),
descriptions: ig.descriptions
descriptions: ig.descriptions,
};

@@ -37,2 +37,2 @@ };

exports.getAllCharacteristics = getAllCharacteristics;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9hZ2dyZWdhdGlvbnMvYWdncmVnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkVBQXVFO0FBYWhFLE1BQU0scUJBQXFCLEdBQUcsQ0FDakMsRUFBa0IsRUFDbEIsU0FBNEMsRUFDNUMsZUFBeUYsRUFDcEUsRUFBRTs7SUFDdkIsT0FBTztRQUNILFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxlQUFlLEVBQUUsRUFBRSxDQUFDLGVBQWU7UUFDbkMsT0FBTyxFQUFFLE1BQUEsRUFBRSxDQUFDLE9BQU8sMENBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUMxQyxFQUFFLEVBQUUsNENBQW9CLENBQUMsV0FBVyxFQUFFLDZCQUFxQixDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQzlGLENBQUM7UUFDRixZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVk7S0FDaEMsQ0FBQztBQUNOLENBQUMsQ0FBQztBQWJXLFFBQUEscUJBQXFCLHlCQWFoQztBQUVLLE1BQU0sa0JBQWtCLEdBQUcsQ0FBSSxHQUFtQixFQUFZLEVBQUU7SUFDbkUsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLElBQUksQ0FBQyxHQUErQixHQUFHLENBQUM7SUFDeEMsT0FBTSxDQUFDLEVBQUM7UUFDSixJQUFHLENBQUMsQ0FBQyxZQUFZO1lBQ2IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztLQUNuQjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQVhXLFFBQUEsa0JBQWtCLHNCQVc3QjtBQUVLLE1BQU0scUJBQXFCLEdBQUcsQ0FBSSxHQUFtQixFQUEwQyxFQUFFO0lBQ3BHLElBQUksTUFBTSxHQUEyQyxFQUFFLENBQUM7SUFFeEQsSUFBSSxDQUFDLEdBQStCLEdBQUcsQ0FBQztJQUN4QyxPQUFNLENBQUMsRUFBQztRQUNKLE1BQU0sR0FBRyxFQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBQyxDQUFDO1FBQzNDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO0tBQ25CO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBVlcsUUFBQSxxQkFBcUIseUJBVWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gXCIuLi9leHBvcnQvanNvbi1zZXJpYWxpemFibGVcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25DbGFzc2VzIH0gZnJvbSBcIi4uL2V4cG9ydC9zZXJpYWxpemF0aW9uLWNsYXNzZXNcIjtcbmltcG9ydCB7IFNlcmlhbGl6ZWRBZ2dyZWdhdGlvbiB9IGZyb20gXCIuLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2FnZ3JlZ2F0aW9ucy9zZXJpYWxpemVkLWFnZ3JlZ2F0aW9uXCI7XG5cbmV4cG9ydCB0eXBlIEFnZ0NoYXJhY3RlcmlzdGljVmFsdWUgPSAgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGlvbjxUPiB7XG4gICAgZW50aXRpZXM6IFNldDxUPixcbiAgICBjaGFyYWN0ZXJpc3RpY3M6IFJlY29yZDxzdHJpbmcsIEFnZ0NoYXJhY3RlcmlzdGljVmFsdWU+LFxuICAgIHN1YkFnZ3M/OiBBZ2dyZWdhdGlvbjxUPltdLFxuICAgIHBhcmVudEFnZz86IEFnZ3JlZ2F0aW9uPFQ+LFxuICAgIGRlc2NyaXB0aW9ucz86IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBjb25zdCBhZ2dyZWdhdGlvblNlcmlhbGl6ZXIgPSA8VCBleHRlbmRzIEpTT05TZXJpYWxpemFibGU+KFxuICAgIGlnOiBBZ2dyZWdhdGlvbjxUPixcbiAgICBzZXJpYWxpemU6IChvYmo6IEpTT05TZXJpYWxpemFibGUpID0+IG51bWJlcixcbiAgICBzZXJpYWxpemVDdXN0b206IChvYmo6IGFueSwgc2VyaWFsaXphdGlvbkNsYXNzOiBzdHJpbmcsIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWQpID0+IG51bWJlclxuKTogU2VyaWFsaXplZEFnZ3JlZ2F0aW9uID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICBlbnRpdGllczogWy4uLmlnLmVudGl0aWVzXS5tYXAoZSA9PiBzZXJpYWxpemUoZSkpLFxuICAgICAgICBjaGFyYWN0ZXJpc3RpY3M6IGlnLmNoYXJhY3RlcmlzdGljcyxcbiAgICAgICAgc3ViQWdnczogaWcuc3ViQWdncz8ubWFwKHNnID0+IHNlcmlhbGl6ZUN1c3RvbShcbiAgICAgICAgICAgIHNnLCBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5BR0dSRUdBVElPTiwgYWdncmVnYXRpb25TZXJpYWxpemVyKHNnLCBzZXJpYWxpemUsIHNlcmlhbGl6ZUN1c3RvbSlcbiAgICAgICAgKSksXG4gICAgICAgIGRlc2NyaXB0aW9uczogaWcuZGVzY3JpcHRpb25zXG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRBbGxEZXNjcmlwdGlvbnMgPSA8VD4oYWdnOiBBZ2dyZWdhdGlvbjxUPik6IHN0cmluZ1tdID0+IHtcbiAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgXG4gICAgbGV0IGE6IEFnZ3JlZ2F0aW9uPFQ+IHwgdW5kZWZpbmVkID0gYWdnO1xuICAgIHdoaWxlKGEpe1xuICAgICAgICBpZihhLmRlc2NyaXB0aW9ucylcbiAgICAgICAgICAgIHJlc3VsdC51bnNoaWZ0KC4uLmEuZGVzY3JpcHRpb25zKTtcbiAgICAgICAgYSA9IGEucGFyZW50QWdnO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QWxsQ2hhcmFjdGVyaXN0aWNzID0gPFQ+KGFnZzogQWdncmVnYXRpb248VD4pOiBSZWNvcmQ8c3RyaW5nLCBBZ2dDaGFyYWN0ZXJpc3RpY1ZhbHVlPiA9PiB7XG4gICAgbGV0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgQWdnQ2hhcmFjdGVyaXN0aWNWYWx1ZT4gPSB7fTtcbiAgICBcbiAgICBsZXQgYTogQWdncmVnYXRpb248VD4gfCB1bmRlZmluZWQgPSBhZ2c7XG4gICAgd2hpbGUoYSl7XG4gICAgICAgIHJlc3VsdCA9IHsuLi5yZXN1bHQsIC4uLmEuY2hhcmFjdGVyaXN0aWNzfTtcbiAgICAgICAgYSA9IGEucGFyZW50QWdnO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59OyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9hZ2dyZWdhdGlvbnMvYWdncmVnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkVBQXVFO0FBYWhFLE1BQU0scUJBQXFCLEdBQUcsQ0FDbkMsRUFBa0IsRUFDbEIsU0FBNEMsRUFDNUMsZUFBeUYsRUFDbEUsRUFBRTs7SUFDekIsT0FBTztRQUNMLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRCxlQUFlLEVBQUUsRUFBRSxDQUFDLGVBQWU7UUFDbkMsT0FBTyxFQUFFLE1BQUEsRUFBRSxDQUFDLE9BQU8sMENBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUM1QyxFQUFFLEVBQUUsNENBQW9CLENBQUMsV0FBVyxFQUFFLDZCQUFxQixDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQzVGLENBQUM7UUFDRixZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVk7S0FDOUIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQWJXLFFBQUEscUJBQXFCLHlCQWFoQztBQUVLLE1BQU0sa0JBQWtCLEdBQUcsQ0FBSSxHQUFtQixFQUFZLEVBQUU7SUFDckUsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBRTVCLElBQUksQ0FBQyxHQUErQixHQUFHLENBQUM7SUFDeEMsT0FBTSxDQUFDLEVBQUM7UUFDTixJQUFHLENBQUMsQ0FBQyxZQUFZO1lBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztLQUNqQjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQVhXLFFBQUEsa0JBQWtCLHNCQVc3QjtBQUVLLE1BQU0scUJBQXFCLEdBQUcsQ0FBSSxHQUFtQixFQUEwQyxFQUFFO0lBQ3RHLElBQUksTUFBTSxHQUEyQyxFQUFFLENBQUM7SUFFeEQsSUFBSSxDQUFDLEdBQStCLEdBQUcsQ0FBQztJQUN4QyxPQUFNLENBQUMsRUFBQztRQUNOLE1BQU0sR0FBRyxFQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBQyxDQUFDO1FBQzNDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDO0tBQ2pCO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBVlcsUUFBQSxxQkFBcUIseUJBVWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gJy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uQ2xhc3NlcyB9IGZyb20gJy4uL2V4cG9ydC9zZXJpYWxpemF0aW9uLWNsYXNzZXMnO1xuaW1wb3J0IHsgU2VyaWFsaXplZEFnZ3JlZ2F0aW9uIH0gZnJvbSAnLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9hZ2dyZWdhdGlvbnMvc2VyaWFsaXplZC1hZ2dyZWdhdGlvbic7XG5cbmV4cG9ydCB0eXBlIEFnZ0NoYXJhY3RlcmlzdGljVmFsdWUgPSAgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGlvbjxUPiB7XG4gIGVudGl0aWVzOiBTZXQ8VD4sXG4gIGNoYXJhY3RlcmlzdGljczogUmVjb3JkPHN0cmluZywgQWdnQ2hhcmFjdGVyaXN0aWNWYWx1ZT4sXG4gIHN1YkFnZ3M/OiBBZ2dyZWdhdGlvbjxUPltdLFxuICBwYXJlbnRBZ2c/OiBBZ2dyZWdhdGlvbjxUPixcbiAgZGVzY3JpcHRpb25zPzogc3RyaW5nW11cbn1cblxuZXhwb3J0IGNvbnN0IGFnZ3JlZ2F0aW9uU2VyaWFsaXplciA9IDxUIGV4dGVuZHMgSlNPTlNlcmlhbGl6YWJsZT4oXG4gIGlnOiBBZ2dyZWdhdGlvbjxUPixcbiAgc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBudW1iZXIsXG4gIHNlcmlhbGl6ZUN1c3RvbTogKG9iajogYW55LCBzZXJpYWxpemF0aW9uQ2xhc3M6IHN0cmluZywgc2VyaWFsaXplZDogU2VyaWFsaXplZCkgPT4gbnVtYmVyLFxuKTogU2VyaWFsaXplZEFnZ3JlZ2F0aW9uID0+IHtcbiAgcmV0dXJuIHtcbiAgICBlbnRpdGllczogWy4uLmlnLmVudGl0aWVzXS5tYXAoZSA9PiBzZXJpYWxpemUoZSkpLFxuICAgIGNoYXJhY3RlcmlzdGljczogaWcuY2hhcmFjdGVyaXN0aWNzLFxuICAgIHN1YkFnZ3M6IGlnLnN1YkFnZ3M/Lm1hcChzZyA9PiBzZXJpYWxpemVDdXN0b20oXG4gICAgICBzZywgU2VyaWFsaXphdGlvbkNsYXNzZXMuQUdHUkVHQVRJT04sIGFnZ3JlZ2F0aW9uU2VyaWFsaXplcihzZywgc2VyaWFsaXplLCBzZXJpYWxpemVDdXN0b20pLFxuICAgICkpLFxuICAgIGRlc2NyaXB0aW9uczogaWcuZGVzY3JpcHRpb25zLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFsbERlc2NyaXB0aW9ucyA9IDxUPihhZ2c6IEFnZ3JlZ2F0aW9uPFQ+KTogc3RyaW5nW10gPT4ge1xuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG5cbiAgbGV0IGE6IEFnZ3JlZ2F0aW9uPFQ+IHwgdW5kZWZpbmVkID0gYWdnO1xuICB3aGlsZShhKXtcbiAgICBpZihhLmRlc2NyaXB0aW9ucylcbiAgICAgIHJlc3VsdC51bnNoaWZ0KC4uLmEuZGVzY3JpcHRpb25zKTtcbiAgICBhID0gYS5wYXJlbnRBZ2c7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFsbENoYXJhY3RlcmlzdGljcyA9IDxUPihhZ2c6IEFnZ3JlZ2F0aW9uPFQ+KTogUmVjb3JkPHN0cmluZywgQWdnQ2hhcmFjdGVyaXN0aWNWYWx1ZT4gPT4ge1xuICBsZXQgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBBZ2dDaGFyYWN0ZXJpc3RpY1ZhbHVlPiA9IHt9O1xuXG4gIGxldCBhOiBBZ2dyZWdhdGlvbjxUPiB8IHVuZGVmaW5lZCA9IGFnZztcbiAgd2hpbGUoYSl7XG4gICAgcmVzdWx0ID0gey4uLnJlc3VsdCwgLi4uYS5jaGFyYWN0ZXJpc3RpY3N9O1xuICAgIGEgPSBhLnBhcmVudEFnZztcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59OyJdfQ==

@@ -19,2 +19,2 @@ "use strict";

})(CompOpAggCharacteristics = exports.CompOpAggCharacteristics || (exports.CompOpAggCharacteristics = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW9wZXJhdGlvbnMtY2hhcmFjdGVyaXN0aWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vYWdncmVnYXRpb25zL2NvbXBvbmVudC1vcGVyYXRpb25zLWNoYXJhY3RlcmlzdGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLHdCQWFYO0FBYkQsV0FBWSx3QkFBd0I7SUFDaEMseUNBQWEsQ0FBQTtJQUNiLCtEQUFtQyxDQUFBO0lBQ25DLDZEQUFpQyxDQUFBO0lBQ2pDLG1FQUF1QyxDQUFBO0lBQ3ZDLCtEQUFtQyxDQUFBO0lBQ25DLHVFQUEyQyxDQUFBO0lBQzNDLDZEQUFpQyxDQUFBO0lBQ2pDLDJFQUErQyxDQUFBO0lBQy9DLDJFQUErQyxDQUFBO0lBQy9DLGlFQUFxQyxDQUFBO0lBQ3JDLDZFQUFpRCxDQUFBO0lBQ2pELG1FQUF1QyxDQUFBO0FBQzNDLENBQUMsRUFiVyx3QkFBd0IsR0FBeEIsZ0NBQXdCLEtBQXhCLGdDQUF3QixRQWFuQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENvbXBPcEFnZ0NoYXJhY3RlcmlzdGljcyB7XG4gICAgUklTSyA9IFwiUklTS1wiLFxuICAgIEFGRkVDVEVEX0VOVElUWSA9ICdBZmZlY3RlZCBFbnRpdHknLFxuICAgIENPTVBPTkVOVF9UWVBFID0gJ0NvbXBvbmVudCBUeXBlJyxcbiAgICBDT01QT05FTlRfU1VCVFlQRSA9ICdDb21wb25lbnQgU3VidHlwZScsXG4gICAgT1BFUkFUSU9OX0NBVVNFID0gJ09wZXJhdGlvbiBDYXVzZScsXG4gICAgT1BFUkFUSU9OX0NFUlRBSU5UWSA9ICdPcGVyYXRpb24gQ2VydGFpbnR5JyxcbiAgICBPUEVSQVRJT05fVFlQRSA9ICdPcGVyYXRpb24gVHlwZScsXG4gICAgRU5USVRZX09QRVJBVElPTl9UWVBFID0gJ0VudGl0eSBPcGVyYXRpb24gVHlwZScsXG4gICAgUFJPUEVSVFlfUEFUSF9CRUZPUkUgPSAnUHJldmlvdXMgUHJvcGVydHkgUGF0aCcsXG4gICAgUFJPUEVSVFlfUEFUSF9BRlRFUiA9ICdQcm9wZXJ0eSBQYXRoJyxcbiAgICBQUk9QRVJUWV9WQUxVRV9CRUZPUkUgPSAnUHJldmlvdXMgUHJvcGVydHkgVmFsdWUnLFxuICAgIFBST1BFUlRZX1ZBTFVFX0FGVEVSID0gJ1Byb3BlcnR5IFZhbHVlJyxcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW9wZXJhdGlvbnMtY2hhcmFjdGVyaXN0aWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vYWdncmVnYXRpb25zL2NvbXBvbmVudC1vcGVyYXRpb25zLWNoYXJhY3RlcmlzdGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLHdCQWFYO0FBYkQsV0FBWSx3QkFBd0I7SUFDbEMseUNBQWEsQ0FBQTtJQUNiLCtEQUFtQyxDQUFBO0lBQ25DLDZEQUFpQyxDQUFBO0lBQ2pDLG1FQUF1QyxDQUFBO0lBQ3ZDLCtEQUFtQyxDQUFBO0lBQ25DLHVFQUEyQyxDQUFBO0lBQzNDLDZEQUFpQyxDQUFBO0lBQ2pDLDJFQUErQyxDQUFBO0lBQy9DLDJFQUErQyxDQUFBO0lBQy9DLGlFQUFxQyxDQUFBO0lBQ3JDLDZFQUFpRCxDQUFBO0lBQ2pELG1FQUF1QyxDQUFBO0FBQ3pDLENBQUMsRUFiVyx3QkFBd0IsR0FBeEIsZ0NBQXdCLEtBQXhCLGdDQUF3QixRQWFuQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIENvbXBPcEFnZ0NoYXJhY3RlcmlzdGljcyB7XG4gIFJJU0sgPSAnUklTSycsXG4gIEFGRkVDVEVEX0VOVElUWSA9ICdBZmZlY3RlZCBFbnRpdHknLFxuICBDT01QT05FTlRfVFlQRSA9ICdDb21wb25lbnQgVHlwZScsXG4gIENPTVBPTkVOVF9TVUJUWVBFID0gJ0NvbXBvbmVudCBTdWJ0eXBlJyxcbiAgT1BFUkFUSU9OX0NBVVNFID0gJ09wZXJhdGlvbiBDYXVzZScsXG4gIE9QRVJBVElPTl9DRVJUQUlOVFkgPSAnT3BlcmF0aW9uIENlcnRhaW50eScsXG4gIE9QRVJBVElPTl9UWVBFID0gJ09wZXJhdGlvbiBUeXBlJyxcbiAgRU5USVRZX09QRVJBVElPTl9UWVBFID0gJ0VudGl0eSBPcGVyYXRpb24gVHlwZScsXG4gIFBST1BFUlRZX1BBVEhfQkVGT1JFID0gJ1ByZXZpb3VzIFByb3BlcnR5IFBhdGgnLFxuICBQUk9QRVJUWV9QQVRIX0FGVEVSID0gJ1Byb3BlcnR5IFBhdGgnLFxuICBQUk9QRVJUWV9WQUxVRV9CRUZPUkUgPSAnUHJldmlvdXMgUHJvcGVydHkgVmFsdWUnLFxuICBQUk9QRVJUWV9WQUxVRV9BRlRFUiA9ICdQcm9wZXJ0eSBWYWx1ZScsXG59Il19

@@ -1,7 +0,7 @@

import { JSONSerializable, Serialized } from "../export/json-serializable";
import { SerializedChangeAnalysisReport } from "../export/serialized-interfaces/serialized-change-analysis-report";
import { Aggregation } from "../aggregations";
import { ComponentOperation, InfraModelDiff, Transition } from "../model-diffing";
import { Component } from "../infra-model";
import { RuleEffect } from "../rules";
import { Aggregation } from '../aggregations';
import { JSONSerializable, Serialized } from '../export/json-serializable';
import { SerializedChangeAnalysisReport } from '../export/serialized-interfaces/serialized-change-analysis-report';
import { Component } from '../infra-model';
import { ComponentOperation, InfraModelDiff, Transition } from '../model-diffing';
import { RuleEffect } from '../rules';
export declare class ChangeAnalysisReport implements JSONSerializable {

@@ -8,0 +8,0 @@ readonly infraModelDiff: InfraModelDiff;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChangeAnalysisReport = void 0;
const aggregations_1 = require("../aggregations");
const serialization_classes_1 = require("../export/serialization-classes");
const aggregations_1 = require("../aggregations");
const utils_1 = require("../utils");

@@ -21,3 +21,3 @@ class ChangeAnalysisReport {

})),
rulesOutput: utils_1.fromEntries([...this.rulesOutput].map(([op, effect]) => [serialize(op), effect]))
rulesOutput: utils_1.fromEntries([...this.rulesOutput].map(([op, effect]) => [serialize(op), effect])),
};

@@ -33,2 +33,2 @@ }

exports.ChangeAnalysisReport = ChangeAnalysisReport;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLWFuYWx5c2lzLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2NoYW5nZS1hbmFseXNpcy1yZXBvcnQvY2hhbmdlLWFuYWx5c2lzLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyRUFBdUU7QUFFdkUsa0RBQXFFO0FBSXJFLG9DQUF1QztBQUV2QyxNQUFhLG9CQUFvQjtJQUU3QixZQUNvQixjQUE4QixFQUM5QixZQUErQyxFQUMvQyx3QkFBdUYsRUFDdkYsV0FBZ0Q7UUFIaEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFtQztRQUMvQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQStEO1FBQ3ZGLGdCQUFXLEdBQVgsV0FBVyxDQUFxQztJQUNsRSxDQUFDO0lBRUgsWUFBWSxDQUNSLFNBQTRDLEVBQzVDLGVBQXlGO1FBRXpGLE9BQU87WUFDSCxjQUFjLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDOUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQzlGLHdCQUF3QixFQUFFLG1CQUFXLENBQ2pDLENBQUMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO2dCQUNoRSxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlHLENBQUMsQ0FBQyxDQUNMO1lBQ0QsV0FBVyxFQUFFLG1CQUFXLENBQ3BCLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQ3ZFO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxZQUFZLENBQUMsR0FBb0MsRUFDckQsU0FBNEMsRUFDNUMsZUFBeUY7UUFDekYsT0FBTyxlQUFlLENBQ2xCLEdBQUcsRUFDSCw0Q0FBb0IsQ0FBQyxXQUFXLEVBQ2hDLG9DQUFxQixDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQ3pELENBQUM7SUFDTixDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLE9BQU8sNENBQW9CLENBQUMsc0JBQXNCLENBQUM7SUFDdkQsQ0FBQztDQUNKO0FBeENELG9EQXdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tIFwiLi4vZXhwb3J0L2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uQ2xhc3NlcyB9IGZyb20gXCIuLi9leHBvcnQvc2VyaWFsaXphdGlvbi1jbGFzc2VzXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVkQ2hhbmdlQW5hbHlzaXNSZXBvcnQgfSBmcm9tIFwiLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9zZXJpYWxpemVkLWNoYW5nZS1hbmFseXNpcy1yZXBvcnRcIjtcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uLCBhZ2dyZWdhdGlvblNlcmlhbGl6ZXIgfSBmcm9tIFwiLi4vYWdncmVnYXRpb25zXCI7XG5pbXBvcnQgeyBDb21wb25lbnRPcGVyYXRpb24sIEluZnJhTW9kZWxEaWZmLCBUcmFuc2l0aW9uLCBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiB9IGZyb20gXCIuLi9tb2RlbC1kaWZmaW5nXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi4vaW5mcmEtbW9kZWxcIjtcbmltcG9ydCB7IFJ1bGVFZmZlY3QgfSBmcm9tIFwiLi4vcnVsZXNcIjtcbmltcG9ydCB7IGZyb21FbnRyaWVzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBDaGFuZ2VBbmFseXNpc1JlcG9ydCBpbXBsZW1lbnRzIEpTT05TZXJpYWxpemFibGUge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpbmZyYU1vZGVsRGlmZjogSW5mcmFNb2RlbERpZmYsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBhZ2dyZWdhdGlvbnM6IEFnZ3JlZ2F0aW9uPENvbXBvbmVudE9wZXJhdGlvbj5bXSxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGFnZ3JlZ2F0aW9uc1BlckNvbXBvbmVudDogTWFwPFRyYW5zaXRpb248Q29tcG9uZW50PiwgQWdncmVnYXRpb248Q29tcG9uZW50T3BlcmF0aW9uPltdPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHJ1bGVzT3V0cHV0OiBNYXA8Q29tcG9uZW50T3BlcmF0aW9uLCBSdWxlRWZmZWN0PiwgXG4gICAgKXt9XG5cbiAgICB0b1NlcmlhbGl6ZWQoXG4gICAgICAgIHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gbnVtYmVyLFxuICAgICAgICBzZXJpYWxpemVDdXN0b206IChvYmo6IGFueSwgc2VyaWFsaXphdGlvbkNsYXNzOiBzdHJpbmcsIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWQpID0+IG51bWJlclxuICAgICk6IFNlcmlhbGl6ZWRDaGFuZ2VBbmFseXNpc1JlcG9ydCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbmZyYU1vZGVsRGlmZjogc2VyaWFsaXplKHRoaXMuaW5mcmFNb2RlbERpZmYpLFxuICAgICAgICAgICAgYWdncmVnYXRpb25zOiB0aGlzLmFnZ3JlZ2F0aW9ucy5tYXAoYWdnID0+IHRoaXMuc2VyaWFsaXplQWdnKGFnZywgc2VyaWFsaXplLCBzZXJpYWxpemVDdXN0b20pKSxcbiAgICAgICAgICAgIGFnZ3JlZ2F0aW9uc1BlckNvbXBvbmVudDogZnJvbUVudHJpZXMoXG4gICAgICAgICAgICAgICAgWy4uLnRoaXMuYWdncmVnYXRpb25zUGVyQ29tcG9uZW50XS5tYXAoKFtjb21wVHJhbnNpdGlvbiwgYWdnQXJyXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3NlcmlhbGl6ZShjb21wVHJhbnNpdGlvbiksIGFnZ0Fyci5tYXAoYWdnID0+IHRoaXMuc2VyaWFsaXplQWdnKGFnZywgc2VyaWFsaXplLCBzZXJpYWxpemVDdXN0b20pKV07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBydWxlc091dHB1dDogZnJvbUVudHJpZXMoXG4gICAgICAgICAgICAgICAgWy4uLnRoaXMucnVsZXNPdXRwdXRdLm1hcCgoW29wLCBlZmZlY3RdKSA9PiBbc2VyaWFsaXplKG9wKSwgZWZmZWN0XSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlcmlhbGl6ZUFnZyhhZ2c6IEFnZ3JlZ2F0aW9uPENvbXBvbmVudE9wZXJhdGlvbj4sXG4gICAgICAgIHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gbnVtYmVyLFxuICAgICAgICBzZXJpYWxpemVDdXN0b206IChvYmo6IGFueSwgc2VyaWFsaXphdGlvbkNsYXNzOiBzdHJpbmcsIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWQpID0+IG51bWJlcil7XG4gICAgICAgIHJldHVybiBzZXJpYWxpemVDdXN0b20oXG4gICAgICAgICAgICBhZ2csXG4gICAgICAgICAgICBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5BR0dSRUdBVElPTixcbiAgICAgICAgICAgIGFnZ3JlZ2F0aW9uU2VyaWFsaXplcihhZ2csIHNlcmlhbGl6ZSwgc2VyaWFsaXplQ3VzdG9tKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuQ0hBTkdFX0FOQUxZU0lTX1JFUE9SVDtcbiAgICB9XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLWFuYWx5c2lzLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2NoYW5nZS1hbmFseXNpcy1yZXBvcnQvY2hhbmdlLWFuYWx5c2lzLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBcUU7QUFFckUsMkVBQXVFO0FBS3ZFLG9DQUF1QztBQUV2QyxNQUFhLG9CQUFvQjtJQUUvQixZQUNrQixjQUE4QixFQUM5QixZQUErQyxFQUMvQyx3QkFBdUYsRUFDdkYsV0FBZ0Q7UUFIaEQsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFtQztRQUMvQyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQStEO1FBQ3ZGLGdCQUFXLEdBQVgsV0FBVyxDQUFxQztJQUNoRSxDQUFDO0lBRUgsWUFBWSxDQUNWLFNBQTRDLEVBQzVDLGVBQXlGO1FBRXpGLE9BQU87WUFDTCxjQUFjLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDOUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQzlGLHdCQUF3QixFQUFFLG1CQUFXLENBQ25DLENBQUMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFO2dCQUNsRSxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVHLENBQUMsQ0FBQyxDQUNIO1lBQ0QsV0FBVyxFQUFFLG1CQUFXLENBQ3RCLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQ3JFO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsR0FBb0MsRUFDdkQsU0FBNEMsRUFDNUMsZUFBeUY7UUFDekYsT0FBTyxlQUFlLENBQ3BCLEdBQUcsRUFDSCw0Q0FBb0IsQ0FBQyxXQUFXLEVBQ2hDLG9DQUFxQixDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sNENBQW9CLENBQUMsc0JBQXNCLENBQUM7SUFDckQsQ0FBQztDQUNGO0FBeENELG9EQXdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZ3JlZ2F0aW9uLCBhZ2dyZWdhdGlvblNlcmlhbGl6ZXIgfSBmcm9tICcuLi9hZ2dyZWdhdGlvbnMnO1xuaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gJy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uQ2xhc3NlcyB9IGZyb20gJy4uL2V4cG9ydC9zZXJpYWxpemF0aW9uLWNsYXNzZXMnO1xuaW1wb3J0IHsgU2VyaWFsaXplZENoYW5nZUFuYWx5c2lzUmVwb3J0IH0gZnJvbSAnLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9zZXJpYWxpemVkLWNoYW5nZS1hbmFseXNpcy1yZXBvcnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5mcmEtbW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50T3BlcmF0aW9uLCBJbmZyYU1vZGVsRGlmZiwgVHJhbnNpdGlvbiB9IGZyb20gJy4uL21vZGVsLWRpZmZpbmcnO1xuaW1wb3J0IHsgUnVsZUVmZmVjdCB9IGZyb20gJy4uL3J1bGVzJztcbmltcG9ydCB7IGZyb21FbnRyaWVzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ2hhbmdlQW5hbHlzaXNSZXBvcnQgaW1wbGVtZW50cyBKU09OU2VyaWFsaXphYmxlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5mcmFNb2RlbERpZmY6IEluZnJhTW9kZWxEaWZmLFxuICAgIHB1YmxpYyByZWFkb25seSBhZ2dyZWdhdGlvbnM6IEFnZ3JlZ2F0aW9uPENvbXBvbmVudE9wZXJhdGlvbj5bXSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWdncmVnYXRpb25zUGVyQ29tcG9uZW50OiBNYXA8VHJhbnNpdGlvbjxDb21wb25lbnQ+LCBBZ2dyZWdhdGlvbjxDb21wb25lbnRPcGVyYXRpb24+W10+LFxuICAgIHB1YmxpYyByZWFkb25seSBydWxlc091dHB1dDogTWFwPENvbXBvbmVudE9wZXJhdGlvbiwgUnVsZUVmZmVjdD4sXG4gICl7fVxuXG4gIHRvU2VyaWFsaXplZChcbiAgICBzZXJpYWxpemU6IChvYmo6IEpTT05TZXJpYWxpemFibGUpID0+IG51bWJlcixcbiAgICBzZXJpYWxpemVDdXN0b206IChvYmo6IGFueSwgc2VyaWFsaXphdGlvbkNsYXNzOiBzdHJpbmcsIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWQpID0+IG51bWJlcixcbiAgKTogU2VyaWFsaXplZENoYW5nZUFuYWx5c2lzUmVwb3J0IHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5mcmFNb2RlbERpZmY6IHNlcmlhbGl6ZSh0aGlzLmluZnJhTW9kZWxEaWZmKSxcbiAgICAgIGFnZ3JlZ2F0aW9uczogdGhpcy5hZ2dyZWdhdGlvbnMubWFwKGFnZyA9PiB0aGlzLnNlcmlhbGl6ZUFnZyhhZ2csIHNlcmlhbGl6ZSwgc2VyaWFsaXplQ3VzdG9tKSksXG4gICAgICBhZ2dyZWdhdGlvbnNQZXJDb21wb25lbnQ6IGZyb21FbnRyaWVzKFxuICAgICAgICBbLi4udGhpcy5hZ2dyZWdhdGlvbnNQZXJDb21wb25lbnRdLm1hcCgoW2NvbXBUcmFuc2l0aW9uLCBhZ2dBcnJdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIFtzZXJpYWxpemUoY29tcFRyYW5zaXRpb24pLCBhZ2dBcnIubWFwKGFnZyA9PiB0aGlzLnNlcmlhbGl6ZUFnZyhhZ2csIHNlcmlhbGl6ZSwgc2VyaWFsaXplQ3VzdG9tKSldO1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgICBydWxlc091dHB1dDogZnJvbUVudHJpZXMoXG4gICAgICAgIFsuLi50aGlzLnJ1bGVzT3V0cHV0XS5tYXAoKFtvcCwgZWZmZWN0XSkgPT4gW3NlcmlhbGl6ZShvcCksIGVmZmVjdF0pLFxuICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXJpYWxpemVBZ2coYWdnOiBBZ2dyZWdhdGlvbjxDb21wb25lbnRPcGVyYXRpb24+LFxuICAgIHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gbnVtYmVyLFxuICAgIHNlcmlhbGl6ZUN1c3RvbTogKG9iajogYW55LCBzZXJpYWxpemF0aW9uQ2xhc3M6IHN0cmluZywgc2VyaWFsaXplZDogU2VyaWFsaXplZCkgPT4gbnVtYmVyKXtcbiAgICByZXR1cm4gc2VyaWFsaXplQ3VzdG9tKFxuICAgICAgYWdnLFxuICAgICAgU2VyaWFsaXphdGlvbkNsYXNzZXMuQUdHUkVHQVRJT04sXG4gICAgICBhZ2dyZWdhdGlvblNlcmlhbGl6ZXIoYWdnLCBzZXJpYWxpemUsIHNlcmlhbGl6ZUN1c3RvbSksXG4gICAgKTtcbiAgfVxuXG4gIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5DSEFOR0VfQU5BTFlTSVNfUkVQT1JUO1xuICB9XG59Il19

@@ -0,3 +1,3 @@

import { JSONSerializable, Serialized } from './json-serializable';
import { SerializationID } from './json-serializer';
import { JSONSerializable, Serialized } from './json-serializable';
declare type classDeserializer = (obj: Serialized, deserialize: (id: SerializationID) => JSONSerializable) => any;

@@ -4,0 +4,0 @@ /**

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.classToDeserializer = void 0;
const serialization_classes_1 = require("./serialization-classes");
const aggregation_deserializer_1 = require("./deserializers/aggregations/aggregation-deserializer");
const change_analysis_report_deserializer_1 = require("./deserializers/change-analysis-report-deserializer");
const component_operation_deserializers_1 = require("./deserializers/infra-model-diff/component-operations/component-operation-deserializers");
const property_component_operation_deserializer_1 = require("./deserializers/infra-model-diff/component-operations/property-component-operation-deserializer");
const infra_model_diff_deserializer_1 = require("./deserializers/infra-model-diff/infra-model-diff-deserializer");
const component_deserializer_1 = require("./deserializers/infra-model/component-deserializer");
const component_property_deserializer_1 = require("./deserializers/infra-model/component-property-deserializer");
const dependency_relationship_deserializer_1 = require("./deserializers/infra-model/dependency-relationship-deserializer");
const infra_model_deserializer_1 = require("./deserializers/infra-model/infra-model-deserializer");
const structural_relationship_deserializer_1 = require("./deserializers/infra-model/structural-relationship-deserializer");
const infra_model_deserializer_1 = require("./deserializers/infra-model/infra-model-deserializer");
const component_property_deserializer_1 = require("./deserializers/infra-model/component-property-deserializer");
const infra_model_diff_deserializer_1 = require("./deserializers/infra-model-diff/infra-model-diff-deserializer");
const aggregation_deserializer_1 = require("./deserializers/aggregations/aggregation-deserializer");
const transition_deserializer_1 = require("./deserializers/transition-deserializer");
const change_analysis_report_deserializer_1 = require("./deserializers/change-analysis-report-deserializer");
const serialization_classes_1 = require("./serialization-classes");
/**

@@ -29,3 +29,3 @@ * classToDeserializer maps the SerializationClasses to their deserializer

[serialization_classes_1.SerializationClasses.COMPONENT_PROPERTY_PRIMITIVE]: component_property_deserializer_1.componentPropertyPrimitiveDeserializer,
// Infra Model Diff
// Infra Model Diff
[serialization_classes_1.SerializationClasses.INFRA_MODEL_DIFF]: infra_model_diff_deserializer_1.infraModelDiffDeserializer,

@@ -44,2 +44,2 @@ [serialization_classes_1.SerializationClasses.TRANSITION]: transition_deserializer_1.transitionDeserializer,

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemVyLW1hcHBpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leHBvcnQvZGVzZXJpYWxpemVyLW1hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQStEO0FBQy9ELCtJQUFrUTtBQUNsUSwrSkFBdVM7QUFDdlMsK0ZBQTJGO0FBQzNGLDJIQUFzSDtBQUN0SCwySEFBc0g7QUFDdEgsbUdBQThGO0FBQzlGLGlIQUFrTztBQUNsTyxrSEFBNEc7QUFHNUcsb0dBQWdHO0FBQ2hHLHFGQUFpRjtBQUNqRiw2R0FBdUc7QUFJdkc7O0dBRUc7QUFDVSxRQUFBLG1CQUFtQixHQUFzQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hGLGNBQWM7SUFDZCxDQUFDLDRDQUFvQixDQUFDLFNBQVMsQ0FBQyxFQUFFLDhDQUFxQjtJQUN2RCxDQUFDLDRDQUFvQixDQUFDLHVCQUF1QixDQUFDLEVBQUUseUVBQWtDO0lBQ2xGLENBQUMsNENBQW9CLENBQUMsdUJBQXVCLENBQUMsRUFBRSx5RUFBa0M7SUFDbEYsQ0FBQyw0Q0FBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxpREFBc0I7SUFDMUQsQ0FBQyw0Q0FBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLHFFQUFtQztJQUNyRixDQUFDLDRDQUFvQixDQUFDLHdCQUF3QixDQUFDLEVBQUUsb0VBQWtDO0lBQ25GLENBQUMsNENBQW9CLENBQUMsd0JBQXdCLENBQUMsRUFBRSxvRUFBa0M7SUFDbkYsQ0FBQyw0Q0FBb0IsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLHdFQUFzQztJQUUzRixvQkFBb0I7SUFDcEIsQ0FBQyw0Q0FBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLDBEQUEwQjtJQUNuRSxDQUFDLDRDQUFvQixDQUFDLFVBQVUsQ0FBQyxFQUFFLGdEQUFzQjtJQUN6RCxDQUFDLDRDQUFvQixDQUFDLDBCQUEwQixDQUFDLEVBQUUsd0VBQW9DO0lBQ3ZGLENBQUMsNENBQW9CLENBQUMsMEJBQTBCLENBQUMsRUFBRSx3RUFBb0M7SUFDdkYsQ0FBQyw0Q0FBb0IsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLHlFQUFxQztJQUN6RixDQUFDLDRDQUFvQixDQUFDLDBCQUEwQixDQUFDLEVBQUUsd0VBQW9DO0lBQ3ZGLENBQUMsNENBQW9CLENBQUMsbUNBQW1DLENBQUMsRUFBRSx3RkFBNEM7SUFDeEcsQ0FBQyw0Q0FBb0IsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFFLHdGQUE0QztJQUN4RyxDQUFDLDRDQUFvQixDQUFDLG1DQUFtQyxDQUFDLEVBQUUsd0ZBQTRDO0lBQ3hHLENBQUMsNENBQW9CLENBQUMsaUNBQWlDLENBQUMsRUFBRSxzRkFBMEM7SUFFcEcsQ0FBQyw0Q0FBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxrREFBdUI7SUFFM0QsQ0FBQyw0Q0FBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLHNFQUFnQztDQUNsRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJpYWxpemF0aW9uQ2xhc3NlcyB9IGZyb20gJy4vc2VyaWFsaXphdGlvbi1jbGFzc2VzJztcbmltcG9ydCB7IGluc2VydENvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplciwgcmVtb3ZlQ29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyLCByZW5hbWVDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsIHJlcGxhY2VDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwtZGlmZi9jb21wb25lbnQtb3BlcmF0aW9ucy9jb21wb25lbnQtb3BlcmF0aW9uLWRlc2VyaWFsaXplcnMnO1xuaW1wb3J0IHsgaW5zZXJ0UHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsIG1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplciwgcmVtb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsIHVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyIH0gZnJvbSAnLi9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsLWRpZmYvY29tcG9uZW50LW9wZXJhdGlvbnMvcHJvcGVydHktY29tcG9uZW50LW9wZXJhdGlvbi1kZXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgY29tcG9uZW50RGVzZXJpYWxpemVyIH0gZnJvbSAnLi9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsL2NvbXBvbmVudC1kZXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgZGVwZW5kZW5jeVJlbGF0aW9uc2hpcERlc2VyaWFsaXplciB9IGZyb20gJy4vZGVzZXJpYWxpemVycy9pbmZyYS1tb2RlbC9kZXBlbmRlbmN5LXJlbGF0aW9uc2hpcC1kZXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgc3RydWN0dXJhbFJlbGF0aW9uc2hpcERlc2VyaWFsaXplciB9IGZyb20gJy4vZGVzZXJpYWxpemVycy9pbmZyYS1tb2RlbC9zdHJ1Y3R1cmFsLXJlbGF0aW9uc2hpcC1kZXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgaW5mcmFNb2RlbERlc2VyaWFsaXplciB9IGZyb20gJy4vZGVzZXJpYWxpemVycy9pbmZyYS1tb2RlbC9pbmZyYS1tb2RlbC1kZXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgY29tcG9uZW50UHJvcGVydHlBcnJheURlc2VyaWFsaXplciwgY29tcG9uZW50UHJvcGVydHlFbXB0eURlc2VyaWFsaXplciwgY29tcG9uZW50UHJvcGVydHlQcmltaXRpdmVEZXNlcmlhbGl6ZXIsIGNvbXBvbmVudFByb3BlcnR5UmVjb3JkRGVzZXJpYWxpemVyIH0gZnJvbSAnLi9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsL2NvbXBvbmVudC1wcm9wZXJ0eS1kZXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgaW5mcmFNb2RlbERpZmZEZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwtZGlmZi9pbmZyYS1tb2RlbC1kaWZmLWRlc2VyaWFsaXplcic7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuL2pzb24tc2VyaWFsaXplcic7XG5pbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemVkIH0gZnJvbSAnLi9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbkRlc2VyaWFsaXplciB9IGZyb20gJy4vZGVzZXJpYWxpemVycy9hZ2dyZWdhdGlvbnMvYWdncmVnYXRpb24tZGVzZXJpYWxpemVyJztcbmltcG9ydCB7IHRyYW5zaXRpb25EZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplcnMvdHJhbnNpdGlvbi1kZXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgY2hhbmdlQW5hbHlzaXNSZXBvcnREZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplcnMvY2hhbmdlLWFuYWx5c2lzLXJlcG9ydC1kZXNlcmlhbGl6ZXInO1xuXG50eXBlIGNsYXNzRGVzZXJpYWxpemVyID0gKG9iajogU2VyaWFsaXplZCwgZGVzZXJpYWxpemU6IChpZDogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKSA9PiBhbnk7XG5cbi8qKlxuICogIGNsYXNzVG9EZXNlcmlhbGl6ZXIgbWFwcyB0aGUgU2VyaWFsaXphdGlvbkNsYXNzZXMgdG8gdGhlaXIgZGVzZXJpYWxpemVyXG4gKi9cbmV4cG9ydCBjb25zdCBjbGFzc1RvRGVzZXJpYWxpemVyOiBSZWNvcmQ8c3RyaW5nLCBjbGFzc0Rlc2VyaWFsaXplcj4gPSBPYmplY3QuZnJlZXplKHtcbiAgICAvLyBJbmZyYSBNb2RlbFxuICAgIFtTZXJpYWxpemF0aW9uQ2xhc3Nlcy5DT01QT05FTlRdOiBjb21wb25lbnREZXNlcmlhbGl6ZXIsXG4gICAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLkRFUEVOREVOQ1lfUkVMQVRJT05TSElQXTogZGVwZW5kZW5jeVJlbGF0aW9uc2hpcERlc2VyaWFsaXplcixcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuU1RSVUNUVVJBTF9SRUxBVElPTlNISVBdOiBzdHJ1Y3R1cmFsUmVsYXRpb25zaGlwRGVzZXJpYWxpemVyLFxuICAgIFtTZXJpYWxpemF0aW9uQ2xhc3Nlcy5JTkZSQV9NT0RFTF06IGluZnJhTW9kZWxEZXNlcmlhbGl6ZXIsXG4gICAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLkNPTVBPTkVOVF9QUk9QRVJUWV9SRUNPUkRdOiBjb21wb25lbnRQcm9wZXJ0eVJlY29yZERlc2VyaWFsaXplcixcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuQ09NUE9ORU5UX1BST1BFUlRZX0FSUkFZXTogY29tcG9uZW50UHJvcGVydHlBcnJheURlc2VyaWFsaXplcixcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuQ09NUE9ORU5UX1BST1BFUlRZX0VNUFRZXTogY29tcG9uZW50UHJvcGVydHlFbXB0eURlc2VyaWFsaXplcixcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuQ09NUE9ORU5UX1BST1BFUlRZX1BSSU1JVElWRV06IGNvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlRGVzZXJpYWxpemVyLFxuXG4gICAgLy8gSW5mcmEgTW9kZWwgRGlmZiBcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuSU5GUkFfTU9ERUxfRElGRl06IGluZnJhTW9kZWxEaWZmRGVzZXJpYWxpemVyLFxuICAgIFtTZXJpYWxpemF0aW9uQ2xhc3Nlcy5UUkFOU0lUSU9OXTogdHJhbnNpdGlvbkRlc2VyaWFsaXplcixcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuSU5TRVJUX0NPTVBPTkVOVF9PUEVSQVRJT05dOiBpbnNlcnRDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsXG4gICAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLlJFTU9WRV9DT01QT05FTlRfT1BFUkFUSU9OXTogcmVtb3ZlQ29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyLFxuICAgIFtTZXJpYWxpemF0aW9uQ2xhc3Nlcy5SRVBMQUNFX0NPTVBPTkVOVF9PUEVSQVRJT05dOiByZXBsYWNlQ29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyLFxuICAgIFtTZXJpYWxpemF0aW9uQ2xhc3Nlcy5SRU5BTUVfQ09NUE9ORU5UX09QRVJBVElPTl06IHJlbmFtZUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcixcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuSU5TRVJUX1BST1BFUlRZX0NPTVBPTkVOVF9PUEVSQVRJT05dOiBpbnNlcnRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcixcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuUkVNT1ZFX1BST1BFUlRZX0NPTVBPTkVOVF9PUEVSQVRJT05dOiByZW1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcixcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuVVBEQVRFX1BST1BFUlRZX0NPTVBPTkVOVF9PUEVSQVRJT05dOiB1cGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcixcbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuTU9WRV9QUk9QRVJUWV9DT01QT05FTlRfT1BFUkFUSU9OXTogbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyLFxuXG4gICAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLkFHR1JFR0FUSU9OXTogYWdncmVnYXRpb25EZXNlcmlhbGl6ZXIsXG5cbiAgICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuQ0hBTkdFX0FOQUxZU0lTX1JFUE9SVF06IGNoYW5nZUFuYWx5c2lzUmVwb3J0RGVzZXJpYWxpemVyLFxufSk7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzZXJpYWxpemVyLW1hcHBpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leHBvcnQvZGVzZXJpYWxpemVyLW1hcHBpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0dBQWdHO0FBQ2hHLDZHQUF1RztBQUN2RywrSUFBa1E7QUFDbFEsK0pBQXVTO0FBQ3ZTLGtIQUE0RztBQUM1RywrRkFBMkY7QUFDM0YsaUhBQWtPO0FBQ2xPLDJIQUFzSDtBQUN0SCxtR0FBOEY7QUFDOUYsMkhBQXNIO0FBQ3RILHFGQUFpRjtBQUdqRixtRUFBK0Q7QUFJL0Q7O0dBRUc7QUFDVSxRQUFBLG1CQUFtQixHQUFzQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2xGLGNBQWM7SUFDZCxDQUFDLDRDQUFvQixDQUFDLFNBQVMsQ0FBQyxFQUFFLDhDQUFxQjtJQUN2RCxDQUFDLDRDQUFvQixDQUFDLHVCQUF1QixDQUFDLEVBQUUseUVBQWtDO0lBQ2xGLENBQUMsNENBQW9CLENBQUMsdUJBQXVCLENBQUMsRUFBRSx5RUFBa0M7SUFDbEYsQ0FBQyw0Q0FBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxpREFBc0I7SUFDMUQsQ0FBQyw0Q0FBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLHFFQUFtQztJQUNyRixDQUFDLDRDQUFvQixDQUFDLHdCQUF3QixDQUFDLEVBQUUsb0VBQWtDO0lBQ25GLENBQUMsNENBQW9CLENBQUMsd0JBQXdCLENBQUMsRUFBRSxvRUFBa0M7SUFDbkYsQ0FBQyw0Q0FBb0IsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLHdFQUFzQztJQUUzRixtQkFBbUI7SUFDbkIsQ0FBQyw0Q0FBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLDBEQUEwQjtJQUNuRSxDQUFDLDRDQUFvQixDQUFDLFVBQVUsQ0FBQyxFQUFFLGdEQUFzQjtJQUN6RCxDQUFDLDRDQUFvQixDQUFDLDBCQUEwQixDQUFDLEVBQUUsd0VBQW9DO0lBQ3ZGLENBQUMsNENBQW9CLENBQUMsMEJBQTBCLENBQUMsRUFBRSx3RUFBb0M7SUFDdkYsQ0FBQyw0Q0FBb0IsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLHlFQUFxQztJQUN6RixDQUFDLDRDQUFvQixDQUFDLDBCQUEwQixDQUFDLEVBQUUsd0VBQW9DO0lBQ3ZGLENBQUMsNENBQW9CLENBQUMsbUNBQW1DLENBQUMsRUFBRSx3RkFBNEM7SUFDeEcsQ0FBQyw0Q0FBb0IsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFFLHdGQUE0QztJQUN4RyxDQUFDLDRDQUFvQixDQUFDLG1DQUFtQyxDQUFDLEVBQUUsd0ZBQTRDO0lBQ3hHLENBQUMsNENBQW9CLENBQUMsaUNBQWlDLENBQUMsRUFBRSxzRkFBMEM7SUFFcEcsQ0FBQyw0Q0FBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxrREFBdUI7SUFFM0QsQ0FBQyw0Q0FBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLHNFQUFnQztDQUNoRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZ2dyZWdhdGlvbkRlc2VyaWFsaXplciB9IGZyb20gJy4vZGVzZXJpYWxpemVycy9hZ2dyZWdhdGlvbnMvYWdncmVnYXRpb24tZGVzZXJpYWxpemVyJztcbmltcG9ydCB7IGNoYW5nZUFuYWx5c2lzUmVwb3J0RGVzZXJpYWxpemVyIH0gZnJvbSAnLi9kZXNlcmlhbGl6ZXJzL2NoYW5nZS1hbmFseXNpcy1yZXBvcnQtZGVzZXJpYWxpemVyJztcbmltcG9ydCB7IGluc2VydENvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplciwgcmVtb3ZlQ29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyLCByZW5hbWVDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsIHJlcGxhY2VDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwtZGlmZi9jb21wb25lbnQtb3BlcmF0aW9ucy9jb21wb25lbnQtb3BlcmF0aW9uLWRlc2VyaWFsaXplcnMnO1xuaW1wb3J0IHsgaW5zZXJ0UHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsIG1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplciwgcmVtb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsIHVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyIH0gZnJvbSAnLi9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsLWRpZmYvY29tcG9uZW50LW9wZXJhdGlvbnMvcHJvcGVydHktY29tcG9uZW50LW9wZXJhdGlvbi1kZXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgaW5mcmFNb2RlbERpZmZEZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwtZGlmZi9pbmZyYS1tb2RlbC1kaWZmLWRlc2VyaWFsaXplcic7XG5pbXBvcnQgeyBjb21wb25lbnREZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwvY29tcG9uZW50LWRlc2VyaWFsaXplcic7XG5pbXBvcnQgeyBjb21wb25lbnRQcm9wZXJ0eUFycmF5RGVzZXJpYWxpemVyLCBjb21wb25lbnRQcm9wZXJ0eUVtcHR5RGVzZXJpYWxpemVyLCBjb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZURlc2VyaWFsaXplciwgY29tcG9uZW50UHJvcGVydHlSZWNvcmREZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwvY29tcG9uZW50LXByb3BlcnR5LWRlc2VyaWFsaXplcic7XG5pbXBvcnQgeyBkZXBlbmRlbmN5UmVsYXRpb25zaGlwRGVzZXJpYWxpemVyIH0gZnJvbSAnLi9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsL2RlcGVuZGVuY3ktcmVsYXRpb25zaGlwLWRlc2VyaWFsaXplcic7XG5pbXBvcnQgeyBpbmZyYU1vZGVsRGVzZXJpYWxpemVyIH0gZnJvbSAnLi9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsL2luZnJhLW1vZGVsLWRlc2VyaWFsaXplcic7XG5pbXBvcnQgeyBzdHJ1Y3R1cmFsUmVsYXRpb25zaGlwRGVzZXJpYWxpemVyIH0gZnJvbSAnLi9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsL3N0cnVjdHVyYWwtcmVsYXRpb25zaGlwLWRlc2VyaWFsaXplcic7XG5pbXBvcnQgeyB0cmFuc2l0aW9uRGVzZXJpYWxpemVyIH0gZnJvbSAnLi9kZXNlcmlhbGl6ZXJzL3RyYW5zaXRpb24tZGVzZXJpYWxpemVyJztcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4vanNvbi1zZXJpYWxpemVyJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25DbGFzc2VzIH0gZnJvbSAnLi9zZXJpYWxpemF0aW9uLWNsYXNzZXMnO1xuXG50eXBlIGNsYXNzRGVzZXJpYWxpemVyID0gKG9iajogU2VyaWFsaXplZCwgZGVzZXJpYWxpemU6IChpZDogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKSA9PiBhbnk7XG5cbi8qKlxuICogIGNsYXNzVG9EZXNlcmlhbGl6ZXIgbWFwcyB0aGUgU2VyaWFsaXphdGlvbkNsYXNzZXMgdG8gdGhlaXIgZGVzZXJpYWxpemVyXG4gKi9cbmV4cG9ydCBjb25zdCBjbGFzc1RvRGVzZXJpYWxpemVyOiBSZWNvcmQ8c3RyaW5nLCBjbGFzc0Rlc2VyaWFsaXplcj4gPSBPYmplY3QuZnJlZXplKHtcbiAgLy8gSW5mcmEgTW9kZWxcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLkNPTVBPTkVOVF06IGNvbXBvbmVudERlc2VyaWFsaXplcixcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLkRFUEVOREVOQ1lfUkVMQVRJT05TSElQXTogZGVwZW5kZW5jeVJlbGF0aW9uc2hpcERlc2VyaWFsaXplcixcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLlNUUlVDVFVSQUxfUkVMQVRJT05TSElQXTogc3RydWN0dXJhbFJlbGF0aW9uc2hpcERlc2VyaWFsaXplcixcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLklORlJBX01PREVMXTogaW5mcmFNb2RlbERlc2VyaWFsaXplcixcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLkNPTVBPTkVOVF9QUk9QRVJUWV9SRUNPUkRdOiBjb21wb25lbnRQcm9wZXJ0eVJlY29yZERlc2VyaWFsaXplcixcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLkNPTVBPTkVOVF9QUk9QRVJUWV9BUlJBWV06IGNvbXBvbmVudFByb3BlcnR5QXJyYXlEZXNlcmlhbGl6ZXIsXG4gIFtTZXJpYWxpemF0aW9uQ2xhc3Nlcy5DT01QT05FTlRfUFJPUEVSVFlfRU1QVFldOiBjb21wb25lbnRQcm9wZXJ0eUVtcHR5RGVzZXJpYWxpemVyLFxuICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuQ09NUE9ORU5UX1BST1BFUlRZX1BSSU1JVElWRV06IGNvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlRGVzZXJpYWxpemVyLFxuXG4gIC8vIEluZnJhIE1vZGVsIERpZmZcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLklORlJBX01PREVMX0RJRkZdOiBpbmZyYU1vZGVsRGlmZkRlc2VyaWFsaXplcixcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLlRSQU5TSVRJT05dOiB0cmFuc2l0aW9uRGVzZXJpYWxpemVyLFxuICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuSU5TRVJUX0NPTVBPTkVOVF9PUEVSQVRJT05dOiBpbnNlcnRDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsXG4gIFtTZXJpYWxpemF0aW9uQ2xhc3Nlcy5SRU1PVkVfQ09NUE9ORU5UX09QRVJBVElPTl06IHJlbW92ZUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcixcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLlJFUExBQ0VfQ09NUE9ORU5UX09QRVJBVElPTl06IHJlcGxhY2VDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsXG4gIFtTZXJpYWxpemF0aW9uQ2xhc3Nlcy5SRU5BTUVfQ09NUE9ORU5UX09QRVJBVElPTl06IHJlbmFtZUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcixcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLklOU0VSVF9QUk9QRVJUWV9DT01QT05FTlRfT1BFUkFUSU9OXTogaW5zZXJ0UHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIsXG4gIFtTZXJpYWxpemF0aW9uQ2xhc3Nlcy5SRU1PVkVfUFJPUEVSVFlfQ09NUE9ORU5UX09QRVJBVElPTl06IHJlbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyLFxuICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuVVBEQVRFX1BST1BFUlRZX0NPTVBPTkVOVF9PUEVSQVRJT05dOiB1cGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcixcbiAgW1NlcmlhbGl6YXRpb25DbGFzc2VzLk1PVkVfUFJPUEVSVFlfQ09NUE9ORU5UX09QRVJBVElPTl06IG1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcixcblxuICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuQUdHUkVHQVRJT05dOiBhZ2dyZWdhdGlvbkRlc2VyaWFsaXplcixcblxuICBbU2VyaWFsaXphdGlvbkNsYXNzZXMuQ0hBTkdFX0FOQUxZU0lTX1JFUE9SVF06IGNoYW5nZUFuYWx5c2lzUmVwb3J0RGVzZXJpYWxpemVyLFxufSk7Il19

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

import { Aggregation } from "../../../aggregations";
import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { Aggregation } from '../../../aggregations';
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export declare function aggregationDeserializer<T extends JSONSerializable>(obj: Serialized, deserialize: (obj: SerializationID) => any): Aggregation<T>;

@@ -11,3 +11,3 @@ "use strict";

subAggs: (_a = serialized.subAggs) === null || _a === void 0 ? void 0 : _a.map(deserialize),
descriptions: serialized.descriptions
descriptions: serialized.descriptions,
};

@@ -19,2 +19,2 @@ if (agg.subAggs)

exports.aggregationDeserializer = aggregationDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tZGVzZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvYWdncmVnYXRpb25zL2FnZ3JlZ2F0aW9uLWRlc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxTQUFnQix1QkFBdUIsQ0FBNkIsR0FBZSxFQUFFLFdBQTBDOztJQUMzSCxNQUFNLFVBQVUsR0FBRyxHQUE0QixDQUFDO0lBRWhELE1BQU0sR0FBRyxHQUFHO1FBQ1IsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBUSxDQUFDO1FBQzlELGVBQWUsRUFBRSxVQUFVLENBQUMsZUFBZTtRQUMzQyxPQUFPLEVBQUUsTUFBQSxVQUFVLENBQUMsT0FBTywwQ0FBRSxHQUFHLENBQUMsV0FBVyxDQUFxQjtRQUNqRSxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVk7S0FDeEMsQ0FBQztJQUVGLElBQUcsR0FBRyxDQUFDLE9BQU87UUFDVixHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFaEQsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBZEQsMERBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZ2dyZWdhdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9hZ2dyZWdhdGlvbnNcIjtcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tIFwiLi4vLi4vanNvbi1zZXJpYWxpemFibGVcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFNlcmlhbGl6ZWRBZ2dyZWdhdGlvbiB9IGZyb20gXCIuLi8uLi9zZXJpYWxpemVkLWludGVyZmFjZXMvYWdncmVnYXRpb25zL3NlcmlhbGl6ZWQtYWdncmVnYXRpb25cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0aW9uRGVzZXJpYWxpemVyPFQgZXh0ZW5kcyBKU09OU2VyaWFsaXphYmxlPihvYmo6IFNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IGFueSk6IEFnZ3JlZ2F0aW9uPFQ+IHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gb2JqIGFzIFNlcmlhbGl6ZWRBZ2dyZWdhdGlvbjtcblxuICAgIGNvbnN0IGFnZyA9IHtcbiAgICAgICAgZW50aXRpZXM6IG5ldyBTZXQoc2VyaWFsaXplZC5lbnRpdGllcy5tYXAoZGVzZXJpYWxpemUpIGFzIFRbXSksXG4gICAgICAgIGNoYXJhY3RlcmlzdGljczogc2VyaWFsaXplZC5jaGFyYWN0ZXJpc3RpY3MsXG4gICAgICAgIHN1YkFnZ3M6IHNlcmlhbGl6ZWQuc3ViQWdncz8ubWFwKGRlc2VyaWFsaXplKSBhcyBBZ2dyZWdhdGlvbjxUPltdLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHNlcmlhbGl6ZWQuZGVzY3JpcHRpb25zXG4gICAgfTtcblxuICAgIGlmKGFnZy5zdWJBZ2dzKVxuICAgICAgICBhZ2cuc3ViQWdncy5mb3JFYWNoKGEgPT4gYS5wYXJlbnRBZ2cgPSBhZ2cpO1xuXG4gICAgcmV0dXJuIGFnZztcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tZGVzZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvYWdncmVnYXRpb25zL2FnZ3JlZ2F0aW9uLWRlc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxTQUFnQix1QkFBdUIsQ0FDckMsR0FBZSxFQUNmLFdBQTBDOztJQUUxQyxNQUFNLFVBQVUsR0FBRyxHQUE0QixDQUFDO0lBRWhELE1BQU0sR0FBRyxHQUFHO1FBQ1YsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBUSxDQUFDO1FBQzlELGVBQWUsRUFBRSxVQUFVLENBQUMsZUFBZTtRQUMzQyxPQUFPLEVBQUUsTUFBQSxVQUFVLENBQUMsT0FBTywwQ0FBRSxHQUFHLENBQUMsV0FBVyxDQUFxQjtRQUNqRSxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVk7S0FDdEMsQ0FBQztJQUVGLElBQUcsR0FBRyxDQUFDLE9BQU87UUFDWixHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFOUMsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBakJELDBEQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZ3JlZ2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vYWdncmVnYXRpb25zJztcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU2VyaWFsaXplZEFnZ3JlZ2F0aW9uIH0gZnJvbSAnLi4vLi4vc2VyaWFsaXplZC1pbnRlcmZhY2VzL2FnZ3JlZ2F0aW9ucy9zZXJpYWxpemVkLWFnZ3JlZ2F0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0aW9uRGVzZXJpYWxpemVyPFQgZXh0ZW5kcyBKU09OU2VyaWFsaXphYmxlPihcbiAgb2JqOiBTZXJpYWxpemVkLFxuICBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBhbnksXG4pOiBBZ2dyZWdhdGlvbjxUPiB7XG4gIGNvbnN0IHNlcmlhbGl6ZWQgPSBvYmogYXMgU2VyaWFsaXplZEFnZ3JlZ2F0aW9uO1xuXG4gIGNvbnN0IGFnZyA9IHtcbiAgICBlbnRpdGllczogbmV3IFNldChzZXJpYWxpemVkLmVudGl0aWVzLm1hcChkZXNlcmlhbGl6ZSkgYXMgVFtdKSxcbiAgICBjaGFyYWN0ZXJpc3RpY3M6IHNlcmlhbGl6ZWQuY2hhcmFjdGVyaXN0aWNzLFxuICAgIHN1YkFnZ3M6IHNlcmlhbGl6ZWQuc3ViQWdncz8ubWFwKGRlc2VyaWFsaXplKSBhcyBBZ2dyZWdhdGlvbjxUPltdLFxuICAgIGRlc2NyaXB0aW9uczogc2VyaWFsaXplZC5kZXNjcmlwdGlvbnMsXG4gIH07XG5cbiAgaWYoYWdnLnN1YkFnZ3MpXG4gICAgYWdnLnN1YkFnZ3MuZm9yRWFjaChhID0+IGEucGFyZW50QWdnID0gYWdnKTtcblxuICByZXR1cm4gYWdnO1xufVxuIl19

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../json-serializable";
import { SerializationID } from "../json-serializer";
import { JSONSerializable, Serialized } from '../json-serializable';
import { SerializationID } from '../json-serializer';
export declare function changeAnalysisReportDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => any): JSONSerializable;

@@ -7,5 +7,9 @@ "use strict";

const serialized = obj;
return new change_analysis_report_1.ChangeAnalysisReport(deserialize(serialized.infraModelDiff), serialized.aggregations.map(deserialize), new Map(Object.entries(serialized.aggregationsPerComponent).map(([k, v]) => [deserialize(parseInt(k)), v.map(deserialize)])), new Map(Object.entries(serialized.rulesOutput).map(([id, effect]) => [deserialize(parseInt(id)), effect])));
return new change_analysis_report_1.ChangeAnalysisReport(deserialize(serialized.infraModelDiff), serialized.aggregations.map(deserialize), new Map(Object.entries(serialized.aggregationsPerComponent)
.map(([k, v]) => [
deserialize(parseInt(k)),
v.map(deserialize),
])), new Map(Object.entries(serialized.rulesOutput).map(([id, effect]) => [deserialize(parseInt(id)), effect])));
}
exports.changeAnalysisReportDeserializer = changeAnalysisReportDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLWFuYWx5c2lzLXJlcG9ydC1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy9jaGFuZ2UtYW5hbHlzaXMtcmVwb3J0LWRlc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBb0U7QUFRcEUsU0FBZ0IsZ0NBQWdDLENBQUMsR0FBZSxFQUFFLFdBQTBDO0lBQ3hHLE1BQU0sVUFBVSxHQUFHLEdBQXFDLENBQUM7SUFFekQsT0FBTyxJQUFJLDZDQUFvQixDQUMzQixXQUFXLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBbUIsRUFDeEQsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFzQyxFQUM3RSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQTBCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQXNDLENBQUMsQ0FBQyxDQUFDLEVBQ3pMLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQzdHLENBQUM7QUFDTixDQUFDO0FBVEQsNEVBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VBbmFseXNpc1JlcG9ydCB9IGZyb20gXCIuLi8uLi9jaGFuZ2UtYW5hbHlzaXMtcmVwb3J0XCI7XG5pbXBvcnQgeyBBZ2dyZWdhdGlvbiB9IGZyb20gXCIuLi8uLi9hZ2dyZWdhdGlvbnNcIjtcbmltcG9ydCB7IENvbXBvbmVudE9wZXJhdGlvbiwgSW5mcmFNb2RlbERpZmYsIFRyYW5zaXRpb24gfSBmcm9tIFwiLi4vLi4vbW9kZWwtZGlmZmluZ1wiO1xuaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gXCIuLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uL2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgU2VyaWFsaXplZENoYW5nZUFuYWx5c2lzUmVwb3J0IH0gZnJvbSBcIi4uL3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9zZXJpYWxpemVkLWNoYW5nZS1hbmFseXNpcy1yZXBvcnRcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9pbmZyYS1tb2RlbFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlQW5hbHlzaXNSZXBvcnREZXNlcmlhbGl6ZXIob2JqOiBTZXJpYWxpemVkLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBhbnkpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gb2JqIGFzIFNlcmlhbGl6ZWRDaGFuZ2VBbmFseXNpc1JlcG9ydDtcblxuICAgIHJldHVybiBuZXcgQ2hhbmdlQW5hbHlzaXNSZXBvcnQoXG4gICAgICAgIGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQuaW5mcmFNb2RlbERpZmYpIGFzIEluZnJhTW9kZWxEaWZmLFxuICAgICAgICBzZXJpYWxpemVkLmFnZ3JlZ2F0aW9ucy5tYXAoZGVzZXJpYWxpemUpIGFzIEFnZ3JlZ2F0aW9uPENvbXBvbmVudE9wZXJhdGlvbj5bXSxcbiAgICAgICAgbmV3IE1hcChPYmplY3QuZW50cmllcyhzZXJpYWxpemVkLmFnZ3JlZ2F0aW9uc1BlckNvbXBvbmVudCkubWFwKChbayx2XSkgPT4gW2Rlc2VyaWFsaXplKHBhcnNlSW50KGspKSBhcyBUcmFuc2l0aW9uPENvbXBvbmVudD4sIHYubWFwKGRlc2VyaWFsaXplKSBhcyBBZ2dyZWdhdGlvbjxDb21wb25lbnRPcGVyYXRpb24+W11dKSksXG4gICAgICAgIG5ldyBNYXAoT2JqZWN0LmVudHJpZXMoc2VyaWFsaXplZC5ydWxlc091dHB1dCkubWFwKChbaWQsIGVmZmVjdF0pID0+IFtkZXNlcmlhbGl6ZShwYXJzZUludChpZCkpLCBlZmZlY3RdKSlcbiAgICApO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLWFuYWx5c2lzLXJlcG9ydC1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy9jaGFuZ2UtYW5hbHlzaXMtcmVwb3J0LWRlc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5RUFBb0U7QUFPcEUsU0FBZ0IsZ0NBQWdDLENBQzlDLEdBQWUsRUFDZixXQUEwQztJQUUxQyxNQUFNLFVBQVUsR0FBRyxHQUFxQyxDQUFDO0lBRXpELE9BQU8sSUFBSSw2Q0FBb0IsQ0FDN0IsV0FBVyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQW1CLEVBQ3hELFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBc0MsRUFDN0UsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUM7U0FDeEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2QsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBMEI7UUFDakQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQXNDO0tBQ3hELENBQUMsQ0FBQyxFQUNMLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQzNHLENBQUM7QUFDSixDQUFDO0FBaEJELDRFQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZ3JlZ2F0aW9uIH0gZnJvbSAnLi4vLi4vYWdncmVnYXRpb25zJztcbmltcG9ydCB7IENoYW5nZUFuYWx5c2lzUmVwb3J0IH0gZnJvbSAnLi4vLi4vY2hhbmdlLWFuYWx5c2lzLXJlcG9ydCc7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbmZyYS1tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnRPcGVyYXRpb24sIEluZnJhTW9kZWxEaWZmLCBUcmFuc2l0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWwtZGlmZmluZyc7XG5pbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemVkIH0gZnJvbSAnLi4vanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSAnLi4vanNvbi1zZXJpYWxpemVyJztcbmltcG9ydCB7IFNlcmlhbGl6ZWRDaGFuZ2VBbmFseXNpc1JlcG9ydCB9IGZyb20gJy4uL3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9zZXJpYWxpemVkLWNoYW5nZS1hbmFseXNpcy1yZXBvcnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlQW5hbHlzaXNSZXBvcnREZXNlcmlhbGl6ZXIoXG4gIG9iajogU2VyaWFsaXplZCxcbiAgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gYW55LFxuKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gIGNvbnN0IHNlcmlhbGl6ZWQgPSBvYmogYXMgU2VyaWFsaXplZENoYW5nZUFuYWx5c2lzUmVwb3J0O1xuXG4gIHJldHVybiBuZXcgQ2hhbmdlQW5hbHlzaXNSZXBvcnQoXG4gICAgZGVzZXJpYWxpemUoc2VyaWFsaXplZC5pbmZyYU1vZGVsRGlmZikgYXMgSW5mcmFNb2RlbERpZmYsXG4gICAgc2VyaWFsaXplZC5hZ2dyZWdhdGlvbnMubWFwKGRlc2VyaWFsaXplKSBhcyBBZ2dyZWdhdGlvbjxDb21wb25lbnRPcGVyYXRpb24+W10sXG4gICAgbmV3IE1hcChPYmplY3QuZW50cmllcyhzZXJpYWxpemVkLmFnZ3JlZ2F0aW9uc1BlckNvbXBvbmVudClcbiAgICAgIC5tYXAoKFtrLHZdKSA9PiBbXG4gICAgICAgIGRlc2VyaWFsaXplKHBhcnNlSW50KGspKSBhcyBUcmFuc2l0aW9uPENvbXBvbmVudD4sXG4gICAgICAgIHYubWFwKGRlc2VyaWFsaXplKSBhcyBBZ2dyZWdhdGlvbjxDb21wb25lbnRPcGVyYXRpb24+W10sXG4gICAgICBdKSksXG4gICAgbmV3IE1hcChPYmplY3QuZW50cmllcyhzZXJpYWxpemVkLnJ1bGVzT3V0cHV0KS5tYXAoKFtpZCwgZWZmZWN0XSkgPT4gW2Rlc2VyaWFsaXplKHBhcnNlSW50KGlkKSksIGVmZmVjdF0pKSxcbiAgKTtcbn1cbiJdfQ==

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../../../json-serializable";
import { SerializationID } from "../../../json-serializer";
import { JSONSerializable, Serialized } from '../../../json-serializable';
import { SerializationID } from '../../../json-serializer';
export declare function insertComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -4,0 +4,0 @@ export declare function removeComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -26,2 +26,2 @@ "use strict";

exports.renameComponentOperationDeserializer = renameComponentOperationDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW9wZXJhdGlvbi1kZXNlcmlhbGl6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwtZGlmZi9jb21wb25lbnQtb3BlcmF0aW9ucy9jb21wb25lbnQtb3BlcmF0aW9uLWRlc2VyaWFsaXplcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBS29DO0FBSXBDLG1DQUFvRjtBQUVwRixTQUFnQixvQ0FBb0MsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDekgsTUFBTSxVQUFVLEdBQUcsR0FBbUMsQ0FBQztJQUV2RCxPQUFPLElBQUksd0NBQXdCLENBQy9CLDZCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUNqQywwQ0FBa0MsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQzlELENBQUM7QUFDTixDQUFDO0FBUEQsb0ZBT0M7QUFFRCxTQUFnQixvQ0FBb0MsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDekgsTUFBTSxVQUFVLEdBQUcsR0FBbUMsQ0FBQztJQUV2RCxPQUFPLElBQUksd0NBQXdCLENBQy9CLDZCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUNqQywwQ0FBa0MsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQzlELENBQUM7QUFDTixDQUFDO0FBUEQsb0ZBT0M7QUFFRCxTQUFnQixxQ0FBcUMsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDMUgsTUFBTSxVQUFVLEdBQUcsR0FBbUMsQ0FBQztJQUV2RCxPQUFPLElBQUkseUNBQXlCLENBQ2hDLDZCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUNqQywwQ0FBa0MsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQzlELENBQUM7QUFDTixDQUFDO0FBUEQsc0ZBT0M7QUFFRCxTQUFnQixvQ0FBb0MsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDekgsTUFBTSxVQUFVLEdBQUcsR0FBbUMsQ0FBQztJQUV2RCxPQUFPLElBQUksd0NBQXdCLENBQy9CLDZCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUNqQywwQ0FBa0MsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQzlELENBQUM7QUFDTixDQUFDO0FBUEQsb0ZBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEluc2VydENvbXBvbmVudE9wZXJhdGlvbixcbiAgICBSZW1vdmVDb21wb25lbnRPcGVyYXRpb24sXG4gICAgUmVuYW1lQ29tcG9uZW50T3BlcmF0aW9uLFxuICAgIFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb24sXG59IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC1kaWZmaW5nL1wiO1xuaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gXCIuLi8uLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudE9wZXJhdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwtZGlmZi9zZXJpYWxpemVkLWNvbXBvbmVudC1vcGVyYXRpb25cIjtcbmltcG9ydCB7IGRlc2VyaWFsaXplT3BOb2RlRGF0YSwgZGVzZXJpYWxpemVPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnRDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIob2JqOiBTZXJpYWxpemVkLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IG9iaiBhcyBTZXJpYWxpemVkQ29tcG9uZW50T3BlcmF0aW9uO1xuXG4gICAgcmV0dXJuIG5ldyBJbnNlcnRDb21wb25lbnRPcGVyYXRpb24oXG4gICAgICAgIGRlc2VyaWFsaXplT3BOb2RlRGF0YShzZXJpYWxpemVkKSxcbiAgICAgICAgZGVzZXJpYWxpemVPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkLCBkZXNlcmlhbGl6ZSksXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcihvYmo6IFNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gb2JqIGFzIFNlcmlhbGl6ZWRDb21wb25lbnRPcGVyYXRpb247XG5cbiAgICByZXR1cm4gbmV3IFJlbW92ZUNvbXBvbmVudE9wZXJhdGlvbihcbiAgICAgICAgZGVzZXJpYWxpemVPcE5vZGVEYXRhKHNlcmlhbGl6ZWQpLFxuICAgICAgICBkZXNlcmlhbGl6ZU9wT3V0b2luZ05vZGVSZWZlcmVuY2VzKHNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplKSxcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcihvYmo6IFNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gb2JqIGFzIFNlcmlhbGl6ZWRDb21wb25lbnRPcGVyYXRpb247XG5cbiAgICByZXR1cm4gbmV3IFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb24oXG4gICAgICAgIGRlc2VyaWFsaXplT3BOb2RlRGF0YShzZXJpYWxpemVkKSxcbiAgICAgICAgZGVzZXJpYWxpemVPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkLCBkZXNlcmlhbGl6ZSksXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmFtZUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcihvYmo6IFNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gb2JqIGFzIFNlcmlhbGl6ZWRDb21wb25lbnRPcGVyYXRpb247XG5cbiAgICByZXR1cm4gbmV3IFJlbmFtZUNvbXBvbmVudE9wZXJhdGlvbihcbiAgICAgICAgZGVzZXJpYWxpemVPcE5vZGVEYXRhKHNlcmlhbGl6ZWQpLFxuICAgICAgICBkZXNlcmlhbGl6ZU9wT3V0b2luZ05vZGVSZWZlcmVuY2VzKHNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplKSxcbiAgICApO1xufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW9wZXJhdGlvbi1kZXNlcmlhbGl6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwtZGlmZi9jb21wb25lbnQtb3BlcmF0aW9ucy9jb21wb25lbnQtb3BlcmF0aW9uLWRlc2VyaWFsaXplcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOERBS29DO0FBSXBDLG1DQUFvRjtBQUVwRixTQUFnQixvQ0FBb0MsQ0FDbEQsR0FBZSxFQUNmLFdBQXVEO0lBRXZELE1BQU0sVUFBVSxHQUFHLEdBQW1DLENBQUM7SUFFdkQsT0FBTyxJQUFJLHdDQUF3QixDQUNqQyw2QkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFDakMsMENBQWtDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUM1RCxDQUFDO0FBQ0osQ0FBQztBQVZELG9GQVVDO0FBRUQsU0FBZ0Isb0NBQW9DLENBQ2xELEdBQWUsRUFDZixXQUF1RDtJQUV2RCxNQUFNLFVBQVUsR0FBRyxHQUFtQyxDQUFDO0lBRXZELE9BQU8sSUFBSSx3Q0FBd0IsQ0FDakMsNkJBQXFCLENBQUMsVUFBVSxDQUFDLEVBQ2pDLDBDQUFrQyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FDNUQsQ0FBQztBQUNKLENBQUM7QUFWRCxvRkFVQztBQUVELFNBQWdCLHFDQUFxQyxDQUNuRCxHQUFlLEVBQ2YsV0FBdUQ7SUFFdkQsTUFBTSxVQUFVLEdBQUcsR0FBbUMsQ0FBQztJQUV2RCxPQUFPLElBQUkseUNBQXlCLENBQ2xDLDZCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUNqQywwQ0FBa0MsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQzVELENBQUM7QUFDSixDQUFDO0FBVkQsc0ZBVUM7QUFFRCxTQUFnQixvQ0FBb0MsQ0FDbEQsR0FBZSxFQUNmLFdBQXVEO0lBRXZELE1BQU0sVUFBVSxHQUFHLEdBQW1DLENBQUM7SUFFdkQsT0FBTyxJQUFJLHdDQUF3QixDQUNqQyw2QkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFDakMsMENBQWtDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUM1RCxDQUFDO0FBQ0osQ0FBQztBQVZELG9GQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5zZXJ0Q29tcG9uZW50T3BlcmF0aW9uLFxuICBSZW1vdmVDb21wb25lbnRPcGVyYXRpb24sXG4gIFJlbmFtZUNvbXBvbmVudE9wZXJhdGlvbixcbiAgUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWwtZGlmZmluZy8nO1xuaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gJy4uLy4uLy4uL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4uLy4uLy4uL2pzb24tc2VyaWFsaXplcic7XG5pbXBvcnQgeyBTZXJpYWxpemVkQ29tcG9uZW50T3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsLWRpZmYvc2VyaWFsaXplZC1jb21wb25lbnQtb3BlcmF0aW9uJztcbmltcG9ydCB7IGRlc2VyaWFsaXplT3BOb2RlRGF0YSwgZGVzZXJpYWxpemVPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0Q29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyKFxuICBvYmo6IFNlcmlhbGl6ZWQsXG4gIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUsXG4pOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgY29uc3Qgc2VyaWFsaXplZCA9IG9iaiBhcyBTZXJpYWxpemVkQ29tcG9uZW50T3BlcmF0aW9uO1xuXG4gIHJldHVybiBuZXcgSW5zZXJ0Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgIGRlc2VyaWFsaXplT3BOb2RlRGF0YShzZXJpYWxpemVkKSxcbiAgICBkZXNlcmlhbGl6ZU9wT3V0b2luZ05vZGVSZWZlcmVuY2VzKHNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcihcbiAgb2JqOiBTZXJpYWxpemVkLFxuICBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlLFxuKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gIGNvbnN0IHNlcmlhbGl6ZWQgPSBvYmogYXMgU2VyaWFsaXplZENvbXBvbmVudE9wZXJhdGlvbjtcblxuICByZXR1cm4gbmV3IFJlbW92ZUNvbXBvbmVudE9wZXJhdGlvbihcbiAgICBkZXNlcmlhbGl6ZU9wTm9kZURhdGEoc2VyaWFsaXplZCksXG4gICAgZGVzZXJpYWxpemVPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkLCBkZXNlcmlhbGl6ZSksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXBsYWNlQ29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyKFxuICBvYmo6IFNlcmlhbGl6ZWQsXG4gIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUsXG4pOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgY29uc3Qgc2VyaWFsaXplZCA9IG9iaiBhcyBTZXJpYWxpemVkQ29tcG9uZW50T3BlcmF0aW9uO1xuXG4gIHJldHVybiBuZXcgUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbihcbiAgICBkZXNlcmlhbGl6ZU9wTm9kZURhdGEoc2VyaWFsaXplZCksXG4gICAgZGVzZXJpYWxpemVPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkLCBkZXNlcmlhbGl6ZSksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5hbWVDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIoXG4gIG9iajogU2VyaWFsaXplZCxcbiAgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gSlNPTlNlcmlhbGl6YWJsZSxcbik6IEpTT05TZXJpYWxpemFibGUge1xuICBjb25zdCBzZXJpYWxpemVkID0gb2JqIGFzIFNlcmlhbGl6ZWRDb21wb25lbnRPcGVyYXRpb247XG5cbiAgcmV0dXJuIG5ldyBSZW5hbWVDb21wb25lbnRPcGVyYXRpb24oXG4gICAgZGVzZXJpYWxpemVPcE5vZGVEYXRhKHNlcmlhbGl6ZWQpLFxuICAgIGRlc2VyaWFsaXplT3BPdXRvaW5nTm9kZVJlZmVyZW5jZXMoc2VyaWFsaXplZCwgZGVzZXJpYWxpemUpLFxuICApO1xufSJdfQ==

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../../../json-serializable";
import { SerializationID } from "../../../json-serializer";
import { JSONSerializable, Serialized } from '../../../json-serializable';
import { SerializationID } from '../../../json-serializer';
export declare function insertPropertyComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -4,0 +4,0 @@ export declare function removePropertyComponentOperationDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -26,2 +26,2 @@ "use strict";

exports.updatePropertyComponentOperationDeserializer = updatePropertyComponentOperationDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY29tcG9uZW50LW9wZXJhdGlvbi1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy9pbmZyYS1tb2RlbC1kaWZmL2NvbXBvbmVudC1vcGVyYXRpb25zL3Byb3BlcnR5LWNvbXBvbmVudC1vcGVyYXRpb24tZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhEQUlvQztBQUlwQyxtQ0FBc0k7QUFFdEksU0FBZ0IsNENBQTRDLENBQUMsR0FBZSxFQUFFLFdBQXVEO0lBQ2pJLE1BQU0sVUFBVSxHQUFHLEdBQTJDLENBQUM7SUFFL0QsT0FBTyxJQUFJLGdEQUFnQyxDQUN2Qyw2QkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFDakMsOENBQXNDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUNsRSxDQUFDO0FBQ04sQ0FBQztBQVBELG9HQU9DO0FBRUQsU0FBZ0IsNENBQTRDLENBQUMsR0FBZSxFQUFFLFdBQXVEO0lBQ2pJLE1BQU0sVUFBVSxHQUFHLEdBQTJDLENBQUM7SUFFL0QsT0FBTyxJQUFJLGdEQUFnQyxDQUN2Qyw2QkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFDakMsOENBQXNDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUNsRSxDQUFDO0FBQ04sQ0FBQztBQVBELG9HQU9DO0FBRUQsU0FBZ0IsMENBQTBDLENBQUMsR0FBZSxFQUFFLFdBQXVEO0lBQy9ILE1BQU0sVUFBVSxHQUFHLEdBQTJDLENBQUM7SUFFL0QsT0FBTyxJQUFJLDhDQUE4QixDQUNyQyw2QkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFDakMsOENBQXNDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUNsRSxDQUFDO0FBQ04sQ0FBQztBQVBELGdHQU9DO0FBRUQsU0FBZ0IsNENBQTRDLENBQUMsR0FBZSxFQUFFLFdBQXVEO0lBQ2pJLE1BQU0sVUFBVSxHQUFHLEdBQTJDLENBQUM7SUFFL0QsT0FBTyxJQUFJLDhDQUE4QixDQUNyQyw2QkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFDakMsb0RBQTRDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUN4RSxDQUFDO0FBQ04sQ0FBQztBQVBELG9HQU9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbnNlcnRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgICBNb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG4gICAgUmVtb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG59IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbC1kaWZmaW5nL1wiO1xuaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gXCIuLi8uLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgU2VyaWFsaXplZFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtY29tcG9uZW50LW9wZXJhdGlvblwiO1xuaW1wb3J0IHsgZGVzZXJpYWxpemVPcE5vZGVEYXRhLCBkZXNlcmlhbGl6ZVByb3BPcE91dG9pbmdOb2RlUmVmZXJlbmNlcywgZGVzZXJpYWxpemVVcGRhdGVQcm9wT3BPdXRvaW5nTm9kZVJlZmVyZW5jZXMgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0UHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIob2JqOiBTZXJpYWxpemVkLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IG9iaiBhcyBTZXJpYWxpemVkUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb247XG5cbiAgICByZXR1cm4gbmV3IEluc2VydFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgICAgICBkZXNlcmlhbGl6ZU9wTm9kZURhdGEoc2VyaWFsaXplZCksXG4gICAgICAgIGRlc2VyaWFsaXplUHJvcE9wT3V0b2luZ05vZGVSZWZlcmVuY2VzKHNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplKSxcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIob2JqOiBTZXJpYWxpemVkLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IG9iaiBhcyBTZXJpYWxpemVkUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb247XG5cbiAgICByZXR1cm4gbmV3IFJlbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgICAgICBkZXNlcmlhbGl6ZU9wTm9kZURhdGEoc2VyaWFsaXplZCksXG4gICAgICAgIGRlc2VyaWFsaXplUHJvcE9wT3V0b2luZ05vZGVSZWZlcmVuY2VzKHNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplKSxcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uRGVzZXJpYWxpemVyKG9iajogU2VyaWFsaXplZCwgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gSlNPTlNlcmlhbGl6YWJsZSk6IEpTT05TZXJpYWxpemFibGUge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBvYmogYXMgU2VyaWFsaXplZFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uO1xuXG4gICAgcmV0dXJuIG5ldyBNb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oXG4gICAgICAgIGRlc2VyaWFsaXplT3BOb2RlRGF0YShzZXJpYWxpemVkKSxcbiAgICAgICAgZGVzZXJpYWxpemVQcm9wT3BPdXRvaW5nTm9kZVJlZmVyZW5jZXMoc2VyaWFsaXplZCwgZGVzZXJpYWxpemUpLFxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcihvYmo6IFNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gb2JqIGFzIFNlcmlhbGl6ZWRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbjtcblxuICAgIHJldHVybiBuZXcgTW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgICAgICBkZXNlcmlhbGl6ZU9wTm9kZURhdGEoc2VyaWFsaXplZCksXG4gICAgICAgIGRlc2VyaWFsaXplVXBkYXRlUHJvcE9wT3V0b2luZ05vZGVSZWZlcmVuY2VzKHNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplKSxcbiAgICApO1xufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY29tcG9uZW50LW9wZXJhdGlvbi1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy9pbmZyYS1tb2RlbC1kaWZmL2NvbXBvbmVudC1vcGVyYXRpb25zL3Byb3BlcnR5LWNvbXBvbmVudC1vcGVyYXRpb24tZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhEQUlvQztBQUlwQyxtQ0FBc0k7QUFFdEksU0FBZ0IsNENBQTRDLENBQzFELEdBQWUsRUFDZixXQUF1RDtJQUV2RCxNQUFNLFVBQVUsR0FBRyxHQUEyQyxDQUFDO0lBRS9ELE9BQU8sSUFBSSxnREFBZ0MsQ0FDekMsNkJBQXFCLENBQUMsVUFBVSxDQUFDLEVBQ2pDLDhDQUFzQyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FDaEUsQ0FBQztBQUNKLENBQUM7QUFWRCxvR0FVQztBQUVELFNBQWdCLDRDQUE0QyxDQUMxRCxHQUFlLEVBQ2YsV0FBdUQ7SUFFdkQsTUFBTSxVQUFVLEdBQUcsR0FBMkMsQ0FBQztJQUUvRCxPQUFPLElBQUksZ0RBQWdDLENBQ3pDLDZCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUNqQyw4Q0FBc0MsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQ2hFLENBQUM7QUFDSixDQUFDO0FBVkQsb0dBVUM7QUFFRCxTQUFnQiwwQ0FBMEMsQ0FDeEQsR0FBZSxFQUNmLFdBQXVEO0lBRXZELE1BQU0sVUFBVSxHQUFHLEdBQTJDLENBQUM7SUFFL0QsT0FBTyxJQUFJLDhDQUE4QixDQUN2Qyw2QkFBcUIsQ0FBQyxVQUFVLENBQUMsRUFDakMsOENBQXNDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUNoRSxDQUFDO0FBQ0osQ0FBQztBQVZELGdHQVVDO0FBRUQsU0FBZ0IsNENBQTRDLENBQzFELEdBQWUsRUFDZixXQUF1RDtJQUV2RCxNQUFNLFVBQVUsR0FBRyxHQUEyQyxDQUFDO0lBRS9ELE9BQU8sSUFBSSw4Q0FBOEIsQ0FDdkMsNkJBQXFCLENBQUMsVUFBVSxDQUFDLEVBQ2pDLG9EQUE0QyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FDdEUsQ0FBQztBQUNKLENBQUM7QUFWRCxvR0FVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluc2VydFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxuICBNb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG4gIFJlbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbC1kaWZmaW5nLyc7XG5pbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemVkIH0gZnJvbSAnLi4vLi4vLi4vanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSAnLi4vLi4vLi4vanNvbi1zZXJpYWxpemVyJztcbmltcG9ydCB7IFNlcmlhbGl6ZWRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtY29tcG9uZW50LW9wZXJhdGlvbic7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZU9wTm9kZURhdGEsIGRlc2VyaWFsaXplUHJvcE9wT3V0b2luZ05vZGVSZWZlcmVuY2VzLCBkZXNlcmlhbGl6ZVVwZGF0ZVByb3BPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0UHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25EZXNlcmlhbGl6ZXIoXG4gIG9iajogU2VyaWFsaXplZCxcbiAgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gSlNPTlNlcmlhbGl6YWJsZSxcbik6IEpTT05TZXJpYWxpemFibGUge1xuICBjb25zdCBzZXJpYWxpemVkID0gb2JqIGFzIFNlcmlhbGl6ZWRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbjtcblxuICByZXR1cm4gbmV3IEluc2VydFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgIGRlc2VyaWFsaXplT3BOb2RlRGF0YShzZXJpYWxpemVkKSxcbiAgICBkZXNlcmlhbGl6ZVByb3BPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkLCBkZXNlcmlhbGl6ZSksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcihcbiAgb2JqOiBTZXJpYWxpemVkLFxuICBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlLFxuKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gIGNvbnN0IHNlcmlhbGl6ZWQgPSBvYmogYXMgU2VyaWFsaXplZFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uO1xuXG4gIHJldHVybiBuZXcgUmVtb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oXG4gICAgZGVzZXJpYWxpemVPcE5vZGVEYXRhKHNlcmlhbGl6ZWQpLFxuICAgIGRlc2VyaWFsaXplUHJvcE9wT3V0b2luZ05vZGVSZWZlcmVuY2VzKHNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcihcbiAgb2JqOiBTZXJpYWxpemVkLFxuICBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlLFxuKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gIGNvbnN0IHNlcmlhbGl6ZWQgPSBvYmogYXMgU2VyaWFsaXplZFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uO1xuXG4gIHJldHVybiBuZXcgTW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgIGRlc2VyaWFsaXplT3BOb2RlRGF0YShzZXJpYWxpemVkKSxcbiAgICBkZXNlcmlhbGl6ZVByb3BPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkLCBkZXNlcmlhbGl6ZSksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbkRlc2VyaWFsaXplcihcbiAgb2JqOiBTZXJpYWxpemVkLFxuICBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlLFxuKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gIGNvbnN0IHNlcmlhbGl6ZWQgPSBvYmogYXMgU2VyaWFsaXplZFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uO1xuXG4gIHJldHVybiBuZXcgTW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgIGRlc2VyaWFsaXplT3BOb2RlRGF0YShzZXJpYWxpemVkKSxcbiAgICBkZXNlcmlhbGl6ZVVwZGF0ZVByb3BPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkLCBkZXNlcmlhbGl6ZSksXG4gICk7XG59Il19

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

import { OpNodeData, OpOutgoingNodeReferences, PropOpOutgoingNodeReferences, UpdatePropOpOutgoingNodeReferences } from "../../../../model-diffing/";
import { JSONSerializable } from "../../../json-serializable";
import { SerializationID } from "../../../json-serializer";
import { SerializedComponentOperation, SerializedPropertyComponentOperation, SerializedUpdatePropertyComponentOperation } from "../../../serialized-interfaces/infra-model-diff/serialized-component-operation";
import { OpNodeData, OpOutgoingNodeReferences, PropOpOutgoingNodeReferences, UpdatePropOpOutgoingNodeReferences } from '../../../../model-diffing/';
import { JSONSerializable } from '../../../json-serializable';
import { SerializationID } from '../../../json-serializer';
import { SerializedComponentOperation, SerializedPropertyComponentOperation, SerializedUpdatePropertyComponentOperation } from '../../../serialized-interfaces/infra-model-diff/serialized-component-operation';
export declare function deserializeOpNodeData(serialized: SerializedComponentOperation): OpNodeData;

@@ -6,0 +6,0 @@ export declare function deserializeOpOutoingNodeReferences(serialized: SerializedComponentOperation, deserialize: (obj: SerializationID) => JSONSerializable): OpOutgoingNodeReferences;

@@ -28,8 +28,9 @@ "use strict";

function deserializeUpdatePropOpOutoingNodeReferences(serialized, deserialize) {
var _a;
return {
...deserializePropOpOutoingNodeReferences(serialized, deserialize),
innerOperations: serialized.innerOperations ? serialized.innerOperations.map(deserialize) : undefined,
innerOperations: (_a = serialized.innerOperations) === null || _a === void 0 ? void 0 : _a.map(deserialize),
};
}
exports.deserializeUpdatePropOpOutoingNodeReferences = deserializeUpdatePropOpOutoingNodeReferences;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy9pbmZyYS1tb2RlbC1kaWZmL2NvbXBvbmVudC1vcGVyYXRpb25zL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhEQUFvTztBQUtwTyxTQUFnQixxQkFBcUIsQ0FBQyxVQUF3QztJQUMxRSxPQUFPO1FBQ0gsU0FBUyxFQUFFLGtDQUFrQixDQUFDLFVBQVUsQ0FBQyxTQUE0QyxDQUFDO0tBQ3pGLENBQUM7QUFDTixDQUFDO0FBSkQsc0RBSUM7QUFFRCxTQUFnQixrQ0FBa0MsQ0FBQyxVQUF3QyxFQUFFLFdBQXVEO0lBQ2hKLE9BQU87UUFDSCxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQXVCLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDekYsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBMEI7S0FDNUYsQ0FBQztBQUNOLENBQUM7QUFMRCxnRkFLQztBQUVELDhCQUE4QjtBQUU5QixTQUFnQixzQ0FBc0MsQ0FBQyxVQUFnRCxFQUFFLFdBQXVEO0lBQzVKLE9BQU87UUFDSCxHQUFHLGtDQUFrQyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUM7UUFDOUQsY0FBYyxFQUFFLFdBQVcsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUE2QjtRQUNsRixrQkFBa0IsRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUF1QztLQUN2RyxDQUFDO0FBQ04sQ0FBQztBQU5ELHdGQU1DO0FBRUQsU0FBZ0IsNENBQTRDLENBQUMsVUFBc0QsRUFBRSxXQUF1RDtJQUN4SyxPQUFPO1FBQ0gsR0FBRyxzQ0FBc0MsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO1FBQ2xFLGVBQWUsRUFBRSxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQWlDLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDeEksQ0FBQztBQUNOLENBQUM7QUFMRCxvR0FLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSwgUHJvcGVydHlQYXRoLCBSZWxhdGlvbnNoaXAgfSBmcm9tIFwiLi4vLi4vLi4vLi4vaW5mcmEtbW9kZWxcIjtcbmltcG9ydCB7IENvbXBvbmVudE9wZXJhdGlvbiwgT3BlcmF0aW9uQ2VydGFpbnR5LCBPcE5vZGVEYXRhLCBPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXMsIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLCBQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzLCBUcmFuc2l0aW9uLCBVcGRhdGVQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsLWRpZmZpbmcvXCI7XG5pbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlIH0gZnJvbSBcIi4uLy4uLy4uL2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tIFwiLi4vLi4vLi4vanNvbi1zZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVkQ29tcG9uZW50T3BlcmF0aW9uLCBTZXJpYWxpemVkT3V0Z29pbmdSZWxhdGlvbnNoaXBDb21wb25lbnRPcGVyYXRpb24sIFNlcmlhbGl6ZWRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiwgU2VyaWFsaXplZFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtY29tcG9uZW50LW9wZXJhdGlvblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVPcE5vZGVEYXRhKHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWRDb21wb25lbnRPcGVyYXRpb24pOiBPcE5vZGVEYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBjZXJ0YWludHk6IE9wZXJhdGlvbkNlcnRhaW50eVtzZXJpYWxpemVkLmNlcnRhaW50eSBhcyBrZXlvZiB0eXBlb2YgT3BlcmF0aW9uQ2VydGFpbnR5XSxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkOiBTZXJpYWxpemVkQ29tcG9uZW50T3BlcmF0aW9uLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKTogT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBjYXVzZTogc2VyaWFsaXplZC5jYXVzZSA/IGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQuY2F1c2UpIGFzIENvbXBvbmVudE9wZXJhdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogZGVzZXJpYWxpemUoc2VyaWFsaXplZC5jb21wb25lbnRUcmFuc2l0aW9uKSBhcyBUcmFuc2l0aW9uPENvbXBvbmVudD4sXG4gICAgfTtcbn1cblxuLy8gUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25zXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVByb3BPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkOiBTZXJpYWxpemVkUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUpOiBQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi5kZXNlcmlhbGl6ZU9wT3V0b2luZ05vZGVSZWZlcmVuY2VzKHNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplKSxcbiAgICAgICAgcGF0aFRyYW5zaXRpb246IGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQucGF0aFRyYW5zaXRpb24pIGFzIFRyYW5zaXRpb248UHJvcGVydHlQYXRoPixcbiAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBkZXNlcmlhbGl6ZShzZXJpYWxpemVkLnByb3BlcnR5VHJhbnNpdGlvbikgYXMgVHJhbnNpdGlvbjxDb21wb25lbnRQcm9wZXJ0eVZhbHVlPixcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVVcGRhdGVQcm9wT3BPdXRvaW5nTm9kZVJlZmVyZW5jZXMoc2VyaWFsaXplZDogU2VyaWFsaXplZFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKTogVXBkYXRlUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZGVzZXJpYWxpemVQcm9wT3BPdXRvaW5nTm9kZVJlZmVyZW5jZXMoc2VyaWFsaXplZCwgZGVzZXJpYWxpemUpLFxuICAgICAgICBpbm5lck9wZXJhdGlvbnM6IHNlcmlhbGl6ZWQuaW5uZXJPcGVyYXRpb25zID8gc2VyaWFsaXplZC5pbm5lck9wZXJhdGlvbnMubWFwKGRlc2VyaWFsaXplKSBhcyBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbltdIDogdW5kZWZpbmVkLFxuICAgIH07XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy9pbmZyYS1tb2RlbC1kaWZmL2NvbXBvbmVudC1vcGVyYXRpb25zL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhEQUFvTztBQUtwTyxTQUFnQixxQkFBcUIsQ0FBQyxVQUF3QztJQUM1RSxPQUFPO1FBQ0wsU0FBUyxFQUFFLGtDQUFrQixDQUFDLFVBQVUsQ0FBQyxTQUE0QyxDQUFDO0tBQ3ZGLENBQUM7QUFDSixDQUFDO0FBSkQsc0RBSUM7QUFFRCxTQUFnQixrQ0FBa0MsQ0FDaEQsVUFBd0MsRUFDeEMsV0FBdUQ7SUFFdkQsT0FBTztRQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBdUIsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUN6RixtQkFBbUIsRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUEwQjtLQUMxRixDQUFDO0FBQ0osQ0FBQztBQVJELGdGQVFDO0FBRUQsOEJBQThCO0FBQzlCLFNBQWdCLHNDQUFzQyxDQUNwRCxVQUFnRCxFQUNoRCxXQUF1RDtJQUV2RCxPQUFPO1FBQ0wsR0FBRyxrQ0FBa0MsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDO1FBQzlELGNBQWMsRUFBRSxXQUFXLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBNkI7UUFDbEYsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBdUM7S0FDckcsQ0FBQztBQUNKLENBQUM7QUFURCx3RkFTQztBQUVELFNBQWdCLDRDQUE0QyxDQUMxRCxVQUFzRCxFQUN0RCxXQUF1RDs7SUFFdkQsT0FBTztRQUNMLEdBQUcsc0NBQXNDLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQztRQUNsRSxlQUFlLEVBQUUsTUFBQSxVQUFVLENBQUMsZUFBZSwwQ0FBRSxHQUFHLENBQUMsV0FBVyxDQUFpQztLQUM5RixDQUFDO0FBQ0osQ0FBQztBQVJELG9HQVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLCBQcm9wZXJ0eVBhdGggfSBmcm9tICcuLi8uLi8uLi8uLi9pbmZyYS1tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnRPcGVyYXRpb24sIE9wZXJhdGlvbkNlcnRhaW50eSwgT3BOb2RlRGF0YSwgT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzLCBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiwgUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcywgVHJhbnNpdGlvbiwgVXBkYXRlUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVsLWRpZmZpbmcvJztcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUgfSBmcm9tICcuLi8uLi8uLi9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi8uLi8uLi9qc29uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudE9wZXJhdGlvbiwgU2VyaWFsaXplZFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLCBTZXJpYWxpemVkVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gfSBmcm9tICcuLi8uLi8uLi9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwtZGlmZi9zZXJpYWxpemVkLWNvbXBvbmVudC1vcGVyYXRpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVPcE5vZGVEYXRhKHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWRDb21wb25lbnRPcGVyYXRpb24pOiBPcE5vZGVEYXRhIHtcbiAgcmV0dXJuIHtcbiAgICBjZXJ0YWludHk6IE9wZXJhdGlvbkNlcnRhaW50eVtzZXJpYWxpemVkLmNlcnRhaW50eSBhcyBrZXlvZiB0eXBlb2YgT3BlcmF0aW9uQ2VydGFpbnR5XSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplT3BPdXRvaW5nTm9kZVJlZmVyZW5jZXMoXG4gIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWRDb21wb25lbnRPcGVyYXRpb24sXG4gIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUsXG4pOiBPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXMge1xuICByZXR1cm4ge1xuICAgIGNhdXNlOiBzZXJpYWxpemVkLmNhdXNlID8gZGVzZXJpYWxpemUoc2VyaWFsaXplZC5jYXVzZSkgYXMgQ29tcG9uZW50T3BlcmF0aW9uIDogdW5kZWZpbmVkLFxuICAgIGNvbXBvbmVudFRyYW5zaXRpb246IGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQuY29tcG9uZW50VHJhbnNpdGlvbikgYXMgVHJhbnNpdGlvbjxDb21wb25lbnQ+LFxuICB9O1xufVxuXG4vLyBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVByb3BPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhcbiAgc2VyaWFsaXplZDogU2VyaWFsaXplZFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxuICBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlLFxuKTogUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyB7XG4gIHJldHVybiB7XG4gICAgLi4uZGVzZXJpYWxpemVPcE91dG9pbmdOb2RlUmVmZXJlbmNlcyhzZXJpYWxpemVkLCBkZXNlcmlhbGl6ZSksXG4gICAgcGF0aFRyYW5zaXRpb246IGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQucGF0aFRyYW5zaXRpb24pIGFzIFRyYW5zaXRpb248UHJvcGVydHlQYXRoPixcbiAgICBwcm9wZXJ0eVRyYW5zaXRpb246IGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQucHJvcGVydHlUcmFuc2l0aW9uKSBhcyBUcmFuc2l0aW9uPENvbXBvbmVudFByb3BlcnR5VmFsdWU+LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVVcGRhdGVQcm9wT3BPdXRvaW5nTm9kZVJlZmVyZW5jZXMoXG4gIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWRVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gSlNPTlNlcmlhbGl6YWJsZSxcbik6IFVwZGF0ZVByb3BPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXMge1xuICByZXR1cm4ge1xuICAgIC4uLmRlc2VyaWFsaXplUHJvcE9wT3V0b2luZ05vZGVSZWZlcmVuY2VzKHNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplKSxcbiAgICBpbm5lck9wZXJhdGlvbnM6IHNlcmlhbGl6ZWQuaW5uZXJPcGVyYXRpb25zPy5tYXAoZGVzZXJpYWxpemUpIGFzIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uW10sXG4gIH07XG59Il19

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export declare function infraModelDiffDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -10,2 +10,2 @@ "use strict";

exports.infraModelDiffDeserializer = infraModelDiffDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwtZGlmZi1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy9pbmZyYS1tb2RlbC1kaWZmL2luZnJhLW1vZGVsLWRpZmYtZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBEQUF3RjtBQUt4RixTQUFnQiwwQkFBMEIsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDL0csTUFBTSxVQUFVLEdBQUcsR0FBK0IsQ0FBQztJQUVuRCxPQUFPLElBQUksOEJBQWMsQ0FDckIsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQXlCLEVBQ3ZFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUE0QixFQUMzRSxXQUFXLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUEyQixDQUN6RSxDQUFDO0FBQ04sQ0FBQztBQVJELGdFQVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmZyYU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL2luZnJhLW1vZGVsXCI7XG5pbXBvcnQgeyBDb21wb25lbnRPcGVyYXRpb24sIEluZnJhTW9kZWxEaWZmLCBUcmFuc2l0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVsLWRpZmZpbmdcIjtcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tIFwiLi4vLi4vanNvbi1zZXJpYWxpemFibGVcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFNlcmlhbGl6ZWRJbmZyYU1vZGVsRGlmZiB9IGZyb20gXCIuLi8uLi9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwtZGlmZi9zZXJpYWxpemVkLWluZnJhLW1vZGVsLWRpZmZcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZnJhTW9kZWxEaWZmRGVzZXJpYWxpemVyKG9iajogU2VyaWFsaXplZCwgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gSlNPTlNlcmlhbGl6YWJsZSk6IEpTT05TZXJpYWxpemFibGUge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBvYmogYXMgU2VyaWFsaXplZEluZnJhTW9kZWxEaWZmO1xuXG4gICAgcmV0dXJuIG5ldyBJbmZyYU1vZGVsRGlmZihcbiAgICAgICAgc2VyaWFsaXplZC5jb21wb25lbnRPcGVyYXRpb25zLm1hcChkZXNlcmlhbGl6ZSkgYXMgQ29tcG9uZW50T3BlcmF0aW9uW10sXG4gICAgICAgIHNlcmlhbGl6ZWQuY29tcG9uZW50VHJhbnNpdGlvbnMubWFwKGRlc2VyaWFsaXplKSBhcyBUcmFuc2l0aW9uPENvbXBvbmVudD5bXSxcbiAgICAgICAgZGVzZXJpYWxpemUoc2VyaWFsaXplZC5pbmZyYU1vZGVsVHJhbnNpdGlvbikgYXMgVHJhbnNpdGlvbjxJbmZyYU1vZGVsPlxuICAgICk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwtZGlmZi1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy9pbmZyYS1tb2RlbC1kaWZmL2luZnJhLW1vZGVsLWRpZmYtZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBEQUF3RjtBQUt4RixTQUFnQiwwQkFBMEIsQ0FDeEMsR0FBZSxFQUNmLFdBQXVEO0lBRXZELE1BQU0sVUFBVSxHQUFHLEdBQStCLENBQUM7SUFFbkQsT0FBTyxJQUFJLDhCQUFjLENBQ3ZCLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUF5QixFQUN2RSxVQUFVLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBNEIsRUFDM0UsV0FBVyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBMkIsQ0FDdkUsQ0FBQztBQUNKLENBQUM7QUFYRCxnRUFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5mcmFNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2luZnJhLW1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudE9wZXJhdGlvbiwgSW5mcmFNb2RlbERpZmYsIFRyYW5zaXRpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbC1kaWZmaW5nJztcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU2VyaWFsaXplZEluZnJhTW9kZWxEaWZmIH0gZnJvbSAnLi4vLi4vc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsLWRpZmYvc2VyaWFsaXplZC1pbmZyYS1tb2RlbC1kaWZmJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluZnJhTW9kZWxEaWZmRGVzZXJpYWxpemVyKFxuICBvYmo6IFNlcmlhbGl6ZWQsXG4gIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUsXG4pOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgY29uc3Qgc2VyaWFsaXplZCA9IG9iaiBhcyBTZXJpYWxpemVkSW5mcmFNb2RlbERpZmY7XG5cbiAgcmV0dXJuIG5ldyBJbmZyYU1vZGVsRGlmZihcbiAgICBzZXJpYWxpemVkLmNvbXBvbmVudE9wZXJhdGlvbnMubWFwKGRlc2VyaWFsaXplKSBhcyBDb21wb25lbnRPcGVyYXRpb25bXSxcbiAgICBzZXJpYWxpemVkLmNvbXBvbmVudFRyYW5zaXRpb25zLm1hcChkZXNlcmlhbGl6ZSkgYXMgVHJhbnNpdGlvbjxDb21wb25lbnQ+W10sXG4gICAgZGVzZXJpYWxpemUoc2VyaWFsaXplZC5pbmZyYU1vZGVsVHJhbnNpdGlvbikgYXMgVHJhbnNpdGlvbjxJbmZyYU1vZGVsPixcbiAgKTtcbn1cbiJdfQ==

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export declare function componentDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -9,3 +9,3 @@ "use strict";

subtype: serializedComponent === null || serializedComponent === void 0 ? void 0 : serializedComponent.subtype,
properties: deserialize(serializedComponent.properties)
properties: deserialize(serializedComponent.properties),
});

@@ -15,2 +15,2 @@ return component;

exports.componentDeserializer = componentDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWRlc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V4cG9ydC9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsL2NvbXBvbmVudC1kZXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQXlFO0FBS3pFLFNBQWdCLHFCQUFxQixDQUFDLEdBQWUsRUFBRSxXQUF1RDtJQUMxRyxNQUFNLG1CQUFtQixHQUF3QixHQUEwQixDQUFDO0lBRTVFLE1BQU0sU0FBUyxHQUFHLElBQUksdUJBQVMsQ0FDM0IsbUJBQW1CLENBQUMsSUFBSSxFQUN4QixtQkFBbUIsQ0FBQyxJQUFJLEVBQ3hCO1FBQ0ksT0FBTyxFQUFFLG1CQUFtQixhQUFuQixtQkFBbUIsdUJBQW5CLG1CQUFtQixDQUFFLE9BQU87UUFDckMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQTJCO0tBQ3BGLENBQ0osQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDO0FBQ3JCLENBQUM7QUFiRCxzREFhQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi9pbmZyYS1tb2RlbFwiO1xuaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1jb21wb25lbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudERlc2VyaWFsaXplcihvYmo6IFNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBjb25zdCBzZXJpYWxpemVkQ29tcG9uZW50OiBTZXJpYWxpemVkQ29tcG9uZW50ID0gb2JqIGFzIFNlcmlhbGl6ZWRDb21wb25lbnQ7XG5cbiAgICBjb25zdCBjb21wb25lbnQgPSBuZXcgQ29tcG9uZW50KFxuICAgICAgICBzZXJpYWxpemVkQ29tcG9uZW50Lm5hbWUsXG4gICAgICAgIHNlcmlhbGl6ZWRDb21wb25lbnQudHlwZSxcbiAgICAgICAge1xuICAgICAgICAgICAgc3VidHlwZTogc2VyaWFsaXplZENvbXBvbmVudD8uc3VidHlwZSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IGRlc2VyaWFsaXplKHNlcmlhbGl6ZWRDb21wb25lbnQucHJvcGVydGllcykgYXMgQ29tcG9uZW50UHJvcGVydHlWYWx1ZVxuICAgICAgICB9XG4gICAgKTtcblxuICAgIHJldHVybiBjb21wb25lbnQ7XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWRlc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V4cG9ydC9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsL2NvbXBvbmVudC1kZXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQXlFO0FBS3pFLFNBQWdCLHFCQUFxQixDQUNuQyxHQUFlLEVBQ2YsV0FBdUQ7SUFFdkQsTUFBTSxtQkFBbUIsR0FBd0IsR0FBMEIsQ0FBQztJQUU1RSxNQUFNLFNBQVMsR0FBRyxJQUFJLHVCQUFTLENBQzdCLG1CQUFtQixDQUFDLElBQUksRUFDeEIsbUJBQW1CLENBQUMsSUFBSSxFQUN4QjtRQUNFLE9BQU8sRUFBRSxtQkFBbUIsYUFBbkIsbUJBQW1CLHVCQUFuQixtQkFBbUIsQ0FBRSxPQUFPO1FBQ3JDLFVBQVUsRUFBRSxXQUFXLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUEyQjtLQUNsRixDQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBaEJELHNEQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL2luZnJhLW1vZGVsJztcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC9zZXJpYWxpemVkLWNvbXBvbmVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb25lbnREZXNlcmlhbGl6ZXIoXG4gIG9iajogU2VyaWFsaXplZCxcbiAgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gSlNPTlNlcmlhbGl6YWJsZSxcbik6IEpTT05TZXJpYWxpemFibGUge1xuICBjb25zdCBzZXJpYWxpemVkQ29tcG9uZW50OiBTZXJpYWxpemVkQ29tcG9uZW50ID0gb2JqIGFzIFNlcmlhbGl6ZWRDb21wb25lbnQ7XG5cbiAgY29uc3QgY29tcG9uZW50ID0gbmV3IENvbXBvbmVudChcbiAgICBzZXJpYWxpemVkQ29tcG9uZW50Lm5hbWUsXG4gICAgc2VyaWFsaXplZENvbXBvbmVudC50eXBlLFxuICAgIHtcbiAgICAgIHN1YnR5cGU6IHNlcmlhbGl6ZWRDb21wb25lbnQ/LnN1YnR5cGUsXG4gICAgICBwcm9wZXJ0aWVzOiBkZXNlcmlhbGl6ZShzZXJpYWxpemVkQ29tcG9uZW50LnByb3BlcnRpZXMpIGFzIENvbXBvbmVudFByb3BlcnR5VmFsdWUsXG4gICAgfSxcbiAgKTtcblxuICByZXR1cm4gY29tcG9uZW50O1xufSJdfQ==

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export declare function componentPropertyArrayDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -4,0 +4,0 @@ export declare function componentPropertyRecordDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -13,3 +13,4 @@ "use strict";

const serializedComponentProperty = obj;
return new infra_model_1.ComponentPropertyRecord(utils_1.fromEntries(Object.entries(serializedComponentProperty.value).map(([k, v]) => [k, deserialize(v)])), serializedComponentProperty.componentUpdateType);
return new infra_model_1.ComponentPropertyRecord(utils_1.fromEntries(Object.entries(serializedComponentProperty.value)
.map(([k, v]) => [k, deserialize(v)])), serializedComponentProperty.componentUpdateType);
}

@@ -26,2 +27,2 @@ exports.componentPropertyRecordDeserializer = componentPropertyRecordDeserializer;

exports.componentPropertyEmptyDeserializer = componentPropertyEmptyDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXByb3BlcnR5LWRlc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V4cG9ydC9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsL2NvbXBvbmVudC1wcm9wZXJ0eS1kZXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQW1LO0FBQ25LLDBDQUE2QztBQUs3QyxTQUFnQixrQ0FBa0MsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDdkgsTUFBTSwyQkFBMkIsR0FBRyxHQUF1QyxDQUFDO0lBRTVFLE9BQU8sSUFBSSxvQ0FBc0IsQ0FDN0IsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQTJCLENBQUMsRUFDcEYsMkJBQTJCLENBQUMsbUJBQW1CLENBQ2xELENBQUM7QUFDTixDQUFDO0FBUEQsZ0ZBT0M7QUFFRCxTQUFnQixtQ0FBbUMsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDeEgsTUFBTSwyQkFBMkIsR0FBRyxHQUF3QyxDQUFDO0lBRTdFLE9BQU8sSUFBSSxxQ0FBdUIsQ0FDOUIsbUJBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUEyQixDQUFDLENBQUMsQ0FBQyxFQUM1SCwyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FDbEQsQ0FBQztBQUNOLENBQUM7QUFQRCxrRkFPQztBQUVELFNBQWdCLHNDQUFzQyxDQUFDLEdBQWU7SUFDbEUsTUFBTSwyQkFBMkIsR0FBRyxHQUEyQyxDQUFDO0lBRWhGLE9BQU8sSUFBSSx3Q0FBMEIsQ0FDakMsMkJBQTJCLENBQUMsS0FBSyxFQUNqQywyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FDbEQsQ0FBQztBQUNOLENBQUM7QUFQRCx3RkFPQztBQUVELFNBQWdCLGtDQUFrQztJQUM5QyxPQUFPLElBQUksb0NBQXNCLEVBQUUsQ0FBQztBQUN4QyxDQUFDO0FBRkQsZ0ZBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLCBDb21wb25lbnRQcm9wZXJ0eUFycmF5LCBDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSwgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQsIEVtcHR5Q29tcG9uZW50UHJvcGVydHkgfSBmcm9tIFwiLi4vLi4vLi4vaW5mcmEtbW9kZWxcIjtcbmltcG9ydCB7IGZyb21FbnRyaWVzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemVkIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tIFwiLi4vLi4vanNvbi1zZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlBcnJheSwgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlLCBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlSZWNvcmQgfSBmcm9tIFwiLi4vLi4vc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtY29tcG9uZW50LXByb3BlcnR5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb25lbnRQcm9wZXJ0eUFycmF5RGVzZXJpYWxpemVyKG9iajogU2VyaWFsaXplZCwgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gSlNPTlNlcmlhbGl6YWJsZSk6IEpTT05TZXJpYWxpemFibGUge1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eSA9IG9iaiBhcyBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlBcnJheTtcblxuICAgIHJldHVybiBuZXcgQ29tcG9uZW50UHJvcGVydHlBcnJheShcbiAgICAgICAgc2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5LnZhbHVlLm1hcCh2ID0+IGRlc2VyaWFsaXplKHYpIGFzIENvbXBvbmVudFByb3BlcnR5VmFsdWUpLFxuICAgICAgICBzZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHkuY29tcG9uZW50VXBkYXRlVHlwZVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wb25lbnRQcm9wZXJ0eVJlY29yZERlc2VyaWFsaXplcihvYmo6IFNlcmlhbGl6ZWQsIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBjb25zdCBzZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHkgPSBvYmogYXMgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UmVjb3JkO1xuXG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnRQcm9wZXJ0eVJlY29yZChcbiAgICAgICAgZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoc2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5LnZhbHVlKS5tYXAoKFtrLHZdKSA9PiBbaywgZGVzZXJpYWxpemUodikgYXMgQ29tcG9uZW50UHJvcGVydHlWYWx1ZV0pKSxcbiAgICAgICAgc2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5LmNvbXBvbmVudFVwZGF0ZVR5cGVcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9uZW50UHJvcGVydHlQcmltaXRpdmVEZXNlcmlhbGl6ZXIob2JqOiBTZXJpYWxpemVkKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5ID0gb2JqIGFzIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZTtcblxuICAgIHJldHVybiBuZXcgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUoXG4gICAgICAgIHNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eS52YWx1ZSxcbiAgICAgICAgc2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5LmNvbXBvbmVudFVwZGF0ZVR5cGVcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9uZW50UHJvcGVydHlFbXB0eURlc2VyaWFsaXplcigpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgICByZXR1cm4gbmV3IEVtcHR5Q29tcG9uZW50UHJvcGVydHkoKTtcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXByb3BlcnR5LWRlc2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V4cG9ydC9kZXNlcmlhbGl6ZXJzL2luZnJhLW1vZGVsL2NvbXBvbmVudC1wcm9wZXJ0eS1kZXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQW1LO0FBQ25LLDBDQUE2QztBQUs3QyxTQUFnQixrQ0FBa0MsQ0FDaEQsR0FBZSxFQUNmLFdBQXVEO0lBRXZELE1BQU0sMkJBQTJCLEdBQUcsR0FBdUMsQ0FBQztJQUU1RSxPQUFPLElBQUksb0NBQXNCLENBQy9CLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUEyQixDQUFDLEVBQ3BGLDJCQUEyQixDQUFDLG1CQUFtQixDQUNoRCxDQUFDO0FBQ0osQ0FBQztBQVZELGdGQVVDO0FBRUQsU0FBZ0IsbUNBQW1DLENBQ2pELEdBQWUsRUFDZixXQUF1RDtJQUV2RCxNQUFNLDJCQUEyQixHQUFHLEdBQXdDLENBQUM7SUFFN0UsT0FBTyxJQUFJLHFDQUF1QixDQUNoQyxtQkFBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDO1NBQzFELEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUEyQixDQUFDLENBQUMsQ0FBQyxFQUNqRSwyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FDaEQsQ0FBQztBQUNKLENBQUM7QUFYRCxrRkFXQztBQUVELFNBQWdCLHNDQUFzQyxDQUFDLEdBQWU7SUFDcEUsTUFBTSwyQkFBMkIsR0FBRyxHQUEyQyxDQUFDO0lBRWhGLE9BQU8sSUFBSSx3Q0FBMEIsQ0FDbkMsMkJBQTJCLENBQUMsS0FBSyxFQUNqQywyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FDaEQsQ0FBQztBQUNKLENBQUM7QUFQRCx3RkFPQztBQUVELFNBQWdCLGtDQUFrQztJQUNoRCxPQUFPLElBQUksb0NBQXNCLEVBQUUsQ0FBQztBQUN0QyxDQUFDO0FBRkQsZ0ZBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLCBDb21wb25lbnRQcm9wZXJ0eUFycmF5LCBDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSwgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQsIEVtcHR5Q29tcG9uZW50UHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9pbmZyYS1tb2RlbCc7XG5pbXBvcnQgeyBmcm9tRW50cmllcyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5QXJyYXksIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSwgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UmVjb3JkIH0gZnJvbSAnLi4vLi4vc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtY29tcG9uZW50LXByb3BlcnR5JztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudFByb3BlcnR5QXJyYXlEZXNlcmlhbGl6ZXIoXG4gIG9iajogU2VyaWFsaXplZCxcbiAgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gSlNPTlNlcmlhbGl6YWJsZSxcbik6IEpTT05TZXJpYWxpemFibGUge1xuICBjb25zdCBzZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHkgPSBvYmogYXMgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5QXJyYXk7XG5cbiAgcmV0dXJuIG5ldyBDb21wb25lbnRQcm9wZXJ0eUFycmF5KFxuICAgIHNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eS52YWx1ZS5tYXAodiA9PiBkZXNlcmlhbGl6ZSh2KSBhcyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlKSxcbiAgICBzZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHkuY29tcG9uZW50VXBkYXRlVHlwZSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudFByb3BlcnR5UmVjb3JkRGVzZXJpYWxpemVyKFxuICBvYmo6IFNlcmlhbGl6ZWQsXG4gIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUsXG4pOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgY29uc3Qgc2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5ID0gb2JqIGFzIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eVJlY29yZDtcblxuICByZXR1cm4gbmV3IENvbXBvbmVudFByb3BlcnR5UmVjb3JkKFxuICAgIGZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eS52YWx1ZSlcbiAgICAgIC5tYXAoKFtrLHZdKSA9PiBbaywgZGVzZXJpYWxpemUodikgYXMgQ29tcG9uZW50UHJvcGVydHlWYWx1ZV0pKSxcbiAgICBzZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHkuY29tcG9uZW50VXBkYXRlVHlwZSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlRGVzZXJpYWxpemVyKG9iajogU2VyaWFsaXplZCk6IEpTT05TZXJpYWxpemFibGUge1xuICBjb25zdCBzZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHkgPSBvYmogYXMgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlO1xuXG4gIHJldHVybiBuZXcgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUoXG4gICAgc2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5LnZhbHVlLFxuICAgIHNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eS5jb21wb25lbnRVcGRhdGVUeXBlLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcG9uZW50UHJvcGVydHlFbXB0eURlc2VyaWFsaXplcigpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgcmV0dXJuIG5ldyBFbXB0eUNvbXBvbmVudFByb3BlcnR5KCk7XG59Il19

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export declare function dependencyRelationshipDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -11,3 +11,3 @@ "use strict";

targetAttributePath: serializedDependencyRelationship.targetAttributePath,
sourcePropertyPath: serializedDependencyRelationship.sourcePropertyPath
sourcePropertyPath: serializedDependencyRelationship.sourcePropertyPath,
});

@@ -18,2 +18,2 @@ source.addOutgoing(relationship);

exports.dependencyRelationshipDeserializer = dependencyRelationshipDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeS1yZWxhdGlvbnNoaXAtZGVzZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwvZGVwZW5kZW5jeS1yZWxhdGlvbnNoaXAtZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUF5RTtBQUt6RSxTQUFnQixrQ0FBa0MsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDdkgsTUFBTSxnQ0FBZ0MsR0FBRyxHQUF1QyxDQUFDO0lBRWpGLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQWMsQ0FBQztJQUNqRixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFjLENBQUM7SUFFakYsTUFBTSxZQUFZLEdBQUcsSUFBSSxvQ0FBc0IsQ0FDM0MsTUFBTSxFQUNOLE1BQU0sRUFDTixnQ0FBZ0MsQ0FBQyxJQUFJLEVBQ3JDO1FBQ0ksbUJBQW1CLEVBQUUsZ0NBQWdDLENBQUMsbUJBQW1CO1FBQ3pFLGtCQUFrQixFQUFFLGdDQUFnQyxDQUFDLGtCQUFrQjtLQUMxRSxDQUNKLENBQUM7SUFFRixNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUM7QUFuQkQsZ0ZBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXBlbmRlbmN5UmVsYXRpb25zaGlwIH0gZnJvbSBcIi4uLy4uLy4uL2luZnJhLW1vZGVsXCI7XG5pbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemVkIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tIFwiLi4vLi4vanNvbi1zZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVkRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCB9IGZyb20gXCIuLi8uLi9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1yZWxhdGlvbnNoaXBcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGRlcGVuZGVuY3lSZWxhdGlvbnNoaXBEZXNlcmlhbGl6ZXIob2JqOiBTZXJpYWxpemVkLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZERlcGVuZGVuY3lSZWxhdGlvbnNoaXAgPSBvYmogYXMgU2VyaWFsaXplZERlcGVuZGVuY3lSZWxhdGlvbnNoaXA7XG5cbiAgICBjb25zdCB0YXJnZXQgPSBkZXNlcmlhbGl6ZShzZXJpYWxpemVkRGVwZW5kZW5jeVJlbGF0aW9uc2hpcC50YXJnZXQpIGFzIENvbXBvbmVudDtcbiAgICBjb25zdCBzb3VyY2UgPSBkZXNlcmlhbGl6ZShzZXJpYWxpemVkRGVwZW5kZW5jeVJlbGF0aW9uc2hpcC5zb3VyY2UpIGFzIENvbXBvbmVudDtcblxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcCA9IG5ldyBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgc2VyaWFsaXplZERlcGVuZGVuY3lSZWxhdGlvbnNoaXAudHlwZSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGFyZ2V0QXR0cmlidXRlUGF0aDogc2VyaWFsaXplZERlcGVuZGVuY3lSZWxhdGlvbnNoaXAudGFyZ2V0QXR0cmlidXRlUGF0aCxcbiAgICAgICAgICAgIHNvdXJjZVByb3BlcnR5UGF0aDogc2VyaWFsaXplZERlcGVuZGVuY3lSZWxhdGlvbnNoaXAuc291cmNlUHJvcGVydHlQYXRoXG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgc291cmNlLmFkZE91dGdvaW5nKHJlbGF0aW9uc2hpcCk7XG5cbiAgICByZXR1cm4gcmVsYXRpb25zaGlwO1xufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeS1yZWxhdGlvbnNoaXAtZGVzZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwvZGVwZW5kZW5jeS1yZWxhdGlvbnNoaXAtZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUF5RTtBQUt6RSxTQUFnQixrQ0FBa0MsQ0FDaEQsR0FBZSxFQUNmLFdBQXVEO0lBRXZELE1BQU0sZ0NBQWdDLEdBQUcsR0FBdUMsQ0FBQztJQUVqRixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFjLENBQUM7SUFDakYsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBYyxDQUFDO0lBRWpGLE1BQU0sWUFBWSxHQUFHLElBQUksb0NBQXNCLENBQzdDLE1BQU0sRUFDTixNQUFNLEVBQ04sZ0NBQWdDLENBQUMsSUFBSSxFQUNyQztRQUNFLG1CQUFtQixFQUFFLGdDQUFnQyxDQUFDLG1CQUFtQjtRQUN6RSxrQkFBa0IsRUFBRSxnQ0FBZ0MsQ0FBQyxrQkFBa0I7S0FDeEUsQ0FDRixDQUFDO0lBRUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVqQyxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBdEJELGdGQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCB9IGZyb20gJy4uLy4uLy4uL2luZnJhLW1vZGVsJztcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU2VyaWFsaXplZERlcGVuZGVuY3lSZWxhdGlvbnNoaXAgfSBmcm9tICcuLi8uLi9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1yZWxhdGlvbnNoaXAnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jeVJlbGF0aW9uc2hpcERlc2VyaWFsaXplcihcbiAgb2JqOiBTZXJpYWxpemVkLFxuICBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlLFxuKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gIGNvbnN0IHNlcmlhbGl6ZWREZXBlbmRlbmN5UmVsYXRpb25zaGlwID0gb2JqIGFzIFNlcmlhbGl6ZWREZXBlbmRlbmN5UmVsYXRpb25zaGlwO1xuXG4gIGNvbnN0IHRhcmdldCA9IGRlc2VyaWFsaXplKHNlcmlhbGl6ZWREZXBlbmRlbmN5UmVsYXRpb25zaGlwLnRhcmdldCkgYXMgQ29tcG9uZW50O1xuICBjb25zdCBzb3VyY2UgPSBkZXNlcmlhbGl6ZShzZXJpYWxpemVkRGVwZW5kZW5jeVJlbGF0aW9uc2hpcC5zb3VyY2UpIGFzIENvbXBvbmVudDtcblxuICBjb25zdCByZWxhdGlvbnNoaXAgPSBuZXcgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcChcbiAgICBzb3VyY2UsXG4gICAgdGFyZ2V0LFxuICAgIHNlcmlhbGl6ZWREZXBlbmRlbmN5UmVsYXRpb25zaGlwLnR5cGUsXG4gICAge1xuICAgICAgdGFyZ2V0QXR0cmlidXRlUGF0aDogc2VyaWFsaXplZERlcGVuZGVuY3lSZWxhdGlvbnNoaXAudGFyZ2V0QXR0cmlidXRlUGF0aCxcbiAgICAgIHNvdXJjZVByb3BlcnR5UGF0aDogc2VyaWFsaXplZERlcGVuZGVuY3lSZWxhdGlvbnNoaXAuc291cmNlUHJvcGVydHlQYXRoLFxuICAgIH0sXG4gICk7XG5cbiAgc291cmNlLmFkZE91dGdvaW5nKHJlbGF0aW9uc2hpcCk7XG5cbiAgcmV0dXJuIHJlbGF0aW9uc2hpcDtcbn0iXX0=

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export declare function infraModelDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -10,2 +10,2 @@ "use strict";

exports.infraModelDeserializer = infraModelDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwtZGVzZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwvaW5mcmEtbW9kZWwtZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUEyRTtBQUszRSxTQUFnQixzQkFBc0IsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDM0csTUFBTSxvQkFBb0IsR0FBRyxHQUEyQixDQUFDO0lBRXpELE9BQU8sSUFBSSx3QkFBVSxDQUNqQixvQkFBb0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBYyxDQUFDLEVBQ3JFLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFpQixDQUFDLENBQzlFLENBQUM7QUFDTixDQUFDO0FBUEQsd0RBT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluZnJhTW9kZWwsIFJlbGF0aW9uc2hpcCB9IGZyb20gXCIuLi8uLi8uLi9pbmZyYS1tb2RlbFwiO1xuaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgU2VyaWFsaXplZEluZnJhTW9kZWwgfSBmcm9tIFwiLi4vLi4vc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtaW5mcmEtbW9kZWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGluZnJhTW9kZWxEZXNlcmlhbGl6ZXIob2JqOiBTZXJpYWxpemVkLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZEluZnJhTW9kZWwgPSBvYmogYXMgU2VyaWFsaXplZEluZnJhTW9kZWw7XG5cbiAgICByZXR1cm4gbmV3IEluZnJhTW9kZWwoXG4gICAgICAgIHNlcmlhbGl6ZWRJbmZyYU1vZGVsLmNvbXBvbmVudHMubWFwKGMgPT4gZGVzZXJpYWxpemUoYykgYXMgQ29tcG9uZW50KSxcbiAgICAgICAgc2VyaWFsaXplZEluZnJhTW9kZWwucmVsYXRpb25zaGlwcy5tYXAociA9PiBkZXNlcmlhbGl6ZShyKSBhcyBSZWxhdGlvbnNoaXApLFxuICAgICk7XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwtZGVzZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwvaW5mcmEtbW9kZWwtZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUEyRTtBQUszRSxTQUFnQixzQkFBc0IsQ0FDcEMsR0FBZSxFQUNmLFdBQXVEO0lBRXZELE1BQU0sb0JBQW9CLEdBQUcsR0FBMkIsQ0FBQztJQUV6RCxPQUFPLElBQUksd0JBQVUsQ0FDbkIsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQWMsQ0FBQyxFQUNyRSxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBaUIsQ0FBQyxDQUM1RSxDQUFDO0FBQ0osQ0FBQztBQVZELHdEQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmZyYU1vZGVsLCBSZWxhdGlvbnNoaXAgfSBmcm9tICcuLi8uLi8uLi9pbmZyYS1tb2RlbCc7XG5pbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemVkIH0gZnJvbSAnLi4vLi4vanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSAnLi4vLi4vanNvbi1zZXJpYWxpemVyJztcbmltcG9ydCB7IFNlcmlhbGl6ZWRJbmZyYU1vZGVsIH0gZnJvbSAnLi4vLi4vc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtaW5mcmEtbW9kZWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5mcmFNb2RlbERlc2VyaWFsaXplcihcbiAgb2JqOiBTZXJpYWxpemVkLFxuICBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlLFxuKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gIGNvbnN0IHNlcmlhbGl6ZWRJbmZyYU1vZGVsID0gb2JqIGFzIFNlcmlhbGl6ZWRJbmZyYU1vZGVsO1xuXG4gIHJldHVybiBuZXcgSW5mcmFNb2RlbChcbiAgICBzZXJpYWxpemVkSW5mcmFNb2RlbC5jb21wb25lbnRzLm1hcChjID0+IGRlc2VyaWFsaXplKGMpIGFzIENvbXBvbmVudCksXG4gICAgc2VyaWFsaXplZEluZnJhTW9kZWwucmVsYXRpb25zaGlwcy5tYXAociA9PiBkZXNlcmlhbGl6ZShyKSBhcyBSZWxhdGlvbnNoaXApLFxuICApO1xufSJdfQ==

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { JSONSerializable, Serialized } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export declare function structuralRelationshipDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => JSONSerializable): JSONSerializable;

@@ -14,2 +14,2 @@ "use strict";

exports.structuralRelationshipDeserializer = structuralRelationshipDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJhbC1yZWxhdGlvbnNoaXAtZGVzZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwvc3RydWN0dXJhbC1yZWxhdGlvbnNoaXAtZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUF5RTtBQUt6RSxTQUFnQixrQ0FBa0MsQ0FBQyxHQUFlLEVBQUUsV0FBdUQ7SUFDdkgsTUFBTSxnQ0FBZ0MsR0FBRyxHQUE2QixDQUFDO0lBRXZFLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxnQ0FBZ0MsQ0FBQyxNQUFNLENBQWMsQ0FBQztJQUNqRixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFjLENBQUM7SUFFakYsTUFBTSxZQUFZLEdBQUcsSUFBSSxvQ0FBc0IsQ0FDM0MsTUFBTSxFQUNOLE1BQU0sRUFDTixnQ0FBZ0MsQ0FBQyxJQUFJLENBQ3hDLENBQUM7SUFFRixNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWpDLE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUM7QUFmRCxnRkFlQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCB9IGZyb20gXCIuLi8uLi8uLi9pbmZyYS1tb2RlbFwiO1xuaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgU2VyaWFsaXplZFJlbGF0aW9uc2hpcCB9IGZyb20gXCIuLi8uLi9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1yZWxhdGlvbnNoaXBcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHN0cnVjdHVyYWxSZWxhdGlvbnNoaXBEZXNlcmlhbGl6ZXIob2JqOiBTZXJpYWxpemVkLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBKU09OU2VyaWFsaXphYmxlKTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gICAgY29uc3Qgc2VyaWFsaXplZFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAgPSBvYmogYXMgU2VyaWFsaXplZFJlbGF0aW9uc2hpcDtcblxuICAgIGNvbnN0IHRhcmdldCA9IGRlc2VyaWFsaXplKHNlcmlhbGl6ZWRTdHJ1Y3R1cmFsUmVsYXRpb25zaGlwLnRhcmdldCkgYXMgQ29tcG9uZW50O1xuICAgIGNvbnN0IHNvdXJjZSA9IGRlc2VyaWFsaXplKHNlcmlhbGl6ZWRTdHJ1Y3R1cmFsUmVsYXRpb25zaGlwLnNvdXJjZSkgYXMgQ29tcG9uZW50O1xuXG4gICAgY29uc3QgcmVsYXRpb25zaGlwID0gbmV3IFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAoXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBzZXJpYWxpemVkU3RydWN0dXJhbFJlbGF0aW9uc2hpcC50eXBlXG4gICAgKTtcblxuICAgIHNvdXJjZS5hZGRPdXRnb2luZyhyZWxhdGlvbnNoaXApO1xuXG4gICAgcmV0dXJuIHJlbGF0aW9uc2hpcDtcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJhbC1yZWxhdGlvbnNoaXAtZGVzZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L2Rlc2VyaWFsaXplcnMvaW5mcmEtbW9kZWwvc3RydWN0dXJhbC1yZWxhdGlvbnNoaXAtZGVzZXJpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUF5RTtBQUt6RSxTQUFnQixrQ0FBa0MsQ0FDaEQsR0FBZSxFQUNmLFdBQXVEO0lBRXZELE1BQU0sZ0NBQWdDLEdBQUcsR0FBNkIsQ0FBQztJQUV2RSxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsTUFBTSxDQUFjLENBQUM7SUFDakYsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBYyxDQUFDO0lBRWpGLE1BQU0sWUFBWSxHQUFHLElBQUksb0NBQXNCLENBQzdDLE1BQU0sRUFDTixNQUFNLEVBQ04sZ0NBQWdDLENBQUMsSUFBSSxDQUN0QyxDQUFDO0lBRUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVqQyxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBbEJELGdGQWtCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCB9IGZyb20gJy4uLy4uLy4uL2luZnJhLW1vZGVsJztcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU2VyaWFsaXplZFJlbGF0aW9uc2hpcCB9IGZyb20gJy4uLy4uL3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC9zZXJpYWxpemVkLXJlbGF0aW9uc2hpcCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJ1Y3R1cmFsUmVsYXRpb25zaGlwRGVzZXJpYWxpemVyKFxuICBvYmo6IFNlcmlhbGl6ZWQsXG4gIGRlc2VyaWFsaXplOiAob2JqOiBTZXJpYWxpemF0aW9uSUQpID0+IEpTT05TZXJpYWxpemFibGUsXG4pOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgY29uc3Qgc2VyaWFsaXplZFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAgPSBvYmogYXMgU2VyaWFsaXplZFJlbGF0aW9uc2hpcDtcblxuICBjb25zdCB0YXJnZXQgPSBkZXNlcmlhbGl6ZShzZXJpYWxpemVkU3RydWN0dXJhbFJlbGF0aW9uc2hpcC50YXJnZXQpIGFzIENvbXBvbmVudDtcbiAgY29uc3Qgc291cmNlID0gZGVzZXJpYWxpemUoc2VyaWFsaXplZFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAuc291cmNlKSBhcyBDb21wb25lbnQ7XG5cbiAgY29uc3QgcmVsYXRpb25zaGlwID0gbmV3IFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAoXG4gICAgc291cmNlLFxuICAgIHRhcmdldCxcbiAgICBzZXJpYWxpemVkU3RydWN0dXJhbFJlbGF0aW9uc2hpcC50eXBlLFxuICApO1xuXG4gIHNvdXJjZS5hZGRPdXRnb2luZyhyZWxhdGlvbnNoaXApO1xuXG4gIHJldHVybiByZWxhdGlvbnNoaXA7XG59Il19

@@ -1,3 +0,3 @@

import { JSONSerializable, Serialized } from "../json-serializable";
import { SerializationID } from "../json-serializer";
import { JSONSerializable, Serialized } from '../json-serializable';
import { SerializationID } from '../json-serializer';
export declare function transitionDeserializer(obj: Serialized, deserialize: (obj: SerializationID) => any): JSONSerializable;

@@ -14,2 +14,2 @@ "use strict";

exports.transitionDeserializer = transitionDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbi1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy90cmFuc2l0aW9uLWRlc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBaUQ7QUFLakQsU0FBZ0Isc0JBQXNCLENBQUMsR0FBZSxFQUFFLFdBQTBDO0lBQzlGLE1BQU0sVUFBVSxHQUFHLEdBQTJCLENBQUM7SUFFL0MsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQWdELEVBQUUsRUFBRSxDQUM1RSxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUd2RSxPQUFPLElBQUksMEJBQVUsQ0FBQztRQUNsQixFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ2pFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDcEUsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQVhELHdEQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gXCIuLi8uLi9tb2RlbC1kaWZmaW5nXCI7XG5pbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemVkIH0gZnJvbSBcIi4uL2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tIFwiLi4vanNvbi1zZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVkVHJhbnNpdGlvbiB9IGZyb20gXCIuLi9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwtZGlmZi9zZXJpYWxpemVkLXRyYW5zaXRpb25cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zaXRpb25EZXNlcmlhbGl6ZXIob2JqOiBTZXJpYWxpemVkLCBkZXNlcmlhbGl6ZTogKG9iajogU2VyaWFsaXphdGlvbklEKSA9PiBhbnkpOiBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gb2JqIGFzIFNlcmlhbGl6ZWRUcmFuc2l0aW9uO1xuXG4gICAgY29uc3QgZGVzZXJpYWxpemVWZXJzaW9uID0gKHZlcnNpb246ICBTZXJpYWxpemF0aW9uSUQgfCB7dmFsdWU6IFNlcmlhbGl6ZWQgfSkgPT5cbiAgICAgICAgdHlwZW9mIHZlcnNpb24gPT09ICdvYmplY3QnID8gdmVyc2lvbi52YWx1ZSA6IGRlc2VyaWFsaXplKHZlcnNpb24pO1xuICAgIFxuXG4gICAgcmV0dXJuIG5ldyBUcmFuc2l0aW9uKHtcbiAgICAgICAgdjE6IHNlcmlhbGl6ZWQudjEgPyBkZXNlcmlhbGl6ZVZlcnNpb24oc2VyaWFsaXplZC52MSkgOiB1bmRlZmluZWQsXG4gICAgICAgIHYyOiBzZXJpYWxpemVkLnYyID8gZGVzZXJpYWxpemVWZXJzaW9uKHNlcmlhbGl6ZWQudjIpIDogdW5kZWZpbmVkLFxuICAgIH0pO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbi1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9leHBvcnQvZGVzZXJpYWxpemVycy90cmFuc2l0aW9uLWRlc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBaUQ7QUFLakQsU0FBZ0Isc0JBQXNCLENBQUMsR0FBZSxFQUFFLFdBQTBDO0lBQ2hHLE1BQU0sVUFBVSxHQUFHLEdBQTJCLENBQUM7SUFFL0MsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQWdELEVBQUUsRUFBRSxDQUM5RSxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUdyRSxPQUFPLElBQUksMEJBQVUsQ0FBQztRQUNwQixFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ2pFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7S0FDbEUsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQVhELHdEQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsLWRpZmZpbmcnO1xuaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gJy4uL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4uL2pzb24tc2VyaWFsaXplcic7XG5pbXBvcnQgeyBTZXJpYWxpemVkVHJhbnNpdGlvbiB9IGZyb20gJy4uL3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtdHJhbnNpdGlvbic7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2l0aW9uRGVzZXJpYWxpemVyKG9iajogU2VyaWFsaXplZCwgZGVzZXJpYWxpemU6IChvYmo6IFNlcmlhbGl6YXRpb25JRCkgPT4gYW55KTogSlNPTlNlcmlhbGl6YWJsZSB7XG4gIGNvbnN0IHNlcmlhbGl6ZWQgPSBvYmogYXMgU2VyaWFsaXplZFRyYW5zaXRpb247XG5cbiAgY29uc3QgZGVzZXJpYWxpemVWZXJzaW9uID0gKHZlcnNpb246ICBTZXJpYWxpemF0aW9uSUQgfCB7dmFsdWU6IFNlcmlhbGl6ZWQgfSkgPT5cbiAgICB0eXBlb2YgdmVyc2lvbiA9PT0gJ29iamVjdCcgPyB2ZXJzaW9uLnZhbHVlIDogZGVzZXJpYWxpemUodmVyc2lvbik7XG5cblxuICByZXR1cm4gbmV3IFRyYW5zaXRpb24oe1xuICAgIHYxOiBzZXJpYWxpemVkLnYxID8gZGVzZXJpYWxpemVWZXJzaW9uKHNlcmlhbGl6ZWQudjEpIDogdW5kZWZpbmVkLFxuICAgIHYyOiBzZXJpYWxpemVkLnYyID8gZGVzZXJpYWxpemVWZXJzaW9uKHNlcmlhbGl6ZWQudjIpIDogdW5kZWZpbmVkLFxuICB9KTtcbn1cbiJdfQ==

@@ -12,6 +12,6 @@ "use strict";

if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
throw Error("Cannot deserialize string as it does not represent an object");
throw Error('Cannot deserialize string as it does not represent an object');
}
else if (typeof obj.entryPointId !== 'number') {
throw Error("Cannot deserialize: entry point id not found");
throw Error('Cannot deserialize: entry point id not found');
}

@@ -25,3 +25,3 @@ this.objects = obj.objects;

if (this.objects.length <= id) {
throw Error("SerializationID could not be found");
throw Error('SerializationID could not be found');
}

@@ -38,2 +38,2 @@ const objectDeserializer = deserializer_mapping_1.classToDeserializer[this.objects[id].class];

exports.JSONDeserializer = JSONDeserializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leHBvcnQvanNvbi1kZXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsaUVBQTZEO0FBRzdELE1BQWEsZ0JBQWdCO0lBQTdCO1FBRXFCLHdCQUFtQixHQUE4QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBZ0NoRixDQUFDO0lBN0JVLFdBQVcsQ0FBQyxHQUFXO1FBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBRyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQzdELE1BQU0sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7U0FDL0U7YUFBTSxJQUFHLE9BQU8sR0FBRyxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUM7WUFDM0MsTUFBTSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUMvRDtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFNLENBQUM7SUFDekQsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEVBQW1CO1FBQ3pDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbEQsSUFBRyxDQUFDLFVBQVUsRUFBQztZQUNYLElBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFDO2dCQUN6QixNQUFNLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2FBQ3JEO1lBRUQsTUFBTSxrQkFBa0IsR0FBRywwQ0FBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLElBQUcsQ0FBQyxrQkFBa0I7Z0JBQ2xCLE1BQU0sS0FBSyxDQUFDLGlDQUFpQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssb0JBQW9CLENBQUMsQ0FBQztZQUc3RixVQUFVLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztDQUNKO0FBbENELDRDQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4vanNvbi1zZXJpYWxpemVyJztcbmltcG9ydCB7IGNsYXNzVG9EZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplci1tYXBwaW5nJztcblxuXG5leHBvcnQgY2xhc3MgSlNPTkRlc2VyaWFsaXplcjxUIGV4dGVuZHMgSlNPTlNlcmlhbGl6YWJsZT4ge1xuICAgIFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzZXJpYWxpemVkT2JqZWN0czogTWFwPFNlcmlhbGl6YXRpb25JRCwgYW55PiA9IG5ldyBNYXAoKTtcbiAgICBwcml2YXRlIG9iamVjdHM6IHtjbGFzczogc3RyaW5nLCBjb250ZW50OiBTZXJpYWxpemVkfVtdO1xuXG4gICAgcHVibGljIGRlc2VyaWFsaXplKHN0cjogc3RyaW5nKTogVCB7XG4gICAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgICAgICAgaWYodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsIHx8IEFycmF5LmlzQXJyYXkob2JqKSl7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcIkNhbm5vdCBkZXNlcmlhbGl6ZSBzdHJpbmcgYXMgaXQgZG9lcyBub3QgcmVwcmVzZW50IGFuIG9iamVjdFwiKTtcbiAgICAgICAgfSBlbHNlIGlmKHR5cGVvZiBvYmouZW50cnlQb2ludElkICE9PSAnbnVtYmVyJyl7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcIkNhbm5vdCBkZXNlcmlhbGl6ZTogZW50cnkgcG9pbnQgaWQgbm90IGZvdW5kXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2JqZWN0cyA9IG9iai5vYmplY3RzO1xuICAgICAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZU9iamVjdChvYmouZW50cnlQb2ludElkKSBhcyBUO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZXJpYWxpemVPYmplY3QoaWQ6IFNlcmlhbGl6YXRpb25JRCk6IEpTT05TZXJpYWxpemFibGUge1xuICAgICAgICBsZXQgY3JlYXRlZE9iaiA9IHRoaXMuZGVzZXJpYWxpemVkT2JqZWN0cy5nZXQoaWQpO1xuXG4gICAgICAgIGlmKCFjcmVhdGVkT2JqKXsgXG4gICAgICAgICAgICBpZih0aGlzLm9iamVjdHMubGVuZ3RoIDw9IGlkKXtcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcIlNlcmlhbGl6YXRpb25JRCBjb3VsZCBub3QgYmUgZm91bmRcIik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG9iamVjdERlc2VyaWFsaXplciA9IGNsYXNzVG9EZXNlcmlhbGl6ZXJbdGhpcy5vYmplY3RzW2lkXS5jbGFzc107XG4gICAgICAgICAgICBpZighb2JqZWN0RGVzZXJpYWxpemVyKVxuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGBPYmplY3QgZGVzZXJpYWxpemVyIGZvciBjbGFzcyAke3RoaXMub2JqZWN0c1tpZF0uY2xhc3N9IGlzIG5vdCBjb25maWd1cmVkYCk7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGNyZWF0ZWRPYmogPSBvYmplY3REZXNlcmlhbGl6ZXIodGhpcy5vYmplY3RzW2lkXS5jb250ZW50LCB0aGlzLmRlc2VyaWFsaXplT2JqZWN0LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgdGhpcy5kZXNlcmlhbGl6ZWRPYmplY3RzLnNldChpZCwgY3JlYXRlZE9iaik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRPYmo7XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1kZXNlcmlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leHBvcnQvanNvbi1kZXNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUVBQTZEO0FBSzdELE1BQWEsZ0JBQWdCO0lBQTdCO1FBRW1CLHdCQUFtQixHQUE4QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBZ0M5RSxDQUFDO0lBN0JRLFdBQVcsQ0FBQyxHQUFXO1FBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBRyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQy9ELE1BQU0sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7U0FDN0U7YUFBTSxJQUFHLE9BQU8sR0FBRyxDQUFDLFlBQVksS0FBSyxRQUFRLEVBQUM7WUFDN0MsTUFBTSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUM3RDtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFNLENBQUM7SUFDdkQsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEVBQW1CO1FBQzNDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbEQsSUFBRyxDQUFDLFVBQVUsRUFBQztZQUNiLElBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFDO2dCQUMzQixNQUFNLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO2FBQ25EO1lBRUQsTUFBTSxrQkFBa0IsR0FBRywwQ0FBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLElBQUcsQ0FBQyxrQkFBa0I7Z0JBQ3BCLE1BQU0sS0FBSyxDQUFDLGlDQUFpQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssb0JBQW9CLENBQUMsQ0FBQztZQUczRixVQUFVLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBbENELDRDQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYXNzVG9EZXNlcmlhbGl6ZXIgfSBmcm9tICcuL2Rlc2VyaWFsaXplci1tYXBwaW5nJztcbmltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4vanNvbi1zZXJpYWxpemVyJztcblxuXG5leHBvcnQgY2xhc3MgSlNPTkRlc2VyaWFsaXplcjxUIGV4dGVuZHMgSlNPTlNlcmlhbGl6YWJsZT4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzZXJpYWxpemVkT2JqZWN0czogTWFwPFNlcmlhbGl6YXRpb25JRCwgYW55PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBvYmplY3RzOiB7Y2xhc3M6IHN0cmluZywgY29udGVudDogU2VyaWFsaXplZH1bXTtcblxuICBwdWJsaWMgZGVzZXJpYWxpemUoc3RyOiBzdHJpbmcpOiBUIHtcbiAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKHN0cik7XG4gICAgaWYodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsIHx8IEFycmF5LmlzQXJyYXkob2JqKSl7XG4gICAgICB0aHJvdyBFcnJvcignQ2Fubm90IGRlc2VyaWFsaXplIHN0cmluZyBhcyBpdCBkb2VzIG5vdCByZXByZXNlbnQgYW4gb2JqZWN0Jyk7XG4gICAgfSBlbHNlIGlmKHR5cGVvZiBvYmouZW50cnlQb2ludElkICE9PSAnbnVtYmVyJyl7XG4gICAgICB0aHJvdyBFcnJvcignQ2Fubm90IGRlc2VyaWFsaXplOiBlbnRyeSBwb2ludCBpZCBub3QgZm91bmQnKTtcbiAgICB9XG4gICAgdGhpcy5vYmplY3RzID0gb2JqLm9iamVjdHM7XG4gICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemVPYmplY3Qob2JqLmVudHJ5UG9pbnRJZCkgYXMgVDtcbiAgfVxuXG4gIHByaXZhdGUgZGVzZXJpYWxpemVPYmplY3QoaWQ6IFNlcmlhbGl6YXRpb25JRCk6IEpTT05TZXJpYWxpemFibGUge1xuICAgIGxldCBjcmVhdGVkT2JqID0gdGhpcy5kZXNlcmlhbGl6ZWRPYmplY3RzLmdldChpZCk7XG5cbiAgICBpZighY3JlYXRlZE9iail7XG4gICAgICBpZih0aGlzLm9iamVjdHMubGVuZ3RoIDw9IGlkKXtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ1NlcmlhbGl6YXRpb25JRCBjb3VsZCBub3QgYmUgZm91bmQnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2JqZWN0RGVzZXJpYWxpemVyID0gY2xhc3NUb0Rlc2VyaWFsaXplclt0aGlzLm9iamVjdHNbaWRdLmNsYXNzXTtcbiAgICAgIGlmKCFvYmplY3REZXNlcmlhbGl6ZXIpXG4gICAgICAgIHRocm93IEVycm9yKGBPYmplY3QgZGVzZXJpYWxpemVyIGZvciBjbGFzcyAke3RoaXMub2JqZWN0c1tpZF0uY2xhc3N9IGlzIG5vdCBjb25maWd1cmVkYCk7XG5cblxuICAgICAgY3JlYXRlZE9iaiA9IG9iamVjdERlc2VyaWFsaXplcih0aGlzLm9iamVjdHNbaWRdLmNvbnRlbnQsIHRoaXMuZGVzZXJpYWxpemVPYmplY3QuYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLmRlc2VyaWFsaXplZE9iamVjdHMuc2V0KGlkLCBjcmVhdGVkT2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZWRPYmo7XG4gIH1cbn0iXX0=

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

import { SerializationID } from "./json-serializer";
import { SerializationID } from './json-serializer';
declare type SerializablePrimitive = string | number | boolean | undefined | null;

@@ -11,7 +11,7 @@ interface SerializedArray extends Array<Serialized> {

/**
* This method converts an object into a serializable object.
* Offers a callback to serialize its references.
* @param serializer Serializes a JSONSerializable inner instance and returns its serialized id
* @returns the serialized object
*/
* This method converts an object into a serializable object.
* Offers a callback to serialize its references.
* @param serializer Serializes a JSONSerializable inner instance and returns its serialized id
* @returns the serialized object
*/
toSerialized(serialize: (obj: JSONSerializable) => SerializationID, serializeCustom: (obj: any, serializationClass: string, serialized: Serialized) => SerializationID): Serialized;

@@ -18,0 +18,0 @@ getSerializationClass(): string;

@@ -10,2 +10,2 @@ "use strict";

exports.isJSONSerializable = isJSONSerializable;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zZXJpYWxpemFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leHBvcnQvanNvbi1zZXJpYWxpemFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0JBLFNBQWdCLGtCQUFrQixDQUFDLENBQU07SUFDckMsT0FBTyxPQUFPLENBQUMsQ0FBQyxZQUFZLEtBQUssVUFBVTtXQUNwQyxPQUFPLENBQUMsQ0FBQyxxQkFBcUIsS0FBSyxVQUFVO1dBQzdDLE9BQU8sQ0FBQyxDQUFDLHFCQUFxQixFQUFFLEtBQUssUUFBUSxDQUFDO0FBQ3pELENBQUM7QUFKRCxnREFJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gXCIuL2pzb24tc2VyaWFsaXplclwiO1xuXG50eXBlIFNlcmlhbGl6YWJsZVByaW1pdGl2ZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQgfCBudWxsO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuaW50ZXJmYWNlIFNlcmlhbGl6ZWRBcnJheSBleHRlbmRzIEFycmF5PFNlcmlhbGl6ZWQ+IHsgfVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZFJlY29yZCBleHRlbmRzIFJlY29yZDxudW1iZXIgfCBzdHJpbmcsIFNlcmlhbGl6ZWQ+IHsgfVxudHlwZSBTZXJpYWxpemVkQ29sbGVjdGlvbiA9IFNlcmlhbGl6ZWRBcnJheSB8IFNlcmlhbGl6ZWRSZWNvcmQ7XG5cbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWQgPSBTZXJpYWxpemFibGVQcmltaXRpdmUgfCBTZXJpYWxpemVkQ29sbGVjdGlvbjtcblxuZXhwb3J0IGludGVyZmFjZSBKU09OU2VyaWFsaXphYmxlIHtcbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCBjb252ZXJ0cyBhbiBvYmplY3QgaW50byBhIHNlcmlhbGl6YWJsZSBvYmplY3QuXG4gICAgICogT2ZmZXJzIGEgY2FsbGJhY2sgdG8gc2VyaWFsaXplIGl0cyByZWZlcmVuY2VzLlxuICAgICAqIEBwYXJhbSBzZXJpYWxpemVyIFNlcmlhbGl6ZXMgYSBKU09OU2VyaWFsaXphYmxlIGlubmVyIGluc3RhbmNlIGFuZCByZXR1cm5zIGl0cyBzZXJpYWxpemVkIGlkXG4gICAgICogQHJldHVybnMgdGhlIHNlcmlhbGl6ZWQgb2JqZWN0XG4gICAgICovXG4gICAgdG9TZXJpYWxpemVkKHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gU2VyaWFsaXphdGlvbklELCBzZXJpYWxpemVDdXN0b206IChvYmo6IGFueSwgc2VyaWFsaXphdGlvbkNsYXNzOiBzdHJpbmcsIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWQpID0+IFNlcmlhbGl6YXRpb25JRCk6IFNlcmlhbGl6ZWQ7XG5cbiAgICBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNKU09OU2VyaWFsaXphYmxlKG86IGFueSk6IG8gaXMgSlNPTlNlcmlhbGl6YWJsZSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvLnRvU2VyaWFsaXplZCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAmJiB0eXBlb2Ygby5nZXRTZXJpYWxpemF0aW9uQ2xhc3MgPT09ICdmdW5jdGlvbidcbiAgICAgICAgJiYgdHlwZW9mIG8uZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCkgPT09ICdzdHJpbmcnOyBcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zZXJpYWxpemFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9leHBvcnQvanNvbi1zZXJpYWxpemFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMkJBLFNBQWdCLGtCQUFrQixDQUFDLENBQU07SUFDdkMsT0FBTyxPQUFPLENBQUMsQ0FBQyxZQUFZLEtBQUssVUFBVTtXQUNsQyxPQUFPLENBQUMsQ0FBQyxxQkFBcUIsS0FBSyxVQUFVO1dBQzdDLE9BQU8sQ0FBQyxDQUFDLHFCQUFxQixFQUFFLEtBQUssUUFBUSxDQUFDO0FBQ3pELENBQUM7QUFKRCxnREFJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4vanNvbi1zZXJpYWxpemVyJztcblxudHlwZSBTZXJpYWxpemFibGVQcmltaXRpdmUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkIHwgbnVsbDtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmludGVyZmFjZSBTZXJpYWxpemVkQXJyYXkgZXh0ZW5kcyBBcnJheTxTZXJpYWxpemVkPiB7IH1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRSZWNvcmQgZXh0ZW5kcyBSZWNvcmQ8bnVtYmVyIHwgc3RyaW5nLCBTZXJpYWxpemVkPiB7IH1cbnR5cGUgU2VyaWFsaXplZENvbGxlY3Rpb24gPSBTZXJpYWxpemVkQXJyYXkgfCBTZXJpYWxpemVkUmVjb3JkO1xuXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkID0gU2VyaWFsaXphYmxlUHJpbWl0aXZlIHwgU2VyaWFsaXplZENvbGxlY3Rpb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgSlNPTlNlcmlhbGl6YWJsZSB7XG4gIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGNvbnZlcnRzIGFuIG9iamVjdCBpbnRvIGEgc2VyaWFsaXphYmxlIG9iamVjdC5cbiAgICAgKiBPZmZlcnMgYSBjYWxsYmFjayB0byBzZXJpYWxpemUgaXRzIHJlZmVyZW5jZXMuXG4gICAgICogQHBhcmFtIHNlcmlhbGl6ZXIgU2VyaWFsaXplcyBhIEpTT05TZXJpYWxpemFibGUgaW5uZXIgaW5zdGFuY2UgYW5kIHJldHVybnMgaXRzIHNlcmlhbGl6ZWQgaWRcbiAgICAgKiBAcmV0dXJucyB0aGUgc2VyaWFsaXplZCBvYmplY3RcbiAgICAgKi9cbiAgdG9TZXJpYWxpemVkKFxuICAgIHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gU2VyaWFsaXphdGlvbklELFxuICAgIHNlcmlhbGl6ZUN1c3RvbTogKG9iajogYW55LCBzZXJpYWxpemF0aW9uQ2xhc3M6IHN0cmluZywgc2VyaWFsaXplZDogU2VyaWFsaXplZCkgPT4gU2VyaWFsaXphdGlvbklEXG4gICk6IFNlcmlhbGl6ZWQ7XG5cbiAgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSlNPTlNlcmlhbGl6YWJsZShvOiBhbnkpOiBvIGlzIEpTT05TZXJpYWxpemFibGUge1xuICByZXR1cm4gdHlwZW9mIG8udG9TZXJpYWxpemVkID09PSAnZnVuY3Rpb24nXG4gICAgICAgICYmIHR5cGVvZiBvLmdldFNlcmlhbGl6YXRpb25DbGFzcyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAmJiB0eXBlb2Ygby5nZXRTZXJpYWxpemF0aW9uQ2xhc3MoKSA9PT0gJ3N0cmluZyc7XG59Il19

@@ -23,3 +23,3 @@ "use strict";

class: serializerClass,
content: serialized
content: serialized,
});

@@ -35,2 +35,2 @@ }

exports.JSONSerializer = JSONSerializer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZXhwb3J0L2pzb24tc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFhLGNBQWM7SUFBM0I7UUFFcUIsc0JBQWlCLEdBQTJDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdEUsbUJBQWMsR0FBaUIsRUFBRSxDQUFDO0lBMkJ2RCxDQUFDO0lBekJVLEdBQUcsQ0FBQyxHQUFxQjtRQUM1QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUcsQ0FBQyxFQUFFLEVBQUMsRUFBRSw4RUFBOEU7WUFDbkYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMscUJBQXFCLEVBQUUsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3SDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFRLEVBQUUsZUFBdUIsRUFBRSxVQUFzQjtRQUN0RSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUcsQ0FBQyxFQUFFLEVBQUM7WUFDSCxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCLEtBQUssRUFBRSxlQUFlO2dCQUN0QixPQUFPLEVBQUUsVUFBVTthQUN0QixDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFxQjtRQUNsQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztDQUNKO0FBOUJELHdDQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuL2pzb24tc2VyaWFsaXphYmxlJztcblxuZXhwb3J0IHR5cGUgU2VyaWFsaXphdGlvbklEID0gbnVtYmVyO1xuXG5leHBvcnQgY2xhc3MgSlNPTlNlcmlhbGl6ZXIge1xuICAgIFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW5jb2RlZFJlZmVyZW5jZXM6IE1hcDxKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemF0aW9uSUQ+ID0gbmV3IE1hcCgpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb2JqZWN0c1RvV3JpdGU6IFNlcmlhbGl6ZWRbXSA9IFtdO1xuXG4gICAgcHVibGljIGFkZChvYmo6IEpTT05TZXJpYWxpemFibGUpOiBTZXJpYWxpemF0aW9uSUQge1xuICAgICAgICBjb25zdCBpZCA9IHRoaXMuZW5jb2RlZFJlZmVyZW5jZXMuZ2V0KG9iaik7XG4gICAgICAgIGlmKCFpZCl7IC8vZm9yIHBlcmZvcm1hbmNlLiBXb3VsZCBub3Qgd2FudCB0byBzZXJpYWxpemUgdGhlIG9iamVjdCBpZiBpdCBhbHJlYWR5IGV4aXN0c1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkQ3VzdG9tKG9iaiwgb2JqLmdldFNlcmlhbGl6YXRpb25DbGFzcygpLCBvYmoudG9TZXJpYWxpemVkKHRoaXMuYWRkLmJpbmQodGhpcyksIHRoaXMuYWRkQ3VzdG9tLmJpbmQodGhpcykpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEN1c3RvbShvYmo6IGFueSwgc2VyaWFsaXplckNsYXNzOiBzdHJpbmcsIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWQpOiBTZXJpYWxpemF0aW9uSUQge1xuICAgICAgICBsZXQgaWQgPSB0aGlzLmVuY29kZWRSZWZlcmVuY2VzLmdldChvYmopO1xuICAgICAgICBpZighaWQpe1xuICAgICAgICAgICAgaWQgPSB0aGlzLm9iamVjdHNUb1dyaXRlLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMuZW5jb2RlZFJlZmVyZW5jZXMuc2V0KG9iaiwgaWQpO1xuICAgICAgICAgICAgdGhpcy5vYmplY3RzVG9Xcml0ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICBjbGFzczogc2VyaWFsaXplckNsYXNzLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHNlcmlhbGl6ZWRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpZDtcbiAgICB9XG4gICAgXG4gICAgcHVibGljIHNlcmlhbGl6ZShvYmo6IEpTT05TZXJpYWxpemFibGUpOiBzdHJpbmd7XG4gICAgICAgIGNvbnN0IGVudHJ5UG9pbnRJZCA9IHRoaXMuYWRkKG9iaik7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7ZW50cnlQb2ludElkLCBvYmplY3RzOiB0aGlzLm9iamVjdHNUb1dyaXRlfSk7XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZXhwb3J0L2pzb24tc2VyaWFsaXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFhLGNBQWM7SUFBM0I7UUFFbUIsc0JBQWlCLEdBQTJDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdEUsbUJBQWMsR0FBaUIsRUFBRSxDQUFDO0lBZ0NyRCxDQUFDO0lBOUJRLEdBQUcsQ0FBQyxHQUFxQjtRQUM5QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLElBQUcsQ0FBQyxFQUFFLEVBQUMsRUFBRSw4RUFBOEU7WUFDckYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUNuQixHQUFHLEVBQ0gsR0FBRyxDQUFDLHFCQUFxQixFQUFFLEVBQzNCLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzdCLENBQUM7U0FDSDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFRLEVBQUUsZUFBdUIsRUFBRSxVQUFzQjtRQUN4RSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUcsQ0FBQyxFQUFFLEVBQUM7WUFDTCxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZCLEtBQUssRUFBRSxlQUFlO2dCQUN0QixPQUFPLEVBQUUsVUFBVTthQUNwQixDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFxQjtRQUNwQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNGO0FBbkNELHdDQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuL2pzb24tc2VyaWFsaXphYmxlJztcblxuZXhwb3J0IHR5cGUgU2VyaWFsaXphdGlvbklEID0gbnVtYmVyO1xuXG5leHBvcnQgY2xhc3MgSlNPTlNlcmlhbGl6ZXIge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZW5jb2RlZFJlZmVyZW5jZXM6IE1hcDxKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemF0aW9uSUQ+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdHNUb1dyaXRlOiBTZXJpYWxpemVkW10gPSBbXTtcblxuICBwdWJsaWMgYWRkKG9iajogSlNPTlNlcmlhbGl6YWJsZSk6IFNlcmlhbGl6YXRpb25JRCB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmVuY29kZWRSZWZlcmVuY2VzLmdldChvYmopO1xuICAgIGlmKCFpZCl7IC8vZm9yIHBlcmZvcm1hbmNlLiBXb3VsZCBub3Qgd2FudCB0byBzZXJpYWxpemUgdGhlIG9iamVjdCBpZiBpdCBhbHJlYWR5IGV4aXN0c1xuICAgICAgcmV0dXJuIHRoaXMuYWRkQ3VzdG9tKFxuICAgICAgICBvYmosXG4gICAgICAgIG9iai5nZXRTZXJpYWxpemF0aW9uQ2xhc3MoKSxcbiAgICAgICAgb2JqLnRvU2VyaWFsaXplZCh0aGlzLmFkZC5iaW5kKHRoaXMpLFxuICAgICAgICAgIHRoaXMuYWRkQ3VzdG9tLmJpbmQodGhpcykpLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgcHVibGljIGFkZEN1c3RvbShvYmo6IGFueSwgc2VyaWFsaXplckNsYXNzOiBzdHJpbmcsIHNlcmlhbGl6ZWQ6IFNlcmlhbGl6ZWQpOiBTZXJpYWxpemF0aW9uSUQge1xuICAgIGxldCBpZCA9IHRoaXMuZW5jb2RlZFJlZmVyZW5jZXMuZ2V0KG9iaik7XG4gICAgaWYoIWlkKXtcbiAgICAgIGlkID0gdGhpcy5vYmplY3RzVG9Xcml0ZS5sZW5ndGg7XG4gICAgICB0aGlzLmVuY29kZWRSZWZlcmVuY2VzLnNldChvYmosIGlkKTtcbiAgICAgIHRoaXMub2JqZWN0c1RvV3JpdGUucHVzaCh7XG4gICAgICAgIGNsYXNzOiBzZXJpYWxpemVyQ2xhc3MsXG4gICAgICAgIGNvbnRlbnQ6IHNlcmlhbGl6ZWQsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgcHVibGljIHNlcmlhbGl6ZShvYmo6IEpTT05TZXJpYWxpemFibGUpOiBzdHJpbmd7XG4gICAgY29uc3QgZW50cnlQb2ludElkID0gdGhpcy5hZGQob2JqKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe2VudHJ5UG9pbnRJZCwgb2JqZWN0czogdGhpcy5vYmplY3RzVG9Xcml0ZX0pO1xuICB9XG59Il19

@@ -32,2 +32,2 @@ "use strict";

})(SerializationClasses = exports.SerializationClasses || (exports.SerializationClasses = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXphdGlvbi1jbGFzc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLG9CQTZCWDtBQTdCRCxXQUFZLG9CQUFvQjtJQUM1QixjQUFjO0lBQ2QsK0NBQXVCLENBQUE7SUFDdkIsMEVBQWtELENBQUE7SUFDbEQsMEVBQWtELENBQUE7SUFDbEQsNkVBQXFELENBQUE7SUFDckQsMkVBQW1ELENBQUE7SUFDbkQsbUZBQTJELENBQUE7SUFDM0QsMkVBQW1ELENBQUE7SUFDbkQsa0RBQTBCLENBQUE7SUFFMUIsbUJBQW1CO0lBQ25CLDJEQUFtQyxDQUFBO0lBQ25DLGlEQUF5QixDQUFBO0lBQ3pCLCtFQUF1RCxDQUFBO0lBQ3ZELCtFQUF1RCxDQUFBO0lBQ3ZELGlGQUF5RCxDQUFBO0lBQ3pELCtFQUF1RCxDQUFBO0lBQ3ZELHlIQUFpRyxDQUFBO0lBQ2pHLHlIQUFpRyxDQUFBO0lBQ2pHLHlIQUFpRyxDQUFBO0lBQ2pHLGdHQUF3RSxDQUFBO0lBQ3hFLGdHQUF3RSxDQUFBO0lBQ3hFLGdHQUF3RSxDQUFBO0lBQ3hFLDRGQUFvRSxDQUFBO0lBRXBFLG1EQUEyQixDQUFBO0lBRTNCLHVFQUErQyxDQUFBO0FBQ25ELENBQUMsRUE3Qlcsb0JBQW9CLEdBQXBCLDRCQUFvQixLQUFwQiw0QkFBb0IsUUE2Qi9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU2VyaWFsaXphdGlvbkNsYXNzZXMge1xuICAgIC8vIElORlJBIE1PREVMXG4gICAgQ09NUE9ORU5UID0gXCJDb21wb25lbnRcIiwgXG4gICAgU1RSVUNUVVJBTF9SRUxBVElPTlNISVAgPSBcIlN0cnVjdHVyYWxSZWxhdGlvbnNoaXBcIiwgXG4gICAgREVQRU5ERU5DWV9SRUxBVElPTlNISVAgPSBcIkRlcGVuZGVuY3lSZWxhdGlvbnNoaXBcIiwgXG4gICAgQ09NUE9ORU5UX1BST1BFUlRZX1JFQ09SRCA9IFwiQ29tcG9uZW50UHJvcGVydHlSZWNvcmRcIiwgXG4gICAgQ09NUE9ORU5UX1BST1BFUlRZX0FSUkFZID0gXCJDb21wb25lbnRQcm9wZXJ0eUFycmF5XCIsIFxuICAgIENPTVBPTkVOVF9QUk9QRVJUWV9QUklNSVRJVkUgPSBcIkNvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlXCIsIFxuICAgIENPTVBPTkVOVF9QUk9QRVJUWV9FTVBUWSA9IFwiQ29tcG9uZW50UHJvcGVydHlFbXB0eVwiLCBcbiAgICBJTkZSQV9NT0RFTCA9IFwiSW5mcmFNb2RlbFwiLFxuXG4gICAgLy8gSU5GUkEgTU9ERUwgRElGRlxuICAgIElORlJBX01PREVMX0RJRkYgPSBcIkluZnJhTW9kZWxEaWZmXCIsXG4gICAgVFJBTlNJVElPTiA9IFwiVHJhbnNpdGlvblwiLFxuICAgIElOU0VSVF9DT01QT05FTlRfT1BFUkFUSU9OID0gXCJJbnNlcnRDb21wb25lbnRPcGVyYXRpb25cIixcbiAgICBSRU1PVkVfQ09NUE9ORU5UX09QRVJBVElPTiA9IFwiUmVtb3ZlQ29tcG9uZW50T3BlcmF0aW9uXCIsXG4gICAgUkVQTEFDRV9DT01QT05FTlRfT1BFUkFUSU9OID0gXCJSZXBsYWNlQ29tcG9uZW50T3BlcmF0aW9uXCIsXG4gICAgUkVOQU1FX0NPTVBPTkVOVF9PUEVSQVRJT04gPSBcIlJlbmFtZUNvbXBvbmVudE9wZXJhdGlvblwiLFxuICAgIElOU0VSVF9PVVRHT0lOR19SRUxBVElPTlNISVBfQ09NUE9ORU5UX09QRVJBVElPTiA9IFwiSW5zZXJ0T3V0Z29pbmdSZWxhdGlvbnNoaXBDb21wb25lbnRPcGVyYXRpb25cIixcbiAgICBSRU1PVkVfT1VUR09JTkdfUkVMQVRJT05TSElQX0NPTVBPTkVOVF9PUEVSQVRJT04gPSBcIlJlbW92ZU91dGdvaW5nUmVsYXRpb25zaGlwQ29tcG9uZW50T3BlcmF0aW9uXCIsXG4gICAgVVBEQVRFX09VVEdPSU5HX1JFTEFUSU9OU0hJUF9DT01QT05FTlRfT1BFUkFUSU9OID0gXCJVcGRhdGVPdXRnb2luZ1JlbGF0aW9uc2hpcENvbXBvbmVudE9wZXJhdGlvblwiLFxuICAgIElOU0VSVF9QUk9QRVJUWV9DT01QT05FTlRfT1BFUkFUSU9OID0gXCJJbnNlcnRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblwiLFxuICAgIFJFTU9WRV9QUk9QRVJUWV9DT01QT05FTlRfT1BFUkFUSU9OID0gXCJSZW1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblwiLFxuICAgIFVQREFURV9QUk9QRVJUWV9DT01QT05FTlRfT1BFUkFUSU9OID0gXCJVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblwiLFxuICAgIE1PVkVfUFJPUEVSVFlfQ09NUE9ORU5UX09QRVJBVElPTiA9IFwiTW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uXCIsXG5cbiAgICBBR0dSRUdBVElPTiA9IFwiQWdncmVnYXRpb25cIixcblxuICAgIENIQU5HRV9BTkFMWVNJU19SRVBPUlQgPSBcIkNoYW5nZUFuYWx5c2lzUmVwb3J0XCIsXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXphdGlvbi1jbGFzc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLG9CQTZCWDtBQTdCRCxXQUFZLG9CQUFvQjtJQUM5QixjQUFjO0lBQ2QsK0NBQXVCLENBQUE7SUFDdkIsMEVBQWtELENBQUE7SUFDbEQsMEVBQWtELENBQUE7SUFDbEQsNkVBQXFELENBQUE7SUFDckQsMkVBQW1ELENBQUE7SUFDbkQsbUZBQTJELENBQUE7SUFDM0QsMkVBQW1ELENBQUE7SUFDbkQsa0RBQTBCLENBQUE7SUFFMUIsbUJBQW1CO0lBQ25CLDJEQUFtQyxDQUFBO0lBQ25DLGlEQUF5QixDQUFBO0lBQ3pCLCtFQUF1RCxDQUFBO0lBQ3ZELCtFQUF1RCxDQUFBO0lBQ3ZELGlGQUF5RCxDQUFBO0lBQ3pELCtFQUF1RCxDQUFBO0lBQ3ZELHlIQUFpRyxDQUFBO0lBQ2pHLHlIQUFpRyxDQUFBO0lBQ2pHLHlIQUFpRyxDQUFBO0lBQ2pHLGdHQUF3RSxDQUFBO0lBQ3hFLGdHQUF3RSxDQUFBO0lBQ3hFLGdHQUF3RSxDQUFBO0lBQ3hFLDRGQUFvRSxDQUFBO0lBRXBFLG1EQUEyQixDQUFBO0lBRTNCLHVFQUErQyxDQUFBO0FBQ2pELENBQUMsRUE3Qlcsb0JBQW9CLEdBQXBCLDRCQUFvQixLQUFwQiw0QkFBb0IsUUE2Qi9CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU2VyaWFsaXphdGlvbkNsYXNzZXMge1xuICAvLyBJTkZSQSBNT0RFTFxuICBDT01QT05FTlQgPSAnQ29tcG9uZW50JyxcbiAgU1RSVUNUVVJBTF9SRUxBVElPTlNISVAgPSAnU3RydWN0dXJhbFJlbGF0aW9uc2hpcCcsXG4gIERFUEVOREVOQ1lfUkVMQVRJT05TSElQID0gJ0RlcGVuZGVuY3lSZWxhdGlvbnNoaXAnLFxuICBDT01QT05FTlRfUFJPUEVSVFlfUkVDT1JEID0gJ0NvbXBvbmVudFByb3BlcnR5UmVjb3JkJyxcbiAgQ09NUE9ORU5UX1BST1BFUlRZX0FSUkFZID0gJ0NvbXBvbmVudFByb3BlcnR5QXJyYXknLFxuICBDT01QT05FTlRfUFJPUEVSVFlfUFJJTUlUSVZFID0gJ0NvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlJyxcbiAgQ09NUE9ORU5UX1BST1BFUlRZX0VNUFRZID0gJ0NvbXBvbmVudFByb3BlcnR5RW1wdHknLFxuICBJTkZSQV9NT0RFTCA9ICdJbmZyYU1vZGVsJyxcblxuICAvLyBJTkZSQSBNT0RFTCBESUZGXG4gIElORlJBX01PREVMX0RJRkYgPSAnSW5mcmFNb2RlbERpZmYnLFxuICBUUkFOU0lUSU9OID0gJ1RyYW5zaXRpb24nLFxuICBJTlNFUlRfQ09NUE9ORU5UX09QRVJBVElPTiA9ICdJbnNlcnRDb21wb25lbnRPcGVyYXRpb24nLFxuICBSRU1PVkVfQ09NUE9ORU5UX09QRVJBVElPTiA9ICdSZW1vdmVDb21wb25lbnRPcGVyYXRpb24nLFxuICBSRVBMQUNFX0NPTVBPTkVOVF9PUEVSQVRJT04gPSAnUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbicsXG4gIFJFTkFNRV9DT01QT05FTlRfT1BFUkFUSU9OID0gJ1JlbmFtZUNvbXBvbmVudE9wZXJhdGlvbicsXG4gIElOU0VSVF9PVVRHT0lOR19SRUxBVElPTlNISVBfQ09NUE9ORU5UX09QRVJBVElPTiA9ICdJbnNlcnRPdXRnb2luZ1JlbGF0aW9uc2hpcENvbXBvbmVudE9wZXJhdGlvbicsXG4gIFJFTU9WRV9PVVRHT0lOR19SRUxBVElPTlNISVBfQ09NUE9ORU5UX09QRVJBVElPTiA9ICdSZW1vdmVPdXRnb2luZ1JlbGF0aW9uc2hpcENvbXBvbmVudE9wZXJhdGlvbicsXG4gIFVQREFURV9PVVRHT0lOR19SRUxBVElPTlNISVBfQ09NUE9ORU5UX09QRVJBVElPTiA9ICdVcGRhdGVPdXRnb2luZ1JlbGF0aW9uc2hpcENvbXBvbmVudE9wZXJhdGlvbicsXG4gIElOU0VSVF9QUk9QRVJUWV9DT01QT05FTlRfT1BFUkFUSU9OID0gJ0luc2VydFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uJyxcbiAgUkVNT1ZFX1BST1BFUlRZX0NPTVBPTkVOVF9PUEVSQVRJT04gPSAnUmVtb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24nLFxuICBVUERBVEVfUFJPUEVSVFlfQ09NUE9ORU5UX09QRVJBVElPTiA9ICdVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbicsXG4gIE1PVkVfUFJPUEVSVFlfQ09NUE9ORU5UX09QRVJBVElPTiA9ICdNb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24nLFxuXG4gIEFHR1JFR0FUSU9OID0gJ0FnZ3JlZ2F0aW9uJyxcblxuICBDSEFOR0VfQU5BTFlTSVNfUkVQT1JUID0gJ0NoYW5nZUFuYWx5c2lzUmVwb3J0Jyxcbn0iXX0=

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

import { AggCharacteristicValue } from "../../../aggregations";
import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { AggCharacteristicValue } from '../../../aggregations';
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedAggregation extends SerializedRecord {

@@ -5,0 +5,0 @@ readonly entities: SerializationID[];

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1hZ2dyZWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvYWdncmVnYXRpb25zL3NlcmlhbGl6ZWQtYWdncmVnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZ0NoYXJhY3RlcmlzdGljVmFsdWUgfSBmcm9tIFwiLi4vLi4vLi4vYWdncmVnYXRpb25zXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVkUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tIFwiLi4vLi4vanNvbi1zZXJpYWxpemVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZEFnZ3JlZ2F0aW9uIGV4dGVuZHMgU2VyaWFsaXplZFJlY29yZCB7XG4gICAgcmVhZG9ubHkgZW50aXRpZXM6IFNlcmlhbGl6YXRpb25JRFtdLFxuICAgIHJlYWRvbmx5IGNoYXJhY3RlcmlzdGljczogUmVjb3JkPHN0cmluZywgQWdnQ2hhcmFjdGVyaXN0aWNWYWx1ZT4sXG4gICAgcmVhZG9ubHkgc3ViQWdncz86IFNlcmlhbGl6YXRpb25JRFtdLFxuICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9ucz86IHN0cmluZ1tdXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1hZ2dyZWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvYWdncmVnYXRpb25zL3NlcmlhbGl6ZWQtYWdncmVnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZ0NoYXJhY3RlcmlzdGljVmFsdWUgfSBmcm9tICcuLi8uLi8uLi9hZ2dyZWdhdGlvbnMnO1xuaW1wb3J0IHsgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXplcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZEFnZ3JlZ2F0aW9uIGV4dGVuZHMgU2VyaWFsaXplZFJlY29yZCB7XG4gIHJlYWRvbmx5IGVudGl0aWVzOiBTZXJpYWxpemF0aW9uSURbXSxcbiAgcmVhZG9ubHkgY2hhcmFjdGVyaXN0aWNzOiBSZWNvcmQ8c3RyaW5nLCBBZ2dDaGFyYWN0ZXJpc3RpY1ZhbHVlPixcbiAgcmVhZG9ubHkgc3ViQWdncz86IFNlcmlhbGl6YXRpb25JRFtdLFxuICByZWFkb25seSBkZXNjcmlwdGlvbnM/OiBzdHJpbmdbXVxufSJdfQ==

@@ -1,3 +0,3 @@

import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedComponentOperation extends SerializedRecord {

@@ -4,0 +4,0 @@ cause?: SerializationID;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jb21wb25lbnQtb3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtY29tcG9uZW50LW9wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRDb21wb25lbnRPcGVyYXRpb24gZXh0ZW5kcyBTZXJpYWxpemVkUmVjb3JkIHtcbiAgICBjYXVzZT86IFNlcmlhbGl6YXRpb25JRCxcbiAgICBjZXJ0YWludHk6IHN0cmluZyxcbiAgICBjb21wb25lbnRUcmFuc2l0aW9uOiBTZXJpYWxpemF0aW9uSURcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkT3V0Z29pbmdSZWxhdGlvbnNoaXBDb21wb25lbnRPcGVyYXRpb24gZXh0ZW5kcyBTZXJpYWxpemVkQ29tcG9uZW50T3BlcmF0aW9uIHtcbiAgICByZWxhdGlvbnNoaXBUcmFuc2l0aW9uOiBTZXJpYWxpemF0aW9uSURcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gZXh0ZW5kcyBTZXJpYWxpemVkQ29tcG9uZW50T3BlcmF0aW9uIHtcbiAgICBwYXRoVHJhbnNpdGlvbjogU2VyaWFsaXphdGlvbklELFxuICAgIHByb3BlcnR5VHJhbnNpdGlvbjogU2VyaWFsaXphdGlvbklEXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIGV4dGVuZHMgU2VyaWFsaXplZFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIHtcbiAgICBpbm5lck9wZXJhdGlvbnM/OiBTZXJpYWxpemF0aW9uSURbXVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jb21wb25lbnQtb3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtY29tcG9uZW50LW9wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXplcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZENvbXBvbmVudE9wZXJhdGlvbiBleHRlbmRzIFNlcmlhbGl6ZWRSZWNvcmQge1xuICBjYXVzZT86IFNlcmlhbGl6YXRpb25JRCxcbiAgY2VydGFpbnR5OiBzdHJpbmcsXG4gIGNvbXBvbmVudFRyYW5zaXRpb246IFNlcmlhbGl6YXRpb25JRFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRPdXRnb2luZ1JlbGF0aW9uc2hpcENvbXBvbmVudE9wZXJhdGlvbiBleHRlbmRzIFNlcmlhbGl6ZWRDb21wb25lbnRPcGVyYXRpb24ge1xuICByZWxhdGlvbnNoaXBUcmFuc2l0aW9uOiBTZXJpYWxpemF0aW9uSURcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gZXh0ZW5kcyBTZXJpYWxpemVkQ29tcG9uZW50T3BlcmF0aW9uIHtcbiAgcGF0aFRyYW5zaXRpb246IFNlcmlhbGl6YXRpb25JRCxcbiAgcHJvcGVydHlUcmFuc2l0aW9uOiBTZXJpYWxpemF0aW9uSURcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gZXh0ZW5kcyBTZXJpYWxpemVkUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24ge1xuICBpbm5lck9wZXJhdGlvbnM/OiBTZXJpYWxpemF0aW9uSURbXVxufSJdfQ==

@@ -1,3 +0,3 @@

import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedInfraModelDiff extends SerializedRecord {

@@ -4,0 +4,0 @@ readonly componentOperations: SerializationID[];

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1pbmZyYS1tb2RlbC1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtaW5mcmEtbW9kZWwtZGlmZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRJbmZyYU1vZGVsRGlmZiBleHRlbmRzIFNlcmlhbGl6ZWRSZWNvcmQge1xuICAgIHJlYWRvbmx5IGNvbXBvbmVudE9wZXJhdGlvbnM6IFNlcmlhbGl6YXRpb25JRFtdLFxuICAgIHJlYWRvbmx5IGNvbXBvbmVudFRyYW5zaXRpb25zOiBTZXJpYWxpemF0aW9uSURbXSxcbiAgICByZWFkb25seSBpbmZyYU1vZGVsVHJhbnNpdGlvbjogU2VyaWFsaXphdGlvbklEXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1pbmZyYS1tb2RlbC1kaWZmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtaW5mcmEtbW9kZWwtZGlmZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXplcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZEluZnJhTW9kZWxEaWZmIGV4dGVuZHMgU2VyaWFsaXplZFJlY29yZCB7XG4gIHJlYWRvbmx5IGNvbXBvbmVudE9wZXJhdGlvbnM6IFNlcmlhbGl6YXRpb25JRFtdLFxuICByZWFkb25seSBjb21wb25lbnRUcmFuc2l0aW9uczogU2VyaWFsaXphdGlvbklEW10sXG4gIHJlYWRvbmx5IGluZnJhTW9kZWxUcmFuc2l0aW9uOiBTZXJpYWxpemF0aW9uSURcbn0iXX0=

@@ -1,3 +0,3 @@

import { Serialized, SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { Serialized, SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedTransition extends SerializedRecord {

@@ -4,0 +4,0 @@ v1?: SerializationID | {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC10cmFuc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtdHJhbnNpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VyaWFsaXplZCwgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRUcmFuc2l0aW9uIGV4dGVuZHMgU2VyaWFsaXplZFJlY29yZCB7XG4gICAgdjE/OiBTZXJpYWxpemF0aW9uSUQgfCB7dmFsdWU6IFNlcmlhbGl6ZWQgfSxcbiAgICB2Mj86IFNlcmlhbGl6YXRpb25JRCB8IHt2YWx1ZTogU2VyaWFsaXplZCB9LFxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC10cmFuc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtdHJhbnNpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VyaWFsaXplZCwgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXplcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZFRyYW5zaXRpb24gZXh0ZW5kcyBTZXJpYWxpemVkUmVjb3JkIHtcbiAgdjE/OiBTZXJpYWxpemF0aW9uSUQgfCB7dmFsdWU6IFNlcmlhbGl6ZWQgfSxcbiAgdjI/OiBTZXJpYWxpemF0aW9uSUQgfCB7dmFsdWU6IFNlcmlhbGl6ZWQgfSxcbn0iXX0=

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

import { ComponentUpdateType, PropertyPrimitive } from "../../../infra-model";
import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { ComponentUpdateType, PropertyPrimitive } from '../../../infra-model';
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedComponentProperty extends SerializedRecord {

@@ -5,0 +5,0 @@ value: PropertyPrimitive | SerializationID[] | Record<string, SerializationID> | undefined;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jb21wb25lbnQtcHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtY29tcG9uZW50LXByb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRVcGRhdGVUeXBlLCBQcm9wZXJ0eVByaW1pdGl2ZSB9IGZyb20gXCIuLi8uLi8uLi9pbmZyYS1tb2RlbFwiO1xuaW1wb3J0IHsgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eSBleHRlbmRzIFNlcmlhbGl6ZWRSZWNvcmQge1xuICAgIHZhbHVlOiBQcm9wZXJ0eVByaW1pdGl2ZSB8IFNlcmlhbGl6YXRpb25JRFtdIHwgUmVjb3JkPHN0cmluZywgU2VyaWFsaXphdGlvbklEPiB8IHVuZGVmaW5lZCxcbiAgICBjb21wb25lbnRVcGRhdGVUeXBlOiBDb21wb25lbnRVcGRhdGVUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UmVjb3JkIGV4dGVuZHMgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5IHtcbiAgICB2YWx1ZTogUmVjb3JkPHN0cmluZywgU2VyaWFsaXphdGlvbklEPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eUFycmF5IGV4dGVuZHMgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5IHtcbiAgICB2YWx1ZTogU2VyaWFsaXphdGlvbklEW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUgZXh0ZW5kcyBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHkge1xuICAgIHZhbHVlOiBQcm9wZXJ0eVByaW1pdGl2ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eUVtcHR5IGV4dGVuZHMgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5IHtcbiAgICB2YWx1ZTogdW5kZWZpbmVkXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jb21wb25lbnQtcHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtY29tcG9uZW50LXByb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRVcGRhdGVUeXBlLCBQcm9wZXJ0eVByaW1pdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2luZnJhLW1vZGVsJztcbmltcG9ydCB7IFNlcmlhbGl6ZWRSZWNvcmQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi8uLi9qc29uLXNlcmlhbGl6ZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eSBleHRlbmRzIFNlcmlhbGl6ZWRSZWNvcmQge1xuICB2YWx1ZTogUHJvcGVydHlQcmltaXRpdmUgfCBTZXJpYWxpemF0aW9uSURbXSB8IFJlY29yZDxzdHJpbmcsIFNlcmlhbGl6YXRpb25JRD4gfCB1bmRlZmluZWQsXG4gIGNvbXBvbmVudFVwZGF0ZVR5cGU6IENvbXBvbmVudFVwZGF0ZVR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlSZWNvcmQgZXh0ZW5kcyBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHkge1xuICB2YWx1ZTogUmVjb3JkPHN0cmluZywgU2VyaWFsaXphdGlvbklEPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eUFycmF5IGV4dGVuZHMgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5IHtcbiAgdmFsdWU6IFNlcmlhbGl6YXRpb25JRFtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlIGV4dGVuZHMgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5IHtcbiAgdmFsdWU6IFByb3BlcnR5UHJpbWl0aXZlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5RW1wdHkgZXh0ZW5kcyBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHkge1xuICB2YWx1ZTogdW5kZWZpbmVkXG59Il19

@@ -1,3 +0,3 @@

import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedComponent extends SerializedRecord {

@@ -4,0 +4,0 @@ properties: SerializationID;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJpYWxpemVkUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tIFwiLi4vLi4vanNvbi1zZXJpYWxpemVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZENvbXBvbmVudCBleHRlbmRzIFNlcmlhbGl6ZWRSZWNvcmQge1xuICAgIHByb3BlcnRpZXM6IFNlcmlhbGl6YXRpb25JRCxcbiAgICB0eXBlOiBzdHJpbmcsXG4gICAgc3VidHlwZT86IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmdcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJpYWxpemVkUmVjb3JkIH0gZnJvbSAnLi4vLi4vanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSAnLi4vLi4vanNvbi1zZXJpYWxpemVyJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkQ29tcG9uZW50IGV4dGVuZHMgU2VyaWFsaXplZFJlY29yZCB7XG4gIHByb3BlcnRpZXM6IFNlcmlhbGl6YXRpb25JRCxcbiAgdHlwZTogc3RyaW5nLFxuICBzdWJ0eXBlPzogc3RyaW5nLFxuICBuYW1lOiBzdHJpbmdcbn0iXX0=

@@ -1,3 +0,3 @@

import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedInfraModel extends SerializedRecord {

@@ -4,0 +4,0 @@ components: SerializationID[];

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1pbmZyYS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1pbmZyYS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uLy4uL2pzb24tc2VyaWFsaXplclwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRJbmZyYU1vZGVsIGV4dGVuZHMgU2VyaWFsaXplZFJlY29yZCB7XG4gICAgY29tcG9uZW50czogU2VyaWFsaXphdGlvbklEW10sXG4gICAgcmVsYXRpb25zaGlwczogU2VyaWFsaXphdGlvbklEW10sXG59ICJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1pbmZyYS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1pbmZyYS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VyaWFsaXplZFJlY29yZCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4uLy4uL2pzb24tc2VyaWFsaXplcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWFsaXplZEluZnJhTW9kZWwgZXh0ZW5kcyBTZXJpYWxpemVkUmVjb3JkIHtcbiAgY29tcG9uZW50czogU2VyaWFsaXphdGlvbklEW10sXG4gIHJlbGF0aW9uc2hpcHM6IFNlcmlhbGl6YXRpb25JRFtdLFxufSJdfQ==

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

import { PropertyPath } from "../../../infra-model";
import { SerializedRecord } from "../../json-serializable";
import { SerializationID } from "../../json-serializer";
import { PropertyPath } from '../../../infra-model';
import { SerializedRecord } from '../../json-serializable';
import { SerializationID } from '../../json-serializer';
export interface SerializedRelationship extends SerializedRecord {

@@ -5,0 +5,0 @@ readonly target: SerializationID;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1yZWxhdGlvbnNoaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtcmVsYXRpb25zaGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiLi4vLi4vLi4vaW5mcmEtbW9kZWxcIjtcbmltcG9ydCB7IFNlcmlhbGl6ZWRSZWNvcmQgfSBmcm9tIFwiLi4vLi4vanNvbi1zZXJpYWxpemFibGVcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gXCIuLi8uLi9qc29uLXNlcmlhbGl6ZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkUmVsYXRpb25zaGlwIGV4dGVuZHMgU2VyaWFsaXplZFJlY29yZCB7XG4gICAgcmVhZG9ubHkgdGFyZ2V0OiBTZXJpYWxpemF0aW9uSUQsXG4gICAgcmVhZG9ubHkgc291cmNlOiBTZXJpYWxpemF0aW9uSUQsXG4gICAgcmVhZG9ubHkgdHlwZTogc3RyaW5nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWREZXBlbmRlbmN5UmVsYXRpb25zaGlwIGV4dGVuZHMgU2VyaWFsaXplZFJlbGF0aW9uc2hpcCB7XG4gICAgcmVhZG9ubHkgc291cmNlUHJvcGVydHlQYXRoOiBQcm9wZXJ0eVBhdGgsXG4gICAgcmVhZG9ubHkgdGFyZ2V0QXR0cmlidXRlUGF0aDogUHJvcGVydHlQYXRoXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1yZWxhdGlvbnNoaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtcmVsYXRpb25zaGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eVBhdGggfSBmcm9tICcuLi8uLi8uLi9pbmZyYS1tb2RlbCc7XG5pbXBvcnQgeyBTZXJpYWxpemVkUmVjb3JkIH0gZnJvbSAnLi4vLi4vanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSAnLi4vLi4vanNvbi1zZXJpYWxpemVyJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkUmVsYXRpb25zaGlwIGV4dGVuZHMgU2VyaWFsaXplZFJlY29yZCB7XG4gIHJlYWRvbmx5IHRhcmdldDogU2VyaWFsaXphdGlvbklELFxuICByZWFkb25seSBzb3VyY2U6IFNlcmlhbGl6YXRpb25JRCxcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWREZXBlbmRlbmN5UmVsYXRpb25zaGlwIGV4dGVuZHMgU2VyaWFsaXplZFJlbGF0aW9uc2hpcCB7XG4gIHJlYWRvbmx5IHNvdXJjZVByb3BlcnR5UGF0aDogUHJvcGVydHlQYXRoLFxuICByZWFkb25seSB0YXJnZXRBdHRyaWJ1dGVQYXRoOiBQcm9wZXJ0eVBhdGhcbn0iXX0=

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

import { RuleEffect } from "../../rules";
import { SerializedRecord } from "../json-serializable";
import { SerializationID } from "../json-serializer";
import { RuleEffect } from '../../rules';
import { SerializedRecord } from '../json-serializable';
import { SerializationID } from '../json-serializer';
export interface SerializedChangeAnalysisReport extends SerializedRecord {

@@ -5,0 +5,0 @@ readonly infraModelDiff: SerializationID;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jaGFuZ2UtYW5hbHlzaXMtcmVwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9zZXJpYWxpemVkLWNoYW5nZS1hbmFseXNpcy1yZXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJ1bGVFZmZlY3QgfSBmcm9tIFwiLi4vLi4vcnVsZXNcIjtcbmltcG9ydCB7IFNlcmlhbGl6ZWRSZWNvcmQgfSBmcm9tIFwiLi4vanNvbi1zZXJpYWxpemFibGVcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gXCIuLi9qc29uLXNlcmlhbGl6ZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkQ2hhbmdlQW5hbHlzaXNSZXBvcnQgZXh0ZW5kcyBTZXJpYWxpemVkUmVjb3JkIHtcbiAgICByZWFkb25seSBpbmZyYU1vZGVsRGlmZjogU2VyaWFsaXphdGlvbklELFxuICAgIHJlYWRvbmx5IGFnZ3JlZ2F0aW9uczogU2VyaWFsaXphdGlvbklEW10sXG4gICAgcmVhZG9ubHkgYWdncmVnYXRpb25zUGVyQ29tcG9uZW50OiBSZWNvcmQ8U2VyaWFsaXphdGlvbklELCBTZXJpYWxpemF0aW9uSURbXT4sXG4gICAgcmVhZG9ubHkgcnVsZXNPdXRwdXQ6IFJlY29yZDxTZXJpYWxpemF0aW9uSUQsIFJ1bGVFZmZlY3Q+LFxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplZC1jaGFuZ2UtYW5hbHlzaXMtcmVwb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9zZXJpYWxpemVkLWNoYW5nZS1hbmFseXNpcy1yZXBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJ1bGVFZmZlY3QgfSBmcm9tICcuLi8uLi9ydWxlcyc7XG5pbXBvcnQgeyBTZXJpYWxpemVkUmVjb3JkIH0gZnJvbSAnLi4vanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSAnLi4vanNvbi1zZXJpYWxpemVyJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemVkQ2hhbmdlQW5hbHlzaXNSZXBvcnQgZXh0ZW5kcyBTZXJpYWxpemVkUmVjb3JkIHtcbiAgcmVhZG9ubHkgaW5mcmFNb2RlbERpZmY6IFNlcmlhbGl6YXRpb25JRCxcbiAgcmVhZG9ubHkgYWdncmVnYXRpb25zOiBTZXJpYWxpemF0aW9uSURbXSxcbiAgcmVhZG9ubHkgYWdncmVnYXRpb25zUGVyQ29tcG9uZW50OiBSZWNvcmQ8U2VyaWFsaXphdGlvbklELCBTZXJpYWxpemF0aW9uSURbXT4sXG4gIHJlYWRvbmx5IHJ1bGVzT3V0cHV0OiBSZWNvcmQ8U2VyaWFsaXphdGlvbklELCBSdWxlRWZmZWN0Pixcbn0iXX0=

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

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializedComponentProperty, SerializedComponentPropertyArray, SerializedComponentPropertyEmpty, SerializedComponentPropertyPrimitive, SerializedComponentPropertyRecord } from "../export/serialized-interfaces/infra-model/serialized-component-property";
import { ModelEntity, OutgoingReferences } from "./model-entity";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializedComponentProperty, SerializedComponentPropertyArray, SerializedComponentPropertyEmpty, SerializedComponentPropertyPrimitive, SerializedComponentPropertyRecord } from '../export/serialized-interfaces/infra-model/serialized-component-property';
import { ModelEntity, OutgoingReferences } from './model-entity';
/**

@@ -6,0 +6,0 @@ * How a change in a ComponentPropertyValue

@@ -21,4 +21,8 @@ "use strict";

exports.ComponentPropertyAccessError = ComponentPropertyAccessError;
class ComponentPropertyValue /* TODO Value*/ extends model_entity_1.ModelEntity {
get componentUpdateType() { var _a; return (_a = this.nodeData.componentUpdateType) !== null && _a !== void 0 ? _a : ComponentUpdateType.NONE; }
/* TODO Value*/
class ComponentPropertyValue extends model_entity_1.ModelEntity {
get componentUpdateType() {
var _a;
return (_a = this.nodeData.componentUpdateType) !== null && _a !== void 0 ? _a : ComponentUpdateType.NONE;
}
constructor(data, outgoingReferences) {

@@ -29,3 +33,3 @@ super(model_entity_types_1.ModelEntityTypes.property, data, outgoingReferences);

if (!this.isRecord()) {
throw new ComponentPropertyAccessError("Trying to read component property as Record, but it is not one");
throw new ComponentPropertyAccessError('Trying to read component property as Record, but it is not one');
}

@@ -36,3 +40,3 @@ return this.value;

if (!this.isArray()) {
throw new ComponentPropertyAccessError("Trying to read component property as an Array, but it is not one");
throw new ComponentPropertyAccessError('Trying to read component property as an Array, but it is not one');
}

@@ -43,3 +47,3 @@ return this.value;

if (this.isPrimitive()) {
throw new ComponentPropertyAccessError("Trying to read component property as a Collection, but it is not one");
throw new ComponentPropertyAccessError('Trying to read component property as a Collection, but it is not one');
}

@@ -50,3 +54,3 @@ return this.value;

if (!this.isPrimitive()) {
throw new ComponentPropertyAccessError("Trying to read component property as a primitive, but it is not one");
throw new ComponentPropertyAccessError('Trying to read component property as a primitive, but it is not one');
}

@@ -152,3 +156,3 @@ return this.value;

value: undefined,
componentUpdateType: this.componentUpdateType
componentUpdateType: this.componentUpdateType,
};

@@ -161,2 +165,2 @@ }

exports.EmptyComponentProperty = EmptyComponentProperty;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvY29tcG9uZW50LXByb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJFQUF1RTtBQUV2RSxvQ0FBZ0Q7QUFDaEQsaURBQWlFO0FBQ2pFLDZEQUF3RDtBQUV4RDs7O0dBR0c7QUFDSCxJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDM0Isb0NBQWEsQ0FBQTtJQUNiLGtEQUEyQixDQUFBO0lBQzNCLG1FQUE0QyxDQUFBO0FBQ2hELENBQUMsRUFKVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQUk5QjtBQVFELE1BQWEsNEJBQTZCLFNBQVEsS0FBSztDQUFHO0FBQTFELG9FQUEwRDtBQU0xRCxNQUFzQixzQkFBc0IsQ0FBQSxlQUN4QyxTQUFRLDBCQUFtQjtJQUczQixJQUFXLG1CQUFtQixhQUEwQixPQUFPLE1BQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsbUNBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUkvSCxZQUNJLElBQVEsRUFDUixrQkFBc0I7UUFFdEIsS0FBSyxDQUFDLHFDQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUM7WUFDaEIsTUFBTSxJQUFJLDRCQUE0QixDQUFDLGdFQUFnRSxDQUFDLENBQUM7U0FDNUc7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUErQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBQztZQUNmLE1BQU0sSUFBSSw0QkFBNEIsQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO1NBQzlHO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FB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LENBQUM7SUFDNUMsQ0FBQztJQUVNLFlBQVk7UUFDZixPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDMUIsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtTQUNoRCxDQUFDO0lBQ04sQ0FBQztJQUVNLHFCQUFxQjtRQUN4QixPQUFPLDRDQUFvQixDQUFDLDRCQUE0QixDQUFDO0lBQzdELENBQUM7Q0FDSjtBQXBCRCxnRUFvQkM7QUFFRCxNQUFhLHNCQUF1QixTQUFRLHNCQUFzQjtJQUM5RCxJQUFXLEtBQUssS0FBNkMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRWhGO1FBQ0ksS0FBSyxDQUFDLEVBQUUsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU0sWUFBWTtRQUNmLE9BQU87WUFDSCxLQUFLLEVBQUUsU0FBUztZQUNoQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1NBQ2hELENBQUM7SUFDTixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLE9BQU8sNENBQW9CLENBQUMsd0JBQXdCLENBQUM7SUFDekQsQ0FBQztDQUNKO0FBakJELHdEQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTT05TZXJpYWxpemFibGUgfSBmcm9tIFwiLi4vZXhwb3J0L2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tIFwiLi4vZXhwb3J0L2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkNsYXNzZXMgfSBmcm9tIFwiLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlc1wiO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5LCBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlBcnJheSwgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5RW1wdHksIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSwgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UmVjb3JkIH0gZnJvbSBcIi4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1jb21wb25lbnQtcHJvcGVydHlcIjtcbmltcG9ydCB7IGZsYXRNYXAsIGZyb21FbnRyaWVzIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBNb2RlbEVudGl0eSwgT3V0Z29pbmdSZWZlcmVuY2VzIH0gZnJvbSBcIi4vbW9kZWwtZW50aXR5XCI7XG5pbXBvcnQgeyBNb2RlbEVudGl0eVR5cGVzIH0gZnJvbSBcIi4vbW9kZWwtZW50aXR5LXR5cGVzXCI7XG5cbi8qKlxuICogSG93IGEgY2hhbmdlIGluIGEgQ29tcG9uZW50UHJvcGVydHlWYWx1ZVxuICogY2F1c2VzIHRoZSBDb21wb25lbnQgdG8gYmUgdXBkYXRlZFxuICovXG5leHBvcnQgZW51bSBDb21wb25lbnRVcGRhdGVUeXBlIHtcbiAgICBOT05FID0gJ05vbmUnLFxuICAgIFJFUExBQ0VNRU5UID0gJ1JlcGxhY2VtZW50JyxcbiAgICBQT1NTSUJMRV9SRVBMQUNFTUVOVCA9ICdQb3NzaWJsZVJlcGxhY2VtZW50Jyxcbn1cblxuZXhwb3J0IHR5cGUgUHJvcGVydHlQYXRoID0gKHN0cmluZyB8IG51bWJlcilbXTtcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlQcmltaXRpdmUgPSBzdHJpbmcgfCBudW1iZXI7XG5leHBvcnQgdHlwZSBQcm9wZXJ0eUNvbGxlY3Rpb25WYWx1ZSA9IEFycmF5PENvbXBvbmVudFByb3BlcnR5VmFsdWU+IHwgUmVjb3JkPHN0cmluZywgQ29tcG9uZW50UHJvcGVydHlWYWx1ZT47XG5leHBvcnQgdHlwZSBDb21wb25lbnRQcm9wZXJ0eVZhbHVlVHlwZSA9IFByb3BlcnR5UHJpbWl0aXZlIHwgUHJvcGVydHlDb2xsZWN0aW9uVmFsdWU7XG5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRQcm9wZXJ0eUFjY2Vzc0Vycm9yIGV4dGVuZHMgRXJyb3Ige31cblxudHlwZSBOb2RlRGF0YSA9IHtcbiAgICByZWFkb25seSBjb21wb25lbnRVcGRhdGVUeXBlPzogQ29tcG9uZW50VXBkYXRlVHlwZSxcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbXBvbmVudFByb3BlcnR5VmFsdWUvKiBUT0RPIFZhbHVlKi88TkQgZXh0ZW5kcyBOb2RlRGF0YSA9IGFueSwgT1IgZXh0ZW5kcyBPdXRnb2luZ1JlZmVyZW5jZXMgPSBhbnk+XG4gICAgZXh0ZW5kcyBNb2RlbEVudGl0eTxORCwgT1I+XG4gICAgaW1wbGVtZW50cyBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBcbiAgICBwdWJsaWMgZ2V0IGNvbXBvbmVudFVwZGF0ZVR5cGUoKTogQ29tcG9uZW50VXBkYXRlVHlwZSB7IHJldHVybiB0aGlzLm5vZGVEYXRhLmNvbXBvbmVudFVwZGF0ZVR5cGUgPz8gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FOyB9XG4gICAgXG4gICAgcHVibGljIGFic3RyYWN0IGdldCB2YWx1ZSgpOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlVHlwZSB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBkYXRhOiBORCxcbiAgICAgICAgb3V0Z29pbmdSZWZlcmVuY2VzOiBPUixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoTW9kZWxFbnRpdHlUeXBlcy5wcm9wZXJ0eSwgZGF0YSwgb3V0Z29pbmdSZWZlcmVuY2VzKTtcbiAgICB9XG5cbiAgICBnZXRSZWNvcmQoKTogUmVjb3JkPHN0cmluZywgQ29tcG9uZW50UHJvcGVydHlWYWx1ZT4ge1xuICAgICAgICBpZighdGhpcy5pc1JlY29yZCgpKXtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21wb25lbnRQcm9wZXJ0eUFjY2Vzc0Vycm9yKFwiVHJ5aW5nIHRvIHJlYWQgY29tcG9uZW50IHByb3BlcnR5IGFzIFJlY29yZCwgYnV0IGl0IGlzIG5vdCBvbmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgYXMgUmVjb3JkPHN0cmluZywgQ29tcG9uZW50UHJvcGVydHlWYWx1ZT47XG4gICAgfVxuXG4gICAgZ2V0QXJyYXkoKTogQXJyYXk8Q29tcG9uZW50UHJvcGVydHlWYWx1ZT4ge1xuICAgICAgICBpZighdGhpcy5pc0FycmF5KCkpe1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbXBvbmVudFByb3BlcnR5QWNjZXNzRXJyb3IoXCJUcnlpbmcgdG8gcmVhZCBjb21wb25lbnQgcHJvcGVydHkgYXMgYW4gQXJyYXksIGJ1dCBpdCBpcyBub3Qgb25lXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIEFycmF5PENvbXBvbmVudFByb3BlcnR5VmFsdWU+O1xuICAgIH1cblxuICAgIGdldENvbGxlY3Rpb24oKTogQXJyYXk8Q29tcG9uZW50UHJvcGVydHlWYWx1ZT4gfCBSZWNvcmQ8c3RyaW5nLCBDb21wb25lbnRQcm9wZXJ0eVZhbHVlPiB7XG4gICAgICAgIGlmKHRoaXMuaXNQcmltaXRpdmUoKSl7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tcG9uZW50UHJvcGVydHlBY2Nlc3NFcnJvcihcIlRyeWluZyB0byByZWFkIGNvbXBvbmVudCBwcm9wZXJ0eSBhcyBhIENvbGxlY3Rpb24sIGJ1dCBpdCBpcyBub3Qgb25lXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIEFycmF5PENvbXBvbmVudFByb3BlcnR5VmFsdWU+IHwgUmVjb3JkPHN0cmluZywgQ29tcG9uZW50UHJvcGVydHlWYWx1ZT47XG4gICAgfVxuXG4gICAgZ2V0UHJpbWl0aXZlKCk6IFByb3BlcnR5UHJpbWl0aXZlIHtcbiAgICAgICAgaWYoIXRoaXMuaXNQcmltaXRpdmUoKSl7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tcG9uZW50UHJvcGVydHlBY2Nlc3NFcnJvcihcIlRyeWluZyB0byByZWFkIGNvbXBvbmVudCBwcm9wZXJ0eSBhcyBhIHByaW1pdGl2ZSwgYnV0IGl0IGlzIG5vdCBvbmVcIik7IFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIFByb3BlcnR5UHJpbWl0aXZlO1xuICAgIH1cblxuICAgIGlzUmVjb3JkKCk6IHRoaXMgaXMgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQge1xuICAgICAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIENvbXBvbmVudFByb3BlcnR5UmVjb3JkO1xuICAgIH1cblxuICAgIGlzQXJyYXkoKTogdGhpcyBpcyBDb21wb25lbnRQcm9wZXJ0eUFycmF5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBDb21wb25lbnRQcm9wZXJ0eUFycmF5O1xuICAgIH1cblxuICAgIGlzUHJpbWl0aXZlKCk6IHRoaXMgaXMgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUge1xuICAgICAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlO1xuICAgIH1cblxuICAgIGdldFByb3BlcnR5SW5QYXRoKHBhdGg6IFByb3BlcnR5UGF0aCk6IENvbXBvbmVudFByb3BlcnR5VmFsdWUge1xuICAgICAgICBpZihwYXRoLmxlbmd0aCA9PT0gMCl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBlbHNlIGlmKHR5cGVvZiBwYXRoWzBdID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgaWYodGhpcy5nZXRBcnJheSgpLmxlbmd0aCA8PSBwYXRoWzBdKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb21wb25lbnRQcm9wZXJ0eUFjY2Vzc0Vycm9yKGBDb21wb25lbnQgcHJvcGVydHkgYXJyYXkgZG9lcyBub3QgaGF2ZSBhbnkgcHJvcGVydHkgaW4gaW5kZXggJHtwYXRoWzBdfWApO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QXJyYXkoKVtwYXRoWzBdXS5nZXRQcm9wZXJ0eUluUGF0aChwYXRoLnNsaWNlKDEpKTtcbiAgICAgICAgfSBlbHNlIGlmKHR5cGVvZiBwYXRoWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYoIXRoaXMuZ2V0UmVjb3JkKClbcGF0aFswXV0pXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IENvbXBvbmVudFByb3BlcnR5QWNjZXNzRXJyb3IoYENvbXBvbmVudCBwcm9wZXJ0eSBkb2VzIG5vdCBoYXZlIGFueSBjb21wb25lbnQgZm9yIGtleSAke3BhdGhbMF19YCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRSZWNvcmQoKVtwYXRoWzBdXS5nZXRQcm9wZXJ0eUluUGF0aChwYXRoLnNsaWNlKDEpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBFcnJvcihgUGF0aCBpbmNsdWRlcyBub24gdmFsaWQgdmFsdWU6ICR7cGF0aFswXX1gKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwbG9kZSgpOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlW117XG4gICAgICAgIGlmKHRoaXMuaXNQcmltaXRpdmUoKSB8fCB0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBbdGhpc107XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gZmxhdE1hcChPYmplY3QudmFsdWVzKHRoaXMudmFsdWUpLCB2ID0+IHYuZXhwbG9kZSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgdG9TZXJpYWxpemVkKHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gU2VyaWFsaXphdGlvbklEKTogU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5O1xuXG4gICAgcHVibGljIGFic3RyYWN0IGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgdG9KU09OKCk6IENvbXBvbmVudFByb3BlcnR5VmFsdWVUeXBlIHwgdW5kZWZpbmVke1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG59XG5cbmludGVyZmFjZSBOb2RlRGF0YVByaW1pdGl2ZSBleHRlbmRzIE5vZGVEYXRhIHtcbiAgICByZWFkb25seSB2YWx1ZTogUHJvcGVydHlQcmltaXRpdmU7XG59XG5cbnR5cGUgT3V0Z29pbmdDb2xsZWN0aW9uUmVmZXJlbmNlcyA9IHtcbiAgICByZWFkb25seSB2YWx1ZTogUHJvcGVydHlDb2xsZWN0aW9uVmFsdWU7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21wb25lbnRDb2xsZWN0aW9uUHJvcGVydHkgZXh0ZW5kcyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlPE5vZGVEYXRhLCBPdXRnb2luZ0NvbGxlY3Rpb25SZWZlcmVuY2VzPiB7XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLm91dGdvaW5nTm9kZVJlZmVyZW5jZXMudmFsdWU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQgZXh0ZW5kcyBDb21wb25lbnRDb2xsZWN0aW9uUHJvcGVydHkgIHtcbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZTogUmVjb3JkPHN0cmluZywgQ29tcG9uZW50UHJvcGVydHlWYWx1ZT4sIGNvbXBvbmVudFVwZGF0ZVR5cGU/OiBDb21wb25lbnRVcGRhdGVUeXBlKXtcbiAgICAgICAgc3VwZXIoe2NvbXBvbmVudFVwZGF0ZVR5cGV9LCB7dmFsdWV9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9TZXJpYWxpemVkKHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gU2VyaWFsaXphdGlvbklEKTogU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UmVjb3JkIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiBmcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0aGlzLmdldFJlY29yZCgpKS5tYXAoKFtrLCB2XSkgPT4gW2ssIHNlcmlhbGl6ZSh2KV0pKSxcbiAgICAgICAgICAgIGNvbXBvbmVudFVwZGF0ZVR5cGU6IHRoaXMuY29tcG9uZW50VXBkYXRlVHlwZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZ3tcbiAgICAgICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLkNPTVBPTkVOVF9QUk9QRVJUWV9SRUNPUkQ7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UHJvcGVydHlBcnJheSBleHRlbmRzIENvbXBvbmVudENvbGxlY3Rpb25Qcm9wZXJ0eSB7XG4gICAgY29uc3RydWN0b3IodmFsdWU6IENvbXBvbmVudFByb3BlcnR5VmFsdWVbXSwgY29tcG9uZW50VXBkYXRlVHlwZT86IENvbXBvbmVudFVwZGF0ZVR5cGUpe1xuICAgICAgICBzdXBlcih7Y29tcG9uZW50VXBkYXRlVHlwZX0sIHt2YWx1ZX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1NlcmlhbGl6ZWQoc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBTZXJpYWxpemF0aW9uSUQpOiBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlBcnJheSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5nZXRBcnJheSgpLm1hcCh2ID0+IHNlcmlhbGl6ZSh2KSksXG4gICAgICAgICAgICBjb21wb25lbnRVcGRhdGVUeXBlOiB0aGlzLmNvbXBvbmVudFVwZGF0ZVR5cGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmd7XG4gICAgICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5DT01QT05FTlRfUFJPUEVSVFlfQVJSQVk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUgZXh0ZW5kcyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlPE5vZGVEYXRhUHJpbWl0aXZlLCBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4+IHtcblxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZVR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlRGF0YS52YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZTogUHJvcGVydHlQcmltaXRpdmUsIGNvbXBvbmVudFVwZGF0ZVR5cGU/OiBDb21wb25lbnRVcGRhdGVUeXBlKXtcbiAgICAgICAgc3VwZXIoe2NvbXBvbmVudFVwZGF0ZVR5cGUsIHZhbHVlfSwge30pO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1NlcmlhbGl6ZWQoKTogU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLmdldFByaW1pdGl2ZSgpLFxuICAgICAgICAgICAgY29tcG9uZW50VXBkYXRlVHlwZTogdGhpcy5jb21wb25lbnRVcGRhdGVUeXBlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5ne1xuICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuQ09NUE9ORU5UX1BST1BFUlRZX1BSSU1JVElWRTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbXB0eUNvbXBvbmVudFByb3BlcnR5IGV4dGVuZHMgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSB7XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlVHlwZSB8IHVuZGVmaW5lZCB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgICBcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcih7fSx7fSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU2VyaWFsaXplZCgpOiBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlFbXB0eSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY29tcG9uZW50VXBkYXRlVHlwZTogdGhpcy5jb21wb25lbnRVcGRhdGVUeXBlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmd7XG4gICAgICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5DT01QT05FTlRfUFJPUEVSVFlfRU1QVFk7XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvY29tcG9uZW50LXByb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJFQUF1RTtBQUV2RSxvQ0FBZ0Q7QUFDaEQsaURBQWlFO0FBQ2pFLDZEQUF3RDtBQUV4RDs7O0dBR0c7QUFDSCxJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0Isb0NBQWEsQ0FBQTtJQUNiLGtEQUEyQixDQUFBO0lBQzNCLG1FQUE0QyxDQUFBO0FBQzlDLENBQUMsRUFKVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQUk5QjtBQVFELE1BQWEsNEJBQTZCLFNBQVEsS0FBSztDQUFHO0FBQTFELG9FQUEwRDtBQUsxRCxlQUFlO0FBQ2YsTUFBc0Isc0JBQ3BCLFNBQVEsMEJBQW1CO0lBRzNCLElBQVcsbUJBQW1COztRQUM1QixPQUFPLE1BQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsbUNBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDO0lBQ3ZFLENBQUM7SUFJRCxZQUNFLElBQVEsRUFDUixrQkFBc0I7UUFFdEIsS0FBSyxDQUFDLHFDQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUM7WUFDbEIsTUFBTSxJQUFJLDRCQUE0QixDQUFDLGdFQUFnRSxDQUFDLENBQUM7U0FDMUc7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUErQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBQztZQUNqQixNQUFNLElBQUksNEJBQTRCLENBQUMsa0VBQWtFLENBQUMsQ0FBQztTQUM1RztRQUNELE9BQU8sSUFBSSxDQUFDLEtB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QyxDQUFDO0lBQzFDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMxQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1NBQzlDLENBQUM7SUFDSixDQUFDO0lBRU0scUJBQXFCO1FBQzFCLE9BQU8sNENBQW9CLENBQUMsNEJBQTRCLENBQUM7SUFDM0QsQ0FBQztDQUNGO0FBcEJELGdFQW9CQztBQUVELE1BQWEsc0JBQXVCLFNBQVEsc0JBQXNCO0lBQ2hFLElBQVcsS0FBSyxLQUE2QyxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFFaEY7UUFDRSxLQUFLLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTztZQUNMLEtBQUssRUFBRSxTQUFTO1lBQ2hCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyw0Q0FBb0IsQ0FBQyx3QkFBd0IsQ0FBQztJQUN2RCxDQUFDO0NBQ0Y7QUFqQkQsd0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSB9IGZyb20gJy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi9leHBvcnQvanNvbi1zZXJpYWxpemVyJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25DbGFzc2VzIH0gZnJvbSAnLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlcyc7XG5pbXBvcnQgeyBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHksIFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eUFycmF5LCBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlFbXB0eSwgU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlLCBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlSZWNvcmQgfSBmcm9tICcuLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtY29tcG9uZW50LXByb3BlcnR5JztcbmltcG9ydCB7IGZsYXRNYXAsIGZyb21FbnRyaWVzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHksIE91dGdvaW5nUmVmZXJlbmNlcyB9IGZyb20gJy4vbW9kZWwtZW50aXR5JztcbmltcG9ydCB7IE1vZGVsRW50aXR5VHlwZXMgfSBmcm9tICcuL21vZGVsLWVudGl0eS10eXBlcyc7XG5cbi8qKlxuICogSG93IGEgY2hhbmdlIGluIGEgQ29tcG9uZW50UHJvcGVydHlWYWx1ZVxuICogY2F1c2VzIHRoZSBDb21wb25lbnQgdG8gYmUgdXBkYXRlZFxuICovXG5leHBvcnQgZW51bSBDb21wb25lbnRVcGRhdGVUeXBlIHtcbiAgTk9ORSA9ICdOb25lJyxcbiAgUkVQTEFDRU1FTlQgPSAnUmVwbGFjZW1lbnQnLFxuICBQT1NTSUJMRV9SRVBMQUNFTUVOVCA9ICdQb3NzaWJsZVJlcGxhY2VtZW50Jyxcbn1cblxuZXhwb3J0IHR5cGUgUHJvcGVydHlQYXRoID0gKHN0cmluZyB8IG51bWJlcilbXTtcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlQcmltaXRpdmUgPSBzdHJpbmcgfCBudW1iZXI7XG5leHBvcnQgdHlwZSBQcm9wZXJ0eUNvbGxlY3Rpb25WYWx1ZSA9IEFycmF5PENvbXBvbmVudFByb3BlcnR5VmFsdWU+IHwgUmVjb3JkPHN0cmluZywgQ29tcG9uZW50UHJvcGVydHlWYWx1ZT47XG5leHBvcnQgdHlwZSBDb21wb25lbnRQcm9wZXJ0eVZhbHVlVHlwZSA9IFByb3BlcnR5UHJpbWl0aXZlIHwgUHJvcGVydHlDb2xsZWN0aW9uVmFsdWU7XG5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRQcm9wZXJ0eUFjY2Vzc0Vycm9yIGV4dGVuZHMgRXJyb3Ige31cblxudHlwZSBOb2RlRGF0YSA9IHtcbiAgcmVhZG9ubHkgY29tcG9uZW50VXBkYXRlVHlwZT86IENvbXBvbmVudFVwZGF0ZVR5cGUsXG59XG4vKiBUT0RPIFZhbHVlKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlPE5EIGV4dGVuZHMgTm9kZURhdGEgPSBhbnksIE9SIGV4dGVuZHMgT3V0Z29pbmdSZWZlcmVuY2VzID0gYW55PlxuICBleHRlbmRzIE1vZGVsRW50aXR5PE5ELCBPUj5cbiAgaW1wbGVtZW50cyBKU09OU2VyaWFsaXphYmxlIHtcblxuICBwdWJsaWMgZ2V0IGNvbXBvbmVudFVwZGF0ZVR5cGUoKTogQ29tcG9uZW50VXBkYXRlVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZURhdGEuY29tcG9uZW50VXBkYXRlVHlwZSA/PyBDb21wb25lbnRVcGRhdGVUeXBlLk5PTkU7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IHZhbHVlKCk6IENvbXBvbmVudFByb3BlcnR5VmFsdWVUeXBlIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGE6IE5ELFxuICAgIG91dGdvaW5nUmVmZXJlbmNlczogT1IsXG4gICkge1xuICAgIHN1cGVyKE1vZGVsRW50aXR5VHlwZXMucHJvcGVydHksIGRhdGEsIG91dGdvaW5nUmVmZXJlbmNlcyk7XG4gIH1cblxuICBnZXRSZWNvcmQoKTogUmVjb3JkPHN0cmluZywgQ29tcG9uZW50UHJvcGVydHlWYWx1ZT4ge1xuICAgIGlmKCF0aGlzLmlzUmVjb3JkKCkpe1xuICAgICAgdGhyb3cgbmV3IENvbXBvbmVudFByb3BlcnR5QWNjZXNzRXJyb3IoJ1RyeWluZyB0byByZWFkIGNvbXBvbmVudCBwcm9wZXJ0eSBhcyBSZWNvcmQsIGJ1dCBpdCBpcyBub3Qgb25lJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIENvbXBvbmVudFByb3BlcnR5VmFsdWU+O1xuICB9XG5cbiAgZ2V0QXJyYXkoKTogQXJyYXk8Q29tcG9uZW50UHJvcGVydHlWYWx1ZT4ge1xuICAgIGlmKCF0aGlzLmlzQXJyYXkoKSl7XG4gICAgICB0aHJvdyBuZXcgQ29tcG9uZW50UHJvcGVydHlBY2Nlc3NFcnJvcignVHJ5aW5nIHRvIHJlYWQgY29tcG9uZW50IHByb3BlcnR5IGFzIGFuIEFycmF5LCBidXQgaXQgaXMgbm90IG9uZScpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxDb21wb25lbnRQcm9wZXJ0eVZhbHVlPjtcbiAgfVxuXG4gIGdldENvbGxlY3Rpb24oKTogQXJyYXk8Q29tcG9uZW50UHJvcGVydHlWYWx1ZT4gfCBSZWNvcmQ8c3RyaW5nLCBDb21wb25lbnRQcm9wZXJ0eVZhbHVlPiB7XG4gICAgaWYodGhpcy5pc1ByaW1pdGl2ZSgpKXtcbiAgICAgIHRocm93IG5ldyBDb21wb25lbnRQcm9wZXJ0eUFjY2Vzc0Vycm9yKCdUcnlpbmcgdG8gcmVhZCBjb21wb25lbnQgcHJvcGVydHkgYXMgYSBDb2xsZWN0aW9uLCBidXQgaXQgaXMgbm90IG9uZScpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy52YWx1ZSBhcyBBcnJheTxDb21wb25lbnRQcm9wZXJ0eVZhbHVlPiB8IFJlY29yZDxzdHJpbmcsIENvbXBvbmVudFByb3BlcnR5VmFsdWU+O1xuICB9XG5cbiAgZ2V0UHJpbWl0aXZlKCk6IFByb3BlcnR5UHJpbWl0aXZlIHtcbiAgICBpZighdGhpcy5pc1ByaW1pdGl2ZSgpKXtcbiAgICAgIHRocm93IG5ldyBDb21wb25lbnRQcm9wZXJ0eUFjY2Vzc0Vycm9yKCdUcnlpbmcgdG8gcmVhZCBjb21wb25lbnQgcHJvcGVydHkgYXMgYSBwcmltaXRpdmUsIGJ1dCBpdCBpcyBub3Qgb25lJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnZhbHVlIGFzIFByb3BlcnR5UHJpbWl0aXZlO1xuICB9XG5cbiAgaXNSZWNvcmQoKTogdGhpcyBpcyBDb21wb25lbnRQcm9wZXJ0eVJlY29yZCB7XG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBDb21wb25lbnRQcm9wZXJ0eVJlY29yZDtcbiAgfVxuXG4gIGlzQXJyYXkoKTogdGhpcyBpcyBDb21wb25lbnRQcm9wZXJ0eUFycmF5IHtcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIENvbXBvbmVudFByb3BlcnR5QXJyYXk7XG4gIH1cblxuICBpc1ByaW1pdGl2ZSgpOiB0aGlzIGlzIENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlIHtcbiAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlO1xuICB9XG5cbiAgZ2V0UHJvcGVydHlJblBhdGgocGF0aDogUHJvcGVydHlQYXRoKTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSB7XG4gICAgaWYocGF0aC5sZW5ndGggPT09IDApe1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSBlbHNlIGlmKHR5cGVvZiBwYXRoWzBdID09PSAnbnVtYmVyJykge1xuICAgICAgaWYodGhpcy5nZXRBcnJheSgpLmxlbmd0aCA8PSBwYXRoWzBdKVxuICAgICAgICB0aHJvdyBuZXcgQ29tcG9uZW50UHJvcGVydHlBY2Nlc3NFcnJvcihgQ29tcG9uZW50IHByb3BlcnR5IGFycmF5IGRvZXMgbm90IGhhdmUgYW55IHByb3BlcnR5IGluIGluZGV4ICR7cGF0aFswXX1gKTtcbiAgICAgIHJldHVybiB0aGlzLmdldEFycmF5KClbcGF0aFswXV0uZ2V0UHJvcGVydHlJblBhdGgocGF0aC5zbGljZSgxKSk7XG4gICAgfSBlbHNlIGlmKHR5cGVvZiBwYXRoWzBdID09PSAnc3RyaW5nJykge1xuICAgICAgaWYoIXRoaXMuZ2V0UmVjb3JkKClbcGF0aFswXV0pXG4gICAgICAgIHRocm93IG5ldyBDb21wb25lbnRQcm9wZXJ0eUFjY2Vzc0Vycm9yKGBDb21wb25lbnQgcHJvcGVydHkgZG9lcyBub3QgaGF2ZSBhbnkgY29tcG9uZW50IGZvciBrZXkgJHtwYXRoWzBdfWApO1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UmVjb3JkKClbcGF0aFswXV0uZ2V0UHJvcGVydHlJblBhdGgocGF0aC5zbGljZSgxKSk7XG4gICAgfVxuICAgIHRocm93IEVycm9yKGBQYXRoIGluY2x1ZGVzIG5vbiB2YWxpZCB2YWx1ZTogJHtwYXRoWzBdfWApO1xuICB9XG5cbiAgcHVibGljIGV4cGxvZGUoKTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZVtde1xuICAgIGlmKHRoaXMuaXNQcmltaXRpdmUoKSB8fCB0aGlzLnZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBbdGhpc107XG5cbiAgICByZXR1cm4gZmxhdE1hcChPYmplY3QudmFsdWVzKHRoaXMudmFsdWUpLCB2ID0+IHYuZXhwbG9kZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCB0b1NlcmlhbGl6ZWQoc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBTZXJpYWxpemF0aW9uSUQpOiBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHk7XG5cbiAgcHVibGljIGFic3RyYWN0IGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmc7XG5cbiAgcHVibGljIHRvSlNPTigpOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlVHlwZSB8IHVuZGVmaW5lZHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgTm9kZURhdGFQcmltaXRpdmUgZXh0ZW5kcyBOb2RlRGF0YSB7XG4gIHJlYWRvbmx5IHZhbHVlOiBQcm9wZXJ0eVByaW1pdGl2ZTtcbn1cblxudHlwZSBPdXRnb2luZ0NvbGxlY3Rpb25SZWZlcmVuY2VzID0ge1xuICByZWFkb25seSB2YWx1ZTogUHJvcGVydHlDb2xsZWN0aW9uVmFsdWU7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21wb25lbnRDb2xsZWN0aW9uUHJvcGVydHlcbiAgZXh0ZW5kcyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlPE5vZGVEYXRhLCBPdXRnb2luZ0NvbGxlY3Rpb25SZWZlcmVuY2VzPlxue1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IENvbXBvbmVudFByb3BlcnR5VmFsdWVUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLnZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRQcm9wZXJ0eVJlY29yZCBleHRlbmRzIENvbXBvbmVudENvbGxlY3Rpb25Qcm9wZXJ0eSAge1xuICBjb25zdHJ1Y3Rvcih2YWx1ZTogUmVjb3JkPHN0cmluZywgQ29tcG9uZW50UHJvcGVydHlWYWx1ZT4sIGNvbXBvbmVudFVwZGF0ZVR5cGU/OiBDb21wb25lbnRVcGRhdGVUeXBlKXtcbiAgICBzdXBlcih7Y29tcG9uZW50VXBkYXRlVHlwZX0sIHt2YWx1ZX0pO1xuICB9XG5cbiAgcHVibGljIHRvU2VyaWFsaXplZChzZXJpYWxpemU6IChvYmo6IEpTT05TZXJpYWxpemFibGUpID0+IFNlcmlhbGl6YXRpb25JRCk6IFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eVJlY29yZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBmcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh0aGlzLmdldFJlY29yZCgpKS5tYXAoKFtrLCB2XSkgPT4gW2ssIHNlcmlhbGl6ZSh2KV0pKSxcbiAgICAgIGNvbXBvbmVudFVwZGF0ZVR5cGU6IHRoaXMuY29tcG9uZW50VXBkYXRlVHlwZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmd7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLkNPTVBPTkVOVF9QUk9QRVJUWV9SRUNPUkQ7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbXBvbmVudFByb3BlcnR5QXJyYXkgZXh0ZW5kcyBDb21wb25lbnRDb2xsZWN0aW9uUHJvcGVydHkge1xuICBjb25zdHJ1Y3Rvcih2YWx1ZTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZVtdLCBjb21wb25lbnRVcGRhdGVUeXBlPzogQ29tcG9uZW50VXBkYXRlVHlwZSl7XG4gICAgc3VwZXIoe2NvbXBvbmVudFVwZGF0ZVR5cGV9LCB7dmFsdWV9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b1NlcmlhbGl6ZWQoc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBTZXJpYWxpemF0aW9uSUQpOiBTZXJpYWxpemVkQ29tcG9uZW50UHJvcGVydHlBcnJheSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiB0aGlzLmdldEFycmF5KCkubWFwKHYgPT4gc2VyaWFsaXplKHYpKSxcbiAgICAgIGNvbXBvbmVudFVwZGF0ZVR5cGU6IHRoaXMuY29tcG9uZW50VXBkYXRlVHlwZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmd7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLkNPTVBPTkVOVF9QUk9QRVJUWV9BUlJBWTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUgZXh0ZW5kcyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlPE5vZGVEYXRhUHJpbWl0aXZlLCBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4+IHtcblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IENvbXBvbmVudFByb3BlcnR5VmFsdWVUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlRGF0YS52YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHZhbHVlOiBQcm9wZXJ0eVByaW1pdGl2ZSwgY29tcG9uZW50VXBkYXRlVHlwZT86IENvbXBvbmVudFVwZGF0ZVR5cGUpe1xuICAgIHN1cGVyKHtjb21wb25lbnRVcGRhdGVUeXBlLCB2YWx1ZX0sIHt9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b1NlcmlhbGl6ZWQoKTogU2VyaWFsaXplZENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHRoaXMuZ2V0UHJpbWl0aXZlKCksXG4gICAgICBjb21wb25lbnRVcGRhdGVUeXBlOiB0aGlzLmNvbXBvbmVudFVwZGF0ZVR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5ne1xuICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5DT01QT05FTlRfUFJPUEVSVFlfUFJJTUlUSVZFO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbXB0eUNvbXBvbmVudFByb3BlcnR5IGV4dGVuZHMgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSB7XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZVR5cGUgfCB1bmRlZmluZWQgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG5cbiAgY29uc3RydWN0b3IoKXtcbiAgICBzdXBlcih7fSx7fSk7XG4gIH1cblxuICBwdWJsaWMgdG9TZXJpYWxpemVkKCk6IFNlcmlhbGl6ZWRDb21wb25lbnRQcm9wZXJ0eUVtcHR5IHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIGNvbXBvbmVudFVwZGF0ZVR5cGU6IHRoaXMuY29tcG9uZW50VXBkYXRlVHlwZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmd7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLkNPTVBPTkVOVF9QUk9QRVJUWV9FTVBUWTtcbiAgfVxufSJdfQ==

@@ -1,7 +0,7 @@

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializedComponent } from "../export/serialized-interfaces/infra-model/serialized-component";
import { ComponentPropertyValue } from "./component-property";
import { ModelEntity } from "./model-entity";
import { Relationship } from "./relationship";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializedComponent } from '../export/serialized-interfaces/infra-model/serialized-component';
import { ComponentPropertyValue } from './component-property';
import { ModelEntity } from './model-entity';
import { Relationship } from './relationship';
declare type NodeData = {

@@ -32,5 +32,5 @@ readonly type: string;

/**
* properties hold any values that should be tracked
* by the change analysis but do not have any other relevant behaviors
*/
* properties hold any values that should be tracked
* by the change analysis but do not have any other relevant behaviors
*/
get type(): string;

@@ -37,0 +37,0 @@ get subtype(): string | undefined;

@@ -24,3 +24,3 @@ "use strict";

hasRelationship: new Set(),
hasProperties: (_a = options === null || options === void 0 ? void 0 : options.properties) !== null && _a !== void 0 ? _a : new component_property_1.EmptyComponentProperty()
hasProperties: (_a = options === null || options === void 0 ? void 0 : options.properties) !== null && _a !== void 0 ? _a : new component_property_1.EmptyComponentProperty(),
});

@@ -32,5 +32,5 @@ this.incoming = new Set();

/**
* properties hold any values that should be tracked
* by the change analysis but do not have any other relevant behaviors
*/
* properties hold any values that should be tracked
* by the change analysis but do not have any other relevant behaviors
*/
get type() { return this.nodeData.type; }

@@ -41,3 +41,3 @@ get subtype() { return this.nodeData.subtype; }

if (relationship.source !== this)
throw Error("Trying to add relationship that does not belong to component");
throw Error('Trying to add relationship that does not belong to component');
this.outgoing.add(relationship);

@@ -48,3 +48,3 @@ relationship.target.incoming.add(relationship);

if (relationship.target !== this)
throw Error("Trying to add relationship that does not belong to component");
throw Error('Trying to add relationship that does not belong to component');
relationship.source.addOutgoing(relationship);

@@ -54,3 +54,3 @@ }

if (relationship.source !== this)
throw Error("Trying to remove relationship that does not belong to component");
throw Error('Trying to remove relationship that does not belong to component');
this.outgoing.delete(relationship);

@@ -61,3 +61,3 @@ relationship.target.incoming.delete(relationship);

if (relationship.target !== this)
throw Error("Trying to remove relationship that does not belong to component");
throw Error('Trying to remove relationship that does not belong to component');
relationship.source.removeOutgoing(relationship);

@@ -70,3 +70,3 @@ }

subtype: this.subtype,
name: this.name
name: this.name,
};

@@ -79,2 +79,2 @@ }

exports.Component = Component;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJFQUF1RTtBQUV2RSw2REFBc0Y7QUFDdEYsaURBQTZDO0FBQzdDLDZEQUF3RDtBQW1CeEQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxTQUFVLFNBQVEsMEJBQTZDO0lBZXhFLFlBQVksSUFBWSxFQUFFLElBQVksRUFBRSxPQUEyQjs7UUFDL0QsS0FBSyxDQUNELHFDQUFnQixDQUFDLFNBQVMsRUFDMUI7WUFDSSxJQUFJO1lBQ0osSUFBSTtZQUNKLE9BQU8sRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTztTQUM1QixFQUFFO1lBQ0MsZUFBZSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQzFCLGFBQWEsRUFBRSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxVQUFVLG1DQUFJLElBQUksMkNBQXNCLEVBQUU7U0FDckUsQ0FDSixDQUFDO1FBdkJDLGFBQVEsR0FBc0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQXdCL0MsQ0FBQztJQXpCRCxJQUFJLFFBQVEsS0FBdUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUd4RixJQUFJLFVBQVUsS0FBNkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUU5Rjs7O09BR0c7SUFDSCxJQUFXLElBQUksS0FBYSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RCxJQUFXLE9BQU8sS0FBeUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUUsSUFBVyxJQUFJLEtBQWEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFnQmpELFdBQVcsQ0FBQyxZQUEwQjtRQUN6QyxJQUFHLFlBQVksQ0FBQyxNQUFNLEtBQUssSUFBSTtZQUMzQixNQUFNLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sV0FBVyxDQUFDLFlBQTBCO1FBQ3pDLElBQUcsWUFBWSxDQUFDLE1BQU0sS0FBSyxJQUFJO1lBQzNCLE1BQU0sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFFaEYsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxZQUEwQjtRQUM1QyxJQUFHLFlBQVksQ0FBQyxNQUFNLEtBQUssSUFBSTtZQUMzQixNQUFNLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sY0FBYyxDQUFDLFlBQTBCO1FBQzVDLElBQUcsWUFBWSxDQUFDLE1BQU0sS0FBSyxJQUFJO1lBQzNCLE1BQU0sS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7UUFFbkYsWUFBWSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFxRDtRQUNyRSxPQUFPO1lBQ0gsVUFBVSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3RDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDbEIsQ0FBQztJQUNOLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsT0FBTyw0Q0FBb0IsQ0FBQyxTQUFTLENBQUM7SUFDMUMsQ0FBQztDQUNKO0FBckVELDhCQXFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTT05TZXJpYWxpemFibGUgfSBmcm9tIFwiLi4vZXhwb3J0L2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tIFwiLi4vZXhwb3J0L2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkNsYXNzZXMgfSBmcm9tIFwiLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlc1wiO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudCB9IGZyb20gXCIuLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLCBFbXB0eUNvbXBvbmVudFByb3BlcnR5IH0gZnJvbSBcIi4vY29tcG9uZW50LXByb3BlcnR5XCI7XG5pbXBvcnQgeyBNb2RlbEVudGl0eSB9IGZyb20gXCIuL21vZGVsLWVudGl0eVwiO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHlUeXBlcyB9IGZyb20gXCIuL21vZGVsLWVudGl0eS10eXBlc1wiO1xuaW1wb3J0IHsgUmVsYXRpb25zaGlwIH0gZnJvbSBcIi4vcmVsYXRpb25zaGlwXCI7XG5cbnR5cGUgTm9kZURhdGEgPSB7XG4gICAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHN1YnR5cGU/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xufVxuXG50eXBlIE91dGdvaW5nTm9kZVJlZmVyZW5jZXMgPSB7XG4gICAgcmVhZG9ubHkgaGFzUmVsYXRpb25zaGlwOiBTZXQ8UmVsYXRpb25zaGlwPjtcbiAgICByZWFkb25seSBoYXNQcm9wZXJ0aWVzOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlO1xufVxuXG5pbnRlcmZhY2UgQ29tcG9uZW50T3B0aW9ucyB7XG4gICAgcmVhZG9ubHkgc3VidHlwZT86IHN0cmluZztcbiAgICByZWFkb25seSBwcm9wZXJ0aWVzOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlO1xufVxuXG4vKipcbiAqIENvbXBvbmVudCBpcyBhbnkgZWxlbWVudCBvZiB0aGUgaW5mcmFzdHJ1Y3R1cmUgZGVmaW5pdGlvblxuICogXG4gKiBFeGFtcGxlcyBpbmNsdWRlIHJlc291cmNlcywgcmVzb3VyY2UgZ3JvdXBzLCBzZXRzIG9mIGNvbmZpZ3VyYXRpb25zLCB2YXJpYWJsZXMsXG4gKiBvciBhbnkgb3RoZXIgZW50aXR5IHRoYXQgaW5mbHVlbmNlcyB0aGUgaW5mcmFzdHJ1Y3R1cmUgZGVwbG95bWVudCBvciB0aGUgdXNlcidzXG4gKiBwZXJjZXB0aW9uIG9mIGl0IGluIGFueSB3YXkuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21wb25lbnQgZXh0ZW5kcyBNb2RlbEVudGl0eTxOb2RlRGF0YSwgT3V0Z29pbmdOb2RlUmVmZXJlbmNlcz4gaW1wbGVtZW50cyBKU09OU2VyaWFsaXphYmxlIHtcbiAgICBcbiAgICBnZXQgb3V0Z29pbmcoKTogU2V0PFJlbGF0aW9uc2hpcD57IHJldHVybiB0aGlzLm91dGdvaW5nTm9kZVJlZmVyZW5jZXMuaGFzUmVsYXRpb25zaGlwOyB9XG4gICAgcHVibGljIGluY29taW5nOiBTZXQ8UmVsYXRpb25zaGlwPiA9IG5ldyBTZXQoKTtcblxuICAgIGdldCBwcm9wZXJ0aWVzKCk6IENvbXBvbmVudFByb3BlcnR5VmFsdWUgeyByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLmhhc1Byb3BlcnRpZXM7IH1cblxuICAgIC8qKlxuICAgICAqIHByb3BlcnRpZXMgaG9sZCBhbnkgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIHRyYWNrZWRcbiAgICAgKiBieSB0aGUgY2hhbmdlIGFuYWx5c2lzIGJ1dCBkbyBub3QgaGF2ZSBhbnkgb3RoZXIgcmVsZXZhbnQgYmVoYXZpb3JzXG4gICAgICovXG4gICAgcHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLm5vZGVEYXRhLnR5cGU7IH1cbiAgICBwdWJsaWMgZ2V0IHN1YnR5cGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMubm9kZURhdGEuc3VidHlwZTsgfVxuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5ub2RlRGF0YS5uYW1lOyB9XG5cbiAgICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgb3B0aW9ucz8gOiBDb21wb25lbnRPcHRpb25zKXtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBNb2RlbEVudGl0eVR5cGVzLmNvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgc3VidHlwZTogb3B0aW9ucz8uc3VidHlwZSxcbiAgICAgICAgICAgIH0sIHtcbiAgICAgICAgICAgICAgICBoYXNSZWxhdGlvbnNoaXA6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgICAgICBoYXNQcm9wZXJ0aWVzOiBvcHRpb25zPy5wcm9wZXJ0aWVzID8/IG5ldyBFbXB0eUNvbXBvbmVudFByb3BlcnR5KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkT3V0Z29pbmcocmVsYXRpb25zaGlwOiBSZWxhdGlvbnNoaXApOiB2b2lke1xuICAgICAgICBpZihyZWxhdGlvbnNoaXAuc291cmNlICE9PSB0aGlzKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJUcnlpbmcgdG8gYWRkIHJlbGF0aW9uc2hpcCB0aGF0IGRvZXMgbm90IGJlbG9uZyB0byBjb21wb25lbnRcIik7XG4gICAgICAgIHRoaXMub3V0Z29pbmcuYWRkKHJlbGF0aW9uc2hpcCk7XG4gICAgICAgIHJlbGF0aW9uc2hpcC50YXJnZXQuaW5jb21pbmcuYWRkKHJlbGF0aW9uc2hpcCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZEluY29taW5nKHJlbGF0aW9uc2hpcDogUmVsYXRpb25zaGlwKTogdm9pZCB7XG4gICAgICAgIGlmKHJlbGF0aW9uc2hpcC50YXJnZXQgIT09IHRoaXMpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcIlRyeWluZyB0byBhZGQgcmVsYXRpb25zaGlwIHRoYXQgZG9lcyBub3QgYmVsb25nIHRvIGNvbXBvbmVudFwiKTtcblxuICAgICAgICByZWxhdGlvbnNoaXAuc291cmNlLmFkZE91dGdvaW5nKHJlbGF0aW9uc2hpcCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZU91dGdvaW5nKHJlbGF0aW9uc2hpcDogUmVsYXRpb25zaGlwKTogdm9pZHtcbiAgICAgICAgaWYocmVsYXRpb25zaGlwLnNvdXJjZSAhPT0gdGhpcylcbiAgICAgICAgICAgIHRocm93IEVycm9yKFwiVHJ5aW5nIHRvIHJlbW92ZSByZWxhdGlvbnNoaXAgdGhhdCBkb2VzIG5vdCBiZWxvbmcgdG8gY29tcG9uZW50XCIpO1xuICAgICAgICB0aGlzLm91dGdvaW5nLmRlbGV0ZShyZWxhdGlvbnNoaXApO1xuICAgICAgICByZWxhdGlvbnNoaXAudGFyZ2V0LmluY29taW5nLmRlbGV0ZShyZWxhdGlvbnNoaXApO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVJbmNvbWluZyhyZWxhdGlvbnNoaXA6IFJlbGF0aW9uc2hpcCk6IHZvaWQge1xuICAgICAgICBpZihyZWxhdGlvbnNoaXAudGFyZ2V0ICE9PSB0aGlzKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJUcnlpbmcgdG8gcmVtb3ZlIHJlbGF0aW9uc2hpcCB0aGF0IGRvZXMgbm90IGJlbG9uZyB0byBjb21wb25lbnRcIik7XG5cbiAgICAgICAgcmVsYXRpb25zaGlwLnNvdXJjZS5yZW1vdmVPdXRnb2luZyhyZWxhdGlvbnNoaXApO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1NlcmlhbGl6ZWQoc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBTZXJpYWxpemF0aW9uSUQpOiBTZXJpYWxpemVkQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHNlcmlhbGl6ZSh0aGlzLnByb3BlcnRpZXMpLFxuICAgICAgICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgICAgICAgc3VidHlwZTogdGhpcy5zdWJ0eXBlLFxuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmd7XG4gICAgICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5DT01QT05FTlQ7XG4gICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJFQUF1RTtBQUV2RSw2REFBc0Y7QUFDdEYsaURBQTZDO0FBQzdDLDZEQUF3RDtBQW1CeEQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxTQUFVLFNBQVEsMEJBQTZDO0lBZTFFLFlBQVksSUFBWSxFQUFFLElBQVksRUFBRSxPQUEyQjs7UUFDakUsS0FBSyxDQUNILHFDQUFnQixDQUFDLFNBQVMsRUFDMUI7WUFDRSxJQUFJO1lBQ0osSUFBSTtZQUNKLE9BQU8sRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTztTQUMxQixFQUFFO1lBQ0QsZUFBZSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQzFCLGFBQWEsRUFBRSxNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxVQUFVLG1DQUFJLElBQUksMkNBQXNCLEVBQUU7U0FDbkUsQ0FDRixDQUFDO1FBdkJHLGFBQVEsR0FBc0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQXdCL0MsQ0FBQztJQXpCRCxJQUFJLFFBQVEsS0FBdUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUd4RixJQUFJLFVBQVUsS0FBNkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUU5Rjs7O1NBR0s7SUFDTCxJQUFXLElBQUksS0FBYSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RCxJQUFXLE9BQU8sS0FBeUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDMUUsSUFBVyxJQUFJLEtBQWEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFnQmpELFdBQVcsQ0FBQyxZQUEwQjtRQUMzQyxJQUFHLFlBQVksQ0FBQyxNQUFNLEtBQUssSUFBSTtZQUM3QixNQUFNLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sV0FBVyxDQUFDLFlBQTBCO1FBQzNDLElBQUcsWUFBWSxDQUFDLE1BQU0sS0FBSyxJQUFJO1lBQzdCLE1BQU0sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFFOUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxZQUEwQjtRQUM5QyxJQUFHLFlBQVksQ0FBQyxNQUFNLEtBQUssSUFBSTtZQUM3QixNQUFNLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0sY0FBYyxDQUFDLFlBQTBCO1FBQzlDLElBQUcsWUFBWSxDQUFDLE1BQU0sS0FBSyxJQUFJO1lBQzdCLE1BQU0sS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7UUFFakYsWUFBWSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFxRDtRQUN2RSxPQUFPO1lBQ0wsVUFBVSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3RDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyw0Q0FBb0IsQ0FBQyxTQUFTLENBQUM7SUFDeEMsQ0FBQztDQUNGO0FBckVELDhCQXFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTT05TZXJpYWxpemFibGUgfSBmcm9tICcuLi9leHBvcnQvanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSAnLi4vZXhwb3J0L2pzb24tc2VyaWFsaXplcic7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uQ2xhc3NlcyB9IGZyb20gJy4uL2V4cG9ydC9zZXJpYWxpemF0aW9uLWNsYXNzZXMnO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudCB9IGZyb20gJy4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSwgRW1wdHlDb21wb25lbnRQcm9wZXJ0eSB9IGZyb20gJy4vY29tcG9uZW50LXByb3BlcnR5JztcbmltcG9ydCB7IE1vZGVsRW50aXR5IH0gZnJvbSAnLi9tb2RlbC1lbnRpdHknO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHlUeXBlcyB9IGZyb20gJy4vbW9kZWwtZW50aXR5LXR5cGVzJztcbmltcG9ydCB7IFJlbGF0aW9uc2hpcCB9IGZyb20gJy4vcmVsYXRpb25zaGlwJztcblxudHlwZSBOb2RlRGF0YSA9IHtcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICByZWFkb25seSBzdWJ0eXBlPzogc3RyaW5nO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbnR5cGUgT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyA9IHtcbiAgcmVhZG9ubHkgaGFzUmVsYXRpb25zaGlwOiBTZXQ8UmVsYXRpb25zaGlwPjtcbiAgcmVhZG9ubHkgaGFzUHJvcGVydGllczogQ29tcG9uZW50UHJvcGVydHlWYWx1ZTtcbn1cblxuaW50ZXJmYWNlIENvbXBvbmVudE9wdGlvbnMge1xuICByZWFkb25seSBzdWJ0eXBlPzogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlO1xufVxuXG4vKipcbiAqIENvbXBvbmVudCBpcyBhbnkgZWxlbWVudCBvZiB0aGUgaW5mcmFzdHJ1Y3R1cmUgZGVmaW5pdGlvblxuICpcbiAqIEV4YW1wbGVzIGluY2x1ZGUgcmVzb3VyY2VzLCByZXNvdXJjZSBncm91cHMsIHNldHMgb2YgY29uZmlndXJhdGlvbnMsIHZhcmlhYmxlcyxcbiAqIG9yIGFueSBvdGhlciBlbnRpdHkgdGhhdCBpbmZsdWVuY2VzIHRoZSBpbmZyYXN0cnVjdHVyZSBkZXBsb3ltZW50IG9yIHRoZSB1c2VyJ3NcbiAqIHBlcmNlcHRpb24gb2YgaXQgaW4gYW55IHdheS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBvbmVudCBleHRlbmRzIE1vZGVsRW50aXR5PE5vZGVEYXRhLCBPdXRnb2luZ05vZGVSZWZlcmVuY2VzPiBpbXBsZW1lbnRzIEpTT05TZXJpYWxpemFibGUge1xuXG4gIGdldCBvdXRnb2luZygpOiBTZXQ8UmVsYXRpb25zaGlwPnsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5oYXNSZWxhdGlvbnNoaXA7IH1cbiAgcHVibGljIGluY29taW5nOiBTZXQ8UmVsYXRpb25zaGlwPiA9IG5ldyBTZXQoKTtcblxuICBnZXQgcHJvcGVydGllcygpOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlIHsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5oYXNQcm9wZXJ0aWVzOyB9XG5cbiAgLyoqXG4gICAgICogcHJvcGVydGllcyBob2xkIGFueSB2YWx1ZXMgdGhhdCBzaG91bGQgYmUgdHJhY2tlZFxuICAgICAqIGJ5IHRoZSBjaGFuZ2UgYW5hbHlzaXMgYnV0IGRvIG5vdCBoYXZlIGFueSBvdGhlciByZWxldmFudCBiZWhhdmlvcnNcbiAgICAgKi9cbiAgcHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLm5vZGVEYXRhLnR5cGU7IH1cbiAgcHVibGljIGdldCBzdWJ0eXBlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLm5vZGVEYXRhLnN1YnR5cGU7IH1cbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLm5vZGVEYXRhLm5hbWU7IH1cblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgb3B0aW9ucz8gOiBDb21wb25lbnRPcHRpb25zKXtcbiAgICBzdXBlcihcbiAgICAgIE1vZGVsRW50aXR5VHlwZXMuY29tcG9uZW50LFxuICAgICAge1xuICAgICAgICBuYW1lLFxuICAgICAgICB0eXBlLFxuICAgICAgICBzdWJ0eXBlOiBvcHRpb25zPy5zdWJ0eXBlLFxuICAgICAgfSwge1xuICAgICAgICBoYXNSZWxhdGlvbnNoaXA6IG5ldyBTZXQoKSxcbiAgICAgICAgaGFzUHJvcGVydGllczogb3B0aW9ucz8ucHJvcGVydGllcyA/PyBuZXcgRW1wdHlDb21wb25lbnRQcm9wZXJ0eSgpLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZE91dGdvaW5nKHJlbGF0aW9uc2hpcDogUmVsYXRpb25zaGlwKTogdm9pZHtcbiAgICBpZihyZWxhdGlvbnNoaXAuc291cmNlICE9PSB0aGlzKVxuICAgICAgdGhyb3cgRXJyb3IoJ1RyeWluZyB0byBhZGQgcmVsYXRpb25zaGlwIHRoYXQgZG9lcyBub3QgYmVsb25nIHRvIGNvbXBvbmVudCcpO1xuICAgIHRoaXMub3V0Z29pbmcuYWRkKHJlbGF0aW9uc2hpcCk7XG4gICAgcmVsYXRpb25zaGlwLnRhcmdldC5pbmNvbWluZy5hZGQocmVsYXRpb25zaGlwKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRJbmNvbWluZyhyZWxhdGlvbnNoaXA6IFJlbGF0aW9uc2hpcCk6IHZvaWQge1xuICAgIGlmKHJlbGF0aW9uc2hpcC50YXJnZXQgIT09IHRoaXMpXG4gICAgICB0aHJvdyBFcnJvcignVHJ5aW5nIHRvIGFkZCByZWxhdGlvbnNoaXAgdGhhdCBkb2VzIG5vdCBiZWxvbmcgdG8gY29tcG9uZW50Jyk7XG5cbiAgICByZWxhdGlvbnNoaXAuc291cmNlLmFkZE91dGdvaW5nKHJlbGF0aW9uc2hpcCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlT3V0Z29pbmcocmVsYXRpb25zaGlwOiBSZWxhdGlvbnNoaXApOiB2b2lke1xuICAgIGlmKHJlbGF0aW9uc2hpcC5zb3VyY2UgIT09IHRoaXMpXG4gICAgICB0aHJvdyBFcnJvcignVHJ5aW5nIHRvIHJlbW92ZSByZWxhdGlvbnNoaXAgdGhhdCBkb2VzIG5vdCBiZWxvbmcgdG8gY29tcG9uZW50Jyk7XG4gICAgdGhpcy5vdXRnb2luZy5kZWxldGUocmVsYXRpb25zaGlwKTtcbiAgICByZWxhdGlvbnNoaXAudGFyZ2V0LmluY29taW5nLmRlbGV0ZShyZWxhdGlvbnNoaXApO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUluY29taW5nKHJlbGF0aW9uc2hpcDogUmVsYXRpb25zaGlwKTogdm9pZCB7XG4gICAgaWYocmVsYXRpb25zaGlwLnRhcmdldCAhPT0gdGhpcylcbiAgICAgIHRocm93IEVycm9yKCdUcnlpbmcgdG8gcmVtb3ZlIHJlbGF0aW9uc2hpcCB0aGF0IGRvZXMgbm90IGJlbG9uZyB0byBjb21wb25lbnQnKTtcblxuICAgIHJlbGF0aW9uc2hpcC5zb3VyY2UucmVtb3ZlT3V0Z29pbmcocmVsYXRpb25zaGlwKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1NlcmlhbGl6ZWQoc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBTZXJpYWxpemF0aW9uSUQpOiBTZXJpYWxpemVkQ29tcG9uZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJvcGVydGllczogc2VyaWFsaXplKHRoaXMucHJvcGVydGllcyksXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICBzdWJ0eXBlOiB0aGlzLnN1YnR5cGUsXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5ne1xuICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5DT01QT05FTlQ7XG4gIH1cbn1cbiJdfQ==

@@ -1,7 +0,7 @@

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializedDependencyRelationship } from "../export/serialized-interfaces/infra-model/serialized-relationship";
import { Component } from "./component";
import { PropertyPath } from "./component-property";
import { Relationship, RelationshipData } from "./relationship";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializedDependencyRelationship } from '../export/serialized-interfaces/infra-model/serialized-relationship';
import { Component } from './component';
import { PropertyPath } from './component-property';
import { Relationship, RelationshipData } from './relationship';
export declare type DependencyRelationshipOptions = {

@@ -8,0 +8,0 @@ readonly sourcePropertyPath?: PropertyPath;

@@ -20,3 +20,3 @@ "use strict";

sourcePropertyPath: this.sourcePropertyPath,
targetAttributePath: this.targetAttributePath
targetAttributePath: this.targetAttributePath,
};

@@ -29,2 +29,2 @@ }

exports.DependencyRelationship = DependencyRelationship;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeS1yZWxhdGlvbnNoaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmZyYS1tb2RlbC9kZXBlbmRlbmN5LXJlbGF0aW9uc2hpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwyRUFBdUU7QUFJdkUsaURBQWdFO0FBU2hFOzs7R0FHRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsMkJBQXdDO0lBRWhGLElBQVcsa0JBQWtCLGFBQW1CLE9BQU8sTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixtQ0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLElBQVcsbUJBQW1CLGFBQW1CLE9BQU8sTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixtQ0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWxHLFlBQVksTUFBaUIsRUFBRSxNQUFpQixFQUFFLElBQVksRUFBRSxPQUF1QztRQUNuRyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFxRDtRQUNyRSxPQUFPO1lBQ0gsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztZQUNoQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDaEQsQ0FBQztJQUNOLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsT0FBTyw0Q0FBb0IsQ0FBQyx1QkFBdUIsQ0FBQztJQUN4RCxDQUFDO0NBRUo7QUFyQkQsd0RBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSB9IGZyb20gXCIuLi9leHBvcnQvanNvbi1zZXJpYWxpemFibGVcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gXCIuLi9leHBvcnQvanNvbi1zZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uQ2xhc3NlcyB9IGZyb20gXCIuLi9leHBvcnQvc2VyaWFsaXphdGlvbi1jbGFzc2VzXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVkRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCB9IGZyb20gXCIuLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtcmVsYXRpb25zaGlwXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb3BlcnR5UGF0aCB9IGZyb20gXCIuL2NvbXBvbmVudC1wcm9wZXJ0eVwiO1xuaW1wb3J0IHsgUmVsYXRpb25zaGlwLCBSZWxhdGlvbnNoaXBEYXRhIH0gZnJvbSBcIi4vcmVsYXRpb25zaGlwXCI7XG5cbmV4cG9ydCB0eXBlIERlcGVuZGVuY3lSZWxhdGlvbnNoaXBPcHRpb25zID0ge1xuICAgIHJlYWRvbmx5IHNvdXJjZVByb3BlcnR5UGF0aD86IFByb3BlcnR5UGF0aFxuICAgIHJlYWRvbmx5IHRhcmdldEF0dHJpYnV0ZVBhdGg/OiBQcm9wZXJ0eVBhdGhcbn1cblxuaW50ZXJmYWNlIERlcGVuZGVuY3lSZWxhdGlvbnNoaXBEYXRhIGV4dGVuZHMgUmVsYXRpb25zaGlwRGF0YSwgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcE9wdGlvbnMge31cblxuLyoqXG4gKiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwIGRlc2NyaWJlcyB3aGV0aGVyIGNoYW5nZXMgaW4gdGhlIHRhcmdldCBjb21wb25lbnRcbiAqIGltcGFjdCB0aGUgc291cmNlIGNvbXBvbmVudCwgYW5kIGhvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIERlcGVuZGVuY3lSZWxhdGlvbnNoaXAgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8RGVwZW5kZW5jeVJlbGF0aW9uc2hpcERhdGE+IHtcblxuICAgIHB1YmxpYyBnZXQgc291cmNlUHJvcGVydHlQYXRoKCk6IFByb3BlcnR5UGF0aCB7IHJldHVybiB0aGlzLm5vZGVEYXRhLnNvdXJjZVByb3BlcnR5UGF0aCA/PyBbXTsgfVxuICAgIHB1YmxpYyBnZXQgdGFyZ2V0QXR0cmlidXRlUGF0aCgpOiBQcm9wZXJ0eVBhdGggeyByZXR1cm4gdGhpcy5ub2RlRGF0YS50YXJnZXRBdHRyaWJ1dGVQYXRoID8/IFtdOyB9XG5cbiAgICBjb25zdHJ1Y3Rvcihzb3VyY2U6IENvbXBvbmVudCwgdGFyZ2V0OiBDb21wb25lbnQsIHR5cGU6IHN0cmluZywgb3B0aW9ucz86IERlcGVuZGVuY3lSZWxhdGlvbnNoaXBPcHRpb25zKXtcbiAgICAgICAgc3VwZXIoc291cmNlLCB0YXJnZXQsIHt0eXBlLCAuLi5vcHRpb25zfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU2VyaWFsaXplZChzZXJpYWxpemU6IChvYmo6IEpTT05TZXJpYWxpemFibGUpID0+IFNlcmlhbGl6YXRpb25JRCk6IFNlcmlhbGl6ZWREZXBlbmRlbmN5UmVsYXRpb25zaGlwIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnN1cGVyLnRvU2VyaWFsaXplZChzZXJpYWxpemUpLFxuICAgICAgICAgICAgc291cmNlUHJvcGVydHlQYXRoOiB0aGlzLnNvdXJjZVByb3BlcnR5UGF0aCxcbiAgICAgICAgICAgIHRhcmdldEF0dHJpYnV0ZVBhdGg6IHRoaXMudGFyZ2V0QXR0cmlidXRlUGF0aFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5ne1xuICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuREVQRU5ERU5DWV9SRUxBVElPTlNISVA7XG4gICAgfVxuXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwZW5kZW5jeS1yZWxhdGlvbnNoaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmZyYS1tb2RlbC9kZXBlbmRlbmN5LXJlbGF0aW9uc2hpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwyRUFBdUU7QUFJdkUsaURBQWdFO0FBU2hFOzs7R0FHRztBQUNILE1BQWEsc0JBQXVCLFNBQVEsMkJBQXdDO0lBRWxGLElBQVcsa0JBQWtCLGFBQW1CLE9BQU8sTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixtQ0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLElBQVcsbUJBQW1CLGFBQW1CLE9BQU8sTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixtQ0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWxHLFlBQVksTUFBaUIsRUFBRSxNQUFpQixFQUFFLElBQVksRUFBRSxPQUF1QztRQUNyRyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFxRDtRQUN2RSxPQUFPO1lBQ0wsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztZQUNoQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyw0Q0FBb0IsQ0FBQyx1QkFBdUIsQ0FBQztJQUN0RCxDQUFDO0NBRUY7QUFyQkQsd0RBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSB9IGZyb20gJy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi9leHBvcnQvanNvbi1zZXJpYWxpemVyJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25DbGFzc2VzIH0gZnJvbSAnLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlcyc7XG5pbXBvcnQgeyBTZXJpYWxpemVkRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCB9IGZyb20gJy4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1yZWxhdGlvbnNoaXAnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvcGVydHlQYXRoIH0gZnJvbSAnLi9jb21wb25lbnQtcHJvcGVydHknO1xuaW1wb3J0IHsgUmVsYXRpb25zaGlwLCBSZWxhdGlvbnNoaXBEYXRhIH0gZnJvbSAnLi9yZWxhdGlvbnNoaXAnO1xuXG5leHBvcnQgdHlwZSBEZXBlbmRlbmN5UmVsYXRpb25zaGlwT3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgc291cmNlUHJvcGVydHlQYXRoPzogUHJvcGVydHlQYXRoXG4gIHJlYWRvbmx5IHRhcmdldEF0dHJpYnV0ZVBhdGg/OiBQcm9wZXJ0eVBhdGhcbn1cblxuaW50ZXJmYWNlIERlcGVuZGVuY3lSZWxhdGlvbnNoaXBEYXRhIGV4dGVuZHMgUmVsYXRpb25zaGlwRGF0YSwgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcE9wdGlvbnMge31cblxuLyoqXG4gKiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwIGRlc2NyaWJlcyB3aGV0aGVyIGNoYW5nZXMgaW4gdGhlIHRhcmdldCBjb21wb25lbnRcbiAqIGltcGFjdCB0aGUgc291cmNlIGNvbXBvbmVudCwgYW5kIGhvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIERlcGVuZGVuY3lSZWxhdGlvbnNoaXAgZXh0ZW5kcyBSZWxhdGlvbnNoaXA8RGVwZW5kZW5jeVJlbGF0aW9uc2hpcERhdGE+IHtcblxuICBwdWJsaWMgZ2V0IHNvdXJjZVByb3BlcnR5UGF0aCgpOiBQcm9wZXJ0eVBhdGggeyByZXR1cm4gdGhpcy5ub2RlRGF0YS5zb3VyY2VQcm9wZXJ0eVBhdGggPz8gW107IH1cbiAgcHVibGljIGdldCB0YXJnZXRBdHRyaWJ1dGVQYXRoKCk6IFByb3BlcnR5UGF0aCB7IHJldHVybiB0aGlzLm5vZGVEYXRhLnRhcmdldEF0dHJpYnV0ZVBhdGggPz8gW107IH1cblxuICBjb25zdHJ1Y3Rvcihzb3VyY2U6IENvbXBvbmVudCwgdGFyZ2V0OiBDb21wb25lbnQsIHR5cGU6IHN0cmluZywgb3B0aW9ucz86IERlcGVuZGVuY3lSZWxhdGlvbnNoaXBPcHRpb25zKXtcbiAgICBzdXBlcihzb3VyY2UsIHRhcmdldCwge3R5cGUsIC4uLm9wdGlvbnN9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b1NlcmlhbGl6ZWQoc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBTZXJpYWxpemF0aW9uSUQpOiBTZXJpYWxpemVkRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLnRvU2VyaWFsaXplZChzZXJpYWxpemUpLFxuICAgICAgc291cmNlUHJvcGVydHlQYXRoOiB0aGlzLnNvdXJjZVByb3BlcnR5UGF0aCxcbiAgICAgIHRhcmdldEF0dHJpYnV0ZVBhdGg6IHRoaXMudGFyZ2V0QXR0cmlidXRlUGF0aCxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmd7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLkRFUEVOREVOQ1lfUkVMQVRJT05TSElQO1xuICB9XG5cbn0iXX0=

@@ -1,7 +0,7 @@

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializedInfraModel } from "../export/serialized-interfaces/infra-model/serialized-infra-model";
import { Component } from "./component";
import { ModelEntity } from "./model-entity";
import { Relationship } from "./relationship";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializedInfraModel } from '../export/serialized-interfaces/infra-model/serialized-infra-model';
import { Component } from './component';
import { ModelEntity } from './model-entity';
import { Relationship } from './relationship';
declare type OutgoingNodeReferences = {

@@ -8,0 +8,0 @@ components: Component[];

@@ -16,3 +16,3 @@ "use strict";

components: this.components.map(c => serialize(c)),
relationships: this.relationships.map(r => serialize(r))
relationships: this.relationships.map(r => serialize(r)),
};

@@ -25,2 +25,2 @@ }

exports.InfraModel = InfraModel;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmZyYS1tb2RlbC9pbmZyYS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwyRUFBdUU7QUFHdkUsaURBQTZDO0FBQzdDLDZEQUF3RDtBQVF4RCxNQUFhLFVBQVcsU0FBUSwwQkFBd0M7SUFFcEUsSUFBVyxVQUFVLEtBQWtCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdkYsSUFBVyxhQUFhLEtBQXFCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFaEcsWUFBWSxVQUF1QixFQUFFLGFBQTZCO1FBQzlELEtBQUssQ0FBQyxxQ0FBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsRUFBQyxVQUFVLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQXFEO1FBQ3JFLE9BQU87WUFDSCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEQsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNELENBQUM7SUFDTixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLE9BQU8sNENBQW9CLENBQUMsV0FBVyxDQUFDO0lBQzVDLENBQUM7Q0FDSjtBQW5CRCxnQ0FtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlIH0gZnJvbSBcIi4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uL2V4cG9ydC9qc29uLXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25DbGFzc2VzIH0gZnJvbSBcIi4uL2V4cG9ydC9zZXJpYWxpemF0aW9uLWNsYXNzZXNcIjtcbmltcG9ydCB7IFNlcmlhbGl6ZWRJbmZyYU1vZGVsIH0gZnJvbSBcIi4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1pbmZyYS1tb2RlbFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50XCI7XG5pbXBvcnQgeyBNb2RlbEVudGl0eSB9IGZyb20gXCIuL21vZGVsLWVudGl0eVwiO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHlUeXBlcyB9IGZyb20gXCIuL21vZGVsLWVudGl0eS10eXBlc1wiO1xuaW1wb3J0IHsgUmVsYXRpb25zaGlwIH0gZnJvbSBcIi4vcmVsYXRpb25zaGlwXCI7XG5cbnR5cGUgT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyA9IHtcbiAgICBjb21wb25lbnRzOiBDb21wb25lbnRbXSxcbiAgICByZWxhdGlvbnNoaXBzOiBSZWxhdGlvbnNoaXBbXSxcbn1cblxuZXhwb3J0IGNsYXNzIEluZnJhTW9kZWwgZXh0ZW5kcyBNb2RlbEVudGl0eTxhbnksIE91dGdvaW5nTm9kZVJlZmVyZW5jZXM+IGltcGxlbWVudHMgSlNPTlNlcmlhbGl6YWJsZSB7XG5cbiAgICBwdWJsaWMgZ2V0IGNvbXBvbmVudHMoKTogQ29tcG9uZW50W10geyByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLmNvbXBvbmVudHM7IH1cbiAgICBwdWJsaWMgZ2V0IHJlbGF0aW9uc2hpcHMoKTogUmVsYXRpb25zaGlwW10geyByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLnJlbGF0aW9uc2hpcHM7IH1cblxuICAgIGNvbnN0cnVjdG9yKGNvbXBvbmVudHM6IENvbXBvbmVudFtdLCByZWxhdGlvbnNoaXBzOiBSZWxhdGlvbnNoaXBbXSl7XG4gICAgICAgIHN1cGVyKE1vZGVsRW50aXR5VHlwZXMuaW5mcmFzdHJ1Y3R1cmVTdGF0ZSwge30sIHtjb21wb25lbnRzLCByZWxhdGlvbnNoaXBzfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU2VyaWFsaXplZChzZXJpYWxpemU6IChvYmo6IEpTT05TZXJpYWxpemFibGUpID0+IFNlcmlhbGl6YXRpb25JRCk6IFNlcmlhbGl6ZWRJbmZyYU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbXBvbmVudHM6IHRoaXMuY29tcG9uZW50cy5tYXAoYyA9PiBzZXJpYWxpemUoYykpLFxuICAgICAgICAgICAgcmVsYXRpb25zaGlwczogdGhpcy5yZWxhdGlvbnNoaXBzLm1hcChyID0+IHNlcmlhbGl6ZShyKSlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZ3tcbiAgICAgICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLklORlJBX01PREVMO1xuICAgIH1cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmZyYS1tb2RlbC9pbmZyYS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwyRUFBdUU7QUFHdkUsaURBQTZDO0FBQzdDLDZEQUF3RDtBQVF4RCxNQUFhLFVBQVcsU0FBUSwwQkFBd0M7SUFFdEUsSUFBVyxVQUFVLEtBQWtCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdkYsSUFBVyxhQUFhLEtBQXFCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFaEcsWUFBWSxVQUF1QixFQUFFLGFBQTZCO1FBQ2hFLEtBQUssQ0FBQyxxQ0FBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsRUFBQyxVQUFVLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQXFEO1FBQ3ZFLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEQsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pELENBQUM7SUFDSixDQUFDO0lBRU0scUJBQXFCO1FBQzFCLE9BQU8sNENBQW9CLENBQUMsV0FBVyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQW5CRCxnQ0FtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlIH0gZnJvbSAnLi4vZXhwb3J0L2pzb24tc2VyaWFsaXphYmxlJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gJy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkNsYXNzZXMgfSBmcm9tICcuLi9leHBvcnQvc2VyaWFsaXphdGlvbi1jbGFzc2VzJztcbmltcG9ydCB7IFNlcmlhbGl6ZWRJbmZyYU1vZGVsIH0gZnJvbSAnLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC9zZXJpYWxpemVkLWluZnJhLW1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsRW50aXR5IH0gZnJvbSAnLi9tb2RlbC1lbnRpdHknO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHlUeXBlcyB9IGZyb20gJy4vbW9kZWwtZW50aXR5LXR5cGVzJztcbmltcG9ydCB7IFJlbGF0aW9uc2hpcCB9IGZyb20gJy4vcmVsYXRpb25zaGlwJztcblxudHlwZSBPdXRnb2luZ05vZGVSZWZlcmVuY2VzID0ge1xuICBjb21wb25lbnRzOiBDb21wb25lbnRbXSxcbiAgcmVsYXRpb25zaGlwczogUmVsYXRpb25zaGlwW10sXG59XG5cbmV4cG9ydCBjbGFzcyBJbmZyYU1vZGVsIGV4dGVuZHMgTW9kZWxFbnRpdHk8YW55LCBPdXRnb2luZ05vZGVSZWZlcmVuY2VzPiBpbXBsZW1lbnRzIEpTT05TZXJpYWxpemFibGUge1xuXG4gIHB1YmxpYyBnZXQgY29tcG9uZW50cygpOiBDb21wb25lbnRbXSB7IHJldHVybiB0aGlzLm91dGdvaW5nTm9kZVJlZmVyZW5jZXMuY29tcG9uZW50czsgfVxuICBwdWJsaWMgZ2V0IHJlbGF0aW9uc2hpcHMoKTogUmVsYXRpb25zaGlwW10geyByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLnJlbGF0aW9uc2hpcHM7IH1cblxuICBjb25zdHJ1Y3Rvcihjb21wb25lbnRzOiBDb21wb25lbnRbXSwgcmVsYXRpb25zaGlwczogUmVsYXRpb25zaGlwW10pe1xuICAgIHN1cGVyKE1vZGVsRW50aXR5VHlwZXMuaW5mcmFzdHJ1Y3R1cmVTdGF0ZSwge30sIHtjb21wb25lbnRzLCByZWxhdGlvbnNoaXBzfSk7XG4gIH1cblxuICBwdWJsaWMgdG9TZXJpYWxpemVkKHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gU2VyaWFsaXphdGlvbklEKTogU2VyaWFsaXplZEluZnJhTW9kZWwge1xuICAgIHJldHVybiB7XG4gICAgICBjb21wb25lbnRzOiB0aGlzLmNvbXBvbmVudHMubWFwKGMgPT4gc2VyaWFsaXplKGMpKSxcbiAgICAgIHJlbGF0aW9uc2hpcHM6IHRoaXMucmVsYXRpb25zaGlwcy5tYXAociA9PiBzZXJpYWxpemUocikpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZ3tcbiAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuSU5GUkFfTU9ERUw7XG4gIH1cbn0iXX0=

@@ -13,2 +13,2 @@ "use strict";

})(ModelEntityTypes = exports.ModelEntityTypes || (exports.ModelEntityTypes = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZW50aXR5LXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvbW9kZWwtZW50aXR5LXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksZ0JBT1g7QUFQRCxXQUFZLGdCQUFnQjtJQUN4Qix5Q0FBcUIsQ0FBQTtJQUNyQixxQ0FBaUIsQ0FBQTtJQUNqQiwyQ0FBdUIsQ0FBQTtJQUN2QixpREFBNkIsQ0FBQTtJQUM3QiwrREFBMkMsQ0FBQTtJQUMzQyw2Q0FBeUIsQ0FBQTtBQUM3QixDQUFDLEVBUFcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFPM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBNb2RlbEVudGl0eVR5cGVzIHtcbiAgICBwcm9wZXJ0eSA9ICdwcm9wZXJ0eScsXG4gICAgY2hhbmdlID0gJ2NoYW5nZScsXG4gICAgY29tcG9uZW50ID0gJ2NvbXBvbmVudCcsXG4gICAgcmVsYXRpb25zaGlwID0gJ3JlbGF0aW9uc2hpcCcsXG4gICAgaW5mcmFzdHJ1Y3R1cmVTdGF0ZSA9ICdpbmZyYXN0cnVjdHVyZVN0YXRlJyxcbiAgICB0cmFuc2l0aW9uID0gJ3RyYW5zaXRpb24nLFxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZW50aXR5LXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvbW9kZWwtZW50aXR5LXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksZ0JBT1g7QUFQRCxXQUFZLGdCQUFnQjtJQUMxQix5Q0FBcUIsQ0FBQTtJQUNyQixxQ0FBaUIsQ0FBQTtJQUNqQiwyQ0FBdUIsQ0FBQTtJQUN2QixpREFBNkIsQ0FBQTtJQUM3QiwrREFBMkMsQ0FBQTtJQUMzQyw2Q0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBUFcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFPM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBNb2RlbEVudGl0eVR5cGVzIHtcbiAgcHJvcGVydHkgPSAncHJvcGVydHknLFxuICBjaGFuZ2UgPSAnY2hhbmdlJyxcbiAgY29tcG9uZW50ID0gJ2NvbXBvbmVudCcsXG4gIHJlbGF0aW9uc2hpcCA9ICdyZWxhdGlvbnNoaXAnLFxuICBpbmZyYXN0cnVjdHVyZVN0YXRlID0gJ2luZnJhc3RydWN0dXJlU3RhdGUnLFxuICB0cmFuc2l0aW9uID0gJ3RyYW5zaXRpb24nLFxufSJdfQ==

@@ -16,9 +16,11 @@ "use strict";

_out: this.nodeData._id,
key
key,
});
return this.explodeDirectReferences().filter(({ ref }) => utils_1.isDefined(ref)).map(({ refName, ref, key }) => createModelEntityEdge(refName, ref, key));
return this.explodeDirectReferences()
.filter(({ ref }) => utils_1.isDefined(ref))
.map(({ refName, ref, key }) => createModelEntityEdge(refName, ref, key));
}
explodeDirectReferences() {
const createInfoObj = (label, e, key) => ({
refName: label, ref: e, key
refName: label, ref: e, key,
});

@@ -58,2 +60,2 @@ return utils_1.flatMap(Object.entries(this.outgoingNodeReferences), ([k, v]) => {

ModelEntity.idCounter = 0;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvbW9kZWwtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhCQUE4QjtBQUU5QixvQ0FBOEM7QUFPOUMsTUFBYSxXQUFXO0lBVXBCLFlBQVksVUFBa0IsRUFBRSxRQUF5QixFQUFFLHNCQUEwQjtRQUNqRixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsUUFBUSxFQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDO0lBQ3pELENBQUM7SUFFTSxvQkFBb0I7UUFDdkIsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxDQUFjLEVBQUUsR0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHO1lBQ3ZCLEdBQUc7U0FDTixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFDLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuSixDQUFDO0lBRU8sdUJBQXVCO1FBQzNCLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBYSxFQUFFLENBQWMsRUFBRSxHQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUc7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxlQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbkUsSUFBRyxDQUFDLFlBQVksV0FBVyxFQUFDO2dCQUN4QixPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hDO1lBQUMsSUFBRyxDQUFDLFlBQVksR0FBRyxFQUFFO2dCQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDekQ7aUJBQU0sSUFBRyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLDJDQUEyQztnQkFDeEYsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3hFOztnQkFBTSxPQUFPLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxxQkFBcUI7UUFDekIsTUFBTSxLQUFLLEdBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsTUFBTSxNQUFNLEdBQXFCLElBQUksR0FBRyxFQUFFLENBQUM7UUFFM0MsT0FBTSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFHLENBQUMsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsU0FBUztZQUM5QyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2QsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbEU7UUFFRCxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzlDLE9BQU8sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsZUFBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDOztBQTNETCxrQ0E0REM7QUF2RFUscUJBQVMsR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmbiBmcm9tICdmaWZpbmV0JztcbmltcG9ydCB7IFNlcmlhbGl6ZWQgfSBmcm9tICcuLi9leHBvcnQvanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgZmxhdE1hcCwgaXNEZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBPdXRnb2luZ1JlZmVyZW5jZXMgPSBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIEl0ZXJhYmxlPE1vZGVsRW50aXR5PiB8IE1vZGVsRW50aXR5IHwgUmVjb3JkPHN0cmluZywgTW9kZWxFbnRpdHk+IHwgdW5kZWZpbmVkXG4+O1xuXG5leHBvcnQgY2xhc3MgTW9kZWxFbnRpdHk8XG4gICAgICAgIE5EIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgU2VyaWFsaXplZD4gPSBhbnksIC8vIHZlcnRleCBkYXRhXG4gICAgICAgIE9SIGV4dGVuZHMgT3V0Z29pbmdSZWZlcmVuY2VzID0gYW55IC8vIHZlcnRleCBlZGdlIHRhcmdldHNcbiAgICA+IHtcblxuICAgIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IG5vZGVEYXRhOiBmbi5WZXJ0ZXhQcm9wczxORD4gJiB7IGVudGl0eVR5cGU6IHN0cmluZyB9O1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvdXRnb2luZ05vZGVSZWZlcmVuY2VzOiBPUjtcblxuICAgIGNvbnN0cnVjdG9yKGVudGl0eVR5cGU6IHN0cmluZywgbm9kZURhdGE6IGZuLkluVmVydGV4PE5EPiwgb3V0Z29pbmdOb2RlUmVmZXJlbmNlczogT1Ipe1xuICAgICAgICB0aGlzLm5vZGVEYXRhID0geyBlbnRpdHlUeXBlLCBfaWQ6IGAkeysrTW9kZWxFbnRpdHkuaWRDb3VudGVyfWAsIC4uLm5vZGVEYXRhfTtcbiAgICAgICAgdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzID0gb3V0Z29pbmdOb2RlUmVmZXJlbmNlczsgXG4gICAgfVxuXG4gICAgcHVibGljIGdldE91dGdvaW5nTm9kZUVkZ2VzKCk6IGZuLkluRWRnZTx7IF9sYWJlbDogc3RyaW5nOyBfaW46IHN0cmluZzsgX291dDogc3RyaW5nOyB9PltdIHtcbiAgICAgICAgY29uc3QgY3JlYXRlTW9kZWxFbnRpdHlFZGdlID0gKGxhYmVsOiBzdHJpbmcsIGU6IE1vZGVsRW50aXR5LCBrZXk/OiBzdHJpbmcpID0+ICh7XG4gICAgICAgICAgICBfbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgX2luOiBlLm5vZGVEYXRhLl9pZCxcbiAgICAgICAgICAgIF9vdXQ6IHRoaXMubm9kZURhdGEuX2lkLFxuICAgICAgICAgICAga2V5XG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbG9kZURpcmVjdFJlZmVyZW5jZXMoKS5maWx0ZXIoKHtyZWZ9KSA9PiBpc0RlZmluZWQocmVmKSkubWFwKCh7cmVmTmFtZSwgcmVmLCBrZXl9KSA9PiBjcmVhdGVNb2RlbEVudGl0eUVkZ2UocmVmTmFtZSwgcmVmLCBrZXkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4cGxvZGVEaXJlY3RSZWZlcmVuY2VzKCk6IHtyZWZOYW1lOiBzdHJpbmcsIHJlZjogTW9kZWxFbnRpdHksIGtleT86IHN0cmluZ31bXSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZUluZm9PYmogPSAobGFiZWw6IHN0cmluZywgZTogTW9kZWxFbnRpdHksIGtleT86IHN0cmluZykgPT4gKHtcbiAgICAgICAgICAgIHJlZk5hbWU6IGxhYmVsLCByZWY6IGUsIGtleVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBmbGF0TWFwKE9iamVjdC5lbnRyaWVzKHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcyksIChbaywgdl0pID0+IHtcbiAgICAgICAgICAgIGlmKHYgaW5zdGFuY2VvZiBNb2RlbEVudGl0eSl7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtjcmVhdGVJbmZvT2JqKGssIHYpXTtcbiAgICAgICAgICAgIH0gaWYodiBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4udl0ubWFwKGVudGl0eSA9PiBjcmVhdGVJbmZvT2JqKGssIGVudGl0eSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmKHR5cGVvZiB2ID09PSAnb2JqZWN0JyAmJiB2ICE9PSBudWxsKSB7IC8vIGFycmF5cyBhbmQgb2JqZWN0cyBoYXZlIGtleSBvbiB0aGUgZWRnZXNcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModikubWFwKChba2V5LCBlXSkgPT4gY3JlYXRlSW5mb09iaihrLCBlLCBrZXkpKTtcbiAgICAgICAgICAgIH0gZWxzZSByZXR1cm4gW107XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZXhwbG9kZU5vZGVSZWZlcmVuY2VzKCk6IE1vZGVsRW50aXR5W10ge1xuICAgICAgICBjb25zdCBzdGFjazogTW9kZWxFbnRpdHlbXSA9IFt0aGlzXTtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBTZXQ8TW9kZWxFbnRpdHk+ID0gbmV3IFNldCgpO1xuXG4gICAgICAgIHdoaWxlKHN0YWNrLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZSA9IHN0YWNrLnBvcCgpO1xuICAgICAgICAgICAgaWYoZSA9PT0gdW5kZWZpbmVkIHx8IHJlc3VsdC5oYXMoZSkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgcmVzdWx0LmFkZChlKTtcbiAgICAgICAgICAgIHN0YWNrLnB1c2goLi4uZS5leHBsb2RlRGlyZWN0UmVmZXJlbmNlcygpLm1hcCgoe3JlZn0pID0+IHJlZikpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFsuLi5yZXN1bHRdO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZW5lcmF0ZU91dGdvaW5nR3JhcGgoKSB7IFxuICAgICAgICBjb25zdCBlbnRpdGllcyA9IHRoaXMuZXhwbG9kZU5vZGVSZWZlcmVuY2VzKCk7XG4gICAgICAgIHJldHVybiBuZXcgZm4uR3JhcGgoZW50aXRpZXMubWFwKGUgPT4gZS5ub2RlRGF0YSksIGZsYXRNYXAoZW50aXRpZXMsIGUgPT4gZS5nZXRPdXRnb2luZ05vZGVFZGdlcygpKSk7XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvbW9kZWwtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhCQUE4QjtBQUU5QixvQ0FBOEM7QUFPOUMsTUFBYSxXQUFXO0lBVXRCLFlBQVksVUFBa0IsRUFBRSxRQUF5QixFQUFFLHNCQUEwQjtRQUNuRixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsUUFBUSxFQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDO0lBQ3ZELENBQUM7SUFFTSxvQkFBb0I7UUFDekIsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWEsRUFBRSxDQUFjLEVBQUUsR0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHO1lBQ3ZCLEdBQUc7U0FDSixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsRUFBRTthQUNsQyxNQUFNLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2pDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFhLEVBQUUsQ0FBYyxFQUFFLEdBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRztTQUM1QixDQUFDLENBQUM7UUFFSCxPQUFPLGVBQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyRSxJQUFHLENBQUMsWUFBWSxXQUFXLEVBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUI7WUFBQyxJQUFHLENBQUMsWUFBWSxHQUFHLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUN2RDtpQkFBTSxJQUFHLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUUsMkNBQTJDO2dCQUMxRixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDdEU7O2dCQUFNLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixNQUFNLEtBQUssR0FBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUUzQyxPQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDbEIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUcsQ0FBQyxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFBRSxTQUFTO1lBQzlDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDZCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNoRTtRQUVELE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxlQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7O0FBN0RILGtDQThEQztBQXpEUSxxQkFBUyxHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZuIGZyb20gJ2ZpZmluZXQnO1xuaW1wb3J0IHsgU2VyaWFsaXplZCB9IGZyb20gJy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBmbGF0TWFwLCBpc0RlZmluZWQgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCB0eXBlIE91dGdvaW5nUmVmZXJlbmNlcyA9IFJlY29yZDxcbnN0cmluZyxcbkl0ZXJhYmxlPE1vZGVsRW50aXR5PiB8IE1vZGVsRW50aXR5IHwgUmVjb3JkPHN0cmluZywgTW9kZWxFbnRpdHk+IHwgdW5kZWZpbmVkXG4+O1xuXG5leHBvcnQgY2xhc3MgTW9kZWxFbnRpdHk8XG4gIE5EIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgU2VyaWFsaXplZD4gPSBhbnksIC8vIHZlcnRleCBkYXRhXG4gIE9SIGV4dGVuZHMgT3V0Z29pbmdSZWZlcmVuY2VzID0gYW55IC8vIHZlcnRleCBlZGdlIHRhcmdldHNcbj4ge1xuXG4gIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gIHB1YmxpYyByZWFkb25seSBub2RlRGF0YTogZm4uVmVydGV4UHJvcHM8TkQ+ICYgeyBlbnRpdHlUeXBlOiBzdHJpbmcgfTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG91dGdvaW5nTm9kZVJlZmVyZW5jZXM6IE9SO1xuXG4gIGNvbnN0cnVjdG9yKGVudGl0eVR5cGU6IHN0cmluZywgbm9kZURhdGE6IGZuLkluVmVydGV4PE5EPiwgb3V0Z29pbmdOb2RlUmVmZXJlbmNlczogT1Ipe1xuICAgIHRoaXMubm9kZURhdGEgPSB7IGVudGl0eVR5cGUsIF9pZDogYCR7KytNb2RlbEVudGl0eS5pZENvdW50ZXJ9YCwgLi4ubm9kZURhdGF9O1xuICAgIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcyA9IG91dGdvaW5nTm9kZVJlZmVyZW5jZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0T3V0Z29pbmdOb2RlRWRnZXMoKTogZm4uSW5FZGdlPHsgX2xhYmVsOiBzdHJpbmc7IF9pbjogc3RyaW5nOyBfb3V0OiBzdHJpbmc7IH0+W10ge1xuICAgIGNvbnN0IGNyZWF0ZU1vZGVsRW50aXR5RWRnZSA9IChsYWJlbDogc3RyaW5nLCBlOiBNb2RlbEVudGl0eSwga2V5Pzogc3RyaW5nKSA9PiAoe1xuICAgICAgX2xhYmVsOiBsYWJlbCxcbiAgICAgIF9pbjogZS5ub2RlRGF0YS5faWQsXG4gICAgICBfb3V0OiB0aGlzLm5vZGVEYXRhLl9pZCxcbiAgICAgIGtleSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLmV4cGxvZGVEaXJlY3RSZWZlcmVuY2VzKClcbiAgICAgIC5maWx0ZXIoKHtyZWZ9KSA9PiBpc0RlZmluZWQocmVmKSlcbiAgICAgIC5tYXAoKHtyZWZOYW1lLCByZWYsIGtleX0pID0+IGNyZWF0ZU1vZGVsRW50aXR5RWRnZShyZWZOYW1lLCByZWYsIGtleSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBleHBsb2RlRGlyZWN0UmVmZXJlbmNlcygpOiB7cmVmTmFtZTogc3RyaW5nLCByZWY6IE1vZGVsRW50aXR5LCBrZXk/OiBzdHJpbmd9W10ge1xuICAgIGNvbnN0IGNyZWF0ZUluZm9PYmogPSAobGFiZWw6IHN0cmluZywgZTogTW9kZWxFbnRpdHksIGtleT86IHN0cmluZykgPT4gKHtcbiAgICAgIHJlZk5hbWU6IGxhYmVsLCByZWY6IGUsIGtleSxcbiAgICB9KTtcblxuICAgIHJldHVybiBmbGF0TWFwKE9iamVjdC5lbnRyaWVzKHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcyksIChbaywgdl0pID0+IHtcbiAgICAgIGlmKHYgaW5zdGFuY2VvZiBNb2RlbEVudGl0eSl7XG4gICAgICAgIHJldHVybiBbY3JlYXRlSW5mb09iaihrLCB2KV07XG4gICAgICB9IGlmKHYgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgICAgcmV0dXJuIFsuLi52XS5tYXAoZW50aXR5ID0+IGNyZWF0ZUluZm9PYmooaywgZW50aXR5KSk7XG4gICAgICB9IGVsc2UgaWYodHlwZW9mIHYgPT09ICdvYmplY3QnICYmIHYgIT09IG51bGwpIHsgLy8gYXJyYXlzIGFuZCBvYmplY3RzIGhhdmUga2V5IG9uIHRoZSBlZGdlc1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModikubWFwKChba2V5LCBlXSkgPT4gY3JlYXRlSW5mb09iaihrLCBlLCBrZXkpKTtcbiAgICAgIH0gZWxzZSByZXR1cm4gW107XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGV4cGxvZGVOb2RlUmVmZXJlbmNlcygpOiBNb2RlbEVudGl0eVtdIHtcbiAgICBjb25zdCBzdGFjazogTW9kZWxFbnRpdHlbXSA9IFt0aGlzXTtcbiAgICBjb25zdCByZXN1bHQ6IFNldDxNb2RlbEVudGl0eT4gPSBuZXcgU2V0KCk7XG5cbiAgICB3aGlsZShzdGFjay5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGUgPSBzdGFjay5wb3AoKTtcbiAgICAgIGlmKGUgPT09IHVuZGVmaW5lZCB8fCByZXN1bHQuaGFzKGUpKSBjb250aW51ZTtcbiAgICAgIHJlc3VsdC5hZGQoZSk7XG4gICAgICBzdGFjay5wdXNoKC4uLmUuZXhwbG9kZURpcmVjdFJlZmVyZW5jZXMoKS5tYXAoKHtyZWZ9KSA9PiByZWYpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gWy4uLnJlc3VsdF07XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVPdXRnb2luZ0dyYXBoKCk6IGZuLkdyYXBoPGFueSwge19sYWJlbDogc3RyaW5nLCBfaW46IHN0cmluZywgX291dDogc3RyaW5nfT4ge1xuICAgIGNvbnN0IGVudGl0aWVzID0gdGhpcy5leHBsb2RlTm9kZVJlZmVyZW5jZXMoKTtcbiAgICByZXR1cm4gbmV3IGZuLkdyYXBoKGVudGl0aWVzLm1hcChlID0+IGUubm9kZURhdGEpLCBmbGF0TWFwKGVudGl0aWVzLCBlID0+IGUuZ2V0T3V0Z29pbmdOb2RlRWRnZXMoKSkpO1xuICB9XG59Il19

@@ -1,6 +0,6 @@

import { JSONSerializable } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializedRelationship } from "../export/serialized-interfaces/infra-model/serialized-relationship";
import { Component } from "./component";
import { ModelEntity } from "./model-entity";
import { JSONSerializable } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializedRelationship } from '../export/serialized-interfaces/infra-model/serialized-relationship';
import { Component } from './component';
import { ModelEntity } from './model-entity';
export declare type RelationshipData = {

@@ -7,0 +7,0 @@ readonly type: string;

@@ -26,2 +26,2 @@ "use strict";

exports.Relationship = Relationship;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb25zaGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvcmVsYXRpb25zaGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLGlEQUE2QztBQUM3Qyw2REFBd0Q7QUFXeEQ7OztHQUdHO0FBQ0gsTUFBc0IsWUFDbEIsU0FBUSwwQkFBaUM7SUFHekMsSUFBVyxJQUFJLEtBQWEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEQsSUFBVyxNQUFNLEtBQWdCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0UsSUFBVyxNQUFNLEtBQWdCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFN0UsWUFBWSxNQUFpQixFQUFFLE1BQWlCLEVBQUUsUUFBVztRQUN6RCxLQUFLLENBQUMscUNBQWdCLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBcUQ7UUFDckUsT0FBTztZQUNILE1BQU0sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM5QixNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2xCLENBQUM7SUFDTixDQUFDO0NBR0o7QUFyQkQsb0NBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSB9IGZyb20gXCIuLi9leHBvcnQvanNvbi1zZXJpYWxpemFibGVcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25JRCB9IGZyb20gXCIuLi9leHBvcnQvanNvbi1zZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBTZXJpYWxpemVkUmVsYXRpb25zaGlwIH0gZnJvbSBcIi4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwvc2VyaWFsaXplZC1yZWxhdGlvbnNoaXBcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHkgfSBmcm9tIFwiLi9tb2RlbC1lbnRpdHlcIjtcbmltcG9ydCB7IE1vZGVsRW50aXR5VHlwZXMgfSBmcm9tIFwiLi9tb2RlbC1lbnRpdHktdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25zaGlwRGF0YSA9IHtcbiAgICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uc2hpcEVkZ2VzID0ge1xuICAgIHJlYWRvbmx5IHNvdXJjZTogQ29tcG9uZW50LFxuICAgIHJlYWRvbmx5IHRhcmdldDogQ29tcG9uZW50LFxufVxuXG4vKipcbiAqIFJlbGF0aW9uc2hpcHMgY29ubmVjdCB0d28gY29tcG9uZW50cyBhbmRcbiAqIGRlc2NyaWJlIGhvdyB0aGV5IHJlbGF0ZSB0byBlYWNoIG90aGVyXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZWxhdGlvbnNoaXA8VCBleHRlbmRzIFJlbGF0aW9uc2hpcERhdGEgPSBSZWxhdGlvbnNoaXBEYXRhPlxuICAgIGV4dGVuZHMgTW9kZWxFbnRpdHk8VCwgUmVsYXRpb25zaGlwRWRnZXM+XG4gICAgaW1wbGVtZW50cyBKU09OU2VyaWFsaXphYmxlXG57XG4gICAgcHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLm5vZGVEYXRhLnR5cGU7IH1cbiAgICBwdWJsaWMgZ2V0IHRhcmdldCgpOiBDb21wb25lbnQgeyByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLnRhcmdldDsgfVxuICAgIHB1YmxpYyBnZXQgc291cmNlKCk6IENvbXBvbmVudCB7IHJldHVybiB0aGlzLm91dGdvaW5nTm9kZVJlZmVyZW5jZXMuc291cmNlOyB9XG5cbiAgICBjb25zdHJ1Y3Rvcihzb3VyY2U6IENvbXBvbmVudCwgdGFyZ2V0OiBDb21wb25lbnQsIG5vZGVEYXRhOiBUKXtcbiAgICAgICAgc3VwZXIoTW9kZWxFbnRpdHlUeXBlcy5yZWxhdGlvbnNoaXAsIG5vZGVEYXRhLCB7c291cmNlLCB0YXJnZXR9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9TZXJpYWxpemVkKHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gU2VyaWFsaXphdGlvbklEKTogU2VyaWFsaXplZFJlbGF0aW9uc2hpcCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0YXJnZXQ6IHNlcmlhbGl6ZSh0aGlzLnRhcmdldCksXG4gICAgICAgICAgICBzb3VyY2U6IHNlcmlhbGl6ZSh0aGlzLnNvdXJjZSksXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmc7XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb25zaGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vaW5mcmEtbW9kZWwvcmVsYXRpb25zaGlwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLGlEQUE2QztBQUM3Qyw2REFBd0Q7QUFXeEQ7OztHQUdHO0FBQ0gsTUFBc0IsWUFDcEIsU0FBUSwwQkFBaUM7SUFHekMsSUFBVyxJQUFJLEtBQWEsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEQsSUFBVyxNQUFNLEtBQWdCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0UsSUFBVyxNQUFNLEtBQWdCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFN0UsWUFBWSxNQUFpQixFQUFFLE1BQWlCLEVBQUUsUUFBVztRQUMzRCxLQUFLLENBQUMscUNBQWdCLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBcUQ7UUFDdkUsT0FBTztZQUNMLE1BQU0sRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM5QixNQUFNLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDOUIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUM7SUFDSixDQUFDO0NBR0Y7QUFyQkQsb0NBcUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSB9IGZyb20gJy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi9leHBvcnQvanNvbi1zZXJpYWxpemVyJztcbmltcG9ydCB7IFNlcmlhbGl6ZWRSZWxhdGlvbnNoaXAgfSBmcm9tICcuLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsL3NlcmlhbGl6ZWQtcmVsYXRpb25zaGlwJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGVsRW50aXR5IH0gZnJvbSAnLi9tb2RlbC1lbnRpdHknO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHlUeXBlcyB9IGZyb20gJy4vbW9kZWwtZW50aXR5LXR5cGVzJztcblxuZXhwb3J0IHR5cGUgUmVsYXRpb25zaGlwRGF0YSA9IHtcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSZWxhdGlvbnNoaXBFZGdlcyA9IHtcbiAgcmVhZG9ubHkgc291cmNlOiBDb21wb25lbnQsXG4gIHJlYWRvbmx5IHRhcmdldDogQ29tcG9uZW50LFxufVxuXG4vKipcbiAqIFJlbGF0aW9uc2hpcHMgY29ubmVjdCB0d28gY29tcG9uZW50cyBhbmRcbiAqIGRlc2NyaWJlIGhvdyB0aGV5IHJlbGF0ZSB0byBlYWNoIG90aGVyXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZWxhdGlvbnNoaXA8VCBleHRlbmRzIFJlbGF0aW9uc2hpcERhdGEgPSBSZWxhdGlvbnNoaXBEYXRhPlxuICBleHRlbmRzIE1vZGVsRW50aXR5PFQsIFJlbGF0aW9uc2hpcEVkZ2VzPlxuICBpbXBsZW1lbnRzIEpTT05TZXJpYWxpemFibGVcbntcbiAgcHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLm5vZGVEYXRhLnR5cGU7IH1cbiAgcHVibGljIGdldCB0YXJnZXQoKTogQ29tcG9uZW50IHsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy50YXJnZXQ7IH1cbiAgcHVibGljIGdldCBzb3VyY2UoKTogQ29tcG9uZW50IHsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5zb3VyY2U7IH1cblxuICBjb25zdHJ1Y3Rvcihzb3VyY2U6IENvbXBvbmVudCwgdGFyZ2V0OiBDb21wb25lbnQsIG5vZGVEYXRhOiBUKXtcbiAgICBzdXBlcihNb2RlbEVudGl0eVR5cGVzLnJlbGF0aW9uc2hpcCwgbm9kZURhdGEsIHtzb3VyY2UsIHRhcmdldH0pO1xuICB9XG5cbiAgcHVibGljIHRvU2VyaWFsaXplZChzZXJpYWxpemU6IChvYmo6IEpTT05TZXJpYWxpemFibGUpID0+IFNlcmlhbGl6YXRpb25JRCk6IFNlcmlhbGl6ZWRSZWxhdGlvbnNoaXAge1xuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IHNlcmlhbGl6ZSh0aGlzLnRhcmdldCksXG4gICAgICBzb3VyY2U6IHNlcmlhbGl6ZSh0aGlzLnNvdXJjZSksXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5nO1xufSJdfQ==

@@ -1,3 +0,3 @@

import { Component } from "./component";
import { Relationship } from "./relationship";
import { Component } from './component';
import { Relationship } from './relationship';
/**

@@ -4,0 +4,0 @@ * StructuralRelationship establishes a conceptual hierarchy between

@@ -20,2 +20,2 @@ "use strict";

exports.StructuralRelationship = StructuralRelationship;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJhbC1yZWxhdGlvbnNoaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmZyYS1tb2RlbC9zdHJ1Y3R1cmFsLXJlbGF0aW9uc2hpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyRUFBdUU7QUFFdkUsaURBQThDO0FBRTlDOzs7O0dBSUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLDJCQUFZO0lBRXBELFlBQVksTUFBaUIsRUFBRSxNQUFpQixFQUFFLElBQVk7UUFDMUQsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsT0FBTyw0Q0FBb0IsQ0FBQyx1QkFBdUIsQ0FBQztJQUN4RCxDQUFDO0NBRUo7QUFWRCx3REFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcmlhbGl6YXRpb25DbGFzc2VzIH0gZnJvbSBcIi4uL2V4cG9ydC9zZXJpYWxpemF0aW9uLWNsYXNzZXNcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudFwiO1xuaW1wb3J0IHsgUmVsYXRpb25zaGlwIH0gZnJvbSBcIi4vcmVsYXRpb25zaGlwXCI7XG5cbi8qKlxuICogU3RydWN0dXJhbFJlbGF0aW9uc2hpcCBlc3RhYmxpc2hlcyBhIGNvbmNlcHR1YWwgaGllcmFyY2h5IGJldHdlZW5cbiAqIHR3byBjb21wb25lbnRzLCBpbXBhY3Rpbmcgc29sZWx5IHRoZSB1c2VyJ3MgcGVyY2VwdGlvbiBvZiB0aGUgaW5mcmFzdHJ1Y3R1cmVcbiAqIGFuZCBub3QgaXRzIGFjdHVhbCBkZXBsb3ltZW50LlxuICovXG5leHBvcnQgY2xhc3MgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCBleHRlbmRzIFJlbGF0aW9uc2hpcCB7XG5cbiAgICBjb25zdHJ1Y3Rvcihzb3VyY2U6IENvbXBvbmVudCwgdGFyZ2V0OiBDb21wb25lbnQsIHR5cGU6IHN0cmluZyl7XG4gICAgICAgIHN1cGVyKHNvdXJjZSwgdGFyZ2V0LCB7dHlwZX0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5ne1xuICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuU1RSVUNUVVJBTF9SRUxBVElPTlNISVA7XG4gICAgfVxuXG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJhbC1yZWxhdGlvbnNoaXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9pbmZyYS1tb2RlbC9zdHJ1Y3R1cmFsLXJlbGF0aW9uc2hpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyRUFBdUU7QUFFdkUsaURBQThDO0FBRTlDOzs7O0dBSUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLDJCQUFZO0lBRXRELFlBQVksTUFBaUIsRUFBRSxNQUFpQixFQUFFLElBQVk7UUFDNUQsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyw0Q0FBb0IsQ0FBQyx1QkFBdUIsQ0FBQztJQUN0RCxDQUFDO0NBRUY7QUFWRCx3REFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcmlhbGl6YXRpb25DbGFzc2VzIH0gZnJvbSAnLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlcyc7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWxhdGlvbnNoaXAgfSBmcm9tICcuL3JlbGF0aW9uc2hpcCc7XG5cbi8qKlxuICogU3RydWN0dXJhbFJlbGF0aW9uc2hpcCBlc3RhYmxpc2hlcyBhIGNvbmNlcHR1YWwgaGllcmFyY2h5IGJldHdlZW5cbiAqIHR3byBjb21wb25lbnRzLCBpbXBhY3Rpbmcgc29sZWx5IHRoZSB1c2VyJ3MgcGVyY2VwdGlvbiBvZiB0aGUgaW5mcmFzdHJ1Y3R1cmVcbiAqIGFuZCBub3QgaXRzIGFjdHVhbCBkZXBsb3ltZW50LlxuICovXG5leHBvcnQgY2xhc3MgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCBleHRlbmRzIFJlbGF0aW9uc2hpcCB7XG5cbiAgY29uc3RydWN0b3Ioc291cmNlOiBDb21wb25lbnQsIHRhcmdldDogQ29tcG9uZW50LCB0eXBlOiBzdHJpbmcpe1xuICAgIHN1cGVyKHNvdXJjZSwgdGFyZ2V0LCB7dHlwZX0pO1xuICB9XG5cbiAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmd7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLlNUUlVDVFVSQUxfUkVMQVRJT05TSElQO1xuICB9XG5cbn0iXX0=

@@ -1,6 +0,6 @@

import { JSONSerializable, Serialized } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { Component, InfraModel, ModelEntity } from "../infra-model";
import { ComponentOperation } from "./operations";
import { Transition } from "./transition";
import { JSONSerializable, Serialized } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { Component, InfraModel, ModelEntity } from '../infra-model';
import { ComponentOperation } from './operations';
import { Transition } from './transition';
export declare class TransitionNotFoundError extends Error {

@@ -13,11 +13,11 @@ }

};
export declare class InfraModelDiff extends ModelEntity<{}, OutgoingNodeReferences> implements JSONSerializable {
export declare class InfraModelDiff extends ModelEntity<Record<string, Serialized>, OutgoingNodeReferences> implements JSONSerializable {
private static createComponentTransitionMap;
private static createComponentTransitionToOperationsMap;
private readonly componentToTransitionMap;
private readonly componentTransitionToOperationsMap;
get componentOperations(): ComponentOperation<any, any>[];
get componentTransitions(): Transition<Component, import("./transition").TransitionVersions<Component>>[];
get infraModelTransition(): Transition<InfraModel, import("./transition").TransitionVersions<InfraModel>>;
get componentOperations(): ComponentOperation[];
get componentTransitions(): Transition<Component>[];
get infraModelTransition(): Transition<InfraModel>;
constructor(componentOperations: ComponentOperation[], componentTransitions: Transition<Component>[], infraModelTransition: Transition<InfraModel>);
private static createComponentTransitionMap;
private static createComponentTransitionToOperationsMap;
getComponentTransition(e: Component): Transition<Component>;

@@ -24,0 +24,0 @@ getTransitionOperations(t: Transition<Component>): ComponentOperation[];

@@ -10,3 +10,2 @@ "use strict";

exports.TransitionNotFoundError = TransitionNotFoundError;
// eslint-disable-next-line @typescript-eslint/ban-types
class InfraModelDiff extends infra_model_1.ModelEntity {

@@ -16,7 +15,5 @@ constructor(componentOperations, componentTransitions, infraModelTransition) {

this.componentToTransitionMap = InfraModelDiff.createComponentTransitionMap(componentTransitions);
this.componentTransitionToOperationsMap = InfraModelDiff.createComponentTransitionToOperationsMap(componentOperations);
this.componentTransitionToOperationsMap =
InfraModelDiff.createComponentTransitionToOperationsMap(componentOperations);
}
get componentOperations() { return this.outgoingNodeReferences.componentOperations; }
get componentTransitions() { return this.outgoingNodeReferences.componentTransitions; }
get infraModelTransition() { return this.outgoingNodeReferences.infraModelTransition; }
static createComponentTransitionMap(componentTransitions) {

@@ -29,2 +26,11 @@ return new Map(utils_1.flatMap(componentTransitions, t => [[t.v1, t], [t.v2, t]])

}
get componentOperations() {
return this.outgoingNodeReferences.componentOperations;
}
get componentTransitions() {
return this.outgoingNodeReferences.componentTransitions;
}
get infraModelTransition() {
return this.outgoingNodeReferences.infraModelTransition;
}
getComponentTransition(e) {

@@ -44,3 +50,3 @@ const t = this.componentToTransitionMap.get(e);

componentTransitions: this.componentTransitions.map(t => serialize(t)),
infraModelTransition: serialize(this.infraModelTransition)
infraModelTransition: serialize(this.infraModelTransition),
};

@@ -53,2 +59,2 @@ }

exports.InfraModelDiff = InfraModelDiff;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwtZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVsLWRpZmZpbmcvaW5mcmEtbW9kZWwtZGlmZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwyRUFBdUU7QUFDdkUsZ0RBQW9FO0FBQ3BFLG9DQUE0RDtBQUk1RCxNQUFhLHVCQUF3QixTQUFRLEtBQUs7Q0FBRztBQUFyRCwwREFBcUQ7QUFPckQsd0RBQXdEO0FBQ3hELE1BQWEsY0FBZSxTQUFRLHlCQUF1QztJQVN2RSxZQUNJLG1CQUF5QyxFQUN6QyxvQkFBNkMsRUFDN0Msb0JBQTRDO1FBRTVDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUMsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxjQUFjLENBQUMsNEJBQTRCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsa0NBQWtDLEdBQUcsY0FBYyxDQUFDLHdDQUF3QyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDM0gsQ0FBQztJQVpELElBQVcsbUJBQW1CLEtBQUssT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQzVGLElBQVcsb0JBQW9CLEtBQUssT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQzlGLElBQVcsb0JBQW9CLEtBQUssT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBWXRGLE1BQU0sQ0FBQyw0QkFBNEIsQ0FDdkMsb0JBQTZDO1FBRTdDLE9BQU8sSUFBSSxHQUFHLENBQ1YsZUFBTyxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekQsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBeUMsQ0FDekUsQ0FBQztJQUNOLENBQUM7SUFFTyxNQUFNLENBQUMsd0NBQXdDLENBQUMsbUJBQXlDO1FBQzdGLE9BQU8sb0JBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxDQUFZO1FBQ3RDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBRyxDQUFDLENBQUM7WUFDRCxNQUFNLElBQUksdUJBQXVCLENBQUMsMkNBQTJDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVNLHVCQUF1QixDQUFDLENBQXdCOztRQUNuRCxPQUFPLE1BQUEsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRSxDQUFDO0lBQ2hFLENBQUM7SUFFTSxZQUFZLENBQ2YsU0FBcUQ7UUFFckQsT0FBTztZQUNILG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1lBQzVELG9CQUFvQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEUsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztTQUM3RCxDQUFDO0lBQ04sQ0FBQztJQUNNLHFCQUFxQjtRQUN4QixPQUFPLDRDQUFvQixDQUFDLGdCQUFnQixDQUFDO0lBQ2pELENBQUM7Q0FDSjtBQXZERCx3Q0F1REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemVkIH0gZnJvbSBcIi4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSBcIi4uL2V4cG9ydC9qc29uLXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25DbGFzc2VzIH0gZnJvbSBcIi4uL2V4cG9ydC9zZXJpYWxpemF0aW9uLWNsYXNzZXNcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5mcmFNb2RlbCwgTW9kZWxFbnRpdHkgfSBmcm9tIFwiLi4vaW5mcmEtbW9kZWxcIjtcbmltcG9ydCB7IGZsYXRNYXAsIGdyb3VwQXJyYXlCeSwgaXNEZWZpbmVkIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBDb21wb25lbnRPcGVyYXRpb24gfSBmcm9tIFwiLi9vcGVyYXRpb25zXCI7XG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSBcIi4vdHJhbnNpdGlvblwiO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNpdGlvbk5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7fVxuIFxudHlwZSBPdXRnb2luZ05vZGVSZWZlcmVuY2VzID0ge1xuICAgIHJlYWRvbmx5IGNvbXBvbmVudE9wZXJhdGlvbnM6IENvbXBvbmVudE9wZXJhdGlvbltdLFxuICAgIHJlYWRvbmx5IGNvbXBvbmVudFRyYW5zaXRpb25zOiBUcmFuc2l0aW9uPENvbXBvbmVudD5bXSxcbiAgICByZWFkb25seSBpbmZyYU1vZGVsVHJhbnNpdGlvbjogVHJhbnNpdGlvbjxJbmZyYU1vZGVsPixcbn1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5leHBvcnQgY2xhc3MgSW5mcmFNb2RlbERpZmYgZXh0ZW5kcyBNb2RlbEVudGl0eTx7fSwgT3V0Z29pbmdOb2RlUmVmZXJlbmNlcz4gaW1wbGVtZW50cyBKU09OU2VyaWFsaXphYmxlIHtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50VG9UcmFuc2l0aW9uTWFwOiBNYXA8Q29tcG9uZW50LCBUcmFuc2l0aW9uPENvbXBvbmVudD4+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50VHJhbnNpdGlvblRvT3BlcmF0aW9uc01hcDogTWFwPFRyYW5zaXRpb248Q29tcG9uZW50PiwgQ29tcG9uZW50T3BlcmF0aW9uW10+O1xuXG4gICAgcHVibGljIGdldCBjb21wb25lbnRPcGVyYXRpb25zKCkgeyByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLmNvbXBvbmVudE9wZXJhdGlvbnM7IH1cbiAgICBwdWJsaWMgZ2V0IGNvbXBvbmVudFRyYW5zaXRpb25zKCkgeyByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLmNvbXBvbmVudFRyYW5zaXRpb25zOyB9XG4gICAgcHVibGljIGdldCBpbmZyYU1vZGVsVHJhbnNpdGlvbigpIHsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5pbmZyYU1vZGVsVHJhbnNpdGlvbjsgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGNvbXBvbmVudE9wZXJhdGlvbnM6IENvbXBvbmVudE9wZXJhdGlvbltdLFxuICAgICAgICBjb21wb25lbnRUcmFuc2l0aW9uczogVHJhbnNpdGlvbjxDb21wb25lbnQ+W10sXG4gICAgICAgIGluZnJhTW9kZWxUcmFuc2l0aW9uOiBUcmFuc2l0aW9uPEluZnJhTW9kZWw+LFxuICAgICl7XG4gICAgICAgIHN1cGVyKCdkaWZmJywge30sIHtjb21wb25lbnRPcGVyYXRpb25zLCBjb21wb25lbnRUcmFuc2l0aW9ucywgaW5mcmFNb2RlbFRyYW5zaXRpb259KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRUb1RyYW5zaXRpb25NYXAgPSBJbmZyYU1vZGVsRGlmZi5jcmVhdGVDb21wb25lbnRUcmFuc2l0aW9uTWFwKGNvbXBvbmVudFRyYW5zaXRpb25zKTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uVG9PcGVyYXRpb25zTWFwID0gSW5mcmFNb2RlbERpZmYuY3JlYXRlQ29tcG9uZW50VHJhbnNpdGlvblRvT3BlcmF0aW9uc01hcChjb21wb25lbnRPcGVyYXRpb25zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjcmVhdGVDb21wb25lbnRUcmFuc2l0aW9uTWFwKFxuICAgICAgICBjb21wb25lbnRUcmFuc2l0aW9uczogVHJhbnNpdGlvbjxDb21wb25lbnQ+W11cbiAgICApOiBNYXA8Q29tcG9uZW50LCBUcmFuc2l0aW9uPENvbXBvbmVudD4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXAoXG4gICAgICAgICAgICBmbGF0TWFwKGNvbXBvbmVudFRyYW5zaXRpb25zLCB0ID0+IFtbdC52MSwgdF0sIFt0LnYyLCB0XV0pXG4gICAgICAgICAgICAuZmlsdGVyKChbdl0pID0+IGlzRGVmaW5lZCh2KSkgYXMgW0NvbXBvbmVudCwgVHJhbnNpdGlvbjxDb21wb25lbnQ+XVtdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlQ29tcG9uZW50VHJhbnNpdGlvblRvT3BlcmF0aW9uc01hcChjb21wb25lbnRPcGVyYXRpb25zOiBDb21wb25lbnRPcGVyYXRpb25bXSkge1xuICAgICAgICByZXR1cm4gZ3JvdXBBcnJheUJ5KGNvbXBvbmVudE9wZXJhdGlvbnMsIG8gPT4gby5jb21wb25lbnRUcmFuc2l0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q29tcG9uZW50VHJhbnNpdGlvbihlOiBDb21wb25lbnQpOiBUcmFuc2l0aW9uPENvbXBvbmVudD57XG4gICAgICAgIGNvbnN0IHQgPSB0aGlzLmNvbXBvbmVudFRvVHJhbnNpdGlvbk1hcC5nZXQoZSk7XG4gICAgICAgIGlmKCF0KVxuICAgICAgICAgICAgdGhyb3cgbmV3IFRyYW5zaXRpb25Ob3RGb3VuZEVycm9yKGBDb3VsZCBub3QgZmluZCB0cmFuc2l0aW9uIGZvciBjb21wb25lbnQgJHtlLm5hbWV9IGluIG1vZGVsYCk7XG4gICAgICAgIHJldHVybiB0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUcmFuc2l0aW9uT3BlcmF0aW9ucyh0OiBUcmFuc2l0aW9uPENvbXBvbmVudD4pOiBDb21wb25lbnRPcGVyYXRpb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb25Ub09wZXJhdGlvbnNNYXAuZ2V0KHQpID8/IFtdO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1NlcmlhbGl6ZWQoXG4gICAgICAgIHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gU2VyaWFsaXphdGlvbklELFxuICAgICk6IFNlcmlhbGl6ZWQge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29tcG9uZW50T3BlcmF0aW9uczogdGhpcy5jb21wb25lbnRPcGVyYXRpb25zLm1hcChzZXJpYWxpemUpLFxuICAgICAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbnM6IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbnMubWFwKHQgPT4gc2VyaWFsaXplKHQpKSxcbiAgICAgICAgICAgIGluZnJhTW9kZWxUcmFuc2l0aW9uOiBzZXJpYWxpemUodGhpcy5pbmZyYU1vZGVsVHJhbnNpdGlvbilcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuSU5GUkFfTU9ERUxfRElGRjtcbiAgICB9XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwtZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVsLWRpZmZpbmcvaW5mcmEtbW9kZWwtZGlmZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSwyRUFBdUU7QUFDdkUsZ0RBQW9FO0FBQ3BFLG9DQUE0RDtBQUk1RCxNQUFhLHVCQUF3QixTQUFRLEtBQUs7Q0FBRztBQUFyRCwwREFBcUQ7QUFRckQsTUFBYSxjQUNYLFNBQVEseUJBQStEO0lBK0J2RSxZQUNFLG1CQUF5QyxFQUN6QyxvQkFBNkMsRUFDN0Msb0JBQTRDO1FBRTVDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUMsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxjQUFjLENBQUMsNEJBQTRCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsa0NBQWtDO1lBQ3JDLGNBQWMsQ0FBQyx3Q0FBd0MsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFyQ08sTUFBTSxDQUFDLDRCQUE0QixDQUN6QyxvQkFBNkM7UUFFN0MsT0FBTyxJQUFJLEdBQUcsQ0FDWixlQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2RCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBUyxDQUFDLENBQUMsQ0FBQyxDQUF5QyxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FDckQsbUJBQXlDO1FBRXpDLE9BQU8sb0JBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFLRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLG9CQUFvQixDQUFDO0lBQzFELENBQUM7SUFZTSxzQkFBc0IsQ0FBQyxDQUFZO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBRyxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksdUJBQXVCLENBQUMsMkNBQTJDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxDQUFDO1FBQ2xHLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVNLHVCQUF1QixDQUFDLENBQXdCOztRQUNyRCxPQUFPLE1BQUEsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsbUNBQUksRUFBRSxDQUFDO0lBQzlELENBQUM7SUFFTSxZQUFZLENBQ2pCLFNBQXFEO1FBRXJELE9BQU87WUFDTCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUM1RCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLG9CQUFvQixFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7U0FDM0QsQ0FBQztJQUNKLENBQUM7SUFDTSxxQkFBcUI7UUFDMUIsT0FBTyw0Q0FBb0IsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQyxDQUFDO0NBQ0Y7QUFqRUQsd0NBaUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gJy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tICcuLi9leHBvcnQvanNvbi1zZXJpYWxpemVyJztcbmltcG9ydCB7IFNlcmlhbGl6YXRpb25DbGFzc2VzIH0gZnJvbSAnLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluZnJhTW9kZWwsIE1vZGVsRW50aXR5IH0gZnJvbSAnLi4vaW5mcmEtbW9kZWwnO1xuaW1wb3J0IHsgZmxhdE1hcCwgZ3JvdXBBcnJheUJ5LCBpc0RlZmluZWQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBDb21wb25lbnRPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJy4vdHJhbnNpdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2l0aW9uTm90Rm91bmRFcnJvciBleHRlbmRzIEVycm9yIHt9XG5cbnR5cGUgT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyA9IHtcbiAgcmVhZG9ubHkgY29tcG9uZW50T3BlcmF0aW9uczogQ29tcG9uZW50T3BlcmF0aW9uW10sXG4gIHJlYWRvbmx5IGNvbXBvbmVudFRyYW5zaXRpb25zOiBUcmFuc2l0aW9uPENvbXBvbmVudD5bXSxcbiAgcmVhZG9ubHkgaW5mcmFNb2RlbFRyYW5zaXRpb246IFRyYW5zaXRpb248SW5mcmFNb2RlbD4sXG59XG5cbmV4cG9ydCBjbGFzcyBJbmZyYU1vZGVsRGlmZlxuICBleHRlbmRzIE1vZGVsRW50aXR5PFJlY29yZDxzdHJpbmcsIFNlcmlhbGl6ZWQ+LCBPdXRnb2luZ05vZGVSZWZlcmVuY2VzPlxuICBpbXBsZW1lbnRzIEpTT05TZXJpYWxpemFibGVcbntcbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlQ29tcG9uZW50VHJhbnNpdGlvbk1hcChcbiAgICBjb21wb25lbnRUcmFuc2l0aW9uczogVHJhbnNpdGlvbjxDb21wb25lbnQ+W10sXG4gICk6IE1hcDxDb21wb25lbnQsIFRyYW5zaXRpb248Q29tcG9uZW50Pj4ge1xuICAgIHJldHVybiBuZXcgTWFwKFxuICAgICAgZmxhdE1hcChjb21wb25lbnRUcmFuc2l0aW9ucywgdCA9PiBbW3QudjEsIHRdLCBbdC52MiwgdF1dKVxuICAgICAgICAuZmlsdGVyKChbdl0pID0+IGlzRGVmaW5lZCh2KSkgYXMgW0NvbXBvbmVudCwgVHJhbnNpdGlvbjxDb21wb25lbnQ+XVtdLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVDb21wb25lbnRUcmFuc2l0aW9uVG9PcGVyYXRpb25zTWFwKFxuICAgIGNvbXBvbmVudE9wZXJhdGlvbnM6IENvbXBvbmVudE9wZXJhdGlvbltdLFxuICApOiBNYXA8VHJhbnNpdGlvbjxDb21wb25lbnQ+LCBDb21wb25lbnRPcGVyYXRpb25bXT4ge1xuICAgIHJldHVybiBncm91cEFycmF5QnkoY29tcG9uZW50T3BlcmF0aW9ucywgbyA9PiBvLmNvbXBvbmVudFRyYW5zaXRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRUb1RyYW5zaXRpb25NYXA6IE1hcDxDb21wb25lbnQsIFRyYW5zaXRpb248Q29tcG9uZW50Pj47XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50VHJhbnNpdGlvblRvT3BlcmF0aW9uc01hcDogTWFwPFRyYW5zaXRpb248Q29tcG9uZW50PiwgQ29tcG9uZW50T3BlcmF0aW9uW10+O1xuXG4gIHB1YmxpYyBnZXQgY29tcG9uZW50T3BlcmF0aW9ucygpOiBDb21wb25lbnRPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5jb21wb25lbnRPcGVyYXRpb25zO1xuICB9XG4gIHB1YmxpYyBnZXQgY29tcG9uZW50VHJhbnNpdGlvbnMoKTogVHJhbnNpdGlvbjxDb21wb25lbnQ+W10ge1xuICAgIHJldHVybiB0aGlzLm91dGdvaW5nTm9kZVJlZmVyZW5jZXMuY29tcG9uZW50VHJhbnNpdGlvbnM7XG4gIH1cbiAgcHVibGljIGdldCBpbmZyYU1vZGVsVHJhbnNpdGlvbigpOiBUcmFuc2l0aW9uPEluZnJhTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLmluZnJhTW9kZWxUcmFuc2l0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29tcG9uZW50T3BlcmF0aW9uczogQ29tcG9uZW50T3BlcmF0aW9uW10sXG4gICAgY29tcG9uZW50VHJhbnNpdGlvbnM6IFRyYW5zaXRpb248Q29tcG9uZW50PltdLFxuICAgIGluZnJhTW9kZWxUcmFuc2l0aW9uOiBUcmFuc2l0aW9uPEluZnJhTW9kZWw+LFxuICApe1xuICAgIHN1cGVyKCdkaWZmJywge30sIHtjb21wb25lbnRPcGVyYXRpb25zLCBjb21wb25lbnRUcmFuc2l0aW9ucywgaW5mcmFNb2RlbFRyYW5zaXRpb259KTtcbiAgICB0aGlzLmNvbXBvbmVudFRvVHJhbnNpdGlvbk1hcCA9IEluZnJhTW9kZWxEaWZmLmNyZWF0ZUNvbXBvbmVudFRyYW5zaXRpb25NYXAoY29tcG9uZW50VHJhbnNpdGlvbnMpO1xuICAgIHRoaXMuY29tcG9uZW50VHJhbnNpdGlvblRvT3BlcmF0aW9uc01hcCA9XG4gICAgICBJbmZyYU1vZGVsRGlmZi5jcmVhdGVDb21wb25lbnRUcmFuc2l0aW9uVG9PcGVyYXRpb25zTWFwKGNvbXBvbmVudE9wZXJhdGlvbnMpO1xuICB9XG4gIHB1YmxpYyBnZXRDb21wb25lbnRUcmFuc2l0aW9uKGU6IENvbXBvbmVudCk6IFRyYW5zaXRpb248Q29tcG9uZW50PntcbiAgICBjb25zdCB0ID0gdGhpcy5jb21wb25lbnRUb1RyYW5zaXRpb25NYXAuZ2V0KGUpO1xuICAgIGlmKCF0KVxuICAgICAgdGhyb3cgbmV3IFRyYW5zaXRpb25Ob3RGb3VuZEVycm9yKGBDb3VsZCBub3QgZmluZCB0cmFuc2l0aW9uIGZvciBjb21wb25lbnQgJHtlLm5hbWV9IGluIG1vZGVsYCk7XG4gICAgcmV0dXJuIHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VHJhbnNpdGlvbk9wZXJhdGlvbnModDogVHJhbnNpdGlvbjxDb21wb25lbnQ+KTogQ29tcG9uZW50T3BlcmF0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb25Ub09wZXJhdGlvbnNNYXAuZ2V0KHQpID8/IFtdO1xuICB9XG5cbiAgcHVibGljIHRvU2VyaWFsaXplZChcbiAgICBzZXJpYWxpemU6IChvYmo6IEpTT05TZXJpYWxpemFibGUpID0+IFNlcmlhbGl6YXRpb25JRCxcbiAgKTogU2VyaWFsaXplZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbXBvbmVudE9wZXJhdGlvbnM6IHRoaXMuY29tcG9uZW50T3BlcmF0aW9ucy5tYXAoc2VyaWFsaXplKSxcbiAgICAgIGNvbXBvbmVudFRyYW5zaXRpb25zOiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb25zLm1hcCh0ID0+IHNlcmlhbGl6ZSh0KSksXG4gICAgICBpbmZyYU1vZGVsVHJhbnNpdGlvbjogc2VyaWFsaXplKHRoaXMuaW5mcmFNb2RlbFRyYW5zaXRpb24pLFxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5JTkZSQV9NT0RFTF9ESUZGO1xuICB9XG59Il19

@@ -1,6 +0,6 @@

import { JSONSerializable } from "../../export/json-serializable";
import { SerializedComponentOperation } from "../../export/serialized-interfaces/infra-model-diff/serialized-component-operation";
import { Component, ComponentPropertyValue } from "../../infra-model";
import { ModelEntity } from "../../infra-model/model-entity";
import { Transition } from "../transition";
import { JSONSerializable } from '../../export/json-serializable';
import { SerializedComponentOperation } from '../../export/serialized-interfaces/infra-model-diff/serialized-component-operation';
import { Component, ComponentPropertyValue } from '../../infra-model';
import { ModelEntity } from '../../infra-model/model-entity';
import { Transition } from '../transition';
export declare enum OperationCertainty {

@@ -7,0 +7,0 @@ ABSOLUTE = "Absolute",

@@ -35,4 +35,4 @@ "use strict";

...((_a = outgoingReferences.appliesTo) !== null && _a !== void 0 ? _a : []),
...outgoingReferences.componentTransition.explode()
]
...outgoingReferences.componentTransition.explode(),
],
});

@@ -96,2 +96,2 @@ }

exports.RenameComponentOperation = RenameComponentOperation;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW9wZXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsLWRpZmZpbmcvb3BlcmF0aW9ucy9jb21wb25lbnQtb3BlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhFQUEwRTtBQUcxRSxpRUFBNkQ7QUFDN0QsNkVBQXdFO0FBR3hFLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUMxQiwyQ0FBcUIsQ0FBQTtJQUNyQix5Q0FBbUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsa0JBQWtCLEdBQWxCLDBCQUFrQixLQUFsQiwwQkFBa0IsUUFHN0I7QUFFRCxJQUFZLGFBTVg7QUFORCxXQUFZLGFBQWE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7SUFDakIsb0NBQW1CLENBQUE7SUFDbkIsa0NBQWlCLENBQUE7QUFDckIsQ0FBQyxFQU5XLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBTXhCO0FBd0JELE1BQXNCLGtCQUNsQixTQUFRLDBCQUF5RTtJQUdqRixJQUFXLEtBQUssS0FBcUMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRyxJQUFXLG1CQUFtQixLQUE0QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDbkgsSUFBVyxTQUFTLGFBQXlCLE9BQU8sTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsbUNBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3RyxJQUFXLGFBQWEsS0FBb0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFeEUsWUFDSSxRQUFZLEVBQ1osa0JBQXNCLEVBQ3RCLGFBQTRCOztRQUU1QixLQUFLLENBQ0QscUNBQWdCLENBQUMsTUFBTSxF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LFNBQVMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBRSxLQUFLLFNBQVM7WUFDckYsTUFBTSxLQUFLLENBQUMsb0VBQW9FLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLE9BQU8sNENBQW9CLENBQUMsMEJBQTBCLENBQUM7SUFDM0QsQ0FBQztDQUNKO0FBYkQsNERBYUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlIH0gZnJvbSBcIi4uLy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkNsYXNzZXMgfSBmcm9tIFwiLi4vLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlc1wiO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudE9wZXJhdGlvbiwgU2VyaWFsaXplZE91dGdvaW5nUmVsYXRpb25zaGlwQ29tcG9uZW50T3BlcmF0aW9uIH0gZnJvbSBcIi4uLy4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwtZGlmZi9zZXJpYWxpemVkLWNvbXBvbmVudC1vcGVyYXRpb25cIjtcbmltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSwgUmVsYXRpb25zaGlwIH0gZnJvbSBcIi4uLy4uL2luZnJhLW1vZGVsXCI7XG5pbXBvcnQgeyBNb2RlbEVudGl0eSB9IGZyb20gXCIuLi8uLi9pbmZyYS1tb2RlbC9tb2RlbC1lbnRpdHlcIjtcbmltcG9ydCB7IE1vZGVsRW50aXR5VHlwZXMgfSBmcm9tIFwiLi4vLi4vaW5mcmEtbW9kZWwvbW9kZWwtZW50aXR5LXR5cGVzXCI7XG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSBcIi4uL3RyYW5zaXRpb25cIjtcblxuZXhwb3J0IGVudW0gT3BlcmF0aW9uQ2VydGFpbnR5IHtcbiAgICBBQlNPTFVURSA9ICdBYnNvbHV0ZScsXG4gICAgUEFSVElBTCA9ICdQYXJ0aWFsJ1xufVxuXG5leHBvcnQgZW51bSBPcGVyYXRpb25UeXBlIHtcbiAgICBVUERBVEUgPSAnVVBEQVRFJyxcbiAgICBJTlNFUlQgPSAnSU5TRVJUJyxcbiAgICBSRU1PVkUgPSAnUkVNT1ZFJyxcbiAgICBSRVBMQUNFID0gJ1JFUExBQ0UnLFxuICAgIFJFTkFNRSA9ICdSRU5BTUUnXG59XG5cbmV4cG9ydCB0eXBlIE9wTm9kZURhdGEgPSB7XG4gICAgcmVhZG9ubHkgY2VydGFpbnR5PzogT3BlcmF0aW9uQ2VydGFpbnR5XG59XG5cbnR5cGUgSW50ZXJuYWxPcE5vZGVEYXRhID0ge1xuICAgIHJlYWRvbmx5IHR5cGU6IE9wZXJhdGlvblR5cGUsXG59XG5cbmV4cG9ydCB0eXBlIE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyA9IHtcbiAgICByZWFkb25seSBjYXVzZT86IENvbXBvbmVudE9wZXJhdGlvbixcbiAgICByZWFkb25seSBjb21wb25lbnRUcmFuc2l0aW9uOiBUcmFuc2l0aW9uPENvbXBvbmVudD4sXG4gICAgcmVhZG9ubHkgYXBwbGllc1RvPzogTW9kZWxFbnRpdHlbXSxcbn1cblxudHlwZSBJbnRlcm5hbE91dGdvaW5nTm9kZVJlZmVyZW5jZXMgPSB7XG4gICAgcmVhZG9ubHkgYXBwbGllc1RvOiBNb2RlbEVudGl0eVtdLFxuICAgIHJlYWRvbmx5IGV4cG9zZXNWYWx1ZXM6IHtcbiAgICAgICAgcmVhZG9ubHkgb2xkPzogQ29tcG9uZW50IHwgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICAgICAgcmVhZG9ubHkgbmV3PzogQ29tcG9uZW50IHwgQ29tcG9uZW50UHJvcGVydHlWYWx1ZVxuICAgIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbXBvbmVudE9wZXJhdGlvbjxORCBleHRlbmRzIE9wTm9kZURhdGEgPSBhbnksIE9SIGV4dGVuZHMgT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzID0gYW55PlxuICAgIGV4dGVuZHMgTW9kZWxFbnRpdHk8TkQgJiBJbnRlcm5hbE9wTm9kZURhdGEsIE9SICYgSW50ZXJuYWxPdXRnb2luZ05vZGVSZWZlcmVuY2VzPlxuICAgIGltcGxlbWVudHMgSlNPTlNlcmlhbGl6YWJsZSB7XG5cbiAgICBwdWJsaWMgZ2V0IGNhdXNlKCk6IENvbXBvbmVudE9wZXJhdGlvbiB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLm91dGdvaW5nTm9kZVJlZmVyZW5jZXMuY2F1c2U7IH1cbiAgICBwdWJsaWMgZ2V0IGNvbXBvbmVudFRyYW5zaXRpb24oKTogVHJhbnNpdGlvbjxDb21wb25lbnQ+IHsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5jb21wb25lbnRUcmFuc2l0aW9uOyB9XG4gICAgcHVibGljIGdldCBjZXJ0YWludHkoKTogT3BlcmF0aW9uQ2VydGFpbnR5IHsgcmV0dXJuIHRoaXMubm9kZURhdGEuY2VydGFpbnR5ID8/IE9wZXJhdGlvbkNlcnRhaW50eS5BQlNPTFVURTsgfVxuICAgIHB1YmxpYyBnZXQgb3BlcmF0aW9uVHlwZSgpOiBPcGVyYXRpb25UeXBlIHsgcmV0dXJuIHRoaXMubm9kZURhdGEudHlwZTsgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIG5vZGVEYXRhOiBORCxcbiAgICAgICAgb3V0Z29pbmdSZWZlcmVuY2VzOiBPUixcbiAgICAgICAgb3BlcmF0aW9uVHlwZTogT3BlcmF0aW9uVHlwZSxcbiAgICApe1xuICAgICAgICBzdXBlcihcbiAgICAgICAgICAgIE1vZGVsRW50aXR5VHlwZXMuY2hhbmdlLFxuICAgICAgICAgICAgey4uLm5vZGVEYXRhLCB0eXBlOiBvcGVyYXRpb25UeXBlfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBleHBvc2VzVmFsdWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIG9sZDogb3V0Z29pbmdSZWZlcmVuY2VzLmNvbXBvbmVudFRyYW5zaXRpb24udjEsXG4gICAgICAgICAgICAgICAgICAgIG5ldzogb3V0Z29pbmdSZWZlcmVuY2VzLmNvbXBvbmVudFRyYW5zaXRpb24udjIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAuLi5vdXRnb2luZ1JlZmVyZW5jZXMsXG4gICAgICAgICAgICAgICAgYXBwbGllc1RvOiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLihvdXRnb2luZ1JlZmVyZW5jZXMuYXBwbGllc1RvID8/IFtdKSxcbiAgICAgICAgICAgICAgICAgICAgLi4ub3V0Z29pbmdSZWZlcmVuY2VzLmNvbXBvbmVudFRyYW5zaXRpb24uZXhwbG9kZSgpXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0RpcmVjdENoYW5nZSgpOiBib29sZWFue1xuICAgICAgICByZXR1cm4gIXRoaXMuY2F1c2U7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU2VyaWFsaXplZChcbiAgICAgICAgc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBudW1iZXIsXG4gICAgKTogU2VyaWFsaXplZENvbXBvbmVudE9wZXJhdGlvbiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjYXVzZTogdGhpcy5jYXVzZSA/IHNlcmlhbGl6ZSh0aGlzLmNhdXNlKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNlcnRhaW50eTogdGhpcy5jZXJ0YWludHksXG4gICAgICAgICAgICBjb21wb25lbnRUcmFuc2l0aW9uOiBzZXJpYWxpemUodGhpcy5jb21wb25lbnRUcmFuc2l0aW9uKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgXG4gICAgcHVibGljIGFic3RyYWN0IGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBJbnNlcnRDb21wb25lbnRPcGVyYXRpb24gZXh0ZW5kcyBDb21wb25lbnRPcGVyYXRpb24ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBub2RlRGF0YTogT3BOb2RlRGF0YSxcbiAgICAgICAgb3V0Z29pbmdSZWZlcmVuY2VzOiBPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXNcbiAgICApeyBzdXBlcihub2RlRGF0YSwgb3V0Z29pbmdSZWZlcmVuY2VzLCBPcGVyYXRpb25UeXBlLklOU0VSVCk7XG4gICAgICAgIGlmKHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbi52MSAhPT0gdW5kZWZpbmVkIHx8IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbi52MiA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJJbnNlcnQgT3BlcmF0aW9uJ3MgY29tcG9uZW50IHRyYW5zaXRpb24gaGFzIHRvIGhhdmUgZXhjbHVzaXZlbHkgdmVyc2lvbiAyXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLklOU0VSVF9DT01QT05FTlRfT1BFUkFUSU9OO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlbW92ZUNvbXBvbmVudE9wZXJhdGlvbiBleHRlbmRzIENvbXBvbmVudE9wZXJhdGlvbiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIG5vZGVEYXRhOiBPcE5vZGVEYXRhLFxuICAgICAgICBvdXRnb2luZ1JlZmVyZW5jZXM6IE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlc1xuICAgICl7IHN1cGVyKG5vZGVEYXRhLCBvdXRnb2luZ1JlZmVyZW5jZXMsIE9wZXJhdGlvblR5cGUuUkVNT1ZFKTtcbiAgICAgICAgaWYodGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYxID09PSB1bmRlZmluZWQgfHwgdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYyICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcIlJlbW92ZSBPcGVyYXRpb24ncyBjb21wb25lbnQgdHJhbnNpdGlvbiBoYXMgdG8gaGF2ZSBleGNsdXNpdmVseSB2ZXJzaW9uIDFcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuUkVNT1ZFX0NPTVBPTkVOVF9PUEVSQVRJT047XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbiBleHRlbmRzIENvbXBvbmVudE9wZXJhdGlvbiB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbm9kZURhdGE6IE9wTm9kZURhdGEsXG4gICAgICAgIG91dGdvaW5nUmVmZXJlbmNlczogT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzXG4gICAgKXsgc3VwZXIobm9kZURhdGEsIG91dGdvaW5nUmVmZXJlbmNlcywgT3BlcmF0aW9uVHlwZS5SRVBMQUNFKTtcbiAgICAgICAgaWYodGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYxID09PSB1bmRlZmluZWQgfHwgdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYyID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcIlJlcGxhY2UgT3BlcmF0aW9uJ3MgY29tcG9uZW50IHRyYW5zaXRpb24gaGFzIHRvIGhhdmUgYm90aCB2MSBhbmQgdjJcIik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuUkVQTEFDRV9DT01QT05FTlRfT1BFUkFUSU9OO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlbmFtZUNvbXBvbmVudE9wZXJhdGlvbiBleHRlbmRzIENvbXBvbmVudE9wZXJhdGlvbiB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbm9kZURhdGE6IE9wTm9kZURhdGEsXG4gICAgICAgIG91dGdvaW5nUmVmZXJlbmNlczogT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzXG4gICAgKXsgc3VwZXIobm9kZURhdGEsIG91dGdvaW5nUmVmZXJlbmNlcywgT3BlcmF0aW9uVHlwZS5SRU5BTUUpO1xuICAgICAgICBpZih0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24udjEgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24udjIgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHRocm93IEVycm9yKFwiUmVuYW1lIE9wZXJhdGlvbidzIGNvbXBvbmVudCB0cmFuc2l0aW9uIGhhcyB0byBoYXZlIGJvdGggdjEgYW5kIHYyXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLlJFTkFNRV9DT01QT05FTlRfT1BFUkFUSU9OO1xuICAgIH1cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW9wZXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsLWRpZmZpbmcvb3BlcmF0aW9ucy9jb21wb25lbnQtb3BlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhFQUEwRTtBQUcxRSxpRUFBNkQ7QUFDN0QsNkVBQXdFO0FBR3hFLElBQVksa0JBR1g7QUFIRCxXQUFZLGtCQUFrQjtJQUM1QiwyQ0FBcUIsQ0FBQTtJQUNyQix5Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsa0JBQWtCLEdBQWxCLDBCQUFrQixLQUFsQiwwQkFBa0IsUUFHN0I7QUFFRCxJQUFZLGFBTVg7QUFORCxXQUFZLGFBQWE7SUFDdkIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7SUFDakIsb0NBQW1CLENBQUE7SUFDbkIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQU5XLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBTXhCO0FBd0JELE1BQXNCLGtCQUNwQixTQUFRLDBCQUF5RTtJQUdqRixJQUFXLEtBQUssS0FBcUMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRyxJQUFXLG1CQUFtQixLQUE0QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDbkgsSUFBVyxTQUFTLGFBQXlCLE9BQU8sTUFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsbUNBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3RyxJQUFXLGFBQWEsS0FBb0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFeEUsWUFDRSxRQUFZLEVBQ1osa0JBQXNCLEVBQ3RCLGFBQTRCOztRQUU1QixLQUFLLENBQ0gscUNBQWdCLENBQUMsTUFBTSxF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SyxTQUFTLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsS0FBSyxTQUFTO1lBQ3ZGLE1BQU0sS0FBSyxDQUFDLG9FQUFvRSxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixPQUFPLDRDQUFvQixDQUFDLDBCQUEwQixDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQWJELDREQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6YWJsZSB9IGZyb20gJy4uLy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZSc7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uQ2xhc3NlcyB9IGZyb20gJy4uLy4uL2V4cG9ydC9zZXJpYWxpemF0aW9uLWNsYXNzZXMnO1xuaW1wb3J0IHsgU2VyaWFsaXplZENvbXBvbmVudE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL2V4cG9ydC9zZXJpYWxpemVkLWludGVyZmFjZXMvaW5mcmEtbW9kZWwtZGlmZi9zZXJpYWxpemVkLWNvbXBvbmVudC1vcGVyYXRpb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRQcm9wZXJ0eVZhbHVlIH0gZnJvbSAnLi4vLi4vaW5mcmEtbW9kZWwnO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHkgfSBmcm9tICcuLi8uLi9pbmZyYS1tb2RlbC9tb2RlbC1lbnRpdHknO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHlUeXBlcyB9IGZyb20gJy4uLy4uL2luZnJhLW1vZGVsL21vZGVsLWVudGl0eS10eXBlcyc7XG5pbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnLi4vdHJhbnNpdGlvbic7XG5cbmV4cG9ydCBlbnVtIE9wZXJhdGlvbkNlcnRhaW50eSB7XG4gIEFCU09MVVRFID0gJ0Fic29sdXRlJyxcbiAgUEFSVElBTCA9ICdQYXJ0aWFsJ1xufVxuXG5leHBvcnQgZW51bSBPcGVyYXRpb25UeXBlIHtcbiAgVVBEQVRFID0gJ1VQREFURScsXG4gIElOU0VSVCA9ICdJTlNFUlQnLFxuICBSRU1PVkUgPSAnUkVNT1ZFJyxcbiAgUkVQTEFDRSA9ICdSRVBMQUNFJyxcbiAgUkVOQU1FID0gJ1JFTkFNRSdcbn1cblxuZXhwb3J0IHR5cGUgT3BOb2RlRGF0YSA9IHtcbiAgcmVhZG9ubHkgY2VydGFpbnR5PzogT3BlcmF0aW9uQ2VydGFpbnR5XG59XG5cbnR5cGUgSW50ZXJuYWxPcE5vZGVEYXRhID0ge1xuICByZWFkb25seSB0eXBlOiBPcGVyYXRpb25UeXBlLFxufVxuXG5leHBvcnQgdHlwZSBPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXMgPSB7XG4gIHJlYWRvbmx5IGNhdXNlPzogQ29tcG9uZW50T3BlcmF0aW9uLFxuICByZWFkb25seSBjb21wb25lbnRUcmFuc2l0aW9uOiBUcmFuc2l0aW9uPENvbXBvbmVudD4sXG4gIHJlYWRvbmx5IGFwcGxpZXNUbz86IE1vZGVsRW50aXR5W10sXG59XG5cbnR5cGUgSW50ZXJuYWxPdXRnb2luZ05vZGVSZWZlcmVuY2VzID0ge1xuICByZWFkb25seSBhcHBsaWVzVG86IE1vZGVsRW50aXR5W10sXG4gIHJlYWRvbmx5IGV4cG9zZXNWYWx1ZXM6IHtcbiAgICByZWFkb25seSBvbGQ/OiBDb21wb25lbnQgfCBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIHJlYWRvbmx5IG5ldz86IENvbXBvbmVudCB8IENvbXBvbmVudFByb3BlcnR5VmFsdWVcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tcG9uZW50T3BlcmF0aW9uPE5EIGV4dGVuZHMgT3BOb2RlRGF0YSA9IGFueSwgT1IgZXh0ZW5kcyBPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXMgPSBhbnk+XG4gIGV4dGVuZHMgTW9kZWxFbnRpdHk8TkQgJiBJbnRlcm5hbE9wTm9kZURhdGEsIE9SICYgSW50ZXJuYWxPdXRnb2luZ05vZGVSZWZlcmVuY2VzPlxuICBpbXBsZW1lbnRzIEpTT05TZXJpYWxpemFibGUge1xuXG4gIHB1YmxpYyBnZXQgY2F1c2UoKTogQ29tcG9uZW50T3BlcmF0aW9uIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5jYXVzZTsgfVxuICBwdWJsaWMgZ2V0IGNvbXBvbmVudFRyYW5zaXRpb24oKTogVHJhbnNpdGlvbjxDb21wb25lbnQ+IHsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5jb21wb25lbnRUcmFuc2l0aW9uOyB9XG4gIHB1YmxpYyBnZXQgY2VydGFpbnR5KCk6IE9wZXJhdGlvbkNlcnRhaW50eSB7IHJldHVybiB0aGlzLm5vZGVEYXRhLmNlcnRhaW50eSA/PyBPcGVyYXRpb25DZXJ0YWludHkuQUJTT0xVVEU7IH1cbiAgcHVibGljIGdldCBvcGVyYXRpb25UeXBlKCk6IE9wZXJhdGlvblR5cGUgeyByZXR1cm4gdGhpcy5ub2RlRGF0YS50eXBlOyB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbm9kZURhdGE6IE5ELFxuICAgIG91dGdvaW5nUmVmZXJlbmNlczogT1IsXG4gICAgb3BlcmF0aW9uVHlwZTogT3BlcmF0aW9uVHlwZSxcbiAgKXtcbiAgICBzdXBlcihcbiAgICAgIE1vZGVsRW50aXR5VHlwZXMuY2hhbmdlLFxuICAgICAgey4uLm5vZGVEYXRhLCB0eXBlOiBvcGVyYXRpb25UeXBlfSxcbiAgICAgIHtcbiAgICAgICAgZXhwb3Nlc1ZhbHVlczoge1xuICAgICAgICAgIG9sZDogb3V0Z29pbmdSZWZlcmVuY2VzLmNvbXBvbmVudFRyYW5zaXRpb24udjEsXG4gICAgICAgICAgbmV3OiBvdXRnb2luZ1JlZmVyZW5jZXMuY29tcG9uZW50VHJhbnNpdGlvbi52MixcbiAgICAgICAgfSxcbiAgICAgICAgLi4ub3V0Z29pbmdSZWZlcmVuY2VzLFxuICAgICAgICBhcHBsaWVzVG86IFtcbiAgICAgICAgICAuLi4ob3V0Z29pbmdSZWZlcmVuY2VzLmFwcGxpZXNUbyA/PyBbXSksXG4gICAgICAgICAgLi4ub3V0Z29pbmdSZWZlcmVuY2VzLmNvbXBvbmVudFRyYW5zaXRpb24uZXhwbG9kZSgpLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGlzRGlyZWN0Q2hhbmdlKCk6IGJvb2xlYW57XG4gICAgcmV0dXJuICF0aGlzLmNhdXNlO1xuICB9XG5cbiAgcHVibGljIHRvU2VyaWFsaXplZChcbiAgICBzZXJpYWxpemU6IChvYmo6IEpTT05TZXJpYWxpemFibGUpID0+IG51bWJlcixcbiAgKTogU2VyaWFsaXplZENvbXBvbmVudE9wZXJhdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNhdXNlOiB0aGlzLmNhdXNlID8gc2VyaWFsaXplKHRoaXMuY2F1c2UpIDogdW5kZWZpbmVkLFxuICAgICAgY2VydGFpbnR5OiB0aGlzLmNlcnRhaW50eSxcbiAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IHNlcmlhbGl6ZSh0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24pLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEluc2VydENvbXBvbmVudE9wZXJhdGlvbiBleHRlbmRzIENvbXBvbmVudE9wZXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG5vZGVEYXRhOiBPcE5vZGVEYXRhLFxuICAgIG91dGdvaW5nUmVmZXJlbmNlczogT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzLFxuICApeyBzdXBlcihub2RlRGF0YSwgb3V0Z29pbmdSZWZlcmVuY2VzLCBPcGVyYXRpb25UeXBlLklOU0VSVCk7XG4gICAgaWYodGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYxICE9PSB1bmRlZmluZWQgfHwgdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYyID09PSB1bmRlZmluZWQpXG4gICAgICB0aHJvdyBFcnJvcihcIkluc2VydCBPcGVyYXRpb24ncyBjb21wb25lbnQgdHJhbnNpdGlvbiBoYXMgdG8gaGF2ZSBleGNsdXNpdmVseSB2ZXJzaW9uIDJcIik7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLklOU0VSVF9DT01QT05FTlRfT1BFUkFUSU9OO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZW1vdmVDb21wb25lbnRPcGVyYXRpb24gZXh0ZW5kcyBDb21wb25lbnRPcGVyYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBub2RlRGF0YTogT3BOb2RlRGF0YSxcbiAgICBvdXRnb2luZ1JlZmVyZW5jZXM6IE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyxcbiAgKXsgc3VwZXIobm9kZURhdGEsIG91dGdvaW5nUmVmZXJlbmNlcywgT3BlcmF0aW9uVHlwZS5SRU1PVkUpO1xuICAgIGlmKHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbi52MSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbi52MiAhPT0gdW5kZWZpbmVkKVxuICAgICAgdGhyb3cgRXJyb3IoXCJSZW1vdmUgT3BlcmF0aW9uJ3MgY29tcG9uZW50IHRyYW5zaXRpb24gaGFzIHRvIGhhdmUgZXhjbHVzaXZlbHkgdmVyc2lvbiAxXCIpO1xuICB9XG5cbiAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5SRU1PVkVfQ09NUE9ORU5UX09QRVJBVElPTjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbiBleHRlbmRzIENvbXBvbmVudE9wZXJhdGlvbiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbm9kZURhdGE6IE9wTm9kZURhdGEsXG4gICAgb3V0Z29pbmdSZWZlcmVuY2VzOiBPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXMsXG4gICl7IHN1cGVyKG5vZGVEYXRhLCBvdXRnb2luZ1JlZmVyZW5jZXMsIE9wZXJhdGlvblR5cGUuUkVQTEFDRSk7XG4gICAgaWYodGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYxID09PSB1bmRlZmluZWQgfHwgdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYyID09PSB1bmRlZmluZWQpXG4gICAgICB0aHJvdyBFcnJvcihcIlJlcGxhY2UgT3BlcmF0aW9uJ3MgY29tcG9uZW50IHRyYW5zaXRpb24gaGFzIHRvIGhhdmUgYm90aCB2MSBhbmQgdjJcIik7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLlJFUExBQ0VfQ09NUE9ORU5UX09QRVJBVElPTjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVuYW1lQ29tcG9uZW50T3BlcmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50T3BlcmF0aW9uIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBub2RlRGF0YTogT3BOb2RlRGF0YSxcbiAgICBvdXRnb2luZ1JlZmVyZW5jZXM6IE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyxcbiAgKXsgc3VwZXIobm9kZURhdGEsIG91dGdvaW5nUmVmZXJlbmNlcywgT3BlcmF0aW9uVHlwZS5SRU5BTUUpO1xuICAgIGlmKHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbi52MSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbi52MiA9PT0gdW5kZWZpbmVkKVxuICAgICAgdGhyb3cgRXJyb3IoXCJSZW5hbWUgT3BlcmF0aW9uJ3MgY29tcG9uZW50IHRyYW5zaXRpb24gaGFzIHRvIGhhdmUgYm90aCB2MSBhbmQgdjJcIik7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLlJFTkFNRV9DT01QT05FTlRfT1BFUkFUSU9OO1xuICB9XG59Il19

@@ -1,6 +0,6 @@

import { JSONSerializable } from "../../export/json-serializable";
import { SerializedPropertyComponentOperation, SerializedUpdatePropertyComponentOperation } from "../../export/serialized-interfaces/infra-model-diff/serialized-component-operation";
import { ComponentPropertyValue, ComponentUpdateType, PropertyPath } from "../../infra-model";
import { Transition } from "../transition";
import { ComponentOperation, OperationType, OpNodeData, OpOutgoingNodeReferences } from "./component-operation";
import { JSONSerializable } from '../../export/json-serializable';
import { SerializedPropertyComponentOperation, SerializedUpdatePropertyComponentOperation } from '../../export/serialized-interfaces/infra-model-diff/serialized-component-operation';
import { ComponentPropertyValue, ComponentUpdateType, PropertyPath } from '../../infra-model';
import { Transition } from '../transition';
import { ComponentOperation, OperationType, OpNodeData, OpOutgoingNodeReferences } from './component-operation';
declare type InternalOpNodeData = {

@@ -7,0 +7,0 @@ propertyOperationType: OperationType;

@@ -9,3 +9,5 @@ "use strict";

get pathTransition() { return this.outgoingNodeReferences.pathTransition; }
get propertyTransition() { return this.outgoingNodeReferences.propertyTransition; }
get propertyTransition() {
return this.outgoingNodeReferences.propertyTransition;
}
get propertyOperationType() { return this.nodeData.propertyOperationType; }

@@ -26,3 +28,3 @@ constructor(nodeData, outgoingReferences, propertyOperationType) {

if (!this.propertyTransition.v2 && !this.propertyTransition.v1) {
throw Error("Property Operation has no before or after property states");
throw Error('Property Operation has no before or after property states');
}

@@ -57,3 +59,3 @@ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion

...outgoingReferences,
appliesTo: [...(_a = outgoingReferences.appliesTo) !== null && _a !== void 0 ? _a : [], ...(_c = (_b = outgoingReferences.propertyTransition.v2) === null || _b === void 0 ? void 0 : _b.explode()) !== null && _c !== void 0 ? _c : []]
appliesTo: [...(_a = outgoingReferences.appliesTo) !== null && _a !== void 0 ? _a : [], ...(_c = (_b = outgoingReferences.propertyTransition.v2) === null || _b === void 0 ? void 0 : _b.explode()) !== null && _c !== void 0 ? _c : []],
}, component_operation_1.OperationType.INSERT);

@@ -71,3 +73,3 @@ }

...outgoingReferences,
appliesTo: [...(_a = outgoingReferences.appliesTo) !== null && _a !== void 0 ? _a : [], ...(_c = (_b = outgoingReferences.propertyTransition.v1) === null || _b === void 0 ? void 0 : _b.explode()) !== null && _c !== void 0 ? _c : []]
appliesTo: [...(_a = outgoingReferences.appliesTo) !== null && _a !== void 0 ? _a : [], ...(_c = (_b = outgoingReferences.propertyTransition.v1) === null || _b === void 0 ? void 0 : _b.explode()) !== null && _c !== void 0 ? _c : []],
}, component_operation_1.OperationType.REMOVE);

@@ -81,3 +83,5 @@ }

class UpdatePropertyComponentOperation extends PropertyComponentOperation {
get innerOperations() { return this.outgoingNodeReferences.innerOperations; }
get innerOperations() {
return this.outgoingNodeReferences.innerOperations;
}
constructor(nodeData, outgoingReferences, operationType = component_operation_1.OperationType.UPDATE) { super(nodeData, outgoingReferences, operationType); }

@@ -90,3 +94,3 @@ getAllInnerOperations() {

? o.getAllInnerOperations()
: [o])
: [o]),
]);

@@ -131,2 +135,2 @@ }

exports.MovePropertyComponentOperation = MovePropertyComponentOperation;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY29tcG9uZW50LW9wZXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsLWRpZmZpbmcvb3BlcmF0aW9ucy9wcm9wZXJ0eS1jb21wb25lbnQtb3BlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhFQUEwRTtBQUcxRSx1Q0FBbUQ7QUFFbkQsK0RBQWdIO0FBV2hILE1BQXNCLDBCQUNsQixTQUFRLHdDQUErQztJQUV2RCxJQUFXLGNBQWMsS0FBK0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUM1RyxJQUFXLGtCQUFrQixLQUF5QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDOUgsSUFBVyxxQkFBcUIsS0FBb0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUVqRyxZQUNJLFFBQVksRUFDWixrQkFBc0IsRUFDdEIscUJBQW9DOztRQUVwQyxLQUFLLENBQ0QsRUFBRSxHQUFHLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxFQUN0QztZQUNJLGFBQWEsRUFBRTtnQkFDWCxHQUFHLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtnQkFDN0MsR0FBRyxFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLEVBQUU7YUFDaEQ7WUFDRCxHQUFHLGtCQUFrQjtZQUNyQixTQUFTLEVBQUUsQ0FBQyxHQUFHLE1BQUEsa0JBQWtCLENBQUMsU0FBUyxtQ0FBSSxFQUFFLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN6RyxFQUFFLG1DQUFhLENBQUMsTUFBTSxDQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVELGFBQWE7O1FBQ1QsSUFBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLElBQUksQ0FB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LENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVNLFlBQVksQ0FDZixTQUE0Qzs7UUFFNUMsT0FBTztZQUNILEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFDaEMsZUFBZSxFQUFFLE1BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hFLENBQUM7SUFDTixDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLE9BQU8sNENBQW9CLENBQUMsbUNBQW1DLENBQUM7SUFDcEUsQ0FBQztDQUNKO0FBdERELDRFQXNEQztBQUVELE1BQWEsOEJBQStCLFNBQVEsZ0NBQWdDO0lBRWhGLFlBQ0ksUUFBb0IsRUFDcEIsa0JBQXNELEVBQ3RELGdCQUErQixtQ0FBYSxDQUFDLE1BQU0sSUFDckQsS0FBSyxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFBLENBQUM7SUFFL0MscUJBQXFCO1FBQ3hCLE9BQU8sNENBQW9CLENBQUMsaUNBQWlDLENBQUM7SUFDbEUsQ0FBQztDQUNKO0FBWEQsd0VBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKU09OU2VyaWFsaXphYmxlIH0gZnJvbSBcIi4uLy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6YWJsZVwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkNsYXNzZXMgfSBmcm9tIFwiLi4vLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlc1wiO1xuaW1wb3J0IHsgU2VyaWFsaXplZFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLCBTZXJpYWxpemVkVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gfSBmcm9tIFwiLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtY29tcG9uZW50LW9wZXJhdGlvblwiO1xuaW1wb3J0IHsgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSwgQ29tcG9uZW50VXBkYXRlVHlwZSwgUHJvcGVydHlQYXRoIH0gZnJvbSBcIi4uLy4uL2luZnJhLW1vZGVsXCI7XG5pbXBvcnQgeyBhcnJheXNFcXVhbCwgZmxhdE1hcCB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xuaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gXCIuLi90cmFuc2l0aW9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnRPcGVyYXRpb24sIE9wZXJhdGlvblR5cGUsIE9wTm9kZURhdGEsIE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyB9IGZyb20gXCIuL2NvbXBvbmVudC1vcGVyYXRpb25cIjtcblxudHlwZSBJbnRlcm5hbE9wTm9kZURhdGEgPSB7XG4gICAgcHJvcGVydHlPcGVyYXRpb25UeXBlOiBPcGVyYXRpb25UeXBlLFxufVxuXG5leHBvcnQgdHlwZSBQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzID0gT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzICYge1xuICAgIHJlYWRvbmx5IHByb3BlcnR5VHJhbnNpdGlvbjogVHJhbnNpdGlvbjxDb21wb25lbnRQcm9wZXJ0eVZhbHVlPixcbiAgICByZWFkb25seSBwYXRoVHJhbnNpdGlvbjogVHJhbnNpdGlvbjxQcm9wZXJ0eVBhdGg+LFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb248TkQgZXh0ZW5kcyBPcE5vZGVEYXRhID0gYW55LCBPUiBleHRlbmRzIFByb3BPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXMgPSBhbnk+XG4gICAgZXh0ZW5kcyBDb21wb25lbnRPcGVyYXRpb248TkQgJiBJbnRlcm5hbE9wTm9kZURhdGEsIE9SPiB7XG4gICAgXG4gICAgcHVibGljIGdldCBwYXRoVHJhbnNpdGlvbigpOiBUcmFuc2l0aW9uPFByb3BlcnR5UGF0aD4geyByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLnBhdGhUcmFuc2l0aW9uOyB9XG4gICAgcHVibGljIGdldCBwcm9wZXJ0eVRyYW5zaXRpb24oKTogVHJhbnNpdGlvbjxDb21wb25lbnRQcm9wZXJ0eVZhbHVlPiB7IHJldHVybiB0aGlzLm91dGdvaW5nTm9kZVJlZmVyZW5jZXMucHJvcGVydHlUcmFuc2l0aW9uOyB9XG4gICAgcHVibGljIGdldCBwcm9wZXJ0eU9wZXJhdGlvblR5cGUoKTogT3BlcmF0aW9uVHlwZSB7IHJldHVybiB0aGlzLm5vZGVEYXRhLnByb3BlcnR5T3BlcmF0aW9uVHlwZTsgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIG5vZGVEYXRhOiBORCxcbiAgICAgICAgb3V0Z29pbmdSZWZlcmVuY2VzOiBPUixcbiAgICAgICAgcHJvcGVydHlPcGVyYXRpb25UeXBlOiBPcGVyYXRpb25UeXBlLFxuICAgICl7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgeyAuLi5ub2RlRGF0YSwgcHJvcGVydHlPcGVyYXRpb25UeXBlIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZXhwb3Nlc1ZhbHVlczoge1xuICAgICAgICAgICAgICAgICAgICBvbGQ6IG91dGdvaW5nUmVmZXJlbmNlcy5wcm9wZXJ0eVRyYW5zaXRpb24udjEsXG4gICAgICAgICAgICAgICAgICAgIG5ldzogb3V0Z29pbmdSZWZlcmVuY2VzLnByb3BlcnR5VHJhbnNpdGlvbi52MixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIC4uLm91dGdvaW5nUmVmZXJlbmNlcyxcbiAgICAgICAgICAgICAgICBhcHBsaWVzVG86IFsuLi5vdXRnb2luZ1JlZmVyZW5jZXMuYXBwbGllc1RvID8/IFtdLCAuLi5vdXRnb2luZ1JlZmVyZW5jZXMucHJvcGVydHlUcmFuc2l0aW9uLmV4cGxvZGUoKV0sXG4gICAgICAgICAgICB9LCBPcGVyYXRpb25UeXBlLlVQREFURVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFVwZGF0ZVR5cGUoKTogQ29tcG9uZW50VXBkYXRlVHlwZSB7XG4gICAgICAgIGlmKCF0aGlzLnByb3BlcnR5VHJhbnNpdGlvbi52MiAmJiAhdGhpcy5wcm9wZXJ0eVRyYW5zaXRpb24udjEpe1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJQcm9wZXJ0eSBPcGVyYXRpb24gaGFzIG5vIGJlZm9yZSBvciBhZnRlciBwcm9wZXJ0eSBzdGF0ZXNcIik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydHlUcmFuc2l0aW9uLnYxPy5jb21wb25lbnRVcGRhdGVUeXBlID8/IHRoaXMucHJvcGVydHlUcmFuc2l0aW9uLnYyIS5jb21wb25lbnRVcGRhdGVUeXBlO1xuICAgIH1cblxuICAgIGdldFYxUGF0aCh2MnBhdGg6IFByb3BlcnR5UGF0aCk6IFByb3BlcnR5UGF0aCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmKHRoaXMucGF0aFRyYW5zaXRpb24udjEgJiYgdGhpcy5wYXRoVHJhbnNpdGlvbi52MlxuICAgICAgICAgICAgJiYgdjJwYXRoLmxlbmd0aCA+PSB0aGlzLnBhdGhUcmFuc2l0aW9uLnYyLmxlbmd0aFxuICAgICAgICAgICAgJiYgYXJyYXlzRXF1YWwodjJwYXRoLCB0aGlzLnBhdGhUcmFuc2l0aW9uLnYyLnNsaWNlKDAsIHYycGF0aC5sZW5ndGgpKSl7XG4gICAgICAgICAgICByZXR1cm4gWy4uLnRoaXMucGF0aFRyYW5zaXRpb24udjEsIC4uLnYycGF0aC5zbGljZSh0aGlzLnBhdGhUcmFuc2l0aW9uLnYxLmxlbmd0aCldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9TZXJpYWxpemVkKFxuICAgICAgICBzZXJpYWxpemU6IChvYmo6IEpTT05TZXJpYWxpemFibGUpID0+IG51bWJlcixcbiAgICApOiBTZXJpYWxpemVkUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uc3VwZXIudG9TZXJpYWxpemVkKHNlcmlhbGl6ZSksXG4gICAgICAgICAgICBwYXRoVHJhbnNpdGlvbjogc2VyaWFsaXplKHRoaXMucGF0aFRyYW5zaXRpb24pLFxuICAgICAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBzZXJpYWxpemUodGhpcy5wcm9wZXJ0eVRyYW5zaXRpb24pLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBsb2RlKCk6IFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uW10ge1xuICAgICAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uID8gdGhpcy5nZXRBbGxJbm5lck9wZXJhdGlvbnMoKSA6IFt0aGlzXTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbnNlcnRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiBleHRlbmRzIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uPE9wTm9kZURhdGEsIFByb3BPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXM+IHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBub2RlRGF0YTogT3BOb2RlRGF0YSxcbiAgICAgICAgb3V0Z29pbmdSZWZlcmVuY2VzOiBQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzXG4gICAgKXtcbiAgICAgICAgc3VwZXIobm9kZURhdGEsIHtcbiAgICAgICAgICAgIC4uLm91dGdvaW5nUmVmZXJlbmNlcyxcbiAgICAgICAgICAgIGFwcGxpZXNUbzogWy4uLm91dGdvaW5nUmVmZXJlbmNlcy5hcHBsaWVzVG8gPz8gW10sIC4uLm91dGdvaW5nUmVmZXJlbmNlcy5wcm9wZXJ0eVRyYW5zaXRpb24udjI/LmV4cGxvZGUoKSA/PyBbXV1cbiAgICAgICAgfSwgT3BlcmF0aW9uVHlwZS5JTlNFUlQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLklOU0VSVF9QUk9QRVJUWV9DT01QT05FTlRfT1BFUkFUSU9OO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIGV4dGVuZHMgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24ge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIG5vZGVEYXRhOiBPcE5vZGVEYXRhLFxuICAgICAgICBvdXRnb2luZ1JlZmVyZW5jZXM6IFByb3BPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXNcbiAgICApe1xuICAgICAgICBzdXBlcihub2RlRGF0YSwge1xuICAgICAgICAgICAgLi4ub3V0Z29pbmdSZWZlcmVuY2VzLFxuICAgICAgICAgICAgYXBwbGllc1RvOiBbLi4ub3V0Z29pbmdSZWZlcmVuY2VzLmFwcGxpZXNUbyA/PyBbXSwgLi4ub3V0Z29pbmdSZWZlcmVuY2VzLnByb3BlcnR5VHJhbnNpdGlvbi52MT8uZXhwbG9kZSgpID8/IFtdXVxuICAgICAgICB9LCBPcGVyYXRpb25UeXBlLlJFTU9WRSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNlcmlhbGl6YXRpb25DbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuUkVNT1ZFX1BST1BFUlRZX0NPTVBPTkVOVF9PUEVSQVRJT047XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBVcGRhdGVQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzID0gUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyAmIHtcbiAgICByZWFkb25seSBpbm5lck9wZXJhdGlvbnM/OiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbltdLFxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gZXh0ZW5kcyBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbjxPcE5vZGVEYXRhLCBVcGRhdGVQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzPiB7XG5cbiAgICBwdWJsaWMgZ2V0IGlubmVyT3BlcmF0aW9ucygpOiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbltdIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5pbm5lck9wZXJhdGlvbnM7IH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBub2RlRGF0YTogT3BOb2RlRGF0YSxcbiAgICAgICAgb3V0Z29pbmdSZWZlcmVuY2VzOiBVcGRhdGVQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzLFxuICAgICAgICBvcGVyYXRpb25UeXBlOiBPcGVyYXRpb25UeXBlID0gT3BlcmF0aW9uVHlwZS5VUERBVEVcbiAgICApe3N1cGVyKG5vZGVEYXRhLCBvdXRnb2luZ1JlZmVyZW5jZXMsIG9wZXJhdGlvblR5cGUpO31cblxuICAgIGdldEFsbElubmVyT3BlcmF0aW9ucygpOiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbltde1xuICAgICAgICBpZighdGhpcy5pbm5lck9wZXJhdGlvbnMgfHwgdGhpcy5pbm5lck9wZXJhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gW3RoaXNdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmbGF0TWFwKHRoaXMuaW5uZXJPcGVyYXRpb25zLCBvID0+XG4gICAgICAgICAgICBbdGhpcywgLi4uKFxuICAgICAgICAgICAgICAgIG8gaW5zdGFuY2VvZiBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblxuICAgICAgICAgICAgICAgICAgICA/IG8uZ2V0QWxsSW5uZXJPcGVyYXRpb25zKClcbiAgICAgICAgICAgICAgICAgICAgOiBbb11cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBdXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0VjFQYXRoKHYycGF0aDogUHJvcGVydHlQYXRoKTogUHJvcGVydHlQYXRoIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgcGF0aEZvdW5kU29GYXIgPSBzdXBlci5nZXRWMVBhdGgodjJwYXRoKTtcbiAgICAgICAgaWYocGF0aEZvdW5kU29GYXIpe1xuICAgICAgICAgICAgaWYoIXRoaXMuaW5uZXJPcGVyYXRpb25zKVxuICAgICAgICAgICAgICAgIHJldHVybiBwYXRoRm91bmRTb0ZhcjtcbiAgICAgICAgICAgIGZvcihjb25zdCBvcCBvZiB0aGlzLmlubmVyT3BlcmF0aW9ucyl7XG4gICAgICAgICAgICAgICAgY29uc3QgcCA9IG9wLmdldFYxUGF0aCh2MnBhdGgpO1xuICAgICAgICAgICAgICAgIGlmKHApIHJldHVybiBwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGVhdmVzKCk6IFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uW10ge1xuICAgICAgICBpZighdGhpcy5pbm5lck9wZXJhdGlvbnMpIHJldHVybiBbdGhpc107XG4gICAgICAgIHJldHVybiBmbGF0TWFwKHRoaXMuaW5uZXJPcGVyYXRpb25zLCBvID0+IChvIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24pID8gby5nZXRMZWF2ZXMoKSA6IFtvXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU2VyaWFsaXplZChcbiAgICAgICAgc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBudW1iZXIsXG4gICAgKTogU2VyaWFsaXplZFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnN1cGVyLnRvU2VyaWFsaXplZChzZXJpYWxpemUpLFxuICAgICAgICAgICAgaW5uZXJPcGVyYXRpb25zOiB0aGlzLmlubmVyT3BlcmF0aW9ucz8ubWFwKG8gPT4gc2VyaWFsaXplKG8pKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5VUERBVEVfUFJPUEVSVFlfQ09NUE9ORU5UX09QRVJBVElPTjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gZXh0ZW5kcyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiB7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbm9kZURhdGE6IE9wTm9kZURhdGEsXG4gICAgICAgIG91dGdvaW5nUmVmZXJlbmNlczogVXBkYXRlUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyxcbiAgICAgICAgb3BlcmF0aW9uVHlwZTogT3BlcmF0aW9uVHlwZSA9IE9wZXJhdGlvblR5cGUuUkVOQU1FXG4gICAgKXtzdXBlcihub2RlRGF0YSwgb3V0Z29pbmdSZWZlcmVuY2VzLCBvcGVyYXRpb25UeXBlKTt9XG5cbiAgICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5NT1ZFX1BST1BFUlRZX0NPTVBPTkVOVF9PUEVSQVRJT047XG4gICAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY29tcG9uZW50LW9wZXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL21vZGVsLWRpZmZpbmcvb3BlcmF0aW9ucy9wcm9wZXJ0eS1jb21wb25lbnQtb3BlcmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhFQUEwRTtBQUcxRSx1Q0FBbUQ7QUFFbkQsK0RBQWdIO0FBV2hILE1BQXNCLDBCQUVwQixTQUFRLHdDQUErQztJQUd2RCxJQUFXLGNBQWMsS0FBK0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUM1RyxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsSUFBVyxxQkFBcUIsS0FBb0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztJQUVqRyxZQUNFLFFBQVksRUFDWixrQkFBc0IsRUFDdEIscUJBQW9DOztRQUVwQyxLQUFLLENBQ0gsRUFBRSxHQUFHLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxFQUN0QztZQUNFLGFBQWEsRUFBRTtnQkFDYixHQUFHLEVBQUUsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsRUFBRTtnQkFDN0MsR0FBRyxFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLEVBQUU7YUFDOUM7WUFDRCxHQUFHLGtCQUFrQjtZQUNyQixTQUFTLEVBQUUsQ0FBQyxHQUFHLE1BQUEsa0JBQWtCLENBQUMsU0FBUyxtQ0FBSSxFQUFFLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN2RyxFQUFFLG1DQUFhLENBQUMsTUFBTSxDQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7O1FBQ1gsSUFBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLElBQUksQ0FB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QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ILENBQUM7SUFFTSxZQUFZLENBQ2pCLFNBQTRDOztRQUU1QyxPQUFPO1lBQ0wsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztZQUNoQyxlQUFlLEVBQUUsTUFBQSxJQUFJLENBQUMsZUFBZSwwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUQsQ0FBQztJQUNKLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyw0Q0FBb0IsQ0FBQyxtQ0FBbUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0Y7QUF6REQsNEVBeURDO0FBRUQsTUFBYSw4QkFBK0IsU0FBUSxnQ0FBZ0M7SUFFbEYsWUFDRSxRQUFvQixFQUNwQixrQkFBc0QsRUFDdEQsZ0JBQStCLG1DQUFhLENBQUMsTUFBTSxJQUNuRCxLQUFLLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUEsQ0FBQztJQUUvQyxxQkFBcUI7UUFDMUIsT0FBTyw0Q0FBb0IsQ0FBQyxpQ0FBaUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0Y7QUFYRCx3RUFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEpTT05TZXJpYWxpemFibGUgfSBmcm9tICcuLi8uLi9leHBvcnQvanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkNsYXNzZXMgfSBmcm9tICcuLi8uLi9leHBvcnQvc2VyaWFsaXphdGlvbi1jbGFzc2VzJztcbmltcG9ydCB7IFNlcmlhbGl6ZWRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiwgU2VyaWFsaXplZFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtY29tcG9uZW50LW9wZXJhdGlvbic7XG5pbXBvcnQgeyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLCBDb21wb25lbnRVcGRhdGVUeXBlLCBQcm9wZXJ0eVBhdGggfSBmcm9tICcuLi8uLi9pbmZyYS1tb2RlbCc7XG5pbXBvcnQgeyBhcnJheXNFcXVhbCwgZmxhdE1hcCB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zaXRpb24gfSBmcm9tICcuLi90cmFuc2l0aW9uJztcbmltcG9ydCB7IENvbXBvbmVudE9wZXJhdGlvbiwgT3BlcmF0aW9uVHlwZSwgT3BOb2RlRGF0YSwgT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzIH0gZnJvbSAnLi9jb21wb25lbnQtb3BlcmF0aW9uJztcblxudHlwZSBJbnRlcm5hbE9wTm9kZURhdGEgPSB7XG4gIHByb3BlcnR5T3BlcmF0aW9uVHlwZTogT3BlcmF0aW9uVHlwZSxcbn1cblxuZXhwb3J0IHR5cGUgUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyA9IE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyAmIHtcbiAgcmVhZG9ubHkgcHJvcGVydHlUcmFuc2l0aW9uOiBUcmFuc2l0aW9uPENvbXBvbmVudFByb3BlcnR5VmFsdWU+LFxuICByZWFkb25seSBwYXRoVHJhbnNpdGlvbjogVHJhbnNpdGlvbjxQcm9wZXJ0eVBhdGg+LFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbjxORCBleHRlbmRzIE9wTm9kZURhdGEgPSBhbnksIE9SIGV4dGVuZHMgUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyA9IGFueT5cbiAgZXh0ZW5kcyBDb21wb25lbnRPcGVyYXRpb248TkQgJiBJbnRlcm5hbE9wTm9kZURhdGEsIE9SPlxue1xuXG4gIHB1YmxpYyBnZXQgcGF0aFRyYW5zaXRpb24oKTogVHJhbnNpdGlvbjxQcm9wZXJ0eVBhdGg+IHsgcmV0dXJuIHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy5wYXRoVHJhbnNpdGlvbjsgfVxuICBwdWJsaWMgZ2V0IHByb3BlcnR5VHJhbnNpdGlvbigpOiBUcmFuc2l0aW9uPENvbXBvbmVudFByb3BlcnR5VmFsdWU+IHtcbiAgICByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLnByb3BlcnR5VHJhbnNpdGlvbjtcbiAgfVxuICBwdWJsaWMgZ2V0IHByb3BlcnR5T3BlcmF0aW9uVHlwZSgpOiBPcGVyYXRpb25UeXBlIHsgcmV0dXJuIHRoaXMubm9kZURhdGEucHJvcGVydHlPcGVyYXRpb25UeXBlOyB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbm9kZURhdGE6IE5ELFxuICAgIG91dGdvaW5nUmVmZXJlbmNlczogT1IsXG4gICAgcHJvcGVydHlPcGVyYXRpb25UeXBlOiBPcGVyYXRpb25UeXBlLFxuICApe1xuICAgIHN1cGVyKFxuICAgICAgeyAuLi5ub2RlRGF0YSwgcHJvcGVydHlPcGVyYXRpb25UeXBlIH0sXG4gICAgICB7XG4gICAgICAgIGV4cG9zZXNWYWx1ZXM6IHtcbiAgICAgICAgICBvbGQ6IG91dGdvaW5nUmVmZXJlbmNlcy5wcm9wZXJ0eVRyYW5zaXRpb24udjEsXG4gICAgICAgICAgbmV3OiBvdXRnb2luZ1JlZmVyZW5jZXMucHJvcGVydHlUcmFuc2l0aW9uLnYyLFxuICAgICAgICB9LFxuICAgICAgICAuLi5vdXRnb2luZ1JlZmVyZW5jZXMsXG4gICAgICAgIGFwcGxpZXNUbzogWy4uLm91dGdvaW5nUmVmZXJlbmNlcy5hcHBsaWVzVG8gPz8gW10sIC4uLm91dGdvaW5nUmVmZXJlbmNlcy5wcm9wZXJ0eVRyYW5zaXRpb24uZXhwbG9kZSgpXSxcbiAgICAgIH0sIE9wZXJhdGlvblR5cGUuVVBEQVRFLFxuICAgICk7XG4gIH1cblxuICBnZXRVcGRhdGVUeXBlKCk6IENvbXBvbmVudFVwZGF0ZVR5cGUge1xuICAgIGlmKCF0aGlzLnByb3BlcnR5VHJhbnNpdGlvbi52MiAmJiAhdGhpcy5wcm9wZXJ0eVRyYW5zaXRpb24udjEpe1xuICAgICAgdGhyb3cgRXJyb3IoJ1Byb3BlcnR5IE9wZXJhdGlvbiBoYXMgbm8gYmVmb3JlIG9yIGFmdGVyIHByb3BlcnR5IHN0YXRlcycpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIHJldHVybiB0aGlzLnByb3BlcnR5VHJhbnNpdGlvbi52MT8uY29tcG9uZW50VXBkYXRlVHlwZSA/PyB0aGlzLnByb3BlcnR5VHJhbnNpdGlvbi52MiEuY29tcG9uZW50VXBkYXRlVHlwZTtcbiAgfVxuXG4gIGdldFYxUGF0aCh2MnBhdGg6IFByb3BlcnR5UGF0aCk6IFByb3BlcnR5UGF0aCB8IHVuZGVmaW5lZCB7XG4gICAgaWYodGhpcy5wYXRoVHJhbnNpdGlvbi52MSAmJiB0aGlzLnBhdGhUcmFuc2l0aW9uLnYyXG4gICAgICAgICAgICAmJiB2MnBhdGgubGVuZ3RoID49IHRoaXMucGF0aFRyYW5zaXRpb24udjIubGVuZ3RoXG4gICAgICAgICAgICAmJiBhcnJheXNFcXVhbCh2MnBhdGgsIHRoaXMucGF0aFRyYW5zaXRpb24udjIuc2xpY2UoMCwgdjJwYXRoLmxlbmd0aCkpKXtcbiAgICAgIHJldHVybiBbLi4udGhpcy5wYXRoVHJhbnNpdGlvbi52MSwgLi4udjJwYXRoLnNsaWNlKHRoaXMucGF0aFRyYW5zaXRpb24udjEubGVuZ3RoKV07XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIHB1YmxpYyB0b1NlcmlhbGl6ZWQoXG4gICAgc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBudW1iZXIsXG4gICk6IFNlcmlhbGl6ZWRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1cGVyLnRvU2VyaWFsaXplZChzZXJpYWxpemUpLFxuICAgICAgcGF0aFRyYW5zaXRpb246IHNlcmlhbGl6ZSh0aGlzLnBhdGhUcmFuc2l0aW9uKSxcbiAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogc2VyaWFsaXplKHRoaXMucHJvcGVydHlUcmFuc2l0aW9uKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGV4cGxvZGUoKTogUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiA/IHRoaXMuZ2V0QWxsSW5uZXJPcGVyYXRpb25zKCkgOiBbdGhpc107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluc2VydFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uXG4gIGV4dGVuZHMgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb248T3BOb2RlRGF0YSwgUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcz5cbntcbiAgY29uc3RydWN0b3IoXG4gICAgbm9kZURhdGE6IE9wTm9kZURhdGEsXG4gICAgb3V0Z29pbmdSZWZlcmVuY2VzOiBQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzLFxuICApe1xuICAgIHN1cGVyKG5vZGVEYXRhLCB7XG4gICAgICAuLi5vdXRnb2luZ1JlZmVyZW5jZXMsXG4gICAgICBhcHBsaWVzVG86IFsuLi5vdXRnb2luZ1JlZmVyZW5jZXMuYXBwbGllc1RvID8/IFtdLCAuLi5vdXRnb2luZ1JlZmVyZW5jZXMucHJvcGVydHlUcmFuc2l0aW9uLnYyPy5leHBsb2RlKCkgPz8gW11dLFxuICAgIH0sIE9wZXJhdGlvblR5cGUuSU5TRVJUKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuSU5TRVJUX1BST1BFUlRZX0NPTVBPTkVOVF9PUEVSQVRJT047XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIGV4dGVuZHMgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5vZGVEYXRhOiBPcE5vZGVEYXRhLFxuICAgIG91dGdvaW5nUmVmZXJlbmNlczogUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyxcbiAgKXtcbiAgICBzdXBlcihub2RlRGF0YSwge1xuICAgICAgLi4ub3V0Z29pbmdSZWZlcmVuY2VzLFxuICAgICAgYXBwbGllc1RvOiBbLi4ub3V0Z29pbmdSZWZlcmVuY2VzLmFwcGxpZXNUbyA/PyBbXSwgLi4ub3V0Z29pbmdSZWZlcmVuY2VzLnByb3BlcnR5VHJhbnNpdGlvbi52MT8uZXhwbG9kZSgpID8/IFtdXSxcbiAgICB9LCBPcGVyYXRpb25UeXBlLlJFTU9WRSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLlJFTU9WRV9QUk9QRVJUWV9DT01QT05FTlRfT1BFUkFUSU9OO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFVwZGF0ZVByb3BPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXMgPSBQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzICYge1xuICByZWFkb25seSBpbm5lck9wZXJhdGlvbnM/OiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbltdLFxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbiAgZXh0ZW5kcyBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbjxPcE5vZGVEYXRhLCBVcGRhdGVQcm9wT3BPdXRnb2luZ05vZGVSZWZlcmVuY2VzPlxue1xuICBwdWJsaWMgZ2V0IGlubmVyT3BlcmF0aW9ucygpOiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbltdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLmlubmVyT3BlcmF0aW9ucztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG5vZGVEYXRhOiBPcE5vZGVEYXRhLFxuICAgIG91dGdvaW5nUmVmZXJlbmNlczogVXBkYXRlUHJvcE9wT3V0Z29pbmdOb2RlUmVmZXJlbmNlcyxcbiAgICBvcGVyYXRpb25UeXBlOiBPcGVyYXRpb25UeXBlID0gT3BlcmF0aW9uVHlwZS5VUERBVEUsXG4gICl7c3VwZXIobm9kZURhdGEsIG91dGdvaW5nUmVmZXJlbmNlcywgb3BlcmF0aW9uVHlwZSk7fVxuXG4gIGdldEFsbElubmVyT3BlcmF0aW9ucygpOiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbltde1xuICAgIGlmKCF0aGlzLmlubmVyT3BlcmF0aW9ucyB8fCB0aGlzLmlubmVyT3BlcmF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbdGhpc107XG4gICAgfVxuICAgIHJldHVybiBmbGF0TWFwKHRoaXMuaW5uZXJPcGVyYXRpb25zLCBvID0+XG4gICAgICBbdGhpcywgLi4uKFxuICAgICAgICBvIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbiAgICAgICAgICA/IG8uZ2V0QWxsSW5uZXJPcGVyYXRpb25zKClcbiAgICAgICAgICA6IFtvXVxuICAgICAgKSxcbiAgICAgIF0sXG4gICAgKTtcbiAgfVxuXG4gIGdldFYxUGF0aCh2MnBhdGg6IFByb3BlcnR5UGF0aCk6IFByb3BlcnR5UGF0aCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcGF0aEZvdW5kU29GYXIgPSBzdXBlci5nZXRWMVBhdGgodjJwYXRoKTtcbiAgICBpZihwYXRoRm91bmRTb0Zhcil7XG4gICAgICBpZighdGhpcy5pbm5lck9wZXJhdGlvbnMpXG4gICAgICAgIHJldHVybiBwYXRoRm91bmRTb0ZhcjtcbiAgICAgIGZvcihjb25zdCBvcCBvZiB0aGlzLmlubmVyT3BlcmF0aW9ucyl7XG4gICAgICAgIGNvbnN0IHAgPSBvcC5nZXRWMVBhdGgodjJwYXRoKTtcbiAgICAgICAgaWYocCkgcmV0dXJuIHA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMZWF2ZXMoKTogUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25bXSB7XG4gICAgaWYoIXRoaXMuaW5uZXJPcGVyYXRpb25zKSByZXR1cm4gW3RoaXNdO1xuICAgIHJldHVybiBmbGF0TWFwKHRoaXMuaW5uZXJPcGVyYXRpb25zLCBvID0+IChvIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24pID8gby5nZXRMZWF2ZXMoKSA6IFtvXSk7XG4gIH1cblxuICBwdWJsaWMgdG9TZXJpYWxpemVkKFxuICAgIHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gbnVtYmVyLFxuICApOiBTZXJpYWxpemVkVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci50b1NlcmlhbGl6ZWQoc2VyaWFsaXplKSxcbiAgICAgIGlubmVyT3BlcmF0aW9uczogdGhpcy5pbm5lck9wZXJhdGlvbnM/Lm1hcChvID0+IHNlcmlhbGl6ZShvKSksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZXJpYWxpemF0aW9uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU2VyaWFsaXphdGlvbkNsYXNzZXMuVVBEQVRFX1BST1BFUlRZX0NPTVBPTkVOVF9PUEVSQVRJT047XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiBleHRlbmRzIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBub2RlRGF0YTogT3BOb2RlRGF0YSxcbiAgICBvdXRnb2luZ1JlZmVyZW5jZXM6IFVwZGF0ZVByb3BPcE91dGdvaW5nTm9kZVJlZmVyZW5jZXMsXG4gICAgb3BlcmF0aW9uVHlwZTogT3BlcmF0aW9uVHlwZSA9IE9wZXJhdGlvblR5cGUuUkVOQU1FLFxuICApe3N1cGVyKG5vZGVEYXRhLCBvdXRnb2luZ1JlZmVyZW5jZXMsIG9wZXJhdGlvblR5cGUpO31cblxuICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLk1PVkVfUFJPUEVSVFlfQ09NUE9ORU5UX09QRVJBVElPTjtcbiAgfVxufSJdfQ==

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

import { JSONSerializable, Serialized } from "../export/json-serializable";
import { SerializationID } from "../export/json-serializer";
import { SerializedTransition } from "../export/serialized-interfaces/infra-model-diff/serialized-transition";
import { ModelEntity } from "../infra-model/model-entity";
import { JSONSerializable, Serialized } from '../export/json-serializable';
import { SerializationID } from '../export/json-serializer';
import { SerializedTransition } from '../export/serialized-interfaces/infra-model-diff/serialized-transition';
import { ModelEntity } from '../infra-model/model-entity';
/**

@@ -21,2 +21,3 @@ * Represents two versions (v1 and v2) of an Entity

export declare class Transition<T extends JSONSerializable | Serialized, V extends TransitionVersions<T> = TransitionVersions<T>> extends ModelEntity<Record<string, any>, Record<string, any>> implements JSONSerializable {
private static isModelEntityTransition;
get v1(): T | undefined;

@@ -28,3 +29,2 @@ get v2(): T | undefined;

getSerializationClass(): string;
private static isModelEntityTransition;
explode(): NonNullable<T>[];

@@ -31,0 +31,0 @@ toSerialized(serialize: (obj: JSONSerializable) => SerializationID): SerializedTransition;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CompleteTransition = exports.Transition = void 0;
const utils_1 = require("../utils");
const json_serializable_1 = require("../export/json-serializable");

@@ -9,2 +8,3 @@ const serialization_classes_1 = require("../export/serialization-classes");

const model_entity_types_1 = require("../infra-model/model-entity-types");
const utils_1 = require("../utils");
class Transition extends model_entity_1.ModelEntity {

@@ -16,2 +16,5 @@ constructor(versions) {

}
static isModelEntityTransition(versions) {
return versions.v1 instanceof model_entity_1.ModelEntity || versions.v2 instanceof model_entity_1.ModelEntity;
}
get v1() { return this.isModelEntityTransition ? this.outgoingNodeReferences.v1 : this.nodeData.v1; }

@@ -25,5 +28,2 @@ get v2() { return this.isModelEntityTransition ? this.outgoingNodeReferences.v2 : this.nodeData.v2; }

}
static isModelEntityTransition(versions) {
return versions.v1 instanceof model_entity_1.ModelEntity || versions.v2 instanceof model_entity_1.ModelEntity;
}
explode() {

@@ -33,3 +33,5 @@ return [this.v1, this.v2].filter(utils_1.isDefined);

toSerialized(serialize) {
const serializeVersion = (version) => json_serializable_1.isJSONSerializable(version) ? serialize(version) : { value: version };
const serializeVersion = (version) => json_serializable_1.isJSONSerializable(version)
? serialize(version)
: { value: version };
return {

@@ -43,6 +45,5 @@ v1: this.v1 ? serializeVersion(this.v1) : undefined,

class CompleteTransition extends Transition {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
get v1() { return super.v1; }
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
get v2() { return super.v2; }
// By definition these need to be defined
get v1() { return super.v1; } // eslint-disable-line @typescript-eslint/no-non-null-assertion
get v2() { return super.v2; } // eslint-disable-line @typescript-eslint/no-non-null-assertion
constructor(versions) {

@@ -53,2 +54,2 @@ super(versions);

exports.CompleteTransition = CompleteTransition;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVsLWRpZmZpbmcvdHJhbnNpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvQ0FBcUM7QUFDckMsbUVBQWlIO0FBRWpILDJFQUF1RTtBQUV2RSw4REFBMEQ7QUFDMUQsMEVBQXFFO0FBbUJyRSxNQUFhLFVBQ1QsU0FBUSwwQkFBcUQ7SUFPN0QsWUFBWSxRQUFXO1FBQ25CLE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLEtBQUssQ0FBQyxxQ0FBZ0IsQ0FBQyxVQUFVLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JILElBQUksQ0FBQyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztJQUMzRCxDQUFDO0lBUkQsSUFBSSxFQUFFLEtBQWtCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEgsSUFBSSxFQUFFLEtBQWtCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFTM0csb0JBQW9CO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDMUQsQ0FBQztJQUVNLHFCQUFxQjtRQUN4QixPQUFPLDRDQUFvQixDQUFDLFVBQVUsQ0FBQztJQUMzQyxDQUFDO0lBRU8sTUFBTSxDQUFDLHVCQUF1QixDQUFDLFFBQWlDO1FBQ3BFLE9BQU8sUUFBUSxDQUFDLEVBQUUsWUFBWSwwQkFBVyxJQUFJLFFBQVEsQ0FBQyxFQUFFLFlBQVksMEJBQVcsQ0FBQztJQUNwRixDQUFDO0lBRU0sT0FBTztRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxZQUFZLENBQUMsU0FBcUQ7UUFDckUsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE9BQVUsRUFBRSxFQUFFLENBQUMsc0NBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsT0FBcUIsRUFBQyxDQUFDO1FBRTNILE9BQU87WUFDSCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ25ELEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDdEQsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQXRDRCxnQ0FzQ0M7QUFFRCxNQUFhLGtCQUE0RCxTQUFRLFVBQTRDO0lBQ3pILG9FQUFvRTtJQUNwRSxJQUFJLEVBQUUsS0FBUSxPQUFPLEtBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLG9FQUFvRTtJQUNwRSxJQUFJLEVBQUUsS0FBUSxPQUFPLEtBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxDQUFDO0lBRWpDLFlBQVksUUFBdUM7UUFDL0MsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQVRELGdEQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBpc0pTT05TZXJpYWxpemFibGUsIEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQsIFNlcmlhbGl6ZWRSZWNvcmQgfSBmcm9tIFwiLi4vZXhwb3J0L2pzb24tc2VyaWFsaXphYmxlXCI7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uSUQgfSBmcm9tIFwiLi4vZXhwb3J0L2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbkNsYXNzZXMgfSBmcm9tIFwiLi4vZXhwb3J0L3NlcmlhbGl6YXRpb24tY2xhc3Nlc1wiO1xuaW1wb3J0IHsgU2VyaWFsaXplZFRyYW5zaXRpb24gfSBmcm9tIFwiLi4vZXhwb3J0L3NlcmlhbGl6ZWQtaW50ZXJmYWNlcy9pbmZyYS1tb2RlbC1kaWZmL3NlcmlhbGl6ZWQtdHJhbnNpdGlvblwiO1xuaW1wb3J0IHsgTW9kZWxFbnRpdHkgfSBmcm9tIFwiLi4vaW5mcmEtbW9kZWwvbW9kZWwtZW50aXR5XCI7XG5pbXBvcnQgeyBNb2RlbEVudGl0eVR5cGVzIH0gZnJvbSBcIi4uL2luZnJhLW1vZGVsL21vZGVsLWVudGl0eS10eXBlc1wiO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdHdvIHZlcnNpb25zICh2MSBhbmQgdjIpIG9mIGFuIEVudGl0eVxuICovXG5leHBvcnQgdHlwZSBUcmFuc2l0aW9uVmVyc2lvbnM8VD4gPSB7XG4gICAgdjE/OiBULFxuICAgIHYyPzogVCxcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHR3byB2ZXJzaW9ucyAodjEgYW5kIHYyKSBvZiBhbiBFbnRpdHlcbiAqIHdoZXJlIHRoZXkgYm90aCBhcmUgZGVmaW5lZFxuICovXG5leHBvcnQgdHlwZSBDb21wbGV0ZVRyYW5zaXRpb25WZXJzaW9uczxUPiA9IFRyYW5zaXRpb25WZXJzaW9uczxUPiAmIHtcbiAgICB2MTogVCxcbiAgICB2MjogVFxufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNpdGlvbjxUIGV4dGVuZHMgSlNPTlNlcmlhbGl6YWJsZSB8IFNlcmlhbGl6ZWQsIFYgZXh0ZW5kcyBUcmFuc2l0aW9uVmVyc2lvbnM8VD4gPSBUcmFuc2l0aW9uVmVyc2lvbnM8VD4+XG4gICAgZXh0ZW5kcyBNb2RlbEVudGl0eTxSZWNvcmQ8c3RyaW5nLCBhbnk+LCBSZWNvcmQ8c3RyaW5nLCBhbnk+PlxuICAgIGltcGxlbWVudHMgSlNPTlNlcmlhbGl6YWJsZSB7XG5cbiAgICBnZXQgdjEoKTogVHx1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5pc01vZGVsRW50aXR5VHJhbnNpdGlvbiA/IHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy52MSA6IHRoaXMubm9kZURhdGEudjE7IH1cbiAgICBnZXQgdjIoKTogVHx1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5pc01vZGVsRW50aXR5VHJhbnNpdGlvbiA/IHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy52MiA6IHRoaXMubm9kZURhdGEudjI7IH1cbiAgICBcbiAgICBwcml2YXRlIGlzTW9kZWxFbnRpdHlUcmFuc2l0aW9uOiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKHZlcnNpb25zOiBWKXtcbiAgICAgICAgY29uc3QgaXNNb2RlbEVudGl0eVRyYW5zaXRpb24gPSBUcmFuc2l0aW9uLmlzTW9kZWxFbnRpdHlUcmFuc2l0aW9uKHZlcnNpb25zKTtcbiAgICAgICAgc3VwZXIoTW9kZWxFbnRpdHlUeXBlcy50cmFuc2l0aW9uLCBpc01vZGVsRW50aXR5VHJhbnNpdGlvbiA/IHt9IDogdmVyc2lvbnMsIGlzTW9kZWxFbnRpdHlUcmFuc2l0aW9uID8gdmVyc2lvbnMgOiB7fSk7XG4gICAgICAgIHRoaXMuaXNNb2RlbEVudGl0eVRyYW5zaXRpb24gPSBpc01vZGVsRW50aXR5VHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb21wbGV0ZVRyYW5zaXRpb24oKTogdGhpcyBpcyBDb21wbGV0ZVRyYW5zaXRpb248VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy52MSAhPT0gdW5kZWZpbmVkICYmIHRoaXMudjIgIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBTZXJpYWxpemF0aW9uQ2xhc3Nlcy5UUkFOU0lUSU9OO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGlzTW9kZWxFbnRpdHlUcmFuc2l0aW9uKHZlcnNpb25zOiBUcmFuc2l0aW9uVmVyc2lvbnM8YW55Pik6IHZlcnNpb25zIGlzIFRyYW5zaXRpb25WZXJzaW9uczxNb2RlbEVudGl0eT4ge1xuICAgICAgICByZXR1cm4gdmVyc2lvbnMudjEgaW5zdGFuY2VvZiBNb2RlbEVudGl0eSB8fCB2ZXJzaW9ucy52MiBpbnN0YW5jZW9mIE1vZGVsRW50aXR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBsb2RlKCkge1xuICAgICAgICByZXR1cm4gW3RoaXMudjEsIHRoaXMudjJdLmZpbHRlcihpc0RlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1NlcmlhbGl6ZWQoc2VyaWFsaXplOiAob2JqOiBKU09OU2VyaWFsaXphYmxlKSA9PiBTZXJpYWxpemF0aW9uSUQpOiBTZXJpYWxpemVkVHJhbnNpdGlvbiB7XG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZVZlcnNpb24gPSAodmVyc2lvbjogVCkgPT4gaXNKU09OU2VyaWFsaXphYmxlKHZlcnNpb24pID8gc2VyaWFsaXplKHZlcnNpb24pIDoge3ZhbHVlOiB2ZXJzaW9uIGFzIFNlcmlhbGl6ZWR9O1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHYxOiB0aGlzLnYxID8gc2VyaWFsaXplVmVyc2lvbih0aGlzLnYxKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHYyOiB0aGlzLnYyID8gc2VyaWFsaXplVmVyc2lvbih0aGlzLnYyKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wbGV0ZVRyYW5zaXRpb248VCBleHRlbmRzIEpTT05TZXJpYWxpemFibGUgfCBTZXJpYWxpemVkPiBleHRlbmRzIFRyYW5zaXRpb248VCwgQ29tcGxldGVUcmFuc2l0aW9uVmVyc2lvbnM8VD4+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIGdldCB2MSgpOiBUIHsgcmV0dXJuIHN1cGVyLnYxITsgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgZ2V0IHYyKCk6IFQgeyByZXR1cm4gc3VwZXIudjIhOyB9XG4gICAgXG4gICAgY29uc3RydWN0b3IodmVyc2lvbnM6IENvbXBsZXRlVHJhbnNpdGlvblZlcnNpb25zPFQ+KXtcbiAgICAgICAgc3VwZXIodmVyc2lvbnMpO1xuICAgIH1cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL21vZGVsLWRpZmZpbmcvdHJhbnNpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBK0Y7QUFFL0YsMkVBQXVFO0FBRXZFLDhEQUEwRDtBQUMxRCwwRUFBcUU7QUFDckUsb0NBQXFDO0FBbUJyQyxNQUFhLFVBRVgsU0FBUSwwQkFBcUQ7SUFhN0QsWUFBWSxRQUFXO1FBQ3JCLE1BQU0sdUJBQXVCLEdBQUcsVUFBVSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLEtBQUssQ0FDSCxxQ0FBZ0IsQ0FBQyxVQUFVLEVBQzNCLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFDdkMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN4QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixDQUFDO0lBQ3pELENBQUM7SUFsQk8sTUFBTSxDQUFDLHVCQUF1QixDQUNwQyxRQUFpQztRQUVqQyxPQUFPLFFBQVEsQ0FBQyxFQUFFLFlBQVksMEJBQVcsSUFBSSxRQUFRLENBQUMsRUFBRSxZQUFZLDBCQUFXLENBQUM7SUFDbEYsQ0FBQztJQUVELElBQUksRUFBRSxLQUFrQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xILElBQUksRUFBRSxLQUFrQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBYTNHLG9CQUFvQjtRQUN6QixPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3hELENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyw0Q0FBb0IsQ0FBQyxVQUFVLENBQUM7SUFDekMsQ0FBQztJQUVNLE9BQU87UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQXFEO1FBQ3ZFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFVLEVBQUUsRUFBRSxDQUFDLHNDQUFrQixDQUFDLE9BQU8sQ0FBQztZQUNsRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUNwQixDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsT0FBcUIsRUFBQyxDQUFDO1FBRW5DLE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ25ELEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDcEQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQS9DRCxnQ0ErQ0M7QUFFRCxNQUFhLGtCQUM2QixTQUFRLFVBQTRDO0lBRTVGLHlDQUF5QztJQUN6QyxJQUFJLEVBQUUsS0FBUSxPQUFPLEtBQUssQ0FBQyxFQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsK0RBQStEO0lBQ2pHLElBQUksRUFBRSxLQUFRLE9BQU8sS0FBSyxDQUFDLEVBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQywrREFBK0Q7SUFFakcsWUFBWSxRQUF1QztRQUNqRCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBVkQsZ0RBVUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0pTT05TZXJpYWxpemFibGUsIEpTT05TZXJpYWxpemFibGUsIFNlcmlhbGl6ZWQgfSBmcm9tICcuLi9leHBvcnQvanNvbi1zZXJpYWxpemFibGUnO1xuaW1wb3J0IHsgU2VyaWFsaXphdGlvbklEIH0gZnJvbSAnLi4vZXhwb3J0L2pzb24tc2VyaWFsaXplcic7XG5pbXBvcnQgeyBTZXJpYWxpemF0aW9uQ2xhc3NlcyB9IGZyb20gJy4uL2V4cG9ydC9zZXJpYWxpemF0aW9uLWNsYXNzZXMnO1xuaW1wb3J0IHsgU2VyaWFsaXplZFRyYW5zaXRpb24gfSBmcm9tICcuLi9leHBvcnQvc2VyaWFsaXplZC1pbnRlcmZhY2VzL2luZnJhLW1vZGVsLWRpZmYvc2VyaWFsaXplZC10cmFuc2l0aW9uJztcbmltcG9ydCB7IE1vZGVsRW50aXR5IH0gZnJvbSAnLi4vaW5mcmEtbW9kZWwvbW9kZWwtZW50aXR5JztcbmltcG9ydCB7IE1vZGVsRW50aXR5VHlwZXMgfSBmcm9tICcuLi9pbmZyYS1tb2RlbC9tb2RlbC1lbnRpdHktdHlwZXMnO1xuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdHdvIHZlcnNpb25zICh2MSBhbmQgdjIpIG9mIGFuIEVudGl0eVxuICovXG5leHBvcnQgdHlwZSBUcmFuc2l0aW9uVmVyc2lvbnM8VD4gPSB7XG4gIHYxPzogVCxcbiAgdjI/OiBULFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdHdvIHZlcnNpb25zICh2MSBhbmQgdjIpIG9mIGFuIEVudGl0eVxuICogd2hlcmUgdGhleSBib3RoIGFyZSBkZWZpbmVkXG4gKi9cbmV4cG9ydCB0eXBlIENvbXBsZXRlVHJhbnNpdGlvblZlcnNpb25zPFQ+ID0gVHJhbnNpdGlvblZlcnNpb25zPFQ+ICYge1xuICB2MTogVCxcbiAgdjI6IFRcbn1cblxuZXhwb3J0IGNsYXNzIFRyYW5zaXRpb25cbjxUIGV4dGVuZHMgSlNPTlNlcmlhbGl6YWJsZSB8IFNlcmlhbGl6ZWQsIFYgZXh0ZW5kcyBUcmFuc2l0aW9uVmVyc2lvbnM8VD4gPSBUcmFuc2l0aW9uVmVyc2lvbnM8VD4+XG4gIGV4dGVuZHMgTW9kZWxFbnRpdHk8UmVjb3JkPHN0cmluZywgYW55PiwgUmVjb3JkPHN0cmluZywgYW55Pj5cbiAgaW1wbGVtZW50cyBKU09OU2VyaWFsaXphYmxlXG57XG4gIHByaXZhdGUgc3RhdGljIGlzTW9kZWxFbnRpdHlUcmFuc2l0aW9uKFxuICAgIHZlcnNpb25zOiBUcmFuc2l0aW9uVmVyc2lvbnM8YW55PixcbiAgKTogdmVyc2lvbnMgaXMgVHJhbnNpdGlvblZlcnNpb25zPE1vZGVsRW50aXR5PiB7XG4gICAgcmV0dXJuIHZlcnNpb25zLnYxIGluc3RhbmNlb2YgTW9kZWxFbnRpdHkgfHwgdmVyc2lvbnMudjIgaW5zdGFuY2VvZiBNb2RlbEVudGl0eTtcbiAgfVxuXG4gIGdldCB2MSgpOiBUfHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLmlzTW9kZWxFbnRpdHlUcmFuc2l0aW9uID8gdGhpcy5vdXRnb2luZ05vZGVSZWZlcmVuY2VzLnYxIDogdGhpcy5ub2RlRGF0YS52MTsgfVxuICBnZXQgdjIoKTogVHx1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5pc01vZGVsRW50aXR5VHJhbnNpdGlvbiA/IHRoaXMub3V0Z29pbmdOb2RlUmVmZXJlbmNlcy52MiA6IHRoaXMubm9kZURhdGEudjI7IH1cbiAgcHJpdmF0ZSBpc01vZGVsRW50aXR5VHJhbnNpdGlvbjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcih2ZXJzaW9uczogVil7XG4gICAgY29uc3QgaXNNb2RlbEVudGl0eVRyYW5zaXRpb24gPSBUcmFuc2l0aW9uLmlzTW9kZWxFbnRpdHlUcmFuc2l0aW9uKHZlcnNpb25zKTtcbiAgICBzdXBlcihcbiAgICAgIE1vZGVsRW50aXR5VHlwZXMudHJhbnNpdGlvbixcbiAgICAgIGlzTW9kZWxFbnRpdHlUcmFuc2l0aW9uID8ge30gOiB2ZXJzaW9ucyxcbiAgICAgIGlzTW9kZWxFbnRpdHlUcmFuc2l0aW9uID8gdmVyc2lvbnMgOiB7fSxcbiAgICApO1xuICAgIHRoaXMuaXNNb2RlbEVudGl0eVRyYW5zaXRpb24gPSBpc01vZGVsRW50aXR5VHJhbnNpdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBpc0NvbXBsZXRlVHJhbnNpdGlvbigpOiB0aGlzIGlzIENvbXBsZXRlVHJhbnNpdGlvbjxUPiB7XG4gICAgcmV0dXJuIHRoaXMudjEgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnYyICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VyaWFsaXphdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNlcmlhbGl6YXRpb25DbGFzc2VzLlRSQU5TSVRJT047XG4gIH1cblxuICBwdWJsaWMgZXhwbG9kZSgpOiBOb25OdWxsYWJsZTxUPltde1xuICAgIHJldHVybiBbdGhpcy52MSwgdGhpcy52Ml0uZmlsdGVyKGlzRGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgdG9TZXJpYWxpemVkKHNlcmlhbGl6ZTogKG9iajogSlNPTlNlcmlhbGl6YWJsZSkgPT4gU2VyaWFsaXphdGlvbklEKTogU2VyaWFsaXplZFRyYW5zaXRpb24ge1xuICAgIGNvbnN0IHNlcmlhbGl6ZVZlcnNpb24gPSAodmVyc2lvbjogVCkgPT4gaXNKU09OU2VyaWFsaXphYmxlKHZlcnNpb24pXG4gICAgICA/IHNlcmlhbGl6ZSh2ZXJzaW9uKVxuICAgICAgOiB7dmFsdWU6IHZlcnNpb24gYXMgU2VyaWFsaXplZH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgdjE6IHRoaXMudjEgPyBzZXJpYWxpemVWZXJzaW9uKHRoaXMudjEpIDogdW5kZWZpbmVkLFxuICAgICAgdjI6IHRoaXMudjIgPyBzZXJpYWxpemVWZXJzaW9uKHRoaXMudjIpIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbXBsZXRlVHJhbnNpdGlvblxuPFQgZXh0ZW5kcyBKU09OU2VyaWFsaXphYmxlIHwgU2VyaWFsaXplZD4gZXh0ZW5kcyBUcmFuc2l0aW9uPFQsIENvbXBsZXRlVHJhbnNpdGlvblZlcnNpb25zPFQ+Plxue1xuICAvLyBCeSBkZWZpbml0aW9uIHRoZXNlIG5lZWQgdG8gYmUgZGVmaW5lZFxuICBnZXQgdjEoKTogVCB7IHJldHVybiBzdXBlci52MSE7IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gIGdldCB2MigpOiBUIHsgcmV0dXJuIHN1cGVyLnYyITsgfSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cblxuICBjb25zdHJ1Y3Rvcih2ZXJzaW9uczogQ29tcGxldGVUcmFuc2l0aW9uVmVyc2lvbnM8VD4pe1xuICAgIHN1cGVyKHZlcnNpb25zKTtcbiAgfVxufSJdfQ==

@@ -16,2 +16,2 @@ "use strict";

})(RuleAction = exports.RuleAction || (exports.RuleAction = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9ydWxlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFFBSVg7QUFKRCxXQUFZLFFBQVE7SUFDaEIsdUJBQVcsQ0FBQTtJQUNYLHlCQUFhLENBQUE7SUFDYiwrQkFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkI7QUFFRCxJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDbEIsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSlcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSdWxlUmlzayB7XG4gICAgTG93ID0gJ2xvdycsXG4gICAgSGlnaCA9ICdoaWdoJyxcbiAgICBVbmtub3duID0gJ3Vua25vd24nLFxufVxuXG5leHBvcnQgZW51bSBSdWxlQWN0aW9uIHtcbiAgICBBcHByb3ZlID0gJ2FwcHJvdmUnLFxuICAgIFJlamVjdCA9ICdyZWplY3QnLFxuICAgIE5vbmUgPSAnbm9uZScsXG59XG5cbmV4cG9ydCB0eXBlIFJ1bGVFZmZlY3QgPVxuICAgICh7IHJpc2s6IFJ1bGVSaXNrOyBhY3Rpb24/OiBSdWxlQWN0aW9uIH1cbiAgICB8IHsgcmlzaz86IFJ1bGVSaXNrOyBhY3Rpb246IFJ1bGVBY3Rpb24gfSk7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9ydWxlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFFBSVg7QUFKRCxXQUFZLFFBQVE7SUFDbEIsdUJBQVcsQ0FBQTtJQUNYLHlCQUFhLENBQUE7SUFDYiwrQkFBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFJbkI7QUFFRCxJQUFZLFVBSVg7QUFKRCxXQUFZLFVBQVU7SUFDcEIsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7SUFDakIsMkJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQUlyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFJ1bGVSaXNrIHtcbiAgTG93ID0gJ2xvdycsXG4gIEhpZ2ggPSAnaGlnaCcsXG4gIFVua25vd24gPSAndW5rbm93bicsXG59XG5cbmV4cG9ydCBlbnVtIFJ1bGVBY3Rpb24ge1xuICBBcHByb3ZlID0gJ2FwcHJvdmUnLFxuICBSZWplY3QgPSAncmVqZWN0JyxcbiAgTm9uZSA9ICdub25lJyxcbn1cblxuZXhwb3J0IHR5cGUgUnVsZUVmZmVjdCA9XG4gICAgKHsgcmlzazogUnVsZVJpc2s7IGFjdGlvbj86IFJ1bGVBY3Rpb24gfVxuICAgIHwgeyByaXNrPzogUnVsZVJpc2s7IGFjdGlvbjogUnVsZUFjdGlvbiB9KTsiXX0=
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// import { ChangeAnalysisReport } from '../../change-analysis-report';
const example_model_1 = require("./example-model");

@@ -11,2 +12,2 @@ // TODO: Fix test

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXJlcG9ydC1ncmFwaC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9leHBvcnQvY2hhbmdlLXJlcG9ydC1ncmFwaC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsbURBQTRDO0FBRTVDLGlCQUFpQjtBQUNqQixJQUFJLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO0lBQzNDLE1BQU0sY0FBYyxHQUFHLHlCQUFTLEVBQUUsQ0FBQztJQUNuQyxjQUFjLENBQUM7SUFDZiwrREFBK0Q7SUFFL0QscUNBQXFDO0FBQ3pDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlQW5hbHlzaXNSZXBvcnQgfSBmcm9tIFwiLi4vLi4vY2hhbmdlLWFuYWx5c2lzLXJlcG9ydFwiO1xuaW1wb3J0IHsgYnVpbGREaWZmIH0gZnJvbSBcIi4vZXhhbXBsZS1tb2RlbFwiO1xuXG4vLyBUT0RPOiBGaXggdGVzdFxudGVzdCgnUmVwb3J0IEdyYXBoIHJldHVybnMgcHJvcGVyIGdyYXBoJywgKCkgPT4ge1xuICAgIGNvbnN0IGluZnJhTW9kZWxEaWZmID0gYnVpbGREaWZmKCk7XG4gICAgaW5mcmFNb2RlbERpZmY7XG4gICAgLy8gY29uc3QgcmVwb3J0ID0gbmV3IENoYW5nZUFuYWx5c2lzUmVwb3J0KGluZnJhTW9kZWxEaWZmLCBbXSk7XG5cbiAgICAvLyBjb25zb2xlLmxvZyhyZXBvcnQuZ2VuZXJhdGVHcmFwaCk7XG59KTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXJlcG9ydC1ncmFwaC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9leHBvcnQvY2hhbmdlLXJlcG9ydC1ncmFwaC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdUVBQXVFO0FBQ3ZFLG1EQUE0QztBQUU1QyxpQkFBaUI7QUFDakIsSUFBSSxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtJQUM3QyxNQUFNLGNBQWMsR0FBRyx5QkFBUyxFQUFFLENBQUM7SUFDbkMsY0FBYyxDQUFDO0lBQ2YsK0RBQStEO0lBRS9ELHFDQUFxQztBQUN2QyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7IENoYW5nZUFuYWx5c2lzUmVwb3J0IH0gZnJvbSAnLi4vLi4vY2hhbmdlLWFuYWx5c2lzLXJlcG9ydCc7XG5pbXBvcnQgeyBidWlsZERpZmYgfSBmcm9tICcuL2V4YW1wbGUtbW9kZWwnO1xuXG4vLyBUT0RPOiBGaXggdGVzdFxudGVzdCgnUmVwb3J0IEdyYXBoIHJldHVybnMgcHJvcGVyIGdyYXBoJywgKCkgPT4ge1xuICBjb25zdCBpbmZyYU1vZGVsRGlmZiA9IGJ1aWxkRGlmZigpO1xuICBpbmZyYU1vZGVsRGlmZjtcbiAgLy8gY29uc3QgcmVwb3J0ID0gbmV3IENoYW5nZUFuYWx5c2lzUmVwb3J0KGluZnJhTW9kZWxEaWZmLCBbXSk7XG5cbiAgLy8gY29uc29sZS5sb2cocmVwb3J0LmdlbmVyYXRlR3JhcGgpO1xufSk7Il19

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

import { InfraModel } from "../../infra-model";
import { InfraModelDiff } from "../../model-diffing";
import { InfraModel } from '../../infra-model';
import { InfraModelDiff } from '../../model-diffing';
export declare const buildModelV1: () => InfraModel;
export declare const buildDiff: () => InfraModelDiff;

@@ -8,16 +8,16 @@ "use strict";

const component1v1 = new infra_model_1.Component('component1', 'resource', {
subtype: "AWS::IAM::Role",
subtype: 'AWS::IAM::Role',
properties: new infra_model_1.ComponentPropertyRecord({
someKey: new infra_model_1.ComponentPropertyPrimitive("someValue", infra_model_1.ComponentUpdateType.REPLACEMENT)
}, infra_model_1.ComponentUpdateType.REPLACEMENT)
someKey: new infra_model_1.ComponentPropertyPrimitive('someValue', infra_model_1.ComponentUpdateType.REPLACEMENT),
}, infra_model_1.ComponentUpdateType.REPLACEMENT),
});
const component2v1 = new infra_model_1.Component('component2', 'resource', {
subtype: "AWS::EC2::Instance",
subtype: 'AWS::EC2::Instance',
properties: new infra_model_1.ComponentPropertyRecord({
nested: new infra_model_1.ComponentPropertyRecord({
propComp2: new infra_model_1.ComponentPropertyPrimitive("value", infra_model_1.ComponentUpdateType.REPLACEMENT)
}, infra_model_1.ComponentUpdateType.REPLACEMENT)
}, infra_model_1.ComponentUpdateType.REPLACEMENT)
propComp2: new infra_model_1.ComponentPropertyPrimitive('value', infra_model_1.ComponentUpdateType.REPLACEMENT),
}, infra_model_1.ComponentUpdateType.REPLACEMENT),
}, infra_model_1.ComponentUpdateType.REPLACEMENT),
});
const relationship1v1 = new infra_model_1.DependencyRelationship(component2v1, component1v1, 'relationship1', { sourcePropertyPath: ["nested", "propComp2"] });
const relationship1v1 = new infra_model_1.DependencyRelationship(component2v1, component1v1, 'relationship1', { sourcePropertyPath: ['nested', 'propComp2'] });
component1v1.addIncoming(relationship1v1);

@@ -31,16 +31,16 @@ component2v1.addOutgoing(relationship1v1);

const component1v2 = new infra_model_1.Component('component1', 'resource', {
subtype: "AWS::IAM::Role",
subtype: 'AWS::IAM::Role',
properties: new infra_model_1.ComponentPropertyRecord({
someKey: new infra_model_1.ComponentPropertyPrimitive("someValueChanged", infra_model_1.ComponentUpdateType.REPLACEMENT)
}, infra_model_1.ComponentUpdateType.REPLACEMENT)
someKey: new infra_model_1.ComponentPropertyPrimitive('someValueChanged', infra_model_1.ComponentUpdateType.REPLACEMENT),
}, infra_model_1.ComponentUpdateType.REPLACEMENT),
});
const component2v2 = new infra_model_1.Component('component2', 'resource', {
subtype: "AWS::EC2::Instance",
subtype: 'AWS::EC2::Instance',
properties: new infra_model_1.ComponentPropertyRecord({
nestedNameChanged: new infra_model_1.ComponentPropertyRecord({
propComp2NameChanged: new infra_model_1.ComponentPropertyPrimitive("value", infra_model_1.ComponentUpdateType.REPLACEMENT)
}, infra_model_1.ComponentUpdateType.REPLACEMENT)
}, infra_model_1.ComponentUpdateType.REPLACEMENT)
propComp2NameChanged: new infra_model_1.ComponentPropertyPrimitive('value', infra_model_1.ComponentUpdateType.REPLACEMENT),
}, infra_model_1.ComponentUpdateType.REPLACEMENT),
}, infra_model_1.ComponentUpdateType.REPLACEMENT),
});
const relationship1v2 = new infra_model_1.DependencyRelationship(component2v2, component1v2, 'relationship1', { sourcePropertyPath: ["nestedNameChanged", "propComp2NameChanged"] });
const relationship1v2 = new infra_model_1.DependencyRelationship(component2v2, component1v2, 'relationship1', { sourcePropertyPath: ['nestedNameChanged', 'propComp2NameChanged'] });
component1v2.addIncoming(relationship1v2);

@@ -61,6 +61,6 @@ component2v2.addOutgoing(relationship1v2);

const directChangeComponent1 = new model_diffing_1.UpdatePropertyComponentOperation({}, {
pathTransition: new model_diffing_1.Transition({ v1: ["someKey"], v2: ["someKey"] }),
pathTransition: new model_diffing_1.Transition({ v1: ['someKey'], v2: ['someKey'] }),
propertyTransition: new model_diffing_1.Transition({
v1: component1v1.properties.getRecord()["someKey"],
v2: component1v2.properties.getRecord()["someKey"],
v1: component1v1.properties.getRecord().someKey,
v2: component1v2.properties.getRecord().someKey,
}),

@@ -70,8 +70,8 @@ componentTransition: component1Transition,

const directChangeComponent2 = new model_diffing_1.UpdatePropertyComponentOperation({}, {
pathTransition: new model_diffing_1.Transition({ v1: ["nested", "propComp2"], v2: ["nestedNameChanged", "propComp2NameChanged"] }),
pathTransition: new model_diffing_1.Transition({ v1: ['nested', 'propComp2'], v2: ['nestedNameChanged', 'propComp2NameChanged'] }),
propertyTransition: new model_diffing_1.Transition({
v1: component2v1.properties.getRecord()["nested"].getRecord()["propComp2"],
v2: component2v2.properties.getRecord()["nestedNameChanged"].getRecord()["propComp2NameChanged"],
v1: component2v1.properties.getRecord().nested.getRecord().propComp2,
v2: component2v2.properties.getRecord().nestedNameChanged.getRecord().propComp2NameChanged,
}),
componentTransition: component2Transition
componentTransition: component2Transition,
});

@@ -82,2 +82,2 @@ const infraModelTransition = new model_diffing_1.Transition({ v1: infraModelv1, v2: infraModelv2 });

exports.buildDiff = buildDiff;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvZXhwb3J0L2V4YW1wbGUtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBTzJCO0FBQzNCLHVEQUFtRztBQUc1RixNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7SUFDN0IsTUFBTSxZQUFZLEdBQUcsSUFBSSx1QkFBUyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUU7UUFDekQsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixVQUFVLEVBQUUsSUFBSSxxQ0FBdUIsQ0FDbkM7WUFDSSxPQUFPLEVBQUUsSUFBSSx3Q0FBMEIsQ0FBQyxXQUFXLEVBQUUsaUNBQW1CLENBQUMsV0FBVyxDQUFDO1NBQ3hGLEVBQUUsaUNBQW1CLENBQUMsV0FBVyxDQUNyQztLQUNKLENBQUMsQ0FBQztJQUNILE1BQU0sWUFBWSxHQUFHLElBQUksdUJBQVMsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFO1FBQ3pELE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsVUFBVSxFQUFFLElBQUkscUNBQXVCLENBQUM7WUFDaEMsTUFBTSxFQUFFLElBQUkscUNBQXVCLENBQUM7Z0JBQ2hDLFNBQVMsRUFBRSxJQUFJLHdDQUEwQixDQUFDLE9BQU8sRUFBRSxpQ0FBbUIsQ0FBQyxXQUFXLENBQUM7YUFDdEYsRUFBRSxpQ0FBbUIsQ0FBQyxXQUFXLENBQUM7U0FDdEMsRUFBRSxpQ0FBbUIsQ0FBQyxXQUFXLENBQ3JDO0tBQ0osQ0FBQyxDQUFDO0lBQ0gsTUFBTSxlQUFlLEdBQUcsSUFBSSxvQ0FBc0IsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxFQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUMvSSxZQUFZLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLFlBQVksQ0FBQyxXQUFXLENBQUMs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LFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUNsRCxFQUFFLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7U0FDckQsQ0FBQztRQUNGLG1CQUFtQixFQUFFLG9CQUFvQjtLQUM1QyxDQUFDLENBQUM7SUFFSCxNQUFNLHNCQUFzQixHQUFHLElBQUksZ0RBQWdDLENBQUMsRUFBRSxFQUFFO1FBQ3BFLGNBQWMsRUFBRSxJQUFJLDBCQUFVLENBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUMsRUFBQyxDQUFDO1FBQ2hILGtCQUFrQixFQUFFLElBQUksMEJBQVUsQ0FBQztZQUMvQixFQUFFLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUM7WUFDMUUsRUFBRSxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztTQUNuRyxDQUFDO1FBQ0YsbUJBQW1CLEVBQUUsb0JBQW9CO0tBQzVDLENBQUMsQ0FBQztJQUVILE1BQU0sb0JBQW9CLEdBQUksSUFBSSwwQkFBVSxDQUFhLEVBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQztJQUUvRixPQUFPLElBQUksOEJBQWMsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDcEosQ0FBQyxDQUFDO0FBbENXLFFBQUEsU0FBUyxhQWtDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSxcbiAgICBDb21wb25lbnRQcm9wZXJ0eVJlY29yZCxcbiAgICBDb21wb25lbnRVcGRhdGVUeXBlLFxuICAgIERlcGVuZGVuY3lSZWxhdGlvbnNoaXAsXG4gICAgSW5mcmFNb2RlbFxufSBmcm9tIFwiLi4vLi4vaW5mcmEtbW9kZWxcIjtcbmltcG9ydCB7IEluZnJhTW9kZWxEaWZmLCBUcmFuc2l0aW9uLCBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiB9IGZyb20gXCIuLi8uLi9tb2RlbC1kaWZmaW5nXCI7XG5cblxuZXhwb3J0IGNvbnN0IGJ1aWxkTW9kZWxWMSA9ICgpID0+IHtcbiAgICBjb25zdCBjb21wb25lbnQxdjEgPSBuZXcgQ29tcG9uZW50KCdjb21wb25lbnQxJywgJ3Jlc291cmNlJywge1xuICAgICAgICBzdWJ0eXBlOiBcIkFXUzo6SUFNOjpSb2xlXCIsXG4gICAgICAgIHByb3BlcnRpZXM6IG5ldyBDb21wb25lbnRQcm9wZXJ0eVJlY29yZChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzb21lS2V5OiBuZXcgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUoXCJzb21lVmFsdWVcIiwgQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVClcbiAgICAgICAgICAgIH0sIENvbXBvbmVudFVwZGF0ZVR5cGUuUkVQTEFDRU1FTlRcbiAgICAgICAgKVxuICAgIH0pO1xuICAgIGNvbnN0IGNvbXBvbmVudDJ2MSA9IG5ldyBDb21wb25lbnQoJ2NvbXBvbmVudDInLCAncmVzb3VyY2UnLCB7XG4gICAgICAgIHN1YnR5cGU6IFwiQVdTOjpFQzI6Okluc3RhbmNlXCIsXG4gICAgICAgIHByb3BlcnRpZXM6IG5ldyBDb21wb25lbnRQcm9wZXJ0eVJlY29yZCh7XG4gICAgICAgICAgICAgICAgbmVzdGVkOiBuZXcgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQoe1xuICAgICAgICAgICAgICAgICAgICBwcm9wQ29tcDI6IG5ldyBDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZShcInZhbHVlXCIsIENvbXBvbmVudFVwZGF0ZVR5cGUuUkVQTEFDRU1FTlQpXG4gICAgICAgICAgICAgICAgfSwgQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVClcbiAgICAgICAgICAgIH0sIENvbXBvbmVudFVwZGF0ZVR5cGUuUkVQTEFDRU1FTlRcbiAgICAgICAgKVxuICAgIH0pO1xuICAgIGNvbnN0IHJlbGF0aW9uc2hpcDF2MSA9IG5ldyBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKGNvbXBvbmVudDJ2MSwgY29tcG9uZW50MXYxLCAncmVsYXRpb25zaGlwMScsIHtzb3VyY2VQcm9wZXJ0eVBhdGg6IFtcIm5lc3RlZFwiLCBcInByb3BDb21wMlwiXX0pO1xuICAgIGNvbXBvbmVudDF2MS5hZGRJbmNvbWluZyhyZWxhdGlvbnNoaXAxdjEpO1xuICAgIGNvbXBvbmVudDJ2MS5hZGRPdXRnb2luZyhyZWxhdGlvbnNoaXAxdjEpO1xuICAgIGNvbnN0IGluZnJhTW9kZWx2MSA9IG5ldyBJbmZyYU1vZGVsKFtjb21wb25lbnQxdjEsIGNvbXBvbmVudDJ2MV0sIFtyZWxhdGlvbnNoaXAxdjFdKTtcblxuICAgIHJldHVybiBpbmZyYU1vZGVsdjE7XG59O1xuXG5jb25zdCBidWlsZE1vZGVsVjIgPSAoKSA9PiB7XG4gICAgY29uc3QgY29tcG9uZW50MXYyID0gbmV3IENvbXBvbmVudCgnY29tcG9uZW50MScsICdyZXNvdXJjZScsIHtcbiAgICAgICAgc3VidHlwZTogXCJBV1M6OklBTTo6Um9sZVwiLFxuICAgICAgICBwcm9wZXJ0aWVzOiBuZXcgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc29tZUtleTogbmV3IENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlKFwic29tZVZhbHVlQ2hhbmdlZFwiLCBDb21wb25lbnRVcGRhdGVUeXBlLlJFUExBQ0VNRU5UKVxuICAgICAgICAgICAgfSwgQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVFxuICAgICAgICApXG4gICAgfSk7XG4gICAgY29uc3QgY29tcG9uZW50MnYyID0gbmV3IENvbXBvbmVudCgnY29tcG9uZW50MicsICdyZXNvdXJjZScsIHtcbiAgICAgICAgc3VidHlwZTogXCJBV1M6OkVDMjo6SW5zdGFuY2VcIixcbiAgICAgICAgcHJvcGVydGllczogbmV3IENvbXBvbmVudFByb3BlcnR5UmVjb3JkKHtcbiAgICAgICAgICAgIG5lc3RlZE5hbWVDaGFuZ2VkOiBuZXcgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQoe1xuICAgICAgICAgICAgICAgIHByb3BDb21wMk5hbWVDaGFuZ2VkOiBuZXcgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUoXCJ2YWx1ZVwiLCBDb21wb25lbnRVcGRhdGVUeXBlLlJFUExBQ0VNRU5UKVxuICAgICAgICAgICAgfSwgQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVClcbiAgICAgICAgfSwgQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVFxuICAgICAgICApXG4gICAgfSk7XG4gICAgY29uc3QgcmVsYXRpb25zaGlwMXYyID0gbmV3IERlcGVuZGVuY3lSZWxhdGlvbnNoaXAoY29tcG9uZW50MnYyLCBjb21wb25lbnQxdjIsICdyZWxhdGlvbnNoaXAxJywge3NvdXJjZVByb3BlcnR5UGF0aDogW1wibmVzdGVkTmFtZUNoYW5nZWRcIiwgXCJwcm9wQ29tcDJOYW1lQ2hhbmdlZFwiXX0pO1xuICAgIGNvbXBvbmVudDF2Mi5hZGRJbmNvbWluZyhyZWxhdGlvbnNoaXAxdjIpO1xuICAgIGNvbXBvbmVudDJ2Mi5hZGRPdXRnb2luZyhyZWxhdGlvbnNoaXAxdjIpO1xuICAgIGNvbnN0IGluZnJhTW9kZWx2MiA9IG5ldyBJbmZyYU1vZGVsKFtjb21wb25lbnQxdjIsIGNvbXBvbmVudDJ2Ml0sIFtyZWxhdGlvbnNoaXAxdjJdKTtcblxuICAgIHJldHVybiBpbmZyYU1vZGVsdjI7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGREaWZmID0gKCk6IEluZnJhTW9kZWxEaWZmID0+IHtcblxuICAgIGNvbnN0IGluZnJhTW9kZWx2MSA9IGJ1aWxkTW9kZWxWMSgpO1xuICAgIGNvbnN0IGluZnJhTW9kZWx2MiA9IGJ1aWxkTW9kZWxWMigpO1xuXG4gICAgY29uc3QgY29tcG9uZW50MXYxID0gaW5mcmFNb2RlbHYxLmNvbXBvbmVudHNbMF07XG4gICAgY29uc3QgY29tcG9uZW50MXYyID0gaW5mcmFNb2RlbHYyLmNvbXBvbmVudHNbMF07XG4gICAgY29uc3QgY29tcG9uZW50MnYxID0gaW5mcmFNb2RlbHYxLmNvbXBvbmVudHNbMV07XG4gICAgY29uc3QgY29tcG9uZW50MnYyID0gaW5mcmFNb2RlbHYyLmNvbXBvbmVudHNbMV07XG4gICAgXG4gICAgY29uc3QgY29tcG9uZW50MVRyYW5zaXRpb24gPSBuZXcgVHJhbnNpdGlvbjxDb21wb25lbnQ+KHt2MTogY29tcG9uZW50MXYxLCB2MjogY29tcG9uZW50MXYyfSk7XG4gICAgY29uc3QgY29tcG9uZW50MlRyYW5zaXRpb24gPSBuZXcgVHJhbnNpdGlvbjxDb21wb25lbnQ+KHt2MTogY29tcG9uZW50MnYxLCB2MjogY29tcG9uZW50MnYyfSk7XG5cbiAgICBjb25zdCBkaXJlY3RDaGFuZ2VDb21wb25lbnQxID0gbmV3IFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKHt9LCB7XG4gICAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IFtcInNvbWVLZXlcIl0sIHYyOiBbXCJzb21lS2V5XCJdfSksXG4gICAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe1xuICAgICAgICAgICAgdjE6IGNvbXBvbmVudDF2MS5wcm9wZXJ0aWVzLmdldFJlY29yZCgpW1wic29tZUtleVwiXSwgXG4gICAgICAgICAgICB2MjogY29tcG9uZW50MXYyLnByb3BlcnRpZXMuZ2V0UmVjb3JkKClbXCJzb21lS2V5XCJdLCBcbiAgICAgICAgfSksXG4gICAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IGNvbXBvbmVudDFUcmFuc2l0aW9uLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGlyZWN0Q2hhbmdlQ29tcG9uZW50MiA9IG5ldyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbih7fSwge1xuICAgICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBbXCJuZXN0ZWRcIiwgXCJwcm9wQ29tcDJcIl0sIHYyOiBbXCJuZXN0ZWROYW1lQ2hhbmdlZFwiLCBcInByb3BDb21wMk5hbWVDaGFuZ2VkXCJdfSksXG4gICAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe1xuICAgICAgICAgICAgdjE6IGNvbXBvbmVudDJ2MS5wcm9wZXJ0aWVzLmdldFJlY29yZCgpW1wibmVzdGVkXCJdLmdldFJlY29yZCgpW1wicHJvcENvbXAyXCJdLCBcbiAgICAgICAgICAgIHYyOiBjb21wb25lbnQydjIucHJvcGVydGllcy5nZXRSZWNvcmQoKVtcIm5lc3RlZE5hbWVDaGFuZ2VkXCJdLmdldFJlY29yZCgpW1wicHJvcENvbXAyTmFtZUNoYW5nZWRcIl0sIFxuICAgICAgICB9KSxcbiAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogY29tcG9uZW50MlRyYW5zaXRpb25cbiAgICB9KTtcblxuICAgIGNvbnN0IGluZnJhTW9kZWxUcmFuc2l0aW9uID0gIG5ldyBUcmFuc2l0aW9uPEluZnJhTW9kZWw+KHt2MTogaW5mcmFNb2RlbHYxLCB2MjogaW5mcmFNb2RlbHYyfSk7XG4gICAgXG4gICAgcmV0dXJuIG5ldyBJbmZyYU1vZGVsRGlmZihbZGlyZWN0Q2hhbmdlQ29tcG9uZW50MSwgZGlyZWN0Q2hhbmdlQ29tcG9uZW50Ml0sIFtjb21wb25lbnQxVHJhbnNpdGlvbiwgY29tcG9uZW50MlRyYW5zaXRpb25dLCBpbmZyYU1vZGVsVHJhbnNpdGlvbik7XG59OyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvZXhwb3J0L2V4YW1wbGUtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBTzJCO0FBQzNCLHVEQUFtRztBQUc1RixNQUFNLFlBQVksR0FBRyxHQUFlLEVBQUU7SUFDM0MsTUFBTSxZQUFZLEdBQUcsSUFBSSx1QkFBUyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUU7UUFDM0QsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixVQUFVLEVBQUUsSUFBSSxxQ0FBdUIsQ0FDckM7WUFDRSxPQUFPLEVBQUUsSUFBSSx3Q0FBMEIsQ0FBQyxXQUFXLEVBQUUsaUNBQW1CLENBQUMsV0FBVyxDQUFDO1NBQ3RGLEVBQUUsaUNBQW1CLENBQUMsV0FBVyxDQUNuQztLQUNGLENBQUMsQ0FBQztJQUNILE1BQU0sWUFBWSxHQUFHLElBQUksdUJBQVMsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFO1FBQzNELE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsVUFBVSxFQUFFLElBQUkscUNBQXVCLENBQUM7WUFDdEMsTUFBTSxFQUFFLElBQUkscUNBQXVCLENBQUM7Z0JBQ2xDLFNBQVMsRUFBRSxJQUFJLHdDQUEwQixDQUFDLE9BQU8sRUFBRSxpQ0FBbUIsQ0FBQyxXQUFXLENBQUM7YUFDcEYsRUFBRSxpQ0FBbUIsQ0FBQyxXQUFXLENBQUM7U0FDcEMsRUFBRSxpQ0FBbUIsQ0FBQyxXQUFXLENBQ2pDO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxlQUFlLEdBQUcsSUFBSSxvQ0FBc0IsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxFQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxFQUFDLENBQUMsQ0FBQztJQUMvSSxZQUFZLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLFlBQVksQ0FBQyxXQUFXLENBQUMs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LFNBQVMsRUFBRSxDQUFDLE9BQU87WUFDL0MsRUFBRSxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTztTQUNoRCxDQUFDO1FBQ0YsbUJBQW1CLEVBQUUsb0JBQW9CO0tBQzFDLENBQUMsQ0FBQztJQUVILE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxnREFBZ0MsQ0FBQyxFQUFFLEVBQUU7UUFDdEUsY0FBYyxFQUFFLElBQUksMEJBQVUsQ0FBQyxFQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxzQkFBc0IsQ0FBQyxFQUFDLENBQUM7UUFDaEgsa0JBQWtCLEVBQUUsSUFBSSwwQkFBVSxDQUFDO1lBQ2pDLEVBQUUsRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTO1lBQ3BFLEVBQUUsRUFBRSxZQUFZLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLG9CQUFvQjtTQUMzRixDQUFDO1FBQ0YsbUJBQW1CLEVBQUUsb0JBQW9CO0tBQzFDLENBQUMsQ0FBQztJQUVILE1BQU0sb0JBQW9CLEdBQUksSUFBSSwwQkFBVSxDQUFhLEVBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQztJQUUvRixPQUFPLElBQUksOEJBQWMsQ0FDdkIsQ0FBQyxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQyxFQUNoRCxDQUFDLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDLEVBQUUsb0JBQW9CLENBQ25FLENBQUM7QUFDSixDQUFDLENBQUM7QUFyQ1csUUFBQSxTQUFTLGFBcUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUsXG4gIENvbXBvbmVudFByb3BlcnR5UmVjb3JkLFxuICBDb21wb25lbnRVcGRhdGVUeXBlLFxuICBEZXBlbmRlbmN5UmVsYXRpb25zaGlwLFxuICBJbmZyYU1vZGVsLFxufSBmcm9tICcuLi8uLi9pbmZyYS1tb2RlbCc7XG5pbXBvcnQgeyBJbmZyYU1vZGVsRGlmZiwgVHJhbnNpdGlvbiwgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbC1kaWZmaW5nJztcblxuXG5leHBvcnQgY29uc3QgYnVpbGRNb2RlbFYxID0gKCk6IEluZnJhTW9kZWwgPT4ge1xuICBjb25zdCBjb21wb25lbnQxdjEgPSBuZXcgQ29tcG9uZW50KCdjb21wb25lbnQxJywgJ3Jlc291cmNlJywge1xuICAgIHN1YnR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgcHJvcGVydGllczogbmV3IENvbXBvbmVudFByb3BlcnR5UmVjb3JkKFxuICAgICAge1xuICAgICAgICBzb21lS2V5OiBuZXcgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUoJ3NvbWVWYWx1ZScsIENvbXBvbmVudFVwZGF0ZVR5cGUuUkVQTEFDRU1FTlQpLFxuICAgICAgfSwgQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVCxcbiAgICApLFxuICB9KTtcbiAgY29uc3QgY29tcG9uZW50MnYxID0gbmV3IENvbXBvbmVudCgnY29tcG9uZW50MicsICdyZXNvdXJjZScsIHtcbiAgICBzdWJ0eXBlOiAnQVdTOjpFQzI6Okluc3RhbmNlJyxcbiAgICBwcm9wZXJ0aWVzOiBuZXcgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQoe1xuICAgICAgbmVzdGVkOiBuZXcgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQoe1xuICAgICAgICBwcm9wQ29tcDI6IG5ldyBDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSgndmFsdWUnLCBDb21wb25lbnRVcGRhdGVUeXBlLlJFUExBQ0VNRU5UKSxcbiAgICAgIH0sIENvbXBvbmVudFVwZGF0ZVR5cGUuUkVQTEFDRU1FTlQpLFxuICAgIH0sIENvbXBvbmVudFVwZGF0ZVR5cGUuUkVQTEFDRU1FTlQsXG4gICAgKSxcbiAgfSk7XG4gIGNvbnN0IHJlbGF0aW9uc2hpcDF2MSA9IG5ldyBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKGNvbXBvbmVudDJ2MSwgY29tcG9uZW50MXYxLCAncmVsYXRpb25zaGlwMScsIHtzb3VyY2VQcm9wZXJ0eVBhdGg6IFsnbmVzdGVkJywgJ3Byb3BDb21wMiddfSk7XG4gIGNvbXBvbmVudDF2MS5hZGRJbmNvbWluZyhyZWxhdGlvbnNoaXAxdjEpO1xuICBjb21wb25lbnQydjEuYWRkT3V0Z29pbmcocmVsYXRpb25zaGlwMXYxKTtcbiAgY29uc3QgaW5mcmFNb2RlbHYxID0gbmV3IEluZnJhTW9kZWwoW2NvbXBvbmVudDF2MSwgY29tcG9uZW50MnYxXSwgW3JlbGF0aW9uc2hpcDF2MV0pO1xuXG4gIHJldHVybiBpbmZyYU1vZGVsdjE7XG59O1xuXG5jb25zdCBidWlsZE1vZGVsVjIgPSAoKTogSW5mcmFNb2RlbCA9PiB7XG4gIGNvbnN0IGNvbXBvbmVudDF2MiA9IG5ldyBDb21wb25lbnQoJ2NvbXBvbmVudDEnLCAncmVzb3VyY2UnLCB7XG4gICAgc3VidHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICBwcm9wZXJ0aWVzOiBuZXcgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQoXG4gICAgICB7XG4gICAgICAgIHNvbWVLZXk6IG5ldyBDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSgnc29tZVZhbHVlQ2hhbmdlZCcsIENvbXBvbmVudFVwZGF0ZVR5cGUuUkVQTEFDRU1FTlQpLFxuICAgICAgfSwgQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVCxcbiAgICApLFxuICB9KTtcbiAgY29uc3QgY29tcG9uZW50MnYyID0gbmV3IENvbXBvbmVudCgnY29tcG9uZW50MicsICdyZXNvdXJjZScsIHtcbiAgICBzdWJ0eXBlOiAnQVdTOjpFQzI6Okluc3RhbmNlJyxcbiAgICBwcm9wZXJ0aWVzOiBuZXcgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQoe1xuICAgICAgbmVzdGVkTmFtZUNoYW5nZWQ6IG5ldyBDb21wb25lbnRQcm9wZXJ0eVJlY29yZCh7XG4gICAgICAgIHByb3BDb21wMk5hbWVDaGFuZ2VkOiBuZXcgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUoJ3ZhbHVlJywgQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVCksXG4gICAgICB9LCBDb21wb25lbnRVcGRhdGVUeXBlLlJFUExBQ0VNRU5UKSxcbiAgICB9LCBDb21wb25lbnRVcGRhdGVUeXBlLlJFUExBQ0VNRU5ULFxuICAgICksXG4gIH0pO1xuICBjb25zdCByZWxhdGlvbnNoaXAxdjIgPSBuZXcgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcChjb21wb25lbnQydjIsIGNvbXBvbmVudDF2MiwgJ3JlbGF0aW9uc2hpcDEnLCB7c291cmNlUHJvcGVydHlQYXRoOiBbJ25lc3RlZE5hbWVDaGFuZ2VkJywgJ3Byb3BDb21wMk5hbWVDaGFuZ2VkJ119KTtcbiAgY29tcG9uZW50MXYyLmFkZEluY29taW5nKHJlbGF0aW9uc2hpcDF2Mik7XG4gIGNvbXBvbmVudDJ2Mi5hZGRPdXRnb2luZyhyZWxhdGlvbnNoaXAxdjIpO1xuICBjb25zdCBpbmZyYU1vZGVsdjIgPSBuZXcgSW5mcmFNb2RlbChbY29tcG9uZW50MXYyLCBjb21wb25lbnQydjJdLCBbcmVsYXRpb25zaGlwMXYyXSk7XG5cbiAgcmV0dXJuIGluZnJhTW9kZWx2Mjtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZERpZmYgPSAoKTogSW5mcmFNb2RlbERpZmYgPT4ge1xuXG4gIGNvbnN0IGluZnJhTW9kZWx2MSA9IGJ1aWxkTW9kZWxWMSgpO1xuICBjb25zdCBpbmZyYU1vZGVsdjIgPSBidWlsZE1vZGVsVjIoKTtcblxuICBjb25zdCBjb21wb25lbnQxdjEgPSBpbmZyYU1vZGVsdjEuY29tcG9uZW50c1swXTtcbiAgY29uc3QgY29tcG9uZW50MXYyID0gaW5mcmFNb2RlbHYyLmNvbXBvbmVudHNbMF07XG4gIGNvbnN0IGNvbXBvbmVudDJ2MSA9IGluZnJhTW9kZWx2MS5jb21wb25lbnRzWzFdO1xuICBjb25zdCBjb21wb25lbnQydjIgPSBpbmZyYU1vZGVsdjIuY29tcG9uZW50c1sxXTtcblxuICBjb25zdCBjb21wb25lbnQxVHJhbnNpdGlvbiA9IG5ldyBUcmFuc2l0aW9uPENvbXBvbmVudD4oe3YxOiBjb21wb25lbnQxdjEsIHYyOiBjb21wb25lbnQxdjJ9KTtcbiAgY29uc3QgY29tcG9uZW50MlRyYW5zaXRpb24gPSBuZXcgVHJhbnNpdGlvbjxDb21wb25lbnQ+KHt2MTogY29tcG9uZW50MnYxLCB2MjogY29tcG9uZW50MnYyfSk7XG5cbiAgY29uc3QgZGlyZWN0Q2hhbmdlQ29tcG9uZW50MSA9IG5ldyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbih7fSwge1xuICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IFsnc29tZUtleSddLCB2MjogWydzb21lS2V5J119KSxcbiAgICBwcm9wZXJ0eVRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHtcbiAgICAgIHYxOiBjb21wb25lbnQxdjEucHJvcGVydGllcy5nZXRSZWNvcmQoKS5zb21lS2V5LFxuICAgICAgdjI6IGNvbXBvbmVudDF2Mi5wcm9wZXJ0aWVzLmdldFJlY29yZCgpLnNvbWVLZXksXG4gICAgfSksXG4gICAgY29tcG9uZW50VHJhbnNpdGlvbjogY29tcG9uZW50MVRyYW5zaXRpb24sXG4gIH0pO1xuXG4gIGNvbnN0IGRpcmVjdENoYW5nZUNvbXBvbmVudDIgPSBuZXcgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oe30sIHtcbiAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBbJ25lc3RlZCcsICdwcm9wQ29tcDInXSwgdjI6IFsnbmVzdGVkTmFtZUNoYW5nZWQnLCAncHJvcENvbXAyTmFtZUNoYW5nZWQnXX0pLFxuICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe1xuICAgICAgdjE6IGNvbXBvbmVudDJ2MS5wcm9wZXJ0aWVzLmdldFJlY29yZCgpLm5lc3RlZC5nZXRSZWNvcmQoKS5wcm9wQ29tcDIsXG4gICAgICB2MjogY29tcG9uZW50MnYyLnByb3BlcnRpZXMuZ2V0UmVjb3JkKCkubmVzdGVkTmFtZUNoYW5nZWQuZ2V0UmVjb3JkKCkucHJvcENvbXAyTmFtZUNoYW5nZWQsXG4gICAgfSksXG4gICAgY29tcG9uZW50VHJhbnNpdGlvbjogY29tcG9uZW50MlRyYW5zaXRpb24sXG4gIH0pO1xuXG4gIGNvbnN0IGluZnJhTW9kZWxUcmFuc2l0aW9uID0gIG5ldyBUcmFuc2l0aW9uPEluZnJhTW9kZWw+KHt2MTogaW5mcmFNb2RlbHYxLCB2MjogaW5mcmFNb2RlbHYyfSk7XG5cbiAgcmV0dXJuIG5ldyBJbmZyYU1vZGVsRGlmZihcbiAgICBbZGlyZWN0Q2hhbmdlQ29tcG9uZW50MSwgZGlyZWN0Q2hhbmdlQ29tcG9uZW50Ml0sXG4gICAgW2NvbXBvbmVudDFUcmFuc2l0aW9uLCBjb21wb25lbnQyVHJhbnNpdGlvbl0sIGluZnJhTW9kZWxUcmFuc2l0aW9uLFxuICApO1xufTsiXX0=
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const json_deserializer_1 = require("../../export/json-deserializer");
const json_serializer_1 = require("../../export/json-serializer");
const json_deserializer_1 = require("../../export/json-deserializer");
const example_model_1 = require("./example-model");

@@ -22,2 +22,2 @@ // TODO: Fix these tests

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvZXhwb3J0L2luZnJhLW1vZGVsLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrRUFBOEQ7QUFDOUQsc0VBQWtFO0FBS2xFLG1EQUEwRDtBQUUxRCx3QkFBd0I7QUFDeEIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUNqQyxNQUFNLEtBQUssR0FBRyw0QkFBWSxFQUFFLENBQUM7SUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQ0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELE1BQU0sWUFBWSxHQUFHLElBQUksb0NBQWdCLEVBQWMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEYsWUFBWSxDQUFDO0lBQ2IsdUNBQXVDO0FBQzNDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtJQUNyQyxNQUFNLElBQUksR0FBRyx5QkFBUyxFQUFFLENBQUM7SUFFekIsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQ0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksb0NBQWdCLEVBQWtCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BGLE1BQU0sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RixNQUFNLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEYsc0NBQXNDO0FBQzFDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTlNlcmlhbGl6ZXIgfSBmcm9tIFwiLi4vLi4vZXhwb3J0L2pzb24tc2VyaWFsaXplclwiO1xuaW1wb3J0IHsgSlNPTkRlc2VyaWFsaXplciB9IGZyb20gXCIuLi8uLi9leHBvcnQvanNvbi1kZXNlcmlhbGl6ZXJcIjtcbmltcG9ydCB7XG4gICAgSW5mcmFNb2RlbFxufSBmcm9tIFwiLi4vLi4vaW5mcmEtbW9kZWxcIjtcbmltcG9ydCB7IEluZnJhTW9kZWxEaWZmIH0gZnJvbSBcIi4uLy4uL21vZGVsLWRpZmZpbmdcIjtcbmltcG9ydCB7IGJ1aWxkRGlmZiwgYnVpbGRNb2RlbFYxIH0gZnJvbSBcIi4vZXhhbXBsZS1tb2RlbFwiO1xuXG4vLyBUT0RPOiBGaXggdGhlc2UgdGVzdHNcbnRlc3QoJ0luZnJhTW9kZWwgdG9TZXJpYWxpemVkJywgKCkgPT4ge1xuICAgIGNvbnN0IG1vZGVsID0gYnVpbGRNb2RlbFYxKCk7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IG5ldyBKU09OU2VyaWFsaXplcigpLnNlcmlhbGl6ZShtb2RlbCk7XG4gICAgY29uc3QgZGVzZXJpYWxpemVkID0gbmV3IEpTT05EZXNlcmlhbGl6ZXI8SW5mcmFNb2RlbD4oKS5kZXNlcmlhbGl6ZShzZXJpYWxpemVkKTtcbiAgICBkZXNlcmlhbGl6ZWQ7XG4gICAgLy8gZXhwZWN0KGRlc2VyaWFsaXplZCkudG9FcXVhbChtb2RlbCk7XG59KTtcblxudGVzdCgnSW5mcmFNb2RlbERpZmYgdG9TZXJpYWxpemVkJywgKCkgPT4ge1xuICAgIGNvbnN0IGRpZmYgPSBidWlsZERpZmYoKTtcblxuICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSBuZXcgSlNPTlNlcmlhbGl6ZXIoKS5zZXJpYWxpemUoZGlmZik7XG4gICAgY29uc3QgZGVzZXJpYWxpemVkID0gbmV3IEpTT05EZXNlcmlhbGl6ZXI8SW5mcmFNb2RlbERpZmY+KCkuZGVzZXJpYWxpemUoc2VyaWFsaXplZCk7XG4gICAgZXhwZWN0KGRlc2VyaWFsaXplZC5jb21wb25lbnRPcGVyYXRpb25zLmxlbmd0aCkudG9CZShkaWZmLmNvbXBvbmVudE9wZXJhdGlvbnMubGVuZ3RoKTtcbiAgICBleHBlY3QoZGVzZXJpYWxpemVkLmNvbXBvbmVudFRyYW5zaXRpb25zLmxlbmd0aCkudG9CZShkaWZmLmNvbXBvbmVudFRyYW5zaXRpb25zLmxlbmd0aCk7XG4gICAgLy8gZXhwZWN0KGRlc2VyaWFsaXplZCkudG9FcXVhbChkaWZmKTtcbn0pOyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmEtbW9kZWwudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvZXhwb3J0L2luZnJhLW1vZGVsLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzRUFBa0U7QUFDbEUsa0VBQThEO0FBSzlELG1EQUEwRDtBQUUxRCx3QkFBd0I7QUFDeEIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEdBQUcsRUFBRTtJQUNuQyxNQUFNLEtBQUssR0FBRyw0QkFBWSxFQUFFLENBQUM7SUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQ0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELE1BQU0sWUFBWSxHQUFHLElBQUksb0NBQWdCLEVBQWMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEYsWUFBWSxDQUFDO0lBQ2IsdUNBQXVDO0FBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtJQUN2QyxNQUFNLElBQUksR0FBRyx5QkFBUyxFQUFFLENBQUM7SUFFekIsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQ0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksb0NBQWdCLEVBQWtCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BGLE1BQU0sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RixNQUFNLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEYsc0NBQXNDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSlNPTkRlc2VyaWFsaXplciB9IGZyb20gJy4uLy4uL2V4cG9ydC9qc29uLWRlc2VyaWFsaXplcic7XG5pbXBvcnQgeyBKU09OU2VyaWFsaXplciB9IGZyb20gJy4uLy4uL2V4cG9ydC9qc29uLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHtcbiAgSW5mcmFNb2RlbCxcbn0gZnJvbSAnLi4vLi4vaW5mcmEtbW9kZWwnO1xuaW1wb3J0IHsgSW5mcmFNb2RlbERpZmYgfSBmcm9tICcuLi8uLi9tb2RlbC1kaWZmaW5nJztcbmltcG9ydCB7IGJ1aWxkRGlmZiwgYnVpbGRNb2RlbFYxIH0gZnJvbSAnLi9leGFtcGxlLW1vZGVsJztcblxuLy8gVE9ETzogRml4IHRoZXNlIHRlc3RzXG50ZXN0KCdJbmZyYU1vZGVsIHRvU2VyaWFsaXplZCcsICgpID0+IHtcbiAgY29uc3QgbW9kZWwgPSBidWlsZE1vZGVsVjEoKTtcbiAgY29uc3Qgc2VyaWFsaXplZCA9IG5ldyBKU09OU2VyaWFsaXplcigpLnNlcmlhbGl6ZShtb2RlbCk7XG4gIGNvbnN0IGRlc2VyaWFsaXplZCA9IG5ldyBKU09ORGVzZXJpYWxpemVyPEluZnJhTW9kZWw+KCkuZGVzZXJpYWxpemUoc2VyaWFsaXplZCk7XG4gIGRlc2VyaWFsaXplZDtcbiAgLy8gZXhwZWN0KGRlc2VyaWFsaXplZCkudG9FcXVhbChtb2RlbCk7XG59KTtcblxudGVzdCgnSW5mcmFNb2RlbERpZmYgdG9TZXJpYWxpemVkJywgKCkgPT4ge1xuICBjb25zdCBkaWZmID0gYnVpbGREaWZmKCk7XG5cbiAgY29uc3Qgc2VyaWFsaXplZCA9IG5ldyBKU09OU2VyaWFsaXplcigpLnNlcmlhbGl6ZShkaWZmKTtcbiAgY29uc3QgZGVzZXJpYWxpemVkID0gbmV3IEpTT05EZXNlcmlhbGl6ZXI8SW5mcmFNb2RlbERpZmY+KCkuZGVzZXJpYWxpemUoc2VyaWFsaXplZCk7XG4gIGV4cGVjdChkZXNlcmlhbGl6ZWQuY29tcG9uZW50T3BlcmF0aW9ucy5sZW5ndGgpLnRvQmUoZGlmZi5jb21wb25lbnRPcGVyYXRpb25zLmxlbmd0aCk7XG4gIGV4cGVjdChkZXNlcmlhbGl6ZWQuY29tcG9uZW50VHJhbnNpdGlvbnMubGVuZ3RoKS50b0JlKGRpZmYuY29tcG9uZW50VHJhbnNpdGlvbnMubGVuZ3RoKTtcbiAgLy8gZXhwZWN0KGRlc2VyaWFsaXplZCkudG9FcXVhbChkaWZmKTtcbn0pOyJdfQ==

@@ -16,3 +16,3 @@ "use strict";

...acc,
[propertyGetter(e), [...((_a = acc.get(property)) !== null && _a !== void 0 ? _a : []), e]]
[propertyGetter(e), [...((_a = acc.get(property)) !== null && _a !== void 0 ? _a : []), e]],
]);

@@ -33,2 +33,2 @@ }, new Map());

exports.arraysEqual = arraysEqual;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3V0aWxzL2FycmF5VXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsY0FBYyxDQUFJLEdBQVEsRUFBRSxNQUF5QjtJQUNqRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDekIsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ2xDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBZSxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQU5ELHdDQU1DO0FBRUQsU0FBZ0IsWUFBWSxDQUFPLEdBQVEsRUFBRSxjQUEwQjtJQUNuRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7O1FBQ3pCLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksR0FBRyxDQUFDO1lBQ1gsR0FBRyxHQUFHO1lBQ04sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBQSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxtQ0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN6RCxDQUFDLENBQUM7SUFDUCxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQWlCLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBUkQsb0NBUUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBSSxDQUFNLEVBQUUsQ0FBTTtJQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUhELDhDQUdDO0FBRUQsU0FBZ0IsV0FBVyxDQUFJLENBQU0sRUFBRSxDQUFLO0lBQ3hDLElBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTTtRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNqQixPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBSkQsa0NBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcGFydGl0aW9uQXJyYXk8QT4oYXJyOiBBW10sIGlzTGVmdDogKHg6IEEpID0+IGJvb2xlYW4pOiBbQVtdLCBBW11dIHtcbiAgICByZXR1cm4gYXJyLnJlZHVjZSgoYWNjLCBlKSA9PlxuICAgICAgICBpc0xlZnQoZSkgXG4gICAgICAgICAgICA/IFtbLi4uYWNjWzBdLCBlXSwgYWNjWzFdXVxuICAgICAgICAgICAgOiBbYWNjWzBdLCBbLi4uYWNjWzFdLCBlXV0sXG4gICAgW1tdLCBbXV0gYXMgW0FbXSwgQVtdXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncm91cEFycmF5Qnk8VCwgVT4oYXJyOiBUW10sIHByb3BlcnR5R2V0dGVyOiAodDpUKSA9PiBVKTogTWFwPFUsIFRbXT4ge1xuICAgIHJldHVybiBhcnIucmVkdWNlKChhY2MsIGUpID0+IHtcbiAgICAgICAgY29uc3QgcHJvcGVydHkgPSBwcm9wZXJ0eUdldHRlcihlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXAoW1xuICAgICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgICAgW3Byb3BlcnR5R2V0dGVyKGUpLCBbLi4uKGFjYy5nZXQocHJvcGVydHkpID8/IFtdKSwgZV1dXG4gICAgICAgIF0pO1xuICAgIH0sIG5ldyBNYXAoKSBhcyBNYXA8VSwgVFtdPik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUludGVyc2VjdGlvbjxUPihhOiBUW10sIGI6IFRbXSk6IFRbXSB7XG4gICAgY29uc3QgYVNldCA9IG5ldyBTZXQoYSk7XG4gICAgcmV0dXJuIFsuLi5iLmZpbHRlcihrID0+IGFTZXQuaGFzKGspKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJheXNFcXVhbDxUPihhOiBUW10sIGI6VFtdKTogYm9vbGVhbiB7XG4gICAgaWYoYS5sZW5ndGggIT09IGIubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICFhLnNvbWUoKGUsIGkpID0+IGUgIT09IGJbaV0pO1xufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXlVdGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3V0aWxzL2FycmF5VXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBZ0IsY0FBYyxDQUFJLEdBQVEsRUFBRSxNQUF5QjtJQUNuRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQzlCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBZSxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQU5ELHdDQU1DO0FBRUQsU0FBZ0IsWUFBWSxDQUFPLEdBQVEsRUFBRSxjQUEwQjtJQUNyRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7O1FBQzNCLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksR0FBRyxDQUFDO1lBQ2IsR0FBRyxHQUFHO1lBQ04sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBQSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxtQ0FBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN2RCxDQUFDLENBQUM7SUFDTCxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQWlCLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBUkQsb0NBUUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBSSxDQUFNLEVBQUUsQ0FBTTtJQUNqRCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUhELDhDQUdDO0FBRUQsU0FBZ0IsV0FBVyxDQUFJLENBQU0sRUFBRSxDQUFLO0lBQzFDLElBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTTtRQUN0QixPQUFPLEtBQUssQ0FBQztJQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFKRCxrQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBwYXJ0aXRpb25BcnJheTxBPihhcnI6IEFbXSwgaXNMZWZ0OiAoeDogQSkgPT4gYm9vbGVhbik6IFtBW10sIEFbXV0ge1xuICByZXR1cm4gYXJyLnJlZHVjZSgoYWNjLCBlKSA9PlxuICAgIGlzTGVmdChlKVxuICAgICAgPyBbWy4uLmFjY1swXSwgZV0sIGFjY1sxXV1cbiAgICAgIDogW2FjY1swXSwgWy4uLmFjY1sxXSwgZV1dLFxuICBbW10sIFtdXSBhcyBbQVtdLCBBW11dKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VwQXJyYXlCeTxULCBVPihhcnI6IFRbXSwgcHJvcGVydHlHZXR0ZXI6ICh0OlQpID0+IFUpOiBNYXA8VSwgVFtdPiB7XG4gIHJldHVybiBhcnIucmVkdWNlKChhY2MsIGUpID0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IHByb3BlcnR5R2V0dGVyKGUpO1xuICAgIHJldHVybiBuZXcgTWFwKFtcbiAgICAgIC4uLmFjYyxcbiAgICAgIFtwcm9wZXJ0eUdldHRlcihlKSwgWy4uLihhY2MuZ2V0KHByb3BlcnR5KSA/PyBbXSksIGVdXSxcbiAgICBdKTtcbiAgfSwgbmV3IE1hcCgpIGFzIE1hcDxVLCBUW10+KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5SW50ZXJzZWN0aW9uPFQ+KGE6IFRbXSwgYjogVFtdKTogVFtdIHtcbiAgY29uc3QgYVNldCA9IG5ldyBTZXQoYSk7XG4gIHJldHVybiBbLi4uYi5maWx0ZXIoayA9PiBhU2V0LmhhcyhrKSldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlzRXF1YWw8VD4oYTogVFtdLCBiOlRbXSk6IGJvb2xlYW4ge1xuICBpZihhLmxlbmd0aCAhPT0gYi5sZW5ndGgpXG4gICAgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gIWEuc29tZSgoZSwgaSkgPT4gZSAhPT0gYltpXSk7XG59Il19

@@ -20,5 +20,5 @@ "use strict";

function fromEntries(xs) {
return xs.reduce((acc, [key, value]) => ({ ...acc, [key]: value, }), {});
return xs.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
}
exports.fromEntries = fromEntries;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3V0aWxzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDRixTQUFnQixPQUFPLENBQU8sRUFBTyxFQUFFLENBQWdCO0lBQ3RELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDM0IsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbEIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25CO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBTkEsMEJBTUE7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixXQUFXLENBQUksRUFBK0I7SUFDNUQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFGRCxrQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFwIGEgZnVuY3Rpb24gb3ZlciBhbiBhcnJheSBhbmQgY29uY2F0ZW5hdGUgdGhlIHJlc3VsdHNcbiAqL1xuIGV4cG9ydCBmdW5jdGlvbiBmbGF0TWFwPFQsIFU+KHhzOiBUW10sIGY6ICh4OiBUKSA9PiBVW10pOiBVW10ge1xuICBjb25zdCByZXQgPSBuZXcgQXJyYXk8VT4oKTtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0LnB1c2goLi4uZih4KSk7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGdpdmVuIGl0ZXJhYmxlXG4gKiBsaXN0IG9mIFtrZXksIHZhbHVlXSBwYWlycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21FbnRyaWVzPFQ+KHhzOiBbc3RyaW5nfG51bWJlcnxzeW1ib2wsIFRdW10pOiB7W2tleTogc3RyaW5nXTogVH0ge1xuICByZXR1cm4geHMucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5XTogdmFsdWUsfSksIHt9KTtcbn1cbiAiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3V0aWxzL25vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxTQUFnQixPQUFPLENBQU8sRUFBTyxFQUFFLENBQWdCO0lBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7SUFDM0IsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbEIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25CO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBTkQsMEJBTUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixXQUFXLENBQUksRUFBK0I7SUFDNUQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFGRCxrQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFwIGEgZnVuY3Rpb24gb3ZlciBhbiBhcnJheSBhbmQgY29uY2F0ZW5hdGUgdGhlIHJlc3VsdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZsYXRNYXA8VCwgVT4oeHM6IFRbXSwgZjogKHg6IFQpID0+IFVbXSk6IFVbXSB7XG4gIGNvbnN0IHJldCA9IG5ldyBBcnJheTxVPigpO1xuICBmb3IgKGNvbnN0IHggb2YgeHMpIHtcbiAgICByZXQucHVzaCguLi5mKHgpKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ2l2ZW4gaXRlcmFibGVcbiAqIGxpc3Qgb2YgW2tleSwgdmFsdWVdIHBhaXJzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbUVudHJpZXM8VD4oeHM6IFtzdHJpbmd8bnVtYmVyfHN5bWJvbCwgVF1bXSk6IHtba2V5OiBzdHJpbmddOiBUfSB7XG4gIHJldHVybiB4cy5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiAoeyAuLi5hY2MsIFtrZXldOiB2YWx1ZX0pLCB7fSk7XG59XG4iXX0=

@@ -10,2 +10,2 @@ "use strict";

exports.setsEqual = setsEqual;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91dGlscy9zZXRVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixTQUFTLENBQUksQ0FBUyxFQUFFLENBQVM7SUFDN0MsSUFBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJO1FBQ2hCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBSkQsOEJBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gc2V0c0VxdWFsPFQ+KGE6IFNldDxUPiwgYjogU2V0PFQ+KTogYm9vbGVhbiB7XG4gICAgaWYoYS5zaXplICE9PSBiLnNpemUpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIVsuLi5hXS5zb21lKChlKSA9PiAhYi5oYXMoZSkpO1xufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91dGlscy9zZXRVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFnQixTQUFTLENBQUksQ0FBUyxFQUFFLENBQVM7SUFDL0MsSUFBRyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJO1FBQ2xCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFKRCw4QkFJQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBzZXRzRXF1YWw8VD4oYTogU2V0PFQ+LCBiOiBTZXQ8VD4pOiBib29sZWFuIHtcbiAgaWYoYS5zaXplICE9PSBiLnNpemUpXG4gICAgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gIVsuLi5hXS5zb21lKChlKSA9PiAhYi5oYXMoZSkpO1xufSJdfQ==

@@ -33,2 +33,2 @@ "use strict";

exports.capitalizeString = capitalizeString;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91dGlscy9zdHJpbmdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBTyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBVSxFQUFFOztJQUU3RCxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1FBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDMUI7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNuQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QixRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQUEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUNBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDekQ7SUFFRCxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxLQUFLLEdBQUcsTUFBQSxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQ0FBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLGdCQUFnQixFQUFFLENBQUM7U0FDdEI7S0FDSjtJQUVELE9BQU8sQ0FBQyxHQUFHLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRTVELENBQUMsQ0FBQztBQXpCVyxRQUFBLGdCQUFnQixvQkF5QjNCO0FBRUssTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFO0lBQzFDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3hDLElBQUcsU0FBUyxDQUFDLE1BQU07UUFDZixPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkUsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBTFcsUUFBQSxnQkFBZ0Isb0JBSzNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHN0cmluZ1NpbWlsYXJpdHkgPSAoYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBudW1iZXIgPT4ge1xuXG4gICAgaWYgKGEubGVuZ3RoIDwgMiB8fCBiLmxlbmd0aCA8IDIpe1xuICAgICAgICByZXR1cm4gYSA9PT0gYiA/IDEgOiAwO1xuICAgIH1cbiAgICAgIFxuICAgIGNvbnN0IGFCaWdyYW1zID0gbmV3IE1hcCgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYS5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgY29uc3QgYmlncmFtID0gYS5zdWJzdHIoaSwgMik7XG4gICAgICAgIGFCaWdyYW1zLnNldChiaWdyYW0sIChhQmlncmFtcy5nZXQoYmlncmFtKSA/PyAwKSArIDEpO1xuICAgIH1cbiAgICBcbiAgICBsZXQgaW50ZXJzZWN0aW9uU2l6ZSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBiLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICBjb25zdCBiaWdyYW0gPSBiLnN1YnN0cihpLCAyKTtcbiAgICAgICAgY29uc3QgY291bnQgPSBhQmlncmFtcy5nZXQoYmlncmFtKSA/PyAwO1xuXG4gICAgICAgIGlmIChjb3VudCA+IDApIHtcbiAgICAgICAgICAgIGFCaWdyYW1zLnNldChiaWdyYW0sIGNvdW50IC0gMSk7XG4gICAgICAgICAgICBpbnRlcnNlY3Rpb25TaXplKys7XG4gICAgICAgIH1cbiAgICB9XG4gICAgICBcbiAgICByZXR1cm4gMiAqIGludGVyc2VjdGlvblNpemUgLyAoYS5sZW5ndGggKyBiLmxlbmd0aCAtIDIpO1xuXG59O1xuXG5leHBvcnQgY29uc3QgY2FwaXRhbGl6ZVN0cmluZyA9IChzOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBsb3dlckNhc2UgPSBzLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgaWYobG93ZXJDYXNlLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIGAke2xvd2VyQ2FzZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2xvd2VyQ2FzZS5zbGljZSgxKX1gO1xuICAgIHJldHVybiBsb3dlckNhc2U7XG59OyAiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91dGlscy9zdHJpbmdVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBTyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBVSxFQUFFOztJQUUvRCxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1FBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEI7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzNCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QixRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQUEsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsbUNBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDdkQ7SUFFRCxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDckMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxLQUFLLEdBQUcsTUFBQSxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxtQ0FBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLGdCQUFnQixFQUFFLENBQUM7U0FDcEI7S0FDRjtJQUVELE9BQU8sQ0FBQyxHQUFHLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBRTFELENBQUMsQ0FBQztBQXpCVyxRQUFBLGdCQUFnQixvQkF5QjNCO0FBRUssTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQVMsRUFBVSxFQUFFO0lBQ3BELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3hDLElBQUcsU0FBUyxDQUFDLE1BQU07UUFDakIsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JFLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUxXLFFBQUEsZ0JBQWdCLG9CQUszQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzdHJpbmdTaW1pbGFyaXR5ID0gKGE6IHN0cmluZywgYjogc3RyaW5nKTogbnVtYmVyID0+IHtcblxuICBpZiAoYS5sZW5ndGggPCAyIHx8IGIubGVuZ3RoIDwgMil7XG4gICAgcmV0dXJuIGEgPT09IGIgPyAxIDogMDtcbiAgfVxuXG4gIGNvbnN0IGFCaWdyYW1zID0gbmV3IE1hcCgpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGEubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgY29uc3QgYmlncmFtID0gYS5zdWJzdHIoaSwgMik7XG4gICAgYUJpZ3JhbXMuc2V0KGJpZ3JhbSwgKGFCaWdyYW1zLmdldChiaWdyYW0pID8/IDApICsgMSk7XG4gIH1cblxuICBsZXQgaW50ZXJzZWN0aW9uU2l6ZSA9IDA7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYi5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBjb25zdCBiaWdyYW0gPSBiLnN1YnN0cihpLCAyKTtcbiAgICBjb25zdCBjb3VudCA9IGFCaWdyYW1zLmdldChiaWdyYW0pID8/IDA7XG5cbiAgICBpZiAoY291bnQgPiAwKSB7XG4gICAgICBhQmlncmFtcy5zZXQoYmlncmFtLCBjb3VudCAtIDEpO1xuICAgICAgaW50ZXJzZWN0aW9uU2l6ZSsrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAyICogaW50ZXJzZWN0aW9uU2l6ZSAvIChhLmxlbmd0aCArIGIubGVuZ3RoIC0gMik7XG5cbn07XG5cbmV4cG9ydCBjb25zdCBjYXBpdGFsaXplU3RyaW5nID0gKHM6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGxvd2VyQ2FzZSA9IHMudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgaWYobG93ZXJDYXNlLmxlbmd0aClcbiAgICByZXR1cm4gYCR7bG93ZXJDYXNlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpfSR7bG93ZXJDYXNlLnNsaWNlKDEpfWA7XG4gIHJldHVybiBsb3dlckNhc2U7XG59OyJdfQ==
{
"name": "@aws-c2a/models",
"version": "0.3.3",
"version": "0.3.8",
"description": "The models package for CDK Change Analyzer: a tool that enables detecting dangerous changes within CDK projects.",

@@ -28,3 +28,3 @@ "main": "out/index.js",

"dependencies": {
"@aws-cdk/cfnspec": "^1.90.0",
"@aws-cdk/cfnspec": "^1.115.0",
"fifinet": "0.1.7"

@@ -52,3 +52,3 @@ },

},
"gitHead": "b8cd26b6f43e00237d035368f15e089a9f8bb14a"
"gitHead": "d831d39c419b691338fff20adaa96a5b9ef0b0e1"
}
export enum RuleRisk {
Low = 'low',
High = 'high',
Unknown = 'unknown',
Low = 'low',
High = 'high',
Unknown = 'unknown',
}
export enum RuleAction {
Approve = 'approve',
Reject = 'reject',
None = 'none',
Approve = 'approve',
Reject = 'reject',
None = 'none',
}

@@ -12,0 +12,0 @@

@@ -1,11 +0,11 @@

import { ChangeAnalysisReport } from "../../change-analysis-report";
import { buildDiff } from "./example-model";
// import { ChangeAnalysisReport } from '../../change-analysis-report';
import { buildDiff } from './example-model';
// TODO: Fix test
test('Report Graph returns proper graph', () => {
const infraModelDiff = buildDiff();
infraModelDiff;
// const report = new ChangeAnalysisReport(infraModelDiff, []);
const infraModelDiff = buildDiff();
infraModelDiff;
// const report = new ChangeAnalysisReport(infraModelDiff, []);
// console.log(report.generateGraph);
// console.log(report.generateGraph);
});
import {
Component,
ComponentPropertyPrimitive,
ComponentPropertyRecord,
ComponentUpdateType,
DependencyRelationship,
InfraModel
} from "../../infra-model";
import { InfraModelDiff, Transition, UpdatePropertyComponentOperation } from "../../model-diffing";
Component,
ComponentPropertyPrimitive,
ComponentPropertyRecord,
ComponentUpdateType,
DependencyRelationship,
InfraModel,
} from '../../infra-model';
import { InfraModelDiff, Transition, UpdatePropertyComponentOperation } from '../../model-diffing';
export const buildModelV1 = () => {
const component1v1 = new Component('component1', 'resource', {
subtype: "AWS::IAM::Role",
properties: new ComponentPropertyRecord(
{
someKey: new ComponentPropertyPrimitive("someValue", ComponentUpdateType.REPLACEMENT)
}, ComponentUpdateType.REPLACEMENT
)
});
const component2v1 = new Component('component2', 'resource', {
subtype: "AWS::EC2::Instance",
properties: new ComponentPropertyRecord({
nested: new ComponentPropertyRecord({
propComp2: new ComponentPropertyPrimitive("value", ComponentUpdateType.REPLACEMENT)
}, ComponentUpdateType.REPLACEMENT)
}, ComponentUpdateType.REPLACEMENT
)
});
const relationship1v1 = new DependencyRelationship(component2v1, component1v1, 'relationship1', {sourcePropertyPath: ["nested", "propComp2"]});
component1v1.addIncoming(relationship1v1);
component2v1.addOutgoing(relationship1v1);
const infraModelv1 = new InfraModel([component1v1, component2v1], [relationship1v1]);
export const buildModelV1 = (): InfraModel => {
const component1v1 = new Component('component1', 'resource', {
subtype: 'AWS::IAM::Role',
properties: new ComponentPropertyRecord(
{
someKey: new ComponentPropertyPrimitive('someValue', ComponentUpdateType.REPLACEMENT),
}, ComponentUpdateType.REPLACEMENT,
),
});
const component2v1 = new Component('component2', 'resource', {
subtype: 'AWS::EC2::Instance',
properties: new ComponentPropertyRecord({
nested: new ComponentPropertyRecord({
propComp2: new ComponentPropertyPrimitive('value', ComponentUpdateType.REPLACEMENT),
}, ComponentUpdateType.REPLACEMENT),
}, ComponentUpdateType.REPLACEMENT,
),
});
const relationship1v1 = new DependencyRelationship(component2v1, component1v1, 'relationship1', {sourcePropertyPath: ['nested', 'propComp2']});
component1v1.addIncoming(relationship1v1);
component2v1.addOutgoing(relationship1v1);
const infraModelv1 = new InfraModel([component1v1, component2v1], [relationship1v1]);
return infraModelv1;
return infraModelv1;
};
const buildModelV2 = () => {
const component1v2 = new Component('component1', 'resource', {
subtype: "AWS::IAM::Role",
properties: new ComponentPropertyRecord(
{
someKey: new ComponentPropertyPrimitive("someValueChanged", ComponentUpdateType.REPLACEMENT)
}, ComponentUpdateType.REPLACEMENT
)
});
const component2v2 = new Component('component2', 'resource', {
subtype: "AWS::EC2::Instance",
properties: new ComponentPropertyRecord({
nestedNameChanged: new ComponentPropertyRecord({
propComp2NameChanged: new ComponentPropertyPrimitive("value", ComponentUpdateType.REPLACEMENT)
}, ComponentUpdateType.REPLACEMENT)
}, ComponentUpdateType.REPLACEMENT
)
});
const relationship1v2 = new DependencyRelationship(component2v2, component1v2, 'relationship1', {sourcePropertyPath: ["nestedNameChanged", "propComp2NameChanged"]});
component1v2.addIncoming(relationship1v2);
component2v2.addOutgoing(relationship1v2);
const infraModelv2 = new InfraModel([component1v2, component2v2], [relationship1v2]);
const buildModelV2 = (): InfraModel => {
const component1v2 = new Component('component1', 'resource', {
subtype: 'AWS::IAM::Role',
properties: new ComponentPropertyRecord(
{
someKey: new ComponentPropertyPrimitive('someValueChanged', ComponentUpdateType.REPLACEMENT),
}, ComponentUpdateType.REPLACEMENT,
),
});
const component2v2 = new Component('component2', 'resource', {
subtype: 'AWS::EC2::Instance',
properties: new ComponentPropertyRecord({
nestedNameChanged: new ComponentPropertyRecord({
propComp2NameChanged: new ComponentPropertyPrimitive('value', ComponentUpdateType.REPLACEMENT),
}, ComponentUpdateType.REPLACEMENT),
}, ComponentUpdateType.REPLACEMENT,
),
});
const relationship1v2 = new DependencyRelationship(component2v2, component1v2, 'relationship1', {sourcePropertyPath: ['nestedNameChanged', 'propComp2NameChanged']});
component1v2.addIncoming(relationship1v2);
component2v2.addOutgoing(relationship1v2);
const infraModelv2 = new InfraModel([component1v2, component2v2], [relationship1v2]);
return infraModelv2;
return infraModelv2;
};

@@ -66,34 +66,37 @@

const infraModelv1 = buildModelV1();
const infraModelv2 = buildModelV2();
const infraModelv1 = buildModelV1();
const infraModelv2 = buildModelV2();
const component1v1 = infraModelv1.components[0];
const component1v2 = infraModelv2.components[0];
const component2v1 = infraModelv1.components[1];
const component2v2 = infraModelv2.components[1];
const component1Transition = new Transition<Component>({v1: component1v1, v2: component1v2});
const component2Transition = new Transition<Component>({v1: component2v1, v2: component2v2});
const component1v1 = infraModelv1.components[0];
const component1v2 = infraModelv2.components[0];
const component2v1 = infraModelv1.components[1];
const component2v2 = infraModelv2.components[1];
const directChangeComponent1 = new UpdatePropertyComponentOperation({}, {
pathTransition: new Transition({v1: ["someKey"], v2: ["someKey"]}),
propertyTransition: new Transition({
v1: component1v1.properties.getRecord()["someKey"],
v2: component1v2.properties.getRecord()["someKey"],
}),
componentTransition: component1Transition,
});
const component1Transition = new Transition<Component>({v1: component1v1, v2: component1v2});
const component2Transition = new Transition<Component>({v1: component2v1, v2: component2v2});
const directChangeComponent2 = new UpdatePropertyComponentOperation({}, {
pathTransition: new Transition({v1: ["nested", "propComp2"], v2: ["nestedNameChanged", "propComp2NameChanged"]}),
propertyTransition: new Transition({
v1: component2v1.properties.getRecord()["nested"].getRecord()["propComp2"],
v2: component2v2.properties.getRecord()["nestedNameChanged"].getRecord()["propComp2NameChanged"],
}),
componentTransition: component2Transition
});
const directChangeComponent1 = new UpdatePropertyComponentOperation({}, {
pathTransition: new Transition({v1: ['someKey'], v2: ['someKey']}),
propertyTransition: new Transition({
v1: component1v1.properties.getRecord().someKey,
v2: component1v2.properties.getRecord().someKey,
}),
componentTransition: component1Transition,
});
const infraModelTransition = new Transition<InfraModel>({v1: infraModelv1, v2: infraModelv2});
return new InfraModelDiff([directChangeComponent1, directChangeComponent2], [component1Transition, component2Transition], infraModelTransition);
const directChangeComponent2 = new UpdatePropertyComponentOperation({}, {
pathTransition: new Transition({v1: ['nested', 'propComp2'], v2: ['nestedNameChanged', 'propComp2NameChanged']}),
propertyTransition: new Transition({
v1: component2v1.properties.getRecord().nested.getRecord().propComp2,
v2: component2v2.properties.getRecord().nestedNameChanged.getRecord().propComp2NameChanged,
}),
componentTransition: component2Transition,
});
const infraModelTransition = new Transition<InfraModel>({v1: infraModelv1, v2: infraModelv2});
return new InfraModelDiff(
[directChangeComponent1, directChangeComponent2],
[component1Transition, component2Transition], infraModelTransition,
);
};

@@ -1,26 +0,26 @@

import { JSONSerializer } from "../../export/json-serializer";
import { JSONDeserializer } from "../../export/json-deserializer";
import { JSONDeserializer } from '../../export/json-deserializer';
import { JSONSerializer } from '../../export/json-serializer';
import {
InfraModel
} from "../../infra-model";
import { InfraModelDiff } from "../../model-diffing";
import { buildDiff, buildModelV1 } from "./example-model";
InfraModel,
} from '../../infra-model';
import { InfraModelDiff } from '../../model-diffing';
import { buildDiff, buildModelV1 } from './example-model';
// TODO: Fix these tests
test('InfraModel toSerialized', () => {
const model = buildModelV1();
const serialized = new JSONSerializer().serialize(model);
const deserialized = new JSONDeserializer<InfraModel>().deserialize(serialized);
deserialized;
// expect(deserialized).toEqual(model);
const model = buildModelV1();
const serialized = new JSONSerializer().serialize(model);
const deserialized = new JSONDeserializer<InfraModel>().deserialize(serialized);
deserialized;
// expect(deserialized).toEqual(model);
});
test('InfraModelDiff toSerialized', () => {
const diff = buildDiff();
const diff = buildDiff();
const serialized = new JSONSerializer().serialize(diff);
const deserialized = new JSONDeserializer<InfraModelDiff>().deserialize(serialized);
expect(deserialized.componentOperations.length).toBe(diff.componentOperations.length);
expect(deserialized.componentTransitions.length).toBe(diff.componentTransitions.length);
// expect(deserialized).toEqual(diff);
const serialized = new JSONSerializer().serialize(diff);
const deserialized = new JSONDeserializer<InfraModelDiff>().deserialize(serialized);
expect(deserialized.componentOperations.length).toBe(diff.componentOperations.length);
expect(deserialized.componentTransitions.length).toBe(diff.componentTransitions.length);
// expect(deserialized).toEqual(diff);
});
export function partitionArray<A>(arr: A[], isLeft: (x: A) => boolean): [A[], A[]] {
return arr.reduce((acc, e) =>
isLeft(e)
? [[...acc[0], e], acc[1]]
: [acc[0], [...acc[1], e]],
[[], []] as [A[], A[]]);
return arr.reduce((acc, e) =>
isLeft(e)
? [[...acc[0], e], acc[1]]
: [acc[0], [...acc[1], e]],
[[], []] as [A[], A[]]);
}
export function groupArrayBy<T, U>(arr: T[], propertyGetter: (t:T) => U): Map<U, T[]> {
return arr.reduce((acc, e) => {
const property = propertyGetter(e);
return new Map([
...acc,
[propertyGetter(e), [...(acc.get(property) ?? []), e]]
]);
}, new Map() as Map<U, T[]>);
return arr.reduce((acc, e) => {
const property = propertyGetter(e);
return new Map([
...acc,
[propertyGetter(e), [...(acc.get(property) ?? []), e]],
]);
}, new Map() as Map<U, T[]>);
}
export function arrayIntersection<T>(a: T[], b: T[]): T[] {
const aSet = new Set(a);
return [...b.filter(k => aSet.has(k))];
const aSet = new Set(a);
return [...b.filter(k => aSet.has(k))];
}
export function arraysEqual<T>(a: T[], b:T[]): boolean {
if(a.length !== b.length)
return false;
return !a.some((e, i) => e !== b[i]);
if(a.length !== b.length)
return false;
return !a.some((e, i) => e !== b[i]);
}
/**
* Map a function over an array and concatenate the results
*/
export function flatMap<T, U>(xs: T[], f: (x: T) => U[]): U[] {
export function flatMap<T, U>(xs: T[], f: (x: T) => U[]): U[] {
const ret = new Array<U>();

@@ -17,4 +17,3 @@ for (const x of xs) {

export function fromEntries<T>(xs: [string|number|symbol, T][]): {[key: string]: T} {
return xs.reduce((acc, [key, value]) => ({ ...acc, [key]: value,}), {});
return xs.reduce((acc, [key, value]) => ({ ...acc, [key]: value}), {});
}
export function setsEqual<T>(a: Set<T>, b: Set<T>): boolean {
if(a.size !== b.size)
return false;
return ![...a].some((e) => !b.has(e));
if(a.size !== b.size)
return false;
return ![...a].some((e) => !b.has(e));
}
export const stringSimilarity = (a: string, b: string): number => {
if (a.length < 2 || b.length < 2){
return a === b ? 1 : 0;
}
const aBigrams = new Map();
for (let i = 0; i < a.length - 1; i++) {
const bigram = a.substr(i, 2);
aBigrams.set(bigram, (aBigrams.get(bigram) ?? 0) + 1);
}
let intersectionSize = 0;
for (let i = 0; i < b.length - 1; i++) {
const bigram = b.substr(i, 2);
const count = aBigrams.get(bigram) ?? 0;
if (a.length < 2 || b.length < 2){
return a === b ? 1 : 0;
}
if (count > 0) {
aBigrams.set(bigram, count - 1);
intersectionSize++;
}
const aBigrams = new Map();
for (let i = 0; i < a.length - 1; i++) {
const bigram = a.substr(i, 2);
aBigrams.set(bigram, (aBigrams.get(bigram) ?? 0) + 1);
}
let intersectionSize = 0;
for (let i = 0; i < b.length - 1; i++) {
const bigram = b.substr(i, 2);
const count = aBigrams.get(bigram) ?? 0;
if (count > 0) {
aBigrams.set(bigram, count - 1);
intersectionSize++;
}
return 2 * intersectionSize / (a.length + b.length - 2);
}
return 2 * intersectionSize / (a.length + b.length - 2);
};
export const capitalizeString = (s: string) => {
const lowerCase = s.toLocaleLowerCase();
if(lowerCase.length)
return `${lowerCase.charAt(0).toUpperCase()}${lowerCase.slice(1)}`;
return lowerCase;
};
export const capitalizeString = (s: string): string => {
const lowerCase = s.toLocaleLowerCase();
if(lowerCase.length)
return `${lowerCase.charAt(0).toUpperCase()}${lowerCase.slice(1)}`;
return lowerCase;
};

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