@orchestr-sh/orchestr 1.5.10 → 1.5.11

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 (41) hide show
  1. package/README.md +275 -977
  2. package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts +5 -0
  3. package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts.map +1 -1
  4. package/dist/Database/Ensemble/Concerns/HasDynamicRelations.js.map +1 -1
  5. package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts +20 -0
  6. package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts.map +1 -1
  7. package/dist/Database/Ensemble/Concerns/HasRelationships.js +57 -0
  8. package/dist/Database/Ensemble/Concerns/HasRelationships.js.map +1 -1
  9. package/dist/Database/Ensemble/Relations/MorphMany.d.ts +97 -0
  10. package/dist/Database/Ensemble/Relations/MorphMany.d.ts.map +1 -0
  11. package/dist/Database/Ensemble/Relations/MorphMany.js +189 -0
  12. package/dist/Database/Ensemble/Relations/MorphMany.js.map +1 -0
  13. package/dist/Database/Ensemble/Relations/MorphMap.d.ts +59 -0
  14. package/dist/Database/Ensemble/Relations/MorphMap.d.ts.map +1 -0
  15. package/dist/Database/Ensemble/Relations/MorphMap.js +84 -0
  16. package/dist/Database/Ensemble/Relations/MorphMap.js.map +1 -0
  17. package/dist/Database/Ensemble/Relations/MorphOne.d.ts +93 -0
  18. package/dist/Database/Ensemble/Relations/MorphOne.d.ts.map +1 -0
  19. package/dist/Database/Ensemble/Relations/MorphOne.js +179 -0
  20. package/dist/Database/Ensemble/Relations/MorphOne.js.map +1 -0
  21. package/dist/Database/Ensemble/Relations/MorphTo.d.ts +98 -0
  22. package/dist/Database/Ensemble/Relations/MorphTo.d.ts.map +1 -0
  23. package/dist/Database/Ensemble/Relations/MorphTo.js +214 -0
  24. package/dist/Database/Ensemble/Relations/MorphTo.js.map +1 -0
  25. package/dist/Database/Ensemble/Relations/MorphToMany.d.ts +73 -0
  26. package/dist/Database/Ensemble/Relations/MorphToMany.d.ts.map +1 -0
  27. package/dist/Database/Ensemble/Relations/MorphToMany.js +164 -0
  28. package/dist/Database/Ensemble/Relations/MorphToMany.js.map +1 -0
  29. package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts +29 -0
  30. package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts.map +1 -0
  31. package/dist/Database/Ensemble/Relations/MorphedByMany.js +58 -0
  32. package/dist/Database/Ensemble/Relations/MorphedByMany.js.map +1 -0
  33. package/dist/Database/Ensemble/Relations/index.d.ts +6 -0
  34. package/dist/Database/Ensemble/Relations/index.d.ts.map +1 -1
  35. package/dist/Database/Ensemble/Relations/index.js +14 -1
  36. package/dist/Database/Ensemble/Relations/index.js.map +1 -1
  37. package/dist/index.d.ts +3 -2
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +10 -1
  40. package/dist/index.js.map +1 -1
  41. package/package.json +1 -1
@@ -41,6 +41,11 @@ export type BelongsToAccessor<TRelated extends import('../Ensemble').Ensemble, T
41
41
  export type HasOneAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/HasOne').HasOne<TRelated, TParent>);
42
42
  export type HasManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/HasMany').HasMany<TRelated, TParent>);
43
43
  export type BelongsToManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/BelongsToMany').BelongsToMany<TRelated, TParent>);
