@simonbackx/simple-database 1.34.0 → 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/dist/cjs/index.d.ts +10 -0
  2. package/dist/cjs/index.d.ts.map +1 -0
  3. package/dist/cjs/index.js +13 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/package.json +1 -0
  6. package/dist/{src → cjs/src}/classes/Column.d.ts +3 -2
  7. package/dist/cjs/src/classes/Column.d.ts.map +1 -0
  8. package/dist/{src → cjs/src}/classes/Column.js +21 -8
  9. package/dist/cjs/src/classes/Column.js.map +1 -0
  10. package/dist/cjs/src/classes/ColumnType.d.ts +2 -0
  11. package/dist/cjs/src/classes/ColumnType.d.ts.map +1 -0
  12. package/dist/cjs/src/classes/ColumnType.js +3 -0
  13. package/dist/cjs/src/classes/ColumnType.js.map +1 -0
  14. package/dist/{src → cjs/src}/classes/Database.d.ts +2 -1
  15. package/dist/cjs/src/classes/Database.d.ts.map +1 -0
  16. package/dist/{src → cjs/src}/classes/Database.js +19 -20
  17. package/dist/cjs/src/classes/Database.js.map +1 -0
  18. package/dist/cjs/src/classes/DatabaseStoredValue.d.ts +2 -0
  19. package/dist/cjs/src/classes/DatabaseStoredValue.d.ts.map +1 -0
  20. package/dist/cjs/src/classes/DatabaseStoredValue.js +3 -0
  21. package/dist/cjs/src/classes/DatabaseStoredValue.js.map +1 -0
  22. package/dist/{src → cjs/src}/classes/Factory.d.ts +1 -0
  23. package/dist/cjs/src/classes/Factory.d.ts.map +1 -0
  24. package/dist/{src → cjs/src}/classes/Factory.js +8 -7
  25. package/dist/cjs/src/classes/Factory.js.map +1 -0
  26. package/dist/{src → cjs/src}/classes/ManyToManyRelation.d.ts +4 -3
  27. package/dist/cjs/src/classes/ManyToManyRelation.d.ts.map +1 -0
  28. package/dist/{src → cjs/src}/classes/ManyToManyRelation.js +29 -18
  29. package/dist/cjs/src/classes/ManyToManyRelation.js.map +1 -0
  30. package/dist/{src → cjs/src}/classes/ManyToOneRelation.d.ts +2 -1
  31. package/dist/cjs/src/classes/ManyToOneRelation.d.ts.map +1 -0
  32. package/dist/{src → cjs/src}/classes/ManyToOneRelation.js +11 -2
  33. package/dist/cjs/src/classes/ManyToOneRelation.js.map +1 -0
  34. package/dist/{src → cjs/src}/classes/Migration.d.ts +2 -0
  35. package/dist/cjs/src/classes/Migration.d.ts.map +1 -0
  36. package/dist/{src → cjs/src}/classes/Migration.js +64 -17
  37. package/dist/cjs/src/classes/Migration.js.map +1 -0
  38. package/dist/{src → cjs/src}/classes/Model.d.ts +17 -6
  39. package/dist/cjs/src/classes/Model.d.ts.map +1 -0
  40. package/dist/{src → cjs/src}/classes/Model.js +83 -33
  41. package/dist/cjs/src/classes/Model.js.map +1 -0
  42. package/dist/{src → cjs/src}/classes/OneToManyRelation.d.ts +2 -1
  43. package/dist/cjs/src/classes/OneToManyRelation.d.ts.map +1 -0
  44. package/dist/{src → cjs/src}/classes/OneToManyRelation.js +17 -3
  45. package/dist/cjs/src/classes/OneToManyRelation.js.map +1 -0
  46. package/dist/{src → cjs/src}/classes/data/boys.d.ts +1 -0
  47. package/dist/cjs/src/classes/data/boys.d.ts.map +1 -0
  48. package/dist/cjs/src/classes/data/boys.js.map +1 -0
  49. package/dist/cjs/src/classes/data/family-names.d.ts +3 -0
  50. package/dist/cjs/src/classes/data/family-names.d.ts.map +1 -0
  51. package/dist/cjs/src/classes/data/family-names.js.map +1 -0
  52. package/dist/{src → cjs/src}/classes/data/girls.d.ts +1 -0
  53. package/dist/cjs/src/classes/data/girls.d.ts.map +1 -0
  54. package/dist/cjs/src/classes/data/girls.js.map +1 -0
  55. package/dist/cjs/src/classes/data/streets.d.ts +3 -0
  56. package/dist/cjs/src/classes/data/streets.d.ts.map +1 -0
  57. package/dist/cjs/src/classes/data/streets.js.map +1 -0
  58. package/dist/{src → cjs/src}/decorators/Column.d.ts +4 -3
  59. package/dist/cjs/src/decorators/Column.d.ts.map +1 -0
  60. package/dist/{src → cjs/src}/decorators/Column.js +3 -4
  61. package/dist/cjs/src/decorators/Column.js.map +1 -0
  62. package/dist/{src → cjs/src}/models/Migration.d.ts +2 -1
  63. package/dist/cjs/src/models/Migration.d.ts.map +1 -0
  64. package/dist/{src → cjs/src}/models/Migration.js +14 -15
  65. package/dist/cjs/src/models/Migration.js.map +1 -0
  66. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  67. package/dist/esm/index.d.ts +10 -0
  68. package/dist/esm/index.d.ts.map +1 -0
  69. package/dist/esm/index.js +10 -0
  70. package/dist/esm/index.js.map +1 -0
  71. package/dist/esm/src/classes/Column.d.ts +30 -0
  72. package/dist/esm/src/classes/Column.d.ts.map +1 -0
  73. package/dist/esm/src/classes/Column.js +179 -0
  74. package/dist/esm/src/classes/Column.js.map +1 -0
  75. package/dist/esm/src/classes/ColumnType.d.ts +2 -0
  76. package/dist/esm/src/classes/ColumnType.d.ts.map +1 -0
  77. package/dist/esm/src/classes/ColumnType.js +2 -0
  78. package/dist/esm/src/classes/ColumnType.js.map +1 -0
  79. package/dist/esm/src/classes/Database.d.ts +59 -0
  80. package/dist/esm/src/classes/Database.d.ts.map +1 -0
  81. package/dist/esm/src/classes/Database.js +171 -0
  82. package/dist/esm/src/classes/Database.js.map +1 -0
  83. package/dist/esm/src/classes/DatabaseStoredValue.d.ts +2 -0
  84. package/dist/esm/src/classes/DatabaseStoredValue.d.ts.map +1 -0
  85. package/dist/esm/src/classes/DatabaseStoredValue.js +2 -0
  86. package/dist/esm/src/classes/DatabaseStoredValue.js.map +1 -0
  87. package/dist/esm/src/classes/Factory.d.ts +14 -0
  88. package/dist/esm/src/classes/Factory.d.ts.map +1 -0
  89. package/dist/esm/src/classes/Factory.js +51 -0
  90. package/dist/esm/src/classes/Factory.js.map +1 -0
  91. package/dist/esm/src/classes/ManyToManyRelation.d.ts +79 -0
  92. package/dist/esm/src/classes/ManyToManyRelation.d.ts.map +1 -0
  93. package/dist/esm/src/classes/ManyToManyRelation.js +254 -0
  94. package/dist/esm/src/classes/ManyToManyRelation.js.map +1 -0
  95. package/dist/esm/src/classes/ManyToOneRelation.d.ts +22 -0
  96. package/dist/esm/src/classes/ManyToOneRelation.d.ts.map +1 -0
  97. package/dist/esm/src/classes/ManyToOneRelation.js +47 -0
  98. package/dist/esm/src/classes/ManyToOneRelation.js.map +1 -0
  99. package/dist/esm/src/classes/Migration.d.ts +14 -0
  100. package/dist/esm/src/classes/Migration.d.ts.map +1 -0
  101. package/dist/esm/src/classes/Migration.js +168 -0
  102. package/dist/esm/src/classes/Migration.js.map +1 -0
  103. package/dist/esm/src/classes/Model.d.ts +159 -0
  104. package/dist/esm/src/classes/Model.d.ts.map +1 -0
  105. package/dist/esm/src/classes/Model.js +635 -0
  106. package/dist/esm/src/classes/Model.js.map +1 -0
  107. package/dist/esm/src/classes/OneToManyRelation.d.ts +38 -0
  108. package/dist/esm/src/classes/OneToManyRelation.d.ts.map +1 -0
  109. package/dist/esm/src/classes/OneToManyRelation.js +75 -0
  110. package/dist/esm/src/classes/OneToManyRelation.js.map +1 -0
  111. package/dist/{src/classes/data/family-names.d.ts → esm/src/classes/data/boys.d.ts} +1 -0
  112. package/dist/esm/src/classes/data/boys.d.ts.map +1 -0
  113. package/dist/esm/src/classes/data/boys.js +1003 -0
  114. package/dist/{src → esm/src}/classes/data/boys.js.map +1 -1
  115. package/dist/esm/src/classes/data/family-names.d.ts +3 -0
  116. package/dist/esm/src/classes/data/family-names.d.ts.map +1 -0
  117. package/dist/esm/src/classes/data/family-names.js +1003 -0
  118. package/dist/{src → esm/src}/classes/data/family-names.js.map +1 -1
  119. package/dist/{src/classes/data/streets.d.ts → esm/src/classes/data/girls.d.ts} +1 -0
  120. package/dist/esm/src/classes/data/girls.d.ts.map +1 -0
  121. package/dist/esm/src/classes/data/girls.js +1002 -0
  122. package/dist/{src → esm/src}/classes/data/girls.js.map +1 -1
  123. package/dist/esm/src/classes/data/streets.d.ts +3 -0
  124. package/dist/esm/src/classes/data/streets.d.ts.map +1 -0
  125. package/dist/esm/src/classes/data/streets.js +294 -0
  126. package/dist/{src → esm/src}/classes/data/streets.js.map +1 -1
  127. package/dist/esm/src/decorators/Column.d.ts +18 -0
  128. package/dist/esm/src/decorators/Column.d.ts.map +1 -0
  129. package/dist/esm/src/decorators/Column.js +36 -0
  130. package/dist/esm/src/decorators/Column.js.map +1 -0
  131. package/dist/esm/src/models/Migration.d.ts +11 -0
  132. package/dist/esm/src/models/Migration.d.ts.map +1 -0
  133. package/dist/esm/src/models/Migration.js +48 -0
  134. package/dist/esm/src/models/Migration.js.map +1 -0
  135. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  136. package/package.json +52 -36
  137. package/dist/index.d.ts +0 -9
  138. package/dist/index.js +0 -13
  139. package/dist/index.js.map +0 -1
  140. package/dist/migrations.d.ts +0 -1
  141. package/dist/migrations.js +0 -18
  142. package/dist/migrations.js.map +0 -1
  143. package/dist/src/classes/Column.js.map +0 -1
  144. package/dist/src/classes/Database.js.map +0 -1
  145. package/dist/src/classes/Factory.js.map +0 -1
  146. package/dist/src/classes/ManyToManyRelation.js.map +0 -1
  147. package/dist/src/classes/ManyToOneRelation.js.map +0 -1
  148. package/dist/src/classes/Migration.js.map +0 -1
  149. package/dist/src/classes/Model.js.map +0 -1
  150. package/dist/src/classes/Model.test.d.ts +0 -1
  151. package/dist/src/classes/Model.test.js +0 -629
  152. package/dist/src/classes/Model.test.js.map +0 -1
  153. package/dist/src/classes/OneToManyRelation.js.map +0 -1
  154. package/dist/src/decorators/Column.js.map +0 -1
  155. package/dist/src/models/Migration.js.map +0 -1
  156. package/dist/tests/jest.global.setup.d.ts +0 -3
  157. package/dist/tests/jest.global.setup.js +0 -12
  158. package/dist/tests/jest.global.setup.js.map +0 -1
  159. package/dist/tests/jest.setup.d.ts +0 -1
  160. package/dist/tests/jest.setup.js +0 -8
  161. package/dist/tests/jest.setup.js.map +0 -1
  162. /package/dist/{src → cjs/src}/classes/data/boys.js +0 -0
  163. /package/dist/{src → cjs/src}/classes/data/family-names.js +0 -0
  164. /package/dist/{src → cjs/src}/classes/data/girls.js +0 -0
  165. /package/dist/{src → cjs/src}/classes/data/streets.js +0 -0
  166. /package/{dist/src/migrations → migrations}/000000000-setup-migrations.sql +0 -0
