@api-client/core 0.14.9 → 0.15.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 (110) hide show
  1. package/RELEASE.md +163 -0
  2. package/RELEASE_SETUP.md +235 -0
  3. package/build/src/events/authorization/AuthorizationEvents.d.ts +1 -1
  4. package/build/src/events/authorization/AuthorizationEvents.d.ts.map +1 -1
  5. package/build/src/events/authorization/AuthorizationEvents.js +1 -1
  6. package/build/src/events/authorization/AuthorizationEvents.js.map +1 -1
  7. package/build/src/events/cookies/CookieEvents.d.ts +1 -1
  8. package/build/src/events/cookies/CookieEvents.d.ts.map +1 -1
  9. package/build/src/events/cookies/CookieEvents.js +1 -1
  10. package/build/src/events/cookies/CookieEvents.js.map +1 -1
  11. package/build/src/modeling/DataDomain.d.ts +45 -3
  12. package/build/src/modeling/DataDomain.d.ts.map +1 -1
  13. package/build/src/modeling/DataDomain.js +81 -3
  14. package/build/src/modeling/DataDomain.js.map +1 -1
  15. package/build/src/modeling/DomainElement.d.ts +7 -0
  16. package/build/src/modeling/DomainElement.d.ts.map +1 -1
  17. package/build/src/modeling/DomainElement.js +14 -0
  18. package/build/src/modeling/DomainElement.js.map +1 -1
  19. package/build/src/modeling/DomainImpactAnalysis.d.ts +22 -119
  20. package/build/src/modeling/DomainImpactAnalysis.d.ts.map +1 -1
  21. package/build/src/modeling/DomainImpactAnalysis.js +49 -155
  22. package/build/src/modeling/DomainImpactAnalysis.js.map +1 -1
  23. package/build/src/modeling/DomainValidation.d.ts +8 -0
  24. package/build/src/modeling/DomainValidation.d.ts.map +1 -0
  25. package/build/src/modeling/DomainValidation.js +99 -0
  26. package/build/src/modeling/DomainValidation.js.map +1 -0
  27. package/build/src/modeling/types.d.ts +70 -0
  28. package/build/src/modeling/types.d.ts.map +1 -1
  29. package/build/src/modeling/types.js.map +1 -1
  30. package/build/src/modeling/validation/entity_validation.js +1 -1
  31. package/build/src/modeling/validation/entity_validation.js.map +1 -1
  32. package/build/src/modeling/validation/rules.d.ts +2 -3
  33. package/build/src/modeling/validation/rules.d.ts.map +1 -1
  34. package/build/src/modeling/validation/rules.js.map +1 -1
  35. package/build/src/modeling/validation/semantic_validation.d.ts +31 -0
  36. package/build/src/modeling/validation/semantic_validation.d.ts.map +1 -0
  37. package/build/src/modeling/validation/semantic_validation.js +126 -0
  38. package/build/src/modeling/validation/semantic_validation.js.map +1 -0
  39. package/build/tsconfig.tsbuildinfo +1 -1
  40. package/data/models/example-generator-api.json +12 -12
  41. package/noop.ts +3 -0
  42. package/package.json +9 -4
  43. package/src/events/authorization/AuthorizationEvents.ts +1 -1
  44. package/src/events/cookies/CookieEvents.ts +1 -1
  45. package/src/modeling/DataDomain.ts +84 -3
  46. package/src/modeling/DomainElement.ts +16 -0
  47. package/src/modeling/DomainImpactAnalysis.ts +54 -239
  48. package/src/modeling/DomainValidation.ts +105 -0
  49. package/src/modeling/types.ts +86 -0
  50. package/src/modeling/validation/entity_validation.ts +1 -1
  51. package/src/modeling/validation/rules.ts +2 -4
  52. package/src/modeling/validation/semantic_validation.ts +145 -0
  53. package/tests/unit/events/EventsTestHelpers.ts +16 -0
  54. package/tests/unit/events/amf.spec.ts +151 -0
  55. package/tests/unit/events/authorization.spec.ts +150 -0
  56. package/tests/unit/events/cookie.spec.ts +274 -0
  57. package/tests/unit/events/encryption.spec.ts +108 -0
  58. package/tests/unit/events/events_polyfills.ts +77 -0
  59. package/tests/unit/events/process.spec.ts +120 -0
  60. package/tests/unit/events/reporting.spec.ts +82 -0
  61. package/tests/unit/events/telemetry.spec.ts +224 -0
  62. package/tests/unit/events/transport.spec.ts +139 -0
  63. package/tests/unit/modeling/data_domain_foreign.spec.ts +244 -0
  64. package/tests/unit/modeling/domain_impact_analysis.spec.ts +0 -110
  65. package/tests/unit/modeling/domain_validation.spec.ts +94 -0
  66. package/tests/unit/modeling/validation/semantic_validation.spec.ts +91 -0
  67. package/tests/unit/models/environment.spec.ts +574 -0
  68. package/tests/unit/models/error_response.spec.ts +183 -0
  69. package/tests/unit/models/headers_array.spec.ts +86 -0
  70. package/tests/unit/models/http-actions/assertion/equal_assertion.spec.ts +103 -0
  71. package/tests/unit/models/http-actions/assertion/greater_than_assertion.spec.ts +91 -0
  72. package/tests/unit/models/http-actions/assertion/includes_assertion.spec.ts +71 -0
  73. package/tests/unit/models/http-actions/assertion/less_than_assertion.spec.ts +91 -0
  74. package/tests/unit/models/http-actions/assertion/matches_assertion.spec.ts +71 -0
  75. package/tests/unit/models/http-actions/assertion/matches_schema_assertion.spec.ts +117 -0
  76. package/tests/unit/models/http-actions/assertion/not_equal_assertion.spec.ts +103 -0
  77. package/tests/unit/models/http-actions/assertion/not_includes_assertion.spec.ts +71 -0
  78. package/tests/unit/models/http-actions/assertion/not_ok_assertion.spec.ts +47 -0
  79. package/tests/unit/models/http-actions/assertion/not_to_be_assertion.spec.ts +72 -0
  80. package/tests/unit/models/http-actions/assertion/ok_assertion.spec.ts +44 -0
  81. package/tests/unit/models/http-actions/assertion/to_be_assertion.spec.ts +71 -0
  82. package/tests/unit/models/http-actions/transformation/as_lower_case_step.spec.ts +47 -0
  83. package/tests/unit/models/http-actions/transformation/as_number_step.spec.ts +47 -0
  84. package/tests/unit/models/http-actions/transformation/as_upper_case_step.spec.ts +47 -0
  85. package/tests/unit/models/http-actions/transformation/round_step.spec.ts +69 -0
  86. package/tests/unit/models/http-actions/transformation/substring_step.spec.ts +85 -0
  87. package/tests/unit/models/http-actions/transformation/trim_step.spec.ts +44 -0
  88. package/tests/unit/models/http_cookie.spec.ts +516 -0
  89. package/tests/unit/models/http_history.spec.ts +443 -0
  90. package/tests/unit/models/project_folder.spec.ts +926 -0
  91. package/tests/unit/models/project_item.spec.ts +137 -0
  92. package/tests/unit/models/project_request.spec.ts +1047 -0
  93. package/tests/unit/models/project_schema.spec.ts +236 -0
  94. package/tests/unit/models/property.spec.ts +625 -0
  95. package/tests/unit/models/provider.spec.ts +102 -0
  96. package/tests/unit/models/request.spec.ts +1206 -0
  97. package/tests/unit/models/request_log.spec.ts +308 -0
  98. package/tests/unit/models/request_time.spec.ts +138 -0
  99. package/tests/unit/models/response_redirect.spec.ts +303 -0
  100. package/tests/unit/models/sent_request.spec.ts +206 -0
  101. package/tests/unit/models/server.spec.ts +195 -0
  102. package/tests/unit/models/thing.spec.ts +154 -0
  103. package/build/oauth-popup.html +0 -33
  104. /package/tests/unit/models/{Certificate.spec.ts → certificate.spec.ts} +0 -0
  105. /package/tests/unit/models/{HostRule.spec.ts → host_rule.spec.ts} +0 -0
  106. /package/tests/unit/models/{HttpProject.spec.ts → http_project.spec.ts} +0 -0
  107. /package/tests/unit/models/{HttpRequest.spec.ts → http_request.spec.ts} +0 -0
  108. /package/tests/unit/models/{HttpResponse.spec.ts → http_response.spec.ts} +0 -0
  109. /package/tests/unit/models/{License.spec.ts → license.spec.ts} +0 -0
  110. /package/tests/unit/models/{Response.spec.ts → response.spec.ts} +0 -0
