@fluid-experimental/property-properties 2.70.0-361788 → 2.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/properties/baseProperty.d.ts +1 -1
- package/dist/properties/baseProperty.d.ts.map +1 -1
- package/dist/properties/baseProperty.js +1 -0
- package/dist/properties/baseProperty.js.map +1 -1
- package/dist/test/tsconfig.tsbuildinfo +1 -1
- package/lib/properties/baseProperty.d.ts +1 -1
- package/lib/properties/baseProperty.d.ts.map +1 -1
- package/lib/properties/baseProperty.js +1 -0
- package/lib/properties/baseProperty.js.map +1 -1
- package/package.json +6 -6
|
@@ -345,7 +345,7 @@ export declare abstract class BaseProperty {
|
|
|
345
345
|
/**
|
|
346
346
|
* Return a JSON representation of the properties and its children.
|
|
347
347
|
*/
|
|
348
|
-
protected _toJson():
|
|
348
|
+
protected _toJson(): object;
|
|
349
349
|
getIds(): string[];
|
|
350
350
|
get(id: string, params?: {
|
|
351
351
|
referenceResolutionMode: REFERENCE_RESOLUTION;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseProperty.d.ts","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,SAAS,EACT,UAAU,EACV,mBAAmB,EAEnB,MAAM,wCAAwC,CAAC;AAShD;;GAEG;AACH,aAAK,oBAAoB;IACxB,iEAAiE;IACjE,MAAM,IAAA;IACN,yGAAyG;IACzG,QAAQ,IAAA;IACR,kDAAkD;IAClD,KAAK,IAAA;CACL;AAED;;GAEG;AACH,aAAK,oBAAoB;IACxB,gDAAgD;IAChD,KAAK,IAAA;IACL,2EAA2E;IAC3E,cAAc,IAAA;IACd,mHAAmH;IACnH,KAAK,IAAA;CACL;AAgBD,UAAU,mBAAmB;IAC5B,yBAAyB;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6GAA6G;IAC7G,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAGhB,6EAA6E;IAC7E,UAAU,EAAE,YAAY,EAAE,CAAC;IAG3B,iFAAiF;IACjF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,UAAU,iBAAiB;IAC1B,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAC;CACxC;AAED;;;;;;;;;;;GAWG;AACH,8BAAsB,YAAY;IACjC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAC5C,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC;IAElC,KAAK,EAAE,GAAG,CAAC;IACX,aAAa,EAAE,GAAG,CAAC;IACnB,yBAAyB,EAAE,GAAG,CAAC;gBAEnB,SAAS,EAAE,mBAAmB;IA6B1C,MAAM,CAAC,oBAAoB,8BAAwB;IACnD,MAAM,CAAC,oBAAoB,8BAAwB;IACnD,MAAM,CAAC,WAAW;QAlGlB,uCAAuC;;;;QAEvC,mDAAmD;;;QAEnD,2DAA2D;;;;MA8F1B;IAEjC;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,SAAS,CAAC,SAAS,IAAI,MAAM,GAAG,SAAS;IAIzC;;;;;OAKG;IACH,aAAa,CAAC,iBAAiB,UAAQ,GAAG,MAAM;IAIhD;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,YAAY;IAW9C;;;;OAIG;IACH,MAAM,IAAI,OAAO;IAMjB;;;;;;OAMG;IACH,YAAY,CAAC,gBAAgB,EAAE,YAAY,GAAG,OAAO;IAarD;;;;;;OAMG;IACH,cAAc,CAAC,gBAAgB,EAAE,YAAY,GAAG,OAAO;IAKvD;;;;;;OAMG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;OAIG;IACH,SAAS,IAAI,YAAY,GAAG,SAAS;IAIrC;;;OAGG;IACH,SAAS;IAIT;;;;;;;;;OASG;IACH,SAAS,CACR,eAAe,UAAO,EACtB,eAAe,GAAE,YAAwB,EACzC,QAAQ,GAAE,oBAC0B;IA0BrC;;;OAGG;IACH,cAAc,CAAC,QAAQ,EAAE,oBAAoB;IAI7C;;;OAGG;IACH,cAAc,IAAI,oBAAoB;IAItC;;;OAGG;IAGH,sBAAsB;IAgBtB;;;;;;;OAOG;IACH,cAAc,CAAC,YAAY,EAAE,mBAAmB;IAOhD;;;;;;;;;;;;OAYG;IACH,eAAe,CACd,YAAY,EAAE,mBAAmB,EACjC,eAAe,UAAO,EACtB,mBAAmB,MAAY;IA0BhC;;;;;;;;OAQG;IACH,kBAAkB,CACjB,mBAAmB,EAAE,mBAAmB,EACxC,iBAAiB,EAAE,mBAAmB;IA4BvC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,YAAY;IAI/D;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,KAAA;IAMpB;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,oBAAoB;IAczC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,GAAE,oBAAiD,GAAG,OAAO;IAItF;;;;;OAKG;IACH,OAAO,IAAI,OAAO;IAIlB;;;OAGG;IACH,iBAAiB,IAAI,OAAO;IAI5B;;;;OAIG;IACH,iBAAiB,IAAI,SAAS;IAS9B;;;;OAIG;IACH,KAAK,IAAI,MAAM,GAAG,SAAS;IAI3B;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,KAAA;IAItB;;;OAGG;IACH,gBAAgB;IAKhB;;;;OAIG;IACH,4BAA4B;IAQ5B;;;OAGG;IACH,YAAY;IAKZ;;;;;;OAMG;IACH,SAAS,CAAC,2BAA2B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM;IAIzE;;;;;;;OAOG;IACH,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,WAAW;IAWxF;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,KAAA;IAiBZ;;;OAGG;IACH,KAAK,IAAI,YAAY;IAoBrB;;;OAGG;IACH,eAAe;IAIf;;;;;;;;;;OAUG;IACH,SAAS,CAAC,QAAQ,IAAI,MAAM;IAI5B;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,KAAA;IAOpB;;OAEG;IACH,SAAS,CAAC,OAAO,IAAI,MAAM;IAqB3B,MAAM,IAAI,MAAM,EAAE;IAIlB,GAAG,CACF,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE;QAAE,uBAAuB,EAAE,oBAAoB,CAAA;KAAE,GACxD,YAAY,GAAG,SAAS;IAI3B;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,KAAA,EAAE,UAAU,KAAA,EAAE,QAAQ,KAAA;IAgBzC;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,KAAA,EAAE,QAAQ,KAAA;IAUrC;;;;;;;;OAQG;IACH,uBAAuB,CAAC,eAAe,KAAA;IAgDvC;;;;;;;OAOG;IACH,gBAAgB,CAAC,eAAe,KAAA;IAoBhC;;;;;;;OAOG;IACH,cAAc,CAAC,eAAe,KAAA;IAmC9B;;;;;;OAMG;IACH,oBAAoB,CAAC,eAAe,KAAA;IAapC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,eAAe,EAAE,YAAY,GAAG,MAAM;IAwBtD;;;;OAIG;IACH,eAAe;IAsDf;;;;;;;;OAQG;IACH,UAAU,CAAC,WAAW,KAAA;IAYtB;;OAEG;IACH,MAAM,CAAC,eAAe,SAAmB;IAEzC;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,EAAE;IAIrE;;;OAGG;IACH,OAAO,IAAI,YAAY;IAIvB;;;;;;;;OAQG;
|
|
1
|
+
{"version":3,"file":"baseProperty.d.ts","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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"}
|
|
@@ -880,6 +880,7 @@ class BaseProperty {
|
|
|
880
880
|
* @returns Returns BaseProperty.BREAK_TRAVERSAL if the traversal has been interrupted, otherwise `undefined`.
|
|
881
881
|
* @private
|
|
882
882
|
*/
|
|
883
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
883
884
|
_traverse(in_callback, in_pathFromTraversalStart) {
|
|
884
885
|
return undefined;
|
|
885
886
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseProperty.js","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint accessor-pairs: [2, { \"getWithoutSet\": false }] */\n\nimport {\n\tChangeSet,\n\tPathHelper,\n\tSerializedChangeSet,\n\tTypeIdHelper,\n} from \"@fluid-experimental/property-changeset\";\nimport { constants, ConsoleUtils } from \"@fluid-experimental/property-common\";\nimport _ from \"lodash\";\n\nimport { LazyLoadedProperties as Property } from \"./lazyLoadedProperties\";\n\nconst { MSG, PROPERTY_PATH_DELIMITER } = constants;\nconst BREAK_TRAVERSAL = \"BREAK\";\n\n/**\n * Determines in which cases a reference will automatically be resolved\n */\nenum REFERENCE_RESOLUTION {\n\t/** The resolution will always automatically follow references */\n\tALWAYS,\n\t/** If a reference is the last entry during the path resolution, it will not automatically be resolved */\n\tNO_LEAFS,\n\t/** References are never automatically resolved */\n\tNEVER,\n}\n\n/**\n * Used to indicate the state of a property. These flags can be connected via OR.\n */\nenum MODIFIED_STATE_FLAGS {\n\t/** No changes to this property at the moment */\n\tCLEAN,\n\t/** The property is marked as changed in the currently pending ChangeSet */\n\tPENDING_CHANGE,\n\t/** The property has been modified and the result has not yet been reported to the application for scene updates */\n\tDIRTY,\n}\n\n/**\n * Token Types\n * @enum Object\n * Type of the token in the path string\n */\nconst PATH_TOKENS = {\n\t/** A / at the beginning of the path */\n\tROOT: { token: \"ROOT\" },\n\t/** A * that indicates a dereferencing operation */ // note: reversed!\n\tREF: { token: \"REF\" },\n\t/** A ../ that indicates one step above the current path */\n\tUP: { token: \"UP\" },\n};\n\ninterface IBasePropertyParams {\n\t/** id of the property */\n\tid?: string;\n\t/** The type unique identifier */\n\ttypeid?: string;\n\t/** The length of the property. Only valid if the property is an array, otherwise the length defaults to 1 */\n\tlength: number;\n\t/** The type of property this template represents i.e. single, array, map, set. */\n\tcontext: string;\n\n\t// TODO: UNUSED PARAMETER ??\n\t/** List of property templates that are used to define children properties */\n\tproperties: BaseProperty[];\n\n\t// TODO: UNUSED PARAMETER ??\n\t/** List of property template typeids that this PropertyTemplate inherits from */\n\tinherits: string[];\n}\n\ninterface ISerializeOptions {\n\t/** Only include dirty entries in the serialization */\n\tdirtyOnly?: boolean;\n\t/** Include the typeid of the root of the hierarchy */\n\tincludeRootTypeid?: boolean;\n\t/** The type of dirtiness to use when reporting dirty changes. */\n\tdirtinessType?: MODIFIED_STATE_FLAGS;\n\t/**\n\t * If this is set to true, the serialize\n\t * function will descend into referenced repositories. WARNING: if there are loops in the references\n\t * this can result in an infinite loop\n\t */\n\tincludeReferencedRepositories?: boolean;\n}\n\n/**\n * The options to selectively create only a subset of a property.\n *\n * For now the filtering options are propagated by many functions, but are actually used only by\n * functions that create properties from schemas. It is then possible to create only a subset of\n * the properties of a schema by providing a restricted list of paths.\n *\n * Thus, with the filtering options, it is NOT possible to prevent a part of a ChangeSet from being\n * processed (in `applyChangeSet()` for example), it is NOT possible to prevent a property from being\n * created by a direct call to a function like `deserialize()` or `createProperty()`.\n * @internal\n */\nexport abstract class BaseProperty {\n\tprotected _id: string | undefined;\n\tprotected _isConstant: boolean;\n\tprotected _dirty: MODIFIED_STATE_FLAGS;\n\tprotected _typeid: string;\n\tprotected _context: string;\n\tprotected _parent: BaseProperty | undefined;\n\tprotected _noDirtyInBase: boolean;\n\n\t_tree: any;\n\t_checkoutView: any;\n\t_checkedOutRepositoryInfo: any;\n\n\tconstructor(in_params: IBasePropertyParams) {\n\t\t// Pre-conditions\n\t\t// This test has been disabled for performance reasons, if it would be incorrect,\n\t\t// the next line will throw anyways\n\t\t// ConsoleUtils.assert(in_params, MSG.PROP_CONSTRUCTOR_EXPECTS_OBJECTS);\n\n\t\tif (this._id !== in_params.id) {\n\t\t\tthis._id = in_params.id;\n\t\t}\n\n\t\t// Makes sure context value is fine\n\t\t// This assertion has been disabled for performance reasons. This is not a user facing\n\t\t// constructor function and therefore we rely on PropertyFactory to correctly provide the context.\n\t\t/* ConsoleUtils.assert(!in_params.context || in_params.context === this._context,\n MSG.CONTEXT_NOT_AS_EXPECTED + this._context + ' != ' + in_params.context); */\n\n\t\t// Sets typeid if default value is not fine\n\t\tlet typeId = in_params.typeid || \"BaseProperty\";\n\t\tif (typeId !== this._typeid) {\n\t\t\tthis._typeid = typeId;\n\t\t}\n\n\t\tthis._parent = undefined;\n\t\t// internal management\n\t\tif (!this._noDirtyInBase) {\n\t\t\tthis._dirty = MODIFIED_STATE_FLAGS.CLEAN;\n\t\t}\n\t}\n\n\tstatic MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS;\n\tstatic REFERENCE_RESOLUTION = REFERENCE_RESOLUTION;\n\tstatic PATH_TOKENS = PATH_TOKENS;\n\n\t/**\n\t * @returns The typeid of this property\n\t */\n\tgetTypeid(): string {\n\t\treturn this._typeid;\n\t}\n\n\t/**\n\t * @returns The context of this property\n\t */\n\tgetContext(): string {\n\t\treturn this._context;\n\t}\n\n\t/**\n\t * Get the scope to which this property belongs to.\n\t * @returns The guid representing the scope in which the\n\t * property belongs to\n\t */\n\tprotected _getScope(): string | undefined {\n\t\treturn this._parent ? this.getRoot()._getScope() : undefined;\n\t}\n\n\t/**\n\t * Returns the full property type identifier for the ChangeSet including the enum type id\n\t * @param in_hideCollection - if true the collection type (if applicable) will be omitted since that is not\n\t * applicable here, this param is ignored.\n\t * @returns The typeid\n\t */\n\tgetFullTypeid(in_hideCollection = false): string {\n\t\treturn this._typeid;\n\t}\n\n\t/**\n\t * Updates the parent for the property\n\t *\n\t * @param in_property - The parent property\n\t */\n\tprotected _setParent(in_property: BaseProperty) {\n\t\tthis._parent = in_property;\n\n\t\t// If the property is dirty but not its parent, dirty the parent. In cases like named properties\n\t\t// and default values, a parent is set after a value is set; we get a case where the\n\t\t// property is dirty but not its parent and the change is not included in a changeSet.\n\t\tif (this._parent && this._isDirty() && !this._parent._isDirty()) {\n\t\t\tthis._parent._setDirty(false, this);\n\t\t}\n\t}\n\n\t/**\n\t * Is this property the root of the property set tree?\n\t *\n\t * @returns True if it is a root, otherwise false.\n\t */\n\tisRoot(): boolean {\n\t\t// This checks, whether this is the root of a CheckOutView\n\t\t// (all other properties should have a parent property)\n\t\treturn this._parent === undefined;\n\t}\n\n\t/**\n\t * Is this property the ancestor of in_otherProperty?\n\t * Note: A property is not considered an ancestor of itself\n\t * @param in_otherProperty - possible descendant\n\t * @throws if in_otherProperty is not defined.\n\t * @returns True if it is a ancestor, otherwise false.\n\t */\n\tisAncestorOf(in_otherProperty: BaseProperty): boolean {\n\t\tConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n\t\tvar parent = in_otherProperty.getParent();\n\t\twhile (parent) {\n\t\t\tif (parent === this) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\tparent = parent.getParent();\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Is this property the descendant of in_otherProperty?\n\t * Note: A property is not considered a descendant of itself\n\t * @param in_otherProperty - possible ancestor\n\t * @throws if in_otherProperty is not defined.\n\t * @returns True if it is a descendant, otherwise false.\n\t */\n\tisDescendantOf(in_otherProperty: BaseProperty): boolean {\n\t\tConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n\t\treturn in_otherProperty.isAncestorOf(this);\n\t}\n\n\t/**\n\t * Is this property a leaf node with regard to flattening?\n\t *\n\t * TODO: Which semantics should flattening have? It stops at primitive types and collections?\n\t *\n\t * @returns True if it is a leaf with regard to flattening\n\t */\n\t_isFlattenLeaf(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get the parent of this property\n\t *\n\t * @returns The parent of this property (or undefined if none exist)\n\t */\n\tgetParent(): BaseProperty | undefined {\n\t\treturn this._parent;\n\t}\n\n\t/**\n\t * checks whether the property is dynamic (only properties inherting from NodeProperty are)\n\t * @returns True if it is a dynamic property.\n\t */\n\tisDynamic() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Sets the property as dirty and/or pending. This will add one or both flags if not already set and will\n\t * do the same for its parent. This does not clear any flag, it only sets.\n\t *\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @param in_callingChild - The child which is dirtying its parent\n\t * @param in_flags - The flags to set.\n\t * @private\n\t */\n\t_setDirty(\n\t\tin_reportToView = true,\n\t\tin_callingChild: BaseProperty = undefined,\n\t\tin_flags: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\tMODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t) {\n\t\tif (in_flags === undefined) {\n\t\t\tin_flags = MODIFIED_STATE_FLAGS.DIRTY | MODIFIED_STATE_FLAGS.PENDING_CHANGE;\n\t\t}\n\t\tvar reportToView = in_reportToView;\n\t\tif (reportToView === undefined) {\n\t\t\treportToView = true;\n\t\t}\n\t\t// We only update the flags upwards in the tree, when the corresponding nodes are not already flagged\n\t\tvar oldFlags = this._getDirtyFlags();\n\t\tif ((oldFlags & in_flags) !== in_flags) {\n\t\t\t// only dirty once until clean.\n\t\t\tthis._setDirtyFlags(oldFlags | in_flags);\n\n\t\t\t// Report dirtiness upwards in the hierarchy\n\t\t\tif (this._parent) {\n\t\t\t\tthis._parent._setDirty(reportToView, this, in_flags);\n\t\t\t\treportToView = false;\n\t\t\t}\n\t\t}\n\t\tif (reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the dirty flags for this property\n\t * @param in_flags - The dirty flags\n\t */\n\t_setDirtyFlags(in_flags: MODIFIED_STATE_FLAGS) {\n\t\tthis._dirty = in_flags;\n\t}\n\n\t/**\n\t * Gets the dirty flags for this property\n\t * @returns The dirty flags\n\t */\n\t_getDirtyFlags(): MODIFIED_STATE_FLAGS {\n\t\treturn this._dirty;\n\t}\n\n\t/**\n\t * Helper function, which reports the fact that a property has been dirtied to the checkout view\n\t * @private\n\t */\n\t// TODO: Cleaner way to make the property tree aware of the DDS hosting it.\n\t// Currently, this._tree is set in SharedPropertyTree constructor.\n\t_reportDirtinessToView() {\n\t\tlet currentNode: BaseProperty = this;\n\n\t\twhile (currentNode._parent) {\n\t\t\tcurrentNode = currentNode._parent;\n\t\t}\n\n\t\tif (\n\t\t\tcurrentNode._tree &&\n\t\t\tcurrentNode._tree.notificationDelayScope === 0 &&\n\t\t\tcurrentNode._isDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY)\n\t\t) {\n\t\t\tcurrentNode._tree._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Modifies the property according to the given changeset\n\t *\n\t * @param in_changeSet - The changeset to apply\n\t * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions] - The filtering options to\n\t * consider while applying the ChangeSet.\n\t * @throws if in_changeSet is invalid.\n\t */\n\tapplyChangeSet(in_changeSet: SerializedChangeSet) {\n\t\tthis._checkIsNotReadOnly(false);\n\n\t\t// We just forward the call to the internal function\n\t\tthis._applyChangeset(in_changeSet, true);\n\t}\n\n\t/**\n\t * Modifies the property according to the given changeset\n\t *\n\t * Internal function.\n\t *\n\t * @param in_changeSet - The changeset to apply\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view and trigger a\n\t * modified event there. When batching updates, this can be prevented via this flag.\n\t * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions] - The filtering options to\n\t * consider while applying the ChangeSet. For now it is only used to control property creation, to prevent\n\t * properties from being created outside the checked out paths. It does not validate that a value inside the\n\t * ChangeSet is outside those paths.\n\t */\n\t_applyChangeset(\n\t\tin_changeSet: SerializedChangeSet,\n\t\tin_reportToView = true,\n\t\tin_filteringOptions = undefined,\n\t) {\n\t\tvar typeids = _.keys(in_changeSet);\n\t\tfor (const typeid of typeids) {\n\t\t\tif (ChangeSet.isReservedKeyword(typeid)) {\n\t\t\t\tcontinue; // Ignore the special keys\n\t\t\t}\n\n\t\t\tvar paths = _.keys(in_changeSet[typeid]);\n\t\t\tfor (const path of paths) {\n\t\t\t\tvar property = this.resolvePath(path, {\n\t\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t\t});\n\t\t\t\tif (property) {\n\t\t\t\t\tproperty._applyChangeset(in_changeSet[typeid][path], false);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(MSG.INVALID_PATH + path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (in_reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Re-apply dirty flags from changesets\n\t *\n\t * Internal function.\n\t *\n\t * @param in_pendingChangeSet - The pending changeset to apply\n\t * @param in_dirtyChangeSet - The dirty changeset to apply\n\t * @throws if changeset arguments are invalid.\n\t */\n\t_reapplyDirtyFlags(\n\t\tin_pendingChangeSet: SerializedChangeSet,\n\t\tin_dirtyChangeSet: SerializedChangeSet,\n\t) {\n\t\tthis._checkIsNotReadOnly(false);\n\t\t// Here we must walk both changesets in parallel. Sometimes there will be only an entry in one\n\t\t// changeset, sometimes only one in the other changeset, sometimes one in both.\n\t\tconst typeids = _.keys(in_pendingChangeSet).concat(_.keys(in_dirtyChangeSet));\n\t\tfor (const typeid of typeids) {\n\t\t\tif (ChangeSet.isReservedKeyword(typeid)) {\n\t\t\t\tcontinue; // Ignore the special keys\n\t\t\t}\n\t\t\tconst pendingChangeSet = in_pendingChangeSet && in_pendingChangeSet[typeid];\n\t\t\tconst dirtyChangeSet = in_dirtyChangeSet && in_dirtyChangeSet[typeid];\n\n\t\t\tconst paths = _.keys(pendingChangeSet).concat(_.keys(dirtyChangeSet));\n\t\t\tfor (const path of paths) {\n\t\t\t\tlet property = this.resolvePath(path);\n\t\t\t\tif (property) {\n\t\t\t\t\tproperty._reapplyDirtyFlags(\n\t\t\t\t\t\tpendingChangeSet && pendingChangeSet[path],\n\t\t\t\t\t\tdirtyChangeSet && dirtyChangeSet[path],\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(MSG.INVALID_PATH + path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected resolvePath(path: string, params?: any): BaseProperty {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\t/**\n\t * Removes the dirtiness flag from this property\n\t * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_flags] - The flags to clean.\n\t * If none are supplied all will be removed.\n\t * @private\n\t */\n\t_cleanDirty(in_flags) {\n\t\tthis._setDirtyFlags(\n\t\t\tin_flags === undefined ? MODIFIED_STATE_FLAGS.CLEAN : this._getDirtyFlags() & ~in_flags,\n\t\t);\n\t}\n\n\t/**\n\t * Removes the dirtiness flag from this property and recursively from all of its children\n\t *\n\t * @param in_flags - The flags to clean. If none are supplied all will be removed.\n\t */\n\tcleanDirty(in_flags: MODIFIED_STATE_FLAGS) {\n\t\tvar dirtyChildren = this._getDirtyChildren(in_flags);\n\t\tfor (const dirtyChild of dirtyChildren) {\n\t\t\tconst child = this.get(dirtyChild, {\n\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t});\n\t\t\tchild.cleanDirty(in_flags);\n\t\t\tchild._cleanDirty(in_flags);\n\t\t}\n\n\t\t// after all paths are clean, we are also clean!\n\t\tthis._cleanDirty(in_flags);\n\t}\n\n\t/**\n\t * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n\t * application for runtime scene updates.\n\t *\n\t * @param in_dirtinessType - The type of dirtiness to check for. By default this is DIRTY\n\t * @returns Is the property dirty?\n\t */\n\t_isDirty(in_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY): boolean {\n\t\treturn !!(this._getDirtyFlags() & in_dirtinessType);\n\t}\n\n\t/**\n\t * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n\t * application for runtime scene updates.\n\t *\n\t * @returns True if the property is dirty. False otherwise.\n\t */\n\tisDirty(): boolean {\n\t\treturn this._isDirty();\n\t}\n\n\t/**\n\t * The property has pending changes in the current ChangeSet.\n\t * @returns True if the property has pending changes. False otherwise.\n\t */\n\thasPendingChanges(): boolean {\n\t\treturn this._isDirty(MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\t}\n\n\t/**\n\t * Returns the ChangeSet of all sub-properties\n\t *\n\t * @returns The serialized changes\n\t */\n\tgetPendingChanges(): ChangeSet {\n\t\tvar serialized = this._serialize(\n\t\t\ttrue,\n\t\t\tfalse,\n\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t);\n\t\treturn new ChangeSet(serialized);\n\t}\n\n\t/**\n\t * Get the id of this property\n\t *\n\t * @returns The id of the property\n\t */\n\tgetId(): string | undefined {\n\t\treturn this._id;\n\t}\n\n\t/**\n\t * Sets the checkedOutRepositoryInfo.\n\t * @param {property-properties.CheckoutView~CheckedOutRepositoryInfo} value - The checkedOut repository info.\n\t * @protected\n\t */\n\t_setCheckoutView(value) {\n\t\tthis._checkoutView = value;\n\t}\n\n\t/**\n\t * Returns the checkoutView\n\t * @return {property-properties.CheckoutView} - the checkout view\n\t */\n\t_getCheckoutView() {\n\t\tlet checkedOutRepositoryInfo = this._getCheckedOutRepositoryInfo();\n\t\treturn checkedOutRepositoryInfo ? checkedOutRepositoryInfo.getCheckoutView() : undefined;\n\t}\n\n\t/**\n\t * Returns the checkedOutRepositoryInfo.\n\t * @return {property-properties.CheckoutView~CheckedOutRepositoryInfo} The checkedOut repository info.\n\t * @protected\n\t */\n\t_getCheckedOutRepositoryInfo() {\n\t\tif (!this._parent) {\n\t\t\treturn this._checkedOutRepositoryInfo;\n\t\t} else {\n\t\t\treturn this.getRoot() ? this.getRoot()._getCheckedOutRepositoryInfo() : undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the Workspace\n\t * @returns The workspace containing the property.\n\t */\n\tgetWorkspace() {\n\t\tconst root = this.getRoot();\n\t\treturn root ? root._tree : undefined;\n\t}\n\n\t/**\n\t * Returns the path segment for a child\n\t *\n\t * @param in_childNode - The child for which the path is returned\n\t *\n\t * @returns The path segment to resolve the child property under this property\n\t */\n\tprotected _getPathSegmentForChildNode(in_childNode: BaseProperty): string {\n\t\treturn PROPERTY_PATH_DELIMITER + PathHelper.quotePathSegmentIfNeeded(in_childNode.getId());\n\t}\n\n\t/**\n\t * Resolves a direct child node based on the given path segment\n\t *\n\t * @param {String} in_segment - The path segment to resolve\n\t * @param {property-properties.PathHelper.TOKEN_TYPES} in_segmentType - The type of segment in the tokenized path\n\t *\n\t * @return {property-properties.BaseProperty|undefined} The child property that has been resolved\n\t */\n\tprotected _resolvePathSegment(in_segment: string, in_segmentType: PathHelper.TOKEN_TYPES) {\n\t\t// Base Properties only support paths separated via dots\n\t\tif (in_segmentType !== PathHelper.TOKEN_TYPES.PATH_SEGMENT_TOKEN) {\n\t\t\tthrow new Error(MSG.INVALID_PATH_TOKEN + in_segment);\n\t\t}\n\n\t\treturn this.get(in_segment, {\n\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t});\n\t}\n\n\t/**\n\t * Set the id of this property\n\t *\n\t * @param {string} in_id - The id for this property\n\t *\n\t * @return {string} the new id\n\t * @private\n\t */\n\t_setId(in_id) {\n\t\tif (!_.isString(in_id) && !_.isNumber(in_id)) {\n\t\t\tthrow new TypeError(MSG.ID_STRING_OR_NUMBER + in_id);\n\t\t}\n\n\t\tif (this._parent !== undefined) {\n\t\t\tthrow new Error(MSG.ID_CHANGE_FOR_PROPERTY_WITH_PARENT + this._id + \" to id: \" + in_id);\n\t\t}\n\n\t\tthis._id = String(in_id);\n\n\t\t// flush caches\n\t\tthis._setDirty();\n\n\t\treturn in_id;\n\t}\n\n\t/**\n\t * Return a clone of this property\n\t * @returns The cloned property\n\t */\n\tclone(): BaseProperty {\n\t\tconst PropertyFactory = Property.PropertyFactory;\n\t\tvar clone = PropertyFactory._createProperty(\n\t\t\tthis.getFullTypeid(),\n\t\t\tnull,\n\t\t\tundefined,\n\t\t\tthis._getScope(),\n\t\t\ttrue,\n\t\t);\n\n\t\t// TODO: this is not very efficient. Clone should be overriden\n\t\t// by the child classes\n\t\tclone.deserialize(this._serialize());\n\t\tclone.cleanDirty(\n\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE |\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n\t\t);\n\t\treturn clone;\n\t}\n\n\t/**\n\t * Returns true if the property is a primitive type\n\t * @return {boolean} true if the property is a primitive type\n\t */\n\tisPrimitiveType() {\n\t\treturn TypeIdHelper.isPrimitiveType(this._typeid);\n\t}\n\n\t/**\n\t * Get a flattened, tree like representation of this object and all of it's\n\t * descendants. The flattening will stop at primitive properties and collections.\n\t *\n\t * For non-leaf nodes, it is possible to access the corresponding node object itself via the\n\t * propertyNode member of the flattened representation (warning, this will overwrite a\n\t * property of this name).\n\t * TODO: Do we want to have this feature or is it to dangerous?\n\t *\n\t * @returns the flat representation\n\t */\n\tprotected _flatten(): object {\n\t\treturn { propertyNode: this };\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string representations\n\t * of the property and of its sub-properties. By default it logs to the console.\n\t * If printFct is not a function, it will default to console.log\n\t * @param {function} [printFct=console.log] - Function to call for printing each property\n\t */\n\tprettyPrint(printFct) {\n\t\tif (typeof printFct !== \"function\") {\n\t\t\tprintFct = console.log;\n\t\t}\n\t\tthis._prettyPrint(\"\", \"\", printFct);\n\t}\n\n\t/**\n\t * Return a JSON representation of the properties and its children.\n\t */\n\tprotected _toJson(): Object {\n\t\tvar json = {\n\t\t\tid: this.getId(),\n\t\t\tcontext: this._context,\n\t\t\ttypeid: this.getTypeid(),\n\t\t\tisConstant: this._isConstant,\n\t\t\tvalue: [],\n\t\t};\n\n\t\tvar ids = this.getIds();\n\t\tfor (const id of ids) {\n\t\t\tjson.value.push(\n\t\t\t\tthis.get(id, {\n\t\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t\t})._toJson(),\n\t\t\t);\n\t\t}\n\n\t\treturn json;\n\t}\n\n\tgetIds(): string[] {\n\t\treturn [];\n\t}\n\n\tget(\n\t\tid: string,\n\t\tparams?: { referenceResolutionMode: REFERENCE_RESOLUTION },\n\t): BaseProperty | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string\n\t * representations of the property and of its sub-properties.\n\t * @param {string} indent - Leading spaces to create the tree representation\n\t * @param {string} externalId - Name of the current property at the upper level. Used for arrays.\n\t * @param {function} printFct - Function to call for printing each property\n\t */\n\t_prettyPrint(indent, externalId, printFct) {\n\t\tvar context = \"\";\n\t\tswitch (this._context) {\n\t\t\tcase \"map\":\n\t\t\t\tcontext = \"Map of \";\n\t\t\t\tbreak;\n\t\t\tcase \"set\":\n\t\t\t\tcontext = \"Set of \";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\tprintFct(indent + externalId + this.getId() + \" (\" + context + this.getTypeid() + \"):\");\n\t\tthis._prettyPrintChildren(indent, printFct);\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string\n\t * representations of the property's sub-properties.\n\t * @param {string} indent - Leading spaces to create the tree representation\n\t * @param {function} printFct - Function to call for printing each property\n\t */\n\t_prettyPrintChildren(indent, printFct) {\n\t\tindent += \" \";\n\t\tvar ids = this.getIds();\n\t\tfor (var i = 0; i < ids.length; i++) {\n\t\t\tthis.get(ids[i], {\n\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t})._prettyPrint(indent, \"\", printFct);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the possible paths from the given from_property to this property. If multiple paths\n\t * through multiple repository references are possible, returns more than one path.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed\n\t * @return {Array<string | undefined>} The paths between from_property and this property\n\t * will return an empty array if trying to get the path from a child repo to a parent repo.\n\t * @private\n\t */\n\t_getPathsThroughRepoRef(in_fromProperty) {\n\t\tvar paths = [];\n\t\tvar that = this;\n\t\tvar referenceProps = [];\n\t\t// get all reference properties in the referenceProps array\n\t\tthis._getCheckoutView()._forEachCheckedOutRepository(function (repoInfo) {\n\t\t\tvar keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n\t\t\tfor (const key of keys) {\n\t\t\t\tif (key) {\n\t\t\t\t\tvar repoRef =\n\t\t\t\t\t\trepoInfo._referencedByPropertyInstanceGUIDs[key]._repositoryReferenceProperties[\n\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t].property;\n\t\t\t\t\tif (that.getRoot() === repoRef.getReferencedRepositoryRoot()) {\n\t\t\t\t\t\treferenceProps.push(repoRef);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// if no repo references point to the root of 'this', we can assume that 'this' is in the\n\t\t// parent repo, which cannot return a useful path.\n\t\tif (referenceProps.length === 0) {\n\t\t\tconsole.warn(MSG.NO_PATH_FROM_CHILD_REPO);\n\t\t\treturn [];\n\t\t}\n\n\t\t// path from root of the child repo to 'this'\n\t\tvar pathInChildRepo = this._getDirectPath(this.getRoot());\n\n\t\t// find possible paths from in_fromProperty to the referenceProps\n\t\t// concatenate each with pathInChildRepo\n\t\tfor (const referenceProp of referenceProps) {\n\t\t\tvar pathInParentRepo = referenceProp.getRelativePath(in_fromProperty);\n\t\t\tif (pathInParentRepo) {\n\t\t\t\tif (pathInChildRepo.length > 0) {\n\t\t\t\t\tpaths.push(pathInParentRepo + \".\" + pathInChildRepo);\n\t\t\t\t} else {\n\t\t\t\t\tpaths.push(pathInParentRepo);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (paths.length > 0) {\n\t\t\treturn paths;\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the possible paths from the given in_fromProperty to this property. If no direct paths\n\t * exist, it returns an indirect path between the two properties.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {string} The path between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getIndirectPath(in_fromProperty) {\n\t\tvar path = [];\n\t\tvar that = this;\n\t\tvar foundPath = undefined;\n\n\t\tfoundPath = in_fromProperty.traverseUp(function (in_node) {\n\t\t\tpath.push(\"../\");\n\t\t\tif (in_node === that) {\n\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t}\n\t\t\tvar directPath = that._getDirectPath(in_node);\n\t\t\tif (directPath) {\n\t\t\t\tpath.push(directPath);\n\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t});\n\t\treturn foundPath === BREAK_TRAVERSAL ? path.join(\"\") : undefined;\n\t}\n\n\t/**\n\t * Returns the path from the given in_fromProperty to this property if a direct path\n\t * exists between the two properties. Otherwise returns undefined.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {string} The path between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getDirectPath(in_fromProperty) {\n\t\tvar path = [];\n\t\tvar foundAncestor = undefined;\n\t\tif (in_fromProperty === this) {\n\t\t\tfoundAncestor = BREAK_TRAVERSAL;\n\t\t} else if (this.getParent()) {\n\t\t\tpath.push(this.getParent()._getPathSegmentForChildNode(this));\n\n\t\t\tfoundAncestor = this.traverseUp(function (in_node) {\n\t\t\t\t// break where we meet the relative reference\n\t\t\t\tif (in_node === in_fromProperty) {\n\t\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t\t}\n\n\t\t\t\tif (in_node.getParent()) {\n\t\t\t\t\tpath.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n\t\t\t\t}\n\n\t\t\t\treturn undefined;\n\t\t\t});\n\t\t}\n\n\t\tif (foundAncestor === BREAK_TRAVERSAL) {\n\t\t\tvar result = path.reverse().join(\"\");\n\n\t\t\t// We don't use a PROPERTY_PATH_DELIMITER at the start of the path\n\t\t\tif (result.startsWith(PROPERTY_PATH_DELIMITER)) {\n\t\t\t\tresult = result.substr(1);\n\t\t\t}\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the possible paths from the given in_fromProperty to this property.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {Array<string>} The paths between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getAllRelativePaths(in_fromProperty) {\n\t\tif (this.getRoot() !== in_fromProperty.getRoot()) {\n\t\t\t// if this and in_fromProperty have different roots, go through a repo ref\n\t\t\t// this is the case where we might have more than one path\n\t\t\treturn this._getPathsThroughRepoRef(in_fromProperty);\n\t\t} else {\n\t\t\tvar directPath = this._getDirectPath(in_fromProperty);\n\t\t\treturn directPath !== undefined\n\t\t\t\t? [directPath]\n\t\t\t\t: [this._getIndirectPath(in_fromProperty)];\n\t\t}\n\t}\n\n\t/**\n\t * Returns the path from the given fron_property to this node if such a path exists.\n\t * If more than one paths exist (as might be the case with multiple repository references\n\t * pointing to the same repository), it will return the first valid path found.\n\t * For example, if you have this structure:\n\t *\n\t * ```\n\t * <code>prop1\n\t * --prop2\n\t * ----prop3</code>\n\t * ```\n\t *\n\t * and call: `<code>prop1.getRelativePath(prop3);</code>`\n\t *\n\t * You will get the path from prop3 to prop1, which would be '../../'\n\t *\n\t * @param in_fromProperty - The property from which the path is computed.\n\t * @returns The path between the given in_fromProperty and this property.\n\t * @throws If in_fromProperty is not a property.\n\t */\n\tgetRelativePath(in_fromProperty: BaseProperty): string {\n\t\tConsoleUtils.assert(\n\t\t\tin_fromProperty instanceof BaseProperty,\n\t\t\tMSG.IN_FROMPROPERTY_MUST_BE_PROPERTY,\n\t\t);\n\t\tvar paths = this._getAllRelativePaths(in_fromProperty) || [];\n\t\tif (paths.length === 0) {\n\t\t\tconsole.warn(\n\t\t\t\tMSG.NO_PATH_BETWEEN +\n\t\t\t\t\tin_fromProperty.getAbsolutePath() +\n\t\t\t\t\t\" and \" +\n\t\t\t\t\tthis.getAbsolutePath(),\n\t\t\t);\n\t\t} else if (paths.length > 1) {\n\t\t\tconsole.warn(\n\t\t\t\tMSG.MORE_THAN_ONE_PATH +\n\t\t\t\t\tin_fromProperty.getAbsolutePath() +\n\t\t\t\t\t\" and \" +\n\t\t\t\t\tthis.getAbsolutePath(),\n\t\t\t);\n\t\t}\n\t\treturn paths[0];\n\t}\n\n\t/**\n\t * Returns the path from the root of the workspace to this node (including a slash at the beginning).\n\t *\n\t * @return {string} The path from the root\n\t */\n\tgetAbsolutePath() {\n\t\tvar that = this;\n\t\tvar referenceProps = [];\n\t\t// get all reference properties pointing to the root the repository containing 'this'\n\t\tif (this._getCheckoutView()) {\n\t\t\tthis._getCheckoutView()._forEachCheckedOutRepository(function (repoInfo) {\n\t\t\t\tvar keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n\t\t\t\tfor (const key of keys) {\n\t\t\t\t\tif (key) {\n\t\t\t\t\t\tlet repoRef = repoInfo._referencedByPropertyInstanceGUIDs[key];\n\t\t\t\t\t\tlet refProperty = undefined;\n\n\t\t\t\t\t\tif (repoRef) {\n\t\t\t\t\t\t\trefProperty = repoRef._repositoryReferenceProperties[key]\n\t\t\t\t\t\t\t\t? repoRef._repositoryReferenceProperties[key].property\n\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet refRoot;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\trefRoot = refProperty ? refProperty.getReferencedRepositoryRoot() : undefined;\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.warn(e.message);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (that.getRoot() === refRoot) {\n\t\t\t\t\t\t\treferenceProps.push(refProperty);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvar path = this.isRoot() ? [] : [this.getParent()._getPathSegmentForChildNode(this)];\n\t\tthis.traverseUp(function (in_node) {\n\t\t\tif (in_node.getParent()) {\n\t\t\t\tpath.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n\t\t\t} else if (referenceProps.length > 0) {\n\t\t\t\t// recursively call getAbsolutePath, removing the '/' at the beginning of the path\n\t\t\t\tpath.push(referenceProps[0].getAbsolutePath(referenceProps[0].getRoot()).slice(1));\n\t\t\t}\n\t\t});\n\t\tvar absolutePath = path.reverse().join(\"\");\n\n\t\t// We don't use the property path separator at the start of the path\n\t\tif (absolutePath.startsWith(PROPERTY_PATH_DELIMITER)) {\n\t\t\tabsolutePath = absolutePath.substr(1);\n\t\t}\n\t\tabsolutePath = \"/\" + absolutePath;\n\n\t\treturn absolutePath;\n\t}\n\n\t/**\n\t * Traverses the property hierarchy upwards until the a node without parent is reached\n\t *\n\t * @param {Function} in_callback - Callback to invoke for each of the parents. The traversal can be stopped\n\t * by returning BaseProperty.BREAK_TRAVERSAL\n\t * @throws if in_callback is not a function.\n\t * @return {string|undefined} Returns BaseProperty.BREAK_TRAVERSAL, if the traversal didn't reach the root,\n\t * otherwise `undefined`.\n\t */\n\ttraverseUp(in_callback) {\n\t\tConsoleUtils.assert(_.isFunction(in_callback), MSG.CALLBACK_NOT_FCT);\n\t\tif (this._parent) {\n\t\t\tvar result = in_callback(this._parent);\n\t\t\treturn result !== BREAK_TRAVERSAL\n\t\t\t\t? this._parent.traverseUp(in_callback)\n\t\t\t\t: BREAK_TRAVERSAL;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * @type {string} Constant to stop the traversal in traverseUp and traverseDown functions\n\t */\n\tstatic BREAK_TRAVERSAL = BREAK_TRAVERSAL;\n\n\t/**\n\t * Returns all children which are dirty (this only returns direct children, it does not travers recursively)\n\t *\n\t * @param in_flags - Which types of dirtiness are we looking for? If none is given, all types are regarded as dirty.\n\t * @returns The list of keys identifying the dirty children.\n\t */\n\tprotected _getDirtyChildren(in_flags: MODIFIED_STATE_FLAGS): string[] {\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the root of the property hierarchy\n\t * @returns The root property\n\t */\n\tgetRoot(): BaseProperty {\n\t\treturn this._parent ? this._parent.getRoot() : this;\n\t}\n\n\t/**\n\t * Traverses all children in the child hierarchy\n\t * TODO: How should this behave for collections?\n\t *\n\t * @param in_callback - Callback to invoke for every child\n\t * @param in_pathFromTraversalStart - Path from the root of the traversal to this node\n\t * @returns Returns BaseProperty.BREAK_TRAVERSAL if the traversal has been interrupted, otherwise `undefined`.\n\t * @private\n\t */\n\t_traverse(in_callback: Function, in_pathFromTraversalStart: string): string | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Deserialize takes a currently existing property and sets it to the hierarchy described in the normalized\n\t * ChangeSet passed as parameter. It will return a ChangeSet that describes the difference between the current state\n\t * of the property and the passed in normalized property\n\t *\n\t * @param in_serializedObj - The serialized changeset to apply to this node. This has to be a normalized change-set\n\t * (only containing insertions and property assignments. Deletes and Modify must not appear)\n\t * @param in_filteringOptions - The filtering options to consider while deserializing the property.\n\t * @param in_createChangeSet - Should a changeset be created for this deserialization?\n\t * @param in_reportToView - Usually the dirtying should be reported to the view and trigger a modified event there.\n\t * This can be prevented via this flag.\n\t * @throws if called on a read-only property.\n\t * @returns ChangeSet with the changes that actually were performed during the deserialization\n\t */\n\tdeserialize(\n\t\tin_serializedObj: SerializedChangeSet,\n\t\tin_filteringOptions = {},\n\t\tin_createChangeSet = true,\n\t\tin_reportToView = false,\n\t): SerializedChangeSet {\n\t\tthis._checkIsNotReadOnly(false);\n\t\treturn this._deserialize(\n\t\t\tin_serializedObj,\n\t\t\tin_reportToView,\n\t\t\tin_filteringOptions,\n\t\t\tin_createChangeSet,\n\t\t);\n\t}\n\n\t/**\n\t * Sets the property to the state in the given normalized changeset\n\t *\n\t * @param in_serializedObj - The serialized changeset to apply. This\n\t * has to be a normalized change-set (only containing inserts. Removes and Modifies are forbidden).\n\t * @param in_reportToView - Usually the dirtying should be reported to the view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @param in_filteringOptions - The filtering options to consider while deserializing the property.\n\t * @param in_createChangeSet - Should a changeset be created for this deserialization?\n\t * @returns ChangeSet with the changes that actually were performed during the deserialization.\n\t */\n\t_deserialize(\n\t\tin_serializedObj: SerializedChangeSet,\n\t\tin_reportToView: boolean,\n\t\tin_filteringOptions = {},\n\t\tin_createChangeSet = true,\n\t): SerializedChangeSet {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Serialize the property into a changeSet\n\t *\n\t * @param in_dirtyOnly - Only include dirty entries in the serialization\n\t * @param in_includeRootTypeid - Include the typeid of the root of the hierarchy\n\t * @param in_dirtinessType - The type of dirtiness to use when reporting dirty changes. By default this is\n\t * `PENDING_CHANGE`.\n\t * @param in_includeReferencedRepositories - If this is set to true, the serialize\n\t * function will descend into referenced repositories.\n\t * WARNING: if there are loops in the references this can result in an infinite loop.\n\t *\n\t * @returns The serialized representation of this property\n\t */\n\tprotected _serialize(\n\t\tin_dirtyOnly: boolean = false,\n\t\tin_includeRootTypeid: boolean = false,\n\t\tin_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\tin_includeReferencedRepositories: boolean = false,\n\t): object {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Serialize the property\n\t *\n\t * @param in_options - Options for the serialization\n\t * @throws if in_options is defined but is not an object.\n\t * @returns The serialized representation of this property\n\t */\n\tserialize(in_options: ISerializeOptions) {\n\t\tvar opts = {\n\t\t\tdirtyOnly: false,\n\t\t\tincludeRootTypeid: false,\n\t\t\tdirtinessType: MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\tincludeReferencedRepositories: false,\n\t\t};\n\t\tif (in_options !== undefined) {\n\t\t\tif (typeof in_options !== \"object\") {\n\t\t\t\tthrow new TypeError(MSG.SERIALIZE_TAKES_OBJECT);\n\t\t\t}\n\t\t\tObject.assign(opts, in_options);\n\t\t}\n\n\t\treturn this._serialize(\n\t\t\topts.dirtyOnly,\n\t\t\topts.includeRootTypeid,\n\t\t\topts.dirtinessType,\n\t\t\topts.includeReferencedRepositories,\n\t\t);\n\t}\n\n\t/**\n\t * Indicate that all static members have been added to the property\n\t *\n\t * This function is invoked by the PropertyFactory once all static members have been added to the template\n\t * @protected\n\t */\n\t_signalAllStaticMembersHaveBeenAdded() {}\n\n\t/**\n\t * Tests whether this property may be modified\n\t * @param {checkConstant} in_checkConstant - Check if is readonly constant property\n\t */\n\t_checkIsNotReadOnly(in_checkConstant) {\n\t\tif (this._isConstant && in_checkConstant) {\n\t\t\tthrow new Error(MSG.MODIFICATION_OF_CONSTANT_PROPERTY);\n\t\t}\n\n\t\tvar root = this.getRoot();\n\t\tif (root && root._getCheckedOutRepositoryInfo) {\n\t\t\tvar repositoryInfo = root._getCheckedOutRepositoryInfo();\n\n\t\t\tif (repositoryInfo && repositoryInfo._isReadOnly()) {\n\t\t\t\tthrow new Error(MSG.MODIFICATION_OF_REFERENCED_PROPERTY);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Set a property and its children as constants (readonly properties)\n\t */\n\t_setAsConstant() {\n\t\tthis._isConstant = true;\n\n\t\tif (this instanceof Property.AbstractStaticCollectionProperty) {\n\t\t\t// Set all children properties as constants\n\t\t\tthis.traverseDown(function (prop) {\n\t\t\t\tprop._isConstant = true;\n\t\t\t});\n\t\t}\n\t}\n\n\ttraverseDown(arg0: (prop: any) => void) {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\t/**\n\t * Unsets a property and its children as constants\n\t */\n\t_unsetAsConstant() {\n\t\t// Deleting this property will make the object\n\t\t// fall back to the entry in the prototype (false)\n\t\tdelete this._isConstant;\n\n\t\tif (this instanceof Property.AbstractStaticCollectionProperty) {\n\t\t\t// Unset all children properties as constants\n\t\t\tthis.traverseDown(function (prop) {\n\t\t\t\t// Deleting this property will make the object\n\t\t\t\t// fall back to the entry in the prototype (false)\n\t\t\t\tdelete prop._isConstant;\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Dirties this node and all of its children\n\t *\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @private\n\t */\n\t_setDirtyTree(in_reportToView = true) {\n\t\tthis._traverse(function (node) {\n\t\t\t// Set all nodes to dirty, but prevent recursive updates up to the repository for the individual changes\n\t\t\tnode._setDirty(false);\n\t\t}, \"\");\n\t\t// Now make one report\n\t\tif (in_reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Determines whether a property can be inserted as a child of another property\n\t * This does NOT validate if the parent can accept the child property, it only validates if\n\t * the child property can be inserted in the parent.\n\t * @param in_targetParent - The parent property\n\t * @throws if the property can not be inserted\n\t */\n\t_validateInsertIn(in_targetParent: BaseProperty) {\n\t\t// A root?\n\t\tif (this._getCheckedOutRepositoryInfo() !== undefined) {\n\t\t\tthrow new Error(MSG.INSERTED_ROOT_ENTRY);\n\t\t}\n\n\t\t// Would create a cycle?\n\t\tlet parent = in_targetParent;\n\t\twhile (parent !== undefined) {\n\t\t\tif (parent === this) {\n\t\t\t\tthrow new Error(MSG.INSERTED_IN_OWN_CHILDREN);\n\t\t\t}\n\t\t\tparent = parent._parent;\n\t\t}\n\n\t\t// Already a child?\n\t\tif (this._parent !== undefined || this._getCheckoutView() !== undefined) {\n\t\t\tthrow new Error(MSG.INSERTED_ENTRY_WITH_PARENT);\n\t\t}\n\t}\n\n\t/**\n\t * TODO: Remove it later. Kept not to modify tests\n\t *\n\t * Validates if the property and all its children are covered by the given list of paths.\n\t *\n\t * This function is expected to be used before inserting the property into its parent. That is the\n\t * reason for asking for the base path. This is the full path expected for this property.\n\t *\n\t * This function uses the canonical representation of the property paths.\n\t *\n\t * @param in_basePath - The property's absolute path in canonical form\n\t * @param in_paths - The array of paths that we wonder if it covers the property and its children\n\t * @returns If the property and all its children are included in the paths\n\t * @private\n\t */\n\t_coveredByPaths(in_basePath: string, in_paths: string[]): boolean {\n\t\t// First, get the coverage of the base property\n\t\tconst coverage = PathHelper.getPathCoverage(in_basePath, in_paths);\n\n\t\tif (coverage.coverageExtent === PathHelper.CoverageExtent.FULLY_COVERED) {\n\t\t\treturn true;\n\t\t} else if (coverage.coverageExtent === PathHelper.CoverageExtent.PARTLY_COVERED) {\n\t\t\t// We know that part of the property is covered, if we don't find any actual children not covered\n\t\t\t// by the paths it's because we're fully covered.\n\t\t\tif (this.isPrimitiveType()) {\n\t\t\t\tconst childrenIds = this.getContext() === \"single\" ? [] : this.getIds();\n\t\t\t\tfor (const childId of childrenIds) {\n\t\t\t\t\tconst childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n\t\t\t\t\tif (\n\t\t\t\t\t\tPathHelper.getPathCoverage(childPath, coverage.pathList).coverageExtent ===\n\t\t\t\t\t\tPathHelper.CoverageExtent.UNCOVERED\n\t\t\t\t\t) {\n\t\t\t\t\t\t// this children is outside the list of paths\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst childrenIds = this.getIds();\n\t\t\t\tfor (const childId of childrenIds) {\n\t\t\t\t\tconst child = this.get(childId);\n\t\t\t\t\tconst childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n\t\t\t\t\tif (!child._coveredByPaths(childPath, coverage.pathList)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tget _properties() {\n\t\treturn this._flatten();\n\t}\n}\n\n(BaseProperty as any).prototype._isConstant = false;\n(BaseProperty as any).prototype._context = \"single\";\n(BaseProperty as any).prototype._typeid = \"BaseProperty\";\n"]}
|
|
1
|
+
{"version":3,"file":"baseProperty.js","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint accessor-pairs: [2, { \"getWithoutSet\": false }] */\n\nimport {\n\tChangeSet,\n\tPathHelper,\n\tSerializedChangeSet,\n\tTypeIdHelper,\n} from \"@fluid-experimental/property-changeset\";\nimport { constants, ConsoleUtils } from \"@fluid-experimental/property-common\";\nimport _ from \"lodash\";\n\nimport { LazyLoadedProperties as Property } from \"./lazyLoadedProperties\";\n\nconst { MSG, PROPERTY_PATH_DELIMITER } = constants;\nconst BREAK_TRAVERSAL = \"BREAK\";\n\n/**\n * Determines in which cases a reference will automatically be resolved\n */\nenum REFERENCE_RESOLUTION {\n\t/** The resolution will always automatically follow references */\n\tALWAYS,\n\t/** If a reference is the last entry during the path resolution, it will not automatically be resolved */\n\tNO_LEAFS,\n\t/** References are never automatically resolved */\n\tNEVER,\n}\n\n/**\n * Used to indicate the state of a property. These flags can be connected via OR.\n */\nenum MODIFIED_STATE_FLAGS {\n\t/** No changes to this property at the moment */\n\tCLEAN,\n\t/** The property is marked as changed in the currently pending ChangeSet */\n\tPENDING_CHANGE,\n\t/** The property has been modified and the result has not yet been reported to the application for scene updates */\n\tDIRTY,\n}\n\n/**\n * Token Types\n * @enum Object\n * Type of the token in the path string\n */\nconst PATH_TOKENS = {\n\t/** A / at the beginning of the path */\n\tROOT: { token: \"ROOT\" },\n\t/** A * that indicates a dereferencing operation */ // note: reversed!\n\tREF: { token: \"REF\" },\n\t/** A ../ that indicates one step above the current path */\n\tUP: { token: \"UP\" },\n};\n\ninterface IBasePropertyParams {\n\t/** id of the property */\n\tid?: string;\n\t/** The type unique identifier */\n\ttypeid?: string;\n\t/** The length of the property. Only valid if the property is an array, otherwise the length defaults to 1 */\n\tlength: number;\n\t/** The type of property this template represents i.e. single, array, map, set. */\n\tcontext: string;\n\n\t// TODO: UNUSED PARAMETER ??\n\t/** List of property templates that are used to define children properties */\n\tproperties: BaseProperty[];\n\n\t// TODO: UNUSED PARAMETER ??\n\t/** List of property template typeids that this PropertyTemplate inherits from */\n\tinherits: string[];\n}\n\ninterface ISerializeOptions {\n\t/** Only include dirty entries in the serialization */\n\tdirtyOnly?: boolean;\n\t/** Include the typeid of the root of the hierarchy */\n\tincludeRootTypeid?: boolean;\n\t/** The type of dirtiness to use when reporting dirty changes. */\n\tdirtinessType?: MODIFIED_STATE_FLAGS;\n\t/**\n\t * If this is set to true, the serialize\n\t * function will descend into referenced repositories. WARNING: if there are loops in the references\n\t * this can result in an infinite loop\n\t */\n\tincludeReferencedRepositories?: boolean;\n}\n\n/**\n * The options to selectively create only a subset of a property.\n *\n * For now the filtering options are propagated by many functions, but are actually used only by\n * functions that create properties from schemas. It is then possible to create only a subset of\n * the properties of a schema by providing a restricted list of paths.\n *\n * Thus, with the filtering options, it is NOT possible to prevent a part of a ChangeSet from being\n * processed (in `applyChangeSet()` for example), it is NOT possible to prevent a property from being\n * created by a direct call to a function like `deserialize()` or `createProperty()`.\n * @internal\n */\nexport abstract class BaseProperty {\n\tprotected _id: string | undefined;\n\tprotected _isConstant: boolean;\n\tprotected _dirty: MODIFIED_STATE_FLAGS;\n\tprotected _typeid: string;\n\tprotected _context: string;\n\tprotected _parent: BaseProperty | undefined;\n\tprotected _noDirtyInBase: boolean;\n\n\t_tree: any;\n\t_checkoutView: any;\n\t_checkedOutRepositoryInfo: any;\n\n\tconstructor(in_params: IBasePropertyParams) {\n\t\t// Pre-conditions\n\t\t// This test has been disabled for performance reasons, if it would be incorrect,\n\t\t// the next line will throw anyways\n\t\t// ConsoleUtils.assert(in_params, MSG.PROP_CONSTRUCTOR_EXPECTS_OBJECTS);\n\n\t\tif (this._id !== in_params.id) {\n\t\t\tthis._id = in_params.id;\n\t\t}\n\n\t\t// Makes sure context value is fine\n\t\t// This assertion has been disabled for performance reasons. This is not a user facing\n\t\t// constructor function and therefore we rely on PropertyFactory to correctly provide the context.\n\t\t/* ConsoleUtils.assert(!in_params.context || in_params.context === this._context,\n MSG.CONTEXT_NOT_AS_EXPECTED + this._context + ' != ' + in_params.context); */\n\n\t\t// Sets typeid if default value is not fine\n\t\tlet typeId = in_params.typeid || \"BaseProperty\";\n\t\tif (typeId !== this._typeid) {\n\t\t\tthis._typeid = typeId;\n\t\t}\n\n\t\tthis._parent = undefined;\n\t\t// internal management\n\t\tif (!this._noDirtyInBase) {\n\t\t\tthis._dirty = MODIFIED_STATE_FLAGS.CLEAN;\n\t\t}\n\t}\n\n\tstatic MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS;\n\tstatic REFERENCE_RESOLUTION = REFERENCE_RESOLUTION;\n\tstatic PATH_TOKENS = PATH_TOKENS;\n\n\t/**\n\t * @returns The typeid of this property\n\t */\n\tgetTypeid(): string {\n\t\treturn this._typeid;\n\t}\n\n\t/**\n\t * @returns The context of this property\n\t */\n\tgetContext(): string {\n\t\treturn this._context;\n\t}\n\n\t/**\n\t * Get the scope to which this property belongs to.\n\t * @returns The guid representing the scope in which the\n\t * property belongs to\n\t */\n\tprotected _getScope(): string | undefined {\n\t\treturn this._parent ? this.getRoot()._getScope() : undefined;\n\t}\n\n\t/**\n\t * Returns the full property type identifier for the ChangeSet including the enum type id\n\t * @param in_hideCollection - if true the collection type (if applicable) will be omitted since that is not\n\t * applicable here, this param is ignored.\n\t * @returns The typeid\n\t */\n\tgetFullTypeid(in_hideCollection = false): string {\n\t\treturn this._typeid;\n\t}\n\n\t/**\n\t * Updates the parent for the property\n\t *\n\t * @param in_property - The parent property\n\t */\n\tprotected _setParent(in_property: BaseProperty) {\n\t\tthis._parent = in_property;\n\n\t\t// If the property is dirty but not its parent, dirty the parent. In cases like named properties\n\t\t// and default values, a parent is set after a value is set; we get a case where the\n\t\t// property is dirty but not its parent and the change is not included in a changeSet.\n\t\tif (this._parent && this._isDirty() && !this._parent._isDirty()) {\n\t\t\tthis._parent._setDirty(false, this);\n\t\t}\n\t}\n\n\t/**\n\t * Is this property the root of the property set tree?\n\t *\n\t * @returns True if it is a root, otherwise false.\n\t */\n\tisRoot(): boolean {\n\t\t// This checks, whether this is the root of a CheckOutView\n\t\t// (all other properties should have a parent property)\n\t\treturn this._parent === undefined;\n\t}\n\n\t/**\n\t * Is this property the ancestor of in_otherProperty?\n\t * Note: A property is not considered an ancestor of itself\n\t * @param in_otherProperty - possible descendant\n\t * @throws if in_otherProperty is not defined.\n\t * @returns True if it is a ancestor, otherwise false.\n\t */\n\tisAncestorOf(in_otherProperty: BaseProperty): boolean {\n\t\tConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n\t\tvar parent = in_otherProperty.getParent();\n\t\twhile (parent) {\n\t\t\tif (parent === this) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\tparent = parent.getParent();\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Is this property the descendant of in_otherProperty?\n\t * Note: A property is not considered a descendant of itself\n\t * @param in_otherProperty - possible ancestor\n\t * @throws if in_otherProperty is not defined.\n\t * @returns True if it is a descendant, otherwise false.\n\t */\n\tisDescendantOf(in_otherProperty: BaseProperty): boolean {\n\t\tConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n\t\treturn in_otherProperty.isAncestorOf(this);\n\t}\n\n\t/**\n\t * Is this property a leaf node with regard to flattening?\n\t *\n\t * TODO: Which semantics should flattening have? It stops at primitive types and collections?\n\t *\n\t * @returns True if it is a leaf with regard to flattening\n\t */\n\t_isFlattenLeaf(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get the parent of this property\n\t *\n\t * @returns The parent of this property (or undefined if none exist)\n\t */\n\tgetParent(): BaseProperty | undefined {\n\t\treturn this._parent;\n\t}\n\n\t/**\n\t * checks whether the property is dynamic (only properties inherting from NodeProperty are)\n\t * @returns True if it is a dynamic property.\n\t */\n\tisDynamic() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Sets the property as dirty and/or pending. This will add one or both flags if not already set and will\n\t * do the same for its parent. This does not clear any flag, it only sets.\n\t *\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @param in_callingChild - The child which is dirtying its parent\n\t * @param in_flags - The flags to set.\n\t * @private\n\t */\n\t_setDirty(\n\t\tin_reportToView = true,\n\t\tin_callingChild: BaseProperty = undefined,\n\t\tin_flags: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\tMODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t) {\n\t\tif (in_flags === undefined) {\n\t\t\tin_flags = MODIFIED_STATE_FLAGS.DIRTY | MODIFIED_STATE_FLAGS.PENDING_CHANGE;\n\t\t}\n\t\tvar reportToView = in_reportToView;\n\t\tif (reportToView === undefined) {\n\t\t\treportToView = true;\n\t\t}\n\t\t// We only update the flags upwards in the tree, when the corresponding nodes are not already flagged\n\t\tvar oldFlags = this._getDirtyFlags();\n\t\tif ((oldFlags & in_flags) !== in_flags) {\n\t\t\t// only dirty once until clean.\n\t\t\tthis._setDirtyFlags(oldFlags | in_flags);\n\n\t\t\t// Report dirtiness upwards in the hierarchy\n\t\t\tif (this._parent) {\n\t\t\t\tthis._parent._setDirty(reportToView, this, in_flags);\n\t\t\t\treportToView = false;\n\t\t\t}\n\t\t}\n\t\tif (reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the dirty flags for this property\n\t * @param in_flags - The dirty flags\n\t */\n\t_setDirtyFlags(in_flags: MODIFIED_STATE_FLAGS) {\n\t\tthis._dirty = in_flags;\n\t}\n\n\t/**\n\t * Gets the dirty flags for this property\n\t * @returns The dirty flags\n\t */\n\t_getDirtyFlags(): MODIFIED_STATE_FLAGS {\n\t\treturn this._dirty;\n\t}\n\n\t/**\n\t * Helper function, which reports the fact that a property has been dirtied to the checkout view\n\t * @private\n\t */\n\t// TODO: Cleaner way to make the property tree aware of the DDS hosting it.\n\t// Currently, this._tree is set in SharedPropertyTree constructor.\n\t_reportDirtinessToView() {\n\t\tlet currentNode: BaseProperty = this;\n\n\t\twhile (currentNode._parent) {\n\t\t\tcurrentNode = currentNode._parent;\n\t\t}\n\n\t\tif (\n\t\t\tcurrentNode._tree &&\n\t\t\tcurrentNode._tree.notificationDelayScope === 0 &&\n\t\t\tcurrentNode._isDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY)\n\t\t) {\n\t\t\tcurrentNode._tree._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Modifies the property according to the given changeset\n\t *\n\t * @param in_changeSet - The changeset to apply\n\t * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions] - The filtering options to\n\t * consider while applying the ChangeSet.\n\t * @throws if in_changeSet is invalid.\n\t */\n\tapplyChangeSet(in_changeSet: SerializedChangeSet) {\n\t\tthis._checkIsNotReadOnly(false);\n\n\t\t// We just forward the call to the internal function\n\t\tthis._applyChangeset(in_changeSet, true);\n\t}\n\n\t/**\n\t * Modifies the property according to the given changeset\n\t *\n\t * Internal function.\n\t *\n\t * @param in_changeSet - The changeset to apply\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view and trigger a\n\t * modified event there. When batching updates, this can be prevented via this flag.\n\t * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions] - The filtering options to\n\t * consider while applying the ChangeSet. For now it is only used to control property creation, to prevent\n\t * properties from being created outside the checked out paths. It does not validate that a value inside the\n\t * ChangeSet is outside those paths.\n\t */\n\t_applyChangeset(\n\t\tin_changeSet: SerializedChangeSet,\n\t\tin_reportToView = true,\n\t\tin_filteringOptions = undefined,\n\t) {\n\t\tvar typeids = _.keys(in_changeSet);\n\t\tfor (const typeid of typeids) {\n\t\t\tif (ChangeSet.isReservedKeyword(typeid)) {\n\t\t\t\tcontinue; // Ignore the special keys\n\t\t\t}\n\n\t\t\tvar paths = _.keys(in_changeSet[typeid]);\n\t\t\tfor (const path of paths) {\n\t\t\t\tvar property = this.resolvePath(path, {\n\t\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t\t});\n\t\t\t\tif (property) {\n\t\t\t\t\tproperty._applyChangeset(in_changeSet[typeid][path], false);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(MSG.INVALID_PATH + path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (in_reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Re-apply dirty flags from changesets\n\t *\n\t * Internal function.\n\t *\n\t * @param in_pendingChangeSet - The pending changeset to apply\n\t * @param in_dirtyChangeSet - The dirty changeset to apply\n\t * @throws if changeset arguments are invalid.\n\t */\n\t_reapplyDirtyFlags(\n\t\tin_pendingChangeSet: SerializedChangeSet,\n\t\tin_dirtyChangeSet: SerializedChangeSet,\n\t) {\n\t\tthis._checkIsNotReadOnly(false);\n\t\t// Here we must walk both changesets in parallel. Sometimes there will be only an entry in one\n\t\t// changeset, sometimes only one in the other changeset, sometimes one in both.\n\t\tconst typeids = _.keys(in_pendingChangeSet).concat(_.keys(in_dirtyChangeSet));\n\t\tfor (const typeid of typeids) {\n\t\t\tif (ChangeSet.isReservedKeyword(typeid)) {\n\t\t\t\tcontinue; // Ignore the special keys\n\t\t\t}\n\t\t\tconst pendingChangeSet = in_pendingChangeSet && in_pendingChangeSet[typeid];\n\t\t\tconst dirtyChangeSet = in_dirtyChangeSet && in_dirtyChangeSet[typeid];\n\n\t\t\tconst paths = _.keys(pendingChangeSet).concat(_.keys(dirtyChangeSet));\n\t\t\tfor (const path of paths) {\n\t\t\t\tlet property = this.resolvePath(path);\n\t\t\t\tif (property) {\n\t\t\t\t\tproperty._reapplyDirtyFlags(\n\t\t\t\t\t\tpendingChangeSet && pendingChangeSet[path],\n\t\t\t\t\t\tdirtyChangeSet && dirtyChangeSet[path],\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(MSG.INVALID_PATH + path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected resolvePath(path: string, params?: any): BaseProperty {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\t/**\n\t * Removes the dirtiness flag from this property\n\t * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_flags] - The flags to clean.\n\t * If none are supplied all will be removed.\n\t * @private\n\t */\n\t_cleanDirty(in_flags) {\n\t\tthis._setDirtyFlags(\n\t\t\tin_flags === undefined ? MODIFIED_STATE_FLAGS.CLEAN : this._getDirtyFlags() & ~in_flags,\n\t\t);\n\t}\n\n\t/**\n\t * Removes the dirtiness flag from this property and recursively from all of its children\n\t *\n\t * @param in_flags - The flags to clean. If none are supplied all will be removed.\n\t */\n\tcleanDirty(in_flags: MODIFIED_STATE_FLAGS) {\n\t\tvar dirtyChildren = this._getDirtyChildren(in_flags);\n\t\tfor (const dirtyChild of dirtyChildren) {\n\t\t\tconst child = this.get(dirtyChild, {\n\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t});\n\t\t\tchild.cleanDirty(in_flags);\n\t\t\tchild._cleanDirty(in_flags);\n\t\t}\n\n\t\t// after all paths are clean, we are also clean!\n\t\tthis._cleanDirty(in_flags);\n\t}\n\n\t/**\n\t * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n\t * application for runtime scene updates.\n\t *\n\t * @param in_dirtinessType - The type of dirtiness to check for. By default this is DIRTY\n\t * @returns Is the property dirty?\n\t */\n\t_isDirty(in_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY): boolean {\n\t\treturn !!(this._getDirtyFlags() & in_dirtinessType);\n\t}\n\n\t/**\n\t * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n\t * application for runtime scene updates.\n\t *\n\t * @returns True if the property is dirty. False otherwise.\n\t */\n\tisDirty(): boolean {\n\t\treturn this._isDirty();\n\t}\n\n\t/**\n\t * The property has pending changes in the current ChangeSet.\n\t * @returns True if the property has pending changes. False otherwise.\n\t */\n\thasPendingChanges(): boolean {\n\t\treturn this._isDirty(MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\t}\n\n\t/**\n\t * Returns the ChangeSet of all sub-properties\n\t *\n\t * @returns The serialized changes\n\t */\n\tgetPendingChanges(): ChangeSet {\n\t\tvar serialized = this._serialize(\n\t\t\ttrue,\n\t\t\tfalse,\n\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t);\n\t\treturn new ChangeSet(serialized);\n\t}\n\n\t/**\n\t * Get the id of this property\n\t *\n\t * @returns The id of the property\n\t */\n\tgetId(): string | undefined {\n\t\treturn this._id;\n\t}\n\n\t/**\n\t * Sets the checkedOutRepositoryInfo.\n\t * @param {property-properties.CheckoutView~CheckedOutRepositoryInfo} value - The checkedOut repository info.\n\t * @protected\n\t */\n\t_setCheckoutView(value) {\n\t\tthis._checkoutView = value;\n\t}\n\n\t/**\n\t * Returns the checkoutView\n\t * @return {property-properties.CheckoutView} - the checkout view\n\t */\n\t_getCheckoutView() {\n\t\tlet checkedOutRepositoryInfo = this._getCheckedOutRepositoryInfo();\n\t\treturn checkedOutRepositoryInfo ? checkedOutRepositoryInfo.getCheckoutView() : undefined;\n\t}\n\n\t/**\n\t * Returns the checkedOutRepositoryInfo.\n\t * @return {property-properties.CheckoutView~CheckedOutRepositoryInfo} The checkedOut repository info.\n\t * @protected\n\t */\n\t_getCheckedOutRepositoryInfo() {\n\t\tif (!this._parent) {\n\t\t\treturn this._checkedOutRepositoryInfo;\n\t\t} else {\n\t\t\treturn this.getRoot() ? this.getRoot()._getCheckedOutRepositoryInfo() : undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the Workspace\n\t * @returns The workspace containing the property.\n\t */\n\tgetWorkspace() {\n\t\tconst root = this.getRoot();\n\t\treturn root ? root._tree : undefined;\n\t}\n\n\t/**\n\t * Returns the path segment for a child\n\t *\n\t * @param in_childNode - The child for which the path is returned\n\t *\n\t * @returns The path segment to resolve the child property under this property\n\t */\n\tprotected _getPathSegmentForChildNode(in_childNode: BaseProperty): string {\n\t\treturn PROPERTY_PATH_DELIMITER + PathHelper.quotePathSegmentIfNeeded(in_childNode.getId());\n\t}\n\n\t/**\n\t * Resolves a direct child node based on the given path segment\n\t *\n\t * @param {String} in_segment - The path segment to resolve\n\t * @param {property-properties.PathHelper.TOKEN_TYPES} in_segmentType - The type of segment in the tokenized path\n\t *\n\t * @return {property-properties.BaseProperty|undefined} The child property that has been resolved\n\t */\n\tprotected _resolvePathSegment(in_segment: string, in_segmentType: PathHelper.TOKEN_TYPES) {\n\t\t// Base Properties only support paths separated via dots\n\t\tif (in_segmentType !== PathHelper.TOKEN_TYPES.PATH_SEGMENT_TOKEN) {\n\t\t\tthrow new Error(MSG.INVALID_PATH_TOKEN + in_segment);\n\t\t}\n\n\t\treturn this.get(in_segment, {\n\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t});\n\t}\n\n\t/**\n\t * Set the id of this property\n\t *\n\t * @param {string} in_id - The id for this property\n\t *\n\t * @return {string} the new id\n\t * @private\n\t */\n\t_setId(in_id) {\n\t\tif (!_.isString(in_id) && !_.isNumber(in_id)) {\n\t\t\tthrow new TypeError(MSG.ID_STRING_OR_NUMBER + in_id);\n\t\t}\n\n\t\tif (this._parent !== undefined) {\n\t\t\tthrow new Error(MSG.ID_CHANGE_FOR_PROPERTY_WITH_PARENT + this._id + \" to id: \" + in_id);\n\t\t}\n\n\t\tthis._id = String(in_id);\n\n\t\t// flush caches\n\t\tthis._setDirty();\n\n\t\treturn in_id;\n\t}\n\n\t/**\n\t * Return a clone of this property\n\t * @returns The cloned property\n\t */\n\tclone(): BaseProperty {\n\t\tconst PropertyFactory = Property.PropertyFactory;\n\t\tvar clone = PropertyFactory._createProperty(\n\t\t\tthis.getFullTypeid(),\n\t\t\tnull,\n\t\t\tundefined,\n\t\t\tthis._getScope(),\n\t\t\ttrue,\n\t\t);\n\n\t\t// TODO: this is not very efficient. Clone should be overriden\n\t\t// by the child classes\n\t\tclone.deserialize(this._serialize());\n\t\tclone.cleanDirty(\n\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE |\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n\t\t);\n\t\treturn clone;\n\t}\n\n\t/**\n\t * Returns true if the property is a primitive type\n\t * @return {boolean} true if the property is a primitive type\n\t */\n\tisPrimitiveType() {\n\t\treturn TypeIdHelper.isPrimitiveType(this._typeid);\n\t}\n\n\t/**\n\t * Get a flattened, tree like representation of this object and all of it's\n\t * descendants. The flattening will stop at primitive properties and collections.\n\t *\n\t * For non-leaf nodes, it is possible to access the corresponding node object itself via the\n\t * propertyNode member of the flattened representation (warning, this will overwrite a\n\t * property of this name).\n\t * TODO: Do we want to have this feature or is it to dangerous?\n\t *\n\t * @returns the flat representation\n\t */\n\tprotected _flatten(): object {\n\t\treturn { propertyNode: this };\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string representations\n\t * of the property and of its sub-properties. By default it logs to the console.\n\t * If printFct is not a function, it will default to console.log\n\t * @param {function} [printFct=console.log] - Function to call for printing each property\n\t */\n\tprettyPrint(printFct) {\n\t\tif (typeof printFct !== \"function\") {\n\t\t\tprintFct = console.log;\n\t\t}\n\t\tthis._prettyPrint(\"\", \"\", printFct);\n\t}\n\n\t/**\n\t * Return a JSON representation of the properties and its children.\n\t */\n\tprotected _toJson(): object {\n\t\tvar json = {\n\t\t\tid: this.getId(),\n\t\t\tcontext: this._context,\n\t\t\ttypeid: this.getTypeid(),\n\t\t\tisConstant: this._isConstant,\n\t\t\tvalue: [],\n\t\t};\n\n\t\tvar ids = this.getIds();\n\t\tfor (const id of ids) {\n\t\t\tjson.value.push(\n\t\t\t\tthis.get(id, {\n\t\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t\t})._toJson(),\n\t\t\t);\n\t\t}\n\n\t\treturn json;\n\t}\n\n\tgetIds(): string[] {\n\t\treturn [];\n\t}\n\n\tget(\n\t\tid: string,\n\t\tparams?: { referenceResolutionMode: REFERENCE_RESOLUTION },\n\t): BaseProperty | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string\n\t * representations of the property and of its sub-properties.\n\t * @param {string} indent - Leading spaces to create the tree representation\n\t * @param {string} externalId - Name of the current property at the upper level. Used for arrays.\n\t * @param {function} printFct - Function to call for printing each property\n\t */\n\t_prettyPrint(indent, externalId, printFct) {\n\t\tvar context = \"\";\n\t\tswitch (this._context) {\n\t\t\tcase \"map\":\n\t\t\t\tcontext = \"Map of \";\n\t\t\t\tbreak;\n\t\t\tcase \"set\":\n\t\t\t\tcontext = \"Set of \";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\tprintFct(indent + externalId + this.getId() + \" (\" + context + this.getTypeid() + \"):\");\n\t\tthis._prettyPrintChildren(indent, printFct);\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string\n\t * representations of the property's sub-properties.\n\t * @param {string} indent - Leading spaces to create the tree representation\n\t * @param {function} printFct - Function to call for printing each property\n\t */\n\t_prettyPrintChildren(indent, printFct) {\n\t\tindent += \" \";\n\t\tvar ids = this.getIds();\n\t\tfor (var i = 0; i < ids.length; i++) {\n\t\t\tthis.get(ids[i], {\n\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t})._prettyPrint(indent, \"\", printFct);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the possible paths from the given from_property to this property. If multiple paths\n\t * through multiple repository references are possible, returns more than one path.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed\n\t * @return {Array<string | undefined>} The paths between from_property and this property\n\t * will return an empty array if trying to get the path from a child repo to a parent repo.\n\t * @private\n\t */\n\t_getPathsThroughRepoRef(in_fromProperty) {\n\t\tvar paths = [];\n\t\tvar that = this;\n\t\tvar referenceProps = [];\n\t\t// get all reference properties in the referenceProps array\n\t\tthis._getCheckoutView()._forEachCheckedOutRepository(function (repoInfo) {\n\t\t\tvar keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n\t\t\tfor (const key of keys) {\n\t\t\t\tif (key) {\n\t\t\t\t\tvar repoRef =\n\t\t\t\t\t\trepoInfo._referencedByPropertyInstanceGUIDs[key]._repositoryReferenceProperties[\n\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t].property;\n\t\t\t\t\tif (that.getRoot() === repoRef.getReferencedRepositoryRoot()) {\n\t\t\t\t\t\treferenceProps.push(repoRef);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// if no repo references point to the root of 'this', we can assume that 'this' is in the\n\t\t// parent repo, which cannot return a useful path.\n\t\tif (referenceProps.length === 0) {\n\t\t\tconsole.warn(MSG.NO_PATH_FROM_CHILD_REPO);\n\t\t\treturn [];\n\t\t}\n\n\t\t// path from root of the child repo to 'this'\n\t\tvar pathInChildRepo = this._getDirectPath(this.getRoot());\n\n\t\t// find possible paths from in_fromProperty to the referenceProps\n\t\t// concatenate each with pathInChildRepo\n\t\tfor (const referenceProp of referenceProps) {\n\t\t\tvar pathInParentRepo = referenceProp.getRelativePath(in_fromProperty);\n\t\t\tif (pathInParentRepo) {\n\t\t\t\tif (pathInChildRepo.length > 0) {\n\t\t\t\t\tpaths.push(pathInParentRepo + \".\" + pathInChildRepo);\n\t\t\t\t} else {\n\t\t\t\t\tpaths.push(pathInParentRepo);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (paths.length > 0) {\n\t\t\treturn paths;\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the possible paths from the given in_fromProperty to this property. If no direct paths\n\t * exist, it returns an indirect path between the two properties.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {string} The path between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getIndirectPath(in_fromProperty) {\n\t\tvar path = [];\n\t\tvar that = this;\n\t\tvar foundPath = undefined;\n\n\t\tfoundPath = in_fromProperty.traverseUp(function (in_node) {\n\t\t\tpath.push(\"../\");\n\t\t\tif (in_node === that) {\n\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t}\n\t\t\tvar directPath = that._getDirectPath(in_node);\n\t\t\tif (directPath) {\n\t\t\t\tpath.push(directPath);\n\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t});\n\t\treturn foundPath === BREAK_TRAVERSAL ? path.join(\"\") : undefined;\n\t}\n\n\t/**\n\t * Returns the path from the given in_fromProperty to this property if a direct path\n\t * exists between the two properties. Otherwise returns undefined.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {string} The path between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getDirectPath(in_fromProperty) {\n\t\tvar path = [];\n\t\tvar foundAncestor = undefined;\n\t\tif (in_fromProperty === this) {\n\t\t\tfoundAncestor = BREAK_TRAVERSAL;\n\t\t} else if (this.getParent()) {\n\t\t\tpath.push(this.getParent()._getPathSegmentForChildNode(this));\n\n\t\t\tfoundAncestor = this.traverseUp(function (in_node) {\n\t\t\t\t// break where we meet the relative reference\n\t\t\t\tif (in_node === in_fromProperty) {\n\t\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t\t}\n\n\t\t\t\tif (in_node.getParent()) {\n\t\t\t\t\tpath.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n\t\t\t\t}\n\n\t\t\t\treturn undefined;\n\t\t\t});\n\t\t}\n\n\t\tif (foundAncestor === BREAK_TRAVERSAL) {\n\t\t\tvar result = path.reverse().join(\"\");\n\n\t\t\t// We don't use a PROPERTY_PATH_DELIMITER at the start of the path\n\t\t\tif (result.startsWith(PROPERTY_PATH_DELIMITER)) {\n\t\t\t\tresult = result.substr(1);\n\t\t\t}\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the possible paths from the given in_fromProperty to this property.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {Array<string>} The paths between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getAllRelativePaths(in_fromProperty) {\n\t\tif (this.getRoot() !== in_fromProperty.getRoot()) {\n\t\t\t// if this and in_fromProperty have different roots, go through a repo ref\n\t\t\t// this is the case where we might have more than one path\n\t\t\treturn this._getPathsThroughRepoRef(in_fromProperty);\n\t\t} else {\n\t\t\tvar directPath = this._getDirectPath(in_fromProperty);\n\t\t\treturn directPath !== undefined\n\t\t\t\t? [directPath]\n\t\t\t\t: [this._getIndirectPath(in_fromProperty)];\n\t\t}\n\t}\n\n\t/**\n\t * Returns the path from the given fron_property to this node if such a path exists.\n\t * If more than one paths exist (as might be the case with multiple repository references\n\t * pointing to the same repository), it will return the first valid path found.\n\t * For example, if you have this structure:\n\t *\n\t * ```\n\t * <code>prop1\n\t * --prop2\n\t * ----prop3</code>\n\t * ```\n\t *\n\t * and call: `<code>prop1.getRelativePath(prop3);</code>`\n\t *\n\t * You will get the path from prop3 to prop1, which would be '../../'\n\t *\n\t * @param in_fromProperty - The property from which the path is computed.\n\t * @returns The path between the given in_fromProperty and this property.\n\t * @throws If in_fromProperty is not a property.\n\t */\n\tgetRelativePath(in_fromProperty: BaseProperty): string {\n\t\tConsoleUtils.assert(\n\t\t\tin_fromProperty instanceof BaseProperty,\n\t\t\tMSG.IN_FROMPROPERTY_MUST_BE_PROPERTY,\n\t\t);\n\t\tvar paths = this._getAllRelativePaths(in_fromProperty) || [];\n\t\tif (paths.length === 0) {\n\t\t\tconsole.warn(\n\t\t\t\tMSG.NO_PATH_BETWEEN +\n\t\t\t\t\tin_fromProperty.getAbsolutePath() +\n\t\t\t\t\t\" and \" +\n\t\t\t\t\tthis.getAbsolutePath(),\n\t\t\t);\n\t\t} else if (paths.length > 1) {\n\t\t\tconsole.warn(\n\t\t\t\tMSG.MORE_THAN_ONE_PATH +\n\t\t\t\t\tin_fromProperty.getAbsolutePath() +\n\t\t\t\t\t\" and \" +\n\t\t\t\t\tthis.getAbsolutePath(),\n\t\t\t);\n\t\t}\n\t\treturn paths[0];\n\t}\n\n\t/**\n\t * Returns the path from the root of the workspace to this node (including a slash at the beginning).\n\t *\n\t * @return {string} The path from the root\n\t */\n\tgetAbsolutePath() {\n\t\tvar that = this;\n\t\tvar referenceProps = [];\n\t\t// get all reference properties pointing to the root the repository containing 'this'\n\t\tif (this._getCheckoutView()) {\n\t\t\tthis._getCheckoutView()._forEachCheckedOutRepository(function (repoInfo) {\n\t\t\t\tvar keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n\t\t\t\tfor (const key of keys) {\n\t\t\t\t\tif (key) {\n\t\t\t\t\t\tlet repoRef = repoInfo._referencedByPropertyInstanceGUIDs[key];\n\t\t\t\t\t\tlet refProperty = undefined;\n\n\t\t\t\t\t\tif (repoRef) {\n\t\t\t\t\t\t\trefProperty = repoRef._repositoryReferenceProperties[key]\n\t\t\t\t\t\t\t\t? repoRef._repositoryReferenceProperties[key].property\n\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet refRoot;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\trefRoot = refProperty ? refProperty.getReferencedRepositoryRoot() : undefined;\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.warn(e.message);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (that.getRoot() === refRoot) {\n\t\t\t\t\t\t\treferenceProps.push(refProperty);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvar path = this.isRoot() ? [] : [this.getParent()._getPathSegmentForChildNode(this)];\n\t\tthis.traverseUp(function (in_node) {\n\t\t\tif (in_node.getParent()) {\n\t\t\t\tpath.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n\t\t\t} else if (referenceProps.length > 0) {\n\t\t\t\t// recursively call getAbsolutePath, removing the '/' at the beginning of the path\n\t\t\t\tpath.push(referenceProps[0].getAbsolutePath(referenceProps[0].getRoot()).slice(1));\n\t\t\t}\n\t\t});\n\t\tvar absolutePath = path.reverse().join(\"\");\n\n\t\t// We don't use the property path separator at the start of the path\n\t\tif (absolutePath.startsWith(PROPERTY_PATH_DELIMITER)) {\n\t\t\tabsolutePath = absolutePath.substr(1);\n\t\t}\n\t\tabsolutePath = \"/\" + absolutePath;\n\n\t\treturn absolutePath;\n\t}\n\n\t/**\n\t * Traverses the property hierarchy upwards until the a node without parent is reached\n\t *\n\t * @param {Function} in_callback - Callback to invoke for each of the parents. The traversal can be stopped\n\t * by returning BaseProperty.BREAK_TRAVERSAL\n\t * @throws if in_callback is not a function.\n\t * @return {string|undefined} Returns BaseProperty.BREAK_TRAVERSAL, if the traversal didn't reach the root,\n\t * otherwise `undefined`.\n\t */\n\ttraverseUp(in_callback) {\n\t\tConsoleUtils.assert(_.isFunction(in_callback), MSG.CALLBACK_NOT_FCT);\n\t\tif (this._parent) {\n\t\t\tvar result = in_callback(this._parent);\n\t\t\treturn result !== BREAK_TRAVERSAL\n\t\t\t\t? this._parent.traverseUp(in_callback)\n\t\t\t\t: BREAK_TRAVERSAL;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * @type {string} Constant to stop the traversal in traverseUp and traverseDown functions\n\t */\n\tstatic BREAK_TRAVERSAL = BREAK_TRAVERSAL;\n\n\t/**\n\t * Returns all children which are dirty (this only returns direct children, it does not travers recursively)\n\t *\n\t * @param in_flags - Which types of dirtiness are we looking for? If none is given, all types are regarded as dirty.\n\t * @returns The list of keys identifying the dirty children.\n\t */\n\tprotected _getDirtyChildren(in_flags: MODIFIED_STATE_FLAGS): string[] {\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the root of the property hierarchy\n\t * @returns The root property\n\t */\n\tgetRoot(): BaseProperty {\n\t\treturn this._parent ? this._parent.getRoot() : this;\n\t}\n\n\t/**\n\t * Traverses all children in the child hierarchy\n\t * TODO: How should this behave for collections?\n\t *\n\t * @param in_callback - Callback to invoke for every child\n\t * @param in_pathFromTraversalStart - Path from the root of the traversal to this node\n\t * @returns Returns BaseProperty.BREAK_TRAVERSAL if the traversal has been interrupted, otherwise `undefined`.\n\t * @private\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n\t_traverse(in_callback: Function, in_pathFromTraversalStart: string): string | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Deserialize takes a currently existing property and sets it to the hierarchy described in the normalized\n\t * ChangeSet passed as parameter. It will return a ChangeSet that describes the difference between the current state\n\t * of the property and the passed in normalized property\n\t *\n\t * @param in_serializedObj - The serialized changeset to apply to this node. This has to be a normalized change-set\n\t * (only containing insertions and property assignments. Deletes and Modify must not appear)\n\t * @param in_filteringOptions - The filtering options to consider while deserializing the property.\n\t * @param in_createChangeSet - Should a changeset be created for this deserialization?\n\t * @param in_reportToView - Usually the dirtying should be reported to the view and trigger a modified event there.\n\t * This can be prevented via this flag.\n\t * @throws if called on a read-only property.\n\t * @returns ChangeSet with the changes that actually were performed during the deserialization\n\t */\n\tdeserialize(\n\t\tin_serializedObj: SerializedChangeSet,\n\t\tin_filteringOptions = {},\n\t\tin_createChangeSet = true,\n\t\tin_reportToView = false,\n\t): SerializedChangeSet {\n\t\tthis._checkIsNotReadOnly(false);\n\t\treturn this._deserialize(\n\t\t\tin_serializedObj,\n\t\t\tin_reportToView,\n\t\t\tin_filteringOptions,\n\t\t\tin_createChangeSet,\n\t\t);\n\t}\n\n\t/**\n\t * Sets the property to the state in the given normalized changeset\n\t *\n\t * @param in_serializedObj - The serialized changeset to apply. This\n\t * has to be a normalized change-set (only containing inserts. Removes and Modifies are forbidden).\n\t * @param in_reportToView - Usually the dirtying should be reported to the view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @param in_filteringOptions - The filtering options to consider while deserializing the property.\n\t * @param in_createChangeSet - Should a changeset be created for this deserialization?\n\t * @returns ChangeSet with the changes that actually were performed during the deserialization.\n\t */\n\t_deserialize(\n\t\tin_serializedObj: SerializedChangeSet,\n\t\tin_reportToView: boolean,\n\t\tin_filteringOptions = {},\n\t\tin_createChangeSet = true,\n\t): SerializedChangeSet {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Serialize the property into a changeSet\n\t *\n\t * @param in_dirtyOnly - Only include dirty entries in the serialization\n\t * @param in_includeRootTypeid - Include the typeid of the root of the hierarchy\n\t * @param in_dirtinessType - The type of dirtiness to use when reporting dirty changes. By default this is\n\t * `PENDING_CHANGE`.\n\t * @param in_includeReferencedRepositories - If this is set to true, the serialize\n\t * function will descend into referenced repositories.\n\t * WARNING: if there are loops in the references this can result in an infinite loop.\n\t *\n\t * @returns The serialized representation of this property\n\t */\n\tprotected _serialize(\n\t\tin_dirtyOnly: boolean = false,\n\t\tin_includeRootTypeid: boolean = false,\n\t\tin_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\tin_includeReferencedRepositories: boolean = false,\n\t): object {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Serialize the property\n\t *\n\t * @param in_options - Options for the serialization\n\t * @throws if in_options is defined but is not an object.\n\t * @returns The serialized representation of this property\n\t */\n\tserialize(in_options: ISerializeOptions) {\n\t\tvar opts = {\n\t\t\tdirtyOnly: false,\n\t\t\tincludeRootTypeid: false,\n\t\t\tdirtinessType: MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\tincludeReferencedRepositories: false,\n\t\t};\n\t\tif (in_options !== undefined) {\n\t\t\tif (typeof in_options !== \"object\") {\n\t\t\t\tthrow new TypeError(MSG.SERIALIZE_TAKES_OBJECT);\n\t\t\t}\n\t\t\tObject.assign(opts, in_options);\n\t\t}\n\n\t\treturn this._serialize(\n\t\t\topts.dirtyOnly,\n\t\t\topts.includeRootTypeid,\n\t\t\topts.dirtinessType,\n\t\t\topts.includeReferencedRepositories,\n\t\t);\n\t}\n\n\t/**\n\t * Indicate that all static members have been added to the property\n\t *\n\t * This function is invoked by the PropertyFactory once all static members have been added to the template\n\t * @protected\n\t */\n\t_signalAllStaticMembersHaveBeenAdded() {}\n\n\t/**\n\t * Tests whether this property may be modified\n\t * @param {checkConstant} in_checkConstant - Check if is readonly constant property\n\t */\n\t_checkIsNotReadOnly(in_checkConstant) {\n\t\tif (this._isConstant && in_checkConstant) {\n\t\t\tthrow new Error(MSG.MODIFICATION_OF_CONSTANT_PROPERTY);\n\t\t}\n\n\t\tvar root = this.getRoot();\n\t\tif (root && root._getCheckedOutRepositoryInfo) {\n\t\t\tvar repositoryInfo = root._getCheckedOutRepositoryInfo();\n\n\t\t\tif (repositoryInfo && repositoryInfo._isReadOnly()) {\n\t\t\t\tthrow new Error(MSG.MODIFICATION_OF_REFERENCED_PROPERTY);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Set a property and its children as constants (readonly properties)\n\t */\n\t_setAsConstant() {\n\t\tthis._isConstant = true;\n\n\t\tif (this instanceof Property.AbstractStaticCollectionProperty) {\n\t\t\t// Set all children properties as constants\n\t\t\tthis.traverseDown(function (prop) {\n\t\t\t\tprop._isConstant = true;\n\t\t\t});\n\t\t}\n\t}\n\n\ttraverseDown(arg0: (prop: any) => void) {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\t/**\n\t * Unsets a property and its children as constants\n\t */\n\t_unsetAsConstant() {\n\t\t// Deleting this property will make the object\n\t\t// fall back to the entry in the prototype (false)\n\t\tdelete this._isConstant;\n\n\t\tif (this instanceof Property.AbstractStaticCollectionProperty) {\n\t\t\t// Unset all children properties as constants\n\t\t\tthis.traverseDown(function (prop) {\n\t\t\t\t// Deleting this property will make the object\n\t\t\t\t// fall back to the entry in the prototype (false)\n\t\t\t\tdelete prop._isConstant;\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Dirties this node and all of its children\n\t *\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @private\n\t */\n\t_setDirtyTree(in_reportToView = true) {\n\t\tthis._traverse(function (node) {\n\t\t\t// Set all nodes to dirty, but prevent recursive updates up to the repository for the individual changes\n\t\t\tnode._setDirty(false);\n\t\t}, \"\");\n\t\t// Now make one report\n\t\tif (in_reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Determines whether a property can be inserted as a child of another property\n\t * This does NOT validate if the parent can accept the child property, it only validates if\n\t * the child property can be inserted in the parent.\n\t * @param in_targetParent - The parent property\n\t * @throws if the property can not be inserted\n\t */\n\t_validateInsertIn(in_targetParent: BaseProperty) {\n\t\t// A root?\n\t\tif (this._getCheckedOutRepositoryInfo() !== undefined) {\n\t\t\tthrow new Error(MSG.INSERTED_ROOT_ENTRY);\n\t\t}\n\n\t\t// Would create a cycle?\n\t\tlet parent = in_targetParent;\n\t\twhile (parent !== undefined) {\n\t\t\tif (parent === this) {\n\t\t\t\tthrow new Error(MSG.INSERTED_IN_OWN_CHILDREN);\n\t\t\t}\n\t\t\tparent = parent._parent;\n\t\t}\n\n\t\t// Already a child?\n\t\tif (this._parent !== undefined || this._getCheckoutView() !== undefined) {\n\t\t\tthrow new Error(MSG.INSERTED_ENTRY_WITH_PARENT);\n\t\t}\n\t}\n\n\t/**\n\t * TODO: Remove it later. Kept not to modify tests\n\t *\n\t * Validates if the property and all its children are covered by the given list of paths.\n\t *\n\t * This function is expected to be used before inserting the property into its parent. That is the\n\t * reason for asking for the base path. This is the full path expected for this property.\n\t *\n\t * This function uses the canonical representation of the property paths.\n\t *\n\t * @param in_basePath - The property's absolute path in canonical form\n\t * @param in_paths - The array of paths that we wonder if it covers the property and its children\n\t * @returns If the property and all its children are included in the paths\n\t * @private\n\t */\n\t_coveredByPaths(in_basePath: string, in_paths: string[]): boolean {\n\t\t// First, get the coverage of the base property\n\t\tconst coverage = PathHelper.getPathCoverage(in_basePath, in_paths);\n\n\t\tif (coverage.coverageExtent === PathHelper.CoverageExtent.FULLY_COVERED) {\n\t\t\treturn true;\n\t\t} else if (coverage.coverageExtent === PathHelper.CoverageExtent.PARTLY_COVERED) {\n\t\t\t// We know that part of the property is covered, if we don't find any actual children not covered\n\t\t\t// by the paths it's because we're fully covered.\n\t\t\tif (this.isPrimitiveType()) {\n\t\t\t\tconst childrenIds = this.getContext() === \"single\" ? [] : this.getIds();\n\t\t\t\tfor (const childId of childrenIds) {\n\t\t\t\t\tconst childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n\t\t\t\t\tif (\n\t\t\t\t\t\tPathHelper.getPathCoverage(childPath, coverage.pathList).coverageExtent ===\n\t\t\t\t\t\tPathHelper.CoverageExtent.UNCOVERED\n\t\t\t\t\t) {\n\t\t\t\t\t\t// this children is outside the list of paths\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst childrenIds = this.getIds();\n\t\t\t\tfor (const childId of childrenIds) {\n\t\t\t\t\tconst child = this.get(childId);\n\t\t\t\t\tconst childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n\t\t\t\t\tif (!child._coveredByPaths(childPath, coverage.pathList)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tget _properties() {\n\t\treturn this._flatten();\n\t}\n}\n\n(BaseProperty as any).prototype._isConstant = false;\n(BaseProperty as any).prototype._context = \"single\";\n(BaseProperty as any).prototype._typeid = \"BaseProperty\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es5.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.dom.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.decorators.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/test/global.d.ts","../../../../../../node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts","../../../property-common/dist/chronometer.d.ts","../../../property-common/dist/consoleUtils.d.ts","../../../property-common/dist/constants.d.ts","../../../property-common/dist/datastructures/collection.d.ts","../../../property-common/dist/datastructures/dataArray.d.ts","../../../property-common/dist/datastructures/integer64.d.ts","../../../property-common/dist/datastructures/sortedCollection.d.ts","../../../property-common/dist/datastructures/index.d.ts","../../../property-common/dist/deferredPromise.d.ts","../../../property-common/dist/deterministicRandomGenerator.d.ts","../../../property-common/dist/error_objects/flaggedError.d.ts","../../../property-common/dist/error_objects/httpError.d.ts","../../../property-common/dist/error_objects/httpErrorNoStack.d.ts","../../../property-common/dist/error_objects/operationError.d.ts","../../../property-common/dist/error_objects/index.d.ts","../../../property-common/dist/guidUtils.d.ts","../../../property-common/dist/hashCalculator.d.ts","../../../property-common/dist/joinPaths.d.ts","../../../property-common/dist/index.d.ts","../enableValidations.d.ts","../../../property-changeset/dist/changeset_operations/operationTypes.d.ts","../../../property-changeset/dist/changeset_operations/arrayChangesetIterator.d.ts","../../../property-changeset/dist/changeset_operations/array.d.ts","../../../property-changeset/dist/changeset_operations/changesetConflictTypes.d.ts","../../../property-changeset/dist/changeset_operations/indexedCollection.d.ts","../../../property-changeset/dist/changeset.d.ts","../../../property-changeset/dist/helpers/typeidHelper.d.ts","../../../property-changeset/dist/pathHelper.d.ts","../../../property-changeset/dist/rebase.d.ts","../../../property-changeset/dist/templateSchema.d.ts","../../../../../../node_modules/.pnpm/fast-uri@3.0.3/node_modules/fast-uri/types/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/code.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/scope.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/rules.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/util.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/subschema.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/errors.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/dataType.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/format.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/errors.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/types/json-schema.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/types/jtd-schema.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/validation_error.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/ref_error.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/core.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/resolve.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/types/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/ajv.d.ts","../../../property-changeset/dist/validationResultBuilder.d.ts","../../../property-changeset/dist/templateValidator.d.ts","../../../property-changeset/dist/utils.d.ts","../../../property-changeset/dist/index.d.ts","../properties/baseProperty.d.ts","../properties/abstractStaticCollectionProperty.d.ts","../properties/arrayProperty.d.ts","../properties/indexedCollectionBaseProperty.d.ts","../properties/containerProperty.d.ts","../properties/valueArrayProperty.d.ts","../properties/enumArrayProperty.d.ts","../properties/valueProperty.d.ts","../properties/intProperties.d.ts","../properties/enumProperty.d.ts","../properties/mapProperty.d.ts","../properties/nodeProperty.d.ts","../properties/referenceArrayProperty.d.ts","../properties/valueMapProperty.d.ts","../properties/referenceMapProperty.d.ts","../properties/referenceProperty.d.ts","../properties/setProperty.d.ts","../properties/stringProperty.d.ts","../propertyFactory.d.ts","../propertyTemplate.d.ts","../propertyUtils.d.ts","../index.d.ts","../../src/test/validation/goodPointId.js","../../src/test/validation/badPrimitiveTypeid.js","../../src/test/validation/goodColorId.js","../../src/test/validation/badMissingSemverInTypeid.js","../../src/test/validation/goodColorPalette.js","../../src/test/propertyFactory.spec.js","../../src/test/propertyTemplateWrapper.spec.js","../../src/test/propertyUtils.spec.js","../../src/test/validation/reversibleChangeSetTestData.js","../../src/test/reversibleChangeset.spec.js","../../../../../../node_modules/.pnpm/querystring@0.2.1/node_modules/querystring/decode.d.ts","../../../../../../node_modules/.pnpm/querystring@0.2.1/node_modules/querystring/encode.d.ts","../../../../../../node_modules/.pnpm/querystring@0.2.1/node_modules/querystring/index.d.ts","../../../../../../node_modules/.pnpm/nock@13.5.6/node_modules/nock/types/index.d.ts","../../../../../../node_modules/.pnpm/@types+sinonjs__fake-timers@8.1.5/node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../../../../node_modules/.pnpm/@types+sinon@17.0.3/node_modules/@types/sinon/index.d.ts","../../src/test/setup.js","../../src/test/utils.spec.js","../../src/test/properties/arrayProperty.spec.js","../../src/test/properties/baseProperty.spec.js","../../src/test/properties/containerProperty.spec.js","../../src/test/properties/customArrayProperty.spec.js","../../src/test/properties/enumArrayProperty.spec.js","../../src/test/properties/enumProperty.spec.js","../properties/floatProperties.d.ts","../../src/test/properties/float32.spec.js","../../src/test/properties/int64ArrayProperty.spec.js","../../src/test/properties/int64MapProperty.spec.js","../../src/test/properties/int64Property.spec.js","../../src/test/properties/isLeafNode.spec.js","../../src/test/properties/mapProperty.spec.js","../properties/namedNodeProperty.d.ts","../../src/test/properties/namedNodeProperty.spec.js","../../src/test/properties/nodeProperty.spec.js","../../src/test/properties/referenceProperty.spec.js","../../src/test/properties/relationshipProperty.spec.js","../../src/test/properties/setProperty.spec.js","../../src/test/properties/stringProperty.spec.js","../../src/test/properties/uint64Property.spec.js","../../src/test/properties/valueMapProperty.spec.js","../../src/test/properties/valueProperty.spec.js","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/compatibility/disposable.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/compatibility/indexable.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/compatibility/iterators.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/compatibility/index.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../../../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/globals.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/assert.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/assert/strict.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/async_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/buffer.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/child_process.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/cluster.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/console.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/constants.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/crypto.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/dgram.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/diagnostics_channel.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/dns.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/dns/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/domain.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/dom-events.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/events.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/fs.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/fs/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/http.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/http2.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/https.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/inspector.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/module.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/net.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/os.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/path.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/perf_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/process.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/punycode.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/querystring.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/readline.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/readline/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/repl.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/stream.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/stream/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/stream/consumers.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/stream/web.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/string_decoder.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/test.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/timers.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/timers/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/tls.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/trace_events.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/tty.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/url.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/util.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/v8.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/vm.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/wasi.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/worker_threads.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/zlib.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/ts5.6/index.d.ts","../../../../../../node_modules/.pnpm/@types+mocha@10.0.10/node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"3b71a95ae71d1005f34e4b88439dc62f2af9370d4caff4e3521bba5b7348df15","affectsGlobalScope":true},"93d28b4eb12c68fccc1f2fc04a4ef83ea3b2a03b18055d3bf29cab267aa7042e","5ae06f377b0b83db5a1b874964edbee89349ca8cc209e441453853db83996b54","a9ef47ce790d61058be519b195888d3d96663c0633b251f152d050df6aa5008b","3112eb26a50643fba9f67a04a3aa0cbc1a6e937bef0e5695f777f9acd03ab593","8df6a0a013fa2bd1409b0da580a97d0e481f117300df2256da23a0278cafdeed","ebd41802809b2ef42be12754e10ba34a2bbd8970312715085944edd34c29450e","252256fa2e954a2a41db5447aa11ed67dbec668edbdfd854cd10eaf83a4fc810","f07c758ad138309e628c5596c2be99b8427bbf1061cc29be9c3b24c8e7381464","437b66084d74fef1016d1ca75d60c27e787e6890490361c1c6af34c20da612df","cdce2e3d2232a16897065db6045cc912c44129307b58693c1eb50a0ce53f6784","73d681ce6c2d560ed98a80a5991e3110642857e9728a2740d40c2261347d1239","3d237422ddc611dc54b09f560115a94db5bdbcd893dfa1d1ad3cb4f7ea923265","8b7cc9ce0b0baff389d7e0d862c886c1d4e41ef8f3014abe7558423d4cc9c343","24cc1451f5c8df6759734cfd990cb49b40cf4f1b387961e96179ac406a9fd5a5","c17e7f6b7a2bb8f33f0300ac899fb02ee4aef6bf8498682f8047da7774115edf","fb24943a9919b0ba038a2fafbcaaad022fd31b2d9e261d5bc2452d83f6cdbbd6","e42e334b0e3222a3dce6da5bcffbce9627292d9e80e7c03721efd7461617a2ae","82b45e5996e1246d09b9d0439af8a3dc1ac5b7af0352ee748d15281fd4eef222","98c7f160839c2badf3ee243904e71f7529523beea7cc5be60444c83a0b06a728","a981c35f7762215d3dc74a166727d1f31e2582346e0868eee6a0d34ba2d4b68d","2ee83bc5371fd1e571e905de36f1ac5f20e05f5969493540d9aadc781f8ccaaa","808213e7e3c5d1e36072fca77c018a754a882c448bb58a1c40bf04334ae032c4","564efe318141b9f89cfb8d0891ca25b57f41a30ac64e7b2b2119270ecab06ca8","7e3acc27a0283e894aba8682a992c5ee067758b2522b3c323e3136229d31bcbc","0aae832ccde937603fc48837170272233e79517413fa1e95f20e86691f005c0f","24d5972c47e93edf393730f7b5c1f7593890b9b155e94cbc9647bd34de5939fb","52ca345e355f30eaf398067a6b06a6038798e13f26f7fbec3521188d8aa7835a","763925a9fd49689138f6fb0f70bf9a53b6fb1d08205cb39b4271900f1171e7ea","b64398856e73c2325e200f7ee179993cce1de22bbf12bd11be9fff6017987f41","fbc8fb43a086455229aa0c8bb54731c60e04fc653dd71c65280c006bd373bc50","5af62a08978a6211dcf57f1f33e3fd37dfad2b44d5c1dc9ddf5633f5b2f34fe1","ee660a1f2acd3d7fc7b28df06c4e2125229666c4d72e5455ae3841bfd222f684","2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff","6a785f84e63234035e511817dd48ada756d984dd8f9344e56eb8b2bdcd8fd001","c1422d016f7df2ccd3594c06f2923199acd09898f2c42f50ea8159f1f856f618","2973b1b7857ca144251375b97f98474e9847a890331e27132d5a8b3aea9350a8","0eb6152d37c84d6119295493dfcc20c331c6fda1304a513d159cdaa599dcb78b","237df26f8c326ca00cd9d2deb40214a079749062156386b6d75bdcecc6988a6b","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","7557d4d7f19f94341f4413575a3453ba7f6039c9591015bcf4282a8e75414043","a3b2cc16f3ce2d882eca44e1066f57a24751545f2a5e4a153d4de31b4cac9bb5","ac2b3b377d3068bfb6e1cb8889c99098f2c875955e2325315991882a74d92cc8","8deb39d89095469957f73bd194d11f01d9894b8c1f1e27fbf3f6e8122576b336","a38a9c41f433b608a0d37e645a31eecf7233ef3d3fffeb626988d3219f80e32f","8e1428dcba6a984489863935049893631170a37f9584c0479f06e1a5b1f04332","1fce9ecb87a2d3898941c60df617e52e50fb0c03c9b7b2ba8381972448327285","5ef0597b8238443908b2c4bf69149ed3894ac0ddd0515ac583d38c7595b151f1","ac52b775a80badff5f4ac329c5725a26bd5aaadd57afa7ad9e98b4844767312a","6ae5b4a63010c82bf2522b4ecfc29ffe6a8b0c5eea6b2b35120077e9ac54d7a1","dd7109c49f416f218915921d44f0f28975df78e04e437c62e1e1eb3be5e18a35","eee181112e420b345fc78422a6cc32385ede3d27e2eaf8b8c4ad8b2c29e3e52e","25fbe57c8ee3079e2201fe580578fab4f3a78881c98865b7c96233af00bf9624","62cc8477858487b4c4de7d7ae5e745a8ce0015c1592f398b63ee05d6e64ca295","cc2a9ec3cb10e4c0b8738b02c31798fad312d21ef20b6a2f5be1d077e9f5409d","4b4fadcda7d34034737598c07e2dca5d7e1e633cb3ba8dd4d2e6a7782b30b296","360fdc8829a51c5428636f1f83e7db36fef6c5a15ed4411b582d00a1c2bd6e97","1cf0d15e6ab1ecabbf329b906ae8543e6b8955133b7f6655f04d433e3a0597ab","7c9f98fe812643141502b30fb2b5ec56d16aaf94f98580276ae37b7924dd44a4","b3547893f24f59d0a644c52f55901b15a3fa1a115bc5ea9a582911469b9348b7","596e5b88b6ca8399076afcc22af6e6e0c4700c7cd1f420a78d637c3fb44a885e","adddf736e08132c7059ee572b128fdacb1c2650ace80d0f582e93d097ed4fbaf","d4cad9dc13e9c5348637170ddd5d95f7ed5fdfc856ddca40234fa55518bc99a6","d70675ba7ba7d02e52b7070a369957a70827e4b2bca2c1680c38a832e87b61fd","3be71f4ce8988a01e2f5368bdd58e1d60236baf511e4510ee9291c7b3729a27e","423d2ccc38e369a7527988d682fafc40267bcd6688a7473e59c5eea20a29b64f","2f9fde0868ed030277c678b435f63fcf03d27c04301299580a4017963cc04ce6","feeb73d48cc41c6dd23d17473521b0af877751504c30c18dc84267c8eeea429a","25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","b83139ae818dd20f365118f9999335ca4cd84ae518348619adc5728e7e0372d5","e0205f04611bea8b5b82168065b8ef1476a8e96236201494eb8c785331c43118","62d26d8ba4fa15ab425c1b57a050ed76c5b0ecbffaa53f182110aa3a02405a07","9941cbf7ca695e95d588f5f1692ab040b078d44a95d231fa9a8f828186b7b77d","41b8775befd7ded7245a627e9f4de6110236688ce4c124d2d40c37bc1a3bfe05","bcd87fbc6646c89fa9cd119c1183b038af2e311bc765252c07ba94f914f14ee5","b1914f61c63625e77d7592fe3b314349f79acd48ffc7ee601735995b0aa8c555","96a9dfa37451fa6b7e26ae19b93046cefa2f8f75659b8cdff0a4ea22430059be","d187bd984e6085880ab48fd0125f09b4d0b30379822d0f8896ff3c82f10f7374","bbed81300e2946cc36d1fc75f97fa6d7f9d80a6356fda24395ad0d54a4d815be","4d5cdfd89845a7515d0a53b9738cf963bb423825efd2fd7b817aef4c2b7899b3","659c3096fb199e044f38955772e72b9feea513036c6bf9336b169f0d9c207143","93833e55144a53add590db703b8960797960aa5969d95db063de95f33284e6c9","ec759759eecc230312bf344baa98bd82a3e9e789807f6cf9179dbb928b855538","c660e3db078c3978c2240221a662872239a37d652f0808df181d3049c84d4c6f","9ca8d6e16fe5dc1fd0972720d95f39cccd5edddc08024fc391615c8f03d92575","38e8433980350f3d158fc96f4421c412f30cf40d2174464a4fd55a3e9e8029ef","51437cd3bd3103ab9d58626d13b3d1b320bfce17e6449eeed4f89c5f2ef2b591","5fc12107a94214c1a962047bc76b26dd9fb96aa1db155692e8196ef24983a244","97a89ae1e24bec63b92a9332a4061e148bfedd73c4df18bd181c788ecc9550dd","33d991e18bc448a1cce1b3ecc21eda9074d8be805aabe65eab42f5fe865bce5e","cd7cbb95965d39ad49cc3d7002e576af21c3d782a9e25b2c4b3b3e0bbb880e48","8eaa563156ded0fb3cfc88b6bf7c3ef122b5eb55a1599c57b037572588f7329a","16ea7a5e82b3d702c2b523384f1943225ec3e9a2878cad0526db10fc637814dd","ce0bd9367a0419bd48b83755b37088125af815cc7fda287057ed0abe1c22699c","b0dda89630f7be4be08d05efce6509f87ec064dec8cd9d51791647595b389e92","f69295f4cb5a16fcbd86585b8bdc9156ac34bfda2e12bb9a1e8a53e3ce2d8207","5dc7cf2161877c6535aaf458d38db0bd023772647749cea00b31d42f829be3e2","a341e63fad1e5633ff8d8c3d7c88eb2f058c4a0bbb6de2cff75c1eb1798d059b","c2786e5958ed7ad2b988420bd525657948022ad0cf6b2b138d2e6f5a34defebc","b04317a8ddd4d374445de4849ebe22f10b8eeea2a3c0f97dfed6aefa2fb6f85a","58153feada413067a4d5a7d0b0a0083628fa640ae3a1f1210a262a459a49e202","4de5255352f2daf0abbf510282df8c24cedb8b957b735e985aa86ce92639a7e0","ee4605eed60ec956b4ea00076fbf15835b1558c9aba3b3bddf0b5f1b9c6027db","c6f0c4885487404d0b019ec92f0c2a8d7f8c952a38c7da8b5ec6e1f128d0d238","01fb6bcf1cbd295f1f277d38a4ba80ab41a38f3d8f463ddbdf33fee566744f42","2952e7392003119d005d0a67e6f0bc167f02c042ae369eaec2941c03f6879ff8","0f513c065e22b75215129f877381949a59eb580c91575f9c355237b3b422fcce","e1ccc66d5f066a8a73af8db7875e59e569f8daf2042cd9b789d70d970628be10","4eff4f0dd79a6a6c9f735ebb67f66954b2607a74eb747dbc98761c09722d1b60","7cb3e4ec7f2f3c3b131f4d26856d6c70d7f2a006e7e561ac92b0e6119282cf6a","ad7e61eca7f2f8bf47e72695f9f6663b75e41d87ef49abdb17c0cb843862f8aa","ecba2e44af95b0599c269a92628cec22e752868bce37396740deb51a5c547a26","46a9fb41a8f3bc7539eeebc15a6e04b9e55d7537a081615ad3614220d34c3e0f","c1f83e344cdcb114420295d422e39b36d2cda7583da37e0f0f196ccbdfd20185","7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","8e87660f5170c195ade218937e360484775be6a4e75a098665d9ba5a2e4cdc15","ae3487d09be4f5bc4aa37e379a1562515cbc67ca991b55b8a917ab28eb33366b","b6697ae6abee0d35d3117da0936544520c6b090a0edb4213404e2530ea220768","bdcbe1291aaa7b715dd03955ac20c5f65fd7794322ce18f6c7e751b155ccd2fa","af3b3ae0ba4957997d8b48832b9145041f94f649ae4052674df9872e1131aa7b","1df761632b29b2a2d42d021568052b209919db8a7520b1d6ccc1bd6efa4b5bb5","9cbc5b0459355d284fa82b48b0857036f39899912837950770ce8362fbee555f","b4533489d8920a69ef9cb8b5aec945d49794853f56caf583a7be3175168f1da4","d38eb5500b25b5993c6f43248e85053215a8d02eb79ec91cd117759055dd8d5b","8315e2aa27ea80e2a01536038f94a9741dc90dc4c74485d4475f4c41449e4ec8","6a82970842e44d2e0184dfd8198e3382234e2a44df7e5e92b5fa9547489111b3","4beb516375217815c7ccaa154c1596f0cb99be6896fca38b49719338986c9ec2","0c889232b8246126636f302df3520bda69061a7c7e875ad6dfd4772b3fccbe4d","69f87ef0d7775ec5e83e57a6313ce49c9fa9ba1d7f6666d95430f5000c127339","4925f6a45ee9909291cf4394a6173eb461316e8fb6d0d04a647141d3d88663a8","d4920410c4ca7f082b8cfd00cfc7b107874dd9427bc5eeb9e660aecc7a500019","8bf7be6ceca6f6978e1096844e75280949454efce5d1579f148ae7de58c5efb0","ec3c0fa3ee53faa4a7d6fe3dfb5b121facbab75902fb373153549dc919797509","6c2ba26bb18e5a51caea307ac1389c50e188efe21748fcfa8997707f2deaac31","ec18908e1079f864608f9d0fff708c7be096c57a827e4adc45168b00c15e0589","37f3a2c2452573c838c81a6e1a69b8e5bd3e6f105857e8c6ae31707c44a47963","d3456535bd76d4a9c2e06944ce1b5ce33b9b9f078524a1cf12f7ee1c7f8b9706","85399cf525a33c668623a649d72a4496fc932cf8768e02065f23879922317164","074953789b1a88fbde4331514d5c0da3a293793eb4265b57aa3e41a3eb8d9e26","9f364a42b5396576639465d08b4b9362800b6bf0fcc79ca7b192de9ec2eff410","1d279bb14277bcb27dc320581b787f55dcdbaff2582345991f18617a692d496e",{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true},"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a",{"version":"613b21ccdf3be6329d56e6caa13b258c842edf8377be7bc9f014ed14cdcfc308","affectsGlobalScope":true},{"version":"716f9eff5b2d2cc17fbbd6f4bb833f61b65921ccb60c369d47368743bf2601bd","affectsGlobalScope":true},"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"5d4ba56f688207f1a47cf761ebe8987973e5bf9db6506edc160e211aa9f1dd51","affectsGlobalScope":true},"2aadab4729954c700a3ae50977f5611a8487dc3e3dc0e7f8fcd57f40475260a8","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"ea653f5686e3c9a52ad6568e05ddf07f048cc8469bb1a211931253f0491378a4","affectsGlobalScope":true},"51bb58ef3a22fdc49a2d338a852050855d1507f918d4d7fa77a68d72fee9f780","9b8d21812a10cba340a3e8dfacd5e883f6ccec7603eae4038fa90a0684fa9a07",{"version":"cef8931bc129687165253f0642427c2a72705a4613b3ac461b9fa78c7cdaef32","affectsGlobalScope":true},"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","47b62c294beb69daa5879f052e416b02e6518f3e4541ae98adbfb27805dd6711","f8375506002c556ec412c7e2a5a9ece401079ee5d9eb2c1372e9f5377fac56c7","1c611ff373ce1958aafc40b328048ac2540ba5c7f373cf2897e0d9aeaabe90a0","548d9051fd6a3544216aec47d3520ce922566c2508df667a1b351658b2e46b8d","c175f4dd3b15b38833abfe19acb8ee38c6be2f80f5964b01a4354cafb676a428","b9a4824bb83f25d6d227394db2ed99985308cf2a3a35f0d6d39aa72b15473982",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"b84f34005e497dbc0c1948833818cdb38e8c01ff4f88d810b4d70aa2e6c52916","affectsGlobalScope":true},"64eaa8ae36f494f21ffc6c911fa0f59a7ef4db2f0f98d816c4850cd5ba487a27","bdf415e4d75aabe69d58f4e5e13b2ccfe105b650679c6eff6cd6e61285f1fba8","0c5c23cfcfdf8f74c51593b0679d793edf656a134288cbcfb9c55258ab19bf69","6b3c4aa0ce6eb9cf6187e61d352cd269ff0e492f333ae102dda121e76f90285c","565fda33feca88f4b5db23ba8e605da1fd28b6d63292d276bdbd2afe6cd4c490","e822320b448edce0c7ede9cbeada034c72e1f1c8c8281974817030564c63dcb1",{"version":"ebfc5ac063aa88ab26982757a8a9e6e9299306a5f9ea3e03ea5fd78c23dc5d79","affectsGlobalScope":true},"16bc7fc733bade239218d2f4351b0b53d7482c5aa917e5e12cf294c688f2e1b3","821c79b046e40d54a447bebd9307e70b86399a89980a87bbc98114411169e274","17bc38afc78d40b2f54af216c0cc31a4bd0c6897a5945fa39945dfc43260be2c",{"version":"0e6726f7ab7649f3c668f4eadb45461dcfaab2c5899dd7db1e08f8a63905eb94","affectsGlobalScope":true},{"version":"d44445141f204d5672c502a39c1124bcf1df225eba05df0d2957f79122be87b5","affectsGlobalScope":true},"de905bc5f7e7a81cb420e212b95ab5e3ab840f93e0cfa8ce879f6e7fa465d4a2","91b64f6b37cfe86783b9a24d366f4c6c331c3ffb82926c60107cbc09960db804","bede3143eeddca3b8ec3592b09d7eb02042f9e195251040c5146eac09b173236","64a40cf4ec8a7a29db2b4bc35f042e5be8537c4be316e5221f40f30ca8ed7051","294c082d609e6523520290db4f1d54114ebc83643fb42abd965be5bcc5d9416b","5a64238d944ada60d4bec0f91ba970a064618ae3795cff27bb163c84b811284a","37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093",{"version":"ce2fd18db93f879d300db4ae7738c28f3eefc7c2d9274ab7d22046f1d71ccd6f","affectsGlobalScope":true},"b85151402164ab7cb665e58df5c1a29aa25ea4ed3a367f84a15589e7d7a9c8ca",{"version":"5d8cd11d44a41a6966a04e627d38efce8d214edb36daf494153ec15b2b95eee2","affectsGlobalScope":true},{"version":"bc6cb10764a82f3025c0f4822b8ad711c16d1a5c75789be2d188d553b69b2d48","affectsGlobalScope":true},"41d510caf7ed692923cb6ef5932dc9cf1ed0f57de8eb518c5bab8358a21af674","b1a9bf3c14dd2bac9784aaffbeabd878f5f6618a4fd3bfc1633a2758b0e96f32","dc058956a93388aab38307b7b3b9b6379e1021e73a244aab6ac9427dc3a252a7","f33302cf240672359992c356f2005d395b559e176196d03f31a28cc7b01e69bc",{"version":"3ce25041ff6ae06c08fcaccd5fcd9baf4ca6e80e6cb5a922773a1985672e74c2","affectsGlobalScope":true},{"version":"652c0de14329a834ff06af6ad44670fac35849654a464fd9ae36edb92a362c12","affectsGlobalScope":true},"3b1e178016d3fc554505ae087c249b205b1c50624d482c542be9d4682bab81fc","f47fc200a9cad1976d5d046aa27b821918e93c82a2fd63cf06b47c9d0f88aaae","cf45d0510b661f1da461479851ff902f188edb111777c37055eff12fa986a23a",{"version":"cb41c174db409193c4b26e1e02b39a80f3050318a6af120cc304323f29e1ec1b","affectsGlobalScope":true},"37bef1064b7d015aeaa7c0716fe23a0b3844abe2c0a3df7144153ca8445fe0da","75bd411256302c183207051fd198b4e0dbab45d28a6daf04d3ad61f70a2c8e90",{"version":"29f72ec1289ae3aeda78bf14b38086d3d803262ac13904b400422941a26a3636","affectsGlobalScope":true}],"root":[47,[150,159],[166,173],[175,180],[182,190]],"options":{"allowJs":true,"checkJs":false,"composite":false,"declaration":false,"declarationMap":false,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"inlineSources":true,"jsx":2,"module":1,"noImplicitAny":false,"noUncheckedIndexedAccess":false,"noUnusedLocals":true,"outDir":"./","rootDir":"../../src/test","sourceMap":true,"strict":false,"target":8},"fileIdsList":[[71,72,73,196,234],[70,74,196,234],[69,74,196,234],[196,234],[74,196,234],[70,74,75,76,77,78,125,126,196,234],[124,196,234],[74,75,76,196,234],[123,196,234],[52,53,54,55,196,234],[52,196,234],[60,196,234],[59,60,61,62,196,234],[48,49,50,51,56,57,58,63,64,65,66,196,234],[68,128,130,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,196,234],[128,196,234],[67,129,196,234],[127,196,234],[131,196,234],[133,196,234],[136,196,234],[135,196,234],[129,196,234],[67,135,196,234],[128,131,196,234],[139,196,234],[132,196,234],[128,141,196,234],[128,135,196,234],[67,130,196,234],[67,138,196,234],[67,127,149,196,234],[67,149,196,234],[174,196,234],[67,149,181,196,234],[67,127,138,139,149,196,234],[67,127,140,142,143,149,196,234],[149,196,234],[127,149,196,234],[67,135,149,196,234],[67,127,145,149,150,151,152,153,154,196,234],[67,127,149,158,196,234],[163,165,196,234],[67,127,139,149,196,234],[196,231,234],[196,233,234],[196,234,239,267],[196,234,235,246,247,254,264,275],[196,234,235,236,246,254],[191,192,193,196,234],[196,234,237,276],[196,234,238,239,247,255],[196,234,239,264,272],[196,234,240,242,246,254],[196,233,234,241],[196,234,242,243],[196,234,246],[196,234,244,246],[196,233,234,246],[196,234,246,247,248,264,275],[196,234,246,247,248,261,264,267],[196,229,234,280],[196,234,242,246,249,254,264,275],[196,234,246,247,249,250,254,264,272,275],[196,234,249,251,264,272,275],[196,234,246,252],[196,234,253,275,280],[196,234,242,246,254,264],[196,234,255],[196,234,256],[196,233,234,257],[196,234,258,274,280],[196,234,259],[196,234,260],[196,234,246,261,262],[196,234,261,263,276,278],[196,234,246,264,265,267],[196,234,266,267],[196,234,264,265],[196,234,267],[196,234,268],[196,234,264],[196,234,246,270,271],[196,234,270,271],[196,234,239,254,264,272],[196,234,273],[234],[194,195,196,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281],[196,234,254,274],[196,234,249,260,275],[196,234,239,276],[196,234,264,277],[196,234,253,278],[196,234,279],[196,234,239,246,248,257,264,275,278,280],[196,234,264,281],[164,196,234],[82,83,87,114,115,117,118,119,121,122,196,234],[80,81,196,234],[80,196,234],[82,122,196,234],[82,83,119,120,122,196,234],[122,196,234],[79,122,123,196,234],[82,83,121,122,196,234],[82,83,85,86,121,122,196,234],[82,83,84,121,122,196,234],[82,83,87,114,115,116,117,118,121,122,196,234],[79,82,83,87,119,121,196,234],[87,122,196,234],[89,90,91,92,93,94,95,96,97,98,122,196,234],[112,122,196,234],[88,99,107,108,109,110,111,113,196,234],[92,122,196,234],[100,101,102,103,104,105,106,122,196,234],[196,234,247,249,260,275],[160,161,196,234],[196,206,210,234,275],[196,206,234,264,275],[196,201,234],[196,203,206,234,272,275],[196,234,254,272],[196,234,282],[196,201,234,282],[196,203,206,234,254,275],[196,198,199,202,205,234,246,264,275],[196,198,204,234],[196,202,206,234,267,275,282],[196,222,234,282],[196,200,201,234,282],[196,206,234],[196,200,201,202,203,204,205,206,207,208,210,211,212,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,234],[196,206,213,214,234],[196,204,206,214,215,234],[196,205,234],[196,198,201,206,234],[196,206,210,214,215,234],[196,210,234],[196,204,206,209,234,275],[196,198,203,204,206,210,213,234],[196,201,206,222,234,280,282]],"referencedMap":[[74,1],[71,2],[70,3],[72,4],[73,5],[69,4],[75,4],[127,6],[76,4],[77,4],[78,4],[125,7],[126,8],[124,9],[49,4],[50,4],[51,4],[52,4],[53,4],[56,10],[54,4],[55,11],[57,4],[58,4],[59,4],[60,4],[61,12],[63,13],[62,4],[64,4],[65,4],[67,14],[66,4],[68,4],[149,15],[129,16],[130,17],[128,18],[132,19],[134,20],[137,21],[174,22],[131,23],[136,24],[138,25],[181,26],[139,27],[140,20],[142,28],[143,29],[144,25],[145,20],[133,30],[141,31],[135,16],[146,4],[147,4],[148,4],[47,4],[168,32],[169,32],[170,33],[171,32],[172,33],[173,32],[175,34],[176,32],[177,32],[178,32],[179,32],[180,32],[182,35],[183,36],[184,37],[185,38],[186,32],[187,32],[188,33],[189,39],[190,40],[155,41],[156,38],[157,38],[159,42],[166,43],[167,44],[153,4],[151,4],[152,4],[154,4],[150,4],[158,4],[48,4],[283,4],[231,45],[232,45],[233,46],[234,47],[235,48],[236,49],[191,4],[194,50],[192,4],[193,4],[237,51],[238,52],[239,53],[240,54],[241,55],[242,56],[243,56],[245,57],[244,58],[246,59],[247,60],[248,61],[230,62],[249,63],[250,64],[251,65],[252,66],[253,67],[254,68],[255,69],[256,70],[257,71],[258,72],[259,73],[260,74],[261,75],[262,75],[263,76],[264,77],[266,78],[265,79],[267,80],[268,81],[269,82],[270,83],[271,84],[272,85],[273,86],[196,87],[195,4],[282,88],[274,89],[275,90],[276,91],[277,92],[278,93],[279,94],[280,95],[281,96],[165,97],[164,4],[123,98],[80,4],[82,99],[81,100],[86,101],[121,102],[118,103],[120,104],[83,103],[84,105],[88,105],[87,106],[85,107],[119,108],[117,103],[122,109],[115,4],[116,4],[89,110],[94,103],[96,103],[91,103],[92,110],[98,103],[99,111],[90,103],[95,103],[97,103],[93,103],[113,112],[112,103],[114,113],[108,103],[110,103],[109,103],[105,103],[111,114],[106,103],[107,115],[100,103],[101,103],[102,103],[103,103],[104,103],[197,4],[79,4],[163,116],[160,4],[161,4],[162,117],[45,4],[46,4],[8,4],[9,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[20,4],[4,4],[21,4],[25,4],[22,4],[23,4],[24,4],[26,4],[27,4],[28,4],[5,4],[29,4],[30,4],[31,4],[32,4],[6,4],[36,4],[33,4],[34,4],[35,4],[37,4],[7,4],[38,4],[43,4],[44,4],[39,4],[40,4],[41,4],[42,4],[1,4],[213,118],[220,119],[212,118],[227,120],[204,121],[203,122],[226,123],[221,124],[224,125],[206,126],[205,127],[201,128],[200,123],[223,129],[202,130],[207,131],[208,4],[211,131],[198,4],[229,132],[228,131],[215,133],[216,134],[218,135],[214,136],[217,137],[222,123],[209,138],[210,139],[219,140],[199,82],[225,141]],"exportedModulesMap":[[74,1],[71,2],[70,3],[72,4],[73,5],[69,4],[75,4],[127,6],[76,4],[77,4],[78,4],[125,7],[126,8],[124,9],[49,4],[50,4],[51,4],[52,4],[53,4],[56,10],[54,4],[55,11],[57,4],[58,4],[59,4],[60,4],[61,12],[63,13],[62,4],[64,4],[65,4],[67,14],[66,4],[68,4],[149,15],[129,16],[130,17],[128,18],[132,19],[134,20],[137,21],[174,22],[131,23],[136,24],[138,25],[181,26],[139,27],[140,20],[142,28],[143,29],[144,25],[145,20],[133,30],[141,31],[135,16],[146,4],[147,4],[148,4],[47,4],[168,32],[169,32],[170,33],[171,32],[172,33],[173,32],[175,34],[176,32],[177,32],[178,32],[179,32],[180,32],[182,35],[183,36],[184,37],[185,38],[186,32],[187,32],[188,33],[189,39],[190,40],[155,41],[156,38],[157,38],[159,42],[166,43],[167,44],[153,4],[151,4],[152,4],[154,4],[150,4],[158,4],[48,4],[283,4],[231,45],[232,45],[233,46],[234,47],[235,48],[236,49],[191,4],[194,50],[192,4],[193,4],[237,51],[238,52],[239,53],[240,54],[241,55],[242,56],[243,56],[245,57],[244,58],[246,59],[247,60],[248,61],[230,62],[249,63],[250,64],[251,65],[252,66],[253,67],[254,68],[255,69],[256,70],[257,71],[258,72],[259,73],[260,74],[261,75],[262,75],[263,76],[264,77],[266,78],[265,79],[267,80],[268,81],[269,82],[270,83],[271,84],[272,85],[273,86],[196,87],[195,4],[282,88],[274,89],[275,90],[276,91],[277,92],[278,93],[279,94],[280,95],[281,96],[165,97],[164,4],[123,98],[80,4],[82,99],[81,100],[86,101],[121,102],[118,103],[120,104],[83,103],[84,105],[88,105],[87,106],[85,107],[119,108],[117,103],[122,109],[115,4],[116,4],[89,110],[94,103],[96,103],[91,103],[92,110],[98,103],[99,111],[90,103],[95,103],[97,103],[93,103],[113,112],[112,103],[114,113],[108,103],[110,103],[109,103],[105,103],[111,114],[106,103],[107,115],[100,103],[101,103],[102,103],[103,103],[104,103],[197,4],[79,4],[163,116],[160,4],[161,4],[162,117],[45,4],[46,4],[8,4],[9,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[20,4],[4,4],[21,4],[25,4],[22,4],[23,4],[24,4],[26,4],[27,4],[28,4],[5,4],[29,4],[30,4],[31,4],[32,4],[6,4],[36,4],[33,4],[34,4],[35,4],[37,4],[7,4],[38,4],[43,4],[44,4],[39,4],[40,4],[41,4],[42,4],[1,4],[213,118],[220,119],[212,118],[227,120],[204,121],[203,122],[226,123],[221,124],[224,125],[206,126],[205,127],[201,128],[200,123],[223,129],[202,130],[207,131],[208,4],[211,131],[198,4],[229,132],[228,131],[215,133],[216,134],[218,135],[214,136],[217,137],[222,123],[209,138],[210,139],[219,140],[199,82],[225,141]],"semanticDiagnosticsPerFile":[74,71,70,72,73,69,75,127,76,77,78,125,126,124,49,50,51,52,53,56,54,55,57,58,59,60,61,63,62,64,65,67,66,68,149,129,130,128,132,134,137,174,131,136,138,181,139,140,142,143,144,145,133,141,135,146,147,148,47,168,169,170,171,172,173,175,176,177,178,179,180,182,183,184,185,186,187,188,189,190,155,156,157,159,166,167,153,151,152,154,150,158,48,283,231,232,233,234,235,236,191,194,192,193,237,238,239,240,241,242,243,245,244,246,247,248,230,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,266,265,267,268,269,270,271,272,273,196,195,282,274,275,276,277,278,279,280,281,165,164,123,80,82,81,86,121,118,120,83,84,88,87,85,119,117,122,115,116,89,94,96,91,92,98,99,90,95,97,93,113,112,114,108,110,109,105,111,106,107,100,101,102,103,104,197,79,163,160,161,162,45,46,8,9,11,10,2,12,13,14,15,16,17,18,19,3,20,4,21,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,213,220,212,227,204,203,226,221,224,206,205,201,200,223,202,207,208,211,198,229,228,215,216,218,214,217,222,209,210,219,199,225]},"version":"5.4.5"}
|
|
1
|
+
{"program":{"fileNames":["../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es5.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.dom.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.decorators.d.ts","../../../../../../node_modules/.pnpm/typescript@5.4.5/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/test/global.d.ts","../../../../../../node_modules/.pnpm/@types+events@3.0.3/node_modules/@types/events/index.d.ts","../../../property-common/dist/chronometer.d.ts","../../../property-common/dist/consoleUtils.d.ts","../../../property-common/dist/constants.d.ts","../../../property-common/dist/datastructures/collection.d.ts","../../../property-common/dist/datastructures/dataArray.d.ts","../../../property-common/dist/datastructures/integer64.d.ts","../../../property-common/dist/datastructures/sortedCollection.d.ts","../../../property-common/dist/datastructures/index.d.ts","../../../property-common/dist/deferredPromise.d.ts","../../../property-common/dist/deterministicRandomGenerator.d.ts","../../../property-common/dist/error_objects/flaggedError.d.ts","../../../property-common/dist/error_objects/httpError.d.ts","../../../property-common/dist/error_objects/httpErrorNoStack.d.ts","../../../property-common/dist/error_objects/operationError.d.ts","../../../property-common/dist/error_objects/index.d.ts","../../../property-common/dist/guidUtils.d.ts","../../../property-common/dist/hashCalculator.d.ts","../../../property-common/dist/joinPaths.d.ts","../../../property-common/dist/index.d.ts","../enableValidations.d.ts","../../../property-changeset/dist/changeset_operations/operationTypes.d.ts","../../../property-changeset/dist/changeset_operations/arrayChangesetIterator.d.ts","../../../property-changeset/dist/changeset_operations/array.d.ts","../../../property-changeset/dist/changeset_operations/changesetConflictTypes.d.ts","../../../property-changeset/dist/changeset_operations/indexedCollection.d.ts","../../../property-changeset/dist/changeset.d.ts","../../../property-changeset/dist/helpers/typeidHelper.d.ts","../../../property-changeset/dist/pathHelper.d.ts","../../../property-changeset/dist/rebase.d.ts","../../../property-changeset/dist/templateSchema.d.ts","../../../../../../node_modules/.pnpm/fast-uri@3.0.3/node_modules/fast-uri/types/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/code.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/scope.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/codegen/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/rules.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/util.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/subschema.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/errors.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/validate/dataType.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalItems.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/propertyNames.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/anyOf.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/oneOf.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/limitNumber.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/multipleOf.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/uniqueItems.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/format/format.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedProperties.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedItems.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/validation/dependentRequired.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/vocabularies/errors.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/types/json-schema.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/types/jtd-schema.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/runtime/validation_error.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/ref_error.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/core.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/resolve.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/compile/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/types/index.d.ts","../../../../../../node_modules/.pnpm/ajv@8.17.1/node_modules/ajv/dist/ajv.d.ts","../../../property-changeset/dist/validationResultBuilder.d.ts","../../../property-changeset/dist/templateValidator.d.ts","../../../property-changeset/dist/utils.d.ts","../../../property-changeset/dist/index.d.ts","../properties/baseProperty.d.ts","../properties/abstractStaticCollectionProperty.d.ts","../properties/arrayProperty.d.ts","../properties/indexedCollectionBaseProperty.d.ts","../properties/containerProperty.d.ts","../properties/valueArrayProperty.d.ts","../properties/enumArrayProperty.d.ts","../properties/valueProperty.d.ts","../properties/intProperties.d.ts","../properties/enumProperty.d.ts","../properties/mapProperty.d.ts","../properties/nodeProperty.d.ts","../properties/referenceArrayProperty.d.ts","../properties/valueMapProperty.d.ts","../properties/referenceMapProperty.d.ts","../properties/referenceProperty.d.ts","../properties/setProperty.d.ts","../properties/stringProperty.d.ts","../propertyFactory.d.ts","../propertyTemplate.d.ts","../propertyUtils.d.ts","../index.d.ts","../../src/test/validation/goodPointId.js","../../src/test/validation/badPrimitiveTypeid.js","../../src/test/validation/goodColorId.js","../../src/test/validation/badMissingSemverInTypeid.js","../../src/test/validation/goodColorPalette.js","../../src/test/propertyFactory.spec.js","../../src/test/propertyTemplateWrapper.spec.js","../../src/test/propertyUtils.spec.js","../../src/test/validation/reversibleChangeSetTestData.js","../../src/test/reversibleChangeset.spec.js","../../../../../../node_modules/.pnpm/querystring@0.2.1/node_modules/querystring/decode.d.ts","../../../../../../node_modules/.pnpm/querystring@0.2.1/node_modules/querystring/encode.d.ts","../../../../../../node_modules/.pnpm/querystring@0.2.1/node_modules/querystring/index.d.ts","../../../../../../node_modules/.pnpm/nock@13.5.6/node_modules/nock/types/index.d.ts","../../../../../../node_modules/.pnpm/@types+sinonjs__fake-timers@8.1.5/node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../../../../node_modules/.pnpm/@types+sinon@17.0.3/node_modules/@types/sinon/index.d.ts","../../src/test/setup.js","../../src/test/utils.spec.js","../../src/test/properties/arrayProperty.spec.js","../../src/test/properties/baseProperty.spec.js","../../src/test/properties/containerProperty.spec.js","../../src/test/properties/customArrayProperty.spec.js","../../src/test/properties/enumArrayProperty.spec.js","../../src/test/properties/enumProperty.spec.js","../properties/floatProperties.d.ts","../../src/test/properties/float32.spec.js","../../src/test/properties/int64ArrayProperty.spec.js","../../src/test/properties/int64MapProperty.spec.js","../../src/test/properties/int64Property.spec.js","../../src/test/properties/isLeafNode.spec.js","../../src/test/properties/mapProperty.spec.js","../properties/namedNodeProperty.d.ts","../../src/test/properties/namedNodeProperty.spec.js","../../src/test/properties/nodeProperty.spec.js","../../src/test/properties/referenceProperty.spec.js","../../src/test/properties/relationshipProperty.spec.js","../../src/test/properties/setProperty.spec.js","../../src/test/properties/stringProperty.spec.js","../../src/test/properties/uint64Property.spec.js","../../src/test/properties/valueMapProperty.spec.js","../../src/test/properties/valueProperty.spec.js","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/compatibility/disposable.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/compatibility/indexable.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/compatibility/iterators.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/compatibility/index.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../../../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/header.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/readable.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/file.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/fetch.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/formdata.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/connector.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/client.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/errors.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/dispatcher.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-dispatcher.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/global-origin.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool-stats.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/pool.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/handlers.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/balanced-pool.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/agent.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-interceptor.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-agent.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-client.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-pool.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/mock-errors.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/proxy-agent.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/api.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cookies.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/patch.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/filereader.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/diagnostics-channel.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/websocket.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/content-type.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/cache.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/interceptors.d.ts","../../../../../../node_modules/.pnpm/undici-types@5.26.5/node_modules/undici-types/index.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/globals.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/assert.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/assert/strict.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/async_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/buffer.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/child_process.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/cluster.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/console.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/constants.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/crypto.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/dgram.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/diagnostics_channel.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/dns.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/dns/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/domain.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/dom-events.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/events.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/fs.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/fs/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/http.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/http2.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/https.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/inspector.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/module.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/net.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/os.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/path.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/perf_hooks.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/process.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/punycode.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/querystring.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/readline.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/readline/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/repl.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/stream.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/stream/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/stream/consumers.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/stream/web.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/string_decoder.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/test.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/timers.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/timers/promises.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/tls.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/trace_events.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/tty.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/url.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/util.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/v8.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/vm.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/wasi.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/worker_threads.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/zlib.d.ts","../../../../../../node_modules/.pnpm/@types+node@18.19.86/node_modules/@types/node/ts5.6/index.d.ts","../../../../../../node_modules/.pnpm/@types+mocha@10.0.10/node_modules/@types/mocha/index.d.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"76f838d5d49b65de83bc345c04aa54c62a3cfdb72a477dc0c0fce89a30596c30","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"3b71a95ae71d1005f34e4b88439dc62f2af9370d4caff4e3521bba5b7348df15","affectsGlobalScope":true},"93d28b4eb12c68fccc1f2fc04a4ef83ea3b2a03b18055d3bf29cab267aa7042e","5ae06f377b0b83db5a1b874964edbee89349ca8cc209e441453853db83996b54","a9ef47ce790d61058be519b195888d3d96663c0633b251f152d050df6aa5008b","3112eb26a50643fba9f67a04a3aa0cbc1a6e937bef0e5695f777f9acd03ab593","8df6a0a013fa2bd1409b0da580a97d0e481f117300df2256da23a0278cafdeed","ebd41802809b2ef42be12754e10ba34a2bbd8970312715085944edd34c29450e","252256fa2e954a2a41db5447aa11ed67dbec668edbdfd854cd10eaf83a4fc810","f07c758ad138309e628c5596c2be99b8427bbf1061cc29be9c3b24c8e7381464","437b66084d74fef1016d1ca75d60c27e787e6890490361c1c6af34c20da612df","cdce2e3d2232a16897065db6045cc912c44129307b58693c1eb50a0ce53f6784","73d681ce6c2d560ed98a80a5991e3110642857e9728a2740d40c2261347d1239","3d237422ddc611dc54b09f560115a94db5bdbcd893dfa1d1ad3cb4f7ea923265","8b7cc9ce0b0baff389d7e0d862c886c1d4e41ef8f3014abe7558423d4cc9c343","24cc1451f5c8df6759734cfd990cb49b40cf4f1b387961e96179ac406a9fd5a5","c17e7f6b7a2bb8f33f0300ac899fb02ee4aef6bf8498682f8047da7774115edf","fb24943a9919b0ba038a2fafbcaaad022fd31b2d9e261d5bc2452d83f6cdbbd6","e42e334b0e3222a3dce6da5bcffbce9627292d9e80e7c03721efd7461617a2ae","82b45e5996e1246d09b9d0439af8a3dc1ac5b7af0352ee748d15281fd4eef222","98c7f160839c2badf3ee243904e71f7529523beea7cc5be60444c83a0b06a728","a981c35f7762215d3dc74a166727d1f31e2582346e0868eee6a0d34ba2d4b68d","2ee83bc5371fd1e571e905de36f1ac5f20e05f5969493540d9aadc781f8ccaaa","808213e7e3c5d1e36072fca77c018a754a882c448bb58a1c40bf04334ae032c4","564efe318141b9f89cfb8d0891ca25b57f41a30ac64e7b2b2119270ecab06ca8","7e3acc27a0283e894aba8682a992c5ee067758b2522b3c323e3136229d31bcbc","0aae832ccde937603fc48837170272233e79517413fa1e95f20e86691f005c0f","24d5972c47e93edf393730f7b5c1f7593890b9b155e94cbc9647bd34de5939fb","52ca345e355f30eaf398067a6b06a6038798e13f26f7fbec3521188d8aa7835a","763925a9fd49689138f6fb0f70bf9a53b6fb1d08205cb39b4271900f1171e7ea","40180e645ef0b5f0b5039cb5c3bb5391da84f9cf0c50ca78498e3b0fe7c8b2e3","fbc8fb43a086455229aa0c8bb54731c60e04fc653dd71c65280c006bd373bc50","5af62a08978a6211dcf57f1f33e3fd37dfad2b44d5c1dc9ddf5633f5b2f34fe1","ee660a1f2acd3d7fc7b28df06c4e2125229666c4d72e5455ae3841bfd222f684","2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff","6a785f84e63234035e511817dd48ada756d984dd8f9344e56eb8b2bdcd8fd001","c1422d016f7df2ccd3594c06f2923199acd09898f2c42f50ea8159f1f856f618","2973b1b7857ca144251375b97f98474e9847a890331e27132d5a8b3aea9350a8","0eb6152d37c84d6119295493dfcc20c331c6fda1304a513d159cdaa599dcb78b","237df26f8c326ca00cd9d2deb40214a079749062156386b6d75bdcecc6988a6b","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","7557d4d7f19f94341f4413575a3453ba7f6039c9591015bcf4282a8e75414043","a3b2cc16f3ce2d882eca44e1066f57a24751545f2a5e4a153d4de31b4cac9bb5","ac2b3b377d3068bfb6e1cb8889c99098f2c875955e2325315991882a74d92cc8","8deb39d89095469957f73bd194d11f01d9894b8c1f1e27fbf3f6e8122576b336","a38a9c41f433b608a0d37e645a31eecf7233ef3d3fffeb626988d3219f80e32f","8e1428dcba6a984489863935049893631170a37f9584c0479f06e1a5b1f04332","1fce9ecb87a2d3898941c60df617e52e50fb0c03c9b7b2ba8381972448327285","5ef0597b8238443908b2c4bf69149ed3894ac0ddd0515ac583d38c7595b151f1","ac52b775a80badff5f4ac329c5725a26bd5aaadd57afa7ad9e98b4844767312a","6ae5b4a63010c82bf2522b4ecfc29ffe6a8b0c5eea6b2b35120077e9ac54d7a1","dd7109c49f416f218915921d44f0f28975df78e04e437c62e1e1eb3be5e18a35","eee181112e420b345fc78422a6cc32385ede3d27e2eaf8b8c4ad8b2c29e3e52e","25fbe57c8ee3079e2201fe580578fab4f3a78881c98865b7c96233af00bf9624","62cc8477858487b4c4de7d7ae5e745a8ce0015c1592f398b63ee05d6e64ca295","cc2a9ec3cb10e4c0b8738b02c31798fad312d21ef20b6a2f5be1d077e9f5409d","4b4fadcda7d34034737598c07e2dca5d7e1e633cb3ba8dd4d2e6a7782b30b296","360fdc8829a51c5428636f1f83e7db36fef6c5a15ed4411b582d00a1c2bd6e97","1cf0d15e6ab1ecabbf329b906ae8543e6b8955133b7f6655f04d433e3a0597ab","7c9f98fe812643141502b30fb2b5ec56d16aaf94f98580276ae37b7924dd44a4","b3547893f24f59d0a644c52f55901b15a3fa1a115bc5ea9a582911469b9348b7","596e5b88b6ca8399076afcc22af6e6e0c4700c7cd1f420a78d637c3fb44a885e","adddf736e08132c7059ee572b128fdacb1c2650ace80d0f582e93d097ed4fbaf","d4cad9dc13e9c5348637170ddd5d95f7ed5fdfc856ddca40234fa55518bc99a6","d70675ba7ba7d02e52b7070a369957a70827e4b2bca2c1680c38a832e87b61fd","3be71f4ce8988a01e2f5368bdd58e1d60236baf511e4510ee9291c7b3729a27e","423d2ccc38e369a7527988d682fafc40267bcd6688a7473e59c5eea20a29b64f","2f9fde0868ed030277c678b435f63fcf03d27c04301299580a4017963cc04ce6","feeb73d48cc41c6dd23d17473521b0af877751504c30c18dc84267c8eeea429a","25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","b83139ae818dd20f365118f9999335ca4cd84ae518348619adc5728e7e0372d5","e0205f04611bea8b5b82168065b8ef1476a8e96236201494eb8c785331c43118","62d26d8ba4fa15ab425c1b57a050ed76c5b0ecbffaa53f182110aa3a02405a07","9941cbf7ca695e95d588f5f1692ab040b078d44a95d231fa9a8f828186b7b77d","41b8775befd7ded7245a627e9f4de6110236688ce4c124d2d40c37bc1a3bfe05","bcd87fbc6646c89fa9cd119c1183b038af2e311bc765252c07ba94f914f14ee5","b1914f61c63625e77d7592fe3b314349f79acd48ffc7ee601735995b0aa8c555","96a9dfa37451fa6b7e26ae19b93046cefa2f8f75659b8cdff0a4ea22430059be","d187bd984e6085880ab48fd0125f09b4d0b30379822d0f8896ff3c82f10f7374","7a0d50087fbaa87f57aa3f311036e7db4461021d3c4840c50f10dd998c1ba81a","4d5cdfd89845a7515d0a53b9738cf963bb423825efd2fd7b817aef4c2b7899b3","659c3096fb199e044f38955772e72b9feea513036c6bf9336b169f0d9c207143","93833e55144a53add590db703b8960797960aa5969d95db063de95f33284e6c9","ec759759eecc230312bf344baa98bd82a3e9e789807f6cf9179dbb928b855538","c660e3db078c3978c2240221a662872239a37d652f0808df181d3049c84d4c6f","9ca8d6e16fe5dc1fd0972720d95f39cccd5edddc08024fc391615c8f03d92575","38e8433980350f3d158fc96f4421c412f30cf40d2174464a4fd55a3e9e8029ef","51437cd3bd3103ab9d58626d13b3d1b320bfce17e6449eeed4f89c5f2ef2b591","5fc12107a94214c1a962047bc76b26dd9fb96aa1db155692e8196ef24983a244","97a89ae1e24bec63b92a9332a4061e148bfedd73c4df18bd181c788ecc9550dd","33d991e18bc448a1cce1b3ecc21eda9074d8be805aabe65eab42f5fe865bce5e","cd7cbb95965d39ad49cc3d7002e576af21c3d782a9e25b2c4b3b3e0bbb880e48","8eaa563156ded0fb3cfc88b6bf7c3ef122b5eb55a1599c57b037572588f7329a","16ea7a5e82b3d702c2b523384f1943225ec3e9a2878cad0526db10fc637814dd","ce0bd9367a0419bd48b83755b37088125af815cc7fda287057ed0abe1c22699c","b0dda89630f7be4be08d05efce6509f87ec064dec8cd9d51791647595b389e92","f69295f4cb5a16fcbd86585b8bdc9156ac34bfda2e12bb9a1e8a53e3ce2d8207","5dc7cf2161877c6535aaf458d38db0bd023772647749cea00b31d42f829be3e2","a341e63fad1e5633ff8d8c3d7c88eb2f058c4a0bbb6de2cff75c1eb1798d059b","c2786e5958ed7ad2b988420bd525657948022ad0cf6b2b138d2e6f5a34defebc","b04317a8ddd4d374445de4849ebe22f10b8eeea2a3c0f97dfed6aefa2fb6f85a","58153feada413067a4d5a7d0b0a0083628fa640ae3a1f1210a262a459a49e202","4de5255352f2daf0abbf510282df8c24cedb8b957b735e985aa86ce92639a7e0","ee4605eed60ec956b4ea00076fbf15835b1558c9aba3b3bddf0b5f1b9c6027db","c6f0c4885487404d0b019ec92f0c2a8d7f8c952a38c7da8b5ec6e1f128d0d238","01fb6bcf1cbd295f1f277d38a4ba80ab41a38f3d8f463ddbdf33fee566744f42","2952e7392003119d005d0a67e6f0bc167f02c042ae369eaec2941c03f6879ff8","0f513c065e22b75215129f877381949a59eb580c91575f9c355237b3b422fcce","e1ccc66d5f066a8a73af8db7875e59e569f8daf2042cd9b789d70d970628be10","4eff4f0dd79a6a6c9f735ebb67f66954b2607a74eb747dbc98761c09722d1b60","7cb3e4ec7f2f3c3b131f4d26856d6c70d7f2a006e7e561ac92b0e6119282cf6a","ad7e61eca7f2f8bf47e72695f9f6663b75e41d87ef49abdb17c0cb843862f8aa","ecba2e44af95b0599c269a92628cec22e752868bce37396740deb51a5c547a26","46a9fb41a8f3bc7539eeebc15a6e04b9e55d7537a081615ad3614220d34c3e0f","c1f83e344cdcb114420295d422e39b36d2cda7583da37e0f0f196ccbdfd20185","7d2a0ba1297be385a89b5515b88cd31b4a1eeef5236f710166dc1b36b1741e1b","8e87660f5170c195ade218937e360484775be6a4e75a098665d9ba5a2e4cdc15","ae3487d09be4f5bc4aa37e379a1562515cbc67ca991b55b8a917ab28eb33366b","b6697ae6abee0d35d3117da0936544520c6b090a0edb4213404e2530ea220768","bdcbe1291aaa7b715dd03955ac20c5f65fd7794322ce18f6c7e751b155ccd2fa","af3b3ae0ba4957997d8b48832b9145041f94f649ae4052674df9872e1131aa7b","1df761632b29b2a2d42d021568052b209919db8a7520b1d6ccc1bd6efa4b5bb5","9cbc5b0459355d284fa82b48b0857036f39899912837950770ce8362fbee555f","b4533489d8920a69ef9cb8b5aec945d49794853f56caf583a7be3175168f1da4","d38eb5500b25b5993c6f43248e85053215a8d02eb79ec91cd117759055dd8d5b","8315e2aa27ea80e2a01536038f94a9741dc90dc4c74485d4475f4c41449e4ec8","6a82970842e44d2e0184dfd8198e3382234e2a44df7e5e92b5fa9547489111b3","4beb516375217815c7ccaa154c1596f0cb99be6896fca38b49719338986c9ec2","0c889232b8246126636f302df3520bda69061a7c7e875ad6dfd4772b3fccbe4d","69f87ef0d7775ec5e83e57a6313ce49c9fa9ba1d7f6666d95430f5000c127339","4925f6a45ee9909291cf4394a6173eb461316e8fb6d0d04a647141d3d88663a8","d4920410c4ca7f082b8cfd00cfc7b107874dd9427bc5eeb9e660aecc7a500019","8bf7be6ceca6f6978e1096844e75280949454efce5d1579f148ae7de58c5efb0","ec3c0fa3ee53faa4a7d6fe3dfb5b121facbab75902fb373153549dc919797509","6c2ba26bb18e5a51caea307ac1389c50e188efe21748fcfa8997707f2deaac31","ec18908e1079f864608f9d0fff708c7be096c57a827e4adc45168b00c15e0589","37f3a2c2452573c838c81a6e1a69b8e5bd3e6f105857e8c6ae31707c44a47963","d3456535bd76d4a9c2e06944ce1b5ce33b9b9f078524a1cf12f7ee1c7f8b9706","85399cf525a33c668623a649d72a4496fc932cf8768e02065f23879922317164","074953789b1a88fbde4331514d5c0da3a293793eb4265b57aa3e41a3eb8d9e26","9f364a42b5396576639465d08b4b9362800b6bf0fcc79ca7b192de9ec2eff410","1d279bb14277bcb27dc320581b787f55dcdbaff2582345991f18617a692d496e",{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true},"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a",{"version":"613b21ccdf3be6329d56e6caa13b258c842edf8377be7bc9f014ed14cdcfc308","affectsGlobalScope":true},{"version":"716f9eff5b2d2cc17fbbd6f4bb833f61b65921ccb60c369d47368743bf2601bd","affectsGlobalScope":true},"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"5d4ba56f688207f1a47cf761ebe8987973e5bf9db6506edc160e211aa9f1dd51","affectsGlobalScope":true},"2aadab4729954c700a3ae50977f5611a8487dc3e3dc0e7f8fcd57f40475260a8","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"ea653f5686e3c9a52ad6568e05ddf07f048cc8469bb1a211931253f0491378a4","affectsGlobalScope":true},"51bb58ef3a22fdc49a2d338a852050855d1507f918d4d7fa77a68d72fee9f780","9b8d21812a10cba340a3e8dfacd5e883f6ccec7603eae4038fa90a0684fa9a07",{"version":"cef8931bc129687165253f0642427c2a72705a4613b3ac461b9fa78c7cdaef32","affectsGlobalScope":true},"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","47b62c294beb69daa5879f052e416b02e6518f3e4541ae98adbfb27805dd6711","f8375506002c556ec412c7e2a5a9ece401079ee5d9eb2c1372e9f5377fac56c7","1c611ff373ce1958aafc40b328048ac2540ba5c7f373cf2897e0d9aeaabe90a0","548d9051fd6a3544216aec47d3520ce922566c2508df667a1b351658b2e46b8d","c175f4dd3b15b38833abfe19acb8ee38c6be2f80f5964b01a4354cafb676a428","b9a4824bb83f25d6d227394db2ed99985308cf2a3a35f0d6d39aa72b15473982",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"b84f34005e497dbc0c1948833818cdb38e8c01ff4f88d810b4d70aa2e6c52916","affectsGlobalScope":true},"64eaa8ae36f494f21ffc6c911fa0f59a7ef4db2f0f98d816c4850cd5ba487a27","bdf415e4d75aabe69d58f4e5e13b2ccfe105b650679c6eff6cd6e61285f1fba8","0c5c23cfcfdf8f74c51593b0679d793edf656a134288cbcfb9c55258ab19bf69","6b3c4aa0ce6eb9cf6187e61d352cd269ff0e492f333ae102dda121e76f90285c","565fda33feca88f4b5db23ba8e605da1fd28b6d63292d276bdbd2afe6cd4c490","e822320b448edce0c7ede9cbeada034c72e1f1c8c8281974817030564c63dcb1",{"version":"ebfc5ac063aa88ab26982757a8a9e6e9299306a5f9ea3e03ea5fd78c23dc5d79","affectsGlobalScope":true},"16bc7fc733bade239218d2f4351b0b53d7482c5aa917e5e12cf294c688f2e1b3","821c79b046e40d54a447bebd9307e70b86399a89980a87bbc98114411169e274","17bc38afc78d40b2f54af216c0cc31a4bd0c6897a5945fa39945dfc43260be2c",{"version":"0e6726f7ab7649f3c668f4eadb45461dcfaab2c5899dd7db1e08f8a63905eb94","affectsGlobalScope":true},{"version":"d44445141f204d5672c502a39c1124bcf1df225eba05df0d2957f79122be87b5","affectsGlobalScope":true},"de905bc5f7e7a81cb420e212b95ab5e3ab840f93e0cfa8ce879f6e7fa465d4a2","91b64f6b37cfe86783b9a24d366f4c6c331c3ffb82926c60107cbc09960db804","bede3143eeddca3b8ec3592b09d7eb02042f9e195251040c5146eac09b173236","64a40cf4ec8a7a29db2b4bc35f042e5be8537c4be316e5221f40f30ca8ed7051","294c082d609e6523520290db4f1d54114ebc83643fb42abd965be5bcc5d9416b","5a64238d944ada60d4bec0f91ba970a064618ae3795cff27bb163c84b811284a","37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093",{"version":"ce2fd18db93f879d300db4ae7738c28f3eefc7c2d9274ab7d22046f1d71ccd6f","affectsGlobalScope":true},"b85151402164ab7cb665e58df5c1a29aa25ea4ed3a367f84a15589e7d7a9c8ca",{"version":"5d8cd11d44a41a6966a04e627d38efce8d214edb36daf494153ec15b2b95eee2","affectsGlobalScope":true},{"version":"bc6cb10764a82f3025c0f4822b8ad711c16d1a5c75789be2d188d553b69b2d48","affectsGlobalScope":true},"41d510caf7ed692923cb6ef5932dc9cf1ed0f57de8eb518c5bab8358a21af674","b1a9bf3c14dd2bac9784aaffbeabd878f5f6618a4fd3bfc1633a2758b0e96f32","dc058956a93388aab38307b7b3b9b6379e1021e73a244aab6ac9427dc3a252a7","f33302cf240672359992c356f2005d395b559e176196d03f31a28cc7b01e69bc",{"version":"3ce25041ff6ae06c08fcaccd5fcd9baf4ca6e80e6cb5a922773a1985672e74c2","affectsGlobalScope":true},{"version":"652c0de14329a834ff06af6ad44670fac35849654a464fd9ae36edb92a362c12","affectsGlobalScope":true},"3b1e178016d3fc554505ae087c249b205b1c50624d482c542be9d4682bab81fc","f47fc200a9cad1976d5d046aa27b821918e93c82a2fd63cf06b47c9d0f88aaae","cf45d0510b661f1da461479851ff902f188edb111777c37055eff12fa986a23a",{"version":"cb41c174db409193c4b26e1e02b39a80f3050318a6af120cc304323f29e1ec1b","affectsGlobalScope":true},"37bef1064b7d015aeaa7c0716fe23a0b3844abe2c0a3df7144153ca8445fe0da","75bd411256302c183207051fd198b4e0dbab45d28a6daf04d3ad61f70a2c8e90",{"version":"29f72ec1289ae3aeda78bf14b38086d3d803262ac13904b400422941a26a3636","affectsGlobalScope":true}],"root":[47,[150,159],[166,173],[175,180],[182,190]],"options":{"allowJs":true,"checkJs":false,"composite":false,"declaration":false,"declarationMap":false,"esModuleInterop":true,"exactOptionalPropertyTypes":false,"inlineSources":true,"jsx":2,"module":1,"noImplicitAny":false,"noUncheckedIndexedAccess":false,"noUnusedLocals":true,"outDir":"./","rootDir":"../../src/test","sourceMap":true,"strict":false,"target":8},"fileIdsList":[[71,72,73,196,234],[70,74,196,234],[69,74,196,234],[196,234],[74,196,234],[70,74,75,76,77,78,125,126,196,234],[124,196,234],[74,75,76,196,234],[123,196,234],[52,53,54,55,196,234],[52,196,234],[60,196,234],[59,60,61,62,196,234],[48,49,50,51,56,57,58,63,64,65,66,196,234],[68,128,130,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,196,234],[128,196,234],[67,129,196,234],[127,196,234],[131,196,234],[133,196,234],[136,196,234],[135,196,234],[129,196,234],[67,135,196,234],[128,131,196,234],[139,196,234],[132,196,234],[128,141,196,234],[128,135,196,234],[67,130,196,234],[67,138,196,234],[67,127,149,196,234],[67,149,196,234],[174,196,234],[67,149,181,196,234],[67,127,138,139,149,196,234],[67,127,140,142,143,149,196,234],[149,196,234],[127,149,196,234],[67,135,149,196,234],[67,127,145,149,150,151,152,153,154,196,234],[67,127,149,158,196,234],[163,165,196,234],[67,127,139,149,196,234],[196,231,234],[196,233,234],[196,234,239,267],[196,234,235,246,247,254,264,275],[196,234,235,236,246,254],[191,192,193,196,234],[196,234,237,276],[196,234,238,239,247,255],[196,234,239,264,272],[196,234,240,242,246,254],[196,233,234,241],[196,234,242,243],[196,234,246],[196,234,244,246],[196,233,234,246],[196,234,246,247,248,264,275],[196,234,246,247,248,261,264,267],[196,229,234,280],[196,234,242,246,249,254,264,275],[196,234,246,247,249,250,254,264,272,275],[196,234,249,251,264,272,275],[196,234,246,252],[196,234,253,275,280],[196,234,242,246,254,264],[196,234,255],[196,234,256],[196,233,234,257],[196,234,258,274,280],[196,234,259],[196,234,260],[196,234,246,261,262],[196,234,261,263,276,278],[196,234,246,264,265,267],[196,234,266,267],[196,234,264,265],[196,234,267],[196,234,268],[196,234,264],[196,234,246,270,271],[196,234,270,271],[196,234,239,254,264,272],[196,234,273],[234],[194,195,196,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281],[196,234,254,274],[196,234,249,260,275],[196,234,239,276],[196,234,264,277],[196,234,253,278],[196,234,279],[196,234,239,246,248,257,264,275,278,280],[196,234,264,281],[164,196,234],[82,83,87,114,115,117,118,119,121,122,196,234],[80,81,196,234],[80,196,234],[82,122,196,234],[82,83,119,120,122,196,234],[122,196,234],[79,122,123,196,234],[82,83,121,122,196,234],[82,83,85,86,121,122,196,234],[82,83,84,121,122,196,234],[82,83,87,114,115,116,117,118,121,122,196,234],[79,82,83,87,119,121,196,234],[87,122,196,234],[89,90,91,92,93,94,95,96,97,98,122,196,234],[112,122,196,234],[88,99,107,108,109,110,111,113,196,234],[92,122,196,234],[100,101,102,103,104,105,106,122,196,234],[196,234,247,249,260,275],[160,161,196,234],[196,206,210,234,275],[196,206,234,264,275],[196,201,234],[196,203,206,234,272,275],[196,234,254,272],[196,234,282],[196,201,234,282],[196,203,206,234,254,275],[196,198,199,202,205,234,246,264,275],[196,198,204,234],[196,202,206,234,267,275,282],[196,222,234,282],[196,200,201,234,282],[196,206,234],[196,200,201,202,203,204,205,206,207,208,210,211,212,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,234],[196,206,213,214,234],[196,204,206,214,215,234],[196,205,234],[196,198,201,206,234],[196,206,210,214,215,234],[196,210,234],[196,204,206,209,234,275],[196,198,203,204,206,210,213,234],[196,201,206,222,234,280,282]],"referencedMap":[[74,1],[71,2],[70,3],[72,4],[73,5],[69,4],[75,4],[127,6],[76,4],[77,4],[78,4],[125,7],[126,8],[124,9],[49,4],[50,4],[51,4],[52,4],[53,4],[56,10],[54,4],[55,11],[57,4],[58,4],[59,4],[60,4],[61,12],[63,13],[62,4],[64,4],[65,4],[67,14],[66,4],[68,4],[149,15],[129,16],[130,17],[128,18],[132,19],[134,20],[137,21],[174,22],[131,23],[136,24],[138,25],[181,26],[139,27],[140,20],[142,28],[143,29],[144,25],[145,20],[133,30],[141,31],[135,16],[146,4],[147,4],[148,4],[47,4],[168,32],[169,32],[170,33],[171,32],[172,33],[173,32],[175,34],[176,32],[177,32],[178,32],[179,32],[180,32],[182,35],[183,36],[184,37],[185,38],[186,32],[187,32],[188,33],[189,39],[190,40],[155,41],[156,38],[157,38],[159,42],[166,43],[167,44],[153,4],[151,4],[152,4],[154,4],[150,4],[158,4],[48,4],[283,4],[231,45],[232,45],[233,46],[234,47],[235,48],[236,49],[191,4],[194,50],[192,4],[193,4],[237,51],[238,52],[239,53],[240,54],[241,55],[242,56],[243,56],[245,57],[244,58],[246,59],[247,60],[248,61],[230,62],[249,63],[250,64],[251,65],[252,66],[253,67],[254,68],[255,69],[256,70],[257,71],[258,72],[259,73],[260,74],[261,75],[262,75],[263,76],[264,77],[266,78],[265,79],[267,80],[268,81],[269,82],[270,83],[271,84],[272,85],[273,86],[196,87],[195,4],[282,88],[274,89],[275,90],[276,91],[277,92],[278,93],[279,94],[280,95],[281,96],[165,97],[164,4],[123,98],[80,4],[82,99],[81,100],[86,101],[121,102],[118,103],[120,104],[83,103],[84,105],[88,105],[87,106],[85,107],[119,108],[117,103],[122,109],[115,4],[116,4],[89,110],[94,103],[96,103],[91,103],[92,110],[98,103],[99,111],[90,103],[95,103],[97,103],[93,103],[113,112],[112,103],[114,113],[108,103],[110,103],[109,103],[105,103],[111,114],[106,103],[107,115],[100,103],[101,103],[102,103],[103,103],[104,103],[197,4],[79,4],[163,116],[160,4],[161,4],[162,117],[45,4],[46,4],[8,4],[9,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[20,4],[4,4],[21,4],[25,4],[22,4],[23,4],[24,4],[26,4],[27,4],[28,4],[5,4],[29,4],[30,4],[31,4],[32,4],[6,4],[36,4],[33,4],[34,4],[35,4],[37,4],[7,4],[38,4],[43,4],[44,4],[39,4],[40,4],[41,4],[42,4],[1,4],[213,118],[220,119],[212,118],[227,120],[204,121],[203,122],[226,123],[221,124],[224,125],[206,126],[205,127],[201,128],[200,123],[223,129],[202,130],[207,131],[208,4],[211,131],[198,4],[229,132],[228,131],[215,133],[216,134],[218,135],[214,136],[217,137],[222,123],[209,138],[210,139],[219,140],[199,82],[225,141]],"exportedModulesMap":[[74,1],[71,2],[70,3],[72,4],[73,5],[69,4],[75,4],[127,6],[76,4],[77,4],[78,4],[125,7],[126,8],[124,9],[49,4],[50,4],[51,4],[52,4],[53,4],[56,10],[54,4],[55,11],[57,4],[58,4],[59,4],[60,4],[61,12],[63,13],[62,4],[64,4],[65,4],[67,14],[66,4],[68,4],[149,15],[129,16],[130,17],[128,18],[132,19],[134,20],[137,21],[174,22],[131,23],[136,24],[138,25],[181,26],[139,27],[140,20],[142,28],[143,29],[144,25],[145,20],[133,30],[141,31],[135,16],[146,4],[147,4],[148,4],[47,4],[168,32],[169,32],[170,33],[171,32],[172,33],[173,32],[175,34],[176,32],[177,32],[178,32],[179,32],[180,32],[182,35],[183,36],[184,37],[185,38],[186,32],[187,32],[188,33],[189,39],[190,40],[155,41],[156,38],[157,38],[159,42],[166,43],[167,44],[153,4],[151,4],[152,4],[154,4],[150,4],[158,4],[48,4],[283,4],[231,45],[232,45],[233,46],[234,47],[235,48],[236,49],[191,4],[194,50],[192,4],[193,4],[237,51],[238,52],[239,53],[240,54],[241,55],[242,56],[243,56],[245,57],[244,58],[246,59],[247,60],[248,61],[230,62],[249,63],[250,64],[251,65],[252,66],[253,67],[254,68],[255,69],[256,70],[257,71],[258,72],[259,73],[260,74],[261,75],[262,75],[263,76],[264,77],[266,78],[265,79],[267,80],[268,81],[269,82],[270,83],[271,84],[272,85],[273,86],[196,87],[195,4],[282,88],[274,89],[275,90],[276,91],[277,92],[278,93],[279,94],[280,95],[281,96],[165,97],[164,4],[123,98],[80,4],[82,99],[81,100],[86,101],[121,102],[118,103],[120,104],[83,103],[84,105],[88,105],[87,106],[85,107],[119,108],[117,103],[122,109],[115,4],[116,4],[89,110],[94,103],[96,103],[91,103],[92,110],[98,103],[99,111],[90,103],[95,103],[97,103],[93,103],[113,112],[112,103],[114,113],[108,103],[110,103],[109,103],[105,103],[111,114],[106,103],[107,115],[100,103],[101,103],[102,103],[103,103],[104,103],[197,4],[79,4],[163,116],[160,4],[161,4],[162,117],[45,4],[46,4],[8,4],[9,4],[11,4],[10,4],[2,4],[12,4],[13,4],[14,4],[15,4],[16,4],[17,4],[18,4],[19,4],[3,4],[20,4],[4,4],[21,4],[25,4],[22,4],[23,4],[24,4],[26,4],[27,4],[28,4],[5,4],[29,4],[30,4],[31,4],[32,4],[6,4],[36,4],[33,4],[34,4],[35,4],[37,4],[7,4],[38,4],[43,4],[44,4],[39,4],[40,4],[41,4],[42,4],[1,4],[213,118],[220,119],[212,118],[227,120],[204,121],[203,122],[226,123],[221,124],[224,125],[206,126],[205,127],[201,128],[200,123],[223,129],[202,130],[207,131],[208,4],[211,131],[198,4],[229,132],[228,131],[215,133],[216,134],[218,135],[214,136],[217,137],[222,123],[209,138],[210,139],[219,140],[199,82],[225,141]],"semanticDiagnosticsPerFile":[74,71,70,72,73,69,75,127,76,77,78,125,126,124,49,50,51,52,53,56,54,55,57,58,59,60,61,63,62,64,65,67,66,68,149,129,130,128,132,134,137,174,131,136,138,181,139,140,142,143,144,145,133,141,135,146,147,148,47,168,169,170,171,172,173,175,176,177,178,179,180,182,183,184,185,186,187,188,189,190,155,156,157,159,166,167,153,151,152,154,150,158,48,283,231,232,233,234,235,236,191,194,192,193,237,238,239,240,241,242,243,245,244,246,247,248,230,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,266,265,267,268,269,270,271,272,273,196,195,282,274,275,276,277,278,279,280,281,165,164,123,80,82,81,86,121,118,120,83,84,88,87,85,119,117,122,115,116,89,94,96,91,92,98,99,90,95,97,93,113,112,114,108,110,109,105,111,106,107,100,101,102,103,104,197,79,163,160,161,162,45,46,8,9,11,10,2,12,13,14,15,16,17,18,19,3,20,4,21,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,1,213,220,212,227,204,203,226,221,224,206,205,201,200,223,202,207,208,211,198,229,228,215,216,218,214,217,222,209,210,219,199,225]},"version":"5.4.5"}
|
|
@@ -345,7 +345,7 @@ export declare abstract class BaseProperty {
|
|
|
345
345
|
/**
|
|
346
346
|
* Return a JSON representation of the properties and its children.
|
|
347
347
|
*/
|
|
348
|
-
protected _toJson():
|
|
348
|
+
protected _toJson(): object;
|
|
349
349
|
getIds(): string[];
|
|
350
350
|
get(id: string, params?: {
|
|
351
351
|
referenceResolutionMode: REFERENCE_RESOLUTION;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseProperty.d.ts","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"baseProperty.d.ts","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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"}
|
|
@@ -874,6 +874,7 @@ export class BaseProperty {
|
|
|
874
874
|
* @returns Returns BaseProperty.BREAK_TRAVERSAL if the traversal has been interrupted, otherwise `undefined`.
|
|
875
875
|
* @private
|
|
876
876
|
*/
|
|
877
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
877
878
|
_traverse(in_callback, in_pathFromTraversalStart) {
|
|
878
879
|
return undefined;
|
|
879
880
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseProperty.js","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint accessor-pairs: [2, { \"getWithoutSet\": false }] */\n\nimport {\n\tChangeSet,\n\tPathHelper,\n\tSerializedChangeSet,\n\tTypeIdHelper,\n} from \"@fluid-experimental/property-changeset\";\nimport { constants, ConsoleUtils } from \"@fluid-experimental/property-common\";\nimport _ from \"lodash\";\n\nimport { LazyLoadedProperties as Property } from \"./lazyLoadedProperties\";\n\nconst { MSG, PROPERTY_PATH_DELIMITER } = constants;\nconst BREAK_TRAVERSAL = \"BREAK\";\n\n/**\n * Determines in which cases a reference will automatically be resolved\n */\nenum REFERENCE_RESOLUTION {\n\t/** The resolution will always automatically follow references */\n\tALWAYS,\n\t/** If a reference is the last entry during the path resolution, it will not automatically be resolved */\n\tNO_LEAFS,\n\t/** References are never automatically resolved */\n\tNEVER,\n}\n\n/**\n * Used to indicate the state of a property. These flags can be connected via OR.\n */\nenum MODIFIED_STATE_FLAGS {\n\t/** No changes to this property at the moment */\n\tCLEAN,\n\t/** The property is marked as changed in the currently pending ChangeSet */\n\tPENDING_CHANGE,\n\t/** The property has been modified and the result has not yet been reported to the application for scene updates */\n\tDIRTY,\n}\n\n/**\n * Token Types\n * @enum Object\n * Type of the token in the path string\n */\nconst PATH_TOKENS = {\n\t/** A / at the beginning of the path */\n\tROOT: { token: \"ROOT\" },\n\t/** A * that indicates a dereferencing operation */ // note: reversed!\n\tREF: { token: \"REF\" },\n\t/** A ../ that indicates one step above the current path */\n\tUP: { token: \"UP\" },\n};\n\ninterface IBasePropertyParams {\n\t/** id of the property */\n\tid?: string;\n\t/** The type unique identifier */\n\ttypeid?: string;\n\t/** The length of the property. Only valid if the property is an array, otherwise the length defaults to 1 */\n\tlength: number;\n\t/** The type of property this template represents i.e. single, array, map, set. */\n\tcontext: string;\n\n\t// TODO: UNUSED PARAMETER ??\n\t/** List of property templates that are used to define children properties */\n\tproperties: BaseProperty[];\n\n\t// TODO: UNUSED PARAMETER ??\n\t/** List of property template typeids that this PropertyTemplate inherits from */\n\tinherits: string[];\n}\n\ninterface ISerializeOptions {\n\t/** Only include dirty entries in the serialization */\n\tdirtyOnly?: boolean;\n\t/** Include the typeid of the root of the hierarchy */\n\tincludeRootTypeid?: boolean;\n\t/** The type of dirtiness to use when reporting dirty changes. */\n\tdirtinessType?: MODIFIED_STATE_FLAGS;\n\t/**\n\t * If this is set to true, the serialize\n\t * function will descend into referenced repositories. WARNING: if there are loops in the references\n\t * this can result in an infinite loop\n\t */\n\tincludeReferencedRepositories?: boolean;\n}\n\n/**\n * The options to selectively create only a subset of a property.\n *\n * For now the filtering options are propagated by many functions, but are actually used only by\n * functions that create properties from schemas. It is then possible to create only a subset of\n * the properties of a schema by providing a restricted list of paths.\n *\n * Thus, with the filtering options, it is NOT possible to prevent a part of a ChangeSet from being\n * processed (in `applyChangeSet()` for example), it is NOT possible to prevent a property from being\n * created by a direct call to a function like `deserialize()` or `createProperty()`.\n * @internal\n */\nexport abstract class BaseProperty {\n\tprotected _id: string | undefined;\n\tprotected _isConstant: boolean;\n\tprotected _dirty: MODIFIED_STATE_FLAGS;\n\tprotected _typeid: string;\n\tprotected _context: string;\n\tprotected _parent: BaseProperty | undefined;\n\tprotected _noDirtyInBase: boolean;\n\n\t_tree: any;\n\t_checkoutView: any;\n\t_checkedOutRepositoryInfo: any;\n\n\tconstructor(in_params: IBasePropertyParams) {\n\t\t// Pre-conditions\n\t\t// This test has been disabled for performance reasons, if it would be incorrect,\n\t\t// the next line will throw anyways\n\t\t// ConsoleUtils.assert(in_params, MSG.PROP_CONSTRUCTOR_EXPECTS_OBJECTS);\n\n\t\tif (this._id !== in_params.id) {\n\t\t\tthis._id = in_params.id;\n\t\t}\n\n\t\t// Makes sure context value is fine\n\t\t// This assertion has been disabled for performance reasons. This is not a user facing\n\t\t// constructor function and therefore we rely on PropertyFactory to correctly provide the context.\n\t\t/* ConsoleUtils.assert(!in_params.context || in_params.context === this._context,\n MSG.CONTEXT_NOT_AS_EXPECTED + this._context + ' != ' + in_params.context); */\n\n\t\t// Sets typeid if default value is not fine\n\t\tlet typeId = in_params.typeid || \"BaseProperty\";\n\t\tif (typeId !== this._typeid) {\n\t\t\tthis._typeid = typeId;\n\t\t}\n\n\t\tthis._parent = undefined;\n\t\t// internal management\n\t\tif (!this._noDirtyInBase) {\n\t\t\tthis._dirty = MODIFIED_STATE_FLAGS.CLEAN;\n\t\t}\n\t}\n\n\tstatic MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS;\n\tstatic REFERENCE_RESOLUTION = REFERENCE_RESOLUTION;\n\tstatic PATH_TOKENS = PATH_TOKENS;\n\n\t/**\n\t * @returns The typeid of this property\n\t */\n\tgetTypeid(): string {\n\t\treturn this._typeid;\n\t}\n\n\t/**\n\t * @returns The context of this property\n\t */\n\tgetContext(): string {\n\t\treturn this._context;\n\t}\n\n\t/**\n\t * Get the scope to which this property belongs to.\n\t * @returns The guid representing the scope in which the\n\t * property belongs to\n\t */\n\tprotected _getScope(): string | undefined {\n\t\treturn this._parent ? this.getRoot()._getScope() : undefined;\n\t}\n\n\t/**\n\t * Returns the full property type identifier for the ChangeSet including the enum type id\n\t * @param in_hideCollection - if true the collection type (if applicable) will be omitted since that is not\n\t * applicable here, this param is ignored.\n\t * @returns The typeid\n\t */\n\tgetFullTypeid(in_hideCollection = false): string {\n\t\treturn this._typeid;\n\t}\n\n\t/**\n\t * Updates the parent for the property\n\t *\n\t * @param in_property - The parent property\n\t */\n\tprotected _setParent(in_property: BaseProperty) {\n\t\tthis._parent = in_property;\n\n\t\t// If the property is dirty but not its parent, dirty the parent. In cases like named properties\n\t\t// and default values, a parent is set after a value is set; we get a case where the\n\t\t// property is dirty but not its parent and the change is not included in a changeSet.\n\t\tif (this._parent && this._isDirty() && !this._parent._isDirty()) {\n\t\t\tthis._parent._setDirty(false, this);\n\t\t}\n\t}\n\n\t/**\n\t * Is this property the root of the property set tree?\n\t *\n\t * @returns True if it is a root, otherwise false.\n\t */\n\tisRoot(): boolean {\n\t\t// This checks, whether this is the root of a CheckOutView\n\t\t// (all other properties should have a parent property)\n\t\treturn this._parent === undefined;\n\t}\n\n\t/**\n\t * Is this property the ancestor of in_otherProperty?\n\t * Note: A property is not considered an ancestor of itself\n\t * @param in_otherProperty - possible descendant\n\t * @throws if in_otherProperty is not defined.\n\t * @returns True if it is a ancestor, otherwise false.\n\t */\n\tisAncestorOf(in_otherProperty: BaseProperty): boolean {\n\t\tConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n\t\tvar parent = in_otherProperty.getParent();\n\t\twhile (parent) {\n\t\t\tif (parent === this) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\tparent = parent.getParent();\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Is this property the descendant of in_otherProperty?\n\t * Note: A property is not considered a descendant of itself\n\t * @param in_otherProperty - possible ancestor\n\t * @throws if in_otherProperty is not defined.\n\t * @returns True if it is a descendant, otherwise false.\n\t */\n\tisDescendantOf(in_otherProperty: BaseProperty): boolean {\n\t\tConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n\t\treturn in_otherProperty.isAncestorOf(this);\n\t}\n\n\t/**\n\t * Is this property a leaf node with regard to flattening?\n\t *\n\t * TODO: Which semantics should flattening have? It stops at primitive types and collections?\n\t *\n\t * @returns True if it is a leaf with regard to flattening\n\t */\n\t_isFlattenLeaf(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get the parent of this property\n\t *\n\t * @returns The parent of this property (or undefined if none exist)\n\t */\n\tgetParent(): BaseProperty | undefined {\n\t\treturn this._parent;\n\t}\n\n\t/**\n\t * checks whether the property is dynamic (only properties inherting from NodeProperty are)\n\t * @returns True if it is a dynamic property.\n\t */\n\tisDynamic() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Sets the property as dirty and/or pending. This will add one or both flags if not already set and will\n\t * do the same for its parent. This does not clear any flag, it only sets.\n\t *\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @param in_callingChild - The child which is dirtying its parent\n\t * @param in_flags - The flags to set.\n\t * @private\n\t */\n\t_setDirty(\n\t\tin_reportToView = true,\n\t\tin_callingChild: BaseProperty = undefined,\n\t\tin_flags: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\tMODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t) {\n\t\tif (in_flags === undefined) {\n\t\t\tin_flags = MODIFIED_STATE_FLAGS.DIRTY | MODIFIED_STATE_FLAGS.PENDING_CHANGE;\n\t\t}\n\t\tvar reportToView = in_reportToView;\n\t\tif (reportToView === undefined) {\n\t\t\treportToView = true;\n\t\t}\n\t\t// We only update the flags upwards in the tree, when the corresponding nodes are not already flagged\n\t\tvar oldFlags = this._getDirtyFlags();\n\t\tif ((oldFlags & in_flags) !== in_flags) {\n\t\t\t// only dirty once until clean.\n\t\t\tthis._setDirtyFlags(oldFlags | in_flags);\n\n\t\t\t// Report dirtiness upwards in the hierarchy\n\t\t\tif (this._parent) {\n\t\t\t\tthis._parent._setDirty(reportToView, this, in_flags);\n\t\t\t\treportToView = false;\n\t\t\t}\n\t\t}\n\t\tif (reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the dirty flags for this property\n\t * @param in_flags - The dirty flags\n\t */\n\t_setDirtyFlags(in_flags: MODIFIED_STATE_FLAGS) {\n\t\tthis._dirty = in_flags;\n\t}\n\n\t/**\n\t * Gets the dirty flags for this property\n\t * @returns The dirty flags\n\t */\n\t_getDirtyFlags(): MODIFIED_STATE_FLAGS {\n\t\treturn this._dirty;\n\t}\n\n\t/**\n\t * Helper function, which reports the fact that a property has been dirtied to the checkout view\n\t * @private\n\t */\n\t// TODO: Cleaner way to make the property tree aware of the DDS hosting it.\n\t// Currently, this._tree is set in SharedPropertyTree constructor.\n\t_reportDirtinessToView() {\n\t\tlet currentNode: BaseProperty = this;\n\n\t\twhile (currentNode._parent) {\n\t\t\tcurrentNode = currentNode._parent;\n\t\t}\n\n\t\tif (\n\t\t\tcurrentNode._tree &&\n\t\t\tcurrentNode._tree.notificationDelayScope === 0 &&\n\t\t\tcurrentNode._isDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY)\n\t\t) {\n\t\t\tcurrentNode._tree._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Modifies the property according to the given changeset\n\t *\n\t * @param in_changeSet - The changeset to apply\n\t * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions] - The filtering options to\n\t * consider while applying the ChangeSet.\n\t * @throws if in_changeSet is invalid.\n\t */\n\tapplyChangeSet(in_changeSet: SerializedChangeSet) {\n\t\tthis._checkIsNotReadOnly(false);\n\n\t\t// We just forward the call to the internal function\n\t\tthis._applyChangeset(in_changeSet, true);\n\t}\n\n\t/**\n\t * Modifies the property according to the given changeset\n\t *\n\t * Internal function.\n\t *\n\t * @param in_changeSet - The changeset to apply\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view and trigger a\n\t * modified event there. When batching updates, this can be prevented via this flag.\n\t * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions] - The filtering options to\n\t * consider while applying the ChangeSet. For now it is only used to control property creation, to prevent\n\t * properties from being created outside the checked out paths. It does not validate that a value inside the\n\t * ChangeSet is outside those paths.\n\t */\n\t_applyChangeset(\n\t\tin_changeSet: SerializedChangeSet,\n\t\tin_reportToView = true,\n\t\tin_filteringOptions = undefined,\n\t) {\n\t\tvar typeids = _.keys(in_changeSet);\n\t\tfor (const typeid of typeids) {\n\t\t\tif (ChangeSet.isReservedKeyword(typeid)) {\n\t\t\t\tcontinue; // Ignore the special keys\n\t\t\t}\n\n\t\t\tvar paths = _.keys(in_changeSet[typeid]);\n\t\t\tfor (const path of paths) {\n\t\t\t\tvar property = this.resolvePath(path, {\n\t\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t\t});\n\t\t\t\tif (property) {\n\t\t\t\t\tproperty._applyChangeset(in_changeSet[typeid][path], false);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(MSG.INVALID_PATH + path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (in_reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Re-apply dirty flags from changesets\n\t *\n\t * Internal function.\n\t *\n\t * @param in_pendingChangeSet - The pending changeset to apply\n\t * @param in_dirtyChangeSet - The dirty changeset to apply\n\t * @throws if changeset arguments are invalid.\n\t */\n\t_reapplyDirtyFlags(\n\t\tin_pendingChangeSet: SerializedChangeSet,\n\t\tin_dirtyChangeSet: SerializedChangeSet,\n\t) {\n\t\tthis._checkIsNotReadOnly(false);\n\t\t// Here we must walk both changesets in parallel. Sometimes there will be only an entry in one\n\t\t// changeset, sometimes only one in the other changeset, sometimes one in both.\n\t\tconst typeids = _.keys(in_pendingChangeSet).concat(_.keys(in_dirtyChangeSet));\n\t\tfor (const typeid of typeids) {\n\t\t\tif (ChangeSet.isReservedKeyword(typeid)) {\n\t\t\t\tcontinue; // Ignore the special keys\n\t\t\t}\n\t\t\tconst pendingChangeSet = in_pendingChangeSet && in_pendingChangeSet[typeid];\n\t\t\tconst dirtyChangeSet = in_dirtyChangeSet && in_dirtyChangeSet[typeid];\n\n\t\t\tconst paths = _.keys(pendingChangeSet).concat(_.keys(dirtyChangeSet));\n\t\t\tfor (const path of paths) {\n\t\t\t\tlet property = this.resolvePath(path);\n\t\t\t\tif (property) {\n\t\t\t\t\tproperty._reapplyDirtyFlags(\n\t\t\t\t\t\tpendingChangeSet && pendingChangeSet[path],\n\t\t\t\t\t\tdirtyChangeSet && dirtyChangeSet[path],\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(MSG.INVALID_PATH + path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected resolvePath(path: string, params?: any): BaseProperty {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\t/**\n\t * Removes the dirtiness flag from this property\n\t * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_flags] - The flags to clean.\n\t * If none are supplied all will be removed.\n\t * @private\n\t */\n\t_cleanDirty(in_flags) {\n\t\tthis._setDirtyFlags(\n\t\t\tin_flags === undefined ? MODIFIED_STATE_FLAGS.CLEAN : this._getDirtyFlags() & ~in_flags,\n\t\t);\n\t}\n\n\t/**\n\t * Removes the dirtiness flag from this property and recursively from all of its children\n\t *\n\t * @param in_flags - The flags to clean. If none are supplied all will be removed.\n\t */\n\tcleanDirty(in_flags: MODIFIED_STATE_FLAGS) {\n\t\tvar dirtyChildren = this._getDirtyChildren(in_flags);\n\t\tfor (const dirtyChild of dirtyChildren) {\n\t\t\tconst child = this.get(dirtyChild, {\n\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t});\n\t\t\tchild.cleanDirty(in_flags);\n\t\t\tchild._cleanDirty(in_flags);\n\t\t}\n\n\t\t// after all paths are clean, we are also clean!\n\t\tthis._cleanDirty(in_flags);\n\t}\n\n\t/**\n\t * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n\t * application for runtime scene updates.\n\t *\n\t * @param in_dirtinessType - The type of dirtiness to check for. By default this is DIRTY\n\t * @returns Is the property dirty?\n\t */\n\t_isDirty(in_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY): boolean {\n\t\treturn !!(this._getDirtyFlags() & in_dirtinessType);\n\t}\n\n\t/**\n\t * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n\t * application for runtime scene updates.\n\t *\n\t * @returns True if the property is dirty. False otherwise.\n\t */\n\tisDirty(): boolean {\n\t\treturn this._isDirty();\n\t}\n\n\t/**\n\t * The property has pending changes in the current ChangeSet.\n\t * @returns True if the property has pending changes. False otherwise.\n\t */\n\thasPendingChanges(): boolean {\n\t\treturn this._isDirty(MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\t}\n\n\t/**\n\t * Returns the ChangeSet of all sub-properties\n\t *\n\t * @returns The serialized changes\n\t */\n\tgetPendingChanges(): ChangeSet {\n\t\tvar serialized = this._serialize(\n\t\t\ttrue,\n\t\t\tfalse,\n\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t);\n\t\treturn new ChangeSet(serialized);\n\t}\n\n\t/**\n\t * Get the id of this property\n\t *\n\t * @returns The id of the property\n\t */\n\tgetId(): string | undefined {\n\t\treturn this._id;\n\t}\n\n\t/**\n\t * Sets the checkedOutRepositoryInfo.\n\t * @param {property-properties.CheckoutView~CheckedOutRepositoryInfo} value - The checkedOut repository info.\n\t * @protected\n\t */\n\t_setCheckoutView(value) {\n\t\tthis._checkoutView = value;\n\t}\n\n\t/**\n\t * Returns the checkoutView\n\t * @return {property-properties.CheckoutView} - the checkout view\n\t */\n\t_getCheckoutView() {\n\t\tlet checkedOutRepositoryInfo = this._getCheckedOutRepositoryInfo();\n\t\treturn checkedOutRepositoryInfo ? checkedOutRepositoryInfo.getCheckoutView() : undefined;\n\t}\n\n\t/**\n\t * Returns the checkedOutRepositoryInfo.\n\t * @return {property-properties.CheckoutView~CheckedOutRepositoryInfo} The checkedOut repository info.\n\t * @protected\n\t */\n\t_getCheckedOutRepositoryInfo() {\n\t\tif (!this._parent) {\n\t\t\treturn this._checkedOutRepositoryInfo;\n\t\t} else {\n\t\t\treturn this.getRoot() ? this.getRoot()._getCheckedOutRepositoryInfo() : undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the Workspace\n\t * @returns The workspace containing the property.\n\t */\n\tgetWorkspace() {\n\t\tconst root = this.getRoot();\n\t\treturn root ? root._tree : undefined;\n\t}\n\n\t/**\n\t * Returns the path segment for a child\n\t *\n\t * @param in_childNode - The child for which the path is returned\n\t *\n\t * @returns The path segment to resolve the child property under this property\n\t */\n\tprotected _getPathSegmentForChildNode(in_childNode: BaseProperty): string {\n\t\treturn PROPERTY_PATH_DELIMITER + PathHelper.quotePathSegmentIfNeeded(in_childNode.getId());\n\t}\n\n\t/**\n\t * Resolves a direct child node based on the given path segment\n\t *\n\t * @param {String} in_segment - The path segment to resolve\n\t * @param {property-properties.PathHelper.TOKEN_TYPES} in_segmentType - The type of segment in the tokenized path\n\t *\n\t * @return {property-properties.BaseProperty|undefined} The child property that has been resolved\n\t */\n\tprotected _resolvePathSegment(in_segment: string, in_segmentType: PathHelper.TOKEN_TYPES) {\n\t\t// Base Properties only support paths separated via dots\n\t\tif (in_segmentType !== PathHelper.TOKEN_TYPES.PATH_SEGMENT_TOKEN) {\n\t\t\tthrow new Error(MSG.INVALID_PATH_TOKEN + in_segment);\n\t\t}\n\n\t\treturn this.get(in_segment, {\n\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t});\n\t}\n\n\t/**\n\t * Set the id of this property\n\t *\n\t * @param {string} in_id - The id for this property\n\t *\n\t * @return {string} the new id\n\t * @private\n\t */\n\t_setId(in_id) {\n\t\tif (!_.isString(in_id) && !_.isNumber(in_id)) {\n\t\t\tthrow new TypeError(MSG.ID_STRING_OR_NUMBER + in_id);\n\t\t}\n\n\t\tif (this._parent !== undefined) {\n\t\t\tthrow new Error(MSG.ID_CHANGE_FOR_PROPERTY_WITH_PARENT + this._id + \" to id: \" + in_id);\n\t\t}\n\n\t\tthis._id = String(in_id);\n\n\t\t// flush caches\n\t\tthis._setDirty();\n\n\t\treturn in_id;\n\t}\n\n\t/**\n\t * Return a clone of this property\n\t * @returns The cloned property\n\t */\n\tclone(): BaseProperty {\n\t\tconst PropertyFactory = Property.PropertyFactory;\n\t\tvar clone = PropertyFactory._createProperty(\n\t\t\tthis.getFullTypeid(),\n\t\t\tnull,\n\t\t\tundefined,\n\t\t\tthis._getScope(),\n\t\t\ttrue,\n\t\t);\n\n\t\t// TODO: this is not very efficient. Clone should be overriden\n\t\t// by the child classes\n\t\tclone.deserialize(this._serialize());\n\t\tclone.cleanDirty(\n\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE |\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n\t\t);\n\t\treturn clone;\n\t}\n\n\t/**\n\t * Returns true if the property is a primitive type\n\t * @return {boolean} true if the property is a primitive type\n\t */\n\tisPrimitiveType() {\n\t\treturn TypeIdHelper.isPrimitiveType(this._typeid);\n\t}\n\n\t/**\n\t * Get a flattened, tree like representation of this object and all of it's\n\t * descendants. The flattening will stop at primitive properties and collections.\n\t *\n\t * For non-leaf nodes, it is possible to access the corresponding node object itself via the\n\t * propertyNode member of the flattened representation (warning, this will overwrite a\n\t * property of this name).\n\t * TODO: Do we want to have this feature or is it to dangerous?\n\t *\n\t * @returns the flat representation\n\t */\n\tprotected _flatten(): object {\n\t\treturn { propertyNode: this };\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string representations\n\t * of the property and of its sub-properties. By default it logs to the console.\n\t * If printFct is not a function, it will default to console.log\n\t * @param {function} [printFct=console.log] - Function to call for printing each property\n\t */\n\tprettyPrint(printFct) {\n\t\tif (typeof printFct !== \"function\") {\n\t\t\tprintFct = console.log;\n\t\t}\n\t\tthis._prettyPrint(\"\", \"\", printFct);\n\t}\n\n\t/**\n\t * Return a JSON representation of the properties and its children.\n\t */\n\tprotected _toJson(): Object {\n\t\tvar json = {\n\t\t\tid: this.getId(),\n\t\t\tcontext: this._context,\n\t\t\ttypeid: this.getTypeid(),\n\t\t\tisConstant: this._isConstant,\n\t\t\tvalue: [],\n\t\t};\n\n\t\tvar ids = this.getIds();\n\t\tfor (const id of ids) {\n\t\t\tjson.value.push(\n\t\t\t\tthis.get(id, {\n\t\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t\t})._toJson(),\n\t\t\t);\n\t\t}\n\n\t\treturn json;\n\t}\n\n\tgetIds(): string[] {\n\t\treturn [];\n\t}\n\n\tget(\n\t\tid: string,\n\t\tparams?: { referenceResolutionMode: REFERENCE_RESOLUTION },\n\t): BaseProperty | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string\n\t * representations of the property and of its sub-properties.\n\t * @param {string} indent - Leading spaces to create the tree representation\n\t * @param {string} externalId - Name of the current property at the upper level. Used for arrays.\n\t * @param {function} printFct - Function to call for printing each property\n\t */\n\t_prettyPrint(indent, externalId, printFct) {\n\t\tvar context = \"\";\n\t\tswitch (this._context) {\n\t\t\tcase \"map\":\n\t\t\t\tcontext = \"Map of \";\n\t\t\t\tbreak;\n\t\t\tcase \"set\":\n\t\t\t\tcontext = \"Set of \";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\tprintFct(indent + externalId + this.getId() + \" (\" + context + this.getTypeid() + \"):\");\n\t\tthis._prettyPrintChildren(indent, printFct);\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string\n\t * representations of the property's sub-properties.\n\t * @param {string} indent - Leading spaces to create the tree representation\n\t * @param {function} printFct - Function to call for printing each property\n\t */\n\t_prettyPrintChildren(indent, printFct) {\n\t\tindent += \" \";\n\t\tvar ids = this.getIds();\n\t\tfor (var i = 0; i < ids.length; i++) {\n\t\t\tthis.get(ids[i], {\n\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t})._prettyPrint(indent, \"\", printFct);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the possible paths from the given from_property to this property. If multiple paths\n\t * through multiple repository references are possible, returns more than one path.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed\n\t * @return {Array<string | undefined>} The paths between from_property and this property\n\t * will return an empty array if trying to get the path from a child repo to a parent repo.\n\t * @private\n\t */\n\t_getPathsThroughRepoRef(in_fromProperty) {\n\t\tvar paths = [];\n\t\tvar that = this;\n\t\tvar referenceProps = [];\n\t\t// get all reference properties in the referenceProps array\n\t\tthis._getCheckoutView()._forEachCheckedOutRepository(function (repoInfo) {\n\t\t\tvar keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n\t\t\tfor (const key of keys) {\n\t\t\t\tif (key) {\n\t\t\t\t\tvar repoRef =\n\t\t\t\t\t\trepoInfo._referencedByPropertyInstanceGUIDs[key]._repositoryReferenceProperties[\n\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t].property;\n\t\t\t\t\tif (that.getRoot() === repoRef.getReferencedRepositoryRoot()) {\n\t\t\t\t\t\treferenceProps.push(repoRef);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// if no repo references point to the root of 'this', we can assume that 'this' is in the\n\t\t// parent repo, which cannot return a useful path.\n\t\tif (referenceProps.length === 0) {\n\t\t\tconsole.warn(MSG.NO_PATH_FROM_CHILD_REPO);\n\t\t\treturn [];\n\t\t}\n\n\t\t// path from root of the child repo to 'this'\n\t\tvar pathInChildRepo = this._getDirectPath(this.getRoot());\n\n\t\t// find possible paths from in_fromProperty to the referenceProps\n\t\t// concatenate each with pathInChildRepo\n\t\tfor (const referenceProp of referenceProps) {\n\t\t\tvar pathInParentRepo = referenceProp.getRelativePath(in_fromProperty);\n\t\t\tif (pathInParentRepo) {\n\t\t\t\tif (pathInChildRepo.length > 0) {\n\t\t\t\t\tpaths.push(pathInParentRepo + \".\" + pathInChildRepo);\n\t\t\t\t} else {\n\t\t\t\t\tpaths.push(pathInParentRepo);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (paths.length > 0) {\n\t\t\treturn paths;\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the possible paths from the given in_fromProperty to this property. If no direct paths\n\t * exist, it returns an indirect path between the two properties.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {string} The path between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getIndirectPath(in_fromProperty) {\n\t\tvar path = [];\n\t\tvar that = this;\n\t\tvar foundPath = undefined;\n\n\t\tfoundPath = in_fromProperty.traverseUp(function (in_node) {\n\t\t\tpath.push(\"../\");\n\t\t\tif (in_node === that) {\n\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t}\n\t\t\tvar directPath = that._getDirectPath(in_node);\n\t\t\tif (directPath) {\n\t\t\t\tpath.push(directPath);\n\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t});\n\t\treturn foundPath === BREAK_TRAVERSAL ? path.join(\"\") : undefined;\n\t}\n\n\t/**\n\t * Returns the path from the given in_fromProperty to this property if a direct path\n\t * exists between the two properties. Otherwise returns undefined.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {string} The path between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getDirectPath(in_fromProperty) {\n\t\tvar path = [];\n\t\tvar foundAncestor = undefined;\n\t\tif (in_fromProperty === this) {\n\t\t\tfoundAncestor = BREAK_TRAVERSAL;\n\t\t} else if (this.getParent()) {\n\t\t\tpath.push(this.getParent()._getPathSegmentForChildNode(this));\n\n\t\t\tfoundAncestor = this.traverseUp(function (in_node) {\n\t\t\t\t// break where we meet the relative reference\n\t\t\t\tif (in_node === in_fromProperty) {\n\t\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t\t}\n\n\t\t\t\tif (in_node.getParent()) {\n\t\t\t\t\tpath.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n\t\t\t\t}\n\n\t\t\t\treturn undefined;\n\t\t\t});\n\t\t}\n\n\t\tif (foundAncestor === BREAK_TRAVERSAL) {\n\t\t\tvar result = path.reverse().join(\"\");\n\n\t\t\t// We don't use a PROPERTY_PATH_DELIMITER at the start of the path\n\t\t\tif (result.startsWith(PROPERTY_PATH_DELIMITER)) {\n\t\t\t\tresult = result.substr(1);\n\t\t\t}\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the possible paths from the given in_fromProperty to this property.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {Array<string>} The paths between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getAllRelativePaths(in_fromProperty) {\n\t\tif (this.getRoot() !== in_fromProperty.getRoot()) {\n\t\t\t// if this and in_fromProperty have different roots, go through a repo ref\n\t\t\t// this is the case where we might have more than one path\n\t\t\treturn this._getPathsThroughRepoRef(in_fromProperty);\n\t\t} else {\n\t\t\tvar directPath = this._getDirectPath(in_fromProperty);\n\t\t\treturn directPath !== undefined\n\t\t\t\t? [directPath]\n\t\t\t\t: [this._getIndirectPath(in_fromProperty)];\n\t\t}\n\t}\n\n\t/**\n\t * Returns the path from the given fron_property to this node if such a path exists.\n\t * If more than one paths exist (as might be the case with multiple repository references\n\t * pointing to the same repository), it will return the first valid path found.\n\t * For example, if you have this structure:\n\t *\n\t * ```\n\t * <code>prop1\n\t * --prop2\n\t * ----prop3</code>\n\t * ```\n\t *\n\t * and call: `<code>prop1.getRelativePath(prop3);</code>`\n\t *\n\t * You will get the path from prop3 to prop1, which would be '../../'\n\t *\n\t * @param in_fromProperty - The property from which the path is computed.\n\t * @returns The path between the given in_fromProperty and this property.\n\t * @throws If in_fromProperty is not a property.\n\t */\n\tgetRelativePath(in_fromProperty: BaseProperty): string {\n\t\tConsoleUtils.assert(\n\t\t\tin_fromProperty instanceof BaseProperty,\n\t\t\tMSG.IN_FROMPROPERTY_MUST_BE_PROPERTY,\n\t\t);\n\t\tvar paths = this._getAllRelativePaths(in_fromProperty) || [];\n\t\tif (paths.length === 0) {\n\t\t\tconsole.warn(\n\t\t\t\tMSG.NO_PATH_BETWEEN +\n\t\t\t\t\tin_fromProperty.getAbsolutePath() +\n\t\t\t\t\t\" and \" +\n\t\t\t\t\tthis.getAbsolutePath(),\n\t\t\t);\n\t\t} else if (paths.length > 1) {\n\t\t\tconsole.warn(\n\t\t\t\tMSG.MORE_THAN_ONE_PATH +\n\t\t\t\t\tin_fromProperty.getAbsolutePath() +\n\t\t\t\t\t\" and \" +\n\t\t\t\t\tthis.getAbsolutePath(),\n\t\t\t);\n\t\t}\n\t\treturn paths[0];\n\t}\n\n\t/**\n\t * Returns the path from the root of the workspace to this node (including a slash at the beginning).\n\t *\n\t * @return {string} The path from the root\n\t */\n\tgetAbsolutePath() {\n\t\tvar that = this;\n\t\tvar referenceProps = [];\n\t\t// get all reference properties pointing to the root the repository containing 'this'\n\t\tif (this._getCheckoutView()) {\n\t\t\tthis._getCheckoutView()._forEachCheckedOutRepository(function (repoInfo) {\n\t\t\t\tvar keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n\t\t\t\tfor (const key of keys) {\n\t\t\t\t\tif (key) {\n\t\t\t\t\t\tlet repoRef = repoInfo._referencedByPropertyInstanceGUIDs[key];\n\t\t\t\t\t\tlet refProperty = undefined;\n\n\t\t\t\t\t\tif (repoRef) {\n\t\t\t\t\t\t\trefProperty = repoRef._repositoryReferenceProperties[key]\n\t\t\t\t\t\t\t\t? repoRef._repositoryReferenceProperties[key].property\n\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet refRoot;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\trefRoot = refProperty ? refProperty.getReferencedRepositoryRoot() : undefined;\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.warn(e.message);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (that.getRoot() === refRoot) {\n\t\t\t\t\t\t\treferenceProps.push(refProperty);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvar path = this.isRoot() ? [] : [this.getParent()._getPathSegmentForChildNode(this)];\n\t\tthis.traverseUp(function (in_node) {\n\t\t\tif (in_node.getParent()) {\n\t\t\t\tpath.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n\t\t\t} else if (referenceProps.length > 0) {\n\t\t\t\t// recursively call getAbsolutePath, removing the '/' at the beginning of the path\n\t\t\t\tpath.push(referenceProps[0].getAbsolutePath(referenceProps[0].getRoot()).slice(1));\n\t\t\t}\n\t\t});\n\t\tvar absolutePath = path.reverse().join(\"\");\n\n\t\t// We don't use the property path separator at the start of the path\n\t\tif (absolutePath.startsWith(PROPERTY_PATH_DELIMITER)) {\n\t\t\tabsolutePath = absolutePath.substr(1);\n\t\t}\n\t\tabsolutePath = \"/\" + absolutePath;\n\n\t\treturn absolutePath;\n\t}\n\n\t/**\n\t * Traverses the property hierarchy upwards until the a node without parent is reached\n\t *\n\t * @param {Function} in_callback - Callback to invoke for each of the parents. The traversal can be stopped\n\t * by returning BaseProperty.BREAK_TRAVERSAL\n\t * @throws if in_callback is not a function.\n\t * @return {string|undefined} Returns BaseProperty.BREAK_TRAVERSAL, if the traversal didn't reach the root,\n\t * otherwise `undefined`.\n\t */\n\ttraverseUp(in_callback) {\n\t\tConsoleUtils.assert(_.isFunction(in_callback), MSG.CALLBACK_NOT_FCT);\n\t\tif (this._parent) {\n\t\t\tvar result = in_callback(this._parent);\n\t\t\treturn result !== BREAK_TRAVERSAL\n\t\t\t\t? this._parent.traverseUp(in_callback)\n\t\t\t\t: BREAK_TRAVERSAL;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * @type {string} Constant to stop the traversal in traverseUp and traverseDown functions\n\t */\n\tstatic BREAK_TRAVERSAL = BREAK_TRAVERSAL;\n\n\t/**\n\t * Returns all children which are dirty (this only returns direct children, it does not travers recursively)\n\t *\n\t * @param in_flags - Which types of dirtiness are we looking for? If none is given, all types are regarded as dirty.\n\t * @returns The list of keys identifying the dirty children.\n\t */\n\tprotected _getDirtyChildren(in_flags: MODIFIED_STATE_FLAGS): string[] {\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the root of the property hierarchy\n\t * @returns The root property\n\t */\n\tgetRoot(): BaseProperty {\n\t\treturn this._parent ? this._parent.getRoot() : this;\n\t}\n\n\t/**\n\t * Traverses all children in the child hierarchy\n\t * TODO: How should this behave for collections?\n\t *\n\t * @param in_callback - Callback to invoke for every child\n\t * @param in_pathFromTraversalStart - Path from the root of the traversal to this node\n\t * @returns Returns BaseProperty.BREAK_TRAVERSAL if the traversal has been interrupted, otherwise `undefined`.\n\t * @private\n\t */\n\t_traverse(in_callback: Function, in_pathFromTraversalStart: string): string | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Deserialize takes a currently existing property and sets it to the hierarchy described in the normalized\n\t * ChangeSet passed as parameter. It will return a ChangeSet that describes the difference between the current state\n\t * of the property and the passed in normalized property\n\t *\n\t * @param in_serializedObj - The serialized changeset to apply to this node. This has to be a normalized change-set\n\t * (only containing insertions and property assignments. Deletes and Modify must not appear)\n\t * @param in_filteringOptions - The filtering options to consider while deserializing the property.\n\t * @param in_createChangeSet - Should a changeset be created for this deserialization?\n\t * @param in_reportToView - Usually the dirtying should be reported to the view and trigger a modified event there.\n\t * This can be prevented via this flag.\n\t * @throws if called on a read-only property.\n\t * @returns ChangeSet with the changes that actually were performed during the deserialization\n\t */\n\tdeserialize(\n\t\tin_serializedObj: SerializedChangeSet,\n\t\tin_filteringOptions = {},\n\t\tin_createChangeSet = true,\n\t\tin_reportToView = false,\n\t): SerializedChangeSet {\n\t\tthis._checkIsNotReadOnly(false);\n\t\treturn this._deserialize(\n\t\t\tin_serializedObj,\n\t\t\tin_reportToView,\n\t\t\tin_filteringOptions,\n\t\t\tin_createChangeSet,\n\t\t);\n\t}\n\n\t/**\n\t * Sets the property to the state in the given normalized changeset\n\t *\n\t * @param in_serializedObj - The serialized changeset to apply. This\n\t * has to be a normalized change-set (only containing inserts. Removes and Modifies are forbidden).\n\t * @param in_reportToView - Usually the dirtying should be reported to the view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @param in_filteringOptions - The filtering options to consider while deserializing the property.\n\t * @param in_createChangeSet - Should a changeset be created for this deserialization?\n\t * @returns ChangeSet with the changes that actually were performed during the deserialization.\n\t */\n\t_deserialize(\n\t\tin_serializedObj: SerializedChangeSet,\n\t\tin_reportToView: boolean,\n\t\tin_filteringOptions = {},\n\t\tin_createChangeSet = true,\n\t): SerializedChangeSet {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Serialize the property into a changeSet\n\t *\n\t * @param in_dirtyOnly - Only include dirty entries in the serialization\n\t * @param in_includeRootTypeid - Include the typeid of the root of the hierarchy\n\t * @param in_dirtinessType - The type of dirtiness to use when reporting dirty changes. By default this is\n\t * `PENDING_CHANGE`.\n\t * @param in_includeReferencedRepositories - If this is set to true, the serialize\n\t * function will descend into referenced repositories.\n\t * WARNING: if there are loops in the references this can result in an infinite loop.\n\t *\n\t * @returns The serialized representation of this property\n\t */\n\tprotected _serialize(\n\t\tin_dirtyOnly: boolean = false,\n\t\tin_includeRootTypeid: boolean = false,\n\t\tin_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\tin_includeReferencedRepositories: boolean = false,\n\t): object {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Serialize the property\n\t *\n\t * @param in_options - Options for the serialization\n\t * @throws if in_options is defined but is not an object.\n\t * @returns The serialized representation of this property\n\t */\n\tserialize(in_options: ISerializeOptions) {\n\t\tvar opts = {\n\t\t\tdirtyOnly: false,\n\t\t\tincludeRootTypeid: false,\n\t\t\tdirtinessType: MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\tincludeReferencedRepositories: false,\n\t\t};\n\t\tif (in_options !== undefined) {\n\t\t\tif (typeof in_options !== \"object\") {\n\t\t\t\tthrow new TypeError(MSG.SERIALIZE_TAKES_OBJECT);\n\t\t\t}\n\t\t\tObject.assign(opts, in_options);\n\t\t}\n\n\t\treturn this._serialize(\n\t\t\topts.dirtyOnly,\n\t\t\topts.includeRootTypeid,\n\t\t\topts.dirtinessType,\n\t\t\topts.includeReferencedRepositories,\n\t\t);\n\t}\n\n\t/**\n\t * Indicate that all static members have been added to the property\n\t *\n\t * This function is invoked by the PropertyFactory once all static members have been added to the template\n\t * @protected\n\t */\n\t_signalAllStaticMembersHaveBeenAdded() {}\n\n\t/**\n\t * Tests whether this property may be modified\n\t * @param {checkConstant} in_checkConstant - Check if is readonly constant property\n\t */\n\t_checkIsNotReadOnly(in_checkConstant) {\n\t\tif (this._isConstant && in_checkConstant) {\n\t\t\tthrow new Error(MSG.MODIFICATION_OF_CONSTANT_PROPERTY);\n\t\t}\n\n\t\tvar root = this.getRoot();\n\t\tif (root && root._getCheckedOutRepositoryInfo) {\n\t\t\tvar repositoryInfo = root._getCheckedOutRepositoryInfo();\n\n\t\t\tif (repositoryInfo && repositoryInfo._isReadOnly()) {\n\t\t\t\tthrow new Error(MSG.MODIFICATION_OF_REFERENCED_PROPERTY);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Set a property and its children as constants (readonly properties)\n\t */\n\t_setAsConstant() {\n\t\tthis._isConstant = true;\n\n\t\tif (this instanceof Property.AbstractStaticCollectionProperty) {\n\t\t\t// Set all children properties as constants\n\t\t\tthis.traverseDown(function (prop) {\n\t\t\t\tprop._isConstant = true;\n\t\t\t});\n\t\t}\n\t}\n\n\ttraverseDown(arg0: (prop: any) => void) {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\t/**\n\t * Unsets a property and its children as constants\n\t */\n\t_unsetAsConstant() {\n\t\t// Deleting this property will make the object\n\t\t// fall back to the entry in the prototype (false)\n\t\tdelete this._isConstant;\n\n\t\tif (this instanceof Property.AbstractStaticCollectionProperty) {\n\t\t\t// Unset all children properties as constants\n\t\t\tthis.traverseDown(function (prop) {\n\t\t\t\t// Deleting this property will make the object\n\t\t\t\t// fall back to the entry in the prototype (false)\n\t\t\t\tdelete prop._isConstant;\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Dirties this node and all of its children\n\t *\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @private\n\t */\n\t_setDirtyTree(in_reportToView = true) {\n\t\tthis._traverse(function (node) {\n\t\t\t// Set all nodes to dirty, but prevent recursive updates up to the repository for the individual changes\n\t\t\tnode._setDirty(false);\n\t\t}, \"\");\n\t\t// Now make one report\n\t\tif (in_reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Determines whether a property can be inserted as a child of another property\n\t * This does NOT validate if the parent can accept the child property, it only validates if\n\t * the child property can be inserted in the parent.\n\t * @param in_targetParent - The parent property\n\t * @throws if the property can not be inserted\n\t */\n\t_validateInsertIn(in_targetParent: BaseProperty) {\n\t\t// A root?\n\t\tif (this._getCheckedOutRepositoryInfo() !== undefined) {\n\t\t\tthrow new Error(MSG.INSERTED_ROOT_ENTRY);\n\t\t}\n\n\t\t// Would create a cycle?\n\t\tlet parent = in_targetParent;\n\t\twhile (parent !== undefined) {\n\t\t\tif (parent === this) {\n\t\t\t\tthrow new Error(MSG.INSERTED_IN_OWN_CHILDREN);\n\t\t\t}\n\t\t\tparent = parent._parent;\n\t\t}\n\n\t\t// Already a child?\n\t\tif (this._parent !== undefined || this._getCheckoutView() !== undefined) {\n\t\t\tthrow new Error(MSG.INSERTED_ENTRY_WITH_PARENT);\n\t\t}\n\t}\n\n\t/**\n\t * TODO: Remove it later. Kept not to modify tests\n\t *\n\t * Validates if the property and all its children are covered by the given list of paths.\n\t *\n\t * This function is expected to be used before inserting the property into its parent. That is the\n\t * reason for asking for the base path. This is the full path expected for this property.\n\t *\n\t * This function uses the canonical representation of the property paths.\n\t *\n\t * @param in_basePath - The property's absolute path in canonical form\n\t * @param in_paths - The array of paths that we wonder if it covers the property and its children\n\t * @returns If the property and all its children are included in the paths\n\t * @private\n\t */\n\t_coveredByPaths(in_basePath: string, in_paths: string[]): boolean {\n\t\t// First, get the coverage of the base property\n\t\tconst coverage = PathHelper.getPathCoverage(in_basePath, in_paths);\n\n\t\tif (coverage.coverageExtent === PathHelper.CoverageExtent.FULLY_COVERED) {\n\t\t\treturn true;\n\t\t} else if (coverage.coverageExtent === PathHelper.CoverageExtent.PARTLY_COVERED) {\n\t\t\t// We know that part of the property is covered, if we don't find any actual children not covered\n\t\t\t// by the paths it's because we're fully covered.\n\t\t\tif (this.isPrimitiveType()) {\n\t\t\t\tconst childrenIds = this.getContext() === \"single\" ? [] : this.getIds();\n\t\t\t\tfor (const childId of childrenIds) {\n\t\t\t\t\tconst childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n\t\t\t\t\tif (\n\t\t\t\t\t\tPathHelper.getPathCoverage(childPath, coverage.pathList).coverageExtent ===\n\t\t\t\t\t\tPathHelper.CoverageExtent.UNCOVERED\n\t\t\t\t\t) {\n\t\t\t\t\t\t// this children is outside the list of paths\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst childrenIds = this.getIds();\n\t\t\t\tfor (const childId of childrenIds) {\n\t\t\t\t\tconst child = this.get(childId);\n\t\t\t\t\tconst childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n\t\t\t\t\tif (!child._coveredByPaths(childPath, coverage.pathList)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tget _properties() {\n\t\treturn this._flatten();\n\t}\n}\n\n(BaseProperty as any).prototype._isConstant = false;\n(BaseProperty as any).prototype._context = \"single\";\n(BaseProperty as any).prototype._typeid = \"BaseProperty\";\n"]}
|
|
1
|
+
{"version":3,"file":"baseProperty.js","sourceRoot":"","sources":["../../src/properties/baseProperty.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/* eslint accessor-pairs: [2, { \"getWithoutSet\": false }] */\n\nimport {\n\tChangeSet,\n\tPathHelper,\n\tSerializedChangeSet,\n\tTypeIdHelper,\n} from \"@fluid-experimental/property-changeset\";\nimport { constants, ConsoleUtils } from \"@fluid-experimental/property-common\";\nimport _ from \"lodash\";\n\nimport { LazyLoadedProperties as Property } from \"./lazyLoadedProperties\";\n\nconst { MSG, PROPERTY_PATH_DELIMITER } = constants;\nconst BREAK_TRAVERSAL = \"BREAK\";\n\n/**\n * Determines in which cases a reference will automatically be resolved\n */\nenum REFERENCE_RESOLUTION {\n\t/** The resolution will always automatically follow references */\n\tALWAYS,\n\t/** If a reference is the last entry during the path resolution, it will not automatically be resolved */\n\tNO_LEAFS,\n\t/** References are never automatically resolved */\n\tNEVER,\n}\n\n/**\n * Used to indicate the state of a property. These flags can be connected via OR.\n */\nenum MODIFIED_STATE_FLAGS {\n\t/** No changes to this property at the moment */\n\tCLEAN,\n\t/** The property is marked as changed in the currently pending ChangeSet */\n\tPENDING_CHANGE,\n\t/** The property has been modified and the result has not yet been reported to the application for scene updates */\n\tDIRTY,\n}\n\n/**\n * Token Types\n * @enum Object\n * Type of the token in the path string\n */\nconst PATH_TOKENS = {\n\t/** A / at the beginning of the path */\n\tROOT: { token: \"ROOT\" },\n\t/** A * that indicates a dereferencing operation */ // note: reversed!\n\tREF: { token: \"REF\" },\n\t/** A ../ that indicates one step above the current path */\n\tUP: { token: \"UP\" },\n};\n\ninterface IBasePropertyParams {\n\t/** id of the property */\n\tid?: string;\n\t/** The type unique identifier */\n\ttypeid?: string;\n\t/** The length of the property. Only valid if the property is an array, otherwise the length defaults to 1 */\n\tlength: number;\n\t/** The type of property this template represents i.e. single, array, map, set. */\n\tcontext: string;\n\n\t// TODO: UNUSED PARAMETER ??\n\t/** List of property templates that are used to define children properties */\n\tproperties: BaseProperty[];\n\n\t// TODO: UNUSED PARAMETER ??\n\t/** List of property template typeids that this PropertyTemplate inherits from */\n\tinherits: string[];\n}\n\ninterface ISerializeOptions {\n\t/** Only include dirty entries in the serialization */\n\tdirtyOnly?: boolean;\n\t/** Include the typeid of the root of the hierarchy */\n\tincludeRootTypeid?: boolean;\n\t/** The type of dirtiness to use when reporting dirty changes. */\n\tdirtinessType?: MODIFIED_STATE_FLAGS;\n\t/**\n\t * If this is set to true, the serialize\n\t * function will descend into referenced repositories. WARNING: if there are loops in the references\n\t * this can result in an infinite loop\n\t */\n\tincludeReferencedRepositories?: boolean;\n}\n\n/**\n * The options to selectively create only a subset of a property.\n *\n * For now the filtering options are propagated by many functions, but are actually used only by\n * functions that create properties from schemas. It is then possible to create only a subset of\n * the properties of a schema by providing a restricted list of paths.\n *\n * Thus, with the filtering options, it is NOT possible to prevent a part of a ChangeSet from being\n * processed (in `applyChangeSet()` for example), it is NOT possible to prevent a property from being\n * created by a direct call to a function like `deserialize()` or `createProperty()`.\n * @internal\n */\nexport abstract class BaseProperty {\n\tprotected _id: string | undefined;\n\tprotected _isConstant: boolean;\n\tprotected _dirty: MODIFIED_STATE_FLAGS;\n\tprotected _typeid: string;\n\tprotected _context: string;\n\tprotected _parent: BaseProperty | undefined;\n\tprotected _noDirtyInBase: boolean;\n\n\t_tree: any;\n\t_checkoutView: any;\n\t_checkedOutRepositoryInfo: any;\n\n\tconstructor(in_params: IBasePropertyParams) {\n\t\t// Pre-conditions\n\t\t// This test has been disabled for performance reasons, if it would be incorrect,\n\t\t// the next line will throw anyways\n\t\t// ConsoleUtils.assert(in_params, MSG.PROP_CONSTRUCTOR_EXPECTS_OBJECTS);\n\n\t\tif (this._id !== in_params.id) {\n\t\t\tthis._id = in_params.id;\n\t\t}\n\n\t\t// Makes sure context value is fine\n\t\t// This assertion has been disabled for performance reasons. This is not a user facing\n\t\t// constructor function and therefore we rely on PropertyFactory to correctly provide the context.\n\t\t/* ConsoleUtils.assert(!in_params.context || in_params.context === this._context,\n MSG.CONTEXT_NOT_AS_EXPECTED + this._context + ' != ' + in_params.context); */\n\n\t\t// Sets typeid if default value is not fine\n\t\tlet typeId = in_params.typeid || \"BaseProperty\";\n\t\tif (typeId !== this._typeid) {\n\t\t\tthis._typeid = typeId;\n\t\t}\n\n\t\tthis._parent = undefined;\n\t\t// internal management\n\t\tif (!this._noDirtyInBase) {\n\t\t\tthis._dirty = MODIFIED_STATE_FLAGS.CLEAN;\n\t\t}\n\t}\n\n\tstatic MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS;\n\tstatic REFERENCE_RESOLUTION = REFERENCE_RESOLUTION;\n\tstatic PATH_TOKENS = PATH_TOKENS;\n\n\t/**\n\t * @returns The typeid of this property\n\t */\n\tgetTypeid(): string {\n\t\treturn this._typeid;\n\t}\n\n\t/**\n\t * @returns The context of this property\n\t */\n\tgetContext(): string {\n\t\treturn this._context;\n\t}\n\n\t/**\n\t * Get the scope to which this property belongs to.\n\t * @returns The guid representing the scope in which the\n\t * property belongs to\n\t */\n\tprotected _getScope(): string | undefined {\n\t\treturn this._parent ? this.getRoot()._getScope() : undefined;\n\t}\n\n\t/**\n\t * Returns the full property type identifier for the ChangeSet including the enum type id\n\t * @param in_hideCollection - if true the collection type (if applicable) will be omitted since that is not\n\t * applicable here, this param is ignored.\n\t * @returns The typeid\n\t */\n\tgetFullTypeid(in_hideCollection = false): string {\n\t\treturn this._typeid;\n\t}\n\n\t/**\n\t * Updates the parent for the property\n\t *\n\t * @param in_property - The parent property\n\t */\n\tprotected _setParent(in_property: BaseProperty) {\n\t\tthis._parent = in_property;\n\n\t\t// If the property is dirty but not its parent, dirty the parent. In cases like named properties\n\t\t// and default values, a parent is set after a value is set; we get a case where the\n\t\t// property is dirty but not its parent and the change is not included in a changeSet.\n\t\tif (this._parent && this._isDirty() && !this._parent._isDirty()) {\n\t\t\tthis._parent._setDirty(false, this);\n\t\t}\n\t}\n\n\t/**\n\t * Is this property the root of the property set tree?\n\t *\n\t * @returns True if it is a root, otherwise false.\n\t */\n\tisRoot(): boolean {\n\t\t// This checks, whether this is the root of a CheckOutView\n\t\t// (all other properties should have a parent property)\n\t\treturn this._parent === undefined;\n\t}\n\n\t/**\n\t * Is this property the ancestor of in_otherProperty?\n\t * Note: A property is not considered an ancestor of itself\n\t * @param in_otherProperty - possible descendant\n\t * @throws if in_otherProperty is not defined.\n\t * @returns True if it is a ancestor, otherwise false.\n\t */\n\tisAncestorOf(in_otherProperty: BaseProperty): boolean {\n\t\tConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n\t\tvar parent = in_otherProperty.getParent();\n\t\twhile (parent) {\n\t\t\tif (parent === this) {\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\tparent = parent.getParent();\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Is this property the descendant of in_otherProperty?\n\t * Note: A property is not considered a descendant of itself\n\t * @param in_otherProperty - possible ancestor\n\t * @throws if in_otherProperty is not defined.\n\t * @returns True if it is a descendant, otherwise false.\n\t */\n\tisDescendantOf(in_otherProperty: BaseProperty): boolean {\n\t\tConsoleUtils.assert(in_otherProperty, MSG.MISSING_IN_OTHERPROP);\n\t\treturn in_otherProperty.isAncestorOf(this);\n\t}\n\n\t/**\n\t * Is this property a leaf node with regard to flattening?\n\t *\n\t * TODO: Which semantics should flattening have? It stops at primitive types and collections?\n\t *\n\t * @returns True if it is a leaf with regard to flattening\n\t */\n\t_isFlattenLeaf(): boolean {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get the parent of this property\n\t *\n\t * @returns The parent of this property (or undefined if none exist)\n\t */\n\tgetParent(): BaseProperty | undefined {\n\t\treturn this._parent;\n\t}\n\n\t/**\n\t * checks whether the property is dynamic (only properties inherting from NodeProperty are)\n\t * @returns True if it is a dynamic property.\n\t */\n\tisDynamic() {\n\t\treturn false;\n\t}\n\n\t/**\n\t * Sets the property as dirty and/or pending. This will add one or both flags if not already set and will\n\t * do the same for its parent. This does not clear any flag, it only sets.\n\t *\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @param in_callingChild - The child which is dirtying its parent\n\t * @param in_flags - The flags to set.\n\t * @private\n\t */\n\t_setDirty(\n\t\tin_reportToView = true,\n\t\tin_callingChild: BaseProperty = undefined,\n\t\tin_flags: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY |\n\t\t\tMODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t) {\n\t\tif (in_flags === undefined) {\n\t\t\tin_flags = MODIFIED_STATE_FLAGS.DIRTY | MODIFIED_STATE_FLAGS.PENDING_CHANGE;\n\t\t}\n\t\tvar reportToView = in_reportToView;\n\t\tif (reportToView === undefined) {\n\t\t\treportToView = true;\n\t\t}\n\t\t// We only update the flags upwards in the tree, when the corresponding nodes are not already flagged\n\t\tvar oldFlags = this._getDirtyFlags();\n\t\tif ((oldFlags & in_flags) !== in_flags) {\n\t\t\t// only dirty once until clean.\n\t\t\tthis._setDirtyFlags(oldFlags | in_flags);\n\n\t\t\t// Report dirtiness upwards in the hierarchy\n\t\t\tif (this._parent) {\n\t\t\t\tthis._parent._setDirty(reportToView, this, in_flags);\n\t\t\t\treportToView = false;\n\t\t\t}\n\t\t}\n\t\tif (reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the dirty flags for this property\n\t * @param in_flags - The dirty flags\n\t */\n\t_setDirtyFlags(in_flags: MODIFIED_STATE_FLAGS) {\n\t\tthis._dirty = in_flags;\n\t}\n\n\t/**\n\t * Gets the dirty flags for this property\n\t * @returns The dirty flags\n\t */\n\t_getDirtyFlags(): MODIFIED_STATE_FLAGS {\n\t\treturn this._dirty;\n\t}\n\n\t/**\n\t * Helper function, which reports the fact that a property has been dirtied to the checkout view\n\t * @private\n\t */\n\t// TODO: Cleaner way to make the property tree aware of the DDS hosting it.\n\t// Currently, this._tree is set in SharedPropertyTree constructor.\n\t_reportDirtinessToView() {\n\t\tlet currentNode: BaseProperty = this;\n\n\t\twhile (currentNode._parent) {\n\t\t\tcurrentNode = currentNode._parent;\n\t\t}\n\n\t\tif (\n\t\t\tcurrentNode._tree &&\n\t\t\tcurrentNode._tree.notificationDelayScope === 0 &&\n\t\t\tcurrentNode._isDirty(BaseProperty.MODIFIED_STATE_FLAGS.DIRTY)\n\t\t) {\n\t\t\tcurrentNode._tree._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Modifies the property according to the given changeset\n\t *\n\t * @param in_changeSet - The changeset to apply\n\t * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions] - The filtering options to\n\t * consider while applying the ChangeSet.\n\t * @throws if in_changeSet is invalid.\n\t */\n\tapplyChangeSet(in_changeSet: SerializedChangeSet) {\n\t\tthis._checkIsNotReadOnly(false);\n\n\t\t// We just forward the call to the internal function\n\t\tthis._applyChangeset(in_changeSet, true);\n\t}\n\n\t/**\n\t * Modifies the property according to the given changeset\n\t *\n\t * Internal function.\n\t *\n\t * @param in_changeSet - The changeset to apply\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view and trigger a\n\t * modified event there. When batching updates, this can be prevented via this flag.\n\t * @param {property-properties.BaseProperty.PathFilteringOptions} [in_filteringOptions] - The filtering options to\n\t * consider while applying the ChangeSet. For now it is only used to control property creation, to prevent\n\t * properties from being created outside the checked out paths. It does not validate that a value inside the\n\t * ChangeSet is outside those paths.\n\t */\n\t_applyChangeset(\n\t\tin_changeSet: SerializedChangeSet,\n\t\tin_reportToView = true,\n\t\tin_filteringOptions = undefined,\n\t) {\n\t\tvar typeids = _.keys(in_changeSet);\n\t\tfor (const typeid of typeids) {\n\t\t\tif (ChangeSet.isReservedKeyword(typeid)) {\n\t\t\t\tcontinue; // Ignore the special keys\n\t\t\t}\n\n\t\t\tvar paths = _.keys(in_changeSet[typeid]);\n\t\t\tfor (const path of paths) {\n\t\t\t\tvar property = this.resolvePath(path, {\n\t\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t\t});\n\t\t\t\tif (property) {\n\t\t\t\t\tproperty._applyChangeset(in_changeSet[typeid][path], false);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(MSG.INVALID_PATH + path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (in_reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Re-apply dirty flags from changesets\n\t *\n\t * Internal function.\n\t *\n\t * @param in_pendingChangeSet - The pending changeset to apply\n\t * @param in_dirtyChangeSet - The dirty changeset to apply\n\t * @throws if changeset arguments are invalid.\n\t */\n\t_reapplyDirtyFlags(\n\t\tin_pendingChangeSet: SerializedChangeSet,\n\t\tin_dirtyChangeSet: SerializedChangeSet,\n\t) {\n\t\tthis._checkIsNotReadOnly(false);\n\t\t// Here we must walk both changesets in parallel. Sometimes there will be only an entry in one\n\t\t// changeset, sometimes only one in the other changeset, sometimes one in both.\n\t\tconst typeids = _.keys(in_pendingChangeSet).concat(_.keys(in_dirtyChangeSet));\n\t\tfor (const typeid of typeids) {\n\t\t\tif (ChangeSet.isReservedKeyword(typeid)) {\n\t\t\t\tcontinue; // Ignore the special keys\n\t\t\t}\n\t\t\tconst pendingChangeSet = in_pendingChangeSet && in_pendingChangeSet[typeid];\n\t\t\tconst dirtyChangeSet = in_dirtyChangeSet && in_dirtyChangeSet[typeid];\n\n\t\t\tconst paths = _.keys(pendingChangeSet).concat(_.keys(dirtyChangeSet));\n\t\t\tfor (const path of paths) {\n\t\t\t\tlet property = this.resolvePath(path);\n\t\t\t\tif (property) {\n\t\t\t\t\tproperty._reapplyDirtyFlags(\n\t\t\t\t\t\tpendingChangeSet && pendingChangeSet[path],\n\t\t\t\t\t\tdirtyChangeSet && dirtyChangeSet[path],\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(MSG.INVALID_PATH + path);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected resolvePath(path: string, params?: any): BaseProperty {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\t/**\n\t * Removes the dirtiness flag from this property\n\t * @param {property-properties.BaseProperty.MODIFIED_STATE_FLAGS} [in_flags] - The flags to clean.\n\t * If none are supplied all will be removed.\n\t * @private\n\t */\n\t_cleanDirty(in_flags) {\n\t\tthis._setDirtyFlags(\n\t\t\tin_flags === undefined ? MODIFIED_STATE_FLAGS.CLEAN : this._getDirtyFlags() & ~in_flags,\n\t\t);\n\t}\n\n\t/**\n\t * Removes the dirtiness flag from this property and recursively from all of its children\n\t *\n\t * @param in_flags - The flags to clean. If none are supplied all will be removed.\n\t */\n\tcleanDirty(in_flags: MODIFIED_STATE_FLAGS) {\n\t\tvar dirtyChildren = this._getDirtyChildren(in_flags);\n\t\tfor (const dirtyChild of dirtyChildren) {\n\t\t\tconst child = this.get(dirtyChild, {\n\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t});\n\t\t\tchild.cleanDirty(in_flags);\n\t\t\tchild._cleanDirty(in_flags);\n\t\t}\n\n\t\t// after all paths are clean, we are also clean!\n\t\tthis._cleanDirty(in_flags);\n\t}\n\n\t/**\n\t * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n\t * application for runtime scene updates.\n\t *\n\t * @param in_dirtinessType - The type of dirtiness to check for. By default this is DIRTY\n\t * @returns Is the property dirty?\n\t */\n\t_isDirty(in_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.DIRTY): boolean {\n\t\treturn !!(this._getDirtyFlags() & in_dirtinessType);\n\t}\n\n\t/**\n\t * Indicates that the property has been modified and a corresponding modified call has not yet been sent to the\n\t * application for runtime scene updates.\n\t *\n\t * @returns True if the property is dirty. False otherwise.\n\t */\n\tisDirty(): boolean {\n\t\treturn this._isDirty();\n\t}\n\n\t/**\n\t * The property has pending changes in the current ChangeSet.\n\t * @returns True if the property has pending changes. False otherwise.\n\t */\n\thasPendingChanges(): boolean {\n\t\treturn this._isDirty(MODIFIED_STATE_FLAGS.PENDING_CHANGE);\n\t}\n\n\t/**\n\t * Returns the ChangeSet of all sub-properties\n\t *\n\t * @returns The serialized changes\n\t */\n\tgetPendingChanges(): ChangeSet {\n\t\tvar serialized = this._serialize(\n\t\t\ttrue,\n\t\t\tfalse,\n\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t);\n\t\treturn new ChangeSet(serialized);\n\t}\n\n\t/**\n\t * Get the id of this property\n\t *\n\t * @returns The id of the property\n\t */\n\tgetId(): string | undefined {\n\t\treturn this._id;\n\t}\n\n\t/**\n\t * Sets the checkedOutRepositoryInfo.\n\t * @param {property-properties.CheckoutView~CheckedOutRepositoryInfo} value - The checkedOut repository info.\n\t * @protected\n\t */\n\t_setCheckoutView(value) {\n\t\tthis._checkoutView = value;\n\t}\n\n\t/**\n\t * Returns the checkoutView\n\t * @return {property-properties.CheckoutView} - the checkout view\n\t */\n\t_getCheckoutView() {\n\t\tlet checkedOutRepositoryInfo = this._getCheckedOutRepositoryInfo();\n\t\treturn checkedOutRepositoryInfo ? checkedOutRepositoryInfo.getCheckoutView() : undefined;\n\t}\n\n\t/**\n\t * Returns the checkedOutRepositoryInfo.\n\t * @return {property-properties.CheckoutView~CheckedOutRepositoryInfo} The checkedOut repository info.\n\t * @protected\n\t */\n\t_getCheckedOutRepositoryInfo() {\n\t\tif (!this._parent) {\n\t\t\treturn this._checkedOutRepositoryInfo;\n\t\t} else {\n\t\t\treturn this.getRoot() ? this.getRoot()._getCheckedOutRepositoryInfo() : undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the Workspace\n\t * @returns The workspace containing the property.\n\t */\n\tgetWorkspace() {\n\t\tconst root = this.getRoot();\n\t\treturn root ? root._tree : undefined;\n\t}\n\n\t/**\n\t * Returns the path segment for a child\n\t *\n\t * @param in_childNode - The child for which the path is returned\n\t *\n\t * @returns The path segment to resolve the child property under this property\n\t */\n\tprotected _getPathSegmentForChildNode(in_childNode: BaseProperty): string {\n\t\treturn PROPERTY_PATH_DELIMITER + PathHelper.quotePathSegmentIfNeeded(in_childNode.getId());\n\t}\n\n\t/**\n\t * Resolves a direct child node based on the given path segment\n\t *\n\t * @param {String} in_segment - The path segment to resolve\n\t * @param {property-properties.PathHelper.TOKEN_TYPES} in_segmentType - The type of segment in the tokenized path\n\t *\n\t * @return {property-properties.BaseProperty|undefined} The child property that has been resolved\n\t */\n\tprotected _resolvePathSegment(in_segment: string, in_segmentType: PathHelper.TOKEN_TYPES) {\n\t\t// Base Properties only support paths separated via dots\n\t\tif (in_segmentType !== PathHelper.TOKEN_TYPES.PATH_SEGMENT_TOKEN) {\n\t\t\tthrow new Error(MSG.INVALID_PATH_TOKEN + in_segment);\n\t\t}\n\n\t\treturn this.get(in_segment, {\n\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t});\n\t}\n\n\t/**\n\t * Set the id of this property\n\t *\n\t * @param {string} in_id - The id for this property\n\t *\n\t * @return {string} the new id\n\t * @private\n\t */\n\t_setId(in_id) {\n\t\tif (!_.isString(in_id) && !_.isNumber(in_id)) {\n\t\t\tthrow new TypeError(MSG.ID_STRING_OR_NUMBER + in_id);\n\t\t}\n\n\t\tif (this._parent !== undefined) {\n\t\t\tthrow new Error(MSG.ID_CHANGE_FOR_PROPERTY_WITH_PARENT + this._id + \" to id: \" + in_id);\n\t\t}\n\n\t\tthis._id = String(in_id);\n\n\t\t// flush caches\n\t\tthis._setDirty();\n\n\t\treturn in_id;\n\t}\n\n\t/**\n\t * Return a clone of this property\n\t * @returns The cloned property\n\t */\n\tclone(): BaseProperty {\n\t\tconst PropertyFactory = Property.PropertyFactory;\n\t\tvar clone = PropertyFactory._createProperty(\n\t\t\tthis.getFullTypeid(),\n\t\t\tnull,\n\t\t\tundefined,\n\t\t\tthis._getScope(),\n\t\t\ttrue,\n\t\t);\n\n\t\t// TODO: this is not very efficient. Clone should be overriden\n\t\t// by the child classes\n\t\tclone.deserialize(this._serialize());\n\t\tclone.cleanDirty(\n\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.PENDING_CHANGE |\n\t\t\t\tBaseProperty.MODIFIED_STATE_FLAGS.DIRTY,\n\t\t);\n\t\treturn clone;\n\t}\n\n\t/**\n\t * Returns true if the property is a primitive type\n\t * @return {boolean} true if the property is a primitive type\n\t */\n\tisPrimitiveType() {\n\t\treturn TypeIdHelper.isPrimitiveType(this._typeid);\n\t}\n\n\t/**\n\t * Get a flattened, tree like representation of this object and all of it's\n\t * descendants. The flattening will stop at primitive properties and collections.\n\t *\n\t * For non-leaf nodes, it is possible to access the corresponding node object itself via the\n\t * propertyNode member of the flattened representation (warning, this will overwrite a\n\t * property of this name).\n\t * TODO: Do we want to have this feature or is it to dangerous?\n\t *\n\t * @returns the flat representation\n\t */\n\tprotected _flatten(): object {\n\t\treturn { propertyNode: this };\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string representations\n\t * of the property and of its sub-properties. By default it logs to the console.\n\t * If printFct is not a function, it will default to console.log\n\t * @param {function} [printFct=console.log] - Function to call for printing each property\n\t */\n\tprettyPrint(printFct) {\n\t\tif (typeof printFct !== \"function\") {\n\t\t\tprintFct = console.log;\n\t\t}\n\t\tthis._prettyPrint(\"\", \"\", printFct);\n\t}\n\n\t/**\n\t * Return a JSON representation of the properties and its children.\n\t */\n\tprotected _toJson(): object {\n\t\tvar json = {\n\t\t\tid: this.getId(),\n\t\t\tcontext: this._context,\n\t\t\ttypeid: this.getTypeid(),\n\t\t\tisConstant: this._isConstant,\n\t\t\tvalue: [],\n\t\t};\n\n\t\tvar ids = this.getIds();\n\t\tfor (const id of ids) {\n\t\t\tjson.value.push(\n\t\t\t\tthis.get(id, {\n\t\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t\t})._toJson(),\n\t\t\t);\n\t\t}\n\n\t\treturn json;\n\t}\n\n\tgetIds(): string[] {\n\t\treturn [];\n\t}\n\n\tget(\n\t\tid: string,\n\t\tparams?: { referenceResolutionMode: REFERENCE_RESOLUTION },\n\t): BaseProperty | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string\n\t * representations of the property and of its sub-properties.\n\t * @param {string} indent - Leading spaces to create the tree representation\n\t * @param {string} externalId - Name of the current property at the upper level. Used for arrays.\n\t * @param {function} printFct - Function to call for printing each property\n\t */\n\t_prettyPrint(indent, externalId, printFct) {\n\t\tvar context = \"\";\n\t\tswitch (this._context) {\n\t\t\tcase \"map\":\n\t\t\t\tcontext = \"Map of \";\n\t\t\t\tbreak;\n\t\t\tcase \"set\":\n\t\t\t\tcontext = \"Set of \";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\tprintFct(indent + externalId + this.getId() + \" (\" + context + this.getTypeid() + \"):\");\n\t\tthis._prettyPrintChildren(indent, printFct);\n\t}\n\n\t/**\n\t * Repeatedly calls back the given function with human-readable string\n\t * representations of the property's sub-properties.\n\t * @param {string} indent - Leading spaces to create the tree representation\n\t * @param {function} printFct - Function to call for printing each property\n\t */\n\t_prettyPrintChildren(indent, printFct) {\n\t\tindent += \" \";\n\t\tvar ids = this.getIds();\n\t\tfor (var i = 0; i < ids.length; i++) {\n\t\t\tthis.get(ids[i], {\n\t\t\t\treferenceResolutionMode: BaseProperty.REFERENCE_RESOLUTION.NEVER,\n\t\t\t})._prettyPrint(indent, \"\", printFct);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the possible paths from the given from_property to this property. If multiple paths\n\t * through multiple repository references are possible, returns more than one path.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed\n\t * @return {Array<string | undefined>} The paths between from_property and this property\n\t * will return an empty array if trying to get the path from a child repo to a parent repo.\n\t * @private\n\t */\n\t_getPathsThroughRepoRef(in_fromProperty) {\n\t\tvar paths = [];\n\t\tvar that = this;\n\t\tvar referenceProps = [];\n\t\t// get all reference properties in the referenceProps array\n\t\tthis._getCheckoutView()._forEachCheckedOutRepository(function (repoInfo) {\n\t\t\tvar keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n\t\t\tfor (const key of keys) {\n\t\t\t\tif (key) {\n\t\t\t\t\tvar repoRef =\n\t\t\t\t\t\trepoInfo._referencedByPropertyInstanceGUIDs[key]._repositoryReferenceProperties[\n\t\t\t\t\t\t\tkey\n\t\t\t\t\t\t].property;\n\t\t\t\t\tif (that.getRoot() === repoRef.getReferencedRepositoryRoot()) {\n\t\t\t\t\t\treferenceProps.push(repoRef);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// if no repo references point to the root of 'this', we can assume that 'this' is in the\n\t\t// parent repo, which cannot return a useful path.\n\t\tif (referenceProps.length === 0) {\n\t\t\tconsole.warn(MSG.NO_PATH_FROM_CHILD_REPO);\n\t\t\treturn [];\n\t\t}\n\n\t\t// path from root of the child repo to 'this'\n\t\tvar pathInChildRepo = this._getDirectPath(this.getRoot());\n\n\t\t// find possible paths from in_fromProperty to the referenceProps\n\t\t// concatenate each with pathInChildRepo\n\t\tfor (const referenceProp of referenceProps) {\n\t\t\tvar pathInParentRepo = referenceProp.getRelativePath(in_fromProperty);\n\t\t\tif (pathInParentRepo) {\n\t\t\t\tif (pathInChildRepo.length > 0) {\n\t\t\t\t\tpaths.push(pathInParentRepo + \".\" + pathInChildRepo);\n\t\t\t\t} else {\n\t\t\t\t\tpaths.push(pathInParentRepo);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (paths.length > 0) {\n\t\t\treturn paths;\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the possible paths from the given in_fromProperty to this property. If no direct paths\n\t * exist, it returns an indirect path between the two properties.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {string} The path between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getIndirectPath(in_fromProperty) {\n\t\tvar path = [];\n\t\tvar that = this;\n\t\tvar foundPath = undefined;\n\n\t\tfoundPath = in_fromProperty.traverseUp(function (in_node) {\n\t\t\tpath.push(\"../\");\n\t\t\tif (in_node === that) {\n\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t}\n\t\t\tvar directPath = that._getDirectPath(in_node);\n\t\t\tif (directPath) {\n\t\t\t\tpath.push(directPath);\n\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t}\n\t\t\treturn undefined;\n\t\t});\n\t\treturn foundPath === BREAK_TRAVERSAL ? path.join(\"\") : undefined;\n\t}\n\n\t/**\n\t * Returns the path from the given in_fromProperty to this property if a direct path\n\t * exists between the two properties. Otherwise returns undefined.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {string} The path between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getDirectPath(in_fromProperty) {\n\t\tvar path = [];\n\t\tvar foundAncestor = undefined;\n\t\tif (in_fromProperty === this) {\n\t\t\tfoundAncestor = BREAK_TRAVERSAL;\n\t\t} else if (this.getParent()) {\n\t\t\tpath.push(this.getParent()._getPathSegmentForChildNode(this));\n\n\t\t\tfoundAncestor = this.traverseUp(function (in_node) {\n\t\t\t\t// break where we meet the relative reference\n\t\t\t\tif (in_node === in_fromProperty) {\n\t\t\t\t\treturn BREAK_TRAVERSAL;\n\t\t\t\t}\n\n\t\t\t\tif (in_node.getParent()) {\n\t\t\t\t\tpath.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n\t\t\t\t}\n\n\t\t\t\treturn undefined;\n\t\t\t});\n\t\t}\n\n\t\tif (foundAncestor === BREAK_TRAVERSAL) {\n\t\t\tvar result = path.reverse().join(\"\");\n\n\t\t\t// We don't use a PROPERTY_PATH_DELIMITER at the start of the path\n\t\t\tif (result.startsWith(PROPERTY_PATH_DELIMITER)) {\n\t\t\t\tresult = result.substr(1);\n\t\t\t}\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the possible paths from the given in_fromProperty to this property.\n\t *\n\t * @param {property-properties.BaseProperty} in_fromProperty - The node from which the path is computed.\n\t * @return {Array<string>} The paths between the given in_fromProperty and this property.\n\t * @private\n\t */\n\t_getAllRelativePaths(in_fromProperty) {\n\t\tif (this.getRoot() !== in_fromProperty.getRoot()) {\n\t\t\t// if this and in_fromProperty have different roots, go through a repo ref\n\t\t\t// this is the case where we might have more than one path\n\t\t\treturn this._getPathsThroughRepoRef(in_fromProperty);\n\t\t} else {\n\t\t\tvar directPath = this._getDirectPath(in_fromProperty);\n\t\t\treturn directPath !== undefined\n\t\t\t\t? [directPath]\n\t\t\t\t: [this._getIndirectPath(in_fromProperty)];\n\t\t}\n\t}\n\n\t/**\n\t * Returns the path from the given fron_property to this node if such a path exists.\n\t * If more than one paths exist (as might be the case with multiple repository references\n\t * pointing to the same repository), it will return the first valid path found.\n\t * For example, if you have this structure:\n\t *\n\t * ```\n\t * <code>prop1\n\t * --prop2\n\t * ----prop3</code>\n\t * ```\n\t *\n\t * and call: `<code>prop1.getRelativePath(prop3);</code>`\n\t *\n\t * You will get the path from prop3 to prop1, which would be '../../'\n\t *\n\t * @param in_fromProperty - The property from which the path is computed.\n\t * @returns The path between the given in_fromProperty and this property.\n\t * @throws If in_fromProperty is not a property.\n\t */\n\tgetRelativePath(in_fromProperty: BaseProperty): string {\n\t\tConsoleUtils.assert(\n\t\t\tin_fromProperty instanceof BaseProperty,\n\t\t\tMSG.IN_FROMPROPERTY_MUST_BE_PROPERTY,\n\t\t);\n\t\tvar paths = this._getAllRelativePaths(in_fromProperty) || [];\n\t\tif (paths.length === 0) {\n\t\t\tconsole.warn(\n\t\t\t\tMSG.NO_PATH_BETWEEN +\n\t\t\t\t\tin_fromProperty.getAbsolutePath() +\n\t\t\t\t\t\" and \" +\n\t\t\t\t\tthis.getAbsolutePath(),\n\t\t\t);\n\t\t} else if (paths.length > 1) {\n\t\t\tconsole.warn(\n\t\t\t\tMSG.MORE_THAN_ONE_PATH +\n\t\t\t\t\tin_fromProperty.getAbsolutePath() +\n\t\t\t\t\t\" and \" +\n\t\t\t\t\tthis.getAbsolutePath(),\n\t\t\t);\n\t\t}\n\t\treturn paths[0];\n\t}\n\n\t/**\n\t * Returns the path from the root of the workspace to this node (including a slash at the beginning).\n\t *\n\t * @return {string} The path from the root\n\t */\n\tgetAbsolutePath() {\n\t\tvar that = this;\n\t\tvar referenceProps = [];\n\t\t// get all reference properties pointing to the root the repository containing 'this'\n\t\tif (this._getCheckoutView()) {\n\t\t\tthis._getCheckoutView()._forEachCheckedOutRepository(function (repoInfo) {\n\t\t\t\tvar keys = _.keys(repoInfo._referencedByPropertyInstanceGUIDs);\n\t\t\t\tfor (const key of keys) {\n\t\t\t\t\tif (key) {\n\t\t\t\t\t\tlet repoRef = repoInfo._referencedByPropertyInstanceGUIDs[key];\n\t\t\t\t\t\tlet refProperty = undefined;\n\n\t\t\t\t\t\tif (repoRef) {\n\t\t\t\t\t\t\trefProperty = repoRef._repositoryReferenceProperties[key]\n\t\t\t\t\t\t\t\t? repoRef._repositoryReferenceProperties[key].property\n\t\t\t\t\t\t\t\t: undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet refRoot;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\trefRoot = refProperty ? refProperty.getReferencedRepositoryRoot() : undefined;\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.warn(e.message);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (that.getRoot() === refRoot) {\n\t\t\t\t\t\t\treferenceProps.push(refProperty);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvar path = this.isRoot() ? [] : [this.getParent()._getPathSegmentForChildNode(this)];\n\t\tthis.traverseUp(function (in_node) {\n\t\t\tif (in_node.getParent()) {\n\t\t\t\tpath.push(in_node.getParent()._getPathSegmentForChildNode(in_node));\n\t\t\t} else if (referenceProps.length > 0) {\n\t\t\t\t// recursively call getAbsolutePath, removing the '/' at the beginning of the path\n\t\t\t\tpath.push(referenceProps[0].getAbsolutePath(referenceProps[0].getRoot()).slice(1));\n\t\t\t}\n\t\t});\n\t\tvar absolutePath = path.reverse().join(\"\");\n\n\t\t// We don't use the property path separator at the start of the path\n\t\tif (absolutePath.startsWith(PROPERTY_PATH_DELIMITER)) {\n\t\t\tabsolutePath = absolutePath.substr(1);\n\t\t}\n\t\tabsolutePath = \"/\" + absolutePath;\n\n\t\treturn absolutePath;\n\t}\n\n\t/**\n\t * Traverses the property hierarchy upwards until the a node without parent is reached\n\t *\n\t * @param {Function} in_callback - Callback to invoke for each of the parents. The traversal can be stopped\n\t * by returning BaseProperty.BREAK_TRAVERSAL\n\t * @throws if in_callback is not a function.\n\t * @return {string|undefined} Returns BaseProperty.BREAK_TRAVERSAL, if the traversal didn't reach the root,\n\t * otherwise `undefined`.\n\t */\n\ttraverseUp(in_callback) {\n\t\tConsoleUtils.assert(_.isFunction(in_callback), MSG.CALLBACK_NOT_FCT);\n\t\tif (this._parent) {\n\t\t\tvar result = in_callback(this._parent);\n\t\t\treturn result !== BREAK_TRAVERSAL\n\t\t\t\t? this._parent.traverseUp(in_callback)\n\t\t\t\t: BREAK_TRAVERSAL;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * @type {string} Constant to stop the traversal in traverseUp and traverseDown functions\n\t */\n\tstatic BREAK_TRAVERSAL = BREAK_TRAVERSAL;\n\n\t/**\n\t * Returns all children which are dirty (this only returns direct children, it does not travers recursively)\n\t *\n\t * @param in_flags - Which types of dirtiness are we looking for? If none is given, all types are regarded as dirty.\n\t * @returns The list of keys identifying the dirty children.\n\t */\n\tprotected _getDirtyChildren(in_flags: MODIFIED_STATE_FLAGS): string[] {\n\t\treturn [];\n\t}\n\n\t/**\n\t * Returns the root of the property hierarchy\n\t * @returns The root property\n\t */\n\tgetRoot(): BaseProperty {\n\t\treturn this._parent ? this._parent.getRoot() : this;\n\t}\n\n\t/**\n\t * Traverses all children in the child hierarchy\n\t * TODO: How should this behave for collections?\n\t *\n\t * @param in_callback - Callback to invoke for every child\n\t * @param in_pathFromTraversalStart - Path from the root of the traversal to this node\n\t * @returns Returns BaseProperty.BREAK_TRAVERSAL if the traversal has been interrupted, otherwise `undefined`.\n\t * @private\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n\t_traverse(in_callback: Function, in_pathFromTraversalStart: string): string | undefined {\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Deserialize takes a currently existing property and sets it to the hierarchy described in the normalized\n\t * ChangeSet passed as parameter. It will return a ChangeSet that describes the difference between the current state\n\t * of the property and the passed in normalized property\n\t *\n\t * @param in_serializedObj - The serialized changeset to apply to this node. This has to be a normalized change-set\n\t * (only containing insertions and property assignments. Deletes and Modify must not appear)\n\t * @param in_filteringOptions - The filtering options to consider while deserializing the property.\n\t * @param in_createChangeSet - Should a changeset be created for this deserialization?\n\t * @param in_reportToView - Usually the dirtying should be reported to the view and trigger a modified event there.\n\t * This can be prevented via this flag.\n\t * @throws if called on a read-only property.\n\t * @returns ChangeSet with the changes that actually were performed during the deserialization\n\t */\n\tdeserialize(\n\t\tin_serializedObj: SerializedChangeSet,\n\t\tin_filteringOptions = {},\n\t\tin_createChangeSet = true,\n\t\tin_reportToView = false,\n\t): SerializedChangeSet {\n\t\tthis._checkIsNotReadOnly(false);\n\t\treturn this._deserialize(\n\t\t\tin_serializedObj,\n\t\t\tin_reportToView,\n\t\t\tin_filteringOptions,\n\t\t\tin_createChangeSet,\n\t\t);\n\t}\n\n\t/**\n\t * Sets the property to the state in the given normalized changeset\n\t *\n\t * @param in_serializedObj - The serialized changeset to apply. This\n\t * has to be a normalized change-set (only containing inserts. Removes and Modifies are forbidden).\n\t * @param in_reportToView - Usually the dirtying should be reported to the view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @param in_filteringOptions - The filtering options to consider while deserializing the property.\n\t * @param in_createChangeSet - Should a changeset be created for this deserialization?\n\t * @returns ChangeSet with the changes that actually were performed during the deserialization.\n\t */\n\t_deserialize(\n\t\tin_serializedObj: SerializedChangeSet,\n\t\tin_reportToView: boolean,\n\t\tin_filteringOptions = {},\n\t\tin_createChangeSet = true,\n\t): SerializedChangeSet {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Serialize the property into a changeSet\n\t *\n\t * @param in_dirtyOnly - Only include dirty entries in the serialization\n\t * @param in_includeRootTypeid - Include the typeid of the root of the hierarchy\n\t * @param in_dirtinessType - The type of dirtiness to use when reporting dirty changes. By default this is\n\t * `PENDING_CHANGE`.\n\t * @param in_includeReferencedRepositories - If this is set to true, the serialize\n\t * function will descend into referenced repositories.\n\t * WARNING: if there are loops in the references this can result in an infinite loop.\n\t *\n\t * @returns The serialized representation of this property\n\t */\n\tprotected _serialize(\n\t\tin_dirtyOnly: boolean = false,\n\t\tin_includeRootTypeid: boolean = false,\n\t\tin_dirtinessType: MODIFIED_STATE_FLAGS = MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\tin_includeReferencedRepositories: boolean = false,\n\t): object {\n\t\treturn {};\n\t}\n\n\t/**\n\t * Serialize the property\n\t *\n\t * @param in_options - Options for the serialization\n\t * @throws if in_options is defined but is not an object.\n\t * @returns The serialized representation of this property\n\t */\n\tserialize(in_options: ISerializeOptions) {\n\t\tvar opts = {\n\t\t\tdirtyOnly: false,\n\t\t\tincludeRootTypeid: false,\n\t\t\tdirtinessType: MODIFIED_STATE_FLAGS.PENDING_CHANGE,\n\t\t\tincludeReferencedRepositories: false,\n\t\t};\n\t\tif (in_options !== undefined) {\n\t\t\tif (typeof in_options !== \"object\") {\n\t\t\t\tthrow new TypeError(MSG.SERIALIZE_TAKES_OBJECT);\n\t\t\t}\n\t\t\tObject.assign(opts, in_options);\n\t\t}\n\n\t\treturn this._serialize(\n\t\t\topts.dirtyOnly,\n\t\t\topts.includeRootTypeid,\n\t\t\topts.dirtinessType,\n\t\t\topts.includeReferencedRepositories,\n\t\t);\n\t}\n\n\t/**\n\t * Indicate that all static members have been added to the property\n\t *\n\t * This function is invoked by the PropertyFactory once all static members have been added to the template\n\t * @protected\n\t */\n\t_signalAllStaticMembersHaveBeenAdded() {}\n\n\t/**\n\t * Tests whether this property may be modified\n\t * @param {checkConstant} in_checkConstant - Check if is readonly constant property\n\t */\n\t_checkIsNotReadOnly(in_checkConstant) {\n\t\tif (this._isConstant && in_checkConstant) {\n\t\t\tthrow new Error(MSG.MODIFICATION_OF_CONSTANT_PROPERTY);\n\t\t}\n\n\t\tvar root = this.getRoot();\n\t\tif (root && root._getCheckedOutRepositoryInfo) {\n\t\t\tvar repositoryInfo = root._getCheckedOutRepositoryInfo();\n\n\t\t\tif (repositoryInfo && repositoryInfo._isReadOnly()) {\n\t\t\t\tthrow new Error(MSG.MODIFICATION_OF_REFERENCED_PROPERTY);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Set a property and its children as constants (readonly properties)\n\t */\n\t_setAsConstant() {\n\t\tthis._isConstant = true;\n\n\t\tif (this instanceof Property.AbstractStaticCollectionProperty) {\n\t\t\t// Set all children properties as constants\n\t\t\tthis.traverseDown(function (prop) {\n\t\t\t\tprop._isConstant = true;\n\t\t\t});\n\t\t}\n\t}\n\n\ttraverseDown(arg0: (prop: any) => void) {\n\t\tthrow new Error(\"Method not implemented.\");\n\t}\n\n\t/**\n\t * Unsets a property and its children as constants\n\t */\n\t_unsetAsConstant() {\n\t\t// Deleting this property will make the object\n\t\t// fall back to the entry in the prototype (false)\n\t\tdelete this._isConstant;\n\n\t\tif (this instanceof Property.AbstractStaticCollectionProperty) {\n\t\t\t// Unset all children properties as constants\n\t\t\tthis.traverseDown(function (prop) {\n\t\t\t\t// Deleting this property will make the object\n\t\t\t\t// fall back to the entry in the prototype (false)\n\t\t\t\tdelete prop._isConstant;\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Dirties this node and all of its children\n\t *\n\t * @param in_reportToView - By default, the dirtying will always be reported to the checkout view\n\t * and trigger a modified event there. When batching updates, this can be prevented via this flag.\n\t * @private\n\t */\n\t_setDirtyTree(in_reportToView = true) {\n\t\tthis._traverse(function (node) {\n\t\t\t// Set all nodes to dirty, but prevent recursive updates up to the repository for the individual changes\n\t\t\tnode._setDirty(false);\n\t\t}, \"\");\n\t\t// Now make one report\n\t\tif (in_reportToView) {\n\t\t\tthis._reportDirtinessToView();\n\t\t}\n\t}\n\n\t/**\n\t * Determines whether a property can be inserted as a child of another property\n\t * This does NOT validate if the parent can accept the child property, it only validates if\n\t * the child property can be inserted in the parent.\n\t * @param in_targetParent - The parent property\n\t * @throws if the property can not be inserted\n\t */\n\t_validateInsertIn(in_targetParent: BaseProperty) {\n\t\t// A root?\n\t\tif (this._getCheckedOutRepositoryInfo() !== undefined) {\n\t\t\tthrow new Error(MSG.INSERTED_ROOT_ENTRY);\n\t\t}\n\n\t\t// Would create a cycle?\n\t\tlet parent = in_targetParent;\n\t\twhile (parent !== undefined) {\n\t\t\tif (parent === this) {\n\t\t\t\tthrow new Error(MSG.INSERTED_IN_OWN_CHILDREN);\n\t\t\t}\n\t\t\tparent = parent._parent;\n\t\t}\n\n\t\t// Already a child?\n\t\tif (this._parent !== undefined || this._getCheckoutView() !== undefined) {\n\t\t\tthrow new Error(MSG.INSERTED_ENTRY_WITH_PARENT);\n\t\t}\n\t}\n\n\t/**\n\t * TODO: Remove it later. Kept not to modify tests\n\t *\n\t * Validates if the property and all its children are covered by the given list of paths.\n\t *\n\t * This function is expected to be used before inserting the property into its parent. That is the\n\t * reason for asking for the base path. This is the full path expected for this property.\n\t *\n\t * This function uses the canonical representation of the property paths.\n\t *\n\t * @param in_basePath - The property's absolute path in canonical form\n\t * @param in_paths - The array of paths that we wonder if it covers the property and its children\n\t * @returns If the property and all its children are included in the paths\n\t * @private\n\t */\n\t_coveredByPaths(in_basePath: string, in_paths: string[]): boolean {\n\t\t// First, get the coverage of the base property\n\t\tconst coverage = PathHelper.getPathCoverage(in_basePath, in_paths);\n\n\t\tif (coverage.coverageExtent === PathHelper.CoverageExtent.FULLY_COVERED) {\n\t\t\treturn true;\n\t\t} else if (coverage.coverageExtent === PathHelper.CoverageExtent.PARTLY_COVERED) {\n\t\t\t// We know that part of the property is covered, if we don't find any actual children not covered\n\t\t\t// by the paths it's because we're fully covered.\n\t\t\tif (this.isPrimitiveType()) {\n\t\t\t\tconst childrenIds = this.getContext() === \"single\" ? [] : this.getIds();\n\t\t\t\tfor (const childId of childrenIds) {\n\t\t\t\t\tconst childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n\t\t\t\t\tif (\n\t\t\t\t\t\tPathHelper.getPathCoverage(childPath, coverage.pathList).coverageExtent ===\n\t\t\t\t\t\tPathHelper.CoverageExtent.UNCOVERED\n\t\t\t\t\t) {\n\t\t\t\t\t\t// this children is outside the list of paths\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst childrenIds = this.getIds();\n\t\t\t\tfor (const childId of childrenIds) {\n\t\t\t\t\tconst child = this.get(childId);\n\t\t\t\t\tconst childPath = PathHelper.getChildAbsolutePathCanonical(in_basePath, childId);\n\t\t\t\t\tif (!child._coveredByPaths(childPath, coverage.pathList)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tget _properties() {\n\t\treturn this._flatten();\n\t}\n}\n\n(BaseProperty as any).prototype._isConstant = false;\n(BaseProperty as any).prototype._context = \"single\";\n(BaseProperty as any).prototype._typeid = \"BaseProperty\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-experimental/property-properties",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.71.0",
|
|
4
4
|
"description": "definitions of properties",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"temp-directory": "nyc/.nyc_output"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@fluid-experimental/property-changeset": "2.
|
|
45
|
-
"@fluid-experimental/property-common": "2.
|
|
44
|
+
"@fluid-experimental/property-changeset": "~2.71.0",
|
|
45
|
+
"@fluid-experimental/property-common": "~2.71.0",
|
|
46
46
|
"ajv": "^8.12.0",
|
|
47
47
|
"async": "^3.2.2",
|
|
48
48
|
"lodash": "^4.17.21",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@biomejs/biome": "~1.9.3",
|
|
55
|
-
"@fluid-internal/mocha-test-setup": "2.
|
|
55
|
+
"@fluid-internal/mocha-test-setup": "~2.71.0",
|
|
56
56
|
"@fluidframework/build-common": "^2.0.3",
|
|
57
57
|
"@fluidframework/build-tools": "^0.58.3",
|
|
58
58
|
"@types/mocha": "^10.0.10",
|
|
@@ -82,8 +82,8 @@
|
|
|
82
82
|
"check:format": "npm run check:biome",
|
|
83
83
|
"clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" nyc",
|
|
84
84
|
"coverage": "npx nyc --silent --cwd .. --nycrc-path `pwd`/.nycrc npm run test && npx nyc --no-clean --silent --cwd .. --nycrc-path `pwd`/.nycrc npm run test:changeset && npx nyc --no-clean --cwd .. --nycrc-path `pwd`/.nycrc npm run test:common",
|
|
85
|
-
"eslint": "eslint --format stylish src",
|
|
86
|
-
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
85
|
+
"eslint": "eslint --quiet --format stylish src",
|
|
86
|
+
"eslint:fix": "eslint --quiet --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
87
87
|
"format": "npm run format:biome",
|
|
88
88
|
"format:biome": "biome check . --write",
|
|
89
89
|
"lint": "fluid-build . --task lint",
|