@@ -0,0 +1,159 @@
1
+ import { Column } from './Column.js';
2
+ import { type DatabaseStoredValue } from './DatabaseStoredValue.js';
3
+ import { type ManyToManyRelation } from './ManyToManyRelation.js';
4
+ import { type ManyToOneRelation } from './ManyToOneRelation.js';
5
+ import { type OneToManyRelation } from './OneToManyRelation.js';
6
+ type SQLWhere = {
7
+ sign: string;
8
+ value: string | Date | number | null | (string | null)[] | (number | null)[];
9
+ mode?: string;
10
+ };
11
+ type SQLWhereQuery = {
12
+ [key: string]: string | Date | number | null | SQLWhere | SQLWhere[];
13
+ };
14
+ type Listener<Value> = (value: Value) => Promise<void> | void;
15
+ /**
16
+ * Controls the fetching and decrypting of members
17
+ */
18
+ export declare class ModelEventBus<Value> {
19
+ protected listeners: Map<any, {
20
+ listener: Listener<Value>;
21
+ }[]>;
22
+ addListener(owner: any, listener: Listener<Value>): void;
23
+ removeListener(owner: any): void;
24
+ sendEvent(value: Value): Promise<void[]>;
25
+ }
26
+ export type ModelEventType = 'created' | 'updated' | 'deleted';
27
+ export type ModelEvent<M extends Model = Model> = {
28
+ type: 'created';
29
+ model: M;
30
+ } | {
31
+ type: 'updated';
32
+ model: M;
33
+ changedFields: Record<string, DatabaseStoredValue>;
34
+ originalFields: Record<string, DatabaseStoredValue>;
35
+ /**
36
+ * Use this method to compare changes
37
+ */
38
+ getOldModel(): M;
39
+ } | {
40
+ type: 'deleted';
41
+ model: M;
42
+ };
43
+ export declare class Model {
44
+ static primary: Column;
45
+ static modelEventBus: ModelEventBus<ModelEvent<Model>>;
46
+ /**
47
+ * Properties that are stored in the table (including foreign keys, but without mapped relations!)
48
+ */
49
+ static columns: Map<string, Column>;
50
+ static debug: boolean;
51
+ static showWarnings: boolean;
52
+ static table: string;
53
+ static relations: ManyToOneRelation<string, Model>[];
54
+ existsInDatabase: boolean;
55
+ savedProperties: Map<string, DatabaseStoredValue | {
56
+ to: () => DatabaseStoredValue;
57
+ from: () => unknown;
58
+ }>;
59
+ /**
60
+ * Sometimes we have skipUpdate properties that still should get saved on specific occasions.
61
+ * E.g. update updatedAt field manually if is the only changed field.
62
+ */
63
+ forceSaveProperties: Set<string>;
64
+ constructor();
65
+ /**
66
+ * Delete the value of a key from memory
67
+ */
68
+ eraseProperty(key: string): void;
69
+ /**
70
+ * Make sure this key will get saved on the next save, even when it is not changed or when it is skipUpdate
71
+ */
72
+ forceSaveProperty(key: string): void;
73
+ /**
74
+ * Mark all properties as changed, so they will get updated on the next save
75
+ */
76
+ markAllChanged(): void;
77
+ /**
78
+ * Returns the default select to select the needed properties of this table
79
+ * @param namespace: optional namespace of this select
80
+ */
81
+ static getDefaultSelect(namespace?: string): string;
82
+ static selectColumnsWithout(namespace?: string, ...exclude: string[]): string;
83
+ /**
84
+ * Set a relation to undefined, marking it as not loaded (so it won't get saved in the next save)
85
+ * @param relation
86
+ */
87
+ unloadRelation<Key extends keyof any, Value extends Model>(this: this & Record<Key, Value>, relation: ManyToOneRelation<Key, any>): this & Record<Key, undefined>;
88
+ /**
89
+ * Set a relation to null, deleting it on the next save (unless unloadRelation is called)
90
+ * @param relation
91
+ */
92
+ unsetRelation<Key extends keyof any, Value extends Model>(this: this & Record<Key, Value>, relation: ManyToOneRelation<Key, any>): this & Record<Key, null>;
93
+ setOptionalRelation<Key extends keyof any, Value extends Model>(relation: ManyToOneRelation<Key, Value>, value: Value | null): this & Record<Key, Value | null>;
94
+ setRelation<Key extends keyof any, Value extends Model, V extends Value>(relation: ManyToOneRelation<Key, Value>, value: V): this & Record<Key, V>;
95
+ /**
96
+ * Set a many relation. Note that this doesn't save the relation! You'll need to use the methods of the relation instead
97
+ */
98
+ setManyRelation<Key extends keyof any, Value extends Model>(relation: ManyToManyRelation<Key, any, Value, any> | OneToManyRelation<Key, any, Value>, value: Value[]): this & Record<Key, Value[]>;
99
+ /**
100
+ * Set a many relation. Note that this doesn't save the relation! You'll need to use the methods of the relation instead
101
+ */
102
+ getManyRelation<Key extends keyof any, Value extends Model>(relation: ManyToManyRelation<Key, any, Value, any> | OneToManyRelation<Key, any, Value>): Value[] | null;
103
+ /**
104
+ * Load the returned properties from a DB response row into the model
105
+ * If the row's primary key is null, undefined is returned
106
+ */
107
+ static fromRow<T extends typeof Model>(this: T, row: Record<string, DatabaseStoredValue>): InstanceType<T> | undefined;
108
+ static fromRows<T extends typeof Model>(this: T, rows: Record<string, Record<string, DatabaseStoredValue>>[], namespace: string): InstanceType<T>[];
109
+ markSaved(fields?: Record<string, DatabaseStoredValue>, options?: {
110
+ fromMySQL?: boolean;
111
+ }): void;
112
+ copyFrom<T extends Model>(this: T, from: T): void;
113
+ get static(): typeof Model;
114
+ getPrimaryKey(): number | string | null;
115
+ /**
116
+ * Get a model by its primary key
117
+ * @param id primary key
118
+ */
119
+ static getByID<T extends typeof Model>(this: T, id: number | string): Promise<InstanceType<T> | undefined>;
120
+ /**
121
+ * Get multiple models by their ID
122
+ * @param ids primary key of the models you want to fetch
123
+ */
124
+ static getByIDs<T extends typeof Model>(this: T, ...ids: (number | string)[]): Promise<InstanceType<T>[]>;
125
+ static buildWhereOperator(key: string, value: SQLWhere): [string, any[]];
126
+ static buildWhereQuery(where: SQLWhereQuery): [string, any[]];
127
+ /**
128
+ * @deprecated Use the new SQL package instead
129
+ * Get multiple models by a simple where
130
+ */
131
+ static where<T extends typeof Model>(this: T, where: SQLWhereQuery, extra?: {
132
+ limit?: number;
133
+ sort?: (string | {
134
+ column: string | SQLWhereQuery;
135
+ direction?: 'ASC' | 'DESC';
136
+ })[];
137
+ select?: string;
138
+ }): Promise<InstanceType<T>[]>;
139
+ /**
140
+ * Get multiple models by a simple where
141
+ */
142
+ static all<T extends typeof Model>(this: T, limit?: number): Promise<InstanceType<T>[]>;
143
+ /**
144
+ * Return an object of all the properties that are changed and their database representation
145
+ */
146
+ getChangedDatabaseProperties(): {
147
+ fields: Record<string, DatabaseStoredValue>;
148
+ skipUpdate: number;
149
+ };
150
+ beforeSave(): void;
151
+ /**
152
+ * Return original value from the database or undefined if not known
153
+ */
154
+ getOriginalValue(key: string): unknown | undefined;
155
+ save(): Promise<boolean>;
156
+ delete(): Promise<void>;
157
+ }
158
+ export {};
159
+ //# sourceMappingURL=Model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../../../src/classes/Model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9H,KAAK,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,EAAE,CAAA;CAAE,CAAC;AAE9F,KAAK,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE9D;;GAEG;AACH,qBAAa,aAAa,CAAC,KAAK;IAC5B,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;KAAE,EAAE,CAAC,CAAa;IAE3E,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;IAUjD,cAAc,CAAC,KAAK,EAAE,GAAG;IAInB,SAAS,CAAC,KAAK,EAAE,KAAK;CAY/B;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,IAAI;IAC9C,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC;CACZ,GAAG;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC;IACT,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACnD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAEpD;;OAEG;IACH,WAAW,IAAI,CAAC,CAAC;CACpB,GAAG;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC;CACZ,CAAC;AAEF,qBAAa,KAAK;IACd,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,aAAa,mCAAmC;IAEvD;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,UAAS;IACrB,MAAM,CAAC,YAAY,UAAS;IAC5B,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAErD,gBAAgB,UAAS;IAEzB,eAAe;YACP,MAAM,mBAAmB;cACvB,MAAM,OAAO;OACjB;IAEN;;;OAGG;IACH,mBAAmB,cAAqB;;IAaxC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM;IASzB;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM;IAI7B;;OAEG;IACH,cAAc;IAId;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,GAAE,MAAmB,GAAG,MAAM;IAI/D,MAAM,CAAC,oBAAoB,CAAC,SAAS,GAAE,MAAmB,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAUzF;;;OAGG;IACH,cAAc,CAAC,GAAG,SAAS,MAAM,GAAG,EAAE,KAAK,SAAS,KAAK,EACrD,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAC/B,QAAQ,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GACtC,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC;IAOhC;;;OAGG;IACH,aAAa,CAAC,GAAG,SAAS,MAAM,GAAG,EAAE,KAAK,SAAS,KAAK,EACpD,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,EAC/B,QAAQ,EAAE,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,GACtC,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;IAK3B,mBAAmB,CAAC,GAAG,SAAS,MAAM,GAAG,EAAE,KAAK,SAAS,KAAK,EAC1D,QAAQ,EAAE,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,EACvC,KAAK,EAAE,KAAK,GAAG,IAAI,GACpB,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC;IAYnC,WAAW,CAAC,GAAG,SAAS,MAAM,GAAG,EAAE,KAAK,SAAS,KAAK,EAAE,CAAC,SAAS,KAAK,EAAE,QAAQ,EAAE,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAUlJ;;OAEG;IACH,eAAe,CAAC,GAAG,SAAS,MAAM,GAAG,EAAE,KAAK,SAAS,KAAK,EACtD,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EACvF,KAAK,EAAE,KAAK,EAAE,GACf,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;IAW9B;;OAEG;IACH,eAAe,CAAC,GAAG,SAAS,MAAM,GAAG,EAAE,KAAK,SAAS,KAAK,EACtD,QAAQ,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GACxF,KAAK,EAAE,GAAG,IAAI;IAKjB;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS;IAqBtH,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE;IAUnJ,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE;IAuDzF,QAAQ,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAiB1C,IAAI,MAAM,IAAI,OAAO,KAAK,CAEzB;IAED,aAAa,IAAI,MAAM,GAAG,MAAM,GAAG,IAAI;IAIvC;;;OAGG;WACU,OAAO,CAAC,CAAC,SAAS,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAYhH;;;OAGG;WACU,QAAQ,CAAC,CAAC,SAAS,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAa/G,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;IAoGxE,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;IAkC7D;;;OAGG;WACU,KAAK,CAAC,CAAC,SAAS,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE;QAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG;YAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;YAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;SAAE,CAAC,EAAE,CAAC;QACnF,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IA0C9B;;OAEG;WACU,GAAG,CAAC,CAAC,SAAS,OAAO,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAa7F;;OAEG;IACH,4BAA4B,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAiCnG,UAAU;IASV;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAe5C,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAgIxB,MAAM;CA0Bf"}