@monorepolint/rules 0.5.0-alpha.97 → 0.5.0-beta.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 (151) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +47 -25
  3. package/src/__tests__/alphabeticalScripts.spec.ts +7 -6
  4. package/src/__tests__/bannedDependencies.spec.ts +7 -9
  5. package/src/__tests__/consistentDependencies.spec.ts +8 -7
  6. package/src/__tests__/consistentVersions.spec.ts +7 -6
  7. package/src/__tests__/fileContents.spec.ts +45 -18
  8. package/src/__tests__/mustSatisfyPeerDependencies.spec.ts +41 -40
  9. package/src/__tests__/nestedWorkspaces.spec.ts +7 -6
  10. package/src/__tests__/packageEntry.spec.ts +44 -33
  11. package/src/__tests__/packageOrder.spec.ts +24 -15
  12. package/src/__tests__/packageScript.spec.ts +62 -44
  13. package/src/__tests__/requireDependency.spec.ts +10 -9
  14. package/src/__tests__/utils.ts +11 -6
  15. package/src/alphabeticalDependencies.ts +7 -9
  16. package/src/alphabeticalScripts.ts +7 -9
  17. package/src/bannedDependencies.ts +9 -10
  18. package/src/consistentDependencies.ts +9 -7
  19. package/src/consistentVersions.ts +6 -5
  20. package/src/fileContents.ts +17 -14
  21. package/src/index.ts +13 -13
  22. package/src/mustSatisfyPeerDependencies.ts +16 -11
  23. package/src/nestedWorkspaces.ts +10 -9
  24. package/src/packageEntry.ts +7 -6
  25. package/src/packageOrder.ts +12 -7
  26. package/src/packageScript.ts +12 -16
  27. package/src/public/util.ts +1 -0
  28. package/src/requireDependency.ts +9 -7
  29. package/src/standardTsconfig.ts +11 -9
  30. package/src/util/checkAlpha.ts +2 -2
  31. package/src/util/makeRule.ts +29 -0
  32. package/src/util/packageDependencyGraphService.ts +2 -2
  33. package/tsconfig.json +10 -2
  34. package/lib/__tests__/alphabeticalScripts.spec.d.ts +0 -8
  35. package/lib/__tests__/alphabeticalScripts.spec.d.ts.map +0 -1
  36. package/lib/__tests__/alphabeticalScripts.spec.js +0 -61
  37. package/lib/__tests__/alphabeticalScripts.spec.js.map +0 -1
  38. package/lib/__tests__/bannedDependencies.spec.d.ts +0 -2
  39. package/lib/__tests__/bannedDependencies.spec.d.ts.map +0 -1
  40. package/lib/__tests__/bannedDependencies.spec.js +0 -161
  41. package/lib/__tests__/bannedDependencies.spec.js.map +0 -1
  42. package/lib/__tests__/consistentDependencies.spec.d.ts +0 -2
  43. package/lib/__tests__/consistentDependencies.spec.d.ts.map +0 -1
  44. package/lib/__tests__/consistentDependencies.spec.js +0 -115
  45. package/lib/__tests__/consistentDependencies.spec.js.map +0 -1
  46. package/lib/__tests__/consistentVersions.spec.d.ts +0 -8
  47. package/lib/__tests__/consistentVersions.spec.d.ts.map +0 -1
  48. package/lib/__tests__/consistentVersions.spec.js +0 -183
  49. package/lib/__tests__/consistentVersions.spec.js.map +0 -1
  50. package/lib/__tests__/fileContents.spec.d.ts +0 -8
  51. package/lib/__tests__/fileContents.spec.d.ts.map +0 -1
  52. package/lib/__tests__/fileContents.spec.js +0 -59
  53. package/lib/__tests__/fileContents.spec.js.map +0 -1
  54. package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts +0 -8
  55. package/lib/__tests__/mustSatisfyPeerDependencies.spec.d.ts.map +0 -1
  56. package/lib/__tests__/mustSatisfyPeerDependencies.spec.js +0 -1063
  57. package/lib/__tests__/mustSatisfyPeerDependencies.spec.js.map +0 -1
  58. package/lib/__tests__/nestedWorkspaces.spec.d.ts +0 -2
  59. package/lib/__tests__/nestedWorkspaces.spec.d.ts.map +0 -1
  60. package/lib/__tests__/nestedWorkspaces.spec.js +0 -124
  61. package/lib/__tests__/nestedWorkspaces.spec.js.map +0 -1
  62. package/lib/__tests__/packageEntry.spec.d.ts +0 -8
  63. package/lib/__tests__/packageEntry.spec.d.ts.map +0 -1
  64. package/lib/__tests__/packageEntry.spec.js +0 -144
  65. package/lib/__tests__/packageEntry.spec.js.map +0 -1
  66. package/lib/__tests__/packageOrder.spec.d.ts +0 -8
  67. package/lib/__tests__/packageOrder.spec.d.ts.map +0 -1
  68. package/lib/__tests__/packageOrder.spec.js +0 -116
  69. package/lib/__tests__/packageOrder.spec.js.map +0 -1
  70. package/lib/__tests__/packageScript.spec.d.ts +0 -8
  71. package/lib/__tests__/packageScript.spec.d.ts.map +0 -1
  72. package/lib/__tests__/packageScript.spec.js +0 -171
  73. package/lib/__tests__/packageScript.spec.js.map +0 -1
  74. package/lib/__tests__/requireDependency.spec.d.ts +0 -2
  75. package/lib/__tests__/requireDependency.spec.d.ts.map +0 -1
  76. package/lib/__tests__/requireDependency.spec.js +0 -123
  77. package/lib/__tests__/requireDependency.spec.js.map +0 -1
  78. package/lib/__tests__/utils.d.ts +0 -76
  79. package/lib/__tests__/utils.d.ts.map +0 -1
  80. package/lib/__tests__/utils.js +0 -83
  81. package/lib/__tests__/utils.js.map +0 -1
  82. package/lib/alphabeticalDependencies.d.ts +0 -12
  83. package/lib/alphabeticalDependencies.d.ts.map +0 -1
  84. package/lib/alphabeticalDependencies.js +0 -22
  85. package/lib/alphabeticalDependencies.js.map +0 -1
  86. package/lib/alphabeticalScripts.d.ts +0 -12
  87. package/lib/alphabeticalScripts.d.ts.map +0 -1
  88. package/lib/alphabeticalScripts.js +0 -20
  89. package/lib/alphabeticalScripts.js.map +0 -1
  90. package/lib/bannedDependencies.d.ts +0 -33
  91. package/lib/bannedDependencies.d.ts.map +0 -1
  92. package/lib/bannedDependencies.js +0 -131
  93. package/lib/bannedDependencies.js.map +0 -1
  94. package/lib/consistentDependencies.d.ts +0 -17
  95. package/lib/consistentDependencies.d.ts.map +0 -1
  96. package/lib/consistentDependencies.js +0 -75
  97. package/lib/consistentDependencies.js.map +0 -1
  98. package/lib/consistentVersions.d.ts +0 -14
  99. package/lib/consistentVersions.d.ts.map +0 -1
  100. package/lib/consistentVersions.js +0 -94
  101. package/lib/consistentVersions.js.map +0 -1
  102. package/lib/fileContents.d.ts +0 -25
  103. package/lib/fileContents.d.ts.map +0 -1
  104. package/lib/fileContents.js +0 -82
  105. package/lib/fileContents.js.map +0 -1
  106. package/lib/index.d.ts +0 -20
  107. package/lib/index.d.ts.map +0 -1
  108. package/lib/index.js +0 -36
  109. package/lib/index.js.map +0 -1
  110. package/lib/mustSatisfyPeerDependencies.d.ts +0 -240
  111. package/lib/mustSatisfyPeerDependencies.d.ts.map +0 -1
  112. package/lib/mustSatisfyPeerDependencies.js +0 -636
  113. package/lib/mustSatisfyPeerDependencies.js.map +0 -1
  114. package/lib/nestedWorkspaces.d.ts +0 -13
  115. package/lib/nestedWorkspaces.d.ts.map +0 -1
  116. package/lib/nestedWorkspaces.js +0 -50
  117. package/lib/nestedWorkspaces.js.map +0 -1
  118. package/lib/packageEntry.d.ts +0 -25
  119. package/lib/packageEntry.d.ts.map +0 -1
  120. package/lib/packageEntry.js +0 -75
  121. package/lib/packageEntry.js.map +0 -1
  122. package/lib/packageOrder.d.ts +0 -12
  123. package/lib/packageOrder.d.ts.map +0 -1
  124. package/lib/packageOrder.js +0 -103
  125. package/lib/packageOrder.js.map +0 -1
  126. package/lib/packageScript.d.ts +0 -25
  127. package/lib/packageScript.d.ts.map +0 -1
  128. package/lib/packageScript.js +0 -90
  129. package/lib/packageScript.js.map +0 -1
  130. package/lib/requireDependency.d.ts +0 -15
  131. package/lib/requireDependency.d.ts.map +0 -1
  132. package/lib/requireDependency.js +0 -65
  133. package/lib/requireDependency.js.map +0 -1
  134. package/lib/standardTsconfig.d.ts +0 -45
  135. package/lib/standardTsconfig.d.ts.map +0 -1
  136. package/lib/standardTsconfig.js +0 -116
  137. package/lib/standardTsconfig.js.map +0 -1
  138. package/lib/util/checkAlpha.d.ts +0 -10
  139. package/lib/util/checkAlpha.d.ts.map +0 -1
  140. package/lib/util/checkAlpha.js +0 -51
  141. package/lib/util/checkAlpha.js.map +0 -1
  142. package/lib/util/makeDirectory.d.ts +0 -8
  143. package/lib/util/makeDirectory.d.ts.map +0 -1
  144. package/lib/util/makeDirectory.js +0 -28
  145. package/lib/util/makeDirectory.js.map +0 -1
  146. package/lib/util/packageDependencyGraphService.d.ts +0 -37
  147. package/lib/util/packageDependencyGraphService.d.ts.map +0 -1
  148. package/lib/util/packageDependencyGraphService.js +0 -70
  149. package/lib/util/packageDependencyGraphService.js.map +0 -1
  150. package/tsconfig.tsbuildinfo +0 -1
  151. /package/{jest.config.js → jest.config.cjs} +0 -0