@@ -1,80 +1,5 @@
1
- import { DomainNamespaceKind, DomainEntityKind, DomainModelKind, DomainPropertyKind, DomainAssociationKind, DataDomainKind } from '../models/kinds.js';
2
1
  import type { DataDomain } from './DataDomain.js';
3
- export type DomainImpactKinds = typeof DomainNamespaceKind | typeof DomainEntityKind | typeof DomainModelKind | typeof DomainPropertyKind | typeof DomainAssociationKind | typeof DataDomainKind;
4
- /**
5
- * The impact analysis report
6
- */
7
- export interface DomainImpactReport {
8
- /**
9
- * The key of the impacted data object.
10
- * This is the key of the object that is being changed.
11
- */
12
- key: string;
13
- /**
14
- * The kind of the impacted data object.
15
- * This is the kind of the object that is being changed.
16
- */
17
- kind: DomainImpactKinds;
18
- /**
19
- * The list of impacted data objects.
20
- */
21
- impact: DomainImpactItem[];
22
- /**
23
- * Whether it is possible to proceed with the change.
24
- * If the change is not possible, the reason will be in the impact list.
25
- */
26
- canProceed: boolean;
27
- }
28
- export interface DomainImpactItem {
29
- /**
30
- * The key of the impacted data object.
31
- */
32
- key: string;
33
- /**
34
- * The kind of the impacted data object.
35
- */
36
- kind: string;
37
- /**
38
- * The type of the impact.
39
- *
40
- * - `delete` - The data object would be deleted.
41
- */
42
- type: 'delete' | 'publish';
43
- /**
44
- * The impact description.
45
- * Explains what will happen to the impacted data object.
46
- * This is a human-readable description of the impact.
47
- * It should be clear and concise.
48
- */
49
- impact: string;
50
- /**
51
- * The severity of the impact.
52
- *
53
- * - `info` - The impact is informational.
54
- * - `warning` - The impact can potentially cause problems but is not a blocker.
55
- * - `error` - The impact is a blocker and needs to be resolved before proceeding.
56
- */
57
- severity: 'info' | 'warning' | 'error';
58
- /**
59
- * Whether the impact is blocking the operation.
60
- * If true, the operation cannot proceed.
61
- * @deprecated Use `severity` instead.
62
- */
63
- blocking: boolean;
64
- /**
65
- * The type of the relationship between two impacted objects.
66
- */
67
- relationship?: 'child';
68
- /**
69
- * The resolution of the conflict if the change will be forced.
70
- */
71
- resolution?: string;
72
- /**
73
- * The optional parent of the impacted data object.
74
- * For example, if the impacted item is a property, this will be the entity it belongs to.
75
- */
76
- parent?: string;
77
- }
2
+ import { DomainImpactItem, DomainImpactKinds, DomainImpactReport } from './types.js';
78
3
  /**
79
4
  * # DomainImpactAnalysis
80
5
  *
@@ -96,13 +21,13 @@ export interface DomainImpactItem {
96
21
  * - `kind`: The kind of the impacted object.
97
22
  * - `type`: The type of impact (currently only `delete`).
98
23
  * - `impact`: A human-readable description of the impact.
99
- * - `blocking`: Whether this impact prevents the deletion from proceeding.
100
24
  * - `relationship`: The type of relationship between the deleted object and the impacted object (e.g., `child`).
101
25
  * - `resolution`: A description of how the impact will be resolved if the deletion is forced.
26
+ * - `severity`: The severity of the impact, which can be `info`, `warning`, or `error`.
102
27
  *
103
28
  * - **Blocking Impacts:** Some impacts are considered "blocking," meaning they prevent the deletion from proceeding
104
29
  * without manual intervention. For example, deleting an entity that is a parent to other entities is
105
- * a blocking impact.
30
+ * a blocking impact. Blocking impacts are indicated by the `severity` property set to `error`.
106
31
  *
107
32
  * - **Non-Blocking Impacts:** Some impacts are informational and do not prevent the deletion. For example, deleting a
108
33
  * property is not a blocking impact.
@@ -134,7 +59,7 @@ export interface DomainImpactItem {
134
59
  * 3. **Interpreting the Report:** Examine the `DomainImpactReport` to understand the consequences of the deletion.
135
60
  * - Check `report.canProceed` to see if the deletion is safe.
136
61
  * - Iterate through `report.impact` to understand each consequence.
137
- * - Pay special attention to `impact.blocking` to identify impacts that require manual resolution.
62
+ * - Pay special attention to `impact.severity` to identify impacts that require manual resolution.
138
63
  *
139
64
  * ```typescript
140
65
  * if (report.canProceed) {
@@ -143,7 +68,7 @@ export interface DomainImpactItem {
143
68
  * console.warn('Deletion cannot proceed due to the following impacts:');
144
69
  * report.impact.forEach((item) => {
145
70
  * console.warn(`- ${item.impact}`);
146
- * if (item.blocking) {
71
+ * if (item.severity === 'error') {
147
72
  * console.warn(` - This impact is blocking.`);
148
73
  * if (item.resolution) {
149
74
  * console.warn(` - Resolution: ${item.resolution}`);
@@ -195,7 +120,7 @@ export interface DomainImpactItem {
195
120
  * "kind": "DomainEntityKind",
196
121
  * "type": "delete",
197
122
  * "impact": "The entity with key Product will be deleted.",
198
- * "blocking": false
123
+ * "severity": "warning"
199
124
  * },
200
125
  * {
201
126
  * "key": "SpecialProduct",
@@ -203,7 +128,7 @@ export interface DomainImpactItem {
203
128
  * "type": "delete",
204
129
  * "impact": "The SpecialProduct entity will become an orphan because it is a child of Product.",
205
130
  * "resolution": "The \"Product\" entity will be removed as the parent of the \"SpecialProduct\" entity.",
206
- * "blocking": true,
131
+ * "severity": "error",
207
132
  * "relationship": "child"
208
133
  * },
209
134
  * {
@@ -212,14 +137,14 @@ export interface DomainImpactItem {
212
137
  * "type": "delete",
213
138
  * "impact": "The association with key category will be broken because it has a target to Product.",
214
139
  * "resolution": "The association with key category will be removed from Product.",
215
- * "blocking": true
140
+ * "severity": "error"
216
141
  * },
217
142
  * {
218
143
  * "key": "name",
219
144
  * "kind": "DomainPropertyKind",
220
145
  * "type": "delete",
221
146
  * "impact": "The property with key name will be deleted.",
222
- * "blocking": false
147
+ * "severity": "info"
223
148
  * }
224
149
  * ],
225
150
  * "canProceed": false
@@ -247,27 +172,6 @@ export interface DomainImpactItem {
247
172
  * - `DomainAssociationKind`
248
173
  * - `DataDomainKind`
249
174
  *
250
- * ### `DomainImpactReport`
251
- *
252
- * - **Description:** The structure of the impact analysis report.
253
- * - **Properties:**
254
- * - `key` (`string`): The key of the object being deleted.
255
- * - `kind` (`DomainImpactKinds`): The kind of the object being deleted.
256
- * - `impact` (`DomainImpactItem[]`): The list of impacts.
257
- * - `canProceed` (`boolean`): Whether the deletion can proceed.
258
- *
259
- * ### `DomainImpactItem`
260
- *
261
- * - **Description:** The structure of an individual impact item.
262
- * - **Properties:**
263
- * - `key` (`string`): The key of the impacted object.
264
- * - `kind` (`string`): The kind of the impacted object.
265
- * - `type` (`'delete'`): The type of impact.
266
- * - `impact` (`string`): The impact description.
267
- * - `blocking` (`boolean`): Whether the impact is blocking.
268
- * - `relationship` (`'child'`, optional): The relationship type.
269
- * - `resolution` (`string`, optional): The resolution description.
270
- *
271
175
  * ## Error Handling
272
176
  *
273
177
  * The `DomainImpactAnalysis` class does not throw errors. Instead, it uses the `DomainImpactReport` to communicate
@@ -277,7 +181,7 @@ export interface DomainImpactItem {
277
181
  *
278
182
  * - **Always Analyze Before Deleting:** Before deleting any data domain element, always use `DomainImpactAnalysis`
279
183
  * to understand the consequences.
280
- * - **Handle Blocking Impacts:** Pay close attention to `blocking` impacts and implement appropriate
184
+ * - **Handle Blocking Impacts:** Pay close attention to `severity = "error"` impacts and implement appropriate
281
185
  * logic to handle them.
282
186
  * - **Inform the User:** If a deletion cannot proceed, inform the user about the blocking impacts and provide
283
187
  * guidance on how to resolve them.
@@ -291,7 +195,6 @@ export interface DomainImpactItem {
291
195
  * about data deletion and prevent unintended consequences.
292
196
  */