44
+ export type MorphOneAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/MorphOne').MorphOne<TRelated, TParent>);
45
+ export type MorphManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/MorphMany').MorphMany<TRelated, TParent>);
46
+ export type MorphToAccessor<TRelated extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/MorphTo').MorphTo<any>);
47
+ export type MorphToManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/MorphToMany').MorphToMany<TRelated, TParent>);
48
+ export type MorphedByManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/MorphedByMany').MorphedByMany<TRelated, TParent>);
44
49
  /**
45
50
  * Decorator to convert a relationship method into a dynamic property
46
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"HasDynamicRelations.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4GH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAwDrE;AAED;;GAEG;AACH,8BAAsB,wBAAwB;IAC5C;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;CAGzC;AAED;;;GAGG;AACH,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,iBAAiB,CAAC,QAAQ,SAAS,OAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,SAAS,OAAO,aAAa,EAAE,QAAQ,IAC3H,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,wBAAwB,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9G,MAAM,MAAM,cAAc,CAAC,QAAQ,SAAS,OAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,SAAS,OAAO,aAAa,EAAE,QAAQ,IACxH,QAAQ,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,qBAAqB,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAExG,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,OAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,SAAS,OAAO,aAAa,EAAE,QAAQ,IACzH,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,sBAAsB,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvG,MAAM,MAAM,qBAAqB,CAAC,QAAQ,SAAS,OAAO,aAAa,EAAE,QAAQ,EAAE,OAAO,SAAS,OAAO,aAAa,EAAE,QAAQ,IAC/H,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,OAAO,4BAA4B,EAAE,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,OA2ExD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,GACxB,IAAI,CA0BN"}
1
+ {"version":3,"file":"HasDynamicRelations.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HasDynamicRelations.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HasDynamicRelations.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,26 @@ export declare abstract class HasRelationshipsMixin {
37
37
  * Define a many-to-many relationship
38
38
  */
39
39
  protected belongsToMany<TRelated extends Ensemble>(related: new () => TRelated, table?: string, foreignPivotKey?: string, relatedPivotKey?: string, parentKey?: string, relatedKey?: string, relation?: string): BelongsToMany<TRelated, any>;
40
+ /**
41
+ * Define a polymorphic one-to-one relationship
42
+ */
43
+ protected morphOne<TRelated extends Ensemble>(related: new () => TRelated, name: string, type?: string | null, id?: string | null, localKey?: string): import('../Relations/MorphOne').MorphOne<TRelated, any>;
44
+ /**
45
+ * Define a polymorphic one-to-many relationship
46
+ */
47
+ protected morphMany<TRelated extends Ensemble>(related: new () => TRelated, name: string, type?: string | null, id?: string | null, localKey?: string): import('../Relations/MorphMany').MorphMany<TRelated, any>;
48
+ /**
49
+ * Define a polymorphic inverse relationship
50
+ */
51
+ protected morphTo(name: string, type?: string, id?: string, ownerKey?: string): import('../Relations/MorphTo').MorphTo<any>;
52
+ /**
53
+ * Define a polymorphic many-to-many relationship
54
+ */
55
+ protected morphToMany<TRelated extends Ensemble>(related: new () => TRelated, name: string, table?: string, foreignPivotKey?: string, relatedPivotKey?: string, parentKey?: string, relatedKey?: string, inverse?: boolean): import('../Relations/MorphToMany').MorphToMany<TRelated, any>;
56
+ /**
57
+ * Define the inverse of a polymorphic many-to-many relationship
58
+ */
59
+ protected morphedByMany<TRelated extends Ensemble>(related: new () => TRelated, name: string, table?: string, foreignPivotKey?: string, relatedPivotKey?: string, parentKey?: string, relatedKey?: string): import('../Relations/MorphedByMany').MorphedByMany<TRelated, any>;
40
60
  /**
41
61
  * Get the joining table name for a many-to-many relation
42
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HasRelationships.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HasRelationships.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,63 @@ class HasRelationshipsMixin {
68
68
  const finalRelatedKey = relatedKey || instance.getKeyName();
69
69
  return new BelongsToMany_1.BelongsToMany(instance.newQuery(), this, table, foreignPivotKey, relatedPivotKey, finalParentKey, finalRelatedKey, relation || '');
70
70
  }
71
+ /**
72
+ * Define a polymorphic one-to-one relationship
73
+ */
74
+ morphOne(related, name, type, id, localKey) {
75
+ const instance = new related();
76
+ const { MorphOne } = require('../Relations/MorphOne');
77
+ const finalLocalKey = localKey || this.getKeyName();
78
+ return new MorphOne(instance.newQuery(), this, name, type, id, finalLocalKey);
79
+ }
80
+ /**
81
+ * Define a polymorphic one-to-many relationship
82
+ */
83
+ morphMany(related, name, type, id, localKey) {
84
+ const instance = new related();
85
+ const { MorphMany } = require('../Relations/MorphMany');
86
+ const finalLocalKey = localKey || this.getKeyName();
87
+ return new MorphMany(instance.newQuery(), this, name, type, id, finalLocalKey);
88
+ }
89
+ /**
90
+ * Define a polymorphic inverse relationship
91
+ */
92
+ morphTo(name, type, id, ownerKey) {
93
+ const { MorphTo } = require('../Relations/MorphTo');
94
+ const finalType = type || `${name}_type`;
95
+ const finalId = id || `${name}_id`;
96
+ const finalOwnerKey = ownerKey || 'id';
97
+ // MorphTo needs special handling - creates query builder dynamically
98
+ return new MorphTo(this.newQuery(), this, finalId, finalType, finalOwnerKey, name);
99
+ }
100
+ /**
101
+ * Define a polymorphic many-to-many relationship
102
+ */
103
+ morphToMany(related, name, table, foreignPivotKey, relatedPivotKey, parentKey, relatedKey, inverse = false) {
104
+ const instance = new related();
105
+ const { MorphToMany } = require('../Relations/MorphToMany');
106
+ const finalTable = table || `${name}s`;
107
+ const finalForeignPivotKey = foreignPivotKey || `${name}_id`;
108
+ const finalRelatedPivotKey = relatedPivotKey || instance.getForeignKey();
109
+ const morphType = `${name}_type`;
110
+ const finalParentKey = parentKey || this.getKeyName();
111
+ const finalRelatedKey = relatedKey || instance.getKeyName();
112
+ return new MorphToMany(instance.newQuery(), this, name, finalTable, finalForeignPivotKey, finalRelatedPivotKey, morphType, finalParentKey, finalRelatedKey, '', inverse);
113
+ }
114
+ /**
115
+ * Define the inverse of a polymorphic many-to-many relationship
116
+ */
117
+ morphedByMany(related, name, table, foreignPivotKey, relatedPivotKey, parentKey, relatedKey) {
118
+ const instance = new related();
119
+ const { MorphedByMany } = require('../Relations/MorphedByMany');
120
+ const finalTable = table || `${name}s`;
121
+ const finalForeignPivotKey = foreignPivotKey || `${name}_id`;
122
+ const finalRelatedPivotKey = relatedPivotKey || instance.getForeignKey();
123
+ const morphType = `${name}_type`;
124
+ const finalParentKey = parentKey || this.getKeyName();
125
+ const finalRelatedKey = relatedKey || instance.getKeyName();
126
+ return new MorphedByMany(instance.newQuery(), this, name, finalTable, finalForeignPivotKey, finalRelatedPivotKey, morphType, finalParentKey, finalRelatedKey, '');
127
+ }
71
128
  /**
72
129
  * Get the joining table name for a many-to-many relation
73
130
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HasRelationships.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HasRelationships.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * MorphMany Relationship
3
+ *
4
+ * Represents a polymorphic one-to-many relationship
5
+ * Example: Post has many Comments (where Comment belongs to many types)
6
+ */
7
+ import { Ensemble } from '../Ensemble';
8
+ import { EnsembleBuilder } from '../EnsembleBuilder';
9
+ import { EnsembleCollection } from '../EnsembleCollection';
10
+ import { Relation } from './Relation';
11
+ export declare class MorphMany<TRelated extends Ensemble, TParent extends Ensemble> extends Relation<TRelated, TParent> {
12
+ /**
13
+ * The foreign key of the parent model (e.g., 'commentable_id')
14
+ */
15
+ protected foreignKey: string;
16
+ /**
17
+ * The morph type column (e.g., 'commentable_type')
18
+ */
19
+ protected morphType: string;
20
+ /**
21
+ * The local key of the parent model
22
+ */
23
+ protected localKey: string;
24
+ /**
25
+ * The morph class name or alias
26
+ */
27
+ protected morphClass: string;
28
+ /**
29
+ * Create a new morph many relationship instance
30
+ */
31
+ constructor(query: EnsembleBuilder<TRelated>, parent: TParent, name: string, type: string | null, id: string | null, localKey: string);
32
+ /**
33
+ * Set the base constraints on the relation query
34
+ */
35
+ addConstraints(): void;
36
+ /**
37
+ * Set the constraints for an eager load of the relation
38
+ */
39
+ addEagerConstraints(models: TParent[]): void;
40
+ /**
41
+ * Initialize the relation on a set of models
42
+ */
43
+ initRelation(models: TParent[], relation: string): TParent[];
44
+ /**
45
+ * Match the eagerly loaded results to their parents
46
+ */
47
+ match(models: TParent[], results: EnsembleCollection<TRelated>, relation: string): TParent[];
48
+ /**
49
+ * Build model dictionary keyed by the relation's foreign key
50
+ */
51
+ protected buildDictionary(results: EnsembleCollection<TRelated>): Record<any, TRelated[]>;
52
+ /**
53
+ * Get the results of the relationship
54
+ */
55
+ getResults(): Promise<TRelated[]>;
56
+ /**
57
+ * Get the key value of the parent's local key
58
+ */
59
+ protected getParentKey(): any;
60
+ /**
61
+ * Get the morph class for the parent
62
+ */
63
+ protected getMorphClass(): string;
64
+ /**
65
+ * Get the foreign key for the relationship
66
+ */
67
+ getForeignKeyName(): string;
68
+ /**
69
+ * Get the morph type for the relationship
70
+ */
71
+ getMorphType(): string;
72
+ /**
73
+ * Get the local key for the relationship
74
+ */
75
+ getLocalKeyName(): string;
76
+ /**
77
+ * Make a new related instance
78
+ */
79
+ make(attributes?: Record<string, any>): TRelated;
80
+ /**
81
+ * Create a new instance of the related model
82
+ */
83
+ create(attributes?: Record<string, any>): Promise<TRelated>;
84
+ /**
85
+ * Create multiple related instances
86
+ */
87
+ createMany(records: Record<string, any>[]): Promise<TRelated[]>;
88
+ /**
89
+ * Save a model and set the foreign key and morph type
90
+ */
91
+ save(model: TRelated): Promise<TRelated>;
92
+ /**
93
+ * Update all related models
94
+ */
95
+ update(attributes: Record<string, any>): Promise<number>;
96
+ }
97
+ //# sourceMappingURL=MorphMany.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MorphMany.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/MorphMany.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,qBAAa,SAAS,CAAC,QAAQ,SAAS,QAAQ,EAAE,OAAO,SAAS,QAAQ,CAAE,SAAQ,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC7G;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAE7B;;OAEG;gBAED,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,EAChC,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,QAAQ,EAAE,MAAM;IAYlB;;OAEG;IACH,cAAc,IAAI,IAAI;IAatB;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI;IAO5C;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE;IAQ5D;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE;IAc5F;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;IAiBzF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IASvC;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,GAAG;IAI7B;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM;IAIjC;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,IAAI,CAAC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,QAAQ;IAIpD;;OAEG;IACG,MAAM,CAAC,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYrE;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUrE;;OAEG;IACG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAS9C;;OAEG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAQ/D"}
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ /**
3
+ * MorphMany Relationship
4
+ *
5
+ * Represents a polymorphic one-to-many relationship
6
+ * Example: Post has many Comments (where Comment belongs to many types)
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MorphMany = void 0;
10
+ const Relation_1 = require("./Relation");
11
+ const MorphMap_1 = require("./MorphMap");
12
+ class MorphMany extends Relation_1.Relation {
13
+ /**
14
+ * The foreign key of the parent model (e.g., 'commentable_id')
15
+ */
16
+ foreignKey;
17
+ /**
18
+ * The morph type column (e.g., 'commentable_type')
19
+ */
20
+ morphType;
21
+ /**
22
+ * The local key of the parent model
23
+ */
24
+ localKey;
25
+ /**
26
+ * The morph class name or alias
27
+ */
28
+ morphClass;
29
+ /**
30
+ * Create a new morph many relationship instance
31
+ */
32
+ constructor(query, parent, name, type, id, localKey) {
33
+ super(query, parent);
34
+ this.morphType = type || `${name}_type`;
35
+ this.foreignKey = id || `${name}_id`;
36
+ this.localKey = localKey;
37
+ this.morphClass = this.getMorphClass();
38
+ this.initializeRelation();
39
+ }
40
+ /**
41
+ * Set the base constraints on the relation query
42
+ */
43
+ addConstraints() {
44
+ if (Relation_1.Relation['constraints']) {
45
+ const parentKey = this.getParentKey();
46
+ // Only add constraints if parent key exists
47
+ if (parentKey !== null && parentKey !== undefined) {
48
+ this.query
49
+ .where(this.foreignKey, '=', parentKey)
50
+ .where(this.morphType, '=', this.morphClass);
51
+ }
52
+ }
53
+ }
54
+ /**
55
+ * Set the constraints for an eager load of the relation
56
+ */
57
+ addEagerConstraints(models) {
58
+ const keys = this.getKeys(models, this.localKey);
59
+ this.query
60
+ .whereIn(this.foreignKey, keys)
61
+ .where(this.morphType, '=', this.morphClass);
62
+ }
63
+ /**
64
+ * Initialize the relation on a set of models
65
+ */
66
+ initRelation(models, relation) {
67
+ for (const model of models) {
68
+ model.setRelation(relation, []);
69
+ }
70
+ return models;
71
+ }
72
+ /**
73
+ * Match the eagerly loaded results to their parents
74
+ */
75
+ match(models, results, relation) {
76
+ const dictionary = this.buildDictionary(results);
77
+ for (const model of models) {
78
+ const key = model.getAttribute(this.localKey);
79
+ if (key !== null && key !== undefined && dictionary[key]) {
80
+ model.setRelation(relation, dictionary[key]);
81
+ }
82
+ }
83
+ return models;
84
+ }
85
+ /**
86
+ * Build model dictionary keyed by the relation's foreign key
87
+ */
88
+ buildDictionary(results) {
89
+ const dictionary = {};
90
+ for (const result of results) {
91
+ const key = result.getAttribute(this.foreignKey);
92
+ if (key !== null && key !== undefined) {
93
+ if (!dictionary[key]) {
94
+ dictionary[key] = [];
95
+ }
96
+ dictionary[key].push(result);
97
+ }
98
+ }
99
+ return dictionary;
100
+ }
101
+ /**
102
+ * Get the results of the relationship
103
+ */
104
+ async getResults() {
105
+ if (!this.getParentKey()) {
106
+ return [];
107
+ }
108
+ this.ensureConstraints();
109
+ return this.query.get();
110
+ }
111
+ /**
112
+ * Get the key value of the parent's local key
113
+ */
114
+ getParentKey() {
115
+ return this.parent.getAttribute(this.localKey);
116
+ }
117
+ /**
118
+ * Get the morph class for the parent
119
+ */
120
+ getMorphClass() {
121
+ return MorphMap_1.MorphMap.getMorphedModel(this.parent);
122
+ }
123
+ /**
124
+ * Get the foreign key for the relationship
125
+ */
126
+ getForeignKeyName() {
127
+ return this.foreignKey;
128
+ }
129
+ /**
130
+ * Get the morph type for the relationship
131
+ */
132
+ getMorphType() {
133
+ return this.morphType;
134
+ }
135
+ /**
136
+ * Get the local key for the relationship
137
+ */
138
+ getLocalKeyName() {
139
+ return this.localKey;
140
+ }
141
+ /**
142
+ * Make a new related instance
143
+ */
144
+ make(attributes = {}) {
145
+ return this.related.newInstance(attributes);
146
+ }
147
+ /**
148
+ * Create a new instance of the related model
149
+ */
150
+ async create(attributes = {}) {
151
+ const instance = this.make(attributes);
152
+ // Set both the foreign key and morph type
153
+ instance.setAttribute(this.foreignKey, this.getParentKey());
154
+ instance.setAttribute(this.morphType, this.morphClass);
155
+ await instance.save();
156
+ return instance;
157
+ }
158
+ /**
159
+ * Create multiple related instances
160
+ */
161
+ async createMany(records) {
162
+ const instances = [];
163
+ for (const record of records) {
164
+ instances.push(await this.create(record));
165
+ }
166
+ return instances;
167
+ }
168
+ /**
169
+ * Save a model and set the foreign key and morph type
170
+ */
171
+ async save(model) {
172
+ model.setAttribute(this.foreignKey, this.getParentKey());
173
+ model.setAttribute(this.morphType, this.morphClass);
174
+ await model.save();
175
+ return model;
176
+ }
177
+ /**
178
+ * Update all related models
179
+ */
180
+ async update(attributes) {
181
+ const updatedAtColumn = this.related.getUpdatedAtColumn();
182
+ if (updatedAtColumn) {
183
+ attributes[updatedAtColumn] = new Date();
184
+ }
185
+ return this.query.update(attributes);
186
+ }
187
+ }
188
+ exports.MorphMany = MorphMany;
189
+ //# sourceMappingURL=MorphMany.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MorphMany.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/MorphMany.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAKH,yCAAsC;AACtC,yCAAsC;AAEtC,MAAa,SAA+D,SAAQ,mBAA2B;IAC7G;;OAEG;IACO,UAAU,CAAS;IAE7B;;OAEG;IACO,SAAS,CAAS;IAE5B;;OAEG;IACO,QAAQ,CAAS;IAE3B;;OAEG;IACO,UAAU,CAAS;IAE7B;;OAEG;IACH,YACE,KAAgC,EAChC,MAAe,EACf,IAAY,EACZ,IAAmB,EACnB,EAAiB,EACjB,QAAgB;QAEhB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAErB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,GAAG,IAAI,OAAO,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEvC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,mBAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAEtC,4CAA4C;YAC5C,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClD,IAAI,CAAC,KAAK;qBACP,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC;qBACtC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,MAAiB;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK;aACP,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;aAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAiB,EAAE,QAAgB;QAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAiB,EAAE,OAAqC,EAAE,QAAgB;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEjD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzD,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,eAAe,CAAC,OAAqC;QAC7D,MAAM,UAAU,GAA4B,EAAE,CAAC;QAE/C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEjD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;gBACvB,CAAC;gBACD,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACO,YAAY;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACO,aAAa;QACrB,OAAO,mBAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,aAAkC,EAAE;QACvC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,aAAkC,EAAE;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvC,0CAA0C;QAC1C,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5D,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvD,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEtB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,OAA8B;QAC7C,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,KAAe;QACxB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACzD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,UAA+B;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC1D,IAAI,eAAe,EAAE,CAAC;YACpB,UAAU,CAAC,eAAe,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3C,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;CACF;AA7ND,8BA6NC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * MorphMap
3
+ *
4
+ * Global morph map for polymorphic relations
5
+ * Maps aliases to model classes for cleaner database storage
6
+ */
7
+ import { Ensemble } from '../Ensemble';
8
+ export declare class MorphMap {
9
+ /**
10
+ * Map from alias to model class
11
+ */
12
+ private static map;
13
+ /**
14
+ * Reverse map from model class to alias
15
+ */
16
+ private static reverseMap;
17
+ /**
18
+ * Set the morph map
19
+ *
20
+ * @example
21
+ * MorphMap.set({
22
+ * 'post': Post,
23
+ * 'video': Video,
24
+ * 'comment': Comment
25
+ * });
26
+ */
27
+ static set(map: Record<string, new () => Ensemble>): void;
28
+ /**
29
+ * Get model class from alias
30
+ */
31
+ static getClass(alias: string): (new () => Ensemble) | undefined;
32
+ /**
33
+ * Get alias from model class
34
+ * Returns the class name if no alias is defined
35
+ */
36
+ static getAlias(modelClass: new () => Ensemble): string;
37
+ /**
38
+ * Get the morph type for a model instance
39
+ * This is what gets stored in the database {name}_type column
40
+ */
41
+ static getMorphedModel(instance: Ensemble): string;
42
+ /**
43
+ * Clear the morph map
44
+ */
45
+ static clear(): void;
46
+ /**
47
+ * Check if an alias exists in the map
48
+ */
49
+ static has(alias: string): boolean;
50
+ /**
51
+ * Get all registered aliases
52
+ */
53
+ static aliases(): string[];
54
+ /**
55
+ * Get all registered model classes
56
+ */
57
+ static classes(): (new () => Ensemble)[];
58
+ }
59
+ //# sourceMappingURL=MorphMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MorphMap.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/MorphMap.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,QAAQ;IACnB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,GAAG,CAA8C;IAEhE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU,CAA8C;IAEvE;;;;;;;;;OASG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,QAAQ,CAAC,GAAG,IAAI;IAUzD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,UAAU,QAAQ,CAAC,GAAG,SAAS;IAIhE;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,QAAQ,GAAG,MAAM;IAIvD;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAIlD;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,CAAC,UAAU,QAAQ,CAAC,EAAE;CAGzC"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ /**
3
+ * MorphMap
4
+ *
5
+ * Global morph map for polymorphic relations
6
+ * Maps aliases to model classes for cleaner database storage
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MorphMap = void 0;
10
+ class MorphMap {
11
+ /**
12
+ * Map from alias to model class
13
+ */
14
+ static map = new Map();
15
+ /**
16
+ * Reverse map from model class to alias
17
+ */
18
+ static reverseMap = new Map();
19
+ /**
20
+ * Set the morph map
21
+ *
22
+ * @example
23
+ * MorphMap.set({
24
+ * 'post': Post,
25
+ * 'video': Video,
26
+ * 'comment': Comment
27
+ * });
28
+ */
29
+ static set(map) {
30
+ this.map.clear();
31
+ this.reverseMap.clear();
32
+ for (const [alias, modelClass] of Object.entries(map)) {
33
+ this.map.set(alias, modelClass);
34
+ this.reverseMap.set(modelClass, alias);
35
+ }
36
+ }
37
+ /**
38
+ * Get model class from alias
39
+ */
40
+ static getClass(alias) {
41
+ return this.map.get(alias);
42
+ }
43
+ /**
44
+ * Get alias from model class
45
+ * Returns the class name if no alias is defined
46
+ */
47
+ static getAlias(modelClass) {
48
+ return this.reverseMap.get(modelClass) || modelClass.name;
49
+ }
50
+ /**
51
+ * Get the morph type for a model instance
52
+ * This is what gets stored in the database {name}_type column
53
+ */
54
+ static getMorphedModel(instance) {
55
+ return this.getAlias(instance.constructor);
56
+ }
57
+ /**
58
+ * Clear the morph map
59
+ */
60
+ static clear() {
61
+ this.map.clear();
62
+ this.reverseMap.clear();
63
+ }
64
+ /**
65
+ * Check if an alias exists in the map
66
+ */
67
+ static has(alias) {
68
+ return this.map.has(alias);
69
+ }
70
+ /**
71
+ * Get all registered aliases
72
+ */
73
+ static aliases() {
74
+ return Array.from(this.map.keys());
75
+ }
76
+ /**
77
+ * Get all registered model classes
78
+ */
79
+ static classes() {
80
+ return Array.from(this.map.values());
81
+ }
82
+ }
83
+ exports.MorphMap = MorphMap;
84
+ //# sourceMappingURL=MorphMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MorphMap.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Relations/MorphMap.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,MAAa,QAAQ;IACnB;;OAEG;IACK,MAAM,CAAC,GAAG,GAAoC,IAAI,GAAG,EAAE,CAAC;IAEhE;;OAEG;IACK,MAAM,CAAC,UAAU,GAAoC,IAAI,GAAG,EAAE,CAAC;IAEvE;;;;;;;;;OASG;IACH,MAAM,CAAC,GAAG,CAAC,GAAuC;QAChD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAExB,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,UAA8B;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,QAAkB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAiC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;;AAjFH,4BAkFC"}