@@ -1,240 +0,0 @@
1
- /*!
2
- * Copyright 2020 Palantir Technologies, Inc.
3
- *
4
- * Licensed under the MIT license. See LICENSE file in the project root for details.
5
- *
6
- */
7
- import { RuleModule } from "@monorepolint/core";
8
- import * as r from "runtypes";
9
- declare const Options: r.Union<[r.Partial<{
10
- skipUnparseableRanges: r.Literal<undefined>;
11
- dependencyWhitelist: r.Literal<undefined>;
12
- dependencyBlacklist: r.Literal<undefined>;
13
- enforceForDevDependencies: r.Literal<undefined>;
14
- }, false>, r.Intersect<[r.Record<{
15
- skipUnparseableRanges: r.Boolean;
16
- }, false>, r.Partial<{
17
- dependencyWhitelist: r.Literal<undefined>;
18
- dependencyBlacklist: r.Literal<undefined>;
19
- enforceForDevDependencies: r.Literal<undefined>;
20
- }, false>]>, r.Intersect<[r.Record<{
21
- dependencyWhitelist: r.Array<r.String, false>;
22
- }, false>, r.Partial<{
23
- skipUnparseableRanges: r.Literal<undefined>;
24
- dependencyBlacklist: r.Literal<undefined>;
25
- enforceForDevDependencies: r.Literal<undefined>;
26
- }, false>]>, r.Intersect<[r.Record<{
27
- dependencyBlacklist: r.Array<r.String, false>;
28
- }, false>, r.Partial<{
29
- skipUnparseableRanges: r.Literal<undefined>;
30
- dependencyWhitelist: r.Literal<undefined>;
31
- enforceForDevDependencies: r.Literal<undefined>;
32
- }, false>]>, r.Intersect<[r.Record<{
33
- enforceForDevDependencies: r.Boolean;
34
- }, false>, r.Partial<{
35
- skipUnparseableRanges: r.Literal<undefined>;
36
- dependencyWhitelist: r.Literal<undefined>;
37
- dependencyBlacklist: r.Literal<undefined>;
38
- }, false>]>, r.Intersect<[r.Record<{
39
- skipUnparseableRanges: r.Boolean;
40
- dependencyWhitelist: r.Array<r.String, false>;
41
- }, false>, r.Partial<{
42
- dependencyBlacklist: r.Literal<undefined>;
43
- enforceForDevDependencies: r.Literal<undefined>;
44
- }, false>]>, r.Intersect<[r.Record<{
45
- skipUnparseableRanges: r.Boolean;
46
- dependencyBlacklist: r.Array<r.String, false>;
47
- }, false>, r.Partial<{
48
- dependencyWhitelist: r.Literal<undefined>;
49
- enforceForDevDependencies: r.Literal<undefined>;
50
- }, false>]>, r.Intersect<[r.Record<{
51
- skipUnparseableRanges: r.Boolean;
52
- enforceForDevDependencies: r.Boolean;
53
- }, false>, r.Partial<{
54
- dependencyWhitelist: r.Literal<undefined>;
55
- dependencyBlacklist: r.Literal<undefined>;
56
- }, false>]>, r.Intersect<[r.Record<{
57
- dependencyWhitelist: r.Array<r.String, false>;
58
- dependencyBlacklist: r.Array<r.String, false>;
59
- }, false>, r.Partial<{
60
- skipUnparseableRanges: r.Literal<undefined>;
61
- enforceForDevDependencies: r.Literal<undefined>;
62
- }, false>]>, r.Intersect<[r.Record<{
63
- dependencyWhitelist: r.Array<r.String, false>;
64
- enforceForDevDependencies: r.Boolean;
65
- }, false>, r.Partial<{
66
- skipUnparseableRanges: r.Literal<undefined>;
67
- dependencyBlacklist: r.Literal<undefined>;
68
- }, false>]>, r.Intersect<[r.Record<{
69
- dependencyBlacklist: r.Array<r.String, false>;
70
- enforceForDevDependencies: r.Boolean;
71
- }, false>, r.Partial<{
72
- skipUnparseableRanges: r.Literal<undefined>;
73
- dependencyWhitelist: r.Literal<undefined>;
74
- }, false>]>, r.Intersect<[r.Record<{
75
- skipUnparseableRanges: r.Boolean;
76
- dependencyWhitelist: r.Array<r.String, false>;
77
- dependencyBlacklist: r.Array<r.String, false>;
78
- }, false>, r.Partial<{
79
- enforceForDevDependencies: r.Literal<undefined>;
80
- }, false>]>, r.Intersect<[r.Record<{
81
- skipUnparseableRanges: r.Boolean;
82
- dependencyWhitelist: r.Array<r.String, false>;
83
- enforceForDevDependencies: r.Boolean;
84
- }, false>, r.Partial<{
85
- dependencyBlacklist: r.Literal<undefined>;
86
- }, false>]>, r.Intersect<[r.Record<{
87
- skipUnparseableRanges: r.Boolean;
88
- dependencyBlacklist: r.Array<r.String, false>;
89
- enforceForDevDependencies: r.Boolean;
90
- }, false>, r.Partial<{
91
- dependencyWhitelist: r.Literal<undefined>;
92
- }, false>]>, r.Intersect<[r.Record<{
93
- dependencyWhitelist: r.Array<r.String, false>;
94
- dependencyBlacklist: r.Array<r.String, false>;
95
- enforceForDevDependencies: r.Boolean;
96
- }, false>, r.Partial<{
97
- skipUnparseableRanges: r.Literal<undefined>;
98
- }, false>]>, r.Record<{
99
- skipUnparseableRanges: r.Boolean;
100
- dependencyWhitelist: r.Array<r.String, false>;
101
- dependencyBlacklist: r.Array<r.String, false>;
102
- enforceForDevDependencies: r.Boolean;
103
- }, false>]>;
104
- export declare type Options = r.Static<typeof Options>;
105
- export declare const mustSatisfyPeerDependencies: RuleModule<typeof Options>;
106
- /**
107
- * separating on `|`, this regex allows any of the following formats:
108
- * - `*`
109
- * - `x`
110
- *
111
- * More info: https://docs.npmjs.com/about-semantic-versioning
112
- */
113
- export declare const MATCH_ANY_VERSION_RANGE: RegExp;
114
- /**
115
- * This regex allows any of the following formats:
116
- * - `>=15`
117
- * - `>=15.2`
118
- * - `>=15.2.1`
119
- * - `>=15.2.1-rc.0`
120
- * - `>=15.2.1+sha`
121
- * - `>=15.2.1-rc.0+sha`
122
- *
123
- * See https://semver.org/#spec-item-9 for details about semver formatting, and
124
- * https://regex101.com/r/vkijKf/1/ for a sample Regex.
125
- *
126
- * Note that the semver spec does _not_ specify npm range syntax. (`^`, `||`, `~`, `>`, etc.)
127
- *
128
- * More info: https://docs.npmjs.com/about-semantic-versioning
129
- */
130
- export declare const MATCH_GREATER_OR_EQUAL_VERSION_RANGE: RegExp;
131
- /**
132
- * This regex allows any of the following formats:
133
- * - `15`
134
- * - `^15`
135
- * - `15.x`
136
- * - `^15.x`
137
- * - `15.x.x`
138
- * - `^15.x.x`
139
- * - `^15.2`
140
- * - `^15.2.x`
141
- * - `^15.2.1`
142
- * - `^15.2.1-rc.0`
143
- * - `^15.2.1+sha`
144
- * - `^15.2.1-rc.0+sha`
145
- *
146
- * See https://semver.org/#spec-item-9 for details about semver formatting, and
147
- * https://regex101.com/r/vkijKf/1/ for a sample Regex.
148
- *
149
- * Note that the semver spec does _not_ specify npm range syntax. (`^`, `||`, `~`, `>`, etc.)
150
- *
151
- * More info: https://docs.npmjs.com/about-semantic-versioning
152
- */
153
- export declare const MATCH_MAJOR_VERSION_RANGE: RegExp;
154
- /**
155
- * Does not currently accept `<`, `<=`, `>`, `=` or `-` for ranges (e.g. `> 2.5.1 < 3` or `1.0.0 - 1.2.0`),
156
- * though it will accept isolated `>=` ranges (e.g. `>=2.5.1`, but not `^1 || >=2.5.1`)
157
- *
158
- * See https://semver.org/#spec-item-9 for details about semver formatting, and
159
- * https://regex101.com/r/vkijKf/1/ for a sample Regex.
160
- *
161
- * Note that the semver spec does _not_ specify npm range syntax. (`^`, `||`, `~`, `>`, etc.)
162
- *
163
- * More info: https://docs.npmjs.com/about-semantic-versioning
164
- *
165
- * TODO: accept minor pins `~4.2.1`
166
- */
167
- export declare const RANGE_REGEX: RegExp;
168
- /**
169
- * Given two version ranges, find the maximum intersecting range
170
- * of `a` and `b`. `findIntersection(a,b)` should return the same
171
- * result as `findIntersection(b,a)`.
172
- *
173
- * NOTE: This code assumes that input version ranges match `RANGE_REGEX`.
174
- * Additionally, major version ranges must not be repeated in union ranges.
175
- * e.g. `^15.0.5 || ^16.0.0` is permitted, but `15.0.5 || 15.0.999` is not.
176
- *
177
- * EXAMPLES:
178
- * findIntersection("15.1.0", "*") => "15.1.0"
179
- * findIntersection("^15", "*") => "^15"
180
- * findIntersection(">=15", "*") => ">=15"
181
- * findIntersection("*", "*") => "*"
182
- * findIntersection("15.1.0", ">=1") => "15.1.0"
183
- * findIntersection("^15", ">=1") => "^15"
184
- * findIntersection(">=15", ">=1") => ">=15"
185
- * findIntersection("15.1.0", "^15") => "15.1.0"
186
- * findIntersection("^15.2", "^15") => "^15.2"
187
- * findIntersection("14", "^15") => undefined
188
- * findIntersection("15.1.0", "^15 || ^16") => "15.1.0"
189
- * findIntersection("^15.2", "^15 || ^16") => "^15.2"
190
- * findIntersection("14", "^15 || ^16") => undefined
191
- * findIntersection("^15.2 || ^16", "^15 || ^16.4") => "^15.2 || ^16.4"
192
- *
193
- * @param a version range that matches `RANGE_REGEX`
194
- * @param b version range that matches `RANGE_REGEX`
195
- * @returns the maximum intersecting `ValidRange`, or `undefined` if there is no intersection
196
- */
197
- export declare function findIntersection(a: ValidRange, b: ValidRange): ValidRange | undefined;
198
- /**
199
- * Given two version ranges, determine whether `a` satisfies `b`.
200
- * `a` satisfies `b` iff `a` is a "more strict than or equal to" subset of `b`.
201
- * For example, both `^15` and `^15.2.0` satisfy `^15`, but `^15 || ^16` does not.
202
- *
203
- * NOTE: This code assumes that input version ranges match `RANGE_REGEX`.
204
- * Additionally, major version ranges must not be repeated in union ranges.
205
- * e.g. `^15.0.5 || ^16.0.0` is permitted, but `15.0.5 || 15.0.999` is not.
206
- *
207
- * To determine that `a` is "more strict than or equal to" `b`, we first
208
- * split the set of all versions or ranges that are potentially unioned in `a` and `b`.
209
- * For example, if `a` is `15.0.5`, we produce the set `[ "15.0.5" ]`,
210
- * and if `b` is `^15 || ^16`, we produce the set `[ "^15", "^16" ]`.
211
- * `a` is "more strict than or equal to" `b` iff each entry in `a`'s set
212
- * satisfies (equal to or greater than) some entry in `b`.
213
- *
214
- * The following version ranges satisfy `^15.0.5 || ^16.0.0`:
215
- * - `^15.0.5 || ^16.0.0`
216
- * - `^15.0.5 || ^16.x.x`
217
- * - `15.0.5 || 16.0.0`
218
- * - `^15.0.999 || ^16.0.0`
219
- * - `^15.0.5 || ^16.0.999`
220
- * - `^15.0.999`
221
- * - `^16.0.0`
222
- * - `16.0.0`
223
- * The following version ranges do not satisfy `^15.0.5 || ^16.0.0`:
224
- * - `^15.0.0 || ^16.0.0`
225
- * - `^15.0.5 || ^17.0.0`
226
- * - `^14.0.0 || ^15.0.5 || ^16.0.0`
227
- * - `^17.0.0`
228
- * - `17.0.0`
229
- *
230
- * @param a version range that matches `RANGE_REGEX`
231
- * @param b version range that matches `RANGE_REGEX`
232
- * @returns `true` if `a` is more strict than or equal to `b`, `false` otherwise
233
- */
234
- export declare function doesASatisfyB(a: ValidRange, b: ValidRange): boolean;
235
- export declare type ValidRange = string & {
236
- _type: "valid range";
237
- };
238
- export declare function isValidRange(version: string): version is ValidRange;
239
- export {};
240
- //# sourceMappingURL=mustSatisfyPeerDependencies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mustSatisfyPeerDependencies.d.ts","sourceRoot":"","sources":["../src/mustSatisfyPeerDependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAuKZ,CAAC;AAEF,oBAAY,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC;AAE/C,eAAO,MAAM,2BAA2B,EAAE,UAAU,CAAC,OAAO,OAAO,CAGlE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oCAAoC,QAA4K,CAAC;AAE9N;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,yBAAyB,QAA0N,CAAC;AAEjQ;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,QAAyiB,CAAC;AAyNlkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAoFrF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAmEnE;AAoBD,oBAAY,UAAU,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAC3D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,UAAU,CAEnE"}