293
197
  export declare class DomainImpactAnalysis {
294
- private report;
295
198
  private root;
296
199
  constructor(root: DataDomain);
297
200
  /**
@@ -308,18 +211,18 @@ export declare class DomainImpactAnalysis {
308
211
  */
309
212
  removeForeignNamespaceAnalysis(key: string): DomainImpactReport;
310
213
  /**
311
- * Analyzes the data domain for publishing. Essentially, it performs a validation of the data domain
312
- * and returns a report of the impact.
313
- * @returns The publish impact analysis report.
314
- */
315
- publishAnalysis(): DomainImpactReport;
316
- protected createDeleteImpact(key: string, kind: DomainImpactKinds, rootKey: string): void;
317
- protected deleteNamespaceAnalysis(key: string, rootKey: string): void;
318
- protected deleteModelAnalysis(key: string, rootKey: string): void;
319
- protected deleteEntityAnalysis(key: string, rootKey: string): void;
320
- protected deletePropertyAnalysis(key: string): void;
321
- protected deleteAssociationAnalysis(key: string): void;
214
+ * Computes whether the deletion can proceed based on the impact report.
215
+ * @param impact The list of impacts from the analysis.
216
+ * @returns `true` if the deletion can proceed, `false` otherwise.
217
+ */
218
+ protected computeCanProceed(impact: DomainImpactItem[]): boolean;
219
+ protected createDeleteImpact(key: string, kind: DomainImpactKinds, rootKey: string, impact: DomainImpactItem[]): void;
220
+ protected deleteNamespaceAnalysis(key: string, rootKey: string, impact: DomainImpactItem[]): void;
221
+ protected deleteModelAnalysis(key: string, rootKey: string, impact: DomainImpactItem[]): void;
222
+ protected deleteEntityAnalysis(key: string, rootKey: string, impact: DomainImpactItem[]): void;
223
+ protected deletePropertyAnalysis(key: string, impact: DomainImpactItem[]): void;
224
+ protected deleteAssociationAnalysis(key: string, impact: DomainImpactItem[]): void;
322
225
  protected kindToLabel(kind: DomainImpactKinds): string;
323
- protected createRemoveForeignNamespaceImpact(key: string): void;
226
+ protected createRemoveForeignNamespaceImpact(key: string, impact: DomainImpactItem[]): void;
324
227
  }
