@cubicweb/client 2.1.1 → 3.0.0-alpha.10

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.
Files changed (52) hide show
  1. package/README.md +28 -16
  2. package/lib/api/Api.d.ts +34 -14
  3. package/lib/api/Api.d.ts.map +1 -1
  4. package/lib/api/Api.js +82 -44
  5. package/lib/api/Api.js.map +1 -1
  6. package/lib/api/Client.d.ts +17 -6
  7. package/lib/api/Client.d.ts.map +1 -1
  8. package/lib/api/Client.js +30 -11
  9. package/lib/api/Client.js.map +1 -1
  10. package/lib/api/Transaction.d.ts +33 -20
  11. package/lib/api/Transaction.d.ts.map +1 -1
  12. package/lib/api/Transaction.js +44 -37
  13. package/lib/api/Transaction.js.map +1 -1
  14. package/lib/schema/classes/EntitySchema.d.ts +16 -22
  15. package/lib/schema/classes/EntitySchema.d.ts.map +1 -1
  16. package/lib/schema/classes/EntitySchema.js +17 -25
  17. package/lib/schema/classes/EntitySchema.js.map +1 -1
  18. package/lib/schema/classes/RelationDefinitionSchema.d.ts +8 -10
  19. package/lib/schema/classes/RelationDefinitionSchema.d.ts.map +1 -1
  20. package/lib/schema/classes/RelationDefinitionSchema.js +7 -21
  21. package/lib/schema/classes/RelationDefinitionSchema.js.map +1 -1
  22. package/lib/schema/classes/Schema.d.ts +2 -0
  23. package/lib/schema/classes/Schema.d.ts.map +1 -1
  24. package/lib/schema/classes/Schema.js +2 -0
  25. package/lib/schema/classes/Schema.js.map +1 -1
  26. package/lib/schema/classes/Utils.d.ts +135 -1
  27. package/lib/schema/classes/Utils.d.ts.map +1 -1
  28. package/lib/schema/classes/Utils.js +165 -3
  29. package/lib/schema/classes/Utils.js.map +1 -1
  30. package/lib/schema/raw/Constraints.d.ts +17 -9
  31. package/lib/schema/raw/Constraints.d.ts.map +1 -1
  32. package/lib/schema/raw/Entities.d.ts +4 -0
  33. package/lib/schema/raw/Entities.d.ts.map +1 -1
  34. package/lib/schema/raw/RelationDefinitions.d.ts +15 -2
  35. package/lib/schema/raw/RelationDefinitions.d.ts.map +1 -1
  36. package/lib/schema/raw/Schema.d.ts +2 -0
  37. package/lib/schema/raw/Schema.d.ts.map +1 -1
  38. package/lib/schema/raw/Utils.d.ts +6 -0
  39. package/lib/schema/raw/Utils.d.ts.map +1 -1
  40. package/package.json +4 -8
  41. package/src/api/Api.ts +107 -54
  42. package/src/api/Client.ts +33 -20
  43. package/src/api/Transaction.ts +56 -37
  44. package/src/schema/classes/EntitySchema.ts +35 -41
  45. package/src/schema/classes/RelationDefinitionSchema.ts +10 -25
  46. package/src/schema/classes/Schema.ts +2 -0
  47. package/src/schema/classes/Utils.ts +178 -1
  48. package/src/schema/raw/Constraints.ts +20 -8
  49. package/src/schema/raw/Entities.ts +4 -0
  50. package/src/schema/raw/RelationDefinitions.ts +15 -2
  51. package/src/schema/raw/Schema.ts +2 -0
  52. package/src/schema/raw/Utils.ts +6 -0
@@ -1,68 +1,75 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.NativeTransactionBackend = exports.isTransactionQueryRef = exports.TransactionQuery = exports.TransactionResult = exports.Transaction = void 0;
3
+ exports.TransactionQueryRowRef = exports.TransactionQueryRef = exports.TransactionResult = exports.TransactionQuery = exports.Transaction = void 0;
13
4
  class Transaction {
14
5
  constructor() {
15
6
  this._queries = [];
7
+ this._binaries = {};
16
8
  }
17
9
  push(query, params) {
18
10
  const stackedQuery = new TransactionQuery(query, params, this._queries.length);
19
11
  this._queries.push(stackedQuery);
20
12
  return stackedQuery;
21
13
  }
14
+ setBinaries(binaries) {
15
+ this._binaries = binaries !== null && binaries !== void 0 ? binaries : {};
16
+ }
17
+ get binaries() {
18
+ return this._binaries;
19
+ }
22
20
  get queries() {
23
21
  return this._queries;
24
22
  }
25
23
  }
26
24
  exports.Transaction = Transaction;
25
+ class TransactionQuery {
26
+ constructor(query, params, index) {
27
+ this.query = query;
28
+ this.params = params;
29
+ this.index = index;
30
+ }
31
+ ref() {
32
+ return new TransactionQueryRef(this.index);
33
+ }
34
+ }
35
+ exports.TransactionQuery = TransactionQuery;
27
36
  class TransactionResult {
28
37
  constructor(resultSets) {
29
38
  this.resultSets = resultSets;
30
39
  }
31
- resolve(ref) {
40
+ resolveQuery(ref) {
41
+ return this.resultSets[ref.queryIndex];
42
+ }
43
+ resolveRow(ref) {
44
+ return this.resultSets[ref.queryIndex][ref.row];
45
+ }
46
+ resolveScalar(ref) {
32
47
  return this.resultSets[ref.queryIndex][ref.row][ref.column];
33
48
  }
34
49
  }
35
50
  exports.TransactionResult = TransactionResult;
36
- class TransactionQuery {
37
- constructor(query, params, index) {
38
- this.query = query;
39
- this.params = params;
40
- this.index = index;
51
+ class TransactionQueryRef {
52
+ constructor(queryIndex) {
53
+ this.queryIndex = queryIndex;
41
54
  }
42
- ref(row = 0, column = 0) {
43
- return {
44
- queryIndex: this.index,
45
- row,
46
- column,
47
- };
55
+ row(r) {
56
+ return new TransactionQueryRowRef(this.queryIndex, r);
48
57
  }
49
58
  }
50
- exports.TransactionQuery = TransactionQuery;
51
- function isTransactionQueryRef(value) {
52
- return (typeof value === "object" &&
53
- value !== null &&
54
- ["queryIndex", "row", "column"].every((key) => Object.keys(value).includes(key)));
55
- }
56
- exports.isTransactionQueryRef = isTransactionQueryRef;
57
- class NativeTransactionBackend {
58
- constructor(_api) {
59
- this._api = _api;
59
+ exports.TransactionQueryRef = TransactionQueryRef;
60
+ class TransactionQueryRowRef {
61
+ constructor(queryIndex, row) {
62
+ this.queryIndex = queryIndex;
63
+ this.row = row;
60
64
  }
61
- execute(transaction) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- return this._api.executeTransaction(transaction);
64
- });
65
+ column(c) {
66
+ return {
67
+ type: "query_reference",
68
+ queryIndex: this.queryIndex,
69
+ row: this.row,
70
+ column: c,
71
+ };
65
72
  }
66
73
  }
67
- exports.NativeTransactionBackend = NativeTransactionBackend;
74
+ exports.TransactionQueryRowRef = TransactionQueryRowRef;
68
75
  //# sourceMappingURL=Transaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/api/Transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,MAAa,WAAW;IAAxB;QACU,aAAQ,GAA4B,EAAE,CAAC;IAkBjD,CAAC;IAhBC,IAAI,CACF,KAAa,EACb,MAA2D;QAE3D,MAAM,YAAY,GAAG,IAAI,gBAAgB,CACvC,KAAK,EACL,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CACrB,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAnBD,kCAmBC;AAED,MAAa,iBAAiB;IAC5B,YAAoB,UAAoC;QAApC,eAAU,GAAV,UAAU,CAA0B;IAAG,CAAC;IAE5D,OAAO,CAAC,GAAwB;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;CACF;AAND,8CAMC;AAQD,MAAa,gBAAgB;IAC3B,YACkB,KAAa,EACb,MAA2D,EAC3D,KAAa;QAFb,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAqD;QAC3D,UAAK,GAAL,KAAK,CAAQ;IAC5B,CAAC;IAEJ,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC;QACrB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,KAAK;YACtB,GAAG;YACH,MAAM;SACP,CAAC;IACJ,CAAC;CACF;AAdD,4CAcC;AAED,SAAgB,qBAAqB,CACnC,KAA0C;IAE1C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CACjC,CACF,CAAC;AACJ,CAAC;AAVD,sDAUC;AAMD,MAAa,wBAAwB;IACnC,YAAoB,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;IAAG,CAAC;IAC3B,OAAO,CAAC,WAAwB;;YACpC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC;KAAA;CACF;AALD,4DAKC"}
1
+ {"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../src/api/Transaction.ts"],"names":[],"mappings":";;;AAIA,MAAa,WAAW;IAAxB;QACU,aAAQ,GAA4B,EAAE,CAAC;QACvC,cAAS,GAAkB,EAAE,CAAC;IAuBxC,CAAC;IArBC,IAAI,CAAC,KAAa,EAAE,MAAiB;QACnC,MAAM,YAAY,GAAG,IAAI,gBAAgB,CACvC,KAAK,EACL,MAAM,EACN,IAAI,CAAC,QAAQ,CAAC,MAAM,CACrB,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,QAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAzBD,kCAyBC;AAED,MAAa,gBAAgB;IAC3B,YACkB,KAAa,EACb,MAAiB,EACjB,KAAa;QAFb,UAAK,GAAL,KAAK,CAAQ;QACb,WAAM,GAAN,MAAM,CAAW;QACjB,UAAK,GAAL,KAAK,CAAQ;IAC5B,CAAC;IAEJ,GAAG;QACD,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF;AAVD,4CAUC;AAED,MAAa,iBAAiB;IAC5B,YAAoB,UAAoC;QAApC,eAAU,GAAV,UAAU,CAA0B;IAAG,CAAC;IAE5D,YAAY,CAAC,GAAwB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,UAAU,CAAC,GAA2B;QACpC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,aAAa,CAAC,GAA8B;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;CACF;AAdD,8CAcC;AAED,MAAa,mBAAmB;IAC9B,YAA4B,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;IAElD,GAAG,CAAC,CAAS;QACX,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;CACF;AAND,kDAMC;AAED,MAAa,sBAAsB;IACjC,YACkB,UAAkB,EAClB,GAAW;QADX,eAAU,GAAV,UAAU,CAAQ;QAClB,QAAG,GAAH,GAAG,CAAQ;IAC1B,CAAC;IAEJ,MAAM,CAAC,CAAS;QACd,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,CAAC;SACV,CAAC;IACJ,CAAC;CACF;AAdD,wDAcC"}
@@ -7,6 +7,8 @@ import { MatchedRelationDefinition, RelationDefinitionMatcher } from "./Utils";
7
7
  * Wrapper around raw entity schemas from the Schema.
8
8
  * You should never have to create this object yourself.
9
9
  * Instead, retrieve these objects from the methods in the `Schema` class.
10
+ *
11
+ * @category Schema
10
12
  */
11
13
  export declare class EntitySchema<E extends EntityRawSchemaArray = EntityRawSchemaArray, R extends RelationDefinitionRawSchemaArray<E> = RelationDefinitionRawSchemaArray<E>, ERawSchema extends E[number] = E[number]> {
12
14
  private schema;
@@ -33,23 +35,23 @@ export declare class EntitySchema<E extends EntityRawSchemaArray = EntityRawSche
33
35
  */
34
36
  get final(): ERawSchema["final"];
35
37
  /**
36
- * Gets the list of relation definitions schemas with this entity as subject.
37
- * In case a relation definition schema has this entity as both object and subject,
38
- * there will be dupicates when used along with `objectRelationsDefinitions`.
38
+ * Gets the list of attribute schemas (relation definition schemas with final at false)
39
+ * for this entity schema.
39
40
  */
40
- get subjectRelationDefinitions(): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
41
+ get attributes(): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
41
42
  subject: ERawSchema["type"];
42
- final: false;
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;
43
+ final: true;
52
44
  }>>[];
45
+ get relationDefinitions(): {
46
+ subject: RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
47
+ subject: ERawSchema["type"];
48
+ final: false;
49
+ }>>[];
50
+ object: RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
51
+ object: ERawSchema["type"];
52
+ final: false;
53
+ }>>[];
54
+ };
53
55
  /**
54
56
  * Finds relations in the Schema matching the partial relation given.
55
57
  *
@@ -59,13 +61,5 @@ export declare class EntitySchema<E extends EntityRawSchemaArray = EntityRawSche
59
61
  matchRelationDefinitions<M extends RelationDefinitionMatcher<E>>(matcher: M): RelationDefinitionSchema<E, R, MatchedRelationDefinition<E, R, {
60
62
  subject: ERawSchema["type"];
61
63
  }>>[];
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
64
  }
71
65
  //# 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;;;;OAIG;IACH,IAAI,0BAA0B,IAAI,wBAAwB,CACxD,CAAC,EACD,CAAC,EACD,yBAAyB,CACvB,CAAC,EACD,CAAC,EACD;QAAE,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAC9C,CACF,EAAE,CAKF;IAED;;;;OAIG;IACH,IAAI,0BAA0B,IAAI,wBAAwB,CACxD,CAAC,EACD,CAAC,EACD,yBAAyB,CACvB,CAAC,EACD,CAAC,EACD;QAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAC7C,CACF,EAAE,CAKF;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;IAIH;;;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;CACF"}
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;;;;;;GAMG;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"}
@@ -5,6 +5,8 @@ exports.EntitySchema = void 0;
5
5
  * Wrapper around raw entity schemas from the Schema.
6
6
  * You should never have to create this object yourself.
7
7
  * Instead, retrieve these objects from the methods in the `Schema` class.
8
+ *
9
+ * @category Schema
8
10
  */
9
11
  class EntitySchema {
10
12
  /**
@@ -38,26 +40,26 @@ class EntitySchema {
38
40
  return this.entityRawSchema.final;
39
41
  }
40
42
  /**
41
- * Gets the list of relation definitions schemas with this entity as subject.
42
- * In case a relation definition schema has this entity as both object and subject,
43
- * there will be dupicates when used along with `objectRelationsDefinitions`.
43
+ * Gets the list of attribute schemas (relation definition schemas with final at false)
44
+ * for this entity schema.
44
45
  */
45
- get subjectRelationDefinitions() {
46
+ get attributes() {
46
47
  return this.schema.matchRelationDefinitions({
48
+ final: true,
47
49
  subject: this.type,
48
- final: false,
49
50
  });
50
51
  }
51
- /**
52
- * Gets the list of relation definitions schemas with this entity as object.
53
- * In case a relation definition schema has this entity as both object and subject,
54
- * there will be dupicates when used along with `subjectRelationDefinitions`.
55
- */
56
- get objectRelationsDefinitions() {
57
- return this.schema.matchRelationDefinitions({
58
- object: this.type,
59
- final: false,
60
- });
52
+ get relationDefinitions() {
53
+ return {
54
+ subject: this.schema.matchRelationDefinitions({
55
+ subject: this.type,
56
+ final: false,
57
+ }),
58
+ object: this.schema.matchRelationDefinitions({
59
+ object: this.type,
60
+ final: false,
61
+ }),
62
+ };
61
63
  }
62
64
  /**
63
65
  * Finds relations in the Schema matching the partial relation given.
@@ -68,16 +70,6 @@ class EntitySchema {
68
70
  matchRelationDefinitions(matcher) {
69
71
  return this.schema.matchRelationDefinitions(matcher);
70
72
  }
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
73
  }
82
74
  exports.EntitySchema = EntitySchema;
83
75
  //# 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;;;;OAIG;IACH,IAAI,0BAA0B;QAS5B,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,IAAI;YAClB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,IAAI,0BAA0B;QAS5B,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC;YAC1C,MAAM,EAAE,IAAI,CAAC,IAAI;YACjB,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,wBAAwB,CACtB,OAAU;QAMV,OAAO,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACvD,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;CACF;AAjHD,oCAiHC"}
1
+ {"version":3,"file":"EntitySchema.js","sourceRoot":"","sources":["../../../src/schema/classes/EntitySchema.ts"],"names":[],"mappings":";;;AAMA;;;;;;GAMG;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,10 +3,13 @@ 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.
9
10
  * Instead, retrieve these objects from the methods in the `Schema` class.
11
+ *
12
+ * @category Schema
10
13
  */
11
14
  export declare class RelationDefinitionSchema<E extends EntityRawSchemaArray = EntityRawSchemaArray, R extends RelationDefinitionRawSchemaArray<E> = RelationDefinitionRawSchemaArray<E>, RDef extends R[number] = R[number]> {
12
15
  private schema;
@@ -55,15 +58,10 @@ export declare class RelationDefinitionSchema<E extends EntityRawSchemaArray = E
55
58
  /**
56
59
  * The cardinality of this relation definition schema.
57
60
  */
58
- get cardinality(): RDef["cardinality"];
59
- /**
60
- * The cardinality of this relation definition schema's subject.
61
- */
62
- get subjectCardinality(): Cardinality;
63
- /**
64
- * The cardinality of this relation definition schema's object.
65
- */
66
- get objectCardinality(): Cardinality;
61
+ get cardinality(): {
62
+ subject: Cardinality;
63
+ object: Cardinality;
64
+ };
67
65
  /**
68
66
  * Gets the entity associated to this relation definition schema's subject.
69
67
  *
@@ -82,6 +80,6 @@ export declare class RelationDefinitionSchema<E extends EntityRawSchemaArray = E
82
80
  * @param role The point of view to use
83
81
  * @returns
84
82
  */
85
- isRequired(role: "subject" | "object"): boolean;
83
+ isRequired(role: EntityRole): boolean;
86
84
  }
87
85
  //# 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;AAGlC;;;;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,IAAI,CAAC,aAAa,CAAC,CAErC;IAED;;OAEG;IACH,IAAI,kBAAkB,IAAI,WAAW,CAEpC;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,WAAW,CAEnC;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,SAAS,GAAG,QAAQ;CAStC"}
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;;;;;;GAMG;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"}
@@ -7,6 +7,8 @@ const Utils_1 = require("./Utils");
7
7
  * Wrapper around raw relation definition schemas from the Schema.
8
8
  * You should never have to create this object yourself.
9
9
  * Instead, retrieve these objects from the methods in the `Schema` class.
10
+ *
11
+ * @category Schema
10
12
  */
11
13
  class RelationDefinitionSchema {
12
14
  /**
@@ -67,19 +69,10 @@ class RelationDefinitionSchema {
67
69
  * The cardinality of this relation definition schema.
68
70
  */
69
71
  get cardinality() {
70
- return this.relDef.cardinality;
71
- }
72
- /**
73
- * The cardinality of this relation definition schema's subject.
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];
72
+ return {
73
+ subject: this.relDef.cardinality[0],
74
+ object: this.relDef.cardinality[1],
75
+ };
83
76
  }
84
77
  /**
85
78
  * Gets the entity associated to this relation definition schema's subject.
@@ -114,14 +107,7 @@ class RelationDefinitionSchema {
114
107
  * @returns
115
108
  */
116
109
  isRequired(role) {
117
- let cardinality;
118
- if (role === "subject") {
119
- cardinality = this.subjectCardinality;
120
- }
121
- else {
122
- cardinality = this.objectCardinality;
123
- }
124
- return (0, Utils_1.cardinalityRequired)(cardinality);
110
+ return (0, Utils_1.isCardinalityRequired)(this.cardinality[role]);
125
111
  }
126
112
  }
127
113
  exports.RelationDefinitionSchema = RelationDefinitionSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"RelationDefinitionSchema.js","sourceRoot":"","sources":["../../../src/schema/classes/RelationDefinitionSchema.ts"],"names":[],"mappings":";;;AAAA,yCAAuD;AASvD,mCAA8C;AAE9C;;;;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,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAgB,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAgB,CAAC;IACnD,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,IAA0B;QACnC,IAAI,WAAwB,CAAC;QAC7B,IAAI,IAAI,KAAK,SAAS,EAAE;YACtB,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC;SACvC;aAAM;YACL,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;SACtC;QACD,OAAO,IAAA,2BAAmB,EAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;CACF;AA3ID,4DA2IC"}
1
+ {"version":3,"file":"RelationDefinitionSchema.js","sourceRoot":"","sources":["../../../src/schema/classes/RelationDefinitionSchema.ts"],"names":[],"mappings":";;;AAAA,yCAAuD;AASvD,mCAA4D;AAE5D;;;;;;GAMG;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"}
@@ -10,6 +10,8 @@ declare const rawSchemaKey: unique symbol;
10
10
  * Wrapper around the raw JSON Schema.
11
11
  * It is recommended to use this class instead of the raw JSON Schema
12
12
  * as it is more robust to schema changes and provides utility functions.
13
+ *
14
+ * @category Schema
13
15
  */
14
16
  export declare class Schema<E extends EntityRawSchemaArray = EntityRawSchemaArray, R extends RelationDefinitionRawSchemaArray<E> = RelationDefinitionRawSchemaArray<E>> {
15
17
  [rawSchemaKey]: RawSchema<E, R>;
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/schema/classes/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAEL,gCAAgC,EACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAE/E,QAAA,MAAM,YAAY,EAAE,OAAO,MAA2C,CAAC;AAEvE;;;;GAIG;AACH,qBAAa,MAAM,CACjB,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EACrD,CAAC,SAAS,gCAAgC,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAAC,CAAC;IAEnF,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhC;;;;;;OAMG;gBACS,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAItC;;OAEG;IACH,IAAI,QAAQ,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAI9C;IAED;;;OAGG;IACH,IAAI,oBAAoB,IAAI,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAItE;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,SAAS,MAAM,EAC5B,UAAU,EAAE,KAAK,GAChB,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GAC5B,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GACpC,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,IAAI,GAC5C,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GACnD,IAAI;IAiBR;;;;;;OAMG;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,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,CAChE,EAAE;CAmBJ"}
1
+ {"version":3,"file":"Schema.d.ts","sourceRoot":"","sources":["../../../src/schema/classes/Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAEL,gCAAgC,EACjC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAE/E,QAAA,MAAM,YAAY,EAAE,OAAO,MAA2C,CAAC;AAEvE;;;;;;GAMG;AACH,qBAAa,MAAM,CACjB,CAAC,SAAS,oBAAoB,GAAG,oBAAoB,EACrD,CAAC,SAAS,gCAAgC,CAAC,CAAC,CAAC,GAAG,gCAAgC,CAAC,CAAC,CAAC;IAEnF,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhC;;;;;;OAMG;gBACS,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAItC;;OAEG;IACH,IAAI,QAAQ,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAI9C;IAED;;;OAGG;IACH,IAAI,oBAAoB,IAAI,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAItE;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,SAAS,MAAM,EAC5B,UAAU,EAAE,KAAK,GAChB,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GAC5B,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GACpC,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,IAAI,GAC5C,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GACnD,IAAI;IAiBR;;;;;;OAMG;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,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC,CAChE,EAAE;CAmBJ"}
@@ -8,6 +8,8 @@ const rawSchemaKey = Symbol("Indexer of the rawSchema");
8
8
  * Wrapper around the raw JSON Schema.
9
9
  * It is recommended to use this class instead of the raw JSON Schema
10
10
  * as it is more robust to schema changes and provides utility functions.
11
+ *
12
+ * @category Schema
11
13
  */
12
14
  class Schema {
13
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/schema/classes/Schema.ts"],"names":[],"mappings":";;;AAWA,iDAA8C;AAC9C,yEAAsE;AAGtE,MAAM,YAAY,GAAkB,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAa,MAAM;IAMjB;;;;;;OAMG;IACH,YAAY,SAA0B;QACpC,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,2BAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,GAAG,CACjD,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,mDAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CACP,UAAiB;QAMjB,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CACxD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CACzC,CAAC,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,eAAe,EAAE;YACpB,qEAAqE;YACrE,qDAAqD;YACrD,0CAA0C;YAC1C,OAAO,IAAI,CAAC;SACb;QACD,wBAAwB;QACxB,OAAO,IAAI,2BAAY,CACrB,IAAI,EACJ,eAAkD,CACnD,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,wBAAwB,CACtB,OAAU;QAMV,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAChE,CAAC,MAAM,EAAE,EAAE;YACT,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAC3B,OAAO,CACoC,EAAE;gBAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE;oBAChC,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAKA,CAAC;QACJ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,mDAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAnGD,wBAmGC"}
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../../../src/schema/classes/Schema.ts"],"names":[],"mappings":";;;AAWA,iDAA8C;AAC9C,yEAAsE;AAGtE,MAAM,YAAY,GAAkB,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAEvE;;;;;;GAMG;AACH,MAAa,MAAM;IAMjB;;;;;;OAMG;IACH,YAAY,SAA0B;QACpC,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,CACpC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,2BAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,GAAG,CACjD,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,mDAAwB,CAAC,IAAI,EAAE,UAAU,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,SAAS,CACP,UAAiB;QAMjB,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CACxD,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CACzC,CAAC,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,eAAe,EAAE;YACpB,qEAAqE;YACrE,qDAAqD;YACrD,0CAA0C;YAC1C,OAAO,IAAI,CAAC;SACb;QACD,wBAAwB;QACxB,OAAO,IAAI,2BAAY,CACrB,IAAI,EACJ,eAAkD,CACnD,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,wBAAwB,CACtB,OAAU;QAMV,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAChE,CAAC,MAAM,EAAE,EAAE;YACT,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAC3B,OAAO,CACoC,EAAE;gBAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE;oBAChC,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAKA,CAAC;QACJ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,mDAAwB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;CACF;AAnGD,wBAmGC"}
@@ -2,12 +2,20 @@ 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
+ * @category Utils
9
+ */
10
+ export type EntityRole = "subject" | "object";
5
11
  /**
6
12
  * Returns the given schema using loose typing.
7
13
  * Can be useful when working with generic schemas
8
14
  *
9
15
  * @param schema The schema to create a loose type for
10
16
  * @returns A loosely typed schema
17
+ *
18
+ * @category Utils
11
19
  */
12
20
  export declare const getLooseSchema: <E extends EntityRawSchemaArray = EntityRawSchemaArray, R extends RelationDefinitionRawSchemaArray<E> = RelationDefinitionRawSchemaArray<E>>(schema: Schema<E, R>) => Schema<EntityRawSchemaArray, RelationDefinitionRawSchemaArray<EntityRawSchemaArray>>;
13
21
  /**
@@ -15,10 +23,134 @@ export declare const getLooseSchema: <E extends EntityRawSchemaArray = EntityRaw
15
23
  *
16
24
  * @param cardinality The cardinality to check
17
25
  * @returns True if the cardinality is 1 or +
26
+ *
27
+ * @category Utils
28
+ */
29
+ export declare function isCardinalityRequired(cardinality: Cardinality): boolean;
30
+ /**
31
+ * Checks if the cardinality allows multiple entities to be present
32
+ *
33
+ * @param cardinality The cardinility to check
34
+ * @returns True if the cardinality is `*` or `+`
35
+ *
36
+ * @category Utils
37
+ */
38
+ export declare const isCardinalityMultiple: (cardinality: Cardinality) => boolean;
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
+ * @category Utils
46
+ */
47
+ export declare const isCardinalityOptional: (cardinality: Cardinality) => boolean;
48
+ /**
49
+ * Reverses the given role name
50
+ *
51
+ * @param role The role to reverse
52
+ * @returns "object" if the given role was "subject", "subject" otherwise
53
+ *
54
+ * @category Utils
55
+ */
56
+ export declare function getOppositeRelationRole(role: EntityRole): EntityRole;
57
+ /**
58
+ * Checks if the given relation type is reversed.
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 True if the relation type starts with the reverse indicator
66
+ *
67
+ * @category Utils
68
+ */
69
+ export declare const isRelationTypeReversed: (relationType: string) => boolean;
70
+ /**
71
+ * Gets the entity role in the given relation type by
72
+ * checking for the reverse indicator
73
+ *
74
+ * A reversed relation means the relation is considered from the object entity
75
+ * point of view.
76
+ * The reverse indicator is a prefix added as a convention in CubicWeb.
77
+ *
78
+ * @param relationType The relation type to check
79
+ * @returns "subject" if the relation is not reversed, "object" otherwise
80
+ *
81
+ * @category Utils
82
+ */
83
+ export declare const getRoleFromRelationType: (relationType: string) => EntityRole;
84
+ /**
85
+ * Adds the reverse indicator from the relation type if it is not already present.
86
+ *
87
+ * A reversed relation means the relation is considered from the object entity
88
+ * point of view.
89
+ * The reverse indicator is a prefix added as a convention in CubicWeb.
90
+ *
91
+ * @param relationType The relation type to transform
92
+ * @returns The relation type with the reverse indicator added or removed
93
+ *
94
+ * @category Utils
95
+ */
96
+ export declare const getReverseRelationType: (relationType: string) => string;
97
+ /**
98
+ * Clears the reverse indicator from the relation type if it is present.
99
+ *
100
+ * A reversed relation means the relation is considered from the object entity
101
+ * point of view.
102
+ * The reverse indicator is a prefix added as a convention in CubicWeb.
103
+ *
104
+ * @param relationType The relation type to transform
105
+ * @returns The relation type with the reverse indicator added or removed
106
+ *
107
+ * @category Utils
108
+ */
109
+ export declare const getRawRelationType: (relationType: string) => string;
110
+ /**
111
+ * Returns the relation type with the reverse indicator added if necessary.
112
+ *
113
+ * A reversed relation means the relation is considered from the object entity
114
+ * point of view.
115
+ * The reverse indicator is a prefix added as a convention in CubicWeb.
116
+ *
117
+ * @param relationType The relation type to transform
118
+ * @param role The entity role in the relation
119
+ * @returns A relation type with the reverse indicator if necessary
120
+ *
121
+ * @category Utils
18
122
  */
19
- export declare function cardinalityRequired(cardinality: Cardinality): boolean;
123
+ export declare const getRelationType: (relationType: string, role: EntityRole) => string;
124
+ /**
125
+ * Finds the relation matching the provided source, relation typ and target
126
+ *
127
+ * @param entitySchema The entity schema the relation is from
128
+ * @param sourceType The entity type acting as source for the relation
129
+ * @param relationType The type of the relation to use. Can have the reverse indicator to decide the role of the source/target entities
130
+ * @param targetType The entity type acting as target for the relation
131
+ * @returns The relation definition matching the triplet source relation target
132
+ *
133
+ * @category Utils
134
+ */
135
+ export declare const getRelationDefinition: (entitySchema: EntitySchema, sourceType: string, relationType: string, targetType: string) => import("./RelationDefinitionSchema").RelationDefinitionSchema<EntityRawSchemaArray, RelationDefinitionRawSchemaArray<EntityRawSchemaArray>, Readonly<{
136
+ type: string;
137
+ description: string;
138
+ cardinality: "**" | "*1" | "*?" | "*+" | "1*" | "11" | "1?" | "1+" | "?*" | "?1" | "??" | "?+" | "+*" | "+1" | "+?" | "++";
139
+ subject: string;
140
+ } & ((import("../raw/RelationDefinitions").BuildObj & {
141
+ final: true;
142
+ constraints: import("../..").AttributeConstraint[];
143
+ options: import("../raw/RelationDefinitions").AttributeOptions;
144
+ }) | {
145
+ object: string;
146
+ final: false;
147
+ constraints: import("../..").RelationConstraint[];
148
+ options: import("../raw/RelationDefinitions").RelationOptions;
149
+ })>> | undefined;
20
150
  /**
21
151
  * Partial raw relation definition schema type.
152
+ *
153
+ * @category Utils
22
154
  */
23
155
  export type RelationDefinitionMatcher<E extends EntityRawSchemaArray> = Partial<RelationDefinitionRawSchema<E>>;
24
156
  /**
@@ -26,6 +158,8 @@ export type RelationDefinitionMatcher<E extends EntityRawSchemaArray> = Partial<
26
158
  * If it finds a relation definition matching the partial one given, it will return its type.
27
159
  * If it cannot find any relation definition matching, it will return the `never` type
28
160
  * and TypeScript will give compile errors.
161
+ *
162
+ * @category Utils
29
163
  */
30
164
  export type MatchedRelationDefinition<E extends EntityRawSchemaArray, R extends RelationDefinitionRawSchemaArray<EntityRawSchemaArray>, M extends RelationDefinitionMatcher<E>> = R[number] extends infer RDef ? (RDef extends M ? RDef : never) : never;
31
165
  export declare function hasAttributeWithName(entitySchema: EntitySchema, attributeNameSearched: string): boolean;
@@ -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,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAErE;AAED;;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
+ {"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;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9C;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,4PAO1B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAEvE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,gBAAiB,WAAW,KAAG,OAEhE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,gBAAiB,WAAW,KAAG,OAEhE,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAEpE;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,iBAAkB,MAAM,KAAG,OAE7D,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB,iBAAkB,MAAM,KAAG,UAE9D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,iBAAkB,MAAM,KAAG,MAM7D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,iBAAkB,MAAM,KAAG,MAMzD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,iBAAkB,MAAM,QAAQ,UAAU,WAIrE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,iBAClB,YAAY,cACd,MAAM,gBACJ,MAAM,cACR,MAAM;;;;;;;;;;;;;;gBAYnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,oBAAoB,IAAI,OAAO,CAC7E,2BAA2B,CAAC,CAAC,CAAC,CAC/B,CAAC;AAEF;;;;;;;GAOG;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"}