@sitecore/sc-contenthub-webclient-sdk 1.2.3 → 1.2.4

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.
@@ -1,3 +1,4 @@
1
+ import { ConditionalValidationResource } from "../../models/conditional-validation-resource";
1
2
  import { PropertyDataType } from "./data-type";
2
3
  import { IMemberDefinition, MemberDefinition } from "./member-definition";
3
4
  import { MemberDefinitionType } from "./member-definition-type";
@@ -52,6 +53,10 @@ export interface IPropertyDefinition extends IMemberDefinition {
52
53
  * Indicates whether this member definition will be ignored during imports.
53
54
  */
54
55
  ignoreOnExport: boolean;
56
+ /**
57
+ * An optional set of conditions that dictate under what conditions the current property is required.
58
+ */
59
+ conditionalValidation?: ConditionalValidationResource;
55
60
  }
56
61
  export declare class PropertyDefinition extends MemberDefinition implements IPropertyDefinition {
57
62
  indexed: boolean;
@@ -64,6 +69,7 @@ export declare class PropertyDefinition extends MemberDefinition implements IPro
64
69
  includeInCompletion: boolean;
65
70
  ignoreOnExport: boolean;
66
71
  storedInGraph: boolean;
72
+ conditionalValidation?: ConditionalValidationResource;
67
73
  get dataType(): PropertyDataType;
68
74
  get definitionType(): MemberDefinitionType;
69
75
  constructor(name: string, type: PropertyDataType);
@@ -21,6 +21,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.PropertyDefinition = void 0;
23
23
  const ta_json_1 = require("ta-json");
24
+ const conditional_validation_resource_1 = require("../../models/conditional-validation-resource");
24
25
  const data_type_1 = require("./data-type");
25
26
  const member_definition_1 = require("./member-definition");
26
27
  const member_definition_type_1 = require("./member-definition-type");
@@ -75,6 +76,11 @@ __decorate([
75
76
  (0, ta_json_1.JsonProperty)("stored_in_graph"),
76
77
  __metadata("design:type", Boolean)
77
78
  ], PropertyDefinition.prototype, "storedInGraph", void 0);
79
+ __decorate([
80
+ (0, ta_json_1.JsonProperty)("conditional_validation"),
81
+ (0, ta_json_1.JsonConverter)(conditional_validation_resource_1.ConditionalValidationResourceConverter),
82
+ __metadata("design:type", conditional_validation_resource_1.ConditionalValidationResource)
83
+ ], PropertyDefinition.prototype, "conditionalValidation", void 0);
78
84
  PropertyDefinition = __decorate([
79
85
  (0, ta_json_1.JsonObject)(),
80
86
  __metadata("design:paramtypes", [String, String])
@@ -1,4 +1,5 @@
1
1
  import { MapCultureTo } from "../../base-types";
2
+ import { ConditionalValidationResource } from "../../models/conditional-validation-resource.js";
2
3
  import { IMemberDefinition, MemberDefinition } from "./member-definition";
3
4
  import { MemberDefinitionType } from "./member-definition-type";
4
5
  import { RelationCardinality } from "./relation-cardinality";
@@ -25,10 +26,18 @@ export interface IRelationDefinition extends IMemberDefinition {
25
26
  * Indicates whether relations of this definition must have at least one child.
26
27
  */
27
28
  childIsMandatory: boolean;
29
+ /**
30
+ * An optional set of conditions that dictate under what conditions the the child of this relation should be required.
31
+ */
32
+ childConditionalValidation?: ConditionalValidationResource;
28
33
  /**
29
34
  * Indicates whether relations of this definition must have at least one parent.
30
35
  */
31
36
  parentIsMandatory: boolean;
37
+ /**
38
+ * An optional set of conditions that dictate under what conditions the the parent of this relation should be required.
39
+ */
40
+ parentConditionalValidation?: ConditionalValidationResource;
32
41
  /**
33
42
  * Indicates if this relation is used to inherit any security related meta data (parents -\> children).
34
43
  */
@@ -107,7 +116,9 @@ export declare class RelationDefinition extends MemberDefinition implements IRel
107
116
  cardinality: RelationCardinality;
108
117
  associatedEntityDefinitionName: string;
109
118
  childIsMandatory: boolean;
119
+ childConditionalValidation?: ConditionalValidationResource;
110
120
  parentIsMandatory: boolean;
121
+ parentConditionalValidation?: ConditionalValidationResource;
111
122
  inheritsSecurity: boolean;
112
123
  allowNavigation: boolean;
113
124
  isNested: boolean;
@@ -14,6 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.RelationDefinition = void 0;
16
16
  const ta_json_1 = require("ta-json");
17
+ const conditional_validation_resource_js_1 = require("../../models/conditional-validation-resource.js");
17
18
  const data_type_1 = __importDefault(require("./data-type"));
18
19
  const member_definition_1 = require("./member-definition");
19
20
  const member_definition_type_1 = require("./member-definition-type");
@@ -51,10 +52,20 @@ __decorate([
51
52
  (0, ta_json_1.JsonProperty)("child_is_mandatory"),
52
53
  __metadata("design:type", Boolean)
53
54
  ], RelationDefinition.prototype, "childIsMandatory", void 0);
55
+ __decorate([
56
+ (0, ta_json_1.JsonProperty)("child_conditional_validation"),
57
+ (0, ta_json_1.JsonConverter)(conditional_validation_resource_js_1.ConditionalValidationResourceConverter),
58
+ __metadata("design:type", conditional_validation_resource_js_1.ConditionalValidationResource)
59
+ ], RelationDefinition.prototype, "childConditionalValidation", void 0);
54
60
  __decorate([
55
61
  (0, ta_json_1.JsonProperty)("parent_is_mandatory"),
56
62
  __metadata("design:type", Boolean)
57
63
  ], RelationDefinition.prototype, "parentIsMandatory", void 0);
64
+ __decorate([
65
+ (0, ta_json_1.JsonProperty)("parent_conditional_validation"),
66
+ (0, ta_json_1.JsonConverter)(conditional_validation_resource_js_1.ConditionalValidationResourceConverter),
67
+ __metadata("design:type", conditional_validation_resource_js_1.ConditionalValidationResource)
68
+ ], RelationDefinition.prototype, "parentConditionalValidation", void 0);
58
69
  __decorate([
59
70
  (0, ta_json_1.JsonProperty)("inherits_security"),
60
71
  __metadata("design:type", Boolean)
@@ -86,6 +86,7 @@ class MemberDefinitionMapper {
86
86
  canWrite: (_k = resource.canWrite) !== null && _k !== void 0 ? _k : false,
87
87
  ignoreOnExport: (_l = resource.ignoreOnExport) !== null && _l !== void 0 ? _l : false,
88
88
  storedInGraph: (_m = resource.storedInGraph) !== null && _m !== void 0 ? _m : false,
89
+ conditionalValidation: resource.conditionalValidation,
89
90
  };
90
91
  switch (resource.type) {
91
92
  case data_type_1.default.Boolean:
@@ -138,6 +139,8 @@ class MemberDefinitionMapper {
138
139
  nestedPermissions: resource.nestedPermissions,
139
140
  cardinality: relation_cardinality_mapper_1.RelationCardinalityMapper.mapToEnumValue(resource.cardinality),
140
141
  role: relation_role_mapper_1.RelationRoleMapper.mapToEnumValue(resource.role),
142
+ childConditionalValidation: resource.childConditionalValidation,
143
+ parentConditionalValidation: resource.parentConditionalValidation,
141
144
  });
142
145
  if (resource.nestedProperties != null) {
143
146
  relationDefinition.nestedProperties.push(...resource.nestedProperties);
@@ -272,6 +275,8 @@ class MemberDefinitionMapper {
272
275
  parentIsMandatory: definition.parentIsMandatory,
273
276
  cardinality: relation_cardinality_mapper_1.RelationCardinalityMapper.mapToType(definition.cardinality),
274
277
  role: relation_role_mapper_1.RelationRoleMapper.mapToType(definition.role),
278
+ childConditionalValidation: definition.childConditionalValidation,
279
+ parentConditionalValidation: definition.parentConditionalValidation,
275
280
  });
276
281
  });
277
282
  }
@@ -0,0 +1 @@
1
+ export declare type ConditionalValidationOperator = "All" | "Any" | "None";
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=conditional-validation-operator.js.map
@@ -0,0 +1,31 @@
1
+ import { IPropertyConverter, JsonValueObject } from "ta-json";
2
+ import { RelationRoleType } from "../contracts/base/relation-role.js";
3
+ import CultureInfo from "../culture-info.js";
4
+ import { EntityLink } from "../entity-link.js";
5
+ import { ConditionalValidationOperator } from "./conditional-validation-operator.js";
6
+ import { LogicalOperator } from "./logical-operator.js";
7
+ export declare class ConditionalValidationResourceConverter implements IPropertyConverter {
8
+ serialize(value: ConditionalValidationResource): JsonValueObject;
9
+ deserialize(value: JsonValueObject): ConditionalValidationResource;
10
+ }
11
+ export declare abstract class ConditionalValidationResource {
12
+ }
13
+ export declare class LogicalMemberConditionalValidationResource extends ConditionalValidationResource {
14
+ constructor(init?: Partial<LogicalMemberConditionalValidationResource>);
15
+ operator: LogicalOperator;
16
+ subFilters: Array<ConditionalValidationResource>;
17
+ }
18
+ export declare class PropertyMemberConditionalValidationResource extends ConditionalValidationResource {
19
+ constructor(init?: Partial<PropertyMemberConditionalValidationResource>);
20
+ operator: ConditionalValidationOperator;
21
+ propertyName?: string;
22
+ culture?: CultureInfo;
23
+ values: Array<unknown>;
24
+ }
25
+ export declare class RelationMemberConditionalValidationResource extends ConditionalValidationResource {
26
+ constructor(init?: Partial<RelationMemberConditionalValidationResource>);
27
+ operator: ConditionalValidationOperator;
28
+ relationName?: string;
29
+ relationRole?: RelationRoleType;
30
+ values: Array<EntityLink>;
31
+ }
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RelationMemberConditionalValidationResource = exports.PropertyMemberConditionalValidationResource = exports.LogicalMemberConditionalValidationResource = exports.ConditionalValidationResource = exports.ConditionalValidationResourceConverter = void 0;
13
+ //! This file includes multiple resource classes and a converter to prevent circular references.
14
+ const ta_json_1 = require("ta-json");
15
+ const entity_link_js_1 = require("../entity-link.js");
16
+ class ConditionalValidationResourceConverter {
17
+ serialize(value) {
18
+ return ta_json_1.TaJson.serialize(value);
19
+ }
20
+ deserialize(value) {
21
+ if (value["relation_name"]) {
22
+ return ta_json_1.TaJson.deserialize(value, RelationMemberConditionalValidationResource);
23
+ }
24
+ else if (value["property_name"]) {
25
+ return ta_json_1.TaJson.deserialize(value, PropertyMemberConditionalValidationResource);
26
+ }
27
+ else if (Array.isArray(value.subFilters)) {
28
+ return new LogicalMemberConditionalValidationResource({
29
+ operator: value.operator,
30
+ subFilters: value.subFilters.map(filter => this.deserialize(filter)),
31
+ });
32
+ }
33
+ else {
34
+ throw Error(`Unable to deserialize to ConditionalValidationResource. Value has unknown format:\n${JSON.stringify(value, undefined, 2)}`);
35
+ }
36
+ }
37
+ }
38
+ exports.ConditionalValidationResourceConverter = ConditionalValidationResourceConverter;
39
+ class ConditionalValidationResource {
40
+ }
41
+ exports.ConditionalValidationResource = ConditionalValidationResource;
42
+ let LogicalMemberConditionalValidationResource = class LogicalMemberConditionalValidationResource extends ConditionalValidationResource {
43
+ constructor(init) {
44
+ super();
45
+ Object.assign(this, init);
46
+ }
47
+ };
48
+ __decorate([
49
+ (0, ta_json_1.JsonProperty)("operator"),
50
+ __metadata("design:type", String)
51
+ ], LogicalMemberConditionalValidationResource.prototype, "operator", void 0);
52
+ __decorate([
53
+ (0, ta_json_1.JsonProperty)("subFilters"),
54
+ (0, ta_json_1.JsonConverter)(ConditionalValidationResourceConverter),
55
+ (0, ta_json_1.JsonType)(Array),
56
+ __metadata("design:type", Array)
57
+ ], LogicalMemberConditionalValidationResource.prototype, "subFilters", void 0);
58
+ LogicalMemberConditionalValidationResource = __decorate([
59
+ (0, ta_json_1.JsonObject)(),
60
+ __metadata("design:paramtypes", [Object])
61
+ ], LogicalMemberConditionalValidationResource);
62
+ exports.LogicalMemberConditionalValidationResource = LogicalMemberConditionalValidationResource;
63
+ let PropertyMemberConditionalValidationResource = class PropertyMemberConditionalValidationResource extends ConditionalValidationResource {
64
+ constructor(init) {
65
+ super();
66
+ Object.assign(this, init !== null && init !== void 0 ? init : {});
67
+ }
68
+ };
69
+ __decorate([
70
+ (0, ta_json_1.JsonProperty)("operator"),
71
+ __metadata("design:type", String)
72
+ ], PropertyMemberConditionalValidationResource.prototype, "operator", void 0);
73
+ __decorate([
74
+ (0, ta_json_1.JsonProperty)("property_name"),
75
+ __metadata("design:type", String)
76
+ ], PropertyMemberConditionalValidationResource.prototype, "propertyName", void 0);
77
+ __decorate([
78
+ (0, ta_json_1.JsonProperty)("culture"),
79
+ __metadata("design:type", String)
80
+ ], PropertyMemberConditionalValidationResource.prototype, "culture", void 0);
81
+ __decorate([
82
+ (0, ta_json_1.JsonProperty)("subFilters"),
83
+ (0, ta_json_1.JsonType)(Array),
84
+ __metadata("design:type", Array)
85
+ ], PropertyMemberConditionalValidationResource.prototype, "values", void 0);
86
+ PropertyMemberConditionalValidationResource = __decorate([
87
+ (0, ta_json_1.JsonObject)(),
88
+ __metadata("design:paramtypes", [Object])
89
+ ], PropertyMemberConditionalValidationResource);
90
+ exports.PropertyMemberConditionalValidationResource = PropertyMemberConditionalValidationResource;
91
+ let RelationMemberConditionalValidationResource = class RelationMemberConditionalValidationResource extends ConditionalValidationResource {
92
+ constructor(init) {
93
+ super();
94
+ Object.assign(this, init !== null && init !== void 0 ? init : {});
95
+ }
96
+ };
97
+ __decorate([
98
+ (0, ta_json_1.JsonProperty)("operator"),
99
+ __metadata("design:type", String)
100
+ ], RelationMemberConditionalValidationResource.prototype, "operator", void 0);
101
+ __decorate([
102
+ (0, ta_json_1.JsonProperty)("relation_name"),
103
+ __metadata("design:type", String)
104
+ ], RelationMemberConditionalValidationResource.prototype, "relationName", void 0);
105
+ __decorate([
106
+ (0, ta_json_1.JsonProperty)("relation_role"),
107
+ __metadata("design:type", String)
108
+ ], RelationMemberConditionalValidationResource.prototype, "relationRole", void 0);
109
+ __decorate([
110
+ (0, ta_json_1.JsonProperty)("subFilters"),
111
+ (0, ta_json_1.JsonElementType)(entity_link_js_1.EntityLink),
112
+ __metadata("design:type", Array)
113
+ ], RelationMemberConditionalValidationResource.prototype, "values", void 0);
114
+ RelationMemberConditionalValidationResource = __decorate([
115
+ (0, ta_json_1.JsonObject)(),
116
+ __metadata("design:paramtypes", [Object])
117
+ ], RelationMemberConditionalValidationResource);
118
+ exports.RelationMemberConditionalValidationResource = RelationMemberConditionalValidationResource;
119
+ //# sourceMappingURL=conditional-validation-resource.js.map
@@ -0,0 +1 @@
1
+ export declare type LogicalOperator = "And" | "Or" | "AndNot";
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=logical-operator.js.map
@@ -3,6 +3,7 @@ import { JsonContentType } from "../contracts/base/json-content-type";
3
3
  import { MemberDefinitionType } from "../contracts/base/member-definition-type";
4
4
  import { StringContentType } from "../contracts/base/string-content-type";
5
5
  import Link from "../link";
6
+ import { ConditionalValidationResource } from "./conditional-validation-resource.js";
6
7
  import { MemberDefinitionResource } from "./member-definition-resource";
7
8
  export declare class PropertyDefinitionResource extends MemberDefinitionResource {
8
9
  indexed: boolean;
@@ -15,6 +16,7 @@ export declare class PropertyDefinitionResource extends MemberDefinitionResource
15
16
  includeInCompletion: boolean;
16
17
  ignoreOnExport: boolean;
17
18
  storedInGraph: boolean;
19
+ conditionalValidation?: ConditionalValidationResource;
18
20
  validationExpression: Nullable<string>;
19
21
  get definitionType(): MemberDefinitionType;
20
22
  }
@@ -37,6 +37,7 @@ const data_type_1 = __importStar(require("../contracts/base/data-type"));
37
37
  const member_definition_type_1 = require("../contracts/base/member-definition-type");
38
38
  const string_content_type_1 = require("../contracts/base/string-content-type");
39
39
  const link_1 = __importDefault(require("../link"));
40
+ const conditional_validation_resource_js_1 = require("./conditional-validation-resource.js");
40
41
  const member_definition_resource_1 = require("./member-definition-resource");
41
42
  let PropertyDefinitionResource = class PropertyDefinitionResource extends member_definition_resource_1.MemberDefinitionResource {
42
43
  get definitionType() {
@@ -83,6 +84,11 @@ __decorate([
83
84
  (0, ta_json_1.JsonProperty)("stored_in_graph"),
84
85
  __metadata("design:type", Boolean)
85
86
  ], PropertyDefinitionResource.prototype, "storedInGraph", void 0);
87
+ __decorate([
88
+ (0, ta_json_1.JsonProperty)("conditional_validation"),
89
+ (0, ta_json_1.JsonConverter)(conditional_validation_resource_js_1.ConditionalValidationResourceConverter),
90
+ __metadata("design:type", conditional_validation_resource_js_1.ConditionalValidationResource)
91
+ ], PropertyDefinitionResource.prototype, "conditionalValidation", void 0);
86
92
  __decorate([
87
93
  (0, ta_json_1.JsonProperty)("validation_expression"),
88
94
  __metadata("design:type", Object)
@@ -3,12 +3,15 @@ import { MemberDefinitionType } from "../contracts/base/member-definition-type";
3
3
  import { RelationCardinalityType } from "../contracts/base/relation-cardinality";
4
4
  import { RelationRoleType } from "../contracts/base/relation-role";
5
5
  import Link from "../link";
6
+ import { ConditionalValidationResource } from "./conditional-validation-resource.js";
6
7
  import { MemberDefinitionResource } from "./member-definition-resource";
7
8
  export declare class RelationDefinitionResource extends MemberDefinitionResource {
8
9
  role: RelationRoleType;
9
10
  cardinality: RelationCardinalityType;
10
11
  childIsMandatory: boolean;
12
+ childConditionalValidation?: ConditionalValidationResource;
11
13
  parentIsMandatory: boolean;
14
+ parentConditionalValidation?: ConditionalValidationResource;
12
15
  inheritsSecurity: boolean;
13
16
  allowNavigation: boolean;
14
17
  isNested: boolean;
@@ -17,6 +17,7 @@ const ta_json_1 = require("ta-json");
17
17
  const data_type_1 = __importDefault(require("../contracts/base/data-type"));
18
18
  const member_definition_type_1 = require("../contracts/base/member-definition-type");
19
19
  const link_1 = __importDefault(require("../link"));
20
+ const conditional_validation_resource_js_1 = require("./conditional-validation-resource.js");
20
21
  const member_definition_resource_1 = require("./member-definition-resource");
21
22
  let RelationDefinitionResource = class RelationDefinitionResource extends member_definition_resource_1.MemberDefinitionResource {
22
23
  constructor(init) {
@@ -42,10 +43,20 @@ __decorate([
42
43
  (0, ta_json_1.JsonProperty)("child_is_mandatory"),
43
44
  __metadata("design:type", Boolean)
44
45
  ], RelationDefinitionResource.prototype, "childIsMandatory", void 0);
46
+ __decorate([
47
+ (0, ta_json_1.JsonProperty)("child_conditional_validation"),
48
+ (0, ta_json_1.JsonConverter)(conditional_validation_resource_js_1.ConditionalValidationResourceConverter),
49
+ __metadata("design:type", conditional_validation_resource_js_1.ConditionalValidationResource)
50
+ ], RelationDefinitionResource.prototype, "childConditionalValidation", void 0);
45
51
  __decorate([
46
52
  (0, ta_json_1.JsonProperty)("parent_is_mandatory"),
47
53
  __metadata("design:type", Boolean)
48
54
  ], RelationDefinitionResource.prototype, "parentIsMandatory", void 0);
55
+ __decorate([
56
+ (0, ta_json_1.JsonProperty)("parent_conditional_validation"),
57
+ (0, ta_json_1.JsonConverter)(conditional_validation_resource_js_1.ConditionalValidationResourceConverter),
58
+ __metadata("design:type", conditional_validation_resource_js_1.ConditionalValidationResource)
59
+ ], RelationDefinitionResource.prototype, "parentConditionalValidation", void 0);
49
60
  __decorate([
50
61
  (0, ta_json_1.JsonProperty)("inherits_security"),
51
62
  __metadata("design:type", Boolean)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore/sc-contenthub-webclient-sdk",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "description": "Sitecore Content Hub WebClient SDK.",
5
5
  "scripts": {
6
6
  "build": "npm run clean && npm run test && tsc && npm run lint",