325
228
  //# sourceMappingURL=DomainImpactAnalysis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DomainImpactAnalysis.d.ts","sourceRoot":"","sources":["../../../src/modeling/DomainImpactAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAKjD,MAAM,MAAM,iBAAiB,GACzB,OAAO,mBAAmB,GAC1B,OAAO,gBAAgB,GACvB,OAAO,eAAe,GACtB,OAAO,kBAAkB,GACzB,OAAO,qBAAqB,GAC5B,OAAO,cAAc,CAAA;AAEzB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,IAAI,EAAE,iBAAiB,CAAA;IACvB;;OAEG;IACH,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC1B;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAA;IAC1B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;IACtC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsNG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,IAAI,CAAY;gBAEZ,IAAI,EAAE,UAAU;IAU5B;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAWxE;;;;OAIG;IACH,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAW/D;;;;OAIG;IACH,eAAe,IAAI,kBAAkB;IAoErC,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAsBzF,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAqBrE,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAkBjE,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAkFlE,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAenD,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAetD,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM;IAiBtD,SAAS,CAAC,kCAAkC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CA8DhE"}
1
+ {"version":3,"file":"DomainImpactAnalysis.d.ts","sourceRoot":"","sources":["../../../src/modeling/DomainImpactAnalysis.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiMG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,IAAI,CAAY;gBAEZ,IAAI,EAAE,UAAU;IAI5B;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,kBAAkB;IAYxE;;;;OAIG;IACH,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAY/D;;;;OAIG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO;IAIhE,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,gBAAgB,EAAE,GACzB,IAAI;IAsBP,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAoBjG,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAiB7F,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;IA6E9F,SAAS,CAAC,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAc/E,SAAS,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAclF,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM;IAiBtD,SAAS,CAAC,kCAAkC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI;CA0D5F"}