@cubicweb/client 2.1.0 → 3.0.0-alpha.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.
- package/lib/api/Api.d.ts.map +1 -1
- package/lib/api/Api.js +11 -6
- package/lib/api/Api.js.map +1 -1
- package/lib/schema/classes/EntitySchema.d.ts +14 -22
- package/lib/schema/classes/EntitySchema.d.ts.map +1 -1
- package/lib/schema/classes/EntitySchema.js +15 -25
- package/lib/schema/classes/EntitySchema.js.map +1 -1
- package/lib/schema/classes/RelationDefinitionSchema.d.ts +6 -10
- package/lib/schema/classes/RelationDefinitionSchema.d.ts.map +1 -1
- package/lib/schema/classes/RelationDefinitionSchema.js +5 -21
- package/lib/schema/classes/RelationDefinitionSchema.js.map +1 -1
- package/lib/schema/classes/Utils.d.ts +107 -1
- package/lib/schema/classes/Utils.d.ts.map +1 -1
- package/lib/schema/classes/Utils.js +143 -3
- package/lib/schema/classes/Utils.js.map +1 -1
- package/lib/schema/raw/RelationDefinitions.d.ts +3 -2
- package/lib/schema/raw/RelationDefinitions.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api/Api.ts +13 -9
- package/src/schema/classes/EntitySchema.ts +33 -41
- package/src/schema/classes/RelationDefinitionSchema.ts +8 -25
- package/src/schema/classes/Utils.ts +150 -1
- package/src/schema/raw/RelationDefinitions.ts +3 -2
package/lib/api/Api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../src/api/Api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,WAAW,EAEZ,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,QAAQ,CAAC;AAEb;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;;;;;;;;OASG;gBACS,MAAM,EAAE,MAAM;IAS1B,IAAI,MAAM,WAET;IAED,OAAO,CAAC,WAAW;IAInB;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAYnE;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAOlC;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB9D;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAOnC,kBAAkB,CACtB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../src/api/Api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,iBAAiB,EACjB,WAAW,EAEZ,MAAM,eAAe,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE3C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,KAAK,QAAQ,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,QAAQ,CAAC;AAEb;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,GAAG;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;;;;;;;;OASG;gBACS,MAAM,EAAE,MAAM;IAS1B,IAAI,MAAM,WAET;IAED,OAAO,CAAC,WAAW;IAInB;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAYnE;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC;IAOlC;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB9D;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAOnC,kBAAkB,CACtB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,iBAAiB,CAAC;IA+B7B,OAAO,CAAC,gBAAgB;CAgBzB"}
|
package/lib/api/Api.js
CHANGED
|
@@ -132,12 +132,17 @@ class Api {
|
|
|
132
132
|
: value,
|
|
133
133
|
])),
|
|
134
134
|
}));
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
135
|
+
try {
|
|
136
|
+
const resultSets = yield nonNullFetchApi(this._transactionApiUrl, {
|
|
137
|
+
method: "POST",
|
|
138
|
+
credentials: "include",
|
|
139
|
+
body: JSON.stringify(data),
|
|
140
|
+
});
|
|
141
|
+
return new Transaction_1.TransactionResult(resultSets);
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
this.handleUserErrors(e);
|
|
145
|
+
}
|
|
141
146
|
});
|
|
142
147
|
}
|
|
143
148
|
handleUserErrors(error) {
|
package/lib/api/Api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Api.js","sourceRoot":"","sources":["../../src/api/Api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Api.js","sourceRoot":"","sources":["../../src/api/Api.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,23 +33,23 @@ export declare class EntitySchema<E extends EntityRawSchemaArray = EntityRawSche
|
|
|
33
33
|
*/
|
|
34
34
|
get final(): ERawSchema["final"];
|
|
35
35
|
/**
|
|
36
|
-
* Gets the list of relation
|
|
37
|
-
*
|
|
38
|
-
* there will be dupicates when used along with `objectRelationsDefinitions`.
|
|
36
|
+
* Gets the list of attribute schemas (relation definition schemas with final at false)
|
|
37
|
+
* for this entity schema.
|
|
39
38
|
*/
|
|
40
|
-
get
|
|
39
|
+
get attributes(): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
|
|
41
40
|
subject: ERawSchema["type"];
|
|
42
|
-
final:
|
|
43
|
-
}>>[];
|
|
44
|
-
/**
|
|
45
|
-
* Gets the list of relation definitions schemas with this entity as object.
|
|
46
|
-
* In case a relation definition schema has this entity as both object and subject,
|
|
47
|
-
* there will be dupicates when used along with `subjectRelationDefinitions`.
|
|
48
|
-
*/
|
|
49
|
-
get objectRelationsDefinitions(): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
|
|
50
|
-
object: ERawSchema["type"];
|
|
51
|
-
final: false;
|
|
41
|
+
final: true;
|
|
52
42
|
}>>[];
|
|
43
|
+
get relationDefinitions(): {
|
|
44
|
+
subject: RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
|
|
45
|
+
subject: ERawSchema["type"];
|
|
46
|
+
final: false;
|
|
47
|
+
}>>[];
|
|
48
|
+
object: RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
|
|
49
|
+
object: ERawSchema["type"];
|
|
50
|
+
final: false;
|
|
51
|
+
}>>[];
|
|
52
|
+
};
|
|
53
53
|
/**
|
|
54
54
|
* Finds relations in the Schema matching the partial relation given.
|
|
55
55
|
*
|
|
@@ -59,13 +59,5 @@ export declare class EntitySchema<E extends EntityRawSchemaArray = EntityRawSche
|
|
|
59
59
|
matchRelationDefinitions<M extends RelationDefinitionMatcher<E>>(matcher: M): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
|
|
60
60
|
subject: ERawSchema["type"];
|
|
61
61
|
}>>[];
|
|
62
|
-
/**
|
|
63
|
-
* Gets the list of attribute schemas (relation definition schemas with final at false)
|
|
64
|
-
* for this entity schema.
|
|
65
|
-
*/
|
|
66
|
-
get attributes(): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
|
|
67
|
-
subject: ERawSchema["type"];
|
|
68
|
-
final: true;
|
|
69
|
-
}>>[];
|
|
70
62
|
}
|
|
71
63
|
//# sourceMappingURL=EntitySchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySchema.d.ts","sourceRoot":"","sources":["../../../src/schema/classes/EntitySchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;GAIG;AACH,qBAAa,YAAY,CACvB,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EACrD,CAAC,SAAS,gCAAgC,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAAC,CAAC,EACnF,UAAU,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAWtC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,eAAe;IAVzB;;;;;;;OAOG;gBAEO,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,eAAe,EAAE,UAAU;IAGrC;;OAEG;IACH,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,CAE7B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,UAAU,CAAC,aAAa,CAAC,CAE3C;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,CAE/B;IAED
|
|
1
|
+
{"version":3,"file":"EntitySchema.d.ts","sourceRoot":"","sources":["../../../src/schema/classes/EntitySchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAE/E;;;;GAIG;AACH,qBAAa,YAAY,CACvB,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EACrD,CAAC,SAAS,gCAAgC,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAAC,CAAC,EACnF,UAAU,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAWtC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,eAAe;IAVzB;;;;;;;OAOG;gBAEO,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EACpB,eAAe,EAAE,UAAU;IAGrC;;OAEG;IACH,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,CAE7B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,UAAU,CAAC,aAAa,CAAC,CAE3C;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,CAE/B;IAED;;;OAGG;IACH,IAAI,UAAU,IAAI,wBAAwB,CACxC,CAAC,EACD,CAAC,EACD,yBAAyB,CACvB,CAAC,EACD,CAAC,EACD;QAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAC7C,CACF,EAAE,CAKF;IAED,IAAI,mBAAmB,IAAI;QACzB,OAAO,EAAE,wBAAwB,CAC/B,CAAC,EACD,CAAC,EACD,yBAAyB,CACvB,CAAC,EACD,CAAC,EACD;YAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAE,CAC9C,CACF,EAAE,CAAC;QACJ,MAAM,EAAE,wBAAwB,CAC9B,CAAC,EACD,CAAC,EACD,yBAAyB,CACvB,CAAC,EACD,CAAC,EACD;YAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAAC,KAAK,EAAE,KAAK,CAAA;SAAE,CAC7C,CACF,EAAE,CAAC;KACL,CAWA;IAED;;;;;OAKG;IACH,wBAAwB,CAAC,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,EAC7D,OAAO,EAAE,CAAC,GACT,wBAAwB,CACzB,CAAC,EACD,CAAC,EACD,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,CACjE,EAAE;CAGJ"}
|
|
@@ -38,26 +38,26 @@ class EntitySchema {
|
|
|
38
38
|
return this.entityRawSchema.final;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* Gets the list of relation
|
|
42
|
-
*
|
|
43
|
-
* there will be dupicates when used along with `objectRelationsDefinitions`.
|
|
41
|
+
* Gets the list of attribute schemas (relation definition schemas with final at false)
|
|
42
|
+
* for this entity schema.
|
|
44
43
|
*/
|
|
45
|
-
get
|
|
44
|
+
get attributes() {
|
|
46
45
|
return this.schema.matchRelationDefinitions({
|
|
46
|
+
final: true,
|
|
47
47
|
subject: this.type,
|
|
48
|
-
final: false,
|
|
49
48
|
});
|
|
50
49
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
50
|
+
get relationDefinitions() {
|
|
51
|
+
return {
|
|
52
|
+
subject: this.schema.matchRelationDefinitions({
|
|
53
|
+
subject: this.type,
|
|
54
|
+
final: false,
|
|
55
|
+
}),
|
|
56
|
+
object: this.schema.matchRelationDefinitions({
|
|
57
|
+
object: this.type,
|
|
58
|
+
final: false,
|
|
59
|
+
}),
|
|
60
|
+
};
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
63
|
* Finds relations in the Schema matching the partial relation given.
|
|
@@ -68,16 +68,6 @@ class EntitySchema {
|
|
|
68
68
|
matchRelationDefinitions(matcher) {
|
|
69
69
|
return this.schema.matchRelationDefinitions(matcher);
|
|
70
70
|
}
|
|
71
|
-
/**
|
|
72
|
-
* Gets the list of attribute schemas (relation definition schemas with final at false)
|
|
73
|
-
* for this entity schema.
|
|
74
|
-
*/
|
|
75
|
-
get attributes() {
|
|
76
|
-
return this.schema.matchRelationDefinitions({
|
|
77
|
-
final: true,
|
|
78
|
-
subject: this.type,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
71
|
}
|
|
82
72
|
exports.EntitySchema = EntitySchema;
|
|
83
73
|
//# sourceMappingURL=EntitySchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySchema.js","sourceRoot":"","sources":["../../../src/schema/classes/EntitySchema.ts"],"names":[],"mappings":";;;AAMA;;;;GAIG;AACH,MAAa,YAAY;IAKvB;;;;;;;OAOG;IACH,YACU,MAAoB,EACpB,eAA2B;QAD3B,WAAM,GAAN,MAAM,CAAc;QACpB,oBAAe,GAAf,eAAe,CAAY;IAClC,CAAC;IAEJ;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;IACpC,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"EntitySchema.js","sourceRoot":"","sources":["../../../src/schema/classes/EntitySchema.ts"],"names":[],"mappings":";;;AAMA;;;;GAIG;AACH,MAAa,YAAY;IAKvB;;;;;;;OAOG;IACH,YACU,MAAoB,EACpB,eAA2B;QAD3B,WAAM,GAAN,MAAM,CAAc;QACpB,oBAAe,GAAf,eAAe,CAAY;IAClC,CAAC;IAEJ;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QASZ,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;YAC1C,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI,CAAC,IAAI;SACnB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,mBAAmB;QAoBrB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;gBAC5C,OAAO,EAAE,IAAI,CAAC,IAAI;gBAClB,KAAK,EAAE,KAAK;aACb,CAAC;YACF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;gBAC3C,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,KAAK,EAAE,KAAK;aACb,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CACtB,OAAU;QAMV,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;CACF;AAzGD,oCAyGC"}
|
|
@@ -3,6 +3,7 @@ import { RelationDefinitionRawSchemaArray, Cardinality } from "../raw/RelationDe
|
|
|
3
3
|
import { IsLooseSchema, EntityRawSchemaByType } from "../raw/Utils";
|
|
4
4
|
import { EntitySchema } from "./EntitySchema";
|
|
5
5
|
import { Schema } from "./Schema";
|
|
6
|
+
import { EntityRole } from "./Utils";
|
|
6
7
|
/**
|
|
7
8
|
* Wrapper around raw relation definition schemas from the Schema.
|
|
8
9
|
* You should never have to create this object yourself.
|
|
@@ -55,15 +56,10 @@ export declare class RelationDefinitionSchema<E extends EntityRawSchemaArray = E
|
|
|
55
56
|
/**
|
|
56
57
|
* The cardinality of this relation definition schema.
|
|
57
58
|
*/
|
|
58
|
-
get cardinality():
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
get subjectCardinality(): Cardinality;
|
|
63
|
-
/**
|
|
64
|
-
* The cardinality of this relation definition schema's object.
|
|
65
|
-
*/
|
|
66
|
-
get objectCardinality(): Cardinality;
|
|
59
|
+
get cardinality(): {
|
|
60
|
+
subject: Cardinality;
|
|
61
|
+
object: Cardinality;
|
|
62
|
+
};
|
|
67
63
|
/**
|
|
68
64
|
* Gets the entity associated to this relation definition schema's subject.
|
|
69
65
|
*
|
|
@@ -82,6 +78,6 @@ export declare class RelationDefinitionSchema<E extends EntityRawSchemaArray = E
|
|
|
82
78
|
* @param role The point of view to use
|
|
83
79
|
* @returns
|
|
84
80
|
*/
|
|
85
|
-
isRequired(role:
|
|
81
|
+
isRequired(role: EntityRole): boolean;
|
|
86
82
|
}
|
|
87
83
|
//# sourceMappingURL=RelationDefinitionSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationDefinitionSchema.d.ts","sourceRoot":"","sources":["../../../src/schema/classes/RelationDefinitionSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,gCAAgC,EAChC,WAAW,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"RelationDefinitionSchema.d.ts","sourceRoot":"","sources":["../../../src/schema/classes/RelationDefinitionSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,gCAAgC,EAChC,WAAW,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAyB,MAAM,SAAS,CAAC;AAE5D;;;;GAIG;AACH,qBAAa,wBAAwB,CACnC,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EACrD,CAAC,SAAS,gCAAgC,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAAC,CAAC,EACnF,IAAI,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAUtB,OAAO,CAAC,MAAM;IAAgB,OAAO,CAAC,MAAM;IARxD;;;;;;;OAOG;gBACiB,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAU,MAAM,EAAE,IAAI;IAE9D;;OAEG;IACH,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAEvB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,CAErC;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAEzB;IAED;;;;OAIG;IACH,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAE7B;IAED;;;;OAIG;IACH,IAAI,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,CAErC;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,IAAI,SAAS;QAAE,OAAO,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,SAAS,CAM/D;IAED;;OAEG;IACH,IAAI,WAAW,IAAI;QAAE,OAAO,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,CAK/D;IAED;;;;OAIG;IACH,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GACxC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAC7B,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAShE;IAED;;;;OAIG;IACH,IAAI,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GACvC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAC7B,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAS/D;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,UAAU;CAG5B"}
|
|
@@ -67,19 +67,10 @@ class RelationDefinitionSchema {
|
|
|
67
67
|
* The cardinality of this relation definition schema.
|
|
68
68
|
*/
|
|
69
69
|
get cardinality() {
|
|
70
|
-
return
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
*/
|
|
75
|
-
get subjectCardinality() {
|
|
76
|
-
return this.relDef.cardinality[0];
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* The cardinality of this relation definition schema's object.
|
|
80
|
-
*/
|
|
81
|
-
get objectCardinality() {
|
|
82
|
-
return this.relDef.cardinality[1];
|
|
70
|
+
return {
|
|
71
|
+
subject: this.relDef.cardinality[0],
|
|
72
|
+
object: this.relDef.cardinality[1],
|
|
73
|
+
};
|
|
83
74
|
}
|
|
84
75
|
/**
|
|
85
76
|
* Gets the entity associated to this relation definition schema's subject.
|
|
@@ -114,14 +105,7 @@ class RelationDefinitionSchema {
|
|
|
114
105
|
* @returns
|
|
115
106
|
*/
|
|
116
107
|
isRequired(role) {
|
|
117
|
-
|
|
118
|
-
if (role === "subject") {
|
|
119
|
-
cardinality = this.subjectCardinality;
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
cardinality = this.objectCardinality;
|
|
123
|
-
}
|
|
124
|
-
return (0, Utils_1.cardinalityRequired)(cardinality);
|
|
108
|
+
return (0, Utils_1.isCardinalityRequired)(this.cardinality[role]);
|
|
125
109
|
}
|
|
126
110
|
}
|
|
127
111
|
exports.RelationDefinitionSchema = RelationDefinitionSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationDefinitionSchema.js","sourceRoot":"","sources":["../../../src/schema/classes/RelationDefinitionSchema.ts"],"names":[],"mappings":";;;AAAA,yCAAuD;AASvD,
|
|
1
|
+
{"version":3,"file":"RelationDefinitionSchema.js","sourceRoot":"","sources":["../../../src/schema/classes/RelationDefinitionSchema.ts"],"names":[],"mappings":";;;AAAA,yCAAuD;AASvD,mCAA4D;AAE5D;;;;GAIG;AACH,MAAa,wBAAwB;IAKnC;;;;;;;OAOG;IACH,YAAoB,MAAoB,EAAU,MAAY;QAA1C,WAAM,GAAN,MAAM,CAAc;QAAU,WAAM,GAAN,MAAM,CAAM;IAAG,CAAC;IAElE;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,IAAI,OAAO;QAGT,OAAO,CACL,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC;IACf,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAgB;YAClD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAgB;SAClD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAI,OAAO;QAGT,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,MAAM,IAAI,gCAAuB,CAC/B,eAAe,IAAI,CAAC,MAAM,CAAC,OAAO,gCAAgC,IAAI,CAAC,IAAI,kBAAkB,CAC9F,CAAC;SACH;QACD,0DAA0D;QAC1D,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QAGR,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,MAAM,IAAI,gCAAuB,CAC/B,eAAe,IAAI,CAAC,MAAM,CAAC,MAAM,+BAA+B,IAAI,CAAC,IAAI,kBAAkB,CAC5F,CAAC;SACH;QACD,0DAA0D;QAC1D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAgB;QACzB,OAAO,IAAA,6BAAqB,EAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACF;AA1HD,4DA0HC"}
|
|
@@ -2,6 +2,10 @@ import { EntityRawSchemaArray } from "../raw/Entities";
|
|
|
2
2
|
import { Cardinality, RelationDefinitionRawSchema, RelationDefinitionRawSchemaArray } from "../raw/RelationDefinitions";
|
|
3
3
|
import { Schema } from "./Schema";
|
|
4
4
|
import { EntitySchema } from "./EntitySchema";
|
|
5
|
+
/**
|
|
6
|
+
* An entity role in a relation.
|
|
7
|
+
*/
|
|
8
|
+
export type EntityRole = "subject" | "object";
|
|
5
9
|
/**
|
|
6
10
|
* Returns the given schema using loose typing.
|
|
7
11
|
* Can be useful when working with generic schemas
|
|
@@ -16,7 +20,109 @@ export declare const getLooseSchema: <E extends EntityRawSchemaArray = EntityRaw
|
|
|
16
20
|
* @param cardinality The cardinality to check
|
|
17
21
|
* @returns True if the cardinality is 1 or +
|
|
18
22
|
*/
|
|
19
|
-
export declare function
|
|
23
|
+
export declare function isCardinalityRequired(cardinality: Cardinality): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Checks if the cardinality allows multiple entities to be present
|
|
26
|
+
*
|
|
27
|
+
* @param cardinality The cardinility to check
|
|
28
|
+
* @returns True if the cardinality is `*` or `+`
|
|
29
|
+
*/
|
|
30
|
+
export declare const isCardinalityMultiple: (cardinality: Cardinality) => boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Checks if the cardinality allows entities to be absent
|
|
33
|
+
*
|
|
34
|
+
* @param cardinality The cardinility to check
|
|
35
|
+
* @returns True if the cardinality is `?` or `*`
|
|
36
|
+
*/
|
|
37
|
+
export declare const isCardinalityOptional: (cardinality: Cardinality) => boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Reverses the given role name
|
|
40
|
+
*
|
|
41
|
+
* @param role The role to reverse
|
|
42
|
+
* @returns "object" if the given role was "subject", "subject" otherwise
|
|
43
|
+
*/
|
|
44
|
+
export declare function getOppositeRelationRole(role: EntityRole): EntityRole;
|
|
45
|
+
/**
|
|
46
|
+
* Checks if the given relation type is reversed.
|
|
47
|
+
*
|
|
48
|
+
* A reversed relation means the relation is considered from the object entity
|
|
49
|
+
* point of view.
|
|
50
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
51
|
+
*
|
|
52
|
+
* @param relationType The relation type to check
|
|
53
|
+
* @returns True if the relation type starts with the reverse indicator
|
|
54
|
+
*/
|
|
55
|
+
export declare const isRelationTypeReversed: (relationType: string) => boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Gets the entity role in the given relation type by
|
|
58
|
+
* checking for the reverse indicator
|
|
59
|
+
*
|
|
60
|
+
* A reversed relation means the relation is considered from the object entity
|
|
61
|
+
* point of view.
|
|
62
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
63
|
+
*
|
|
64
|
+
* @param relationType The relation type to check
|
|
65
|
+
* @returns "subject" if the relation is not reversed, "object" otherwise
|
|
66
|
+
*/
|
|
67
|
+
export declare const getRoleFromRelationType: (relationType: string) => EntityRole;
|
|
68
|
+
/**
|
|
69
|
+
* Adds the reverse indicator from the relation type if it is not already present.
|
|
70
|
+
*
|
|
71
|
+
* A reversed relation means the relation is considered from the object entity
|
|
72
|
+
* point of view.
|
|
73
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
74
|
+
*
|
|
75
|
+
* @param relationType The relation type to transform
|
|
76
|
+
* @returns The relation type with the reverse indicator added or removed
|
|
77
|
+
*/
|
|
78
|
+
export declare const getReverseRelationType: (relationType: string) => string;
|
|
79
|
+
/**
|
|
80
|
+
* Clears the reverse indicator from the relation type if it is present.
|
|
81
|
+
*
|
|
82
|
+
* A reversed relation means the relation is considered from the object entity
|
|
83
|
+
* point of view.
|
|
84
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
85
|
+
*
|
|
86
|
+
* @param relationType The relation type to transform
|
|
87
|
+
* @returns The relation type with the reverse indicator added or removed
|
|
88
|
+
*/
|
|
89
|
+
export declare const getRawRelationType: (relationType: string) => string;
|
|
90
|
+
/**
|
|
91
|
+
* Returns the relation type with the reverse indicator added if necessary.
|
|
92
|
+
*
|
|
93
|
+
* A reversed relation means the relation is considered from the object entity
|
|
94
|
+
* point of view.
|
|
95
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
96
|
+
*
|
|
97
|
+
* @param relationType The relation type to transform
|
|
98
|
+
* @param role The entity role in the relation
|
|
99
|
+
* @returns A relation type with the reverse indicator if necessary
|
|
100
|
+
*/
|
|
101
|
+
export declare const getRelationType: (relationType: string, role: EntityRole) => string;
|
|
102
|
+
/**
|
|
103
|
+
* Finds the relation matching the provided source, relation typ and target
|
|
104
|
+
*
|
|
105
|
+
* @param entitySchema The entity schema the relation is from
|
|
106
|
+
* @param sourceType The entity type acting as source for the relation
|
|
107
|
+
* @param relationType The type of the relation to use. Can have the reverse indicator to decide the role of the source/target entities
|
|
108
|
+
* @param targetType The entity type acting as target for the relation
|
|
109
|
+
* @returns The relation definition matching the triplet source relation target
|
|
110
|
+
*/
|
|
111
|
+
export declare const getRelationDefinition: (entitySchema: EntitySchema, sourceType: string, relationType: string, targetType: string) => import("./RelationDefinitionSchema").RelationDefinitionSchema<EntityRawSchemaArray, RelationDefinitionRawSchemaArray<EntityRawSchemaArray>, Readonly<{
|
|
112
|
+
type: string;
|
|
113
|
+
description: string;
|
|
114
|
+
cardinality: "**" | "*1" | "*?" | "*+" | "1*" | "11" | "1?" | "1+" | "?*" | "?1" | "??" | "?+" | "+*" | "+1" | "+?" | "++";
|
|
115
|
+
subject: string;
|
|
116
|
+
} & ((import("../raw/RelationDefinitions").BuildObj & {
|
|
117
|
+
final: true;
|
|
118
|
+
constraints: import("../..").AttributeConstraint[];
|
|
119
|
+
options: import("../raw/RelationDefinitions").AttributeOptions;
|
|
120
|
+
}) | {
|
|
121
|
+
object: string;
|
|
122
|
+
final: false;
|
|
123
|
+
constraints: import("../..").RelationConstraint[];
|
|
124
|
+
options: import("../raw/RelationDefinitions").RelationOptions;
|
|
125
|
+
})>> | undefined;
|
|
20
126
|
/**
|
|
21
127
|
* Partial raw relation definition schema type.
|
|
22
128
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../src/schema/classes/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,4PAO1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../src/schema/classes/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,4PAO1B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAEvE;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,gBAAiB,WAAW,KAAG,OAEhE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,gBAAiB,WAAW,KAAG,OAEhE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAEpE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,iBAAkB,MAAM,KAAG,OAE7D,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,KAAG,UAE9D,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,iBAAkB,MAAM,KAAG,MAM7D,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,iBAAkB,MAAM,KAAG,MAMzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,iBAAkB,MAAM,QAAQ,UAAU,WAIrE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,iBAClB,YAAY,cACd,MAAM,gBACJ,MAAM,cACR,MAAM;;;;;;;;;;;;;;gBAYnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,oBAAoB,IAAI,OAAO,CAC7E,2BAA2B,CAAC,CAAC,CAAC,CAC/B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,CACnC,CAAC,SAAS,oBAAoB,EAC9B,CAAC,SAAS,gCAAgC,CAAC,oBAAoB,CAAC,EAChE,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,IACpC,CAAC,CAAC,MAAM,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAE3E,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAOT;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,GAC5B,OAAO,CAET"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isAttributeRichString = exports.hasAttributeWithName = exports.
|
|
3
|
+
exports.isAttributeRichString = exports.hasAttributeWithName = exports.getRelationDefinition = exports.getRelationType = exports.getRawRelationType = exports.getReverseRelationType = exports.getRoleFromRelationType = exports.isRelationTypeReversed = exports.getOppositeRelationRole = exports.isCardinalityOptional = exports.isCardinalityMultiple = exports.isCardinalityRequired = exports.getLooseSchema = void 0;
|
|
4
|
+
// This prefix is often applied to relation types as convention
|
|
5
|
+
// indicating a relation is viewed from the object's point of view
|
|
6
|
+
// We do not export it and instead encourage users to use the utility functions
|
|
7
|
+
const REVERSE_INDICATOR = "reverse_";
|
|
4
8
|
/**
|
|
5
9
|
* Returns the given schema using loose typing.
|
|
6
10
|
* Can be useful when working with generic schemas
|
|
@@ -18,10 +22,146 @@ exports.getLooseSchema = getLooseSchema;
|
|
|
18
22
|
* @param cardinality The cardinality to check
|
|
19
23
|
* @returns True if the cardinality is 1 or +
|
|
20
24
|
*/
|
|
21
|
-
function
|
|
25
|
+
function isCardinalityRequired(cardinality) {
|
|
22
26
|
return cardinality === "1" || cardinality === "+";
|
|
23
27
|
}
|
|
24
|
-
exports.
|
|
28
|
+
exports.isCardinalityRequired = isCardinalityRequired;
|
|
29
|
+
/**
|
|
30
|
+
* Checks if the cardinality allows multiple entities to be present
|
|
31
|
+
*
|
|
32
|
+
* @param cardinality The cardinility to check
|
|
33
|
+
* @returns True if the cardinality is `*` or `+`
|
|
34
|
+
*/
|
|
35
|
+
const isCardinalityMultiple = (cardinality) => {
|
|
36
|
+
return cardinality === "*" || cardinality === "+";
|
|
37
|
+
};
|
|
38
|
+
exports.isCardinalityMultiple = isCardinalityMultiple;
|
|
39
|
+
/**
|
|
40
|
+
* Checks if the cardinality allows entities to be absent
|
|
41
|
+
*
|
|
42
|
+
* @param cardinality The cardinility to check
|
|
43
|
+
* @returns True if the cardinality is `?` or `*`
|
|
44
|
+
*/
|
|
45
|
+
const isCardinalityOptional = (cardinality) => {
|
|
46
|
+
return cardinality === "?" || cardinality === "*";
|
|
47
|
+
};
|
|
48
|
+
exports.isCardinalityOptional = isCardinalityOptional;
|
|
49
|
+
/**
|
|
50
|
+
* Reverses the given role name
|
|
51
|
+
*
|
|
52
|
+
* @param role The role to reverse
|
|
53
|
+
* @returns "object" if the given role was "subject", "subject" otherwise
|
|
54
|
+
*/
|
|
55
|
+
function getOppositeRelationRole(role) {
|
|
56
|
+
return role === "subject" ? "object" : "subject";
|
|
57
|
+
}
|
|
58
|
+
exports.getOppositeRelationRole = getOppositeRelationRole;
|
|
59
|
+
/**
|
|
60
|
+
* Checks if the given relation type is reversed.
|
|
61
|
+
*
|
|
62
|
+
* A reversed relation means the relation is considered from the object entity
|
|
63
|
+
* point of view.
|
|
64
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
65
|
+
*
|
|
66
|
+
* @param relationType The relation type to check
|
|
67
|
+
* @returns True if the relation type starts with the reverse indicator
|
|
68
|
+
*/
|
|
69
|
+
const isRelationTypeReversed = (relationType) => {
|
|
70
|
+
return relationType.startsWith(REVERSE_INDICATOR);
|
|
71
|
+
};
|
|
72
|
+
exports.isRelationTypeReversed = isRelationTypeReversed;
|
|
73
|
+
/**
|
|
74
|
+
* Gets the entity role in the given relation type by
|
|
75
|
+
* checking for the reverse indicator
|
|
76
|
+
*
|
|
77
|
+
* A reversed relation means the relation is considered from the object entity
|
|
78
|
+
* point of view.
|
|
79
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
80
|
+
*
|
|
81
|
+
* @param relationType The relation type to check
|
|
82
|
+
* @returns "subject" if the relation is not reversed, "object" otherwise
|
|
83
|
+
*/
|
|
84
|
+
const getRoleFromRelationType = (relationType) => {
|
|
85
|
+
return (0, exports.isRelationTypeReversed)(relationType) ? "object" : "subject";
|
|
86
|
+
};
|
|
87
|
+
exports.getRoleFromRelationType = getRoleFromRelationType;
|
|
88
|
+
/**
|
|
89
|
+
* Adds the reverse indicator from the relation type if it is not already present.
|
|
90
|
+
*
|
|
91
|
+
* A reversed relation means the relation is considered from the object entity
|
|
92
|
+
* point of view.
|
|
93
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
94
|
+
*
|
|
95
|
+
* @param relationType The relation type to transform
|
|
96
|
+
* @returns The relation type with the reverse indicator added or removed
|
|
97
|
+
*/
|
|
98
|
+
const getReverseRelationType = (relationType) => {
|
|
99
|
+
if (!(0, exports.isRelationTypeReversed)(relationType)) {
|
|
100
|
+
return `${REVERSE_INDICATOR}${relationType}`;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return relationType;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
exports.getReverseRelationType = getReverseRelationType;
|
|
107
|
+
/**
|
|
108
|
+
* Clears the reverse indicator from the relation type if it is present.
|
|
109
|
+
*
|
|
110
|
+
* A reversed relation means the relation is considered from the object entity
|
|
111
|
+
* point of view.
|
|
112
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
113
|
+
*
|
|
114
|
+
* @param relationType The relation type to transform
|
|
115
|
+
* @returns The relation type with the reverse indicator added or removed
|
|
116
|
+
*/
|
|
117
|
+
const getRawRelationType = (relationType) => {
|
|
118
|
+
if ((0, exports.isRelationTypeReversed)(relationType)) {
|
|
119
|
+
return relationType.replace(REVERSE_INDICATOR, "");
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
return relationType;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
exports.getRawRelationType = getRawRelationType;
|
|
126
|
+
/**
|
|
127
|
+
* Returns the relation type with the reverse indicator added if necessary.
|
|
128
|
+
*
|
|
129
|
+
* A reversed relation means the relation is considered from the object entity
|
|
130
|
+
* point of view.
|
|
131
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
132
|
+
*
|
|
133
|
+
* @param relationType The relation type to transform
|
|
134
|
+
* @param role The entity role in the relation
|
|
135
|
+
* @returns A relation type with the reverse indicator if necessary
|
|
136
|
+
*/
|
|
137
|
+
const getRelationType = (relationType, role) => {
|
|
138
|
+
return role === "subject"
|
|
139
|
+
? relationType
|
|
140
|
+
: (0, exports.getReverseRelationType)(relationType);
|
|
141
|
+
};
|
|
142
|
+
exports.getRelationType = getRelationType;
|
|
143
|
+
/**
|
|
144
|
+
* Finds the relation matching the provided source, relation typ and target
|
|
145
|
+
*
|
|
146
|
+
* @param entitySchema The entity schema the relation is from
|
|
147
|
+
* @param sourceType The entity type acting as source for the relation
|
|
148
|
+
* @param relationType The type of the relation to use. Can have the reverse indicator to decide the role of the source/target entities
|
|
149
|
+
* @param targetType The entity type acting as target for the relation
|
|
150
|
+
* @returns The relation definition matching the triplet source relation target
|
|
151
|
+
*/
|
|
152
|
+
const getRelationDefinition = (entitySchema, sourceType, relationType, targetType) => {
|
|
153
|
+
const role = (0, exports.getRoleFromRelationType)(relationType);
|
|
154
|
+
const match = entitySchema.matchRelationDefinitions({
|
|
155
|
+
[role]: sourceType,
|
|
156
|
+
type: (0, exports.getRawRelationType)(relationType),
|
|
157
|
+
[getOppositeRelationRole(role)]: targetType,
|
|
158
|
+
});
|
|
159
|
+
if (match.length > 0) {
|
|
160
|
+
return match[0];
|
|
161
|
+
}
|
|
162
|
+
return undefined;
|
|
163
|
+
};
|
|
164
|
+
exports.getRelationDefinition = getRelationDefinition;
|
|
25
165
|
function hasAttributeWithName(entitySchema, attributeNameSearched) {
|
|
26
166
|
for (const entityAttribute of entitySchema.attributes) {
|
|
27
167
|
if (entityAttribute.type == attributeNameSearched) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/schema/classes/Utils.ts"],"names":[],"mappings":";;;AASA;;;;;;GAMG;AACI,MAAM,cAAc,GAAG,CAI5B,MAAoB,EACpB,EAAE;IACF,OAAO,MAA2B,CAAC;AACrC,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB;AAEF;;;;;GAKG;AACH,SAAgB,
|
|
1
|
+
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../src/schema/classes/Utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityRole } from "../classes/Utils";
|
|
1
2
|
import { AttributeConstraint, RelationConstraint } from "./Constraints";
|
|
2
3
|
import { EntityRawSchema, EntityRawSchemaArray } from "./Entities";
|
|
3
4
|
/**
|
|
@@ -85,8 +86,8 @@ export type AttributeOptions = {
|
|
|
85
86
|
export type RelationOptions = {
|
|
86
87
|
symmetric?: boolean;
|
|
87
88
|
inlined?: boolean;
|
|
88
|
-
fulltext_container?:
|
|
89
|
-
composite?:
|
|
89
|
+
fulltext_container?: EntityRole;
|
|
90
|
+
composite?: EntityRole;
|
|
90
91
|
};
|
|
91
92
|
/**
|
|
92
93
|
* Type representing a relation definition schema.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationDefinitions.d.ts","sourceRoot":"","sources":["../../../src/schema/raw/RelationDefinitions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"RelationDefinitions.d.ts","sourceRoot":"","sources":["../../../src/schema/raw/RelationDefinitions.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/api/Api.ts
CHANGED
|
@@ -182,15 +182,19 @@ export default class Api {
|
|
|
182
182
|
])
|
|
183
183
|
),
|
|
184
184
|
}));
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
185
|
+
try {
|
|
186
|
+
const resultSets = await nonNullFetchApi<ReadonlyArray<ResultSet>>(
|
|
187
|
+
this._transactionApiUrl,
|
|
188
|
+
{
|
|
189
|
+
method: "POST",
|
|
190
|
+
credentials: "include",
|
|
191
|
+
body: JSON.stringify(data),
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
return new TransactionResult(resultSets);
|
|
195
|
+
} catch (e) {
|
|
196
|
+
this.handleUserErrors(e);
|
|
197
|
+
}
|
|
194
198
|
}
|
|
195
199
|
|
|
196
200
|
private handleUserErrors(error: unknown): never {
|
|
@@ -49,43 +49,54 @@ export class EntitySchema<
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
|
-
* Gets the list of relation
|
|
53
|
-
*
|
|
54
|
-
* there will be dupicates when used along with `objectRelationsDefinitions`.
|
|
52
|
+
* Gets the list of attribute schemas (relation definition schemas with final at false)
|
|
53
|
+
* for this entity schema.
|
|
55
54
|
*/
|
|
56
|
-
get
|
|
55
|
+
get attributes(): RelationDefinitionSchema<
|
|
57
56
|
E,
|
|
58
57
|
R,
|
|
59
58
|
MatchedRelationDefinition<
|
|
60
59
|
E,
|
|
61
60
|
R,
|
|
62
|
-
{ subject: ERawSchema["type"]; final:
|
|
61
|
+
{ subject: ERawSchema["type"]; final: true }
|
|
63
62
|
>
|
|
64
63
|
>[] {
|
|
65
64
|
return this.schema.matchRelationDefinitions({
|
|
65
|
+
final: true,
|
|
66
66
|
subject: this.type,
|
|
67
|
-
final: false,
|
|
68
67
|
});
|
|
69
68
|
}
|
|
70
69
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
* In case a relation definition schema has this entity as both object and subject,
|
|
74
|
-
* there will be dupicates when used along with `subjectRelationDefinitions`.
|
|
75
|
-
*/
|
|
76
|
-
get objectRelationsDefinitions(): RelationDefinitionSchema<
|
|
77
|
-
E,
|
|
78
|
-
R,
|
|
79
|
-
MatchedRelationDefinition<
|
|
70
|
+
get relationDefinitions(): {
|
|
71
|
+
subject: RelationDefinitionSchema<
|
|
80
72
|
E,
|
|
81
73
|
R,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
74
|
+
MatchedRelationDefinition<
|
|
75
|
+
E,
|
|
76
|
+
R,
|
|
77
|
+
{ subject: ERawSchema["type"]; final: false }
|
|
78
|
+
>
|
|
79
|
+
>[];
|
|
80
|
+
object: RelationDefinitionSchema<
|
|
81
|
+
E,
|
|
82
|
+
R,
|
|
83
|
+
MatchedRelationDefinition<
|
|
84
|
+
E,
|
|
85
|
+
R,
|
|
86
|
+
{ object: ERawSchema["type"]; final: false }
|
|
87
|
+
>
|
|
88
|
+
>[];
|
|
89
|
+
} {
|
|
90
|
+
return {
|
|
91
|
+
subject: this.schema.matchRelationDefinitions({
|
|
92
|
+
subject: this.type,
|
|
93
|
+
final: false,
|
|
94
|
+
}),
|
|
95
|
+
object: this.schema.matchRelationDefinitions({
|
|
96
|
+
object: this.type,
|
|
97
|
+
final: false,
|
|
98
|
+
}),
|
|
99
|
+
};
|
|
89
100
|
}
|
|
90
101
|
|
|
91
102
|
/**
|
|
@@ -103,23 +114,4 @@ export class EntitySchema<
|
|
|
103
114
|
>[] {
|
|
104
115
|
return this.schema.matchRelationDefinitions(matcher);
|
|
105
116
|
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Gets the list of attribute schemas (relation definition schemas with final at false)
|
|
109
|
-
* for this entity schema.
|
|
110
|
-
*/
|
|
111
|
-
get attributes(): RelationDefinitionSchema<
|
|
112
|
-
E,
|
|
113
|
-
R,
|
|
114
|
-
MatchedRelationDefinition<
|
|
115
|
-
E,
|
|
116
|
-
R,
|
|
117
|
-
{ subject: ERawSchema["type"]; final: true }
|
|
118
|
-
>
|
|
119
|
-
>[] {
|
|
120
|
-
return this.schema.matchRelationDefinitions({
|
|
121
|
-
final: true,
|
|
122
|
-
subject: this.type,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
117
|
}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import { IsLooseSchema, EntityRawSchemaByType } from "../raw/Utils";
|
|
8
8
|
import { EntitySchema } from "./EntitySchema";
|
|
9
9
|
import { Schema } from "./Schema";
|
|
10
|
-
import {
|
|
10
|
+
import { EntityRole, isCardinalityRequired } from "./Utils";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Wrapper around raw relation definition schemas from the Schema.
|
|
@@ -84,22 +84,11 @@ export class RelationDefinitionSchema<
|
|
|
84
84
|
/**
|
|
85
85
|
* The cardinality of this relation definition schema.
|
|
86
86
|
*/
|
|
87
|
-
get cardinality():
|
|
88
|
-
return
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
* The cardinality of this relation definition schema's subject.
|
|
93
|
-
*/
|
|
94
|
-
get subjectCardinality(): Cardinality {
|
|
95
|
-
return this.relDef.cardinality[0] as Cardinality;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* The cardinality of this relation definition schema's object.
|
|
100
|
-
*/
|
|
101
|
-
get objectCardinality(): Cardinality {
|
|
102
|
-
return this.relDef.cardinality[1] as Cardinality;
|
|
87
|
+
get cardinality(): { subject: Cardinality; object: Cardinality } {
|
|
88
|
+
return {
|
|
89
|
+
subject: this.relDef.cardinality[0] as Cardinality,
|
|
90
|
+
object: this.relDef.cardinality[1] as Cardinality,
|
|
91
|
+
};
|
|
103
92
|
}
|
|
104
93
|
|
|
105
94
|
/**
|
|
@@ -144,13 +133,7 @@ export class RelationDefinitionSchema<
|
|
|
144
133
|
* @param role The point of view to use
|
|
145
134
|
* @returns
|
|
146
135
|
*/
|
|
147
|
-
isRequired(role:
|
|
148
|
-
|
|
149
|
-
if (role === "subject") {
|
|
150
|
-
cardinality = this.subjectCardinality;
|
|
151
|
-
} else {
|
|
152
|
-
cardinality = this.objectCardinality;
|
|
153
|
-
}
|
|
154
|
-
return cardinalityRequired(cardinality);
|
|
136
|
+
isRequired(role: EntityRole) {
|
|
137
|
+
return isCardinalityRequired(this.cardinality[role]);
|
|
155
138
|
}
|
|
156
139
|
}
|
|
@@ -7,6 +7,16 @@ import {
|
|
|
7
7
|
import { Schema } from "./Schema";
|
|
8
8
|
import { EntitySchema } from "./EntitySchema";
|
|
9
9
|
|
|
10
|
+
// This prefix is often applied to relation types as convention
|
|
11
|
+
// indicating a relation is viewed from the object's point of view
|
|
12
|
+
// We do not export it and instead encourage users to use the utility functions
|
|
13
|
+
const REVERSE_INDICATOR = "reverse_";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* An entity role in a relation.
|
|
17
|
+
*/
|
|
18
|
+
export type EntityRole = "subject" | "object";
|
|
19
|
+
|
|
10
20
|
/**
|
|
11
21
|
* Returns the given schema using loose typing.
|
|
12
22
|
* Can be useful when working with generic schemas
|
|
@@ -29,10 +39,149 @@ export const getLooseSchema = <
|
|
|
29
39
|
* @param cardinality The cardinality to check
|
|
30
40
|
* @returns True if the cardinality is 1 or +
|
|
31
41
|
*/
|
|
32
|
-
export function
|
|
42
|
+
export function isCardinalityRequired(cardinality: Cardinality): boolean {
|
|
33
43
|
return cardinality === "1" || cardinality === "+";
|
|
34
44
|
}
|
|
35
45
|
|
|
46
|
+
/**
|
|
47
|
+
* Checks if the cardinality allows multiple entities to be present
|
|
48
|
+
*
|
|
49
|
+
* @param cardinality The cardinility to check
|
|
50
|
+
* @returns True if the cardinality is `*` or `+`
|
|
51
|
+
*/
|
|
52
|
+
export const isCardinalityMultiple = (cardinality: Cardinality): boolean => {
|
|
53
|
+
return cardinality === "*" || cardinality === "+";
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Checks if the cardinality allows entities to be absent
|
|
58
|
+
*
|
|
59
|
+
* @param cardinality The cardinility to check
|
|
60
|
+
* @returns True if the cardinality is `?` or `*`
|
|
61
|
+
*/
|
|
62
|
+
export const isCardinalityOptional = (cardinality: Cardinality): boolean => {
|
|
63
|
+
return cardinality === "?" || cardinality === "*";
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Reverses the given role name
|
|
68
|
+
*
|
|
69
|
+
* @param role The role to reverse
|
|
70
|
+
* @returns "object" if the given role was "subject", "subject" otherwise
|
|
71
|
+
*/
|
|
72
|
+
export function getOppositeRelationRole(role: EntityRole): EntityRole {
|
|
73
|
+
return role === "subject" ? "object" : "subject";
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Checks if the given relation type is reversed.
|
|
78
|
+
*
|
|
79
|
+
* A reversed relation means the relation is considered from the object entity
|
|
80
|
+
* point of view.
|
|
81
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
82
|
+
*
|
|
83
|
+
* @param relationType The relation type to check
|
|
84
|
+
* @returns True if the relation type starts with the reverse indicator
|
|
85
|
+
*/
|
|
86
|
+
export const isRelationTypeReversed = (relationType: string): boolean => {
|
|
87
|
+
return relationType.startsWith(REVERSE_INDICATOR);
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Gets the entity role in the given relation type by
|
|
92
|
+
* checking for the reverse indicator
|
|
93
|
+
*
|
|
94
|
+
* A reversed relation means the relation is considered from the object entity
|
|
95
|
+
* point of view.
|
|
96
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
97
|
+
*
|
|
98
|
+
* @param relationType The relation type to check
|
|
99
|
+
* @returns "subject" if the relation is not reversed, "object" otherwise
|
|
100
|
+
*/
|
|
101
|
+
export const getRoleFromRelationType = (relationType: string): EntityRole => {
|
|
102
|
+
return isRelationTypeReversed(relationType) ? "object" : "subject";
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Adds the reverse indicator from the relation type if it is not already present.
|
|
107
|
+
*
|
|
108
|
+
* A reversed relation means the relation is considered from the object entity
|
|
109
|
+
* point of view.
|
|
110
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
111
|
+
*
|
|
112
|
+
* @param relationType The relation type to transform
|
|
113
|
+
* @returns The relation type with the reverse indicator added or removed
|
|
114
|
+
*/
|
|
115
|
+
export const getReverseRelationType = (relationType: string): string => {
|
|
116
|
+
if (!isRelationTypeReversed(relationType)) {
|
|
117
|
+
return `${REVERSE_INDICATOR}${relationType}`;
|
|
118
|
+
} else {
|
|
119
|
+
return relationType;
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Clears the reverse indicator from the relation type if it is present.
|
|
125
|
+
*
|
|
126
|
+
* A reversed relation means the relation is considered from the object entity
|
|
127
|
+
* point of view.
|
|
128
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
129
|
+
*
|
|
130
|
+
* @param relationType The relation type to transform
|
|
131
|
+
* @returns The relation type with the reverse indicator added or removed
|
|
132
|
+
*/
|
|
133
|
+
export const getRawRelationType = (relationType: string): string => {
|
|
134
|
+
if (isRelationTypeReversed(relationType)) {
|
|
135
|
+
return relationType.replace(REVERSE_INDICATOR, "");
|
|
136
|
+
} else {
|
|
137
|
+
return relationType;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Returns the relation type with the reverse indicator added if necessary.
|
|
143
|
+
*
|
|
144
|
+
* A reversed relation means the relation is considered from the object entity
|
|
145
|
+
* point of view.
|
|
146
|
+
* The reverse indicator is a prefix added as a convention in CubicWeb.
|
|
147
|
+
*
|
|
148
|
+
* @param relationType The relation type to transform
|
|
149
|
+
* @param role The entity role in the relation
|
|
150
|
+
* @returns A relation type with the reverse indicator if necessary
|
|
151
|
+
*/
|
|
152
|
+
export const getRelationType = (relationType: string, role: EntityRole) => {
|
|
153
|
+
return role === "subject"
|
|
154
|
+
? relationType
|
|
155
|
+
: getReverseRelationType(relationType);
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Finds the relation matching the provided source, relation typ and target
|
|
160
|
+
*
|
|
161
|
+
* @param entitySchema The entity schema the relation is from
|
|
162
|
+
* @param sourceType The entity type acting as source for the relation
|
|
163
|
+
* @param relationType The type of the relation to use. Can have the reverse indicator to decide the role of the source/target entities
|
|
164
|
+
* @param targetType The entity type acting as target for the relation
|
|
165
|
+
* @returns The relation definition matching the triplet source relation target
|
|
166
|
+
*/
|
|
167
|
+
export const getRelationDefinition = (
|
|
168
|
+
entitySchema: EntitySchema,
|
|
169
|
+
sourceType: string,
|
|
170
|
+
relationType: string,
|
|
171
|
+
targetType: string
|
|
172
|
+
) => {
|
|
173
|
+
const role = getRoleFromRelationType(relationType);
|
|
174
|
+
const match = entitySchema.matchRelationDefinitions({
|
|
175
|
+
[role]: sourceType,
|
|
176
|
+
type: getRawRelationType(relationType),
|
|
177
|
+
[getOppositeRelationRole(role)]: targetType,
|
|
178
|
+
});
|
|
179
|
+
if (match.length > 0) {
|
|
180
|
+
return match[0];
|
|
181
|
+
}
|
|
182
|
+
return undefined;
|
|
183
|
+
};
|
|
184
|
+
|
|
36
185
|
/**
|
|
37
186
|
* Partial raw relation definition schema type.
|
|
38
187
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EntityRole } from "../classes/Utils";
|
|
1
2
|
import { AttributeConstraint, RelationConstraint } from "./Constraints";
|
|
2
3
|
import { EntityRawSchema, EntityRawSchemaArray } from "./Entities";
|
|
3
4
|
|
|
@@ -122,8 +123,8 @@ export type AttributeOptions = {
|
|
|
122
123
|
export type RelationOptions = {
|
|
123
124
|
symmetric?: boolean;
|
|
124
125
|
inlined?: boolean;
|
|
125
|
-
fulltext_container?:
|
|
126
|
-
composite?:
|
|
126
|
+
fulltext_container?: EntityRole;
|
|
127
|
+
composite?: EntityRole;
|
|
127
128
|
};
|
|
128
129
|
|
|
129
130
|
/**
|