diff options
author | Volpeon <git@volpeon.ink> | 2021-03-17 17:32:14 +0100 |
---|---|---|
committer | Volpeon <git@volpeon.ink> | 2021-03-17 17:32:14 +0100 |
commit | 8f2ce6e4491d630a35dca9612daedf95b4a2954b (patch) | |
tree | 037ca6c1fd40a8c424328ad3392fe6edfaad175c | |
parent | Expose prefix parameter for iro-props-assign-native (diff) | |
download | iro-sass-8f2ce6e4491d630a35dca9612daedf95b4a2954b.tar.gz iro-sass-8f2ce6e4491d630a35dca9612daedf95b4a2954b.tar.bz2 iro-sass-8f2ce6e4491d630a35dca9612daedf95b4a2954b.zip |
Added namespaces and shortcodes for property trees
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | package.json | 6 | ||||
-rw-r--r-- | src/_contexts.scss | 6 | ||||
-rw-r--r-- | src/_props.scss | 182 | ||||
-rw-r--r-- | src/props-shortcodes.scss | 77 | ||||
-rw-r--r-- | test/_props.scss | 166 | ||||
-rw-r--r-- | yarn.lock | 286 |
7 files changed, 475 insertions, 250 deletions
@@ -214,7 +214,7 @@ It's a very simple feature, but it makes managing large sets of structured data | |||
214 | Example usage: | 214 | Example usage: |
215 | 215 | ||
216 | ```scss | 216 | ```scss |
217 | @include iro-props-save(( | 217 | @include iro-props-store(( |
218 | --accent: #f00, | 218 | --accent: #f00, |
219 | --accent-text: #fff, | 219 | --accent-text: #fff, |
220 | 220 | ||
diff --git a/package.json b/package.json index d4eb18b..c93a3b3 100644 --- a/package.json +++ b/package.json | |||
@@ -25,9 +25,9 @@ | |||
25 | }, | 25 | }, |
26 | "homepage": "https://git.vulpes.one/Feuerfuchs/iro-sass", | 26 | "homepage": "https://git.vulpes.one/Feuerfuchs/iro-sass", |
27 | "devDependencies": { | 27 | "devDependencies": { |
28 | "mocha": "^8.2.0", | 28 | "mocha": "^8.3.2", |
29 | "nodemon": "^2.0.6", | 29 | "nodemon": "^2.0.7", |
30 | "sass": "^1.28.0", | 30 | "sass": "^1.32.8", |
31 | "sass-lint": "^1.12.1", | 31 | "sass-lint": "^1.12.1", |
32 | "sass-true": "^6.0.1", | 32 | "sass-true": "^6.0.1", |
33 | "sassdoc": "^2.7.3" | 33 | "sassdoc": "^2.7.3" |
diff --git a/src/_contexts.scss b/src/_contexts.scss index 556fde3..9fe0e8c 100644 --- a/src/_contexts.scss +++ b/src/_contexts.scss | |||
@@ -124,9 +124,9 @@ $iro-context-stacks: (); | |||
124 | @error 'Context stack "#{inspect($stack-id)}" does not exist.'; | 124 | @error 'Context stack "#{inspect($stack-id)}" does not exist.'; |
125 | } | 125 | } |
126 | 126 | ||
127 | $context: $id $data; | 127 | $context: $id $data; |
128 | $context-stack: map-get($iro-context-stacks, $stack-id); | 128 | $context-stack: map-get($iro-context-stacks, $stack-id); |
129 | $context-stack: append($context-stack, $context); | 129 | $context-stack: append($context-stack, $context); |
130 | $iro-context-stacks: map-merge($iro-context-stacks, ($stack-id: $context-stack)) !global; | 130 | $iro-context-stacks: map-merge($iro-context-stacks, ($stack-id: $context-stack)) !global; |
131 | 131 | ||
132 | @return $context; | 132 | @return $context; |
diff --git a/src/_props.scss b/src/_props.scss index 86530f7..86a2215 100644 --- a/src/_props.scss +++ b/src/_props.scss | |||
@@ -41,26 +41,71 @@ $iro-props-default-tree: 'default' !default; | |||
41 | /// | 41 | /// |
42 | $iro-props-trees: (); | 42 | $iro-props-trees: (); |
43 | 43 | ||
44 | /// | ||
45 | /// Default context name used for the namespace context. | ||
46 | /// | ||
47 | /// @type string | ||
48 | /// | ||
49 | $iro-props-namespace-context-id: 'namespace' !default; | ||
50 | |||
51 | /// | ||
52 | /// Declare a namespace, meaning that all variables declared and accessed. | ||
53 | /// | ||
54 | /// @param {string} $name - Name of the namespace | ||
55 | /// | ||
56 | @mixin iro-props-namespace($name) { | ||
57 | $key: '--#{$name}'; | ||
58 | |||
59 | $ns-key: iro-props-get-ns-key(); | ||
60 | |||
61 | @if $ns-key != null { | ||
62 | $key: append($ns-key, $key); | ||
63 | } @else { | ||
64 | $key: ($key); | ||
65 | } | ||
66 | |||
67 | @include iro-context-push($iro-props-namespace-context-id, 'namespace', ( | ||
68 | 'name': $name, | ||
69 | 'key': $key | ||
70 | )); | ||
71 | |||
72 | @content; | ||
73 | |||
74 | @include iro-context-pop($iro-props-namespace-context-id); | ||
75 | } | ||
76 | |||
77 | /// | ||
78 | /// Get the current namespace name. | ||
79 | /// | ||
80 | @function iro-props-ns-name() { | ||
81 | $noop: iro-context-assert-stack-must-contain($iro-props-namespace-context-id, 'namespace'); | ||
82 | |||
83 | $data: nth(iro-context-get($iro-props-namespace-context-id, 'namespace'), 2); | ||
84 | $name: map-get($data, 'name'); | ||
85 | |||
86 | @return $name; | ||
87 | } | ||
88 | |||
44 | /// | 89 | /// |
45 | /// Save a property tree. If a tree with the sane name already exists, the trees | 90 | /// Save a property tree. If a tree with the sane name already exists, the trees |
46 | /// will be merged. | 91 | /// will be merged. |
47 | /// | 92 | /// |
48 | /// @param {map} $map - Map containing properties | 93 | /// @param {map} $map - Map containing properties |
49 | /// @param {string} $tree [$iro-props-default-tree] - ID the map is saved as | 94 | /// @param {string} $tree [$iro-props-default-tree] - ID the map is saved as |
50 | /// @param {bool} $merge [false] - If a tree named $tree already exists and this value is set to true, they will be merged. Otherwise an error will be emitted. | 95 | /// @param {bool} $merge [false] - If a tree named $tree already exists and this value is set to true, they will be merged. Otherwise an error will be emitted. |
51 | /// | 96 | /// |
52 | @mixin iro-props-save($map, $tree: $iro-props-default-tree, $merge: false) { | 97 | @mixin iro-props-store($map, $tree: $iro-props-default-tree, $merge: false, $global: false) { |
53 | $noop: iro-props-save($map, $tree, $merge); | 98 | $noop: iro-props-store($map, $tree, $merge, $global); |
54 | } | 99 | } |
55 | 100 | ||
56 | /// | 101 | /// |
57 | /// Save a property tree. | 102 | /// Save a property tree. |
58 | /// | 103 | /// |
59 | /// @param {map} $map - Map containing properties | 104 | /// @param {map} $map - Map containing properties |
60 | /// @param {string} $tree [$iro-props-default-tree] - ID the map is saved as | 105 | /// @param {string} $tree [$iro-props-default-tree] - ID the map is saved as |
61 | /// @param {bool} $merge [false] - If a tree named $tree already exists and this value is set to true, they will be merged. Otherwise an error will be emitted. | 106 | /// @param {bool} $merge [false] - If a tree named $tree already exists and this value is set to true, they will be merged. Otherwise an error will be emitted. |
62 | /// | 107 | /// |
63 | @function iro-props-save($map, $tree: $iro-props-default-tree, $merge: false) { | 108 | @function iro-props-store($map, $tree: $iro-props-default-tree, $merge: false, $global: false) { |
64 | $prop-map: null; | 109 | $prop-map: null; |
65 | 110 | ||
66 | @if $iro-props-enforce-double-dashes { | 111 | @if $iro-props-enforce-double-dashes { |
@@ -69,6 +114,14 @@ $iro-props-trees: (); | |||
69 | } | 114 | } |
70 | } | 115 | } |
71 | 116 | ||
117 | @if not $global { | ||
118 | $ns-key: iro-props-get-ns-key(); | ||
119 | |||
120 | @if $ns-key != null { | ||
121 | $map: ($ns-key: $map) | ||
122 | } | ||
123 | } | ||
124 | |||
72 | @if map-has-key($iro-props-trees, $tree) { | 125 | @if map-has-key($iro-props-trees, $tree) { |
73 | @if $merge { | 126 | @if $merge { |
74 | $map: iro-map-merge-recursive(map-get($iro-props-trees, $tree), $map); | 127 | $map: iro-map-merge-recursive(map-get($iro-props-trees, $tree), $map); |
@@ -87,18 +140,18 @@ $iro-props-trees: (); | |||
87 | /// | 140 | /// |
88 | /// @param {string} $tree [$iro-props-default-tree] - ID of the tree to be deleted | 141 | /// @param {string} $tree [$iro-props-default-tree] - ID of the tree to be deleted |
89 | /// | 142 | /// |
90 | @mixin iro-props-delete($tree: $iro-props-default-tree) { | 143 | @mixin iro-props-clear($tree: $iro-props-default-tree) { |
91 | $noop: iro-props-delete($tree); | 144 | $noop: iro-props-clear($tree); |
92 | } | 145 | } |
93 | 146 | ||
94 | /// | 147 | /// |
95 | /// Unset a property tree. | 148 | /// Delete a property tree. |
96 | /// | 149 | /// |
97 | /// @param {string} $tree [$iro-props-default-tree] - ID of the tree to be deleted | 150 | /// @param {string} $tree [$iro-props-default-tree] - ID of the tree to be deleted |
98 | /// | 151 | /// |
99 | /// @throw If the property tree does not exist | 152 | /// @throw If the property tree does not exist |
100 | /// | 153 | /// |
101 | @function iro-props-delete($tree: $iro-props-default-tree) { | 154 | @function iro-props-clear($tree: $iro-props-default-tree) { |
102 | @if not map-has-key($iro-props-trees, $tree) { | 155 | @if not map-has-key($iro-props-trees, $tree) { |
103 | @error 'Property tree "#{inspect($tree)}" does not exist.'; | 156 | @error 'Property tree "#{inspect($tree)}" does not exist.'; |
104 | } | 157 | } |
@@ -111,33 +164,50 @@ $iro-props-trees: (); | |||
111 | /// | 164 | /// |
112 | /// Access a whole property or a subsection (i.e. value) of it. | 165 | /// Access a whole property or a subsection (i.e. value) of it. |
113 | /// | 166 | /// |
114 | /// @param {string | list} $key [null] - Key of the property to read. If this is a list of keys, the map will be traversed in that order. | 167 | /// @param {string | list} $key [null] - Key of the property to read. If this is a list of keys, the map will be traversed in that order. |
115 | /// @param {string} $tree [$iro-props-default-tree] - ID of the property tree to use | 168 | /// @param {string} $tree [$iro-props-default-tree] - ID of the property tree to use |
116 | /// @param {any} $default [null] - Default value to return of no match was found. If null, this function will throw an error instead. | 169 | /// @param {any} $default [null] - Default value to return of no match was found. If null, this function will throw an error instead. |
117 | /// | 170 | /// |
118 | /// @return {any} Value assigned to property or $default | 171 | /// @return {any} Value assigned to property or $default |
119 | /// | 172 | /// |
120 | /// @throw If there was no match for $key and $default is null | 173 | /// @throw If there was no match for $key and $default is null |
121 | /// | 174 | /// |
122 | @function iro-props-get($key: (), $tree: $iro-props-default-tree, $default: null) { | 175 | @function iro-props-get($key: (), $tree: $iro-props-default-tree, $default: null, $global: false) { |
123 | @if not map-has-key($iro-props-trees, $tree) { | 176 | @if not map-has-key($iro-props-trees, $tree) { |
124 | @error 'Unknown tree "#{$tree}".'; | 177 | @error 'Unknown tree "#{$tree}".'; |
125 | } | 178 | } |
126 | 179 | ||
127 | $result: map-get($iro-props-trees, $tree); | 180 | $result: map-get($iro-props-trees, $tree); |
128 | 181 | ||
182 | @if not $global { | ||
183 | $ns-key: iro-props-get-ns-key(); | ||
184 | |||
185 | @if $ns-key != null { | ||
186 | $orig-key: $key; | ||
187 | $key: $ns-key; | ||
188 | |||
189 | @if type-of($orig-key) == list { | ||
190 | @each $subkey in $orig-key { | ||
191 | $key: append($key, $subkey); | ||
192 | } | ||
193 | } @else { | ||
194 | $key: append($key, $orig-key); | ||
195 | } | ||
196 | } | ||
197 | } | ||
198 | |||
129 | @if type-of($key) == list { | 199 | @if type-of($key) == list { |
130 | $stop: false; | 200 | $stop: false; |
131 | 201 | ||
132 | @each $k in $key { | 202 | @each $k in $key { |
133 | @if map-has-key($result, $k) and not $stop { | 203 | @if not $stop and map-has-key($result, $k) { |
134 | $result: map-get($result, $k); | 204 | $result: map-get($result, $k); |
135 | 205 | ||
136 | @if type-of($result) == list and nth($result, 1) == 'iro-prop-ref' { | 206 | @if type-of($result) == list and nth($result, 1) == 'iro-prop-ref' { |
137 | @if length($result) == 2 { | 207 | @if length($result) == 2 { |
138 | $result: iro-props-get($tree: nth($result, 2)); | 208 | $result: iro-props-get($tree: nth($result, 2), $global: true); |
139 | } @else { | 209 | } @else { |
140 | $result: iro-props-get(nth($result, 3), nth($result, 2)); | 210 | $result: iro-props-get(nth($result, 3), nth($result, 2), $global: true); |
141 | } | 211 | } |
142 | } | 212 | } |
143 | } @else { | 213 | } @else { |
@@ -153,9 +223,9 @@ $iro-props-trees: (); | |||
153 | 223 | ||
154 | @if type-of($result) == list and nth($result, 1) == 'iro-prop-ref' { | 224 | @if type-of($result) == list and nth($result, 1) == 'iro-prop-ref' { |
155 | @if length($result) == 2 { | 225 | @if length($result) == 2 { |
156 | $result: iro-props-get($tree: nth($result, 2)); | 226 | $result: iro-props-get($tree: nth($result, 2), $global: true); |
157 | } @else { | 227 | } @else { |
158 | $result: iro-props-get(nth($result, 3), nth($result, 2)); | 228 | $result: iro-props-get(nth($result, 3), nth($result, 2), $global: true); |
159 | } | 229 | } |
160 | } | 230 | } |
161 | } | 231 | } |
@@ -180,11 +250,28 @@ $iro-props-trees: (); | |||
180 | /// | 250 | /// |
181 | /// @return {string} var() | 251 | /// @return {string} var() |
182 | /// | 252 | /// |
183 | @function iro-props-get-native($key, $tree: null, $default: null) { | 253 | @function iro-props-get-native($key, $tree: null, $default: null, $global: false) { |
184 | @if $tree != null { | 254 | @if $tree != null { |
185 | $noop: iro-props-get($key, $tree, $default); | 255 | $noop: iro-props-get($key, $tree, $default); |
186 | } | 256 | } |
187 | 257 | ||
258 | @if not $global { | ||
259 | $ns-key: iro-props-get-ns-key(); | ||
260 | |||
261 | @if $ns-key != null { | ||
262 | $orig-key: $key; | ||
263 | $key: $ns-key; | ||
264 | |||
265 | @if type-of($orig-key) == list { | ||
266 | @each $subkey in $orig-key { | ||
267 | $key: append($key, $subkey); | ||
268 | } | ||
269 | } @else { | ||
270 | $key: append($key, $orig-key); | ||
271 | } | ||
272 | } | ||
273 | } | ||
274 | |||
188 | $native-var: ''; | 275 | $native-var: ''; |
189 | 276 | ||
190 | @if type-of($key) == list { | 277 | @if type-of($key) == list { |
@@ -206,9 +293,9 @@ $iro-props-trees: (); | |||
206 | /// Generate assignments for native CSS custom properties with the values from the specified tree. | 293 | /// Generate assignments for native CSS custom properties with the values from the specified tree. |
207 | /// | 294 | /// |
208 | /// @param {string} $tree [$iro-props-default-tree] - ID of the property tree to use | 295 | /// @param {string} $tree [$iro-props-default-tree] - ID of the property tree to use |
209 | /// @param {string} $root [()] - Sub-tree to use for assignment | 296 | /// @param {string} $root [()] - Sub-tree to use for assignment |
210 | /// | 297 | /// |
211 | @mixin iro-props-assign-native($tree: $iro-props-default-tree, $root: (), $skip: (), $prefix: '') { | 298 | @mixin iro-props-assign-native($tree: $iro-props-default-tree, $root: (), $skip: (), $prefix: '', $global: false) { |
212 | $map: iro-props-get($root, $tree); | 299 | $map: iro-props-get($root, $tree); |
213 | $map: map-remove($map, $skip...); | 300 | $map: map-remove($map, $skip...); |
214 | 301 | ||
@@ -216,6 +303,14 @@ $iro-props-trees: (); | |||
216 | $prefix: iro-str-implode($prefix) | 303 | $prefix: iro-str-implode($prefix) |
217 | } | 304 | } |
218 | 305 | ||
306 | @if not $global { | ||
307 | $ns-key: iro-props-get-ns-key(); | ||
308 | |||
309 | @if $ns-key != null { | ||
310 | $prefix: $prefix + iro-str-implode($ns-key); | ||
311 | } | ||
312 | } | ||
313 | |||
219 | @include iro-props-assign-native-internal($map, $prefix); | 314 | @include iro-props-assign-native-internal($map, $prefix); |
220 | } | 315 | } |
221 | 316 | ||
@@ -270,16 +365,55 @@ $iro-props-trees: (); | |||
270 | /// Generate a reference to another tree. Dereferencing is lazy, so you may specify a tree that hasn't been created yet. | 365 | /// Generate a reference to another tree. Dereferencing is lazy, so you may specify a tree that hasn't been created yet. |
271 | /// | 366 | /// |
272 | /// @param {string} $tree [$iro-props-default-tree] - ID of the property tree to use | 367 | /// @param {string} $tree [$iro-props-default-tree] - ID of the property tree to use |
273 | /// @param {string | list} $key - Key of the property to read. If this is a list of keys, the map will be traversed in that order. | 368 | /// @param {string | list} $key - Key of the property to read. If this is a list of keys, the map will be traversed in that order. |
274 | /// | 369 | /// |
275 | /// @return {list} A special list that let's Ignis know that this is a lazy value. | 370 | /// @return {list} A special list that let's Ignis know that this is a lazy value. |
276 | /// | 371 | /// |
277 | /// @throw If there was no match for $key and $default is null | 372 | /// @throw If there was no match for $key and $default is null |
278 | /// | 373 | /// |
279 | @function iro-props-ref($tree: $iro-props-default-tree, $key: null) { | 374 | @function iro-props-ref($tree: $iro-props-default-tree, $key: null, $global: false) { |
375 | @if not $global { | ||
376 | $ns-key: iro-props-get-ns-key(); | ||
377 | |||
378 | @if $ns-key != null { | ||
379 | $orig-key: $key; | ||
380 | $key: $ns-key; | ||
381 | |||
382 | @if $orig-key != null { | ||
383 | @if type-of($orig-key) == list { | ||
384 | @each $subkey in $orig-key { | ||
385 | $key: append($key, $subkey); | ||
386 | } | ||
387 | } @else { | ||
388 | $key: append($key, $orig-key); | ||
389 | } | ||
390 | } | ||
391 | } | ||
392 | } | ||
393 | |||
280 | @if $key == null { | 394 | @if $key == null { |
281 | @return ('iro-prop-ref' $tree); | 395 | @return ('iro-prop-ref' $tree); |
282 | } @else { | 396 | } @else { |
283 | @return ('iro-prop-ref' $tree $key); | 397 | @return ('iro-prop-ref' $tree $key); |
284 | } | 398 | } |
285 | } | 399 | } |
400 | |||
401 | /// | ||
402 | /// Get the current namespace key. | ||
403 | /// | ||
404 | /// @access private | ||
405 | /// | ||
406 | @function iro-props-get-ns-key() { | ||
407 | $ctx: iro-context-get($iro-props-namespace-context-id, 'namespace'); | ||
408 | |||
409 | @if $ctx == null { | ||
410 | @return null; | ||
411 | } | ||
412 | |||
413 | $data: nth($ctx, 2); | ||
414 | $key: map-get($data, 'key'); | ||
415 | |||
416 | @return $key; | ||
417 | } | ||
418 | |||
419 | @include iro-context-stack-create($iro-props-namespace-context-id); | ||
diff --git a/src/props-shortcodes.scss b/src/props-shortcodes.scss new file mode 100644 index 0000000..2c678a7 --- /dev/null +++ b/src/props-shortcodes.scss | |||
@@ -0,0 +1,77 @@ | |||
1 | //// | ||
2 | /// Shorter version of the prop-related functions. Useful to reduce clutter. | ||
3 | /// | ||
4 | /// @group Props shortcodes | ||
5 | /// | ||
6 | /// @access public | ||
7 | //// | ||
8 | |||
9 | /// | ||
10 | /// @alias iro-props-namespace | ||
11 | /// | ||
12 | @mixin namespace($name) { | ||
13 | @include iro-props-namespace($name); | ||
14 | } | ||
15 | |||
16 | /// | ||
17 | /// @alias iro-props-ns-name | ||
18 | /// | ||
19 | @function namespace() { | ||
20 | @return iro-props-ns-name(); | ||
21 | } | ||
22 | |||
23 | /// | ||
24 | /// @alias iro-props-store | ||
25 | /// | ||
26 | @function store($map, $tree: $iro-props-default-tree, $merge: false, $global: false) { | ||
27 | @return iro-props-store($map, $tree, $merge, $global); | ||
28 | } | ||
29 | |||
30 | /// | ||
31 | /// @alias iro-props-store | ||
32 | /// | ||
33 | @mixin store($map, $tree: $iro-props-default-tree, $merge: false, $global: false) { | ||
34 | @include iro-props-store($map, $tree, $merge, $global); | ||
35 | } | ||
36 | |||
37 | /// | ||
38 | /// @alias iro-props-clear | ||
39 | /// | ||
40 | @mixin clear($tree: $iro-props-default-tree) { | ||
41 | @include iro-props-clear($tree); | ||
42 | } | ||
43 | |||
44 | /// | ||
45 | /// @alias iro-props-clear | ||
46 | /// | ||
47 | @function clear($tree: $iro-props-default-tree) { | ||
48 | @return iro-props-clear($tree); | ||
49 | } | ||
50 | |||
51 | /// | ||
52 | /// @alias iro-props-get | ||
53 | /// | ||
54 | @function prop($key: (), $tree: $iro-props-default-tree, $default: null, $global: false) { | ||
55 | @return iro-props-get($key, $tree, $default, $global); | ||
56 | } | ||
57 | |||
58 | /// | ||
59 | /// @alias iro-props-get-native | ||
60 | /// | ||
61 | @function n-prop($key, $tree: null, $default: null, $global: false) { | ||
62 | @return iro-props-get-native($key, $tree, $default, $global); | ||
63 | } | ||
64 | |||
65 | /// | ||
66 | /// @alias iro-props-assign-native | ||
67 | /// | ||
68 | @mixin n-assign($tree: $iro-props-default-tree, $root: (), $skip: (), $prefix: '', $global: false) { | ||
69 | @include iro-props-assign-native($tree, $root, $skip, $prefix, $global); | ||
70 | } | ||
71 | |||
72 | /// | ||
73 | /// @alias iro-props-ref | ||
74 | /// | ||
75 | @function ref($tree: $iro-props-default-tree, $key: null, $global: false) { | ||
76 | @return iro-props-ref($tree, $key, $global); | ||
77 | } | ||
diff --git a/test/_props.scss b/test/_props.scss index 4e0a5b4..982fc2f 100644 --- a/test/_props.scss +++ b/test/_props.scss | |||
@@ -36,16 +36,12 @@ | |||
36 | --primary: ( | 36 | --primary: ( |
37 | --background: #f00, | 37 | --background: #f00, |
38 | --text: #fff | 38 | --text: #fff |
39 | ), | ||
40 | --default: ( | ||
41 | --background: #ddd, | ||
42 | --text: #000 | ||
43 | ) | 39 | ) |
44 | ) | 40 | ) |
45 | ); | 41 | ); |
46 | 42 | ||
47 | @include assert-equal(iro-props-save($map), null, 'Save default tree'); | 43 | @include assert-equal(iro-props-store($map), null, 'Save default tree'); |
48 | @include assert-equal(iro-props-delete(), null, 'Delete default tree'); | 44 | @include assert-equal(iro-props-clear(), null, 'Delete default tree'); |
49 | } | 45 | } |
50 | 46 | ||
51 | @include it('Read') { | 47 | @include it('Read') { |
@@ -56,10 +52,6 @@ | |||
56 | --primary: ( | 52 | --primary: ( |
57 | --background: #f00, | 53 | --background: #f00, |
58 | --text: #fff | 54 | --text: #fff |
59 | ), | ||
60 | --default: ( | ||
61 | --background: #ddd, | ||
62 | --text: #000 | ||
63 | ) | 55 | ) |
64 | ) | 56 | ) |
65 | ); | 57 | ); |
@@ -71,35 +63,52 @@ | |||
71 | --primary: ( | 63 | --primary: ( |
72 | --background: #f00, | 64 | --background: #f00, |
73 | --text: #fff | 65 | --text: #fff |
74 | ), | ||
75 | --default: ( | ||
76 | --background: #444, | ||
77 | --text: #fff | ||
78 | ) | 66 | ) |
79 | ) | 67 | ) |
80 | ); | 68 | ); |
81 | 69 | ||
82 | @include assert-equal(iro-props-save($map1), null, 'Save default tree'); | 70 | $map3: ( |
83 | @include assert-equal(iro-props-save($map2, 'test'), null, 'Save "test" tree'); | 71 | --background: #666, |
72 | --text: #222, | ||
73 | --buttons: ( | ||
74 | --primary: ( | ||
75 | --background: #0f0, | ||
76 | --text: #000 | ||
77 | ) | ||
78 | ) | ||
79 | ); | ||
80 | |||
81 | @include assert-equal(iro-props-store($map1), null, 'Save default tree'); | ||
82 | @include assert-equal(iro-props-store($map2, 'test'), null, 'Save "test" tree'); | ||
83 | |||
84 | @include iro-props-namespace('ns') { | ||
85 | @include assert-equal(iro-props-store($map3, 'namespaced'), null, 'Save "namespaced" tree'); | ||
86 | } | ||
84 | 87 | ||
85 | @include assert-equal(iro-props-get(--background), map-get($map1, --background), 'Get --background in default'); | 88 | @include assert-equal(iro-props-get(--background), map-get($map1, --background), 'Get --background in default'); |
86 | @include assert-equal(iro-props-get(--buttons --primary --background), map-get(map-get(map-get($map1, --buttons), --primary), --background), 'Get --buttons --primary --background in default'); | 89 | @include assert-equal(iro-props-get(--buttons --primary --background), map-get(map-get(map-get($map1, --buttons), --primary), --background), 'Get --buttons --primary --background in default'); |
87 | @include assert-equal(iro-props-get(--buttons --default --text), map-get(map-get(map-get($map1, --buttons), --default), --text), 'Get --buttons --default --text in default'); | ||
88 | @include assert-equal(iro-props-get(--box, $default: false), false, 'Get nonexistent in default'); | 90 | @include assert-equal(iro-props-get(--box, $default: false), false, 'Get nonexistent in default'); |
89 | 91 | ||
90 | @include assert-equal(iro-props-get(--background, 'test'), map-get($map2, --background), 'Get --background in "test"'); | 92 | @include assert-equal(iro-props-get(--background, 'test'), map-get($map2, --background), 'Get --background in "test"'); |
91 | @include assert-equal(iro-props-get(--buttons --primary --background, 'test'), map-get(map-get(map-get($map2, --buttons), --primary), --background), 'Get --buttons --primary --background in "test"'); | 93 | @include assert-equal(iro-props-get(--buttons --primary --background, 'test'), map-get(map-get(map-get($map2, --buttons), --primary), --background), 'Get --buttons --primary --background in "test"'); |
92 | @include assert-equal(iro-props-get(--buttons --default --text, 'test'), map-get(map-get(map-get($map2, --buttons), --default), --text), 'Get --buttons --default --text in "test"'); | ||
93 | @include assert-equal(iro-props-get(--box, 'test', $default: false), false, 'Get nonexistent in "test"'); | 94 | @include assert-equal(iro-props-get(--box, 'test', $default: false), false, 'Get nonexistent in "test"'); |
95 | |||
96 | @include assert-equal(iro-props-get(--background, 'namespaced', $default: false), false, 'Get --background in "namespaced"'); | ||
97 | @include assert-equal(iro-props-get(--ns --background, 'namespaced'), map-get($map3, --background), 'Get --ns --background in "namespaced"'); | ||
98 | @include iro-props-namespace('ns') { | ||
99 | @include assert-equal(iro-props-get(--background, 'namespaced'), map-get($map3, --background), 'Get namespaced --background in "namespaced"'); | ||
100 | @include assert-equal(iro-props-get(--buttons --primary --background, 'namespaced'), map-get(map-get(map-get($map3, --buttons), --primary), --background), 'Get namespaced --buttons --primary --background in "namespaced"'); | ||
101 | @include assert-equal(iro-props-get(--box, 'namespaced', $default: false), false, 'Get namespaced nonexistent in "namespaced"'); | ||
102 | } | ||
94 | 103 | ||
95 | @include assert-equal(iro-props-delete(), null, 'Delete default tree'); | 104 | @include assert-equal(iro-props-clear(), null, 'Delete default tree'); |
96 | @include assert-equal(iro-props-delete('test'), null, 'Delete "test" tree'); | 105 | @include assert-equal(iro-props-clear('test'), null, 'Delete "test" tree'); |
106 | @include assert-equal(iro-props-clear('namespaced'), null, 'Delete "namespaced" tree'); | ||
97 | } | 107 | } |
98 | 108 | ||
99 | @include it('Overwrite') { | 109 | @include it('Overwrite') { |
100 | $map1: ( | 110 | $map1: ( |
101 | --background: #fff, | 111 | --background: #fff, |
102 | --text: #000, | ||
103 | --buttons: ( | 112 | --buttons: ( |
104 | --primary: ( | 113 | --primary: ( |
105 | --background: #f00, | 114 | --background: #f00, |
@@ -110,54 +119,43 @@ | |||
110 | 119 | ||
111 | $map2: ( | 120 | $map2: ( |
112 | --background: #eee, | 121 | --background: #eee, |
122 | --text: #000, | ||
113 | --buttons: ( | 123 | --buttons: ( |
114 | --primary: ( | 124 | --primary: ( |
115 | --background: #00f | 125 | --background: #00f |
116 | ), | ||
117 | --default: ( | ||
118 | --background: #444, | ||
119 | --text: #fff | ||
120 | ) | 126 | ) |
121 | ) | 127 | ) |
122 | ); | 128 | ); |
123 | 129 | ||
124 | @include assert-equal(iro-props-save($map1), null, 'Save default tree'); | 130 | @include assert-equal(iro-props-store($map1), null, 'Save default tree'); |
125 | 131 | @include assert-equal(iro-props-store($map2, $merge: true), null, 'Overwrite default tree'); | |
126 | @include assert-equal(iro-props-get(), $map1, 'Before update, get whole map'); | ||
127 | @include assert-equal(iro-props-get(--background), map-get($map1, --background), 'Before update, get --background'); | ||
128 | @include assert-equal(iro-props-get(--text), map-get($map1, --text), 'Before update, get --text'); | ||
129 | @include assert-equal(iro-props-get(--buttons --primary --background), map-get(map-get(map-get($map1, --buttons), --primary), --background), 'Before update, get --buttons --primary --background'); | ||
130 | @include assert-equal(iro-props-get(--buttons --default --text, $default: false), false, 'Before update, get --buttons --default --text (returns default)'); | ||
131 | |||
132 | @include assert-equal(iro-props-save($map2, $merge: true), null, 'Overwrite default tree'); | ||
133 | 132 | ||
134 | @include assert-equal(iro-props-get(), iro-map-merge-recursive($map1, $map2), 'After update, get whole map'); | 133 | @include assert-equal(iro-props-get(), iro-map-merge-recursive($map1, $map2), 'After update, get whole map'); |
135 | @include assert-equal(iro-props-get(--background), map-get($map2, --background), 'After update, get --background'); | 134 | @include assert-equal(iro-props-get(--background), map-get($map2, --background), 'After update, get --background'); |
136 | @include assert-equal(iro-props-get(--text), map-get($map1, --text), 'After update, get --text'); | 135 | @include assert-equal(iro-props-get(--text), map-get($map2, --text), 'After update, get --text'); |
137 | @include assert-equal(iro-props-get(--buttons --primary --background), map-get(map-get(map-get($map2, --buttons), --primary), --background), 'After update, get --buttons --primary --background'); | 136 | @include assert-equal(iro-props-get(--buttons --primary --text), map-get(map-get(map-get($map1, --buttons), --primary), --text), 'After update, get --buttons --primary --text'); |
138 | @include assert-equal(iro-props-get(--buttons --default --text), map-get(map-get(map-get($map2, --buttons), --default), --text), 'After update, get --buttons --default --text'); | ||
139 | 137 | ||
140 | @include assert-equal(iro-props-delete(), null, 'Delete default tree'); | 138 | @include assert-equal(iro-props-clear(), null, 'Delete default tree'); |
141 | } | 139 | } |
142 | 140 | ||
143 | @include it('Native assignment') { | 141 | @include it('Native assignment') { |
144 | @include assert('Simple') { | 142 | $map: ( |
145 | $map: ( | 143 | --background: #fff, |
146 | --background: #fff, | 144 | --text: #000, |
147 | --text: #000, | 145 | --buttons: ( |
148 | --buttons: ( | 146 | --primary: ( |
149 | --primary: ( | 147 | --background: #f00, |
150 | --background: #f00, | 148 | --text: #fff |
151 | --text: #fff | 149 | ), |
152 | ), | 150 | --default: ( |
153 | --default: ( | 151 | --background: #ddd, |
154 | --background: #ddd, | 152 | --text: #000 |
155 | --text: #000 | ||
156 | ) | ||
157 | ) | 153 | ) |
158 | ); | 154 | ) |
155 | ); | ||
159 | 156 | ||
160 | @include iro-props-save($map); | 157 | @include assert('Simple') { |
158 | @include iro-props-store($map); | ||
161 | 159 | ||
162 | @include output { | 160 | @include output { |
163 | @include iro-props-assign-native; | 161 | @include iro-props-assign-native; |
@@ -172,26 +170,11 @@ | |||
172 | --buttons--default--text: #{map-get(map-get(map-get($map, --buttons), --default), --text)}; | 170 | --buttons--default--text: #{map-get(map-get(map-get($map, --buttons), --default), --text)}; |
173 | } | 171 | } |
174 | 172 | ||
175 | @include iro-props-delete; | 173 | @include iro-props-clear; |
176 | } | 174 | } |
177 | 175 | ||
178 | @include assert('Filtered') { | 176 | @include assert('Filtered') { |
179 | $map: ( | 177 | @include iro-props-store($map); |
180 | --background: #fff, | ||
181 | --text: #000, | ||
182 | --buttons: ( | ||
183 | --primary: ( | ||
184 | --background: #f00, | ||
185 | --text: #fff | ||
186 | ), | ||
187 | --default: ( | ||
188 | --background: #ddd, | ||
189 | --text: #000 | ||
190 | ) | ||
191 | ) | ||
192 | ); | ||
193 | |||
194 | @include iro-props-save($map); | ||
195 | 178 | ||
196 | @include output { | 179 | @include output { |
197 | @include iro-props-assign-native($skip: --buttons); | 180 | @include iro-props-assign-native($skip: --buttons); |
@@ -202,7 +185,28 @@ | |||
202 | --text: #{map-get($map, --text)}; | 185 | --text: #{map-get($map, --text)}; |
203 | } | 186 | } |
204 | 187 | ||
205 | @include iro-props-delete; | 188 | @include iro-props-clear; |
189 | } | ||
190 | |||
191 | @include assert('Namespaced') { | ||
192 | @include iro-props-namespace('ns') { | ||
193 | @include iro-props-store($map); | ||
194 | } | ||
195 | |||
196 | @include output { | ||
197 | @include iro-props-assign-native; | ||
198 | } | ||
199 | |||
200 | @include expect { | ||
201 | --ns--background: #{map-get($map, --background)}; | ||
202 | --ns--text: #{map-get($map, --text)}; | ||
203 | --ns--buttons--primary--background: #{map-get(map-get(map-get($map, --buttons), --primary), --background)}; | ||
204 | --ns--buttons--primary--text: #{map-get(map-get(map-get($map, --buttons), --primary), --text)}; | ||
205 | --ns--buttons--default--background: #{map-get(map-get(map-get($map, --buttons), --default), --background)}; | ||
206 | --ns--buttons--default--text: #{map-get(map-get(map-get($map, --buttons), --default), --text)}; | ||
207 | } | ||
208 | |||
209 | @include iro-props-clear; | ||
206 | } | 210 | } |
207 | } | 211 | } |
208 | 212 | ||
@@ -222,13 +226,17 @@ | |||
222 | ) | 226 | ) |
223 | ); | 227 | ); |
224 | 228 | ||
225 | @include assert-equal(iro-props-save($map), null, 'Save default tree'); | 229 | @include assert-equal(iro-props-store($map), null, 'Save default tree'); |
226 | 230 | ||
227 | @include assert-equal(iro-props-get-native(--background), var(--background), 'Get --background'); | 231 | @include assert-equal(iro-props-get-native(--background), var(--background), 'Get --background'); |
228 | @include assert-equal(iro-props-get-native(--buttons --primary --text), var(--buttons--primary--text), 'Get --buttons --primary --text'); | 232 | @include assert-equal(iro-props-get-native(--buttons --primary --text), var(--buttons--primary--text), 'Get --buttons --primary --text'); |
229 | @include assert-equal(iro-props-get-native(--buttons --secondary --text, $default: false), var(--buttons--secondary--text, false), 'Get --buttons --secondary --text with default'); | 233 | @include assert-equal(iro-props-get-native(--buttons --secondary --text, $default: false), var(--buttons--secondary--text, false), 'Get --buttons --secondary --text with default'); |
234 | @include iro-props-namespace('buttons') { | ||
235 | @include assert-equal(iro-props-get-native(--primary --text), var(--buttons--primary--text), 'Get via namespace "buttons" --primary --text'); | ||
236 | @include assert-equal(iro-props-get-native(--secondary --text, $default: false), var(--buttons--secondary--text, false), 'Get via namespace "buttons" --secondary --text with default'); | ||
237 | } | ||
230 | 238 | ||
231 | @include assert-equal(iro-props-delete(), null, 'Delete default tree'); | 239 | @include assert-equal(iro-props-clear(), null, 'Delete default tree'); |
232 | } | 240 | } |
233 | 241 | ||
234 | @include it('References') { | 242 | @include it('References') { |
@@ -253,8 +261,8 @@ | |||
253 | ) | 261 | ) |
254 | ); | 262 | ); |
255 | 263 | ||
256 | @include assert-equal(iro-props-save($map1), null, 'Save default tree'); | 264 | @include assert-equal(iro-props-store($map1), null, 'Save default tree'); |
257 | @include assert-equal(iro-props-save($map2, 'second'), null, 'Save "second" tree'); | 265 | @include assert-equal(iro-props-store($map2, 'second'), null, 'Save "second" tree'); |
258 | 266 | ||
259 | @include assert-equal(iro-props-get(--buttons --primary --background, 'second'), map-get($map1, --background), 'Get referenced value'); | 267 | @include assert-equal(iro-props-get(--buttons --primary --background, 'second'), map-get($map1, --background), 'Get referenced value'); |
260 | @include assert-equal(iro-props-get-native(--buttons --primary --background, 'second'), var(--buttons--primary--background), 'Get referenced value, native'); | 268 | @include assert-equal(iro-props-get-native(--buttons --primary --background, 'second'), var(--buttons--primary--background), 'Get referenced value, native'); |
@@ -276,7 +284,7 @@ | |||
276 | } | 284 | } |
277 | } | 285 | } |
278 | 286 | ||
279 | @include assert-equal(iro-props-delete(), null, 'Delete default tree'); | 287 | @include assert-equal(iro-props-clear(), null, 'Delete default tree'); |
280 | @include assert-equal(iro-props-delete('second'), null, 'Delete "second" tree'); | 288 | @include assert-equal(iro-props-clear('second'), null, 'Delete "second" tree'); |
281 | } | 289 | } |
282 | } | 290 | } |
@@ -96,12 +96,19 @@ ansi-styles@^2.2.1: | |||
96 | version "2.2.1" | 96 | version "2.2.1" |
97 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" | 97 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" |
98 | 98 | ||
99 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: | 99 | ansi-styles@^3.2.1: |
100 | version "3.2.1" | 100 | version "3.2.1" |
101 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" | 101 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" |
102 | dependencies: | 102 | dependencies: |
103 | color-convert "^1.9.0" | 103 | color-convert "^1.9.0" |
104 | 104 | ||
105 | ansi-styles@^4.0.0, ansi-styles@^4.2.1: | ||
106 | version "4.3.0" | ||
107 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" | ||
108 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== | ||
109 | dependencies: | ||
110 | color-convert "^2.0.1" | ||
111 | |||
105 | ansi-styles@^4.1.0: | 112 | ansi-styles@^4.1.0: |
106 | version "4.2.1" | 113 | version "4.2.1" |
107 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" | 114 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" |
@@ -110,13 +117,6 @@ ansi-styles@^4.1.0: | |||
110 | "@types/color-name" "^1.1.1" | 117 | "@types/color-name" "^1.1.1" |
111 | color-convert "^2.0.1" | 118 | color-convert "^2.0.1" |
112 | 119 | ||
113 | ansi-styles@^4.2.1: | ||
114 | version "4.3.0" | ||
115 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" | ||
116 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== | ||
117 | dependencies: | ||
118 | color-convert "^2.0.1" | ||
119 | |||
120 | anymatch@^2.0.0: | 120 | anymatch@^2.0.0: |
121 | version "2.0.0" | 121 | version "2.0.0" |
122 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" | 122 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" |
@@ -156,6 +156,11 @@ argparse@^1.0.7: | |||
156 | dependencies: | 156 | dependencies: |
157 | sprintf-js "~1.0.2" | 157 | sprintf-js "~1.0.2" |
158 | 158 | ||
159 | argparse@^2.0.1: | ||
160 | version "2.0.1" | ||
161 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" | ||
162 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== | ||
163 | |||
159 | arr-diff@^4.0.0: | 164 | arr-diff@^4.0.0: |
160 | version "4.0.0" | 165 | version "4.0.0" |
161 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" | 166 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" |
@@ -353,7 +358,7 @@ camelcase@^2.0.1: | |||
353 | version "2.1.1" | 358 | version "2.1.1" |
354 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" | 359 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" |
355 | 360 | ||
356 | camelcase@^5.0.0, camelcase@^5.3.1: | 361 | camelcase@^5.3.1: |
357 | version "5.3.1" | 362 | version "5.3.1" |
358 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" | 363 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" |
359 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== | 364 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== |
@@ -406,7 +411,22 @@ chalk@^4.0.0, chalk@^4.1.0: | |||
406 | ansi-styles "^4.1.0" | 411 | ansi-styles "^4.1.0" |
407 | supports-color "^7.1.0" | 412 | supports-color "^7.1.0" |
408 | 413 | ||
409 | chokidar@3.4.3, "chokidar@>=2.0.0 <4.0.0": | 414 | chokidar@3.5.1: |
415 | version "3.5.1" | ||
416 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" | ||
417 | integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== | ||
418 | dependencies: | ||
419 | anymatch "~3.1.1" | ||
420 | braces "~3.0.2" | ||
421 | glob-parent "~5.1.0" | ||
422 | is-binary-path "~2.1.0" | ||
423 | is-glob "~4.0.1" | ||
424 | normalize-path "~3.0.0" | ||
425 | readdirp "~3.5.0" | ||
426 | optionalDependencies: | ||
427 | fsevents "~2.3.1" | ||
428 | |||
429 | "chokidar@>=2.0.0 <4.0.0": | ||
410 | version "3.4.3" | 430 | version "3.4.3" |
411 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" | 431 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz#c1df38231448e45ca4ac588e6c79573ba6a57d5b" |
412 | integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== | 432 | integrity sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ== |
@@ -511,14 +531,14 @@ cliui@^3.0.3: | |||
511 | strip-ansi "^3.0.1" | 531 | strip-ansi "^3.0.1" |
512 | wrap-ansi "^2.0.0" | 532 | wrap-ansi "^2.0.0" |
513 | 533 | ||
514 | cliui@^5.0.0: | 534 | cliui@^7.0.2: |
515 | version "5.0.0" | 535 | version "7.0.4" |
516 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" | 536 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" |
517 | integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== | 537 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== |
518 | dependencies: | 538 | dependencies: |
519 | string-width "^3.1.0" | 539 | string-width "^4.2.0" |
520 | strip-ansi "^5.2.0" | 540 | strip-ansi "^6.0.0" |
521 | wrap-ansi "^5.1.0" | 541 | wrap-ansi "^7.0.0" |
522 | 542 | ||
523 | clone-buffer@^1.0.0: | 543 | clone-buffer@^1.0.0: |
524 | version "1.0.0" | 544 | version "1.0.0" |
@@ -705,10 +725,10 @@ dargs@^4.0.0: | |||
705 | dependencies: | 725 | dependencies: |
706 | number-is-nan "^1.0.0" | 726 | number-is-nan "^1.0.0" |
707 | 727 | ||
708 | debug@4.2.0: | 728 | debug@4.3.1: |
709 | version "4.2.0" | 729 | version "4.3.1" |
710 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" | 730 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" |
711 | integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== | 731 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== |
712 | dependencies: | 732 | dependencies: |
713 | ms "2.1.2" | 733 | ms "2.1.2" |
714 | 734 | ||
@@ -725,7 +745,7 @@ debug@^3.2.6: | |||
725 | dependencies: | 745 | dependencies: |
726 | ms "^2.1.1" | 746 | ms "^2.1.1" |
727 | 747 | ||
728 | decamelize@^1.1.1, decamelize@^1.2.0: | 748 | decamelize@^1.1.1: |
729 | version "1.2.0" | 749 | version "1.2.0" |
730 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" | 750 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" |
731 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= | 751 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= |
@@ -805,10 +825,10 @@ detect-libc@^1.0.2: | |||
805 | version "1.0.3" | 825 | version "1.0.3" |
806 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" | 826 | resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" |
807 | 827 | ||
808 | diff@4.0.2: | 828 | diff@5.0.0: |
809 | version "4.0.2" | 829 | version "5.0.0" |
810 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" | 830 | resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" |
811 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== | 831 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== |
812 | 832 | ||
813 | docopt@^0.6.1: | 833 | docopt@^0.6.1: |
814 | version "0.6.2" | 834 | version "0.6.2" |
@@ -941,6 +961,11 @@ es6-weak-map@^2.0.1: | |||
941 | es6-iterator "^2.0.1" | 961 | es6-iterator "^2.0.1" |
942 | es6-symbol "^3.1.1" | 962 | es6-symbol "^3.1.1" |
943 | 963 | ||
964 | escalade@^3.1.1: | ||
965 | version "3.1.1" | ||
966 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" | ||
967 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== | ||
968 | |||
944 | escape-goat@^2.0.0: | 969 | escape-goat@^2.0.0: |
945 | version "2.1.1" | 970 | version "2.1.1" |
946 | resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" | 971 | resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" |
@@ -1132,13 +1157,6 @@ find-up@5.0.0: | |||
1132 | locate-path "^6.0.0" | 1157 | locate-path "^6.0.0" |
1133 | path-exists "^4.0.0" | 1158 | path-exists "^4.0.0" |
1134 | 1159 | ||
1135 | find-up@^3.0.0: | ||
1136 | version "3.0.0" | ||
1137 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" | ||
1138 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== | ||
1139 | dependencies: | ||
1140 | locate-path "^3.0.0" | ||
1141 | |||
1142 | flat-cache@^1.2.1: | 1160 | flat-cache@^1.2.1: |
1143 | version "1.3.0" | 1161 | version "1.3.0" |
1144 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" | 1162 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" |
@@ -1223,6 +1241,11 @@ fsevents@~2.1.2: | |||
1223 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" | 1241 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" |
1224 | integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== | 1242 | integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== |
1225 | 1243 | ||
1244 | fsevents@~2.3.1: | ||
1245 | version "2.3.2" | ||
1246 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" | ||
1247 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== | ||
1248 | |||
1226 | function-bind@^1.1.1: | 1249 | function-bind@^1.1.1: |
1227 | version "1.1.1" | 1250 | version "1.1.1" |
1228 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" | 1251 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" |
@@ -1251,7 +1274,7 @@ generate-object-property@^1.1.0: | |||
1251 | dependencies: | 1274 | dependencies: |
1252 | is-property "^1.0.0" | 1275 | is-property "^1.0.0" |
1253 | 1276 | ||
1254 | get-caller-file@^2.0.1: | 1277 | get-caller-file@^2.0.5: |
1255 | version "2.0.5" | 1278 | version "2.0.5" |
1256 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" | 1279 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" |
1257 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== | 1280 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== |
@@ -1829,7 +1852,14 @@ isobject@^3.0.0, isobject@^3.0.1: | |||
1829 | version "3.0.1" | 1852 | version "3.0.1" |
1830 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" | 1853 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" |
1831 | 1854 | ||
1832 | js-yaml@3.14.0, js-yaml@^3.14.0: | 1855 | js-yaml@4.0.0: |
1856 | version "4.0.0" | ||
1857 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" | ||
1858 | integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== | ||
1859 | dependencies: | ||
1860 | argparse "^2.0.1" | ||
1861 | |||
1862 | js-yaml@^3.14.0: | ||
1833 | version "3.14.0" | 1863 | version "3.14.0" |
1834 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" | 1864 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" |
1835 | integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== | 1865 | integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== |
@@ -1939,14 +1969,6 @@ levn@^0.3.0, levn@~0.3.0: | |||
1939 | prelude-ls "~1.1.2" | 1969 | prelude-ls "~1.1.2" |
1940 | type-check "~0.3.2" | 1970 | type-check "~0.3.2" |
1941 | 1971 | ||
1942 | locate-path@^3.0.0: | ||
1943 | version "3.0.0" | ||
1944 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" | ||
1945 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== | ||
1946 | dependencies: | ||
1947 | p-locate "^3.0.0" | ||
1948 | path-exists "^3.0.0" | ||
1949 | |||
1950 | locate-path@^6.0.0: | 1972 | locate-path@^6.0.0: |
1951 | version "6.0.0" | 1973 | version "6.0.0" |
1952 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" | 1974 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" |
@@ -2227,35 +2249,35 @@ mkdirp@^1.0.4: | |||
2227 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" | 2249 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" |
2228 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== | 2250 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== |
2229 | 2251 | ||
2230 | mocha@^8.2.0: | 2252 | mocha@^8.3.2: |
2231 | version "8.2.0" | 2253 | version "8.3.2" |
2232 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.2.0.tgz#f8aa79110b4b5a6580c65d4dd8083c425282624e" | 2254 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.3.2.tgz#53406f195fa86fbdebe71f8b1c6fb23221d69fcc" |
2233 | integrity sha512-lEWEMq2LMfNJMKeuEwb5UELi+OgFDollXaytR5ggQcHpzG3NP/R7rvixAvF+9/lLsTWhWG+4yD2M70GsM06nxw== | 2255 | integrity sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg== |
2234 | dependencies: | 2256 | dependencies: |
2235 | "@ungap/promise-all-settled" "1.1.2" | 2257 | "@ungap/promise-all-settled" "1.1.2" |
2236 | ansi-colors "4.1.1" | 2258 | ansi-colors "4.1.1" |
2237 | browser-stdout "1.3.1" | 2259 | browser-stdout "1.3.1" |
2238 | chokidar "3.4.3" | 2260 | chokidar "3.5.1" |
2239 | debug "4.2.0" | 2261 | debug "4.3.1" |
2240 | diff "4.0.2" | 2262 | diff "5.0.0" |
2241 | escape-string-regexp "4.0.0" | 2263 | escape-string-regexp "4.0.0" |
2242 | find-up "5.0.0" | 2264 | find-up "5.0.0" |
2243 | glob "7.1.6" | 2265 | glob "7.1.6" |
2244 | growl "1.10.5" | 2266 | growl "1.10.5" |
2245 | he "1.2.0" | 2267 | he "1.2.0" |
2246 | js-yaml "3.14.0" | 2268 | js-yaml "4.0.0" |
2247 | log-symbols "4.0.0" | 2269 | log-symbols "4.0.0" |
2248 | minimatch "3.0.4" | 2270 | minimatch "3.0.4" |
2249 | ms "2.1.2" | 2271 | ms "2.1.3" |
2250 | nanoid "3.1.12" | 2272 | nanoid "3.1.20" |
2251 | serialize-javascript "5.0.1" | 2273 | serialize-javascript "5.0.1" |
2252 | strip-json-comments "3.1.1" | 2274 | strip-json-comments "3.1.1" |
2253 | supports-color "7.2.0" | 2275 | supports-color "8.1.1" |
2254 | which "2.0.2" | 2276 | which "2.0.2" |
2255 | wide-align "1.1.3" | 2277 | wide-align "1.1.3" |
2256 | workerpool "6.0.2" | 2278 | workerpool "6.1.0" |
2257 | yargs "13.3.2" | 2279 | yargs "16.2.0" |
2258 | yargs-parser "13.1.2" | 2280 | yargs-parser "20.2.4" |
2259 | yargs-unparser "2.0.0" | 2281 | yargs-unparser "2.0.0" |
2260 | 2282 | ||
2261 | ms@2.0.0: | 2283 | ms@2.0.0: |
@@ -2267,6 +2289,11 @@ ms@2.1.2: | |||
2267 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" | 2289 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" |
2268 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== | 2290 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== |
2269 | 2291 | ||
2292 | ms@2.1.3: | ||
2293 | version "2.1.3" | ||
2294 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" | ||
2295 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== | ||
2296 | |||
2270 | ms@^2.1.1: | 2297 | ms@^2.1.1: |
2271 | version "2.1.1" | 2298 | version "2.1.1" |
2272 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" | 2299 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" |
@@ -2288,10 +2315,10 @@ nan@^2.9.2: | |||
2288 | version "2.10.0" | 2315 | version "2.10.0" |
2289 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" | 2316 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" |
2290 | 2317 | ||
2291 | nanoid@3.1.12: | 2318 | nanoid@3.1.20: |
2292 | version "3.1.12" | 2319 | version "3.1.20" |
2293 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz#6f7736c62e8d39421601e4a0c77623a97ea69654" | 2320 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" |
2294 | integrity sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A== | 2321 | integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== |
2295 | 2322 | ||
2296 | nanomatch@^1.2.9: | 2323 | nanomatch@^1.2.9: |
2297 | version "1.2.13" | 2324 | version "1.2.13" |
@@ -2338,10 +2365,10 @@ node-pre-gyp@^0.10.0: | |||
2338 | semver "^5.3.0" | 2365 | semver "^5.3.0" |
2339 | tar "^4" | 2366 | tar "^4" |
2340 | 2367 | ||
2341 | nodemon@^2.0.6: | 2368 | nodemon@^2.0.7: |
2342 | version "2.0.6" | 2369 | version "2.0.7" |
2343 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.6.tgz#1abe1937b463aaf62f0d52e2b7eaadf28cc2240d" | 2370 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.7.tgz#6f030a0a0ebe3ea1ba2a38f71bf9bab4841ced32" |
2344 | integrity sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ== | 2371 | integrity sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA== |
2345 | dependencies: | 2372 | dependencies: |
2346 | chokidar "^3.2.2" | 2373 | chokidar "^3.2.2" |
2347 | debug "^3.2.6" | 2374 | debug "^3.2.6" |
@@ -2522,13 +2549,6 @@ p-cancelable@^1.0.0: | |||
2522 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" | 2549 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" |
2523 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== | 2550 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== |
2524 | 2551 | ||
2525 | p-limit@^2.0.0: | ||
2526 | version "2.3.0" | ||
2527 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" | ||
2528 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== | ||
2529 | dependencies: | ||
2530 | p-try "^2.0.0" | ||
2531 | |||
2532 | p-limit@^3.0.2: | 2552 | p-limit@^3.0.2: |
2533 | version "3.0.2" | 2553 | version "3.0.2" |
2534 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" | 2554 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" |
@@ -2536,13 +2556,6 @@ p-limit@^3.0.2: | |||
2536 | dependencies: | 2556 | dependencies: |
2537 | p-try "^2.0.0" | 2557 | p-try "^2.0.0" |
2538 | 2558 | ||
2539 | p-locate@^3.0.0: | ||
2540 | version "3.0.0" | ||
2541 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" | ||
2542 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== | ||
2543 | dependencies: | ||
2544 | p-limit "^2.0.0" | ||
2545 | |||
2546 | p-locate@^5.0.0: | 2559 | p-locate@^5.0.0: |
2547 | version "5.0.0" | 2560 | version "5.0.0" |
2548 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" | 2561 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" |
@@ -2579,11 +2592,6 @@ path-dirname@^1.0.0: | |||
2579 | version "1.0.2" | 2592 | version "1.0.2" |
2580 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" | 2593 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" |
2581 | 2594 | ||
2582 | path-exists@^3.0.0: | ||
2583 | version "3.0.0" | ||
2584 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" | ||
2585 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= | ||
2586 | |||
2587 | path-exists@^4.0.0: | 2595 | path-exists@^4.0.0: |
2588 | version "4.0.0" | 2596 | version "4.0.0" |
2589 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" | 2597 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" |
@@ -2864,11 +2872,6 @@ require-directory@^2.1.1: | |||
2864 | version "2.1.1" | 2872 | version "2.1.1" |
2865 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" | 2873 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" |
2866 | 2874 | ||
2867 | require-main-filename@^2.0.0: | ||
2868 | version "2.0.0" | ||
2869 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" | ||
2870 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== | ||
2871 | |||
2872 | require-uncached@^1.0.2: | 2875 | require-uncached@^1.0.2: |
2873 | version "1.0.3" | 2876 | version "1.0.3" |
2874 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" | 2877 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" |
@@ -3005,10 +3008,10 @@ sass-true@^6.0.1: | |||
3005 | css "^3.0.0" | 3008 | css "^3.0.0" |
3006 | lodash "^4.17.19" | 3009 | lodash "^4.17.19" |
3007 | 3010 | ||
3008 | sass@^1.28.0: | 3011 | sass@^1.32.8: |
3009 | version "1.28.0" | 3012 | version "1.32.8" |
3010 | resolved "https://registry.yarnpkg.com/sass/-/sass-1.28.0.tgz#546f1308ff74cc4ec2ad735fd35dc18bc3f51f72" | 3013 | resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.8.tgz#f16a9abd8dc530add8834e506878a2808c037bdc" |
3011 | integrity sha512-9FWX/0wuE1KxwfiP02chZhHaPzu6adpx9+wGch7WMOuHy5npOo0UapRI3FNSHva2CczaYJu2yNUBN8cCSqHz/A== | 3014 | integrity sha512-Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ== |
3012 | dependencies: | 3015 | dependencies: |
3013 | chokidar ">=2.0.0 <4.0.0" | 3016 | chokidar ">=2.0.0 <4.0.0" |
3014 | 3017 | ||
@@ -3107,7 +3110,7 @@ serialize-javascript@5.0.1: | |||
3107 | dependencies: | 3110 | dependencies: |
3108 | randombytes "^2.1.0" | 3111 | randombytes "^2.1.0" |
3109 | 3112 | ||
3110 | set-blocking@^2.0.0, set-blocking@~2.0.0: | 3113 | set-blocking@~2.0.0: |
3111 | version "2.0.0" | 3114 | version "2.0.0" |
3112 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" | 3115 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" |
3113 | 3116 | ||
@@ -3235,7 +3238,7 @@ string-width@^1.0.1: | |||
3235 | is-fullwidth-code-point "^2.0.0" | 3238 | is-fullwidth-code-point "^2.0.0" |
3236 | strip-ansi "^4.0.0" | 3239 | strip-ansi "^4.0.0" |
3237 | 3240 | ||
3238 | string-width@^3.0.0, string-width@^3.1.0: | 3241 | string-width@^3.0.0: |
3239 | version "3.1.0" | 3242 | version "3.1.0" |
3240 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" | 3243 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" |
3241 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== | 3244 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== |
@@ -3253,6 +3256,15 @@ string-width@^4.0.0, string-width@^4.1.0: | |||
3253 | is-fullwidth-code-point "^3.0.0" | 3256 | is-fullwidth-code-point "^3.0.0" |
3254 | strip-ansi "^6.0.0" | 3257 | strip-ansi "^6.0.0" |
3255 | 3258 | ||
3259 | string-width@^4.2.0: | ||
3260 | version "4.2.2" | ||
3261 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" | ||
3262 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== | ||
3263 | dependencies: | ||
3264 | emoji-regex "^8.0.0" | ||
3265 | is-fullwidth-code-point "^3.0.0" | ||
3266 | strip-ansi "^6.0.0" | ||
3267 | |||
3256 | string_decoder@^1.1.1: | 3268 | string_decoder@^1.1.1: |
3257 | version "1.3.0" | 3269 | version "1.3.0" |
3258 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" | 3270 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" |
@@ -3288,7 +3300,7 @@ strip-ansi@^4.0.0: | |||
3288 | dependencies: | 3300 | dependencies: |
3289 | ansi-regex "^3.0.0" | 3301 | ansi-regex "^3.0.0" |
3290 | 3302 | ||
3291 | strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: | 3303 | strip-ansi@^5.1.0: |
3292 | version "5.2.0" | 3304 | version "5.2.0" |
3293 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" | 3305 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" |
3294 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== | 3306 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== |
@@ -3329,10 +3341,10 @@ strip-json-comments@~2.0.1: | |||
3329 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" | 3341 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" |
3330 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= | 3342 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= |
3331 | 3343 | ||
3332 | supports-color@7.2.0: | 3344 | supports-color@8.1.1: |
3333 | version "7.2.0" | 3345 | version "8.1.1" |
3334 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" | 3346 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" |
3335 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== | 3347 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== |
3336 | dependencies: | 3348 | dependencies: |
3337 | has-flag "^4.0.0" | 3349 | has-flag "^4.0.0" |
3338 | 3350 | ||
@@ -3690,11 +3702,6 @@ vinyl@^2.0.0: | |||
3690 | remove-trailing-separator "^1.0.1" | 3702 | remove-trailing-separator "^1.0.1" |
3691 | replace-ext "^1.0.0" | 3703 | replace-ext "^1.0.0" |
3692 | 3704 | ||
3693 | which-module@^2.0.0: | ||
3694 | version "2.0.0" | ||
3695 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" | ||
3696 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= | ||
3697 | |||
3698 | which@2.0.2: | 3705 | which@2.0.2: |
3699 | version "2.0.2" | 3706 | version "2.0.2" |
3700 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" | 3707 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" |
@@ -3731,10 +3738,10 @@ wordwrap@~1.0.0: | |||
3731 | version "1.0.0" | 3738 | version "1.0.0" |
3732 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" | 3739 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" |
3733 | 3740 | ||
3734 | workerpool@6.0.2: | 3741 | workerpool@6.1.0: |
3735 | version "6.0.2" | 3742 | version "6.1.0" |
3736 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.2.tgz#e241b43d8d033f1beb52c7851069456039d1d438" | 3743 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" |
3737 | integrity sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q== | 3744 | integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== |
3738 | 3745 | ||
3739 | wrap-ansi@^2.0.0: | 3746 | wrap-ansi@^2.0.0: |
3740 | version "2.1.0" | 3747 | version "2.1.0" |
@@ -3743,14 +3750,14 @@ wrap-ansi@^2.0.0: | |||
3743 | string-width "^1.0.1" | 3750 | string-width "^1.0.1" |
3744 | strip-ansi "^3.0.1" | 3751 | strip-ansi "^3.0.1" |
3745 | 3752 | ||
3746 | wrap-ansi@^5.1.0: | 3753 | wrap-ansi@^7.0.0: |
3747 | version "5.1.0" | 3754 | version "7.0.0" |
3748 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" | 3755 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" |
3749 | integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== | 3756 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== |
3750 | dependencies: | 3757 | dependencies: |
3751 | ansi-styles "^3.2.0" | 3758 | ansi-styles "^4.0.0" |
3752 | string-width "^3.0.0" | 3759 | string-width "^4.1.0" |
3753 | strip-ansi "^5.0.0" | 3760 | strip-ansi "^6.0.0" |
3754 | 3761 | ||
3755 | wrappy@1: | 3762 | wrappy@1: |
3756 | version "1.0.2" | 3763 | version "1.0.2" |
@@ -3785,22 +3792,24 @@ y18n@^3.2.0: | |||
3785 | version "3.2.1" | 3792 | version "3.2.1" |
3786 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" | 3793 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" |
3787 | 3794 | ||
3788 | y18n@^4.0.0: | 3795 | y18n@^5.0.5: |
3789 | version "4.0.0" | 3796 | version "5.0.5" |
3790 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" | 3797 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" |
3791 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== | 3798 | integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== |
3792 | 3799 | ||
3793 | yallist@^3.0.0, yallist@^3.0.2: | 3800 | yallist@^3.0.0, yallist@^3.0.2: |
3794 | version "3.0.2" | 3801 | version "3.0.2" |
3795 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" | 3802 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" |
3796 | 3803 | ||
3797 | yargs-parser@13.1.2, yargs-parser@^13.1.2: | 3804 | yargs-parser@20.2.4: |
3798 | version "13.1.2" | 3805 | version "20.2.4" |
3799 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" | 3806 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" |
3800 | integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== | 3807 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== |
3801 | dependencies: | 3808 | |
3802 | camelcase "^5.0.0" | 3809 | yargs-parser@^20.2.2: |
3803 | decamelize "^1.2.0" | 3810 | version "20.2.7" |
3811 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" | ||
3812 | integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== | ||
3804 | 3813 | ||
3805 | yargs-unparser@2.0.0: | 3814 | yargs-unparser@2.0.0: |
3806 | version "2.0.0" | 3815 | version "2.0.0" |
@@ -3812,21 +3821,18 @@ yargs-unparser@2.0.0: | |||
3812 | flat "^5.0.2" | 3821 | flat "^5.0.2" |
3813 | is-plain-obj "^2.1.0" | 3822 | is-plain-obj "^2.1.0" |
3814 | 3823 | ||
3815 | yargs@13.3.2: | 3824 | yargs@16.2.0: |
3816 | version "13.3.2" | 3825 | version "16.2.0" |
3817 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" | 3826 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" |
3818 | integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== | 3827 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== |
3819 | dependencies: | 3828 | dependencies: |
3820 | cliui "^5.0.0" | 3829 | cliui "^7.0.2" |
3821 | find-up "^3.0.0" | 3830 | escalade "^3.1.1" |
3822 | get-caller-file "^2.0.1" | 3831 | get-caller-file "^2.0.5" |
3823 | require-directory "^2.1.1" | 3832 | require-directory "^2.1.1" |
3824 | require-main-filename "^2.0.0" | 3833 | string-width "^4.2.0" |
3825 | set-blocking "^2.0.0" | 3834 | y18n "^5.0.5" |
3826 | string-width "^3.0.0" | 3835 | yargs-parser "^20.2.2" |
3827 | which-module "^2.0.0" | ||
3828 | y18n "^4.0.0" | ||
3829 | yargs-parser "^13.1.2" | ||
3830 | 3836 | ||
3831 | yargs@^3.32.0: | 3837 | yargs@^3.32.0: |
3832 | version "3.32.0" | 3838 | version "3.32.0" |