Mirror: 🎩 A tiny but capable push & pull stream library for TypeScript and Flow
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Upgrade to BuckleScript v7 with genType based TS codegen (#44)

* Upgrade dependencies

* Upgrade to bs-platform 7.0.2-dev.1

* Add gentype

* Switch to genType TypeScript codegen

* Migrate all operators to genType

* Migrate all sinks to genType

* Migrate sources to genType

* Migrate web to genType

* Delete obsolete .d.ts signature files

* Clean up main folder structure

* Add new main src/wonka.ts entrypoint

* Combine all separate granular files

* Remove fromListener

* Add missing shims

* Move include folder to src

* Convert pipe helper to pipe.ts with overloads

* Fix build output

* Update flow typegeneration

* Fix missing Js.shim.ts types

* Refactor tasks

* Add unwrapStatePlugin to optimise size

Unwraps all `let state` usages across all
operators, since internally this will not
change any functionality while optimising for
output size.

* Unwrap refs using unwrapStatePlugin

Also unwrap all ref types which are output
as objects of the shape: { contents: T }

* Fix forEach types not being generated

* Add full clean script

* Simplify pipe overload typings

* Add initial operator spec tests

* Add test for delay/debounce/throttle using fake timers

* Add additional initial unit tests to all operators

* Collect coverage from non-generated / non-helpers files

* Add spec test for single Start signal

Verify that each operator only sends a single
Start event

* Add spec test for closing operators End/Close

Verify that closing operators send the Close
talkback signal upwards and the End signal
downwards.

* Add sync tests for mergeMap, switchMap & concatMap

* Add stricter ending criteria

Check that Close and End aren't duplicated

* Add test for strict end

Some operators stop forwarding signals when the
source has ended. This is not strictly necessary,
but this test may highlight some other edge cases
and bugs, but it may also become necessary for
sources that aren't well behaved.

* Add additional async sequence test

* Add tests for combine operator

* Add asynchronous tests for switchMap, mergeMap & concatMap

* Add initial tests for Wonka sources

* Add more sources to tests

* Ignore wonka.bs.js/wonka.ts in coverage report

* Add source tests for cold Pull waiting

* Revert changes to Wonka_observable implementation

* Add tests for fromObservable

* Fix genType codegen for Callbags

* Add tests for fromCallbag

* Add tests for cancellation of sources

* Replace publish with subscribe with noop fn

* Add tests for Wonka sinks

* Update package.json and README.md

* Fix coverage and add test for publish

* Remove obsolete TODO comments

* Replace Sail CI with Travis

* Replace babel-jest with custom script

* Test makeSubject after complete has been called

* Add missing tests for interval and fromDomEvent

* Remove obsolete .jest.coverage.json

* Add old TypeScript types for various opaque genTypes

Add old definitions for talkbackT, signalT, observableSubscriptionT,
observableObserverT, observableT, and callbagT.

This will provide more backwards compatibility.

* Update .travis.yml command for codecov

authored by

Phil Plückthun and committed by
GitHub
7db1de17 362c1fea

+6429 -6463
+3 -4
.gitignore
··· 31 31 dist/ 32 32 node_modules/ 33 33 lib/ 34 - src/**/*.js 34 + src/**/*.bs.js 35 + src/**/*.gen.tsx 36 + src/**/*.gen.ts 35 37 src/**/*.js.flow 36 38 include/**/*.js 37 39 __tests__/**/*.js 38 40 coverage/ 39 41 _esy/ 40 42 public/ 41 - 42 - !src/index.js 43 - !src/pipe.js
-8
.jest.coverage.json
··· 1 - { 2 - "moduleFileExtensions": [ 3 - "js" 4 - ], 5 - "testMatch": [ 6 - "**/lib/js/__tests__/*_test.js" 7 - ] 8 - }
-55
.sail.yml
··· 1 - workflow: 2 - - install 3 - - build 4 - - sail:parallel: 5 - - check 6 - - test 7 - - bundle 8 - - flowgen 9 - tasks: 10 - install: 11 - image: node:10 12 - command: 13 - - yarn 14 - args: 15 - - install 16 - - --frozen-lockfile 17 - build: 18 - image: node:10 19 - command: 20 - - yarn 21 - args: 22 - - run 23 - - build 24 - check: 25 - image: node:10 26 - command: 27 - - yarn 28 - args: 29 - - run 30 - - check 31 - bundle: 32 - image: node:10 33 - command: 34 - - yarn 35 - args: 36 - - run 37 - - bundle 38 - test: 39 - image: node:10 40 - env: 41 - - CODECOV_TOKEN 42 - command: 43 - - yarn 44 - args: 45 - - run 46 - - run-s 47 - - coverage 48 - - codecov 49 - flowgen: 50 - image: node:10 51 - command: 52 - - yarn 53 - args: 54 - - run 55 - - flowgen
+26
.travis.yml
··· 1 + notifications: 2 + email: false 3 + 4 + branches: 5 + only: 6 + - master 7 + - develop 8 + - /^v\d+\.\d+\.\d+/ 9 + 10 + language: node_js 11 + cache: 12 + yarn: true 13 + node_js: 14 + - '10' 15 + 16 + matrix: 17 + fast_finish: true 18 + 19 + install: 20 + - yarn install --frozen-lockfile --non-interactive 21 + 22 + script: 23 + - yarn run build 24 + - yarn run check 25 + - yarn run test --coverage 26 + - yarn run codecov --branch $TRAVIS_PULL_REQUEST_BRANCH
+3
README.md
··· 2 2 3 3 A fast push & pull stream library for Reason, loosely following the [callbag spec](https://github.com/callbag/callbag) 4 4 5 + > **NOTE:** The `master` branch currently points to the v4 Release Candidate version! 6 + > If you're looking for v3, [please check the `v3.2.2`](https://github.com/kitten/wonka/tree/v3.2.2) 7 + 5 8 <br> 6 9 <a href="https://npmjs.com/package/wonka"> 7 10 <img alt="NPM Version" src="https://img.shields.io/npm/v/wonka.svg" />
-2149
__tests__/wonka_test.re
··· 1 - open Jest; 2 - open Wonka_types; 3 - 4 - let it = test; 5 - 6 - describe("source factories", () => { 7 - describe("fromList", () => { 8 - open Expect; 9 - open! Expect.Operators; 10 - 11 - it("sends list items to a puller sink", () => { 12 - let source = Wonka.fromList([10, 20, 30]); 13 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 14 - let signals = [||]; 15 - 16 - source((. signal) => 17 - switch (signal) { 18 - | Start(x) => talkback := x 19 - | Push(_) => ignore(Js.Array.push(signal, signals)) 20 - | End => ignore(Js.Array.push(signal, signals)) 21 - } 22 - ); 23 - 24 - talkback^(. Pull); 25 - talkback^(. Pull); 26 - talkback^(. Pull); 27 - talkback^(. Pull); 28 - 29 - expect(signals) == [|Push(10), Push(20), Push(30), End|]; 30 - }); 31 - }); 32 - 33 - describe("fromArray", () => { 34 - open Expect; 35 - open! Expect.Operators; 36 - 37 - it("sends array items to a puller sink", () => { 38 - let source = Wonka.fromArray([|10, 20, 30|]); 39 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 40 - let signals = ref([||]); 41 - 42 - source((. signal) => 43 - switch (signal) { 44 - | Start(x) => 45 - talkback := x; 46 - x(. Pull); 47 - | Push(_) => 48 - signals := Array.append(signals^, [|signal|]); 49 - talkback^(. Pull); 50 - | End => signals := Array.append(signals^, [|signal|]) 51 - } 52 - ); 53 - 54 - expect(signals^) == [|Push(10), Push(20), Push(30), End|]; 55 - }); 56 - 57 - it("does not blow up the stack when iterating something huge", () => { 58 - let arr = Array.make(100000, 123); 59 - let source = Wonka.fromArray(arr); 60 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 61 - let values = [||]; 62 - 63 - source((. signal) => 64 - switch (signal) { 65 - | Start(x) => 66 - talkback := x; 67 - x(. Pull); 68 - | Push(x) => 69 - ignore(Js.Array.push(x, values)); 70 - talkback^(. Pull); 71 - | End => () 72 - } 73 - ); 74 - 75 - expect(Array.length(values)) == Array.length(arr); 76 - }); 77 - }); 78 - 79 - describe("fromValue", () => { 80 - open Expect; 81 - open! Expect.Operators; 82 - 83 - it("sends a single item to a puller sink", () => { 84 - let source = Wonka.fromValue(123); 85 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 86 - let signals = [||]; 87 - 88 - source((. signal) => 89 - switch (signal) { 90 - | Start(x) => talkback := x 91 - | Push(_) => ignore(Js.Array.push(signal, signals)) 92 - | End => ignore(Js.Array.push(signal, signals)) 93 - } 94 - ); 95 - 96 - talkback^(. Pull); 97 - talkback^(. Pull); 98 - talkback^(. Pull); /* one extra to check whether no signal comes back after it has ended */ 99 - 100 - expect(signals) == [|Push(123), End|]; 101 - }); 102 - }); 103 - 104 - describe("empty", () => { 105 - open Expect; 106 - open! Expect.Operators; 107 - 108 - it("ends immediately", () => { 109 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 110 - let signals = [||]; 111 - 112 - Wonka.empty((. signal) => 113 - switch (signal) { 114 - | Start(x) => talkback := x 115 - | _ => ignore(Js.Array.push(signal, signals)) 116 - } 117 - ); 118 - 119 - let _signals = Array.copy(signals); 120 - 121 - talkback^(. Pull); 122 - talkback^(. Pull); 123 - 124 - expect((_signals, signals)) == ([|End|], [|End|]); 125 - }); 126 - }); 127 - 128 - describe("never", () => { 129 - open Expect; 130 - open! Expect.Operators; 131 - 132 - it("does not end", () => { 133 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 134 - let ended = ref(false); 135 - 136 - Wonka.never((. signal) => 137 - switch (signal) { 138 - | Start(x) => talkback := x 139 - | End => ended := true 140 - | _ => () 141 - } 142 - ); 143 - 144 - talkback^(. Pull); 145 - talkback^(. Pull); 146 - 147 - expect(ended^) === false; 148 - }); 149 - }); 150 - 151 - describe("fromObservable", () => 152 - Expect.( 153 - testPromise("creates a source from an observable", () => { 154 - let observable = Wonka_thelpers.observableFromArray([|1, 2|]); 155 - 156 - Wonka_thelpers.testSource(Wonka.fromObservable(observable)) 157 - |> Js.Promise.then_(x => 158 - expect(x) 159 - |> toEqual([|Push(1), Push(2), End|]) 160 - |> Js.Promise.resolve 161 - ); 162 - }) 163 - ) 164 - ); 165 - 166 - describe("fromCallbag", () => { 167 - open Expect; 168 - 169 - testPromise("creates a source from a callbag (observable)", () => { 170 - let observable = Wonka_thelpers.observableFromArray([|1, 2|]); 171 - let callbag = Wonka_thelpers.callbagFromObservable(observable); 172 - 173 - Wonka_thelpers.testSource(Wonka.fromCallbag(callbag)) 174 - |> Js.Promise.then_(x => 175 - expect(x) 176 - |> toEqual([|Push(1), Push(2), End|]) 177 - |> Js.Promise.resolve 178 - ); 179 - }); 180 - 181 - testPromise("creates a source from a callbag (iterable)", () => { 182 - let callbag = Wonka_thelpers.callbagFromArray([|1, 2|]); 183 - 184 - Wonka_thelpers.testSource(Wonka.fromCallbag(callbag)) 185 - |> Js.Promise.then_(x => 186 - expect(x) 187 - |> toEqual([|Push(1), Push(2), End|]) 188 - |> Js.Promise.resolve 189 - ); 190 - }); 191 - }); 192 - }); 193 - 194 - describe("operator factories", () => { 195 - describe("map", () => { 196 - open Expect; 197 - 198 - it("maps all emissions of a source", () => { 199 - let num = ref(1); 200 - let nums = [||]; 201 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 202 - 203 - Wonka.map( 204 - (. _) => { 205 - let res = num^; 206 - num := num^ + 1; 207 - res; 208 - }, 209 - sink => 210 - sink(. 211 - Start( 212 - (. signal) => 213 - switch (signal) { 214 - | Pull => sink(. Push(1)) 215 - | _ => () 216 - }, 217 - ), 218 - ), 219 - (. signal) => 220 - switch (signal) { 221 - | Start(x) => 222 - talkback := x; 223 - x(. Pull); 224 - | Push(x) when num^ < 6 => 225 - ignore(Js.Array.push(x, nums)); 226 - talkback^(. Pull); 227 - | _ => () 228 - }, 229 - ); 230 - 231 - expect(nums) |> toEqual([|1, 2, 3, 4|]); 232 - }); 233 - 234 - testPromise("follows the spec for listenables", () => 235 - Wonka_thelpers.testWithListenable(Wonka.map((. x) => x)) 236 - |> Js.Promise.then_(x => 237 - expect(x) 238 - |> toEqual(([||], [|Push(1), Push(2), End|])) 239 - |> Js.Promise.resolve 240 - ) 241 - ); 242 - 243 - testPromise( 244 - "ends itself and source when its talkback receives the End signal", () => { 245 - let end_: talkbackT = Close; 246 - 247 - Wonka_thelpers.testTalkbackEnd(Wonka.map((. x) => x)) 248 - |> Js.Promise.then_(x => 249 - expect(x) 250 - |> toEqual(([|end_|], [|Push(1)|])) 251 - |> Js.Promise.resolve 252 - ); 253 - }); 254 - }); 255 - 256 - describe("filter", () => { 257 - open Expect; 258 - 259 - it("filters emissions according to a predicate", () => { 260 - let i = ref(1); 261 - let nums = [||]; 262 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 263 - 264 - Wonka.filter( 265 - (. x) => x mod 2 === 0, 266 - sink => 267 - sink(. 268 - Start( 269 - (. signal) => 270 - switch (signal) { 271 - | Pull => 272 - let num = i^; 273 - i := i^ + 1; 274 - sink(. Push(num)); 275 - | _ => () 276 - }, 277 - ), 278 - ), 279 - (. signal) => 280 - switch (signal) { 281 - | Start(x) => 282 - talkback := x; 283 - x(. Pull); 284 - | Push(x) when x < 6 => 285 - ignore(Js.Array.push(x, nums)); 286 - talkback^(. Pull); 287 - | _ => () 288 - }, 289 - ); 290 - 291 - expect(nums) |> toEqual([|2, 4|]); 292 - }); 293 - 294 - testPromise("follows the spec for listenables", () => 295 - Wonka_thelpers.testWithListenable(Wonka.filter((. _) => true)) 296 - |> Js.Promise.then_(x => 297 - expect(x) 298 - |> toEqual(([||], [|Push(1), Push(2), End|])) 299 - |> Js.Promise.resolve 300 - ) 301 - ); 302 - 303 - testPromise("follows the spec for listenables when filtering", () => 304 - Wonka_thelpers.testWithListenable(Wonka.filter((. _) => false)) 305 - |> Js.Promise.then_(x => 306 - expect(x) 307 - |> toEqual(([|Pull, Pull|], [|End|])) 308 - |> Js.Promise.resolve 309 - ) 310 - ); 311 - 312 - testPromise( 313 - "ends itself and source when its talkback receives the End signal", () => { 314 - let end_: talkbackT = Close; 315 - 316 - Wonka_thelpers.testTalkbackEnd(Wonka.filter((. _) => true)) 317 - |> Js.Promise.then_(x => 318 - expect(x) 319 - |> toEqual(([|end_|], [|Push(1)|])) 320 - |> Js.Promise.resolve 321 - ); 322 - }); 323 - }); 324 - 325 - describe("sample", () => { 326 - open Expect; 327 - open! Expect.Operators; 328 - 329 - afterEach(() => Jest.useRealTimers()); 330 - 331 - it("should sample the last emitted value from a source", () => { 332 - Jest.useFakeTimers(); 333 - let a = Wonka.interval(50); 334 - 335 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 336 - let signals = [||]; 337 - 338 - let source = Wonka.sample(Wonka.interval(100), a); 339 - 340 - source((. signal) => 341 - switch (signal) { 342 - | Start(x) => 343 - talkback := x; 344 - x(. Pull); 345 - | Push(_) => 346 - ignore(Js.Array.push(signal, signals)); 347 - talkback^(. Pull); 348 - | End => ignore(Js.Array.push(signal, signals)) 349 - } 350 - ); 351 - 352 - Jest.runTimersToTime(200); 353 - 354 - expect(signals) == [|Push(1), Push(3)|]; 355 - }); 356 - 357 - it("should emit an End signal when the source has emitted all values", () => { 358 - Jest.useFakeTimers(); 359 - let a = Wonka.interval(50); 360 - 361 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 362 - let signals = [||]; 363 - 364 - let source = Wonka.sample(Wonka.interval(100), a) |> Wonka.take(3); 365 - 366 - source((. signal) => 367 - switch (signal) { 368 - | Start(x) => 369 - talkback := x; 370 - x(. Pull); 371 - | Push(_) => 372 - ignore(Js.Array.push(signal, signals)); 373 - talkback^(. Pull); 374 - | End => ignore(Js.Array.push(signal, signals)) 375 - } 376 - ); 377 - 378 - Jest.runTimersToTime(300); 379 - 380 - expect(signals) == [|Push(1), Push(3), Push(5), End|]; 381 - }); 382 - }); 383 - 384 - describe("scan", () => { 385 - open Expect; 386 - 387 - it("folds emissions using an initial seed value", () => { 388 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 389 - let num = ref(1); 390 - 391 - let source = 392 - Wonka.scan( 393 - (. acc, x) => acc + x, 394 - 0, 395 - sink => 396 - sink(. 397 - Start( 398 - (. signal) => 399 - switch (signal) { 400 - | Pull => 401 - let i = num^; 402 - if (i <= 3) { 403 - num := num^ + 1; 404 - sink(. Push(i)); 405 - } else { 406 - sink(. End); 407 - }; 408 - | _ => () 409 - }, 410 - ), 411 - ), 412 - ); 413 - 414 - let res = [||]; 415 - 416 - source((. signal) => 417 - switch (signal) { 418 - | Start(x) => talkback := x 419 - | _ => ignore(Js.Array.push(signal, res)) 420 - } 421 - ); 422 - 423 - talkback^(. Pull); 424 - talkback^(. Pull); 425 - talkback^(. Pull); 426 - talkback^(. Pull); 427 - expect(res) |> toEqual([|Push(1), Push(3), Push(6), End|]); 428 - }); 429 - 430 - testPromise("follows the spec for listenables", () => 431 - Wonka_thelpers.testWithListenable(Wonka.scan((. _, x) => x, 0)) 432 - |> Js.Promise.then_(x => 433 - expect(x) 434 - |> toEqual(([||], [|Push(1), Push(2), End|])) 435 - |> Js.Promise.resolve 436 - ) 437 - ); 438 - 439 - testPromise( 440 - "ends itself and source when its talkback receives the End signal", () => { 441 - let end_: talkbackT = Close; 442 - 443 - Wonka_thelpers.testTalkbackEnd(Wonka.scan((. _, x) => x, 0)) 444 - |> Js.Promise.then_(x => 445 - expect(x) 446 - |> toEqual(([|end_|], [|Push(1)|])) 447 - |> Js.Promise.resolve 448 - ); 449 - }); 450 - }); 451 - 452 - describe("merge", () => { 453 - open Expect; 454 - open! Expect.Operators; 455 - 456 - it("merges different sources into a single one", () => { 457 - let a = Wonka.fromList([1, 2, 3]); 458 - let b = Wonka.fromList([4, 5, 6]); 459 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 460 - let signals = [||]; 461 - let source = Wonka.merge([|a, b|]); 462 - 463 - source((. signal) => 464 - switch (signal) { 465 - | Start(x) => 466 - talkback := x; 467 - x(. Pull); 468 - | Push(_) => 469 - ignore(Js.Array.push(signal, signals)); 470 - talkback^(. Pull); 471 - | End => ignore(Js.Array.push(signal, signals)) 472 - } 473 - ); 474 - 475 - expect(signals) 476 - == [|Push(1), Push(2), Push(3), Push(4), Push(5), Push(6), End|]; 477 - }); 478 - 479 - testPromise("follows the spec for listenables", () => 480 - Wonka_thelpers.testWithListenable(source => Wonka.merge([|source|])) 481 - |> Js.Promise.then_(x => 482 - expect(x) 483 - |> toEqual(([|Pull, Pull, Pull|], [|Push(1), Push(2), End|])) 484 - |> Js.Promise.resolve 485 - ) 486 - ); 487 - 488 - testPromise( 489 - "ends itself and source when its talkback receives the End signal", () => 490 - Wonka_thelpers.testTalkbackEnd(source => Wonka.merge([|source|])) 491 - |> Js.Promise.then_(x => 492 - expect(x) 493 - |> toEqual(([|Pull, Pull, Close|], [|Push(1)|])) 494 - |> Js.Promise.resolve 495 - ) 496 - ); 497 - }); 498 - 499 - describe("concat", () => { 500 - open Expect; 501 - open! Expect.Operators; 502 - 503 - it("concatenates different sources into a single one", () => { 504 - let a = Wonka.fromList([1, 2, 3]); 505 - let b = Wonka.fromList([4, 5, 6]); 506 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 507 - let signals = [||]; 508 - let source = Wonka.concat([|a, b|]); 509 - 510 - source((. signal) => 511 - switch (signal) { 512 - | Start(x) => 513 - talkback := x; 514 - x(. Pull); 515 - | Push(_) => 516 - ignore(Js.Array.push(signal, signals)); 517 - talkback^(. Pull); 518 - | End => ignore(Js.Array.push(signal, signals)) 519 - } 520 - ); 521 - 522 - expect(signals) 523 - == [|Push(1), Push(2), Push(3), Push(4), Push(5), Push(6), End|]; 524 - }); 525 - 526 - testPromise("follows the spec for listenables", () => 527 - Wonka_thelpers.testWithListenable(source => Wonka.concat([|source|])) 528 - |> Js.Promise.then_(x => 529 - expect(x) 530 - |> toEqual(([|Pull, Pull, Pull|], [|Push(1), Push(2), End|])) 531 - |> Js.Promise.resolve 532 - ) 533 - ); 534 - 535 - testPromise( 536 - "ends itself and source when its talkback receives the End signal", () => 537 - Wonka_thelpers.testTalkbackEnd(source => Wonka.concat([|source|])) 538 - |> Js.Promise.then_(x => 539 - expect(x) 540 - |> toEqual(([|Pull, Pull, Close|], [|Push(1)|])) 541 - |> Js.Promise.resolve 542 - ) 543 - ); 544 - }); 545 - 546 - describe("share", () => { 547 - open Expect; 548 - 549 - it("shares an underlying source with all sinks", () => { 550 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 551 - let aborterTb = ref((. _: Wonka_types.talkbackT) => ()); 552 - let num = ref(1); 553 - let nums = [||]; 554 - 555 - let source = 556 - Wonka.share(sink => 557 - sink(. 558 - Start( 559 - (. signal) => 560 - switch (signal) { 561 - | Pull => 562 - let i = num^; 563 - if (i <= 2) { 564 - num := num^ + 1; 565 - sink(. Push(i)); 566 - } else { 567 - sink(. End); 568 - }; 569 - | _ => () 570 - }, 571 - ), 572 - ) 573 - ); 574 - 575 - source((. signal) => 576 - switch (signal) { 577 - | Start(x) => talkback := x 578 - | _ => ignore(Js.Array.push(signal, nums)) 579 - } 580 - ); 581 - 582 - source((. signal) => 583 - switch (signal) { 584 - | Start(_) => () 585 - | _ => ignore(Js.Array.push(signal, nums)) 586 - } 587 - ); 588 - 589 - source((. signal) => 590 - switch (signal) { 591 - | Start(tb) => aborterTb := tb 592 - | _ => 593 - ignore(Js.Array.push(signal, nums)); 594 - aborterTb^(. Close); 595 - } 596 - ); 597 - 598 - talkback^(. Pull); 599 - let numsA = Array.copy(nums); 600 - talkback^(. Pull); 601 - talkback^(. Pull); 602 - talkback^(. Pull); 603 - expect((numsA, nums)) 604 - |> toEqual(( 605 - [|Push(1), Push(1), Push(1)|], 606 - [|Push(1), Push(1), Push(1), Push(2), Push(2), End, End|], 607 - )); 608 - }); 609 - 610 - testPromise("follows the spec for listenables", () => 611 - Wonka_thelpers.testWithListenable(Wonka.share) 612 - |> Js.Promise.then_(x => 613 - expect(x) 614 - |> toEqual(([||], [|Push(1), Push(2), End|])) 615 - |> Js.Promise.resolve 616 - ) 617 - ); 618 - 619 - testPromise( 620 - "ends itself and source when its talkback receives the End signal", () => { 621 - let end_: talkbackT = Close; 622 - 623 - Wonka_thelpers.testTalkbackEnd(Wonka.share) 624 - |> Js.Promise.then_(x => 625 - expect(x) 626 - |> toEqual(([|end_|], [|Push(1)|])) 627 - |> Js.Promise.resolve 628 - ); 629 - }); 630 - }); 631 - 632 - describe("combine", () => { 633 - open Expect; 634 - 635 - it("combines the latest values of two sources", () => { 636 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 637 - 638 - let makeSource = (factor: int) => { 639 - let num = ref(1); 640 - 641 - sink => { 642 - sink(. 643 - Start( 644 - (. signal) => 645 - switch (signal) { 646 - | Pull => 647 - if (num^ <= 2) { 648 - let i = num^ * factor; 649 - num := num^ + 1; 650 - sink(. Push(i)); 651 - } else { 652 - sink(. End); 653 - } 654 - | _ => () 655 - }, 656 - ), 657 - ); 658 - }; 659 - }; 660 - 661 - let sourceA = makeSource(1); 662 - let sourceB = makeSource(2); 663 - let source = Wonka.combine(sourceA, sourceB); 664 - let res = [||]; 665 - 666 - source((. signal) => 667 - switch (signal) { 668 - | Start(x) => talkback := x 669 - | _ => ignore(Js.Array.push(signal, res)) 670 - } 671 - ); 672 - 673 - talkback^(. Pull); 674 - talkback^(. Pull); 675 - talkback^(. Pull); 676 - talkback^(. Pull); 677 - expect(res) 678 - |> toEqual([|Push((1, 2)), Push((2, 2)), Push((2, 4)), End|]); 679 - }); 680 - 681 - testPromise("follows the spec for listenables", () => 682 - Wonka_thelpers.testWithListenable(source => { 683 - let shared = Wonka.share(source); 684 - Wonka.combine(shared, shared); 685 - }) 686 - |> Js.Promise.then_(x => 687 - expect(x) 688 - |> toEqual(( 689 - [||], 690 - [|Push((1, 1)), Push((2, 1)), Push((2, 2)), End|], 691 - )) 692 - |> Js.Promise.resolve 693 - ) 694 - ); 695 - 696 - testPromise( 697 - "ends itself and source when its talkback receives the End signal", () => { 698 - let end_: talkbackT = Close; 699 - 700 - Wonka_thelpers.testTalkbackEnd(source => { 701 - let shared = Wonka.share(source); 702 - Wonka.combine(shared, shared); 703 - }) 704 - |> Js.Promise.then_(x => 705 - expect(x) 706 - |> toEqual(([|end_|], [|Push((1, 1))|])) 707 - |> Js.Promise.resolve 708 - ); 709 - }); 710 - }); 711 - 712 - describe("take", () => { 713 - open Expect; 714 - 715 - it("only lets a maximum number of values through", () => { 716 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 717 - let num = ref(1); 718 - 719 - let source = 720 - Wonka.take(2, sink => 721 - sink(. 722 - Start( 723 - (. signal) => 724 - switch (signal) { 725 - | Pull => 726 - let i = num^; 727 - num := num^ + 1; 728 - sink(. Push(i)); 729 - | _ => () 730 - }, 731 - ), 732 - ) 733 - ); 734 - 735 - let res = [||]; 736 - 737 - source((. signal) => 738 - switch (signal) { 739 - | Start(x) => talkback := x 740 - | _ => ignore(Js.Array.push(signal, res)) 741 - } 742 - ); 743 - 744 - talkback^(. Pull); 745 - talkback^(. Pull); 746 - talkback^(. Pull); 747 - talkback^(. Pull); 748 - expect(res) |> toEqual([|Push(1), Push(2), End|]); 749 - }); 750 - 751 - it( 752 - "accepts the end of the source when max number of emissions is not reached", 753 - () => { 754 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 755 - let num = ref(1); 756 - 757 - let source = 758 - Wonka.take(2, sink => 759 - sink(. 760 - Start( 761 - (. signal) => 762 - switch (signal) { 763 - | Pull => 764 - let i = num^; 765 - if (i < 2) { 766 - num := num^ + 1; 767 - sink(. Push(i)); 768 - } else { 769 - sink(. End); 770 - }; 771 - | _ => () 772 - }, 773 - ), 774 - ) 775 - ); 776 - 777 - let res = [||]; 778 - 779 - source((. signal) => 780 - switch (signal) { 781 - | Start(x) => talkback := x 782 - | _ => ignore(Js.Array.push(signal, res)) 783 - } 784 - ); 785 - 786 - talkback^(. Pull); 787 - talkback^(. Pull); 788 - talkback^(. Pull); 789 - expect(res) |> toEqual([|Push(1), End|]); 790 - }); 791 - 792 - testPromise("follows the spec for listenables", () => 793 - Wonka_thelpers.testWithListenable(Wonka.take(10)) 794 - |> Js.Promise.then_(x => 795 - expect(x) 796 - |> toEqual(([||], [|Push(1), Push(2), End|])) 797 - |> Js.Promise.resolve 798 - ) 799 - ); 800 - 801 - testPromise("follows the spec for listenables when ending the source", () => { 802 - let end_: talkbackT = Close; 803 - 804 - Wonka_thelpers.testWithListenable(Wonka.take(1)) 805 - |> Js.Promise.then_(x => 806 - expect(x) 807 - |> toEqual(([|end_|], [|Push(1), End|])) 808 - |> Js.Promise.resolve 809 - ); 810 - }); 811 - 812 - testPromise( 813 - "ends itself and source when its talkback receives the End signal", () => { 814 - let end_: talkbackT = Close; 815 - 816 - Wonka_thelpers.testTalkbackEnd(Wonka.take(10)) 817 - |> Js.Promise.then_(x => 818 - expect(x) 819 - |> toEqual(([|end_|], [|Push(1)|])) 820 - |> Js.Promise.resolve 821 - ); 822 - }); 823 - }); 824 - 825 - describe("takeLast", () => { 826 - open Expect; 827 - 828 - it("only lets the last n values through on an entirely new source", () => { 829 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 830 - let num = ref(1); 831 - 832 - let source = 833 - Wonka.takeLast(2, sink => 834 - sink(. 835 - Start( 836 - (. signal) => 837 - switch (signal) { 838 - | Pull when num^ <= 4 => 839 - let i = num^; 840 - num := num^ + 1; 841 - sink(. Push(i)); 842 - | Pull => sink(. End) 843 - | _ => () 844 - }, 845 - ), 846 - ) 847 - ); 848 - 849 - let res = [||]; 850 - 851 - source((. signal) => 852 - switch (signal) { 853 - | Start(x) => talkback := x 854 - | _ => ignore(Js.Array.push(signal, res)) 855 - } 856 - ); 857 - 858 - talkback^(. Pull); 859 - talkback^(. Pull); 860 - talkback^(. Pull); 861 - expect(res) |> toEqual([|Push(3), Push(4), End|]); 862 - }); 863 - 864 - testPromise("follows the spec for listenables", () => 865 - Wonka_thelpers.testWithListenable(Wonka.takeLast(10)) 866 - |> Js.Promise.then_(x => 867 - expect(x) 868 - |> toEqual(( 869 - [|Pull, Pull, Pull|], 870 - [|/* empty since the source is a pullable */|], 871 - )) 872 - |> Js.Promise.resolve 873 - ) 874 - ); 875 - 876 - testPromise( 877 - "ends itself and source when its talkback receives the End signal", () => 878 - Wonka_thelpers.testTalkbackEnd(Wonka.takeLast(10)) 879 - |> Js.Promise.then_(x => 880 - expect(x) 881 - |> toEqual(([|Pull, Pull|], [||])) 882 - |> Js.Promise.resolve 883 - ) 884 - ); 885 - }); 886 - 887 - describe("takeWhile", () => { 888 - open Expect; 889 - 890 - it("only lets the last n values through on an entirely new source", () => { 891 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 892 - let num = ref(1); 893 - 894 - let source = 895 - Wonka.takeWhile( 896 - (. x) => x <= 2, 897 - sink => 898 - sink(. 899 - Start( 900 - (. signal) => 901 - switch (signal) { 902 - | Pull => 903 - let i = num^; 904 - num := num^ + 1; 905 - sink(. Push(i)); 906 - | _ => () 907 - }, 908 - ), 909 - ), 910 - ); 911 - 912 - let res = [||]; 913 - 914 - source((. signal) => 915 - switch (signal) { 916 - | Start(x) => talkback := x 917 - | _ => ignore(Js.Array.push(signal, res)) 918 - } 919 - ); 920 - 921 - talkback^(. Pull); 922 - talkback^(. Pull); 923 - talkback^(. Pull); 924 - talkback^(. Pull); 925 - 926 - expect(res) |> toEqual([|Push(1), Push(2), End|]); 927 - }); 928 - 929 - it( 930 - "accepts the end of the source when max number of emissions is not reached", 931 - () => { 932 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 933 - let num = ref(1); 934 - 935 - let source = 936 - Wonka.takeWhile( 937 - (. x) => x <= 5, 938 - sink => 939 - sink(. 940 - Start( 941 - (. signal) => 942 - switch (signal) { 943 - | Pull => 944 - let i = num^; 945 - if (i < 2) { 946 - num := num^ + 1; 947 - sink(. Push(i)); 948 - } else { 949 - sink(. End); 950 - }; 951 - | _ => () 952 - }, 953 - ), 954 - ), 955 - ); 956 - 957 - let res = [||]; 958 - 959 - source((. signal) => 960 - switch (signal) { 961 - | Start(x) => talkback := x 962 - | _ => ignore(Js.Array.push(signal, res)) 963 - } 964 - ); 965 - 966 - talkback^(. Pull); 967 - talkback^(. Pull); 968 - talkback^(. Pull); 969 - 970 - expect(res) |> toEqual([|Push(1), End|]); 971 - }); 972 - 973 - testPromise("follows the spec for listenables", () => 974 - Wonka_thelpers.testWithListenable(Wonka.takeWhile((. _) => true)) 975 - |> Js.Promise.then_(x => 976 - expect(x) 977 - |> toEqual(([||], [|Push(1), Push(2), End|])) 978 - |> Js.Promise.resolve 979 - ) 980 - ); 981 - 982 - testPromise("follows the spec for listenables when ending the source", () => { 983 - let end_: talkbackT = Close; 984 - 985 - Wonka_thelpers.testWithListenable(Wonka.takeWhile((. _) => false)) 986 - |> Js.Promise.then_(x => 987 - expect(x) |> toEqual(([|end_|], [|End|])) |> Js.Promise.resolve 988 - ); 989 - }); 990 - 991 - testPromise( 992 - "ends itself and source when its talkback receives the End signal", () => { 993 - let end_: talkbackT = Close; 994 - 995 - Wonka_thelpers.testTalkbackEnd(Wonka.takeWhile((. _) => true)) 996 - |> Js.Promise.then_(x => 997 - expect(x) 998 - |> toEqual(([|end_|], [|Push(1)|])) 999 - |> Js.Promise.resolve 1000 - ); 1001 - }); 1002 - }); 1003 - 1004 - describe("takeUntil", () => { 1005 - open Expect; 1006 - 1007 - it("only lets the last n values through on an entirely new source", () => { 1008 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1009 - let notify = ref((_: Wonka_types.talkbackT) => ()); 1010 - let num = ref(1); 1011 - 1012 - let notifier = sink => { 1013 - notify := 1014 - ( 1015 - signal => 1016 - switch (signal) { 1017 - | Pull => sink(. Push(0)) 1018 - | _ => () 1019 - } 1020 - ); 1021 - 1022 - sink(. Start(Wonka_helpers.talkbackPlaceholder)); 1023 - }; 1024 - 1025 - let source = 1026 - Wonka.takeUntil(notifier, sink => 1027 - sink(. 1028 - Start( 1029 - (. signal) => 1030 - switch (signal) { 1031 - | Pull when num^ <= 4 => 1032 - let i = num^; 1033 - if (i === 3) { 1034 - notify^(Pull); 1035 - }; 1036 - num := num^ + 1; 1037 - sink(. Push(i)); 1038 - | _ => () 1039 - }, 1040 - ), 1041 - ) 1042 - ); 1043 - 1044 - let res = [||]; 1045 - 1046 - source((. signal) => 1047 - switch (signal) { 1048 - | Start(x) => talkback := x 1049 - | _ => ignore(Js.Array.push(signal, res)) 1050 - } 1051 - ); 1052 - 1053 - talkback^(. Pull); 1054 - talkback^(. Pull); 1055 - talkback^(. Pull); 1056 - talkback^(. Pull); 1057 - 1058 - expect(res) |> toEqual([|Push(1), Push(2), End|]); 1059 - }); 1060 - 1061 - it( 1062 - "accepts the end of the source when max number of emissions is not reached", 1063 - () => { 1064 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1065 - let num = ref(1); 1066 - let notifier = sink => 1067 - sink(. Start(Wonka_helpers.talkbackPlaceholder)); 1068 - 1069 - let source = 1070 - Wonka.takeUntil(notifier, sink => 1071 - sink(. 1072 - Start( 1073 - (. signal) => 1074 - switch (signal) { 1075 - | Pull => 1076 - let i = num^; 1077 - if (num^ <= 2) { 1078 - num := num^ + 1; 1079 - sink(. Push(i)); 1080 - } else { 1081 - sink(. End); 1082 - }; 1083 - | _ => () 1084 - }, 1085 - ), 1086 - ) 1087 - ); 1088 - 1089 - let res = [||]; 1090 - 1091 - source((. signal) => 1092 - switch (signal) { 1093 - | Start(x) => talkback := x 1094 - | _ => ignore(Js.Array.push(signal, res)) 1095 - } 1096 - ); 1097 - 1098 - talkback^(. Pull); 1099 - talkback^(. Pull); 1100 - talkback^(. Pull); 1101 - talkback^(. Pull); 1102 - 1103 - expect(res) |> toEqual([|Push(1), Push(2), End|]); 1104 - }); 1105 - 1106 - testPromise("follows the spec for listenables", () => 1107 - Wonka_thelpers.testWithListenable(Wonka.takeUntil(Wonka.never)) 1108 - |> Js.Promise.then_(x => 1109 - expect(x) 1110 - |> toEqual(([||], [|Push(1), Push(2), End|])) 1111 - |> Js.Promise.resolve 1112 - ) 1113 - ); 1114 - 1115 - testPromise("follows the spec for listenables when ending the source", () => { 1116 - let end_: talkbackT = Close; 1117 - 1118 - Wonka_thelpers.testWithListenable(Wonka.takeUntil(Wonka.fromValue(0))) 1119 - |> Js.Promise.then_(x => 1120 - expect(x) |> toEqual(([|end_|], [|End|])) |> Js.Promise.resolve 1121 - ); 1122 - }); 1123 - 1124 - testPromise( 1125 - "ends itself and source when its talkback receives the End signal", () => { 1126 - let end_: talkbackT = Close; 1127 - 1128 - Wonka_thelpers.testTalkbackEnd(Wonka.takeUntil(Wonka.never)) 1129 - |> Js.Promise.then_(x => 1130 - expect(x) 1131 - |> toEqual(([|end_|], [|Push(1)|])) 1132 - |> Js.Promise.resolve 1133 - ); 1134 - }); 1135 - }); 1136 - 1137 - describe("skip", () => { 1138 - open Expect; 1139 - 1140 - it( 1141 - "only lets values through after a number of values have been filtered out", 1142 - () => { 1143 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1144 - let num = ref(1); 1145 - 1146 - let source = 1147 - Wonka.skip(2, sink => 1148 - sink(. 1149 - Start( 1150 - (. signal) => 1151 - switch (signal) { 1152 - | Pull when num^ <= 4 => 1153 - let i = num^; 1154 - num := num^ + 1; 1155 - sink(. Push(i)); 1156 - | Pull => sink(. End) 1157 - | _ => () 1158 - }, 1159 - ), 1160 - ) 1161 - ); 1162 - 1163 - let res = [||]; 1164 - 1165 - source((. signal) => 1166 - switch (signal) { 1167 - | Start(x) => talkback := x 1168 - | _ => ignore(Js.Array.push(signal, res)) 1169 - } 1170 - ); 1171 - 1172 - talkback^(. Pull); 1173 - talkback^(. Pull); 1174 - talkback^(. Pull); 1175 - expect(res) |> toEqual([|Push(3), Push(4), End|]); 1176 - }); 1177 - 1178 - testPromise("follows the spec for listenables", () => 1179 - Wonka_thelpers.testWithListenable(Wonka.skip(0)) 1180 - |> Js.Promise.then_(x => 1181 - expect(x) 1182 - |> toEqual(([||], [|Push(1), Push(2), End|])) 1183 - |> Js.Promise.resolve 1184 - ) 1185 - ); 1186 - 1187 - testPromise( 1188 - "follows the spec for listenables when skipping the source", () => 1189 - Wonka_thelpers.testWithListenable(Wonka.skip(10)) 1190 - |> Js.Promise.then_(x => 1191 - expect(x) 1192 - |> toEqual(([|Pull, Pull|], [|End|])) 1193 - |> Js.Promise.resolve 1194 - ) 1195 - ); 1196 - 1197 - testPromise( 1198 - "ends itself and source when its talkback receives the End signal", () => { 1199 - let end_: talkbackT = Close; 1200 - 1201 - Wonka_thelpers.testTalkbackEnd(Wonka.skip(10)) 1202 - |> Js.Promise.then_(x => 1203 - expect(x) 1204 - |> toEqual(([|Pull, end_|], [||])) 1205 - |> Js.Promise.resolve 1206 - ); 1207 - }); 1208 - }); 1209 - 1210 - describe("skipWhile", () => { 1211 - open Expect; 1212 - 1213 - it( 1214 - "only lets values through after the predicate returned false, including the first such value", 1215 - () => { 1216 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1217 - let num = ref(1); 1218 - 1219 - let source = 1220 - Wonka.skipWhile( 1221 - (. x) => x <= 2, 1222 - sink => 1223 - sink(. 1224 - Start( 1225 - (. signal) => 1226 - switch (signal) { 1227 - | Pull when num^ <= 4 => 1228 - let i = num^; 1229 - num := num^ + 1; 1230 - sink(. Push(i)); 1231 - | Pull => sink(. End) 1232 - | _ => () 1233 - }, 1234 - ), 1235 - ), 1236 - ); 1237 - 1238 - let res = [||]; 1239 - 1240 - source((. signal) => 1241 - switch (signal) { 1242 - | Start(x) => talkback := x 1243 - | _ => ignore(Js.Array.push(signal, res)) 1244 - } 1245 - ); 1246 - 1247 - talkback^(. Pull); 1248 - talkback^(. Pull); 1249 - talkback^(. Pull); 1250 - expect(res) |> toEqual([|Push(3), Push(4), End|]); 1251 - }, 1252 - ); 1253 - 1254 - testPromise("follows the spec for listenables", () => 1255 - Wonka_thelpers.testWithListenable(Wonka.skipWhile((. _) => false)) 1256 - |> Js.Promise.then_(x => 1257 - expect(x) 1258 - |> toEqual(([||], [|Push(1), Push(2), End|])) 1259 - |> Js.Promise.resolve 1260 - ) 1261 - ); 1262 - 1263 - testPromise( 1264 - "follows the spec for listenables when skipping the source", () => 1265 - Wonka_thelpers.testWithListenable(Wonka.skipWhile((. _) => true)) 1266 - |> Js.Promise.then_(x => 1267 - expect(x) 1268 - |> toEqual(([|Pull, Pull|], [|End|])) 1269 - |> Js.Promise.resolve 1270 - ) 1271 - ); 1272 - 1273 - testPromise( 1274 - "ends itself and source when its talkback receives the End signal", () => { 1275 - let end_: talkbackT = Close; 1276 - 1277 - Wonka_thelpers.testTalkbackEnd(Wonka.skipWhile((. _) => false)) 1278 - |> Js.Promise.then_(x => 1279 - expect(x) 1280 - |> toEqual(([|end_|], [|Push(1)|])) 1281 - |> Js.Promise.resolve 1282 - ); 1283 - }); 1284 - }); 1285 - 1286 - describe("skipUntil", () => { 1287 - open Expect; 1288 - 1289 - it("only lets values through after the notifier emits a value", () => { 1290 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1291 - let notify = ref((_: Wonka_types.talkbackT) => ()); 1292 - let num = ref(1); 1293 - 1294 - let notifier = sink => { 1295 - notify := 1296 - ( 1297 - signal => 1298 - switch (signal) { 1299 - | Pull => sink(. Push(0)) 1300 - | _ => () 1301 - } 1302 - ); 1303 - 1304 - sink(. Start(Wonka_helpers.talkbackPlaceholder)); 1305 - }; 1306 - 1307 - let source = 1308 - Wonka.skipUntil(notifier, sink => 1309 - sink(. 1310 - Start( 1311 - (. signal) => 1312 - switch (signal) { 1313 - | Pull when num^ <= 4 => 1314 - let i = num^; 1315 - if (i === 3) { 1316 - notify^(Pull); 1317 - }; 1318 - num := num^ + 1; 1319 - sink(. Push(i)); 1320 - | Pull => sink(. End) 1321 - | _ => () 1322 - }, 1323 - ), 1324 - ) 1325 - ); 1326 - 1327 - let res = [||]; 1328 - 1329 - source((. signal) => 1330 - switch (signal) { 1331 - | Start(x) => talkback := x 1332 - | _ => ignore(Js.Array.push(signal, res)) 1333 - } 1334 - ); 1335 - 1336 - talkback^(. Pull); 1337 - talkback^(. Pull); 1338 - talkback^(. Pull); 1339 - talkback^(. Pull); 1340 - 1341 - expect(res) |> toEqual([|Push(3), Push(4), End|]); 1342 - }); 1343 - 1344 - it( 1345 - "accepts the end of the source when max number of emissions is not reached", 1346 - () => { 1347 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1348 - let num = ref(1); 1349 - let notifier = sink => 1350 - sink(. Start(Wonka_helpers.talkbackPlaceholder)); 1351 - 1352 - let source = 1353 - Wonka.skipUntil(notifier, sink => 1354 - sink(. 1355 - Start( 1356 - (. signal) => 1357 - switch (signal) { 1358 - | Pull => 1359 - let i = num^; 1360 - if (i < 2) { 1361 - num := num^ + 1; 1362 - sink(. Push(i)); 1363 - } else { 1364 - sink(. End); 1365 - }; 1366 - | _ => () 1367 - }, 1368 - ), 1369 - ) 1370 - ); 1371 - 1372 - let res = [||]; 1373 - 1374 - source((. signal) => 1375 - switch (signal) { 1376 - | Start(x) => talkback := x 1377 - | _ => ignore(Js.Array.push(signal, res)) 1378 - } 1379 - ); 1380 - 1381 - talkback^(. Pull); 1382 - talkback^(. Pull); 1383 - talkback^(. Pull); 1384 - 1385 - expect(res) |> toEqual([|End|]); 1386 - }); 1387 - 1388 - testPromise("follows the spec for listenables", () => 1389 - Wonka_thelpers.testWithListenable(Wonka.skipUntil(Wonka.never)) 1390 - |> Js.Promise.then_(x => 1391 - expect(x) 1392 - |> toEqual(([|Pull, Pull, Pull|], [|End|])) 1393 - |> Js.Promise.resolve 1394 - ) 1395 - ); 1396 - 1397 - testPromise( 1398 - "follows the spec for listenables when skipping the source", () => 1399 - Wonka_thelpers.testWithListenable(Wonka.skipUntil(Wonka.fromValue(0))) 1400 - |> Js.Promise.then_(x => 1401 - expect(x) 1402 - |> toEqual(([|Pull|], [|Push(1), Push(2), End|])) 1403 - |> Js.Promise.resolve 1404 - ) 1405 - ); 1406 - 1407 - testPromise( 1408 - "ends itself and source when its talkback receives the End signal", () => { 1409 - let end_: talkbackT = Close; 1410 - 1411 - Wonka_thelpers.testTalkbackEnd(Wonka.skipUntil(Wonka.fromValue(0))) 1412 - |> Js.Promise.then_(x => 1413 - expect(x) 1414 - |> toEqual(([|Pull, end_|], [|Push(1)|])) 1415 - |> Js.Promise.resolve 1416 - ); 1417 - }); 1418 - }); 1419 - 1420 - describe("flatten", () => 1421 - Expect.( 1422 - it("merges the result of multiple pullables into its source", () => { 1423 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1424 - let source = 1425 - Wonka.fromList([Wonka.fromList([1, 2]), Wonka.fromList([1, 2])]) 1426 - |> Wonka.flatten; 1427 - 1428 - let res = [||]; 1429 - 1430 - source((. signal) => 1431 - switch (signal) { 1432 - | Start(x) => talkback := x 1433 - | _ => ignore(Js.Array.push(signal, res)) 1434 - } 1435 - ); 1436 - 1437 - talkback^(. Pull); 1438 - talkback^(. Pull); 1439 - talkback^(. Pull); 1440 - talkback^(. Pull); 1441 - talkback^(. Pull); 1442 - expect(res) 1443 - |> toEqual([|Push(1), Push(2), Push(1), Push(2), End|]); 1444 - }) 1445 - ) 1446 - ); 1447 - 1448 - describe("switchMap", () => { 1449 - afterEach(() => Jest.useRealTimers()); 1450 - open Expect; 1451 - open! Expect.Operators; 1452 - 1453 - it("maps from a source and switches to a new source", () => { 1454 - let a = Wonka.fromList([1, 2, 3]); 1455 - 1456 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1457 - let signals = [||]; 1458 - let source = Wonka.switchMap((. x) => Wonka.fromList([x * x]), a); 1459 - 1460 - source((. signal) => 1461 - switch (signal) { 1462 - | Start(x) => 1463 - talkback := x; 1464 - x(. Pull); 1465 - | Push(_) => 1466 - ignore(Js.Array.push(signal, signals)); 1467 - talkback^(. Pull); 1468 - | End => ignore(Js.Array.push(signal, signals)) 1469 - } 1470 - ); 1471 - 1472 - expect(signals) == [|Push(1), Push(4), Push(9), End|]; 1473 - }); 1474 - 1475 - it("unsubscribes from previous subscriptions", () => { 1476 - Jest.useFakeTimers(); 1477 - 1478 - let a = Wonka.interval(100); 1479 - 1480 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1481 - let signals = [||]; 1482 - let source = 1483 - Wonka.switchMap((. _) => Wonka.interval(25), a) |> Wonka.take(5); 1484 - 1485 - source((. signal) => 1486 - switch (signal) { 1487 - | Start(x) => 1488 - talkback := x; 1489 - x(. Pull); 1490 - | Push(_) => 1491 - ignore(Js.Array.push(signal, signals)); 1492 - talkback^(. Pull); 1493 - | End => ignore(Js.Array.push(signal, signals)) 1494 - } 1495 - ); 1496 - 1497 - Jest.runTimersToTime(300); 1498 - 1499 - expect(signals) 1500 - == [|Push(0), Push(1), Push(2), Push(0), Push(1), End|]; 1501 - }); 1502 - 1503 - testPromise("follows the spec for listenables", () => 1504 - Wonka_thelpers.testWithListenable(source => 1505 - Wonka.switchMap((. x) => x, Wonka.fromList([source])) 1506 - ) 1507 - |> Js.Promise.then_(x => 1508 - expect(x) 1509 - |> toEqual(([|Pull, Pull, Pull|], [|Push(1), Push(2), End|])) 1510 - |> Js.Promise.resolve 1511 - ) 1512 - ); 1513 - 1514 - testPromise( 1515 - "ends itself and source when its talkback receives the End signal", () => 1516 - Wonka_thelpers.testTalkbackEnd(source => 1517 - Wonka.switchMap((. x) => x, Wonka.fromList([source])) 1518 - ) 1519 - |> Js.Promise.then_(x => 1520 - expect(x) 1521 - |> toEqual(([|Pull, Pull, Close|], [|Push(1)|])) 1522 - |> Js.Promise.resolve 1523 - ) 1524 - ); 1525 - }); 1526 - 1527 - describe("buffer", () => { 1528 - open Expect; 1529 - open! Expect.Operators; 1530 - 1531 - beforeEach(() => Jest.useFakeTimers()); 1532 - afterEach(() => Jest.useRealTimers()); 1533 - 1534 - it("should buffer values and emit them on each notifier tick", () => { 1535 - let a = Wonka.interval(50); 1536 - 1537 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1538 - let signals = [||]; 1539 - 1540 - let source = Wonka.buffer(Wonka.interval(100), a) |> Wonka.take(2); 1541 - 1542 - source((. signal) => 1543 - switch (signal) { 1544 - | Start(x) => 1545 - talkback := x; 1546 - x(. Pull); 1547 - | Push(_) => 1548 - ignore(Js.Array.push(signal, signals)); 1549 - talkback^(. Pull); 1550 - | End => ignore(Js.Array.push(signal, signals)) 1551 - } 1552 - ); 1553 - 1554 - Jest.runTimersToTime(400); 1555 - 1556 - expect(signals) == [|Push([|0, 1|]), Push([|2, 3|]), End|]; 1557 - }); 1558 - 1559 - it("should end when the notifier ends", () => { 1560 - let a = Wonka.interval(50) |> Wonka.take(3); 1561 - 1562 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1563 - let signals = [||]; 1564 - 1565 - let source = Wonka.buffer(Wonka.interval(100), a); 1566 - 1567 - source((. signal) => 1568 - switch (signal) { 1569 - | Start(x) => 1570 - talkback := x; 1571 - x(. Pull); 1572 - | Push(_) => 1573 - ignore(Js.Array.push(signal, signals)); 1574 - talkback^(. Pull); 1575 - | End => ignore(Js.Array.push(signal, signals)) 1576 - } 1577 - ); 1578 - 1579 - Jest.runTimersToTime(400); 1580 - 1581 - expect(signals) == [|Push([|0, 1|]), Push([|2|]), End|]; 1582 - }); 1583 - }); 1584 - }); 1585 - 1586 - describe("sink factories", () => { 1587 - describe("forEach", () => 1588 - Expect.( 1589 - it("calls a function for each emission of the passed source", () => { 1590 - let i = ref(0); 1591 - let nums = [||]; 1592 - 1593 - let source = sink => { 1594 - sink(. 1595 - Start( 1596 - (. signal) => 1597 - switch (signal) { 1598 - | Pull when i^ < 4 => 1599 - let num = i^; 1600 - i := i^ + 1; 1601 - sink(. Push(num)); 1602 - | Pull => sink(. End) 1603 - | _ => () 1604 - }, 1605 - ), 1606 - ); 1607 - }; 1608 - 1609 - Wonka.forEach((. x) => ignore(Js.Array.push(x, nums)), source); 1610 - expect(nums) |> toEqual([|0, 1, 2, 3|]); 1611 - }) 1612 - ) 1613 - ); 1614 - 1615 - describe("subscribe", () => 1616 - Expect.( 1617 - it( 1618 - "calls a function for each emission of the passed source and stops when unsubscribed", 1619 - () => { 1620 - let i = ref(0); 1621 - let nums = [||]; 1622 - let push = ref(() => ()); 1623 - 1624 - let source = sink => { 1625 - push := 1626 - ( 1627 - () => { 1628 - let num = i^; 1629 - i := i^ + 1; 1630 - sink(. Push(num)); 1631 - } 1632 - ); 1633 - 1634 - sink(. Start(Wonka_helpers.talkbackPlaceholder)); 1635 - }; 1636 - 1637 - let {unsubscribe} = 1638 - Wonka.subscribe( 1639 - (. x) => ignore(Js.Array.push(x, nums)), 1640 - source, 1641 - ); 1642 - 1643 - push^(); 1644 - push^(); 1645 - unsubscribe(); 1646 - push^(); 1647 - push^(); 1648 - 1649 - expect(nums) |> toEqual([|0, 1|]); 1650 - }, 1651 - ) 1652 - ) 1653 - ); 1654 - 1655 - describe("toObservable", () => 1656 - Expect.( 1657 - testPromise("should convert a source to an Observable", () => { 1658 - let source = Wonka.fromArray([|1, 2|]); 1659 - let observable = 1660 - Wonka.toObservable(source) |> Wonka_thelpers.observableFrom; 1661 - let values = [||]; 1662 - 1663 - let promise = 1664 - observable->Wonka_thelpers.observableForEach(value => 1665 - ignore(Js.Array.push(value, values)) 1666 - ); 1667 - 1668 - promise 1669 - |> Js.Promise.then_(() => 1670 - expect(values) |> toEqual([|1, 2|]) |> Js.Promise.resolve 1671 - ); 1672 - }) 1673 - ) 1674 - ); 1675 - 1676 - describe("toCallbag", () => 1677 - Expect.( 1678 - it("should convert a source to a Callbag", () => { 1679 - let source = Wonka.fromArray([|1, 2|]); 1680 - let callbag = Wonka.toCallbag(source); 1681 - let values = [||]; 1682 - 1683 - ( 1684 - Wonka_thelpers.callbagIterate(. value => 1685 - ignore(Js.Array.push(value, values)) 1686 - ) 1687 - )(. 1688 - callbag, 1689 - ); 1690 - 1691 - expect(values) |> toEqual([|1, 2|]); 1692 - }) 1693 - ) 1694 - ); 1695 - 1696 - describe("toArray", () => { 1697 - open Expect; 1698 - 1699 - it("converts iterable sources to arrays", () => { 1700 - let input = [|1, 2, 3|]; 1701 - let output = Wonka.fromArray(input) |> Wonka.toArray; 1702 - expect(output) |> toEqual(input); 1703 - }); 1704 - 1705 - it("converts mapped iterable sources to arrays", () => { 1706 - let input = [|1, 2, 3|]; 1707 - let output = 1708 - Wonka.fromArray(input) |> Wonka.map((. x) => x) |> Wonka.toArray; 1709 - expect(output) |> toEqual(input); 1710 - }); 1711 - 1712 - it("converts concatenated iterable sources to arrays", () => { 1713 - let inputA = [|1, 2, 3|]; 1714 - let inputB = [|1, 2, 3|]; 1715 - let input = Array.append(inputA, inputB); 1716 - 1717 - let output = 1718 - Wonka.concat([|Wonka.fromArray(inputA), Wonka.fromArray(inputB)|]) 1719 - |> Wonka.toArray; 1720 - 1721 - expect(output) |> toEqual(input); 1722 - }); 1723 - 1724 - it("ignores and closes asynchronous push streams", () => { 1725 - let input = [|1, 2, 3|]; 1726 - let source = Wonka.concat([|Wonka.fromArray(input), Wonka.never|]); 1727 - let (signals, wrappedSource) = 1728 - source |> Wonka_thelpers.testSourceOperator; 1729 - 1730 - ignore(Wonka.toArray(wrappedSource)); 1731 - expect(signals) |> toEqual([|Pull, Close|]); 1732 - }); 1733 - }); 1734 - }); 1735 - 1736 - describe("chains (integration)", () => 1737 - Expect.( 1738 - it("fromArray, map, forEach", () => { 1739 - let input = Array.mapi((i, _) => i, Array.make(1000, 1)); 1740 - let output = Array.map(x => string_of_int(x)); 1741 - let actual = [||]; 1742 - 1743 - input 1744 - |> Wonka.fromArray 1745 - |> Wonka.map((. x) => string_of_int(x)) 1746 - |> Wonka.forEach((. x) => ignore(Js.Array.push(x, actual))); 1747 - 1748 - expect(output) |> toEqual(output); 1749 - }) 1750 - ) 1751 - ); 1752 - 1753 - describe("subject", () => { 1754 - open Expect; 1755 - open! Expect.Operators; 1756 - 1757 - it("sends values passed to .next to puller sinks", () => { 1758 - let signals = [||]; 1759 - 1760 - let subject = Wonka.makeSubject(); 1761 - 1762 - subject.source((. signal) => 1763 - switch (signal) { 1764 - | Start(_) => ignore() 1765 - | Push(_) => ignore(Js.Array.push(signal, signals)) 1766 - | End => ignore(Js.Array.push(signal, signals)) 1767 - } 1768 - ); 1769 - 1770 - subject.next(10); 1771 - subject.next(20); 1772 - subject.next(30); 1773 - subject.next(40); 1774 - subject.complete(); 1775 - 1776 - expect(signals) == [|Push(10), Push(20), Push(30), Push(40), End|]; 1777 - }); 1778 - 1779 - it("handles multiple sinks", () => { 1780 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1781 - let signalsOne = [||]; 1782 - let signalsTwo = [||]; 1783 - 1784 - let subject = Wonka.makeSubject(); 1785 - 1786 - subject.source((. signal) => 1787 - switch (signal) { 1788 - | Start(x) => talkback := x 1789 - | Push(_) => ignore(Js.Array.push(signal, signalsOne)) 1790 - | End => ignore(Js.Array.push(signal, signalsOne)) 1791 - } 1792 - ); 1793 - 1794 - subject.source((. signal) => 1795 - switch (signal) { 1796 - | Start(_) => ignore() 1797 - | Push(_) => ignore(Js.Array.push(signal, signalsTwo)) 1798 - | End => ignore(Js.Array.push(signal, signalsTwo)) 1799 - } 1800 - ); 1801 - 1802 - subject.next(10); 1803 - subject.next(20); 1804 - subject.next(30); 1805 - 1806 - talkback^(. Close); 1807 - 1808 - subject.next(40); 1809 - subject.next(50); 1810 - 1811 - subject.complete(); 1812 - 1813 - expect((signalsOne, signalsTwo)) 1814 - == ( 1815 - [|Push(10), Push(20), Push(30)|], 1816 - [|Push(10), Push(20), Push(30), Push(40), Push(50), End|], 1817 - ); 1818 - }); 1819 - 1820 - it("handles multiple sinks that subscribe and close at different times", () => { 1821 - let talkbackOne = ref((. _: Wonka_types.talkbackT) => ()); 1822 - let talkbackTwo = ref((. _: Wonka_types.talkbackT) => ()); 1823 - let signalsOne = [||]; 1824 - let signalsTwo = [||]; 1825 - 1826 - let subject = Wonka.makeSubject(); 1827 - 1828 - subject.next(10); 1829 - subject.next(20); 1830 - 1831 - subject.source((. signal) => 1832 - switch (signal) { 1833 - | Start(x) => talkbackOne := x 1834 - | Push(_) => ignore(Js.Array.push(signal, signalsOne)) 1835 - | End => ignore(Js.Array.push(signal, signalsOne)) 1836 - } 1837 - ); 1838 - 1839 - subject.next(30); 1840 - 1841 - subject.source((. signal) => 1842 - switch (signal) { 1843 - | Start(x) => talkbackTwo := x 1844 - | Push(_) => ignore(Js.Array.push(signal, signalsTwo)) 1845 - | End => ignore(Js.Array.push(signal, signalsTwo)) 1846 - } 1847 - ); 1848 - 1849 - subject.next(40); 1850 - subject.next(50); 1851 - 1852 - talkbackTwo^(. Close); 1853 - 1854 - subject.next(60); 1855 - 1856 - talkbackOne^(. Close); 1857 - 1858 - subject.next(70); 1859 - subject.complete(); 1860 - 1861 - expect((signalsOne, signalsTwo)) 1862 - == ( 1863 - [|Push(30), Push(40), Push(50), Push(60)|], 1864 - [|Push(40), Push(50)|], 1865 - ); 1866 - }); 1867 - }); 1868 - 1869 - describe("web operators", () => { 1870 - describe("delay", () => { 1871 - open Expect; 1872 - open! Expect.Operators; 1873 - 1874 - afterEach(() => Jest.useRealTimers()); 1875 - 1876 - it("should not emit values before specified delay", () => { 1877 - Jest.useFakeTimers(); 1878 - let a = Wonka.fromList([1, 2, 3]); 1879 - 1880 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1881 - let signals = [||]; 1882 - 1883 - let source = WonkaJs.delay(200, a) |> Wonka.take(3); 1884 - 1885 - source((. signal) => 1886 - switch (signal) { 1887 - | Start(x) => 1888 - talkback := x; 1889 - x(. Pull); 1890 - | Push(_) => 1891 - ignore(Js.Array.push(signal, signals)); 1892 - talkback^(. Pull); 1893 - | End => ignore(Js.Array.push(signal, signals)) 1894 - } 1895 - ); 1896 - 1897 - expect(signals) == [||]; 1898 - }); 1899 - 1900 - it("should emit values after specified delay", () => { 1901 - Jest.useFakeTimers(); 1902 - let a = Wonka.fromList([1, 2, 3]); 1903 - 1904 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1905 - let signals = [||]; 1906 - 1907 - let source = WonkaJs.delay(200, a) |> Wonka.take(3); 1908 - 1909 - source((. signal) => 1910 - switch (signal) { 1911 - | Start(x) => 1912 - talkback := x; 1913 - x(. Pull); 1914 - | Push(_) => 1915 - ignore(Js.Array.push(signal, signals)); 1916 - talkback^(. Pull); 1917 - | End => ignore(Js.Array.push(signal, signals)) 1918 - } 1919 - ); 1920 - 1921 - Jest.runTimersToTime(400); 1922 - 1923 - expect(signals) == [|Push(1), Push(2)|]; 1924 - }); 1925 - 1926 - it("should emit an End signal when the source has emitted all values", () => { 1927 - Jest.useFakeTimers(); 1928 - let a = Wonka.fromList([1, 2, 3]); 1929 - 1930 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1931 - let signals = [||]; 1932 - 1933 - let source = WonkaJs.delay(200, a) |> Wonka.take(3); 1934 - 1935 - source((. signal) => 1936 - switch (signal) { 1937 - | Start(x) => 1938 - talkback := x; 1939 - x(. Pull); 1940 - | Push(_) => 1941 - ignore(Js.Array.push(signal, signals)); 1942 - talkback^(. Pull); 1943 - | End => ignore(Js.Array.push(signal, signals)) 1944 - } 1945 - ); 1946 - 1947 - Jest.runTimersToTime(600); 1948 - 1949 - expect(signals) == [|Push(1), Push(2), Push(3), End|]; 1950 - }); 1951 - }); 1952 - 1953 - describe("throttle", () => { 1954 - open Expect; 1955 - open! Expect.Operators; 1956 - 1957 - afterEach(() => Jest.useRealTimers()); 1958 - 1959 - it( 1960 - "should not emit values before specified throttle (but include values on leading edge)", 1961 - () => { 1962 - Jest.useFakeTimers(); 1963 - let a = Wonka.interval(100); 1964 - 1965 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1966 - let signals = [||]; 1967 - 1968 - let source = WonkaJs.throttle((. _) => 600, a) |> Wonka.take(3); 1969 - 1970 - source((. signal) => 1971 - switch (signal) { 1972 - | Start(x) => 1973 - talkback := x; 1974 - x(. Pull); 1975 - | Push(_) => 1976 - ignore(Js.Array.push(signal, signals)); 1977 - talkback^(. Pull); 1978 - | End => ignore(Js.Array.push(signal, signals)) 1979 - } 1980 - ); 1981 - 1982 - Jest.runTimersToTime(400); 1983 - 1984 - expect(signals) == [|Push(0)|]; 1985 - }, 1986 - ); 1987 - 1988 - it("should throttle emissions by the specified throttle", () => { 1989 - Jest.useFakeTimers(); 1990 - let a = Wonka.interval(100); 1991 - 1992 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 1993 - let signals = [||]; 1994 - 1995 - let source = WonkaJs.throttle((. _) => 600, a) |> Wonka.take(3); 1996 - 1997 - source((. signal) => 1998 - switch (signal) { 1999 - | Start(x) => 2000 - talkback := x; 2001 - x(. Pull); 2002 - | Push(_) => 2003 - ignore(Js.Array.push(signal, signals)); 2004 - talkback^(. Pull); 2005 - | End => ignore(Js.Array.push(signal, signals)) 2006 - } 2007 - ); 2008 - 2009 - Jest.runTimersToTime(1000); 2010 - 2011 - expect(signals) == [|Push(0), Push(7)|]; 2012 - }); 2013 - 2014 - it("should emit an End signal when the source has emitted all values", () => { 2015 - Jest.useFakeTimers(); 2016 - let a = Wonka.interval(100); 2017 - 2018 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 2019 - let signals = [||]; 2020 - 2021 - let source = WonkaJs.throttle((. _) => 600, a) |> Wonka.take(3); 2022 - 2023 - source((. signal) => 2024 - switch (signal) { 2025 - | Start(x) => 2026 - talkback := x; 2027 - x(. Pull); 2028 - | Push(_) => 2029 - ignore(Js.Array.push(signal, signals)); 2030 - talkback^(. Pull); 2031 - | End => ignore(Js.Array.push(signal, signals)) 2032 - } 2033 - ); 2034 - 2035 - Jest.runTimersToTime(1500); 2036 - 2037 - expect(signals) == [|Push(0), Push(7), Push(14), End|]; 2038 - }); 2039 - }); 2040 - 2041 - describe("debounce", () => { 2042 - open Expect; 2043 - open! Expect.Operators; 2044 - 2045 - afterEach(() => Jest.useRealTimers()); 2046 - 2047 - it( 2048 - "should not emit values if emitted before the debounce specified by the duration selector", 2049 - () => { 2050 - Jest.useFakeTimers(); 2051 - let a = Wonka.fromList([1, 2, 3]); 2052 - 2053 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 2054 - let signals = [||]; 2055 - 2056 - let source = WonkaJs.debounce((. _) => 1000, a) |> Wonka.take(3); 2057 - 2058 - source((. signal) => 2059 - switch (signal) { 2060 - | Start(x) => 2061 - talkback := x; 2062 - x(. Pull); 2063 - | Push(_) => 2064 - ignore(Js.Array.push(signal, signals)); 2065 - talkback^(. Pull); 2066 - | End => ignore(Js.Array.push(signal, signals)) 2067 - } 2068 - ); 2069 - 2070 - Jest.runTimersToTime(500); 2071 - 2072 - expect(signals) == [||]; 2073 - }, 2074 - ); 2075 - 2076 - it("should debounce emissions based on the duration selector", () => { 2077 - Jest.useFakeTimers(); 2078 - let a = Wonka.fromList([1, 2, 3]); 2079 - 2080 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 2081 - let signals = [||]; 2082 - 2083 - let source = WonkaJs.debounce((. _) => 1000, a) |> Wonka.take(3); 2084 - 2085 - source((. signal) => 2086 - switch (signal) { 2087 - | Start(x) => 2088 - talkback := x; 2089 - x(. Pull); 2090 - | Push(_) => 2091 - ignore(Js.Array.push(signal, signals)); 2092 - talkback^(. Pull); 2093 - | End => ignore(Js.Array.push(signal, signals)) 2094 - } 2095 - ); 2096 - 2097 - Jest.runTimersToTime(2000); 2098 - 2099 - expect(signals) == [|Push(1), Push(2)|]; 2100 - }); 2101 - 2102 - it("should emit an End signal when the source has emitted all values", () => { 2103 - Jest.useFakeTimers(); 2104 - let a = Wonka.fromList([1, 2, 3]); 2105 - 2106 - let talkback = ref((. _: Wonka_types.talkbackT) => ()); 2107 - let signals = [||]; 2108 - 2109 - let source = WonkaJs.debounce((. _) => 1000, a) |> Wonka.take(3); 2110 - 2111 - source((. signal) => 2112 - switch (signal) { 2113 - | Start(x) => 2114 - talkback := x; 2115 - x(. Pull); 2116 - | Push(_) => 2117 - ignore(Js.Array.push(signal, signals)); 2118 - talkback^(. Pull); 2119 - | End => ignore(Js.Array.push(signal, signals)) 2120 - } 2121 - ); 2122 - 2123 - Jest.runTimersToTime(3000); 2124 - 2125 - expect(signals) == [|Push(1), Push(2), Push(3), End|]; 2126 - }); 2127 - }); 2128 - 2129 - describe("toPromise", () => { 2130 - open Expect; 2131 - open! Expect.Operators; 2132 - 2133 - testPromise("should convert a source to a Promise", () => { 2134 - let a = Wonka.fromValue(1); 2135 - 2136 - a 2137 - |> WonkaJs.toPromise 2138 - |> Js.Promise.then_(x => expect(x) |> toEqual(1) |> Js.Promise.resolve); 2139 - }); 2140 - 2141 - testPromise("should resolve only the last emitted value from a source", () => { 2142 - let a = Wonka.fromList([1, 2, 3]); 2143 - 2144 - a 2145 - |> WonkaJs.toPromise 2146 - |> Js.Promise.then_(x => expect(x) |> toEqual(3) |> Js.Promise.resolve); 2147 - }); 2148 - }); 2149 - });
-149
__tests__/wonka_thelpers.re
··· 1 - open Wonka_types; 2 - 3 - let testWithListenable = operator => { 4 - let sink = ref((. _: signalT(int)) => ()); 5 - let signals = [||]; 6 - let source = x => { 7 - sink := x; 8 - x(. Start((. signal) => ignore(Js.Array.push(signal, signals)))); 9 - }; 10 - 11 - let talkback = ref((. _: talkbackT) => ()); 12 - let res = [||]; 13 - operator(source, (. signal) => 14 - switch (signal) { 15 - | Start(x) => talkback := x 16 - | _ => ignore(Js.Array.push(signal, res)) 17 - } 18 - ); 19 - 20 - Js.Promise.make((~resolve, ~reject as _) => { 21 - sink^(. Push(1)); 22 - ignore( 23 - Js.Global.setTimeout( 24 - () => { 25 - sink^(. Push(2)); 26 - ignore( 27 - Js.Global.setTimeout( 28 - () => { 29 - sink^(. End); 30 - ignore( 31 - Js.Global.setTimeout(() => resolve(. (signals, res)), 0), 32 - ); 33 - }, 34 - 0, 35 - ), 36 - ); 37 - }, 38 - 0, 39 - ), 40 - ); 41 - }); 42 - }; 43 - 44 - let testTalkbackEnd = operator => { 45 - let sink = ref((. _: signalT(int)) => ()); 46 - let signals: array(talkbackT) = [||]; 47 - let source = x => { 48 - x(. Start((. signal) => ignore(Js.Array.push(signal, signals)))); 49 - sink := x; 50 - }; 51 - 52 - let talkback = ref((. _: talkbackT) => ()); 53 - let res = [||]; 54 - operator(source, (. signal) => 55 - switch (signal) { 56 - | Start(x) => talkback := x 57 - | _ => ignore(Js.Array.push(signal, res)) 58 - } 59 - ); 60 - 61 - Js.Promise.make((~resolve, ~reject as _) => { 62 - sink^(. Push(1)); 63 - ignore( 64 - Js.Global.setTimeout( 65 - () => { 66 - talkback^(. Close); 67 - ignore(Js.Global.setTimeout(() => resolve(. (signals, res)), 0)); 68 - }, 69 - 0, 70 - ), 71 - ); 72 - }); 73 - }; 74 - 75 - let testSource = source => { 76 - let talkback = ref((. _: talkbackT) => ()); 77 - let res = [||]; 78 - 79 - Js.Promise.make((~resolve, ~reject as _) => 80 - source((. signal) => 81 - switch (signal) { 82 - | Start(x) => 83 - talkback := x; 84 - talkback^(. Pull); 85 - | Push(_) => 86 - ignore(Js.Array.push(signal, res)); 87 - talkback^(. Pull); 88 - | End => 89 - ignore(Js.Array.push(signal, res)); 90 - resolve(. res); 91 - } 92 - ) 93 - ); 94 - }; 95 - 96 - let testSourceOperator = source => { 97 - let res = [||]; 98 - let innerSource = sink => { 99 - source((. signal) => 100 - switch (signal) { 101 - | Start(outerTalkback) => 102 - sink(. 103 - Start( 104 - (. talkback) => { 105 - Js.Array.push(talkback, res); 106 - outerTalkback(. talkback); 107 - }, 108 - ), 109 - ) 110 - | _ => sink(. signal) 111 - } 112 - ); 113 - }; 114 - 115 - (res, innerSource); 116 - }; 117 - 118 - type observableClassT; 119 - 120 - [@bs.module] external observableClass: observableClassT = "zen-observable"; 121 - [@bs.send] 122 - external _observableFromArray: 123 - (observableClassT, array('a)) => Wonka.observableT('a) = 124 - "from"; 125 - [@bs.send] 126 - external _observableFrom: 127 - (observableClassT, Wonka.observableT('a)) => Wonka.observableT('a) = 128 - "from"; 129 - [@bs.send] 130 - external observableForEach: 131 - (Wonka.observableT('a), 'a => unit) => Js.Promise.t(unit) = 132 - "forEach"; 133 - 134 - let observableFromArray = (arr: array('a)): Wonka.observableT('a) => 135 - _observableFromArray(observableClass, arr); 136 - let observableFrom = (obs: Wonka.observableT('a)): Wonka.observableT('a) => 137 - _observableFrom(observableClass, obs); 138 - 139 - [@bs.module] 140 - external callbagFromArray: array('a) => Wonka.callbagT('a) = 141 - "callbag-from-iter"; 142 - 143 - [@bs.module] 144 - external callbagFromObservable: Wonka.observableT('a) => Wonka.callbagT('a) = 145 - "callbag-from-obs"; 146 - 147 - [@bs.module] 148 - external callbagIterate: (. ('a => unit)) => (. Wonka.callbagT('a)) => unit = 149 - "callbag-iterate";
+26 -28
bsconfig.json
··· 4 4 "namespace": false, 5 5 "bsc-flags": ["-bs-super-errors", "-bs-no-version-header"], 6 6 "refmt": 3, 7 - "package-specs": [ 8 - { 9 - "module": "commonjs" 10 - }, 11 - { 12 - "module": "es6", 13 - "in-source": true 7 + "gentypeconfig": { 8 + "language": "typescript", 9 + "importPath": "relative", 10 + "shims": { 11 + "Js": "Js", 12 + "Dom": "Dom", 13 + "ReasonPervasives": "ReasonPervasives" 14 14 } 15 - ], 15 + }, 16 + "suffix": ".bs.js", 17 + "package-specs": { 18 + "module": "es6", 19 + "in-source": true 20 + }, 16 21 "sources": [ 17 22 { 18 23 "dir": "src", 19 24 "subdirs": [ 20 25 { 21 - "dir": "operators" 22 - }, 23 - { 24 - "dir": "sources" 26 + "dir": "shims" 25 27 }, 26 28 { 27 - "dir": "sinks" 29 + "dir": "helpers" 28 30 }, 29 31 { 30 32 "dir": "web", 31 33 "backend": ["js"] 32 - } 33 - ] 34 - }, 35 - { 36 - "dir": "include", 37 - "subdirs": [ 38 - { 39 - "dir": "rebel_native" 40 34 }, 41 35 { 42 - "dir": "rebel_js", 43 - "backend": ["js"] 36 + "dir": "include", 37 + "subdirs": [ 38 + { 39 + "dir": "rebel_native" 40 + }, 41 + { 42 + "dir": "rebel_js", 43 + "backend": ["js"] 44 + } 45 + ] 44 46 } 45 47 ] 46 - }, 47 - { 48 - "dir": "__tests__", 49 - "type": "dev" 50 48 } 51 49 ], 52 50 "bs-dependencies": [], 53 - "bs-dev-dependencies": ["@glennsl/bs-jest"] 51 + "bs-dev-dependencies": [] 54 52 }
include/rebel.ml src/include/rebel.ml
include/rebel_js/Array_js.re src/include/rebel_js/Array_js.re
include/rebel_js/MutableQueue_js.re src/include/rebel_js/MutableQueue_js.re
include/rebel_js/MutableStack_js.re src/include/rebel_js/MutableStack_js.re
include/rebel_js/Rebel_js.re src/include/rebel_js/Rebel_js.re
include/rebel_native/Array_native.re src/include/rebel_native/Array_native.re
include/rebel_native/MutableQueue_native.re src/include/rebel_native/MutableQueue_native.re
include/rebel_native/MutableStack_native.re src/include/rebel_native/MutableStack_native.re
include/rebel_native/Rebel_native.re src/include/rebel_native/Rebel_native.re
+1 -1
index.js.flow
··· 1 1 // @flow 2 2 3 - declare export * from "./src/index.js.flow" 3 + declare export * from "./dist/types/src/wonka.js.flow"
+58 -35
package.json
··· 1 1 { 2 2 "name": "wonka", 3 3 "description": "A fast push & pull stream library for Reason/OCaml, Flow, and TypeScript", 4 - "version": "3.2.2", 4 + "version": "4.0.0-rc.0", 5 5 "author": "Phil Pluckthun <phil@kitten.sh>", 6 - "source": "./src/index.js", 6 + "source": "./src/wonka.ts", 7 7 "main": "./dist/wonka.js", 8 8 "module": "./dist/wonka.es.js", 9 9 "jsnext:main": "./dist/wonka.es.js", 10 - "types": "./src/index.d.ts", 10 + "types": "./dist/types/src/wonka.d.ts", 11 11 "sideEffects": false, 12 12 "files": [ 13 13 "src", 14 - "include", 15 - "lib/js", 16 14 "dist", 17 15 "docs/*.md", 18 16 "*.md", ··· 23 21 "docs:dev": "gatsby develop", 24 22 "docs:build": "gatsby build", 25 23 "check": "tsc --noEmit", 26 - "clean": "bsb -clean-world", 27 - "build": "bsb -make-world", 28 - "watch": "bsb -make-world -w", 24 + "bs:clean": "bsb -clean-world", 25 + "bs:build": "bsb -make-world", 26 + "bs:watch": "bsb -make-world -w", 29 27 "test": "jest", 30 - "coverage": "jest -c ./.jest.coverage.json --coverage", 31 - "test:watch": "jest --watch", 32 28 "refmt": "bsrefmt --in-place **/**/*.{re,rei}", 33 29 "flowgen": "./scripts/generate-flow-files.js", 30 + "bundle:clean": "rimraf dist node_modules/.cache", 34 31 "bundle": "rollup -c rollup.config.js", 35 - "prepublishOnly": "run-s clean build bundle flowgen check test", 36 - "codecov": "codecov" 32 + "clean": "run-s bs:clean bundle:clean", 33 + "build": "run-s bs:build bundle flowgen", 34 + "prepublishOnly": "run-s clean build bundle flowgen check test" 37 35 }, 38 36 "keywords": [ 39 37 "wonka", ··· 53 51 "license": "MIT", 54 52 "dependencies": {}, 55 53 "devDependencies": { 56 - "@ampproject/rollup-plugin-closure-compiler": "^0.13.0", 57 - "@babel/core": "^7.7.5", 58 - "@glennsl/bs-jest": "^0.4.8", 54 + "@ampproject/rollup-plugin-closure-compiler": "^0.18.1", 55 + "@babel/core": "^7.7.7", 56 + "@babel/plugin-syntax-typescript": "^7.7.4", 57 + "@babel/plugin-transform-modules-commonjs": "^7.7.5", 58 + "@babel/preset-env": "^7.7.7", 59 + "@glennsl/bs-jest": "^0.4.9", 60 + "@rollup/plugin-buble": "^0.21.0", 61 + "@rollup/plugin-commonjs": "^11.0.1", 62 + "@rollup/plugin-node-resolve": "^6.1.0", 63 + "@types/jest": "^24.0.25", 64 + "@types/zen-observable": "^0.8.0", 59 65 "babel-plugin-closure-elimination": "^1.3.0", 60 - "bs-platform": "^5.0.6", 66 + "bs-platform": "7.0.2-dev.1", 61 67 "callbag-from-iter": "^1.2.0", 62 - "callbag-from-obs": "^1.2.0", 63 68 "callbag-iterate": "^1.0.0", 64 - "codecov": "^3.5.0", 65 - "flowgen": "^1.9.2", 66 - "gatsby": "^2.13.41", 67 - "gatsby-plugin-netlify": "^2.1.3", 69 + "callbag-take": "^1.4.0", 70 + "codecov": "^3.6.1", 71 + "flowgen": "^1.10.0", 72 + "gatsby": "^2.18.17", 73 + "gatsby-plugin-netlify": "^2.1.30", 68 74 "gatsby-theme-docs-system": "^0.2.2", 75 + "gentype": "^3.9.1", 69 76 "globby": "^10.0.1", 70 - "husky": "^3.0.1", 71 - "lint-staged": "^9.2.1", 77 + "husky": "^3.1.0", 78 + "lint-staged": "^9.5.0", 72 79 "npm-run-all": "^4.1.5", 73 - "prettier": "^1.18.2", 74 - "react": "^16.8.6", 75 - "react-dom": "^16.8.6", 76 - "rollup": "^1.27.13", 80 + "prettier": "^1.19.1", 81 + "react": "^16.12.0", 82 + "react-dom": "^16.12.0", 83 + "rimraf": "^3.0.0", 84 + "rollup": "^1.28.0", 77 85 "rollup-plugin-babel": "^4.3.3", 78 - "rollup-plugin-buble": "^0.19.8", 79 - "rollup-plugin-commonjs": "^10.1.0", 80 - "rollup-plugin-node-resolve": "^5.2.0", 81 86 "rollup-plugin-terser": "^5.1.3", 82 - "typescript": "^3.7.3", 83 - "zen-observable": "^0.8.14" 87 + "rollup-plugin-typescript2": "^0.25.3", 88 + "ts-jest": "^24.2.0", 89 + "typescript": "^3.7.4", 90 + "zen-observable": "^0.8.15" 84 91 }, 85 92 "lint-staged": { 86 93 "*.{d.ts,js}": [ ··· 102 109 "printWidth": 100 103 110 }, 104 111 "jest": { 112 + "testEnvironment": "node", 113 + "testRegex": "(src/.*(\\.|/)(test|spec))\\.(t|j)sx?$", 105 114 "moduleFileExtensions": [ 106 - "js" 115 + "js", 116 + "ts", 117 + "tsx" 118 + ], 119 + "transform": { 120 + "\\.jsx?$": "<rootDir>/scripts/jest-transform-esm.js", 121 + "\\.tsx?$": "ts-jest" 122 + }, 123 + "transformIgnorePatterns": [ 124 + "/node_modules/(?!bs-platform)" 107 125 ], 108 - "testMatch": [ 109 - "**/lib/js/__tests__/*_test.js" 126 + "collectCoverageFrom": [ 127 + "!<rootDir>/src/wonka.{ts,bs.js}", 128 + "!<rootDir>/src/wonka_types.{ts,bs.js}", 129 + "!<rootDir>/src/include/**", 130 + "!<rootDir>/src/helpers/**", 131 + "!<rootDir>/src/**/*.{shim,gen}.{ts,tsx}", 132 + "<rootDir>/src/**/*.{js,ts,tsx}" 110 133 ] 111 134 } 112 135 }
+82 -32
rollup.config.js
··· 1 - import { basename } from 'path'; 2 - import commonjs from 'rollup-plugin-commonjs'; 3 - import nodeResolve from 'rollup-plugin-node-resolve'; 4 - import buble from 'rollup-plugin-buble'; 1 + import { resolve, basename } from 'path'; 2 + import commonjs from '@rollup/plugin-commonjs'; 3 + import nodeResolve from '@rollup/plugin-node-resolve'; 4 + import typescript from 'rollup-plugin-typescript2'; 5 + import buble from '@rollup/plugin-buble'; 5 6 import babel from 'rollup-plugin-babel'; 6 7 import { terser } from 'rollup-plugin-terser'; 7 8 import compiler from '@ampproject/rollup-plugin-closure-compiler'; 8 9 10 + const cwd = process.cwd(); 9 11 const pkgInfo = require('./package.json'); 10 - const { main, peerDependencies, dependencies } = pkgInfo; 11 - const name = basename(main, '.js'); 12 - 13 - let external = ['dns', 'fs', 'path', 'url']; 14 - if (pkgInfo.peerDependencies) external.push(...Object.keys(peerDependencies)); 15 - if (pkgInfo.dependencies) external.push(...Object.keys(dependencies)); 16 - 17 - const externalPredicate = new RegExp(`^(${external.join('|')})($|/)`); 18 - const externalTest = id => externalPredicate.test(id); 12 + const name = basename(pkgInfo.main, '.js'); 19 13 20 14 const terserPretty = terser({ 21 15 sourcemap: true, ··· 61 55 } 62 56 }); 63 57 64 - // This plugin finds state that BuckleScript has compiled to array expressions 65 - // and unwraps them and their accessors to inline variables 58 + const importAllPlugin = ({ types: t }) => ({ 59 + visitor: { 60 + VariableDeclarator(path) { 61 + if ( 62 + t.isIdentifier(path.node.id) && 63 + t.isCallExpression(path.node.init) && 64 + t.isIdentifier(path.node.init.callee) && 65 + path.node.init.callee.name === 'require' && 66 + path.node.init.arguments.length === 1 67 + ) { 68 + path.parentPath.replaceWith( 69 + t.importDeclaration( 70 + [t.importNamespaceSpecifier(path.node.id)], 71 + path.node.init.arguments[0] 72 + ) 73 + ); 74 + } 75 + } 76 + } 77 + }); 78 + 66 79 const unwrapStatePlugin = ({ types: t }) => ({ 67 80 pre() { 68 81 this.props = new Map(); 82 + this.test = node => 83 + /state$/i.test(node.id.name) || 84 + (node.init.properties.length === 1 && node.init.properties[0].key.name === 'contents'); 69 85 }, 70 86 visitor: { 71 87 VariableDeclarator(path) { 72 - if (t.isIdentifier(path.node.id) && t.isArrayExpression(path.node.init)) { 88 + if ( 89 + t.isIdentifier(path.node.id) && 90 + t.isObjectExpression(path.node.init) && 91 + path.node.init.properties.every( 92 + prop => t.isObjectProperty(prop) && t.isIdentifier(prop.key) 93 + ) && 94 + this.test(path.node) 95 + ) { 73 96 const id = path.node.id.name; 74 - const elements = path.node.init.elements; 75 - const decl = elements.map((element, i) => { 76 - const key = `${id}$${i}`; 77 - return t.variableDeclarator(t.identifier(key), element); 97 + const properties = path.node.init.properties; 98 + const propNames = new Set(properties.map(x => x.key.name)); 99 + const decl = properties.map(prop => { 100 + const key = `${id}$${prop.key.name}`; 101 + return t.variableDeclarator(t.identifier(key), prop.value); 78 102 }); 79 103 80 - this.props.set(id, elements.length); 104 + this.props.set(id, propNames); 81 105 path.parentPath.replaceWithMultiple(t.variableDeclaration('let', decl)); 82 106 } 83 107 }, ··· 85 109 if ( 86 110 t.isIdentifier(path.node.object) && 87 111 this.props.has(path.node.object.name) && 88 - t.isNumericLiteral(path.node.property) && 89 - path.node.property.value < this.props.get(path.node.object.name) 112 + t.isIdentifier(path.node.property) && 113 + this.props.get(path.node.object.name).has(path.node.property.name) 90 114 ) { 91 115 const id = path.node.object.name; 92 - const elementIndex = path.node.property.value; 93 - path.replaceWith(t.identifier(`${id}$${elementIndex}`)); 116 + const propName = path.node.property.name; 117 + path.replaceWith(t.identifier(`${id}$${propName}`)); 94 118 } 95 119 } 96 120 } ··· 98 122 99 123 const makePlugins = isProduction => 100 124 [ 101 - nodeResolve({ 102 - mainFields: ['module', 'jsnext', 'main'], 103 - browser: true 125 + babel({ 126 + babelrc: false, 127 + extensions: ['ts', 'tsx', 'js'], 128 + exclude: 'node_modules/**', 129 + presets: [], 130 + plugins: ['@babel/plugin-syntax-typescript', importAllPlugin] 131 + }), 132 + typescript({ 133 + typescript: require('typescript'), 134 + cacheRoot: './node_modules/.cache/.rts2_cache', 135 + objectHashIgnoreUnknownHack: true, 136 + useTsconfigDeclarationDir: true, 137 + tsconfigOverride: { 138 + compilerOptions: { 139 + strict: false, 140 + noUnusedParameters: false, 141 + declaration: !isProduction, 142 + declarationDir: resolve(cwd, './dist/types/'), 143 + target: 'esnext', 144 + module: 'es2015', 145 + rootDir: cwd 146 + } 147 + } 104 148 }), 105 149 commonjs({ 106 150 ignoreGlobal: true, 107 - include: /\/node_modules\// 151 + include: ['*', '**'], 152 + extensions: ['.js', '.ts', '.tsx'] 153 + }), 154 + nodeResolve({ 155 + mainFields: ['module', 'jsnext', 'main'], 156 + extensions: ['.js', '.ts', '.tsx'], 157 + browser: true 108 158 }), 109 159 buble({ 110 160 transforms: { ··· 117 167 }), 118 168 babel({ 119 169 babelrc: false, 170 + extensions: ['ts', 'tsx', 'js'], 120 171 exclude: 'node_modules/**', 121 172 presets: [], 122 173 plugins: ['babel-plugin-closure-elimination', unwrapStatePlugin] ··· 128 179 ].filter(Boolean); 129 180 130 181 const config = { 131 - input: './src/index.js', 182 + input: './src/wonka.ts', 132 183 onwarn: () => {}, 133 - external: externalTest, 184 + external: () => false, 134 185 treeshake: { 135 186 propertyReadSideEffects: false 136 187 } ··· 142 193 plugins: makePlugins(false), 143 194 output: [ 144 195 { 145 - sourcemap: true, 146 196 legacy: true, 147 197 freeze: false, 148 198 esModule: false,
+3 -16
scripts/generate-flow-files.js
··· 28 28 29 29 let entry = await readFile(path.resolve(cwd, 'index.js.flow'), { encoding: 'utf8' }); 30 30 31 - entry = entry.replace(/.\/src/g, '../src'); 31 + entry = entry.replace(/.\/dist\//g, './'); 32 32 33 33 const outputCJS = path.resolve(cwd, 'dist/wonka.js.flow'); 34 34 const outputES = path.resolve(cwd, 'dist/wonka.es.js.flow'); ··· 40 40 }; 41 41 42 42 const gen = async () => { 43 - const input = await globby(['src/*.d.ts', 'src/**/*.d.ts'], { 44 - gitignore: true 45 - }); 46 - 47 - if (input.length === 0) { 48 - throw new Error('No input files passed as arguments.'); 49 - } 50 - 43 + const input = await globby('dist/types/**/*.d.ts'); 51 44 console.log(`Compiling ${input.length} TS definitions to Flow...`); 52 45 53 46 const defs = input.map(filename => { ··· 60 53 const basename = path.basename(fullpath, '.d.ts'); 61 54 const filepath = path.dirname(fullpath); 62 55 const newpath = path.join(filepath, basename + '.js.flow'); 63 - 64 - // Fix incorrect imports 65 - const fixedFlowdef = flowdef.replace(/^import \{/g, 'import type {'); 66 - 67 - return writeFile(newpath, preamble + fixedFlowdef, { 68 - encoding: 'utf8' 69 - }); 56 + return writeFile(newpath, preamble + flowdef); 70 57 }); 71 58 72 59 return Promise.all([...write, genEntry()]);
+5
scripts/jest-transform-esm.js
··· 1 + const { createTransformer } = require('babel-jest'); 2 + 3 + module.exports = createTransformer({ 4 + plugins: [require.resolve('@babel/plugin-transform-modules-commonjs')] 5 + });
+1 -1
src/dune/dune
··· 4 4 (libraries belt) 5 5 (preprocess (pps belt.ppx))) 6 6 7 - (copy_files ../../include/rebel_native/*.{re,rei}) 7 + (copy_files ../include/rebel_native/*.{re,rei}) 8 8 (copy_files ../operators/*.{re,rei}) 9 9 (copy_files ../sources/*.{re,rei}) 10 10 (copy_files ../sinks/*.{re,rei})
+157
src/helpers/pipe.ts
··· 1 + import { sourceT as Source } from '../wonka_types.gen'; 2 + 3 + /* pipe definitions for source + operators composition */ 4 + 5 + function pipe<T, A>(source: Source<T>, op1: (source: Source<T>) => Source<A>): Source<A>; 6 + 7 + function pipe<T, A, B>( 8 + source: Source<T>, 9 + op1: (source: Source<T>) => Source<A>, 10 + op2: (source: Source<A>) => Source<B> 11 + ): Source<B>; 12 + 13 + function pipe<T, A, B, C>( 14 + source: Source<T>, 15 + op1: (source: Source<T>) => Source<A>, 16 + op2: (source: Source<A>) => Source<B>, 17 + op3: (source: Source<B>) => Source<C> 18 + ): Source<C>; 19 + 20 + function pipe<T, A, B, C, D>( 21 + source: Source<T>, 22 + op1: (source: Source<T>) => Source<A>, 23 + op2: (source: Source<A>) => Source<B>, 24 + op3: (source: Source<B>) => Source<C>, 25 + op4: (source: Source<C>) => Source<D> 26 + ): Source<D>; 27 + 28 + function pipe<T, A, B, C, D, E>( 29 + source: Source<T>, 30 + op1: (source: Source<T>) => Source<A>, 31 + op2: (source: Source<A>) => Source<B>, 32 + op3: (source: Source<B>) => Source<C>, 33 + op4: (source: Source<C>) => Source<D>, 34 + op5: (source: Source<D>) => Source<E> 35 + ): Source<E>; 36 + 37 + function pipe<T, A, B, C, D, E, F>( 38 + source: Source<T>, 39 + op1: (source: Source<T>) => Source<A>, 40 + op2: (source: Source<A>) => Source<B>, 41 + op3: (source: Source<B>) => Source<C>, 42 + op4: (source: Source<C>) => Source<D>, 43 + op5: (source: Source<D>) => Source<E>, 44 + op6: (source: Source<E>) => Source<F> 45 + ): Source<F>; 46 + 47 + function pipe<T, A, B, C, D, E, F, G>( 48 + source: Source<T>, 49 + op1: (source: Source<T>) => Source<A>, 50 + op2: (source: Source<A>) => Source<B>, 51 + op3: (source: Source<B>) => Source<C>, 52 + op4: (source: Source<C>) => Source<D>, 53 + op5: (source: Source<D>) => Source<E>, 54 + op6: (source: Source<E>) => Source<F>, 55 + op7: (source: Source<F>) => Source<G> 56 + ): Source<G>; 57 + 58 + function pipe<T, A, B, C, D, E, F, G, H>( 59 + source: Source<T>, 60 + op1: (source: Source<T>) => Source<A>, 61 + op2: (source: Source<A>) => Source<B>, 62 + op3: (source: Source<B>) => Source<C>, 63 + op4: (source: Source<C>) => Source<D>, 64 + op5: (source: Source<D>) => Source<E>, 65 + op6: (source: Source<E>) => Source<F>, 66 + op7: (source: Source<F>) => Source<G>, 67 + op8: (source: Source<G>) => Source<H> 68 + ): Source<H>; 69 + 70 + /* pipe definitions for source + operators + consumer composition */ 71 + 72 + function pipe<T, R>(source: Source<T>, consumer: (source: Source<T>) => R): R; 73 + 74 + function pipe<T, A, R>( 75 + source: Source<T>, 76 + op1: (source: Source<T>) => Source<A>, 77 + consumer: (source: Source<A>) => R 78 + ): R; 79 + 80 + function pipe<T, A, B, R>( 81 + source: Source<T>, 82 + op1: (source: Source<T>) => Source<A>, 83 + op2: (source: Source<A>) => Source<B>, 84 + consumer: (source: Source<B>) => R 85 + ): R; 86 + 87 + function pipe<T, A, B, C, R>( 88 + source: Source<T>, 89 + op1: (source: Source<T>) => Source<A>, 90 + op2: (source: Source<A>) => Source<B>, 91 + op3: (source: Source<B>) => Source<C>, 92 + consumer: (source: Source<C>) => R 93 + ): R; 94 + 95 + function pipe<T, A, B, C, D, R>( 96 + source: Source<T>, 97 + op1: (source: Source<T>) => Source<A>, 98 + op2: (source: Source<A>) => Source<B>, 99 + op3: (source: Source<B>) => Source<C>, 100 + op4: (source: Source<C>) => Source<D>, 101 + consumer: (source: Source<D>) => R 102 + ): R; 103 + 104 + function pipe<T, A, B, C, D, E, R>( 105 + source: Source<T>, 106 + op1: (source: Source<T>) => Source<A>, 107 + op2: (source: Source<A>) => Source<B>, 108 + op3: (source: Source<B>) => Source<C>, 109 + op4: (source: Source<C>) => Source<D>, 110 + op5: (source: Source<D>) => Source<E>, 111 + consumer: (source: Source<E>) => R 112 + ): R; 113 + 114 + function pipe<T, A, B, C, D, E, F, R>( 115 + source: Source<T>, 116 + op1: (source: Source<T>) => Source<A>, 117 + op2: (source: Source<A>) => Source<B>, 118 + op3: (source: Source<B>) => Source<C>, 119 + op4: (source: Source<C>) => Source<D>, 120 + op5: (source: Source<D>) => Source<E>, 121 + op6: (source: Source<E>) => Source<F>, 122 + consumer: (source: Source<F>) => R 123 + ): R; 124 + 125 + function pipe<T, A, B, C, D, E, F, G, R>( 126 + source: Source<T>, 127 + op1: (source: Source<T>) => Source<A>, 128 + op2: (source: Source<A>) => Source<B>, 129 + op3: (source: Source<B>) => Source<C>, 130 + op4: (source: Source<C>) => Source<D>, 131 + op5: (source: Source<D>) => Source<E>, 132 + op6: (source: Source<E>) => Source<F>, 133 + op7: (source: Source<F>) => Source<G>, 134 + consumer: (source: Source<G>) => R 135 + ): R; 136 + 137 + function pipe<T, A, B, C, D, E, F, G, H, R>( 138 + source: Source<T>, 139 + op1: (source: Source<T>) => Source<A>, 140 + op2: (source: Source<A>) => Source<B>, 141 + op3: (source: Source<B>) => Source<C>, 142 + op4: (source: Source<C>) => Source<D>, 143 + op5: (source: Source<D>) => Source<E>, 144 + op6: (source: Source<E>) => Source<F>, 145 + op7: (source: Source<F>) => Source<G>, 146 + op8: (source: Source<G>) => Source<H>, 147 + consumer: (source: Source<H>) => R 148 + ): R; 149 + 150 + function pipe() { 151 + let x = arguments[0]; 152 + for (let i = 1, l = arguments.length; i < l; i++) 153 + x = arguments[i](x); 154 + return x; 155 + } 156 + 157 + export { pipe };
+24
src/helpers/wonka_deriving.ts
··· 1 + import { __ as block } from 'bs-platform/lib/es6/block'; 2 + import { talkbackPlaceholder } from './wonka_helpers.bs'; 3 + import * as types from '../wonka_types.gen'; 4 + 5 + type talkbackCb = (tb: types.talkbackT) => void; 6 + 7 + export const pull = (0 as any as types.talkbackT); 8 + export const close = (1 as any as types.talkbackT); 9 + 10 + export const start = <a>(tb: talkbackCb): types.signalT<a> => block(0, [tb]) as any; 11 + export const push = <a>(x: a): types.signalT<a> => block(1, [x]) as any; 12 + export const end = <a>(): types.signalT<a> => 0 as any; 13 + 14 + export const isStart = <a>(s: types.signalT<a>) => 15 + typeof s !== 'number' && (s as any).tag === 0; 16 + export const isPush = <a>(s: types.signalT<a>) => 17 + typeof s !== 'number' && (s as any).tag === 1; 18 + export const isEnd = <a>(s: types.signalT<a>) => 19 + typeof s === 'number' && (s as any) === 0; 20 + 21 + export const unboxPush = <a>(s: types.signalT<a>): a | null => 22 + isPush(s) ? (s as any)[0] : null; 23 + export const unboxStart = <a>(s: types.signalT<a>): talkbackCb => 24 + isStart(s) ? (s as any)[0] : (talkbackPlaceholder as any);
+10
src/include/rebel.js
··· 1 + import * as Rebel_js from './rebel_js/Rebel_js.js'; 2 + 3 + var $$Array = Rebel_js.$$Array; 4 + 5 + var MutableStack = Rebel_js.MutableStack; 6 + 7 + var MutableQueue = Rebel_js.MutableQueue; 8 + 9 + export { $$Array, MutableStack, MutableQueue }; 10 + /* No side effect */
-4
src/index.d.ts
··· 1 - export * from './pipe'; 2 - export * from './wonka_types'; 3 - export * from './wonka'; 4 - export * from './web/wonkaJs';
-2
src/index.js
··· 1 - export * from './pipe'; 2 - export * from './wonka';
-3
src/operators/wonka_operator_buffer.d.ts
··· 1 - import { Source, Operator } from '../wonka_types'; 2 - 3 - export const buffer: <A>(signal: Source<any>) => Operator<A, A[]>;
-72
src/operators/wonka_operator_buffer.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type bufferStateT('a) = { 5 - mutable buffer: Rebel.MutableQueue.t('a), 6 - mutable sourceTalkback: (. talkbackT) => unit, 7 - mutable notifierTalkback: (. talkbackT) => unit, 8 - mutable ended: bool, 9 - }; 10 - 11 - let buffer = (notifier: sourceT('a)) => 12 - curry((source: sourceT('b)) => 13 - curry((sink: sinkT(array('b))) => { 14 - let state: bufferStateT('b) = { 15 - buffer: Rebel.MutableQueue.make(), 16 - sourceTalkback: talkbackPlaceholder, 17 - notifierTalkback: talkbackPlaceholder, 18 - ended: false, 19 - }; 20 - 21 - source((. signal) => 22 - switch (signal) { 23 - | Start(tb) => 24 - state.sourceTalkback = tb; 25 - 26 - notifier((. signal) => 27 - switch (signal) { 28 - | Start(tb) => 29 - state.notifierTalkback = tb; 30 - state.notifierTalkback(. Pull); 31 - | Push(_) when !state.ended => 32 - sink(. Push(Rebel.MutableQueue.toArray(state.buffer))); 33 - state.buffer = Rebel.MutableQueue.make(); 34 - state.notifierTalkback(. Pull); 35 - | Push(_) => () 36 - | End when !state.ended => 37 - state.ended = true; 38 - state.sourceTalkback(. Close); 39 - sink(. Push(Rebel.MutableQueue.toArray(state.buffer))); 40 - sink(. End); 41 - | End => () 42 - } 43 - ); 44 - | Push(value) when !state.ended => 45 - Rebel.MutableQueue.add(state.buffer, value); 46 - state.sourceTalkback(. Pull); 47 - | Push(_) => () 48 - | End when !state.ended => 49 - state.ended = true; 50 - state.notifierTalkback(. Close); 51 - sink(. Push(Rebel.MutableQueue.toArray(state.buffer))); 52 - sink(. End); 53 - | End => () 54 - } 55 - ); 56 - 57 - sink(. 58 - Start( 59 - (. signal) => 60 - if (!state.ended) { 61 - switch (signal) { 62 - | Close => 63 - state.ended = true; 64 - state.sourceTalkback(. Close); 65 - state.notifierTalkback(. Close); 66 - | Pull => state.sourceTalkback(. Pull) 67 - }; 68 - }, 69 - ), 70 - ); 71 - }) 72 - );
-3
src/operators/wonka_operator_buffer.rei
··· 1 - open Wonka_types; 2 - 3 - let buffer: (sourceT('a), sourceT('b), sinkT(array('b))) => unit;
-3
src/operators/wonka_operator_combine.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const combine: <A, B>(a: Source<A>) => (b: Source<B>) => Source<[A, B]>;
-84
src/operators/wonka_operator_combine.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type combineStateT('a, 'b) = { 5 - mutable talkbackA: (. talkbackT) => unit, 6 - mutable talkbackB: (. talkbackT) => unit, 7 - mutable lastValA: option('a), 8 - mutable lastValB: option('b), 9 - mutable gotSignal: bool, 10 - mutable endCounter: int, 11 - mutable ended: bool, 12 - }; 13 - 14 - let combine = sourceA => 15 - curry(sourceB => 16 - curry(sink => { 17 - let state = { 18 - talkbackA: talkbackPlaceholder, 19 - talkbackB: talkbackPlaceholder, 20 - lastValA: None, 21 - lastValB: None, 22 - gotSignal: false, 23 - endCounter: 0, 24 - ended: false, 25 - }; 26 - 27 - sourceA((. signal) => 28 - switch (signal, state.lastValB) { 29 - | (Start(tb), _) => state.talkbackA = tb 30 - | (Push(a), None) => 31 - state.lastValA = Some(a); 32 - state.gotSignal = false; 33 - | (Push(a), Some(b)) when !state.ended => 34 - state.lastValA = Some(a); 35 - state.gotSignal = false; 36 - sink(. Push((a, b))); 37 - | (End, _) when state.endCounter < 1 => 38 - state.endCounter = state.endCounter + 1 39 - | (End, _) when !state.ended => 40 - state.ended = true; 41 - sink(. End); 42 - | _ => () 43 - } 44 - ); 45 - 46 - sourceB((. signal) => 47 - switch (signal, state.lastValA) { 48 - | (Start(tb), _) => state.talkbackB = tb 49 - | (Push(b), None) => 50 - state.lastValB = Some(b); 51 - state.gotSignal = false; 52 - | (Push(b), Some(a)) when !state.ended => 53 - state.lastValB = Some(b); 54 - state.gotSignal = false; 55 - sink(. Push((a, b))); 56 - | (End, _) when state.endCounter < 1 => 57 - state.endCounter = state.endCounter + 1 58 - | (End, _) when !state.ended => 59 - state.ended = true; 60 - sink(. End); 61 - | _ => () 62 - } 63 - ); 64 - 65 - sink(. 66 - Start( 67 - (. signal) => 68 - if (!state.ended) { 69 - switch (signal) { 70 - | Close => 71 - state.ended = true; 72 - state.talkbackA(. Close); 73 - state.talkbackB(. Close); 74 - | Pull when !state.gotSignal => 75 - state.gotSignal = true; 76 - state.talkbackA(. signal); 77 - state.talkbackB(. signal); 78 - | Pull => () 79 - }; 80 - }, 81 - ), 82 - ); 83 - }) 84 - );
-3
src/operators/wonka_operator_combine.rei
··· 1 - open Wonka_types; 2 - 3 - let combine: (sourceT('a), sourceT('b), sinkT(('a, 'b))) => unit;
-5
src/operators/wonka_operator_concatMap.d.ts
··· 1 - import { Source, Operator } from '../wonka_types'; 2 - 3 - export const concatMap: <A, B>(f: (value: A) => Source<B>) => Operator<A, B>; 4 - export const concat: <A>(sources: Array<Source<A>>) => Source<A>; 5 - export const concatAll: <A>(source: Source<Source<A>>) => Source<A>;
-98
src/operators/wonka_operator_concatMap.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type concatMapStateT('a) = { 5 - inputQueue: Rebel.MutableQueue.t('a), 6 - mutable outerTalkback: (. talkbackT) => unit, 7 - mutable innerTalkback: (. talkbackT) => unit, 8 - mutable innerActive: bool, 9 - mutable closed: bool, 10 - mutable ended: bool, 11 - }; 12 - 13 - let concatMap = f => 14 - curry(source => 15 - curry(sink => { 16 - let state: concatMapStateT('a) = { 17 - inputQueue: Rebel.MutableQueue.make(), 18 - outerTalkback: talkbackPlaceholder, 19 - innerTalkback: talkbackPlaceholder, 20 - innerActive: false, 21 - closed: false, 22 - ended: false, 23 - }; 24 - 25 - let rec applyInnerSource = innerSource => 26 - innerSource((. signal) => 27 - switch (signal) { 28 - | End => 29 - state.innerActive = false; 30 - state.innerTalkback = talkbackPlaceholder; 31 - 32 - switch (Rebel.MutableQueue.pop(state.inputQueue)) { 33 - | Some(input) => applyInnerSource(f(. input)) 34 - | None when state.ended => sink(. End) 35 - | None => () 36 - }; 37 - | Start(tb) => 38 - state.innerActive = true; 39 - state.innerTalkback = tb; 40 - tb(. Pull); 41 - | Push(x) when !state.closed => 42 - sink(. Push(x)); 43 - state.innerTalkback(. Pull); 44 - | Push(_) => () 45 - } 46 - ); 47 - 48 - source((. signal) => 49 - switch (signal) { 50 - | End when !state.ended => 51 - state.ended = true; 52 - if (!state.innerActive 53 - && Rebel.MutableQueue.isEmpty(state.inputQueue)) { 54 - sink(. End); 55 - }; 56 - | End => () 57 - | Start(tb) => 58 - state.outerTalkback = tb; 59 - tb(. Pull); 60 - | Push(x) when !state.ended => 61 - if (state.innerActive) { 62 - Rebel.MutableQueue.add(state.inputQueue, x); 63 - } else { 64 - applyInnerSource(f(. x)); 65 - }; 66 - 67 - state.outerTalkback(. Pull); 68 - | Push(_) => () 69 - } 70 - ); 71 - 72 - sink(. 73 - Start( 74 - (. signal) => 75 - switch (signal) { 76 - | Pull => 77 - if (!state.ended) { 78 - state.innerTalkback(. Pull); 79 - } 80 - | Close => 81 - state.innerTalkback(. Close); 82 - if (!state.ended) { 83 - state.ended = true; 84 - state.closed = true; 85 - state.outerTalkback(. Close); 86 - state.innerTalkback = talkbackPlaceholder; 87 - }; 88 - }, 89 - ), 90 - ); 91 - }) 92 - ); 93 - 94 - let concatAll = source => concatMap((. x) => x, source); 95 - 96 - let concat = sources => { 97 - Wonka_source_fromArray.(concatMap((. x) => x, fromArray(sources))); 98 - };
-5
src/operators/wonka_operator_concatMap.rei
··· 1 - open Wonka_types; 2 - 3 - let concatMap: ((. 'a) => sourceT('b), sourceT('a), sinkT('b)) => unit; 4 - let concat: (array(sourceT('a)), sinkT('a)) => unit; 5 - let concatAll: (sourceT(sourceT('a)), sinkT('a)) => unit;
-3
src/operators/wonka_operator_filter.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const filter: <A>(f: (value: A) => boolean) => Operator<A, A>;
-14
src/operators/wonka_operator_filter.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - let filter = f => 5 - curry(source => 6 - curry(sink => 7 - captureTalkback(source, (. signal, talkback) => 8 - switch (signal) { 9 - | Push(x) when !f(. x) => talkback(. Pull) 10 - | _ => sink(. signal) 11 - } 12 - ) 13 - ) 14 - );
-3
src/operators/wonka_operator_filter.rei
··· 1 - open Wonka_types; 2 - 3 - let filter: ((. 'a) => bool, sourceT('a), sinkT('a)) => unit;
-3
src/operators/wonka_operator_map.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const map: <A, B>(f: (value: A) => B) => Operator<A, B>;
-16
src/operators/wonka_operator_map.re
··· 1 - open Wonka_types; 2 - 3 - let map = f => 4 - curry(source => 5 - curry(sink => 6 - source((. signal) => 7 - sink(. 8 - switch (signal) { 9 - | Start(x) => Start(x) 10 - | Push(x) => Push(f(. x)) 11 - | End => End 12 - }, 13 - ) 14 - ) 15 - ) 16 - );
-3
src/operators/wonka_operator_map.rei
··· 1 - open Wonka_types; 2 - 3 - let map: ((. 'a) => 'b, sourceT('a), sinkT('b)) => unit;
-6
src/operators/wonka_operator_mergeMap.d.ts
··· 1 - import { Source, Operator } from '../wonka_types'; 2 - 3 - export const mergeMap: <A, B>(f: (value: A) => Source<B>) => Operator<A, B>; 4 - export const merge: <A>(sources: Array<Source<A>>) => Source<A>; 5 - export const mergeAll: <A>(source: Source<Source<A>>) => Source<A>; 6 - export const flatten: <A>(source: Source<Source<A>>) => Source<A>;
-93
src/operators/wonka_operator_mergeMap.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type mergeMapStateT = { 5 - mutable outerTalkback: (. talkbackT) => unit, 6 - mutable innerTalkbacks: Rebel.Array.t((. talkbackT) => unit), 7 - mutable ended: bool, 8 - }; 9 - 10 - let mergeMap = f => 11 - curry(source => 12 - curry(sink => { 13 - let state: mergeMapStateT = { 14 - outerTalkback: talkbackPlaceholder, 15 - innerTalkbacks: Rebel.Array.makeEmpty(), 16 - ended: false, 17 - }; 18 - 19 - let applyInnerSource = innerSource => { 20 - let talkback = ref(talkbackPlaceholder); 21 - 22 - innerSource((. signal) => 23 - switch (signal) { 24 - | End => 25 - state.innerTalkbacks = 26 - Rebel.Array.filter(state.innerTalkbacks, x => x !== talkback^); 27 - if (state.ended && Rebel.Array.size(state.innerTalkbacks) === 0) { 28 - sink(. End); 29 - }; 30 - | Start(tb) => 31 - talkback := tb; 32 - state.innerTalkbacks = 33 - Rebel.Array.append(state.innerTalkbacks, tb); 34 - tb(. Pull); 35 - | Push(x) when Rebel.Array.size(state.innerTalkbacks) !== 0 => 36 - sink(. Push(x)); 37 - talkback^(. Pull); 38 - | Push(_) => () 39 - } 40 - ); 41 - }; 42 - 43 - source((. signal) => 44 - switch (signal) { 45 - | End when !state.ended => 46 - state.ended = true; 47 - if (Rebel.Array.size(state.innerTalkbacks) === 0) { 48 - sink(. End); 49 - }; 50 - | End => () 51 - | Start(tb) => 52 - state.outerTalkback = tb; 53 - tb(. Pull); 54 - | Push(x) when !state.ended => 55 - applyInnerSource(f(. x)); 56 - state.outerTalkback(. Pull); 57 - | Push(_) => () 58 - } 59 - ); 60 - 61 - sink(. 62 - Start( 63 - (. signal) => 64 - switch (signal) { 65 - | Close => 66 - Rebel.Array.forEach(state.innerTalkbacks, talkback => 67 - talkback(. Close) 68 - ); 69 - if (!state.ended) { 70 - state.ended = true; 71 - state.outerTalkback(. Close); 72 - Rebel.Array.forEach(state.innerTalkbacks, talkback => 73 - talkback(. Close) 74 - ); 75 - state.innerTalkbacks = Rebel.Array.makeEmpty(); 76 - }; 77 - | Pull when !state.ended => 78 - Rebel.Array.forEach(state.innerTalkbacks, talkback => 79 - talkback(. Pull) 80 - ) 81 - | Pull => () 82 - }, 83 - ), 84 - ); 85 - }) 86 - ); 87 - 88 - let merge = sources => { 89 - Wonka_source_fromArray.(mergeMap((. x) => x, fromArray(sources))); 90 - }; 91 - 92 - let mergeAll = source => mergeMap((. x) => x, source); 93 - let flatten = mergeAll;
-6
src/operators/wonka_operator_mergeMap.rei
··· 1 - open Wonka_types; 2 - 3 - let mergeMap: ((. 'a) => sourceT('b), sourceT('a), sinkT('b)) => unit; 4 - let merge: (array(sourceT('a)), sinkT('a)) => unit; 5 - let mergeAll: (sourceT(sourceT('a)), sinkT('a)) => unit; 6 - let flatten: (sourceT(sourceT('a)), sinkT('a)) => unit;
-3
src/operators/wonka_operator_onEnd.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const onEnd: <A>(f: (value: A) => void) => Operator<A, A>;
-36
src/operators/wonka_operator_onEnd.re
··· 1 - open Wonka_types; 2 - 3 - let onEnd = f => 4 - curry(source => 5 - curry(sink => { 6 - let ended = ref(false); 7 - 8 - source((. signal) => 9 - switch (signal) { 10 - | Start(talkback) => 11 - sink(. 12 - Start( 13 - (. signal) => { 14 - switch (signal) { 15 - | Close when ! ended^ => 16 - ended := true; 17 - f(.); 18 - | Close 19 - | Pull => () 20 - }; 21 - 22 - talkback(. signal); 23 - }, 24 - ), 25 - ) 26 - | End => 27 - if (! ended^) { 28 - ended := true; 29 - sink(. signal); 30 - f(.); 31 - } 32 - | _ => sink(. signal) 33 - } 34 - ); 35 - }) 36 - );
-3
src/operators/wonka_operator_onEnd.rei
··· 1 - open Wonka_types; 2 - 3 - let onEnd: ((. unit) => unit, sourceT('a), sinkT('a)) => unit;
-4
src/operators/wonka_operator_onPush.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const onPush: <A>(f: (value: A) => void) => Operator<A, A>; 4 - export const tap: <A>(f: (value: A) => void) => Operator<A, A>;
-17
src/operators/wonka_operator_onPush.re
··· 1 - open Wonka_types; 2 - 3 - let onPush = f => 4 - curry(source => 5 - curry(sink => 6 - source((. signal) => { 7 - switch (signal) { 8 - | Push(x) => f(. x) 9 - | _ => () 10 - }; 11 - 12 - sink(. signal); 13 - }) 14 - ) 15 - ); 16 - 17 - let tap = onPush;
-4
src/operators/wonka_operator_onPush.rei
··· 1 - open Wonka_types; 2 - 3 - let onPush: ((. 'a) => unit, sourceT('a), sinkT('a)) => unit; 4 - let tap: ((. 'a) => unit, sourceT('a), sinkT('a)) => unit;
-3
src/operators/wonka_operator_onStart.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const onStart: <A>(f: (value: A) => void) => Operator<A, A>;
-15
src/operators/wonka_operator_onStart.re
··· 1 - open Wonka_types; 2 - 3 - let onStart = f => 4 - curry(source => 5 - curry(sink => 6 - source((. signal) => 7 - switch (signal) { 8 - | Start(_) => 9 - sink(. signal); 10 - f(.); 11 - | _ => sink(. signal) 12 - } 13 - ) 14 - ) 15 - );
-3
src/operators/wonka_operator_onStart.rei
··· 1 - open Wonka_types; 2 - 3 - let onStart: ((. unit) => unit, sourceT('a), sinkT('a)) => unit;
-3
src/operators/wonka_operator_sample.d.ts
··· 1 - import { Source, Operator } from '../wonka_types'; 2 - 3 - export const sample: <A>(signal: Source<any>) => Operator<A, A>;
-60
src/operators/wonka_operator_sample.re
··· 1 - open Wonka_types; 2 - 3 - type sampleStateT('a) = { 4 - mutable ended: bool, 5 - mutable value: option('a), 6 - mutable sourceTalkback: (. talkbackT) => unit, 7 - mutable notifierTalkback: (. talkbackT) => unit, 8 - }; 9 - 10 - let sample = notifier => 11 - curry(source => 12 - curry(sink => { 13 - let state = { 14 - ended: false, 15 - value: None, 16 - sourceTalkback: (. _: talkbackT) => (), 17 - notifierTalkback: (. _: talkbackT) => (), 18 - }; 19 - 20 - source((. signal) => 21 - switch (signal) { 22 - | Start(tb) => state.sourceTalkback = tb 23 - | End => 24 - state.ended = true; 25 - state.notifierTalkback(. Close); 26 - sink(. End); 27 - | Push(x) => state.value = Some(x) 28 - } 29 - ); 30 - 31 - notifier((. signal) => 32 - switch (signal, state.value) { 33 - | (Start(tb), _) => state.notifierTalkback = tb 34 - | (End, _) => 35 - state.ended = true; 36 - state.sourceTalkback(. Close); 37 - sink(. End); 38 - | (Push(_), Some(x)) when !state.ended => 39 - state.value = None; 40 - sink(. Push(x)); 41 - | (Push(_), _) => () 42 - } 43 - ); 44 - 45 - sink(. 46 - Start( 47 - (. signal) => 48 - switch (signal) { 49 - | Pull => 50 - state.sourceTalkback(. Pull); 51 - state.notifierTalkback(. Pull); 52 - | Close => 53 - state.ended = true; 54 - state.sourceTalkback(. Close); 55 - state.notifierTalkback(. Close); 56 - }, 57 - ), 58 - ); 59 - }) 60 - );
-3
src/operators/wonka_operator_sample.rei
··· 1 - open Wonka_types; 2 - 3 - let sample: (sourceT('a), sourceT('b), sinkT('b)) => unit;
-3
src/operators/wonka_operator_scan.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const scan: <A, B>(f: (acc: B, value: A) => B, acc: B) => Operator<A, B>;
-20
src/operators/wonka_operator_scan.re
··· 1 - open Wonka_types; 2 - 3 - let scan = (f, seed) => 4 - curry(source => 5 - curry(sink => { 6 - let acc = ref(seed); 7 - 8 - source((. signal) => 9 - sink(. 10 - switch (signal) { 11 - | Push(x) => 12 - acc := f(. acc^, x); 13 - Push(acc^); 14 - | Start(x) => Start(x) 15 - | End => End 16 - }, 17 - ) 18 - ); 19 - }) 20 - );
-3
src/operators/wonka_operator_scan.rei
··· 1 - open Wonka_types; 2 - 3 - let scan: ((. 'b, 'a) => 'b, 'b, sourceT('a), sinkT('b)) => unit;
-3
src/operators/wonka_operator_share.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const share: <A>(source: Source<A>) => Source<A>;
-51
src/operators/wonka_operator_share.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type shareStateT('a) = { 5 - mutable sinks: Rebel.Array.t(sinkT('a)), 6 - mutable talkback: (. talkbackT) => unit, 7 - mutable gotSignal: bool, 8 - }; 9 - 10 - let share = source => { 11 - let state = { 12 - sinks: Rebel.Array.makeEmpty(), 13 - talkback: talkbackPlaceholder, 14 - gotSignal: false, 15 - }; 16 - 17 - sink => { 18 - state.sinks = Rebel.Array.append(state.sinks, sink); 19 - 20 - if (Rebel.Array.size(state.sinks) === 1) { 21 - source((. signal) => 22 - switch (signal) { 23 - | Push(_) => 24 - state.gotSignal = false; 25 - Rebel.Array.forEach(state.sinks, sink => sink(. signal)); 26 - | Start(x) => state.talkback = x 27 - | End => 28 - Rebel.Array.forEach(state.sinks, sink => sink(. End)); 29 - state.sinks = Rebel.Array.makeEmpty(); 30 - } 31 - ); 32 - }; 33 - 34 - sink(. 35 - Start( 36 - (. signal) => 37 - switch (signal) { 38 - | Close => 39 - state.sinks = Rebel.Array.filter(state.sinks, x => x !== sink); 40 - if (Rebel.Array.size(state.sinks) === 0) { 41 - state.talkback(. Close); 42 - }; 43 - | Pull when !state.gotSignal => 44 - state.gotSignal = true; 45 - state.talkback(. signal); 46 - | Pull => () 47 - }, 48 - ), 49 - ); 50 - }; 51 - };
-3
src/operators/wonka_operator_share.rei
··· 1 - open Wonka_types; 2 - 3 - let share: (sourceT('a), sinkT('a)) => unit;
-3
src/operators/wonka_operator_skip.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const skip: <A>(max: number) => Operator<A, A>;
-18
src/operators/wonka_operator_skip.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - let skip = wait => 5 - curry(source => 6 - curry(sink => { 7 - let rest = ref(wait); 8 - 9 - captureTalkback(source, (. signal, talkback) => 10 - switch (signal) { 11 - | Push(_) when rest^ > 0 => 12 - rest := rest^ - 1; 13 - talkback(. Pull); 14 - | _ => sink(. signal) 15 - } 16 - ); 17 - }) 18 - );
-3
src/operators/wonka_operator_skip.rei
··· 1 - open Wonka_types; 2 - 3 - let skip: (int, sourceT('a), sinkT('a)) => unit;
-3
src/operators/wonka_operator_skipUntil.d.ts
··· 1 - import { Source, Operator } from '../wonka_types'; 2 - 3 - export const skipUntil: <A>(signal: Source<any>) => Operator<A, A>;
-73
src/operators/wonka_operator_skipUntil.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type skipUntilStateT = { 5 - mutable skip: bool, 6 - mutable ended: bool, 7 - mutable gotSignal: bool, 8 - mutable sourceTalkback: (. talkbackT) => unit, 9 - mutable notifierTalkback: (. talkbackT) => unit, 10 - }; 11 - 12 - let skipUntil = notifier => 13 - curry(source => 14 - curry(sink => { 15 - let state: skipUntilStateT = { 16 - skip: true, 17 - ended: false, 18 - gotSignal: false, 19 - sourceTalkback: talkbackPlaceholder, 20 - notifierTalkback: talkbackPlaceholder, 21 - }; 22 - 23 - source((. signal) => 24 - switch (signal) { 25 - | Start(tb) => 26 - state.sourceTalkback = tb; 27 - 28 - notifier((. signal) => 29 - switch (signal) { 30 - | Start(innerTb) => 31 - state.notifierTalkback = innerTb; 32 - innerTb(. Pull); 33 - tb(. Pull); 34 - | Push(_) => 35 - state.skip = false; 36 - state.notifierTalkback(. Close); 37 - | End => () 38 - } 39 - ); 40 - | Push(_) when state.skip && !state.ended => 41 - state.sourceTalkback(. Pull) 42 - | Push(_) when !state.ended => 43 - state.gotSignal = false; 44 - sink(. signal); 45 - | Push(_) => () 46 - | End => 47 - if (state.skip) { 48 - state.notifierTalkback(. Close); 49 - }; 50 - state.ended = true; 51 - sink(. End); 52 - } 53 - ); 54 - 55 - sink(. 56 - Start( 57 - (. signal) => 58 - switch (signal) { 59 - | Close => 60 - if (state.skip) { 61 - state.notifierTalkback(. Close); 62 - }; 63 - state.ended = true; 64 - state.sourceTalkback(. Close); 65 - | Pull when !state.gotSignal && !state.ended => 66 - state.gotSignal = true; 67 - state.sourceTalkback(. Pull); 68 - | Pull => () 69 - }, 70 - ), 71 - ); 72 - }) 73 - );
-3
src/operators/wonka_operator_skipUntil.rei
··· 1 - open Wonka_types; 2 - 3 - let skipUntil: (sourceT('a), sourceT('b), sinkT('b)) => unit;
-3
src/operators/wonka_operator_skipWhile.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const skipWhile: <A>(f: (x: A) => boolean) => Operator<A, A>;
-22
src/operators/wonka_operator_skipWhile.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - let skipWhile = f => 5 - curry(source => 6 - curry(sink => { 7 - let skip = ref(true); 8 - 9 - captureTalkback(source, (. signal, talkback) => 10 - switch (signal) { 11 - | Push(x) when skip^ => 12 - if (f(. x)) { 13 - talkback(. Pull); 14 - } else { 15 - skip := false; 16 - sink(. signal); 17 - } 18 - | _ => sink(. signal) 19 - } 20 - ); 21 - }) 22 - );
-3
src/operators/wonka_operator_skipWhile.rei
··· 1 - open Wonka_types; 2 - 3 - let skipWhile: ((. 'a) => bool, sourceT('a), sinkT('a)) => unit;
-4
src/operators/wonka_operator_switchMap.d.ts
··· 1 - import { Source, Operator } from '../wonka_types'; 2 - 3 - export const switchMap: <A, B>(f: (value: A) => Source<B>) => Operator<A, B>; 4 - export const switchAll: <A>(source: Source<Source<A>>) => Source<A>;
-84
src/operators/wonka_operator_switchMap.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type switchMapStateT('a) = { 5 - mutable outerTalkback: (. talkbackT) => unit, 6 - mutable innerTalkback: (. talkbackT) => unit, 7 - mutable innerActive: bool, 8 - mutable closed: bool, 9 - mutable ended: bool, 10 - }; 11 - 12 - let switchMap = f => 13 - curry(source => 14 - curry(sink => { 15 - let state: switchMapStateT('a) = { 16 - outerTalkback: talkbackPlaceholder, 17 - innerTalkback: talkbackPlaceholder, 18 - innerActive: false, 19 - closed: false, 20 - ended: false, 21 - }; 22 - 23 - let applyInnerSource = innerSource => 24 - innerSource((. signal) => 25 - switch (signal) { 26 - | End => 27 - state.innerActive = false; 28 - state.innerTalkback = talkbackPlaceholder; 29 - if (state.ended) { 30 - sink(. End); 31 - }; 32 - | Start(tb) => 33 - state.innerActive = true; 34 - state.innerTalkback = tb; 35 - tb(. Pull); 36 - | Push(x) when !state.closed => 37 - sink(. Push(x)); 38 - state.innerTalkback(. Pull); 39 - | Push(_) => () 40 - } 41 - ); 42 - 43 - source((. signal) => 44 - switch (signal) { 45 - | End when !state.ended => 46 - state.ended = true; 47 - if (!state.innerActive) { 48 - sink(. End); 49 - }; 50 - | End => () 51 - | Start(tb) => 52 - state.outerTalkback = tb; 53 - tb(. Pull); 54 - | Push(x) when !state.ended => 55 - if (state.innerActive) { 56 - state.innerTalkback(. Close); 57 - state.innerTalkback = talkbackPlaceholder; 58 - }; 59 - applyInnerSource(f(. x)); 60 - state.outerTalkback(. Pull); 61 - | Push(_) => () 62 - } 63 - ); 64 - 65 - sink(. 66 - Start( 67 - (. signal) => 68 - switch (signal) { 69 - | Pull => state.innerTalkback(. Pull) 70 - | Close => 71 - state.innerTalkback(. Close); 72 - if (!state.ended) { 73 - state.ended = true; 74 - state.closed = true; 75 - state.outerTalkback(. Close); 76 - state.innerTalkback = talkbackPlaceholder; 77 - }; 78 - }, 79 - ), 80 - ); 81 - }) 82 - ); 83 - 84 - let switchAll = source => switchMap((. x) => x, source);
-4
src/operators/wonka_operator_switchMap.rei
··· 1 - open Wonka_types; 2 - 3 - let switchMap: ((. 'a) => sourceT('b), sourceT('a), sinkT('b)) => unit; 4 - let switchAll: (sourceT(sourceT('a)), sinkT('a)) => unit;
-3
src/operators/wonka_operator_take.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const take: <A>(max: number) => Operator<A, A>;
-47
src/operators/wonka_operator_take.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type takeStateT = { 5 - mutable taken: int, 6 - mutable talkback: (. talkbackT) => unit, 7 - }; 8 - 9 - let take = max => 10 - curry(source => 11 - curry(sink => { 12 - let state: takeStateT = {taken: 0, talkback: talkbackPlaceholder}; 13 - 14 - source((. signal) => 15 - switch (signal) { 16 - | Start(tb) => state.talkback = tb 17 - | Push(_) when state.taken < max => 18 - state.taken = state.taken + 1; 19 - sink(. signal); 20 - 21 - if (state.taken === max) { 22 - sink(. End); 23 - state.talkback(. Close); 24 - }; 25 - | Push(_) => () 26 - | End when state.taken < max => 27 - state.taken = max; 28 - sink(. End); 29 - | End => () 30 - } 31 - ); 32 - 33 - sink(. 34 - Start( 35 - (. signal) => 36 - if (state.taken < max) { 37 - switch (signal) { 38 - | Pull => state.talkback(. Pull) 39 - | Close => 40 - state.taken = max; 41 - state.talkback(. Close); 42 - }; 43 - }, 44 - ), 45 - ); 46 - }) 47 - );
-3
src/operators/wonka_operator_take.rei
··· 1 - open Wonka_types; 2 - 3 - let take: (int, sourceT('a), sinkT('a)) => unit;
-3
src/operators/wonka_operator_takeLast.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const takeLast: <A>(max: number) => Operator<A, A>;
-25
src/operators/wonka_operator_takeLast.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - let takeLast = max => 5 - curry(source => 6 - curry(sink => { 7 - open Rebel; 8 - let queue = MutableQueue.make(); 9 - 10 - captureTalkback(source, (. signal, talkback) => 11 - switch (signal) { 12 - | Start(_) => talkback(. Pull) 13 - | Push(x) => 14 - let size = MutableQueue.size(queue); 15 - if (size >= max && max > 0) { 16 - ignore(MutableQueue.pop(queue)); 17 - }; 18 - 19 - MutableQueue.add(queue, x); 20 - talkback(. Pull); 21 - | End => makeTrampoline(sink, (.) => MutableQueue.pop(queue)) 22 - } 23 - ); 24 - }) 25 - );
-3
src/operators/wonka_operator_takeLast.rei
··· 1 - open Wonka_types; 2 - 3 - let takeLast: (int, sourceT('a), sinkT('a)) => unit;
-3
src/operators/wonka_operator_takeUntil.d.ts
··· 1 - import { Source, Operator } from '../wonka_types'; 2 - 3 - export const takeUntil: <A>(signal: Source<any>) => Operator<A, A>;
-61
src/operators/wonka_operator_takeUntil.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type takeUntilStateT = { 5 - mutable ended: bool, 6 - mutable sourceTalkback: (. talkbackT) => unit, 7 - mutable notifierTalkback: (. talkbackT) => unit, 8 - }; 9 - 10 - let takeUntil = notifier => 11 - curry(source => 12 - curry(sink => { 13 - let state: takeUntilStateT = { 14 - ended: false, 15 - sourceTalkback: talkbackPlaceholder, 16 - notifierTalkback: talkbackPlaceholder, 17 - }; 18 - 19 - source((. signal) => 20 - switch (signal) { 21 - | Start(tb) => 22 - state.sourceTalkback = tb; 23 - 24 - notifier((. signal) => 25 - switch (signal) { 26 - | Start(innerTb) => 27 - state.notifierTalkback = innerTb; 28 - innerTb(. Pull); 29 - | Push(_) => 30 - state.ended = true; 31 - state.sourceTalkback(. Close); 32 - sink(. End); 33 - | End => () 34 - } 35 - ); 36 - | End when !state.ended => 37 - state.ended = true; 38 - state.notifierTalkback(. Close); 39 - sink(. End); 40 - | End => () 41 - | Push(_) when !state.ended => sink(. signal) 42 - | Push(_) => () 43 - } 44 - ); 45 - 46 - sink(. 47 - Start( 48 - (. signal) => 49 - if (!state.ended) { 50 - switch (signal) { 51 - | Close => 52 - state.ended = true; 53 - state.sourceTalkback(. Close); 54 - state.notifierTalkback(. Close); 55 - | Pull => state.sourceTalkback(. Pull) 56 - }; 57 - }, 58 - ), 59 - ); 60 - }) 61 - );
-3
src/operators/wonka_operator_takeUntil.rei
··· 1 - open Wonka_types; 2 - 3 - let takeUntil: (sourceT('a), sourceT('b), sinkT('b)) => unit;
-3
src/operators/wonka_operator_takeWhile.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const takeWhile: <A>(f: (x: A) => boolean) => Operator<A, A>;
-45
src/operators/wonka_operator_takeWhile.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - let takeWhile = f => 5 - curry(source => 6 - curry(sink => { 7 - let ended = ref(false); 8 - let talkback = ref(talkbackPlaceholder); 9 - 10 - source((. signal) => 11 - switch (signal) { 12 - | Start(tb) => 13 - talkback := tb; 14 - sink(. signal); 15 - | End when ! ended^ => 16 - ended := true; 17 - sink(. End); 18 - | End => () 19 - | Push(x) when ! ended^ => 20 - if (!f(. x)) { 21 - ended := true; 22 - sink(. End); 23 - talkback^(. Close); 24 - } else { 25 - sink(. signal); 26 - } 27 - | Push(_) => () 28 - } 29 - ); 30 - 31 - sink(. 32 - Start( 33 - (. signal) => 34 - if (! ended^) { 35 - switch (signal) { 36 - | Pull => talkback^(. Pull) 37 - | Close => 38 - ended := true; 39 - talkback^(. Close); 40 - }; 41 - }, 42 - ), 43 - ); 44 - }) 45 - );
-3
src/operators/wonka_operator_takeWhile.rei
··· 1 - open Wonka_types; 2 - 3 - let takeWhile: ((. 'a) => bool, sourceT('a), sinkT('a)) => unit;
-156
src/pipe.d.ts
··· 1 - import { Source } from './wonka_types'; 2 - 3 - interface UnaryFn<T, R> { (source: T): R; } 4 - 5 - /* pipe definitions for source + operators composition */ 6 - 7 - export function pipe<T, A>( 8 - source: Source<T>, 9 - op1: UnaryFn<Source<T>, Source<A>> 10 - ): Source<A>; 11 - 12 - export function pipe<T, A, B>( 13 - source: Source<T>, 14 - op1: UnaryFn<Source<T>, Source<A>>, 15 - op2: UnaryFn<Source<A>, Source<B>> 16 - ): Source<B>; 17 - 18 - export function pipe<T, A, B, C>( 19 - source: Source<T>, 20 - op1: UnaryFn<Source<T>, Source<A>>, 21 - op2: UnaryFn<Source<A>, Source<B>>, 22 - op3: UnaryFn<Source<B>, Source<C>> 23 - ): Source<C>; 24 - 25 - export function pipe<T, A, B, C, D>( 26 - source: Source<T>, 27 - op1: UnaryFn<Source<T>, Source<A>>, 28 - op2: UnaryFn<Source<A>, Source<B>>, 29 - op3: UnaryFn<Source<B>, Source<C>>, 30 - op4: UnaryFn<Source<C>, Source<D>> 31 - ): Source<D>; 32 - 33 - export function pipe<T, A, B, C, D, E>( 34 - source: Source<T>, 35 - op1: UnaryFn<Source<T>, Source<A>>, 36 - op2: UnaryFn<Source<A>, Source<B>>, 37 - op3: UnaryFn<Source<B>, Source<C>>, 38 - op4: UnaryFn<Source<C>, Source<D>>, 39 - op5: UnaryFn<Source<D>, Source<E>> 40 - ): Source<E>; 41 - 42 - export function pipe<T, A, B, C, D, E, F>( 43 - source: Source<T>, 44 - op1: UnaryFn<Source<T>, Source<A>>, 45 - op2: UnaryFn<Source<A>, Source<B>>, 46 - op3: UnaryFn<Source<B>, Source<C>>, 47 - op4: UnaryFn<Source<C>, Source<D>>, 48 - op5: UnaryFn<Source<D>, Source<E>>, 49 - op6: UnaryFn<Source<E>, Source<F>> 50 - ): Source<F>; 51 - 52 - export function pipe<T, A, B, C, D, E, F, G>( 53 - source: Source<T>, 54 - op1: UnaryFn<Source<T>, Source<A>>, 55 - op2: UnaryFn<Source<A>, Source<B>>, 56 - op3: UnaryFn<Source<B>, Source<C>>, 57 - op4: UnaryFn<Source<C>, Source<D>>, 58 - op5: UnaryFn<Source<D>, Source<E>>, 59 - op6: UnaryFn<Source<E>, Source<F>>, 60 - op7: UnaryFn<Source<F>, Source<G>> 61 - ): Source<G>; 62 - 63 - export function pipe<T, A, B, C, D, E, F, G, H>( 64 - source: Source<T>, 65 - op1: UnaryFn<Source<T>, Source<A>>, 66 - op2: UnaryFn<Source<A>, Source<B>>, 67 - op3: UnaryFn<Source<B>, Source<C>>, 68 - op4: UnaryFn<Source<C>, Source<D>>, 69 - op5: UnaryFn<Source<D>, Source<E>>, 70 - op6: UnaryFn<Source<E>, Source<F>>, 71 - op7: UnaryFn<Source<F>, Source<G>>, 72 - op8: UnaryFn<Source<G>, Source<H>> 73 - ): Source<H>; 74 - 75 - /* pipe definitions for source + operators + consumer composition */ 76 - 77 - export function pipe<T, R>( 78 - source: Source<T>, 79 - consumer: UnaryFn<Source<T>, R> 80 - ): R; 81 - 82 - export function pipe<T, A, R>( 83 - source: Source<T>, 84 - op1: UnaryFn<Source<T>, Source<A>>, 85 - consumer: UnaryFn<Source<A>, R> 86 - ): R; 87 - 88 - export function pipe<T, A, B, R>( 89 - source: Source<T>, 90 - op1: UnaryFn<Source<T>, Source<A>>, 91 - op2: UnaryFn<Source<A>, Source<B>>, 92 - consumer: UnaryFn<Source<B>, R> 93 - ): R; 94 - 95 - export function pipe<T, A, B, C, R>( 96 - source: Source<T>, 97 - op1: UnaryFn<Source<T>, Source<A>>, 98 - op2: UnaryFn<Source<A>, Source<B>>, 99 - op3: UnaryFn<Source<B>, Source<C>>, 100 - consumer: UnaryFn<Source<C>, R> 101 - ): R; 102 - 103 - export function pipe<T, A, B, C, D, R>( 104 - source: Source<T>, 105 - op1: UnaryFn<Source<T>, Source<A>>, 106 - op2: UnaryFn<Source<A>, Source<B>>, 107 - op3: UnaryFn<Source<B>, Source<C>>, 108 - op4: UnaryFn<Source<C>, Source<D>>, 109 - consumer: UnaryFn<Source<D>, R> 110 - ): R; 111 - 112 - export function pipe<T, A, B, C, D, E, R>( 113 - source: Source<T>, 114 - op1: UnaryFn<Source<T>, Source<A>>, 115 - op2: UnaryFn<Source<A>, Source<B>>, 116 - op3: UnaryFn<Source<B>, Source<C>>, 117 - op4: UnaryFn<Source<C>, Source<D>>, 118 - op5: UnaryFn<Source<D>, Source<E>>, 119 - consumer: UnaryFn<Source<E>, R> 120 - ): R; 121 - 122 - export function pipe<T, A, B, C, D, E, F, R>( 123 - source: Source<T>, 124 - op1: UnaryFn<Source<T>, Source<A>>, 125 - op2: UnaryFn<Source<A>, Source<B>>, 126 - op3: UnaryFn<Source<B>, Source<C>>, 127 - op4: UnaryFn<Source<C>, Source<D>>, 128 - op5: UnaryFn<Source<D>, Source<E>>, 129 - op6: UnaryFn<Source<E>, Source<F>>, 130 - consumer: UnaryFn<Source<F>, R> 131 - ): R; 132 - 133 - export function pipe<T, A, B, C, D, E, F, G, R>( 134 - source: Source<T>, 135 - op1: UnaryFn<Source<T>, Source<A>>, 136 - op2: UnaryFn<Source<A>, Source<B>>, 137 - op3: UnaryFn<Source<B>, Source<C>>, 138 - op4: UnaryFn<Source<C>, Source<D>>, 139 - op5: UnaryFn<Source<D>, Source<E>>, 140 - op6: UnaryFn<Source<E>, Source<F>>, 141 - op7: UnaryFn<Source<F>, Source<G>>, 142 - consumer: UnaryFn<Source<G>, R> 143 - ): R; 144 - 145 - export function pipe<T, A, B, C, D, E, F, G, H, R>( 146 - source: Source<T>, 147 - op1: UnaryFn<Source<T>, Source<A>>, 148 - op2: UnaryFn<Source<A>, Source<B>>, 149 - op3: UnaryFn<Source<B>, Source<C>>, 150 - op4: UnaryFn<Source<C>, Source<D>>, 151 - op5: UnaryFn<Source<D>, Source<E>>, 152 - op6: UnaryFn<Source<E>, Source<F>>, 153 - op7: UnaryFn<Source<F>, Source<G>>, 154 - op8: UnaryFn<Source<G>, Source<H>>, 155 - consumer: UnaryFn<Source<H>, R> 156 - ): R;
-11
src/pipe.js
··· 1 - export function pipe(source) { 2 - const args = arguments; 3 - const len = args.length; 4 - let x = source; 5 - 6 - for (let i = 1; i < len; i++) { 7 - x = args[i](x); 8 - } 9 - 10 - return x; 11 - }
+2
src/shims/Dom.shim.ts
··· 1 + export type element = HTMLElement; 2 + export type event = Event;
+31
src/shims/Js.shim.ts
··· 1 + export type Exn_t = Error; 2 + export type Internal_meth<_T, R> = () => R; 3 + 4 + export type talkbackT = 0 | 1; 5 + 6 + export type signalT<a> = 7 + | ({ tag: 0 } & [(talkback: talkbackT) => void]) 8 + | ({ tag: 1 } & [a]) 9 + | 0; 10 + 11 + export interface observableSubscriptionT { 12 + unsubscribe(): void; 13 + } 14 + 15 + export interface observableObserverT<a> { 16 + next(value: a): void; 17 + error(error: any): void; 18 + complete(): void; 19 + } 20 + 21 + export interface observableT<a> { 22 + subscribe(observer: observableObserverT<a>): observableSubscriptionT; 23 + } 24 + 25 + interface Callbag<I, O> { 26 + (t: 0, d: Callbag<O, I>): void; 27 + (t: 1, d: I): void; 28 + (t: 2, d?: any): void; 29 + } 30 + 31 + export type callbagT<a> = Callbag<void, a>;
+11
src/shims/ReasonPervasives.shim.ts
··· 1 + // tslint:disable-next-line:max-classes-per-file 2 + export abstract class EmptyList { 3 + protected opaque: any; 4 + } 5 + 6 + // tslint:disable-next-line:max-classes-per-file 7 + export abstract class Cons<T> { 8 + protected opaque!: T; 9 + } 10 + 11 + export type list<T> = Cons<T> | EmptyList;
-3
src/sinks/wonka_sink_publish.d.ts
··· 1 - import { Source, Subscription } from '../wonka_types'; 2 - 3 - export const publish: <A>(source: Source<A>) => Subscription;
-32
src/sinks/wonka_sink_publish.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type publishStateT = { 5 - mutable talkback: (. talkbackT) => unit, 6 - mutable ended: bool, 7 - }; 8 - 9 - let publish = source => { 10 - let state: publishStateT = {talkback: talkbackPlaceholder, ended: false}; 11 - 12 - source((. signal) => 13 - switch (signal) { 14 - | Start(x) => 15 - state.talkback = x; 16 - x(. Pull); 17 - | Push(_) => 18 - if (!state.ended) { 19 - state.talkback(. Pull); 20 - } 21 - | End => state.ended = true 22 - } 23 - ); 24 - 25 - { 26 - unsubscribe: () => 27 - if (!state.ended) { 28 - state.ended = true; 29 - state.talkback(. Close); 30 - }, 31 - }; 32 - };
-3
src/sinks/wonka_sink_publish.rei
··· 1 - open Wonka_types; 2 - 3 - let publish: sourceT('a) => subscriptionT;
-4
src/sinks/wonka_sink_subscribe.d.ts
··· 1 - import { Source, Subscription } from '../wonka_types'; 2 - 3 - export const subscribe: <A>(f: (x: A) => void) => (source: Source<A>) => Subscription; 4 - export const forEach: <A>(f: (x: A) => void) => (source: Source<A>) => void;
-38
src/sinks/wonka_sink_subscribe.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type subscribeStateT = { 5 - mutable talkback: (. talkbackT) => unit, 6 - mutable ended: bool, 7 - }; 8 - 9 - let subscribe = f => 10 - curry(source => { 11 - let state: subscribeStateT = { 12 - talkback: talkbackPlaceholder, 13 - ended: false, 14 - }; 15 - 16 - source((. signal) => 17 - switch (signal) { 18 - | Start(x) => 19 - state.talkback = x; 20 - x(. Pull); 21 - | Push(x) when !state.ended => 22 - f(. x); 23 - state.talkback(. Pull); 24 - | Push(_) => () 25 - | End => state.ended = true 26 - } 27 - ); 28 - 29 - { 30 - unsubscribe: () => 31 - if (!state.ended) { 32 - state.ended = true; 33 - state.talkback(. Close); 34 - }, 35 - }; 36 - }); 37 - 38 - let forEach = f => curry(source => ignore(subscribe(f, source)));
-4
src/sinks/wonka_sink_subscribe.rei
··· 1 - open Wonka_types; 2 - 3 - let subscribe: ((. 'a) => unit, sourceT('a)) => subscriptionT; 4 - let forEach: ((. 'a) => unit, sourceT('a)) => unit;
-3
src/sinks/wonka_sink_toArray.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const toArray: <A>(source: Source<A>) => A[];
-36
src/sinks/wonka_sink_toArray.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - type toArrayStateT('a) = { 5 - values: Rebel.MutableQueue.t('a), 6 - mutable talkback: (. talkbackT) => unit, 7 - mutable value: option('a), 8 - mutable ended: bool, 9 - }; 10 - 11 - let toArray = (source: sourceT('a)): array('a) => { 12 - let state: toArrayStateT('a) = { 13 - values: Rebel.MutableQueue.make(), 14 - talkback: talkbackPlaceholder, 15 - value: None, 16 - ended: false, 17 - }; 18 - 19 - source((. signal) => 20 - switch (signal) { 21 - | Start(x) => 22 - state.talkback = x; 23 - x(. Pull); 24 - | Push(value) => 25 - Rebel.MutableQueue.add(state.values, value); 26 - state.talkback(. Pull); 27 - | End => state.ended = true 28 - } 29 - ); 30 - 31 - if (!state.ended) { 32 - state.talkback(. Close); 33 - }; 34 - 35 - Rebel.MutableQueue.toArray(state.values); 36 - };
-3
src/sinks/wonka_sink_toArray.rei
··· 1 - open Wonka_types; 2 - 3 - let toArray: sourceT('a) => array('a);
-3
src/sources/wonka_source_fromArray.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const fromArray: <A>(array: A[]) => Source<A>;
-18
src/sources/wonka_source_fromArray.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - let fromArray = arr => 5 - curry(sink => { 6 - let size = Rebel.Array.size(arr); 7 - let index = ref(0); 8 - 9 - makeTrampoline(sink, (.) => 10 - if (index^ < size) { 11 - let x = Rebel.Array.getUnsafe(arr, index^); 12 - index := index^ + 1; 13 - Some(x); 14 - } else { 15 - None; 16 - } 17 - ); 18 - });
-3
src/sources/wonka_source_fromArray.rei
··· 1 - open Wonka_types; 2 - 3 - let fromArray: (array('a), sinkT('a)) => unit;
-3
src/sources/wonka_source_fromList.d.ts
··· 1 - import { List, Source } from '../wonka_types'; 2 - 3 - export const fromList: <A>(list: List<A>) => Source<A>;
-16
src/sources/wonka_source_fromList.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - let fromList = ls => 5 - curry(sink => { 6 - let value = ref(ls); 7 - 8 - makeTrampoline(sink, (.) => 9 - switch (value^) { 10 - | [x, ...rest] => 11 - value := rest; 12 - Some(x); 13 - | [] => None 14 - } 15 - ); 16 - });
-3
src/sources/wonka_source_fromList.rei
··· 1 - open Wonka_types; 2 - 3 - let fromList: (list('a), sinkT('a)) => unit;
-3
src/sources/wonka_source_fromValue.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const fromValue: <A>(value: A) => Source<A>;
-19
src/sources/wonka_source_fromValue.re
··· 1 - open Wonka_types; 2 - 3 - let fromValue = x => 4 - curry(sink => { 5 - let ended = ref(false); 6 - 7 - sink(. 8 - Start( 9 - (. signal) => 10 - switch (signal) { 11 - | Pull when ! ended^ => 12 - ended := true; 13 - sink(. Push(x)); 14 - sink(. End); 15 - | _ => () 16 - }, 17 - ), 18 - ); 19 - });
-3
src/sources/wonka_source_fromValue.rei
··· 1 - open Wonka_types; 2 - 3 - let fromValue: ('a, sinkT('a)) => unit;
-3
src/sources/wonka_source_make.d.ts
··· 1 - import { Source, Observer } from '../wonka_types'; 2 - 3 - export const make: <A>(f: (observer: Observer<A>) => (() => void)) => Source<A>;
-22
src/sources/wonka_source_make.re
··· 1 - open Wonka_types; 2 - 3 - let make = f => 4 - curry(sink => { 5 - let teardown = ref((.) => ()); 6 - 7 - sink(. 8 - Start( 9 - (. signal) => 10 - switch (signal) { 11 - | Close => teardown^(.) 12 - | Pull => () 13 - }, 14 - ), 15 - ); 16 - 17 - teardown := 18 - f(. { 19 - next: value => sink(. Push(value)), 20 - complete: () => sink(. End), 21 - }); 22 - });
-3
src/sources/wonka_source_make.rei
··· 1 - open Wonka_types; 2 - 3 - let make: ((. observerT('a)) => teardownT, sinkT('a)) => unit;
-3
src/sources/wonka_source_makeSubject.d.ts
··· 1 - import { Subject } from '../wonka_types'; 2 - 3 - export const makeSubject: <A>() => Subject<A>;
-38
src/sources/wonka_source_makeSubject.re
··· 1 - open Wonka_types; 2 - 3 - type subjectState('a) = { 4 - mutable sinks: Rebel.Array.t(sinkT('a)), 5 - mutable ended: bool, 6 - }; 7 - 8 - let makeSubject = () => { 9 - let state: subjectState('a) = { 10 - sinks: Rebel.Array.makeEmpty(), 11 - ended: false, 12 - }; 13 - 14 - let source = sink => { 15 - state.sinks = Rebel.Array.append(state.sinks, sink); 16 - sink(. 17 - Start( 18 - (. signal) => 19 - if (signal === Close) { 20 - state.sinks = Rebel.Array.filter(state.sinks, x => x !== sink); 21 - }, 22 - ), 23 - ); 24 - }; 25 - 26 - let next = value => 27 - if (!state.ended) { 28 - Rebel.Array.forEach(state.sinks, sink => sink(. Push(value))); 29 - }; 30 - 31 - let complete = () => 32 - if (!state.ended) { 33 - state.ended = true; 34 - Rebel.Array.forEach(state.sinks, sink => sink(. End)); 35 - }; 36 - 37 - {source, next, complete}; 38 - };
-3
src/sources/wonka_source_makeSubject.rei
··· 1 - open Wonka_types; 2 - 3 - let makeSubject: unit => subjectT('a);
-4
src/sources/wonka_source_primitives.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const empty: Source<{}>; 4 - export const never: Source<{}>;
-11
src/sources/wonka_source_primitives.re
··· 1 - open Wonka_types; 2 - open Wonka_helpers; 3 - 4 - let empty = sink => { 5 - sink(. Start(talkbackPlaceholder)); 6 - sink(. End); 7 - }; 8 - 9 - let never = sink => { 10 - sink(. Start(talkbackPlaceholder)); 11 - };
-4
src/sources/wonka_source_primitives.rei
··· 1 - open Wonka_types; 2 - 3 - let empty: sinkT('a) => unit; 4 - let never: sinkT('a) => unit;
-17
src/web/wonkaJs.d.ts
··· 1 - /* operators */ 2 - export * from './wonka_operator_debounce'; 3 - export * from './wonka_operator_delay'; 4 - export * from './wonka_operator_throttle'; 5 - 6 - /* sinks */ 7 - export * from './wonka_sink_toPromise'; 8 - 9 - /* sources */ 10 - export * from './wonka_source_interval'; 11 - export * from './wonka_source_fromDomEvent'; 12 - export * from './wonka_source_fromListener'; 13 - export * from './wonka_source_fromPromise'; 14 - 15 - /* wrappers */ 16 - export * from './wonka_observable'; 17 - export * from './wonka_callbag';
+272 -11
src/web/wonkaJs.re
··· 1 + open Wonka_types; 2 + 3 + [@genType] 4 + let fromObservable = Wonka_observable.fromObservable; 5 + [@genType] 6 + let toObservable = Wonka_observable.toObservable; 7 + 8 + [@genType] 9 + let fromCallbag = Wonka_callbag.fromCallbag; 10 + [@genType] 11 + let toCallbag = Wonka_callbag.toCallbag; 12 + 1 13 /* operators */ 2 - include Wonka_operator_debounce; 3 - include Wonka_operator_delay; 4 - include Wonka_operator_throttle; 14 + 15 + [@genType] 16 + let debounce = (f: (. 'a) => int): operatorT('a, 'a) => 17 + curry(source => 18 + curry(sink => { 19 + let gotEndSignal = ref(false); 20 + let id: ref(option(Js.Global.timeoutId)) = ref(None); 21 + 22 + let clearTimeout = () => 23 + switch (id^) { 24 + | Some(timeoutId) => 25 + id := None; 26 + Js.Global.clearTimeout(timeoutId); 27 + | None => () 28 + }; 29 + 30 + source((. signal) => 31 + switch (signal) { 32 + | Start(tb) => 33 + sink(. 34 + Start( 35 + (. signal) => 36 + switch (signal) { 37 + | Close => 38 + clearTimeout(); 39 + tb(. Close); 40 + | _ => tb(. signal) 41 + }, 42 + ), 43 + ) 44 + | Push(x) => 45 + clearTimeout(); 46 + id := 47 + Some( 48 + Js.Global.setTimeout( 49 + () => { 50 + id := None; 51 + sink(. signal); 52 + if (gotEndSignal^) { 53 + sink(. End); 54 + }; 55 + }, 56 + f(. x), 57 + ), 58 + ); 59 + | End => 60 + gotEndSignal := true; 61 + 62 + switch (id^) { 63 + | None => sink(. End) 64 + | _ => () 65 + }; 66 + } 67 + ); 68 + }) 69 + ); 70 + 71 + type delayStateT = { 72 + mutable talkback: (. talkbackT) => unit, 73 + mutable active: int, 74 + mutable gotEndSignal: bool, 75 + }; 76 + 77 + [@genType] 78 + let delay = (wait: int): operatorT('a, 'a) => 79 + curry(source => 80 + curry(sink => { 81 + let state: delayStateT = { 82 + talkback: Wonka_helpers.talkbackPlaceholder, 83 + active: 0, 84 + gotEndSignal: false, 85 + }; 86 + 87 + source((. signal) => 88 + switch (signal) { 89 + | Start(tb) => state.talkback = tb 90 + | _ when !state.gotEndSignal => 91 + state.active = state.active + 1; 92 + ignore( 93 + Js.Global.setTimeout( 94 + () => { 95 + if (state.gotEndSignal && state.active === 0) { 96 + sink(. End); 97 + } else { 98 + state.active = state.active - 1; 99 + }; 100 + 101 + sink(. signal); 102 + }, 103 + wait, 104 + ), 105 + ); 106 + | _ => () 107 + } 108 + ); 109 + 110 + sink(. 111 + Start( 112 + (. signal) => 113 + switch (signal) { 114 + | Close => 115 + state.gotEndSignal = true; 116 + if (state.active === 0) { 117 + sink(. End); 118 + }; 119 + | _ when !state.gotEndSignal => state.talkback(. signal) 120 + | _ => () 121 + }, 122 + ), 123 + ); 124 + }) 125 + ); 126 + 127 + [@genType] 128 + let throttle = (f: (. 'a) => int): operatorT('a, 'a) => 129 + curry(source => 130 + curry(sink => { 131 + let skip = ref(false); 132 + let id: ref(option(Js.Global.timeoutId)) = ref(None); 133 + let clearTimeout = () => 134 + switch (id^) { 135 + | Some(timeoutId) => Js.Global.clearTimeout(timeoutId) 136 + | None => () 137 + }; 138 + 139 + source((. signal) => 140 + switch (signal) { 141 + | Start(tb) => 142 + sink(. 143 + Start( 144 + (. signal) => 145 + switch (signal) { 146 + | Close => 147 + clearTimeout(); 148 + tb(. Close); 149 + | _ => tb(. signal) 150 + }, 151 + ), 152 + ) 153 + | End => 154 + clearTimeout(); 155 + sink(. End); 156 + | Push(x) when ! skip^ => 157 + skip := true; 158 + clearTimeout(); 159 + id := 160 + Some( 161 + Js.Global.setTimeout( 162 + () => { 163 + id := None; 164 + skip := false; 165 + }, 166 + f(. x), 167 + ), 168 + ); 169 + sink(. signal); 170 + | Push(_) => () 171 + } 172 + ); 173 + }) 174 + ); 5 175 6 176 /* sinks */ 7 - include Wonka_sink_toPromise; 177 + [@genType] 178 + let toPromise = (source: sourceT('a)): Js.Promise.t('a) => { 179 + Js.Promise.make((~resolve, ~reject as _) => 180 + Wonka_operators.takeLast(1, source, (. signal) => 181 + switch (signal) { 182 + | Start(x) => x(. Pull) 183 + | Push(x) => resolve(. x) 184 + | End => () 185 + } 186 + ) 187 + ); 188 + }; 8 189 9 190 /* sources */ 10 - include Wonka_source_interval; 11 - include Wonka_source_fromDomEvent; 12 - include Wonka_source_fromListener; 13 - include Wonka_source_fromPromise; 191 + [@genType] 192 + let interval = (p: int): sourceT(int) => 193 + curry(sink => { 194 + let i = ref(0); 195 + let id = 196 + Js.Global.setInterval( 197 + () => { 198 + let num = i^; 199 + i := i^ + 1; 200 + sink(. Push(num)); 201 + }, 202 + p, 203 + ); 204 + 205 + sink(. 206 + Start( 207 + (. signal) => 208 + switch (signal) { 209 + | Close => Js.Global.clearInterval(id) 210 + | _ => () 211 + }, 212 + ), 213 + ); 214 + }); 215 + 216 + [@genType] 217 + let fromDomEvent = (element: Dom.element, event: string): sourceT(Dom.event) => 218 + curry(sink => { 219 + let addEventListener: (Dom.element, string, Dom.event => unit) => unit = [%raw 220 + {| 221 + function (element, event, handler) { 222 + element.addEventListener(event, handler); 223 + } 224 + |} 225 + ]; 226 + 227 + let removeEventListener: (Dom.element, string, Dom.event => unit) => unit = [%raw 228 + {| 229 + function (element, event, handler) { 230 + element.removeEventListener(event, handler); 231 + } 232 + |} 233 + ]; 234 + 235 + let handler = event => sink(. Push(event)); 14 236 15 - /* wrappers */ 16 - include Wonka_observable; 17 - include Wonka_callbag; 237 + sink(. 238 + Start( 239 + (. signal) => 240 + switch (signal) { 241 + | Close => removeEventListener(element, event, handler) 242 + | _ => () 243 + }, 244 + ), 245 + ); 246 + 247 + addEventListener(element, event, handler); 248 + }); 249 + 250 + [@genType] 251 + let fromPromise = (promise: Js.Promise.t('a)): sourceT('a) => 252 + curry(sink => { 253 + let ended = ref(false); 254 + 255 + ignore( 256 + Js.Promise.then_( 257 + value => { 258 + if (! ended^) { 259 + sink(. Push(value)); 260 + sink(. End); 261 + }; 262 + 263 + Js.Promise.resolve(); 264 + }, 265 + promise, 266 + ), 267 + ); 268 + 269 + sink(. 270 + Start( 271 + (. signal) => 272 + switch (signal) { 273 + | Close => ended := true 274 + | _ => () 275 + }, 276 + ), 277 + ); 278 + });
-10
src/web/wonka_callbag.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export type Callbag<I, O> = { 4 - (t: 0, d: Callbag<O, I>): void; 5 - (t: 1, d: I): void; 6 - (t: 2, d?: any): void; 7 - }; 8 - 9 - export const fromCallbag: <T>(callbag: Callbag<void, T>) => Source<T>; 10 - export const toCallbag: <T>(source: Source<T>) => Callbag<void, T>;
+19 -11
src/web/wonka_callbag.re
··· 1 1 open Wonka_types; 2 2 3 + [@genType] 3 4 type callbagSignal = 4 - | CALLBAG_START /* 0 */ 5 - | CALLBAG_DATA /* 1 */ 6 - | CALLBAG_END /* 2 */; 5 + | [@genType.as 0] CALLBAG_START /* 0 */ 6 + | [@genType.as 1] CALLBAG_DATA /* 1 */ 7 + | [@genType.as 2] CALLBAG_END /* 2 */; 7 8 9 + [@genType] 8 10 type callbagData('a); 11 + 12 + [@genType] 9 13 type callbagTalkback = (. callbagSignal) => unit; 10 - type callbagT('a) = (. callbagSignal, callbagData('a)) => unit; 14 + 15 + [@genType.import "../shims/Js.shim"] 16 + type callbagT('a) = (callbagSignal, callbagData('a)) => unit; 11 17 12 18 external unsafe_getCallbag: callbagData('a) => callbagT('a) = "%identity"; 13 19 external unsafe_getTalkback: callbagData('a) => callbagTalkback = "%identity"; 14 20 external unsafe_getValue: callbagData('a) => 'a = "%identity"; 15 21 external unsafe_wrap: 'any => callbagData('a) = "%identity"; 16 22 17 - let fromCallbag = callbag => 23 + [@genType] 24 + let fromCallbag = (callbag: callbagT('a)): sourceT('a) => 18 25 curry(sink => { 19 26 let wrappedSink = 20 27 (. signal, data) => ··· 32 39 | CALLBAG_DATA => sink(. Push(unsafe_getValue(data))) 33 40 | CALLBAG_END => sink(. End) 34 41 }; 35 - callbag(. CALLBAG_START, unsafe_wrap(wrappedSink)); 42 + callbag(CALLBAG_START, unsafe_wrap(wrappedSink)); 36 43 }); 37 44 38 - let toCallbag = source => 39 - curry((. signal, data) => 45 + [@genType] 46 + let toCallbag = (source: sourceT('a)): callbagT('a) => 47 + curry((signal, data) => 40 48 if (signal === CALLBAG_START) { 41 49 let callbag = unsafe_getCallbag(data); 42 50 source((. signal) => ··· 48 56 | CALLBAG_DATA => talkbackFn(. Pull) 49 57 | CALLBAG_END => talkbackFn(. Close) 50 58 }; 51 - callbag(. CALLBAG_START, unsafe_wrap(wrappedTalkbackFn)); 52 - | Push(data) => callbag(. CALLBAG_DATA, unsafe_wrap(data)) 53 - | End => callbag(. CALLBAG_END, unsafe_wrap()) 59 + callbag(CALLBAG_START, unsafe_wrap(wrappedTalkbackFn)); 60 + | Push(data) => callbag(CALLBAG_DATA, unsafe_wrap(data)) 61 + | End => callbag(CALLBAG_END, unsafe_wrap()) 54 62 } 55 63 ); 56 64 }
-6
src/web/wonka_callbag.rei
··· 1 - open Wonka_types; 2 - 3 - type callbagT('a); 4 - 5 - let fromCallbag: (callbagT('a), sinkT('a)) => unit; 6 - let toCallbag: sourceT('a) => callbagT('a);
-18
src/web/wonka_observable.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export interface JsSubscription { 4 - unsubscribe(): void; 5 - } 6 - 7 - export interface JsObserver<T> { 8 - next(value: T): void; 9 - error(errorValue: any): void; 10 - complete(): void; 11 - } 12 - 13 - export interface JsObservable<T> { 14 - subscribe(observer: JsObserver<T>): JsSubscription; 15 - } 16 - 17 - export const fromObservable: <T>(observable: JsObservable<T>) => Source<T>; 18 - export const toObservable: <T>(source: Source<T>) => JsObservable<T>;
+11 -5
src/web/wonka_observable.re
··· 9 9 |} 10 10 ]; 11 11 12 - type subscriptionT = {. [@bs.meth] "unsubscribe": unit => unit}; 12 + [@genType.import "../shims/Js.shim"] 13 + type observableSubscriptionT = {. [@bs.meth] "unsubscribe": unit => unit}; 13 14 14 - type observerT('a) = { 15 + [@genType.import "../shims/Js.shim"] 16 + type observableObserverT('a) = { 15 17 . 16 18 [@bs.meth] "next": 'a => unit, 17 19 [@bs.meth] "error": Js.Exn.t => unit, 18 20 [@bs.meth] "complete": unit => unit, 19 21 }; 20 22 23 + [@genType.import "../shims/Js.shim"] 21 24 type observableT('a) = { 22 25 . 23 - [@bs.meth] "subscribe": observerT('a) => subscriptionT, 26 + [@bs.meth] "subscribe": observableObserverT('a) => observableSubscriptionT, 24 27 }; 25 28 26 29 type observableFactoryT('a) = (. unit) => observableT('a); ··· 38 41 (observableT('a), string, unit => observableT('a)) => unit = 39 42 ""; 40 43 44 + [@genType] 41 45 let fromObservable = (input: observableT('a)): sourceT('a) => { 42 46 let observable = 43 47 switch (input->observable_get(observableSymbol)) { ··· 46 50 }; 47 51 48 52 curry(sink => { 49 - let observer: observerT('a) = 53 + let observer: observableObserverT('a) = 50 54 [@bs] 51 55 { 52 56 as _; ··· 74 78 mutable ended: bool, 75 79 }; 76 80 81 + [@genType] 77 82 let toObservable = (source: sourceT('a)): observableT('a) => { 78 83 let observable: observableT('a) = 79 84 [@bs] 80 85 { 81 86 as _; 82 - pub subscribe = (observer: observerT('a)): subscriptionT => { 87 + pub subscribe = 88 + (observer: observableObserverT('a)): observableSubscriptionT => { 83 89 let state: observableStateT = { 84 90 talkback: talkbackPlaceholder, 85 91 ended: false,
-6
src/web/wonka_observable.rei
··· 1 - open Wonka_types; 2 - 3 - type observableT('a); 4 - 5 - let fromObservable: (observableT('a), sinkT('a)) => unit; 6 - let toObservable: sourceT('a) => observableT('a);
-3
src/web/wonka_operator_debounce.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const debounce: <A>(f: (x: A) => number) => Operator<A, A>;
-56
src/web/wonka_operator_debounce.re
··· 1 - open Wonka_types; 2 - 3 - let debounce = f => 4 - curry(source => 5 - curry(sink => { 6 - let gotEndSignal = ref(false); 7 - let id: ref(option(Js.Global.timeoutId)) = ref(None); 8 - 9 - let clearTimeout = () => 10 - switch (id^) { 11 - | Some(timeoutId) => 12 - id := None; 13 - Js.Global.clearTimeout(timeoutId); 14 - | None => () 15 - }; 16 - 17 - source((. signal) => 18 - switch (signal) { 19 - | Start(tb) => 20 - sink(. 21 - Start( 22 - (. signal) => 23 - switch (signal) { 24 - | Close => 25 - clearTimeout(); 26 - tb(. Close); 27 - | _ => tb(. signal) 28 - }, 29 - ), 30 - ) 31 - | Push(x) => 32 - clearTimeout(); 33 - id := 34 - Some( 35 - Js.Global.setTimeout( 36 - () => { 37 - id := None; 38 - sink(. signal); 39 - if (gotEndSignal^) { 40 - sink(. End); 41 - }; 42 - }, 43 - f(. x), 44 - ), 45 - ); 46 - | End => 47 - gotEndSignal := true; 48 - 49 - switch (id^) { 50 - | None => sink(. End) 51 - | _ => () 52 - }; 53 - } 54 - ); 55 - }) 56 - );
-3
src/web/wonka_operator_debounce.rei
··· 1 - open Wonka_types; 2 - 3 - let debounce: ((. 'a) => int, sourceT('a), sinkT('a)) => unit;
-3
src/web/wonka_operator_delay.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const delay: <A>(duration: number) => Operator<A, A>;
-56
src/web/wonka_operator_delay.re
··· 1 - open Wonka_types; 2 - 3 - type delayStateT = { 4 - mutable talkback: (. talkbackT) => unit, 5 - mutable active: int, 6 - mutable gotEndSignal: bool, 7 - }; 8 - 9 - let delay = wait => 10 - curry(source => 11 - curry(sink => { 12 - let state: delayStateT = { 13 - talkback: Wonka_helpers.talkbackPlaceholder, 14 - active: 0, 15 - gotEndSignal: false, 16 - }; 17 - 18 - source((. signal) => 19 - switch (signal) { 20 - | Start(tb) => state.talkback = tb 21 - | _ when !state.gotEndSignal => 22 - state.active = state.active + 1; 23 - ignore( 24 - Js.Global.setTimeout( 25 - () => { 26 - if (state.gotEndSignal && state.active === 0) { 27 - sink(. End); 28 - } else { 29 - state.active = state.active - 1; 30 - }; 31 - 32 - sink(. signal); 33 - }, 34 - wait, 35 - ), 36 - ); 37 - | _ => () 38 - } 39 - ); 40 - 41 - sink(. 42 - Start( 43 - (. signal) => 44 - switch (signal) { 45 - | Close => 46 - state.gotEndSignal = true; 47 - if (state.active === 0) { 48 - sink(. End); 49 - }; 50 - | _ when !state.gotEndSignal => state.talkback(. signal) 51 - | _ => () 52 - }, 53 - ), 54 - ); 55 - }) 56 - );
-3
src/web/wonka_operator_delay.rei
··· 1 - open Wonka_types; 2 - 3 - let delay: (int, sourceT('a), sinkT('a)) => unit;
-3
src/web/wonka_operator_throttle.d.ts
··· 1 - import { Operator } from '../wonka_types'; 2 - 3 - export const throttle: <A>(f: (x: A) => number) => Operator<A, A>;
-49
src/web/wonka_operator_throttle.re
··· 1 - open Wonka_types; 2 - 3 - let throttle = f => 4 - curry(source => 5 - curry(sink => { 6 - let skip = ref(false); 7 - let id: ref(option(Js.Global.timeoutId)) = ref(None); 8 - let clearTimeout = () => 9 - switch (id^) { 10 - | Some(timeoutId) => Js.Global.clearTimeout(timeoutId) 11 - | None => () 12 - }; 13 - 14 - source((. signal) => 15 - switch (signal) { 16 - | Start(tb) => 17 - sink(. 18 - Start( 19 - (. signal) => 20 - switch (signal) { 21 - | Close => 22 - clearTimeout(); 23 - tb(. Close); 24 - | _ => tb(. signal) 25 - }, 26 - ), 27 - ) 28 - | End => 29 - clearTimeout(); 30 - sink(. End); 31 - | Push(x) when ! skip^ => 32 - skip := true; 33 - clearTimeout(); 34 - id := 35 - Some( 36 - Js.Global.setTimeout( 37 - () => { 38 - id := None; 39 - skip := false; 40 - }, 41 - f(. x), 42 - ), 43 - ); 44 - sink(. signal); 45 - | Push(_) => () 46 - } 47 - ); 48 - }) 49 - );
-3
src/web/wonka_operator_throttle.rei
··· 1 - open Wonka_types; 2 - 3 - let throttle: ((. 'a) => int, sourceT('a), sinkT('a)) => unit;
-3
src/web/wonka_sink_toPromise.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const toPromise: <A>(source: Source<A>) => Promise<A>;
-15
src/web/wonka_sink_toPromise.re
··· 1 - open Wonka_types; 2 - 3 - let toPromise = source => { 4 - Wonka_operator_takeLast.( 5 - Js.Promise.make((~resolve, ~reject as _) => 6 - takeLast(1, source, (. signal) => 7 - switch (signal) { 8 - | Start(x) => x(. Pull) 9 - | Push(x) => resolve(. x) 10 - | End => () 11 - } 12 - ) 13 - ) 14 - ); 15 - };
-3
src/web/wonka_sink_toPromise.rei
··· 1 - open Wonka_types; 2 - 3 - let toPromise: sourceT('a) => Js.Promise.t('a);
-3
src/web/wonka_source_fromDomEvent.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const fromDomEvent: <E>(element: HTMLElement, event: string) => Source<E>;
-27
src/web/wonka_source_fromDomEvent.re
··· 1 - open Wonka_types; 2 - open Wonka_source_fromListener; 3 - 4 - let fromDomEvent = (element, event) => 5 - curry(sink => { 6 - let addEventListener: (Dom.element, string, Dom.event => unit) => unit = [%raw 7 - {| 8 - function (element, event, handler) { 9 - element.addEventListener(event, handler); 10 - } 11 - |} 12 - ]; 13 - 14 - let removeEventListener: (Dom.element, string, Dom.event => unit) => unit = [%raw 15 - {| 16 - function (element, event, handler) { 17 - element.removeEventListener(event, handler); 18 - } 19 - |} 20 - ]; 21 - 22 - fromListener( 23 - handler => addEventListener(element, event, handler), 24 - handler => removeEventListener(element, event, handler), 25 - sink, 26 - ); 27 - });
-3
src/web/wonka_source_fromDomEvent.rei
··· 1 - open Wonka_types; 2 - 3 - let fromDomEvent: (Dom.element, string, sinkT(Dom.event)) => unit;
-6
src/web/wonka_source_fromListener.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const fromListener: <E>( 4 - addListener: (cb: (event: E) => void) => void, 5 - removeListener: (cb: (event: E) => void) => void 6 - ) => Source<E>;
-18
src/web/wonka_source_fromListener.re
··· 1 - open Wonka_types; 2 - 3 - let fromListener = (addListener, removeListener) => 4 - curry(sink => { 5 - let handler = event => sink(. Push(event)); 6 - 7 - sink(. 8 - Start( 9 - (. signal) => 10 - switch (signal) { 11 - | Close => removeListener(handler) 12 - | _ => () 13 - }, 14 - ), 15 - ); 16 - 17 - addListener(handler); 18 - });
-4
src/web/wonka_source_fromListener.rei
··· 1 - open Wonka_types; 2 - 3 - let fromListener: 4 - (('event => unit) => unit, ('event => unit) => unit, sinkT('event)) => unit;
-3
src/web/wonka_source_fromPromise.d.ts
··· 1 - import { Operator, Source } from '../wonka_types'; 2 - 3 - export const fromPromise: <A>(promise: Promise<A>) => Source<A>;
-30
src/web/wonka_source_fromPromise.re
··· 1 - open Wonka_types; 2 - 3 - let fromPromise = promise => 4 - curry(sink => { 5 - let ended = ref(false); 6 - 7 - ignore( 8 - Js.Promise.then_( 9 - value => { 10 - if (! ended^) { 11 - sink(. Push(value)); 12 - sink(. End); 13 - }; 14 - 15 - Js.Promise.resolve(); 16 - }, 17 - promise, 18 - ), 19 - ); 20 - 21 - sink(. 22 - Start( 23 - (. signal) => 24 - switch (signal) { 25 - | Close => ended := true 26 - | _ => () 27 - }, 28 - ), 29 - ); 30 - });
-3
src/web/wonka_source_fromPromise.rei
··· 1 - open Wonka_types; 2 - 3 - let fromPromise: (Js.Promise.t('a), sinkT('a)) => unit;
-3
src/web/wonka_source_interval.d.ts
··· 1 - import { Source } from '../wonka_types'; 2 - 3 - export const interval: (interval: number) => Source<number>;
-25
src/web/wonka_source_interval.re
··· 1 - open Wonka_types; 2 - 3 - let interval = p => 4 - curry(sink => { 5 - let i = ref(0); 6 - let id = 7 - Js.Global.setInterval( 8 - () => { 9 - let num = i^; 10 - i := i^ + 1; 11 - sink(. Push(num)); 12 - }, 13 - p, 14 - ); 15 - 16 - sink(. 17 - Start( 18 - (. signal) => 19 - switch (signal) { 20 - | Close => Js.Global.clearInterval(id) 21 - | _ => () 22 - }, 23 - ), 24 - ); 25 - });
-3
src/web/wonka_source_interval.rei
··· 1 - open Wonka_types; 2 - 3 - let interval: (int, sinkT(int)) => unit;
-36
src/wonka.d.ts
··· 1 - /* sources */ 2 - export * from './sources/wonka_source_fromArray'; 3 - export * from './sources/wonka_source_fromList'; 4 - export * from './sources/wonka_source_fromValue'; 5 - export * from './sources/wonka_source_make'; 6 - export * from './sources/wonka_source_makeSubject'; 7 - export * from './sources/wonka_source_primitives'; 8 - 9 - /* operators */ 10 - export * from './operators/wonka_operator_buffer'; 11 - export * from './operators/wonka_operator_combine'; 12 - export * from './operators/wonka_operator_concatMap'; 13 - export * from './operators/wonka_operator_filter'; 14 - export * from './operators/wonka_operator_map'; 15 - export * from './operators/wonka_operator_mergeMap'; 16 - export * from './operators/wonka_operator_onEnd'; 17 - export * from './operators/wonka_operator_onPush'; 18 - export * from './operators/wonka_operator_onStart'; 19 - export * from './operators/wonka_operator_sample'; 20 - export * from './operators/wonka_operator_scan'; 21 - export * from './operators/wonka_operator_share'; 22 - export * from './operators/wonka_operator_skip'; 23 - export * from './operators/wonka_operator_skipUntil'; 24 - export * from './operators/wonka_operator_skipWhile'; 25 - export * from './operators/wonka_operator_switchMap'; 26 - export * from './operators/wonka_operator_take'; 27 - export * from './operators/wonka_operator_takeLast'; 28 - export * from './operators/wonka_operator_takeUntil'; 29 - export * from './operators/wonka_operator_takeWhile'; 30 - 31 - /* sinks */ 32 - export * from './sinks/wonka_sink_publish'; 33 - export * from './sinks/wonka_sink_subscribe'; 34 - export * from './sinks/wonka_sink_toArray'; 35 - 36 - export * from './web/wonkaJs';
+15
src/wonka.ts
··· 1 + export * from './helpers/pipe'; 2 + 3 + export * from './wonka_sources.gen'; 4 + export * from './wonka_operators.gen'; 5 + export * from './wonka_sinks.gen'; 6 + export * from './web/wonkaJs.gen'; 7 + 8 + export { 9 + sinkT as Sink, 10 + sourceT as Source, 11 + operatorT as Operator, 12 + subscriptionT as Subscription, 13 + observerT as Observer, 14 + subjectT as Subject 15 + } from './wonka_types.gen';
src/wonka_helpers.re src/helpers/wonka_helpers.re
+947 -20
src/wonka_operators.re
··· 1 - include Wonka_operator_buffer; 2 - include Wonka_operator_combine; 3 - include Wonka_operator_concatMap; 4 - include Wonka_operator_filter; 5 - include Wonka_operator_map; 6 - include Wonka_operator_mergeMap; 7 - include Wonka_operator_onEnd; 8 - include Wonka_operator_onPush; 9 - include Wonka_operator_onStart; 10 - include Wonka_operator_sample; 11 - include Wonka_operator_scan; 12 - include Wonka_operator_share; 13 - include Wonka_operator_skip; 14 - include Wonka_operator_skipUntil; 15 - include Wonka_operator_skipWhile; 16 - include Wonka_operator_switchMap; 17 - include Wonka_operator_take; 18 - include Wonka_operator_takeLast; 19 - include Wonka_operator_takeUntil; 20 - include Wonka_operator_takeWhile; 1 + open Wonka_types; 2 + open Wonka_helpers; 3 + 4 + type bufferStateT('a) = { 5 + mutable buffer: Rebel.MutableQueue.t('a), 6 + mutable sourceTalkback: (. talkbackT) => unit, 7 + mutable notifierTalkback: (. talkbackT) => unit, 8 + mutable ended: bool, 9 + }; 10 + 11 + [@genType] 12 + let buffer = (notifier: sourceT('a)): operatorT('b, array('b)) => 13 + curry(source => 14 + curry(sink => { 15 + let state = { 16 + buffer: Rebel.MutableQueue.make(), 17 + sourceTalkback: talkbackPlaceholder, 18 + notifierTalkback: talkbackPlaceholder, 19 + ended: false, 20 + }; 21 + 22 + source((. signal) => 23 + switch (signal) { 24 + | Start(tb) => 25 + state.sourceTalkback = tb; 26 + 27 + notifier((. signal) => 28 + switch (signal) { 29 + | Start(tb) => 30 + state.notifierTalkback = tb; 31 + state.notifierTalkback(. Pull); 32 + | Push(_) when !state.ended => 33 + sink(. Push(Rebel.MutableQueue.toArray(state.buffer))); 34 + state.buffer = Rebel.MutableQueue.make(); 35 + state.notifierTalkback(. Pull); 36 + | Push(_) => () 37 + | End when !state.ended => 38 + state.ended = true; 39 + state.sourceTalkback(. Close); 40 + sink(. Push(Rebel.MutableQueue.toArray(state.buffer))); 41 + sink(. End); 42 + | End => () 43 + } 44 + ); 45 + | Push(value) when !state.ended => 46 + Rebel.MutableQueue.add(state.buffer, value); 47 + state.sourceTalkback(. Pull); 48 + | Push(_) => () 49 + | End when !state.ended => 50 + state.ended = true; 51 + state.notifierTalkback(. Close); 52 + sink(. Push(Rebel.MutableQueue.toArray(state.buffer))); 53 + sink(. End); 54 + | End => () 55 + } 56 + ); 57 + 58 + sink(. 59 + Start( 60 + (. signal) => 61 + if (!state.ended) { 62 + switch (signal) { 63 + | Close => 64 + state.ended = true; 65 + state.sourceTalkback(. Close); 66 + state.notifierTalkback(. Close); 67 + | Pull => state.sourceTalkback(. Pull) 68 + }; 69 + }, 70 + ), 71 + ); 72 + }) 73 + ); 74 + 75 + type combineStateT('a, 'b) = { 76 + mutable talkbackA: (. talkbackT) => unit, 77 + mutable talkbackB: (. talkbackT) => unit, 78 + mutable lastValA: option('a), 79 + mutable lastValB: option('b), 80 + mutable gotSignal: bool, 81 + mutable endCounter: int, 82 + mutable ended: bool, 83 + }; 84 + 85 + [@genType] 86 + let combine = 87 + (sourceA: sourceT('a), sourceB: sourceT('b)): sourceT(('a, 'b)) => 88 + curry(sink => { 89 + let state = { 90 + talkbackA: talkbackPlaceholder, 91 + talkbackB: talkbackPlaceholder, 92 + lastValA: None, 93 + lastValB: None, 94 + gotSignal: false, 95 + endCounter: 0, 96 + ended: false, 97 + }; 98 + 99 + sourceA((. signal) => 100 + switch (signal, state.lastValB) { 101 + | (Start(tb), _) => state.talkbackA = tb 102 + | (Push(a), None) => 103 + state.lastValA = Some(a); 104 + state.gotSignal = false; 105 + | (Push(a), Some(b)) when !state.ended => 106 + state.lastValA = Some(a); 107 + state.gotSignal = false; 108 + sink(. Push((a, b))); 109 + | (End, _) when state.endCounter < 1 => 110 + state.endCounter = state.endCounter + 1 111 + | (End, _) when !state.ended => 112 + state.ended = true; 113 + sink(. End); 114 + | _ => () 115 + } 116 + ); 117 + 118 + sourceB((. signal) => 119 + switch (signal, state.lastValA) { 120 + | (Start(tb), _) => state.talkbackB = tb 121 + | (Push(b), None) => 122 + state.lastValB = Some(b); 123 + state.gotSignal = false; 124 + | (Push(b), Some(a)) when !state.ended => 125 + state.lastValB = Some(b); 126 + state.gotSignal = false; 127 + sink(. Push((a, b))); 128 + | (End, _) when state.endCounter < 1 => 129 + state.endCounter = state.endCounter + 1 130 + | (End, _) when !state.ended => 131 + state.ended = true; 132 + sink(. End); 133 + | _ => () 134 + } 135 + ); 136 + 137 + sink(. 138 + Start( 139 + (. signal) => 140 + if (!state.ended) { 141 + switch (signal) { 142 + | Close => 143 + state.ended = true; 144 + state.talkbackA(. Close); 145 + state.talkbackB(. Close); 146 + | Pull when !state.gotSignal => 147 + state.gotSignal = true; 148 + state.talkbackA(. signal); 149 + state.talkbackB(. signal); 150 + | Pull => () 151 + }; 152 + }, 153 + ), 154 + ); 155 + }); 156 + 157 + type concatMapStateT('a) = { 158 + inputQueue: Rebel.MutableQueue.t('a), 159 + mutable outerTalkback: (. talkbackT) => unit, 160 + mutable innerTalkback: (. talkbackT) => unit, 161 + mutable innerActive: bool, 162 + mutable closed: bool, 163 + mutable ended: bool, 164 + }; 165 + 166 + [@genType] 167 + let concatMap = (f: (. 'a) => sourceT('b)): operatorT('a, 'b) => 168 + curry(source => 169 + curry(sink => { 170 + let state: concatMapStateT('a) = { 171 + inputQueue: Rebel.MutableQueue.make(), 172 + outerTalkback: talkbackPlaceholder, 173 + innerTalkback: talkbackPlaceholder, 174 + innerActive: false, 175 + closed: false, 176 + ended: false, 177 + }; 178 + 179 + let rec applyInnerSource = innerSource => 180 + innerSource((. signal) => 181 + switch (signal) { 182 + | End => 183 + state.innerActive = false; 184 + state.innerTalkback = talkbackPlaceholder; 185 + 186 + switch (Rebel.MutableQueue.pop(state.inputQueue)) { 187 + | Some(input) => applyInnerSource(f(. input)) 188 + | None when state.ended => sink(. End) 189 + | None => () 190 + }; 191 + | Start(tb) => 192 + state.innerActive = true; 193 + state.innerTalkback = tb; 194 + tb(. Pull); 195 + | Push(x) when !state.closed => 196 + sink(. Push(x)); 197 + state.innerTalkback(. Pull); 198 + | Push(_) => () 199 + } 200 + ); 201 + 202 + source((. signal) => 203 + switch (signal) { 204 + | End when !state.ended => 205 + state.ended = true; 206 + if (!state.innerActive 207 + && Rebel.MutableQueue.isEmpty(state.inputQueue)) { 208 + sink(. End); 209 + }; 210 + | End => () 211 + | Start(tb) => 212 + state.outerTalkback = tb; 213 + tb(. Pull); 214 + | Push(x) when !state.ended => 215 + if (state.innerActive) { 216 + Rebel.MutableQueue.add(state.inputQueue, x); 217 + } else { 218 + applyInnerSource(f(. x)); 219 + }; 220 + 221 + state.outerTalkback(. Pull); 222 + | Push(_) => () 223 + } 224 + ); 225 + 226 + sink(. 227 + Start( 228 + (. signal) => 229 + switch (signal) { 230 + | Pull => 231 + if (!state.ended) { 232 + state.innerTalkback(. Pull); 233 + } 234 + | Close => 235 + state.innerTalkback(. Close); 236 + if (!state.ended) { 237 + state.ended = true; 238 + state.closed = true; 239 + state.outerTalkback(. Close); 240 + state.innerTalkback = talkbackPlaceholder; 241 + }; 242 + }, 243 + ), 244 + ); 245 + }) 246 + ); 247 + 248 + [@genType] 249 + let concatAll = (source: sourceT(sourceT('a))): sourceT('a) => 250 + concatMap((. x) => x, source); 251 + 252 + [@genType] 253 + let concat = (sources: array(sourceT('a))): sourceT('a) => 254 + concatMap((. x) => x, Wonka_sources.fromArray(sources)); 255 + 256 + [@genType] 257 + let filter = (f: (. 'a) => bool): operatorT('a, 'a) => 258 + curry(source => 259 + curry(sink => 260 + captureTalkback(source, (. signal, talkback) => 261 + switch (signal) { 262 + | Push(x) when !f(. x) => talkback(. Pull) 263 + | _ => sink(. signal) 264 + } 265 + ) 266 + ) 267 + ); 268 + 269 + [@genType] 270 + let map = (f: (. 'a) => 'b): operatorT('a, 'b) => 271 + curry(source => 272 + curry(sink => 273 + source((. signal) => 274 + sink(. 275 + switch (signal) { 276 + | Start(x) => Start(x) 277 + | Push(x) => Push(f(. x)) 278 + | End => End 279 + }, 280 + ) 281 + ) 282 + ) 283 + ); 284 + 285 + type mergeMapStateT = { 286 + mutable outerTalkback: (. talkbackT) => unit, 287 + mutable innerTalkbacks: Rebel.Array.t((. talkbackT) => unit), 288 + mutable ended: bool, 289 + }; 290 + 291 + [@genType] 292 + let mergeMap = (f: (. 'a) => sourceT('b)): operatorT('a, 'b) => 293 + curry(source => 294 + curry(sink => { 295 + let state: mergeMapStateT = { 296 + outerTalkback: talkbackPlaceholder, 297 + innerTalkbacks: Rebel.Array.makeEmpty(), 298 + ended: false, 299 + }; 300 + 301 + let applyInnerSource = innerSource => { 302 + let talkback = ref(talkbackPlaceholder); 303 + 304 + innerSource((. signal) => 305 + switch (signal) { 306 + | End => 307 + state.innerTalkbacks = 308 + Rebel.Array.filter(state.innerTalkbacks, x => x !== talkback^); 309 + if (state.ended && Rebel.Array.size(state.innerTalkbacks) === 0) { 310 + sink(. End); 311 + }; 312 + | Start(tb) => 313 + talkback := tb; 314 + state.innerTalkbacks = 315 + Rebel.Array.append(state.innerTalkbacks, tb); 316 + tb(. Pull); 317 + | Push(x) when Rebel.Array.size(state.innerTalkbacks) !== 0 => 318 + sink(. Push(x)); 319 + talkback^(. Pull); 320 + | Push(_) => () 321 + } 322 + ); 323 + }; 324 + 325 + source((. signal) => 326 + switch (signal) { 327 + | End when !state.ended => 328 + state.ended = true; 329 + if (Rebel.Array.size(state.innerTalkbacks) === 0) { 330 + sink(. End); 331 + }; 332 + | End => () 333 + | Start(tb) => 334 + state.outerTalkback = tb; 335 + tb(. Pull); 336 + | Push(x) when !state.ended => 337 + applyInnerSource(f(. x)); 338 + state.outerTalkback(. Pull); 339 + | Push(_) => () 340 + } 341 + ); 342 + 343 + sink(. 344 + Start( 345 + (. signal) => 346 + switch (signal) { 347 + | Close => 348 + Rebel.Array.forEach(state.innerTalkbacks, talkback => 349 + talkback(. Close) 350 + ); 351 + if (!state.ended) { 352 + state.ended = true; 353 + state.outerTalkback(. Close); 354 + Rebel.Array.forEach(state.innerTalkbacks, talkback => 355 + talkback(. Close) 356 + ); 357 + state.innerTalkbacks = Rebel.Array.makeEmpty(); 358 + }; 359 + | Pull when !state.ended => 360 + Rebel.Array.forEach(state.innerTalkbacks, talkback => 361 + talkback(. Pull) 362 + ) 363 + | Pull => () 364 + }, 365 + ), 366 + ); 367 + }) 368 + ); 369 + 370 + [@genType] 371 + let merge = (sources: array(sourceT('a))): sourceT('a) => 372 + mergeMap((. x) => x, Wonka_sources.fromArray(sources)); 373 + 374 + [@genType] 375 + let mergeAll = (source: sourceT(sourceT('a))): sourceT('a) => 376 + mergeMap((. x) => x, source); 377 + 378 + [@genType] 379 + let flatten = mergeAll; 380 + 381 + [@genType] 382 + let onEnd = (f: (. unit) => unit): operatorT('a, 'a) => 383 + curry(source => 384 + curry(sink => { 385 + let ended = ref(false); 386 + 387 + source((. signal) => 388 + switch (signal) { 389 + | Start(talkback) => 390 + sink(. 391 + Start( 392 + (. signal) => { 393 + switch (signal) { 394 + | Close when ! ended^ => 395 + ended := true; 396 + f(.); 397 + | Close 398 + | Pull => () 399 + }; 400 + 401 + talkback(. signal); 402 + }, 403 + ), 404 + ) 405 + | End => 406 + if (! ended^) { 407 + ended := true; 408 + sink(. signal); 409 + f(.); 410 + } 411 + | _ => sink(. signal) 412 + } 413 + ); 414 + }) 415 + ); 416 + 417 + [@genType] 418 + let onPush = (f: (. 'a) => unit): operatorT('a, 'a) => 419 + curry(source => 420 + curry(sink => 421 + source((. signal) => { 422 + switch (signal) { 423 + | Push(x) => f(. x) 424 + | _ => () 425 + }; 426 + 427 + sink(. signal); 428 + }) 429 + ) 430 + ); 431 + 432 + [@genType] 433 + let tap = onPush; 434 + 435 + [@genType] 436 + let onStart = (f: (. unit) => unit): operatorT('a, 'a) => 437 + curry(source => 438 + curry(sink => 439 + source((. signal) => 440 + switch (signal) { 441 + | Start(_) => 442 + sink(. signal); 443 + f(.); 444 + | _ => sink(. signal) 445 + } 446 + ) 447 + ) 448 + ); 449 + 450 + type sampleStateT('a) = { 451 + mutable ended: bool, 452 + mutable value: option('a), 453 + mutable sourceTalkback: (. talkbackT) => unit, 454 + mutable notifierTalkback: (. talkbackT) => unit, 455 + }; 456 + 457 + [@genType] 458 + let sample = (notifier: sourceT('a)): operatorT('b, 'b) => 459 + curry(source => 460 + curry(sink => { 461 + let state = { 462 + ended: false, 463 + value: None, 464 + sourceTalkback: (. _: talkbackT) => (), 465 + notifierTalkback: (. _: talkbackT) => (), 466 + }; 467 + 468 + source((. signal) => 469 + switch (signal) { 470 + | Start(tb) => state.sourceTalkback = tb 471 + | End => 472 + state.ended = true; 473 + state.notifierTalkback(. Close); 474 + sink(. End); 475 + | Push(x) => state.value = Some(x) 476 + } 477 + ); 478 + 479 + notifier((. signal) => 480 + switch (signal, state.value) { 481 + | (Start(tb), _) => state.notifierTalkback = tb 482 + | (End, _) => 483 + state.ended = true; 484 + state.sourceTalkback(. Close); 485 + sink(. End); 486 + | (Push(_), Some(x)) when !state.ended => 487 + state.value = None; 488 + sink(. Push(x)); 489 + | (Push(_), _) => () 490 + } 491 + ); 492 + 493 + sink(. 494 + Start( 495 + (. signal) => 496 + switch (signal) { 497 + | Pull => 498 + state.sourceTalkback(. Pull); 499 + state.notifierTalkback(. Pull); 500 + | Close => 501 + state.ended = true; 502 + state.sourceTalkback(. Close); 503 + state.notifierTalkback(. Close); 504 + }, 505 + ), 506 + ); 507 + }) 508 + ); 509 + 510 + [@genType] 511 + let scan = (f: (. 'acc, 'a) => 'acc, seed: 'acc): operatorT('a, 'acc) => 512 + curry(source => 513 + curry(sink => { 514 + let acc = ref(seed); 515 + 516 + source((. signal) => 517 + sink(. 518 + switch (signal) { 519 + | Push(x) => 520 + acc := f(. acc^, x); 521 + Push(acc^); 522 + | Start(x) => Start(x) 523 + | End => End 524 + }, 525 + ) 526 + ); 527 + }) 528 + ); 529 + 530 + type shareStateT('a) = { 531 + mutable sinks: Rebel.Array.t(sinkT('a)), 532 + mutable talkback: (. talkbackT) => unit, 533 + mutable gotSignal: bool, 534 + }; 535 + 536 + [@genType] 537 + let share = (source: sourceT('a)): sourceT('a) => { 538 + let state = { 539 + sinks: Rebel.Array.makeEmpty(), 540 + talkback: talkbackPlaceholder, 541 + gotSignal: false, 542 + }; 543 + 544 + sink => { 545 + state.sinks = Rebel.Array.append(state.sinks, sink); 546 + 547 + if (Rebel.Array.size(state.sinks) === 1) { 548 + source((. signal) => 549 + switch (signal) { 550 + | Push(_) => 551 + state.gotSignal = false; 552 + Rebel.Array.forEach(state.sinks, sink => sink(. signal)); 553 + | Start(x) => state.talkback = x 554 + | End => 555 + Rebel.Array.forEach(state.sinks, sink => sink(. End)); 556 + state.sinks = Rebel.Array.makeEmpty(); 557 + } 558 + ); 559 + }; 560 + 561 + sink(. 562 + Start( 563 + (. signal) => 564 + switch (signal) { 565 + | Close => 566 + state.sinks = Rebel.Array.filter(state.sinks, x => x !== sink); 567 + if (Rebel.Array.size(state.sinks) === 0) { 568 + state.talkback(. Close); 569 + }; 570 + | Pull when !state.gotSignal => 571 + state.gotSignal = true; 572 + state.talkback(. signal); 573 + | Pull => () 574 + }, 575 + ), 576 + ); 577 + }; 578 + }; 579 + 580 + [@genType] 581 + let skip = (wait: int): operatorT('a, 'a) => 582 + curry(source => 583 + curry(sink => { 584 + let rest = ref(wait); 585 + 586 + captureTalkback(source, (. signal, talkback) => 587 + switch (signal) { 588 + | Push(_) when rest^ > 0 => 589 + rest := rest^ - 1; 590 + talkback(. Pull); 591 + | _ => sink(. signal) 592 + } 593 + ); 594 + }) 595 + ); 596 + 597 + type skipUntilStateT = { 598 + mutable skip: bool, 599 + mutable ended: bool, 600 + mutable gotSignal: bool, 601 + mutable sourceTalkback: (. talkbackT) => unit, 602 + mutable notifierTalkback: (. talkbackT) => unit, 603 + }; 604 + 605 + [@genType] 606 + let skipUntil = (notifier: sourceT('a)): operatorT('b, 'b) => 607 + curry(source => 608 + curry(sink => { 609 + let state: skipUntilStateT = { 610 + skip: true, 611 + ended: false, 612 + gotSignal: false, 613 + sourceTalkback: talkbackPlaceholder, 614 + notifierTalkback: talkbackPlaceholder, 615 + }; 616 + 617 + source((. signal) => 618 + switch (signal) { 619 + | Start(tb) => 620 + state.sourceTalkback = tb; 621 + 622 + notifier((. signal) => 623 + switch (signal) { 624 + | Start(innerTb) => 625 + state.notifierTalkback = innerTb; 626 + innerTb(. Pull); 627 + tb(. Pull); 628 + | Push(_) => 629 + state.skip = false; 630 + state.notifierTalkback(. Close); 631 + | End => () 632 + } 633 + ); 634 + | Push(_) when state.skip && !state.ended => 635 + state.sourceTalkback(. Pull) 636 + | Push(_) when !state.ended => 637 + state.gotSignal = false; 638 + sink(. signal); 639 + | Push(_) => () 640 + | End => 641 + if (state.skip) { 642 + state.notifierTalkback(. Close); 643 + }; 644 + state.ended = true; 645 + sink(. End); 646 + } 647 + ); 648 + 649 + sink(. 650 + Start( 651 + (. signal) => 652 + switch (signal) { 653 + | Close => 654 + if (state.skip) { 655 + state.notifierTalkback(. Close); 656 + }; 657 + state.ended = true; 658 + state.sourceTalkback(. Close); 659 + | Pull when !state.gotSignal && !state.ended => 660 + state.gotSignal = true; 661 + state.sourceTalkback(. Pull); 662 + | Pull => () 663 + }, 664 + ), 665 + ); 666 + }) 667 + ); 668 + 669 + [@genType] 670 + let skipWhile = (f: (. 'a) => bool): operatorT('a, 'a) => 671 + curry(source => 672 + curry(sink => { 673 + let skip = ref(true); 674 + 675 + captureTalkback(source, (. signal, talkback) => 676 + switch (signal) { 677 + | Push(x) when skip^ => 678 + if (f(. x)) { 679 + talkback(. Pull); 680 + } else { 681 + skip := false; 682 + sink(. signal); 683 + } 684 + | _ => sink(. signal) 685 + } 686 + ); 687 + }) 688 + ); 689 + 690 + type switchMapStateT('a) = { 691 + mutable outerTalkback: (. talkbackT) => unit, 692 + mutable innerTalkback: (. talkbackT) => unit, 693 + mutable innerActive: bool, 694 + mutable closed: bool, 695 + mutable ended: bool, 696 + }; 697 + 698 + [@genType] 699 + let switchMap = (f: (. 'a) => sourceT('b)): operatorT('a, 'b) => 700 + curry(source => 701 + curry(sink => { 702 + let state: switchMapStateT('a) = { 703 + outerTalkback: talkbackPlaceholder, 704 + innerTalkback: talkbackPlaceholder, 705 + innerActive: false, 706 + closed: false, 707 + ended: false, 708 + }; 709 + 710 + let applyInnerSource = innerSource => 711 + innerSource((. signal) => 712 + switch (signal) { 713 + | End => 714 + state.innerActive = false; 715 + state.innerTalkback = talkbackPlaceholder; 716 + if (state.ended) { 717 + sink(. End); 718 + }; 719 + | Start(tb) => 720 + state.innerActive = true; 721 + state.innerTalkback = tb; 722 + tb(. Pull); 723 + | Push(x) when !state.closed => 724 + sink(. Push(x)); 725 + state.innerTalkback(. Pull); 726 + | Push(_) => () 727 + } 728 + ); 729 + 730 + source((. signal) => 731 + switch (signal) { 732 + | End when !state.ended => 733 + state.ended = true; 734 + if (!state.innerActive) { 735 + sink(. End); 736 + }; 737 + | End => () 738 + | Start(tb) => 739 + state.outerTalkback = tb; 740 + tb(. Pull); 741 + | Push(x) when !state.ended => 742 + if (state.innerActive) { 743 + state.innerTalkback(. Close); 744 + state.innerTalkback = talkbackPlaceholder; 745 + }; 746 + applyInnerSource(f(. x)); 747 + state.outerTalkback(. Pull); 748 + | Push(_) => () 749 + } 750 + ); 751 + 752 + sink(. 753 + Start( 754 + (. signal) => 755 + switch (signal) { 756 + | Pull => state.innerTalkback(. Pull) 757 + | Close => 758 + state.innerTalkback(. Close); 759 + if (!state.ended) { 760 + state.ended = true; 761 + state.closed = true; 762 + state.outerTalkback(. Close); 763 + state.innerTalkback = talkbackPlaceholder; 764 + }; 765 + }, 766 + ), 767 + ); 768 + }) 769 + ); 770 + 771 + [@genType] 772 + let switchAll = (source: sourceT(sourceT('a))): sourceT('a) => 773 + switchMap((. x) => x, source); 774 + 775 + type takeStateT = { 776 + mutable taken: int, 777 + mutable talkback: (. talkbackT) => unit, 778 + }; 779 + 780 + [@genType] 781 + let take = (max: int): operatorT('a, 'a) => 782 + curry(source => 783 + curry(sink => { 784 + let state: takeStateT = {taken: 0, talkback: talkbackPlaceholder}; 785 + 786 + source((. signal) => 787 + switch (signal) { 788 + | Start(tb) => state.talkback = tb 789 + | Push(_) when state.taken < max => 790 + state.taken = state.taken + 1; 791 + sink(. signal); 792 + 793 + if (state.taken === max) { 794 + sink(. End); 795 + state.talkback(. Close); 796 + }; 797 + | Push(_) => () 798 + | End when state.taken < max => 799 + state.taken = max; 800 + sink(. End); 801 + | End => () 802 + } 803 + ); 804 + 805 + sink(. 806 + Start( 807 + (. signal) => 808 + if (state.taken < max) { 809 + switch (signal) { 810 + | Pull => state.talkback(. Pull) 811 + | Close => 812 + state.taken = max; 813 + state.talkback(. Close); 814 + }; 815 + }, 816 + ), 817 + ); 818 + }) 819 + ); 820 + 821 + [@genType] 822 + let takeLast = (max: int): operatorT('a, 'a) => 823 + curry(source => 824 + curry(sink => { 825 + open Rebel; 826 + let queue = MutableQueue.make(); 827 + 828 + captureTalkback(source, (. signal, talkback) => 829 + switch (signal) { 830 + | Start(_) => talkback(. Pull) 831 + | Push(x) => 832 + let size = MutableQueue.size(queue); 833 + if (size >= max && max > 0) { 834 + ignore(MutableQueue.pop(queue)); 835 + }; 836 + 837 + MutableQueue.add(queue, x); 838 + talkback(. Pull); 839 + | End => makeTrampoline(sink, (.) => MutableQueue.pop(queue)) 840 + } 841 + ); 842 + }) 843 + ); 844 + 845 + type takeUntilStateT = { 846 + mutable ended: bool, 847 + mutable sourceTalkback: (. talkbackT) => unit, 848 + mutable notifierTalkback: (. talkbackT) => unit, 849 + }; 850 + 851 + [@genType] 852 + let takeUntil = (notifier: sourceT('a)): operatorT('b, 'b) => 853 + curry(source => 854 + curry(sink => { 855 + let state: takeUntilStateT = { 856 + ended: false, 857 + sourceTalkback: talkbackPlaceholder, 858 + notifierTalkback: talkbackPlaceholder, 859 + }; 860 + 861 + source((. signal) => 862 + switch (signal) { 863 + | Start(tb) => 864 + state.sourceTalkback = tb; 865 + 866 + notifier((. signal) => 867 + switch (signal) { 868 + | Start(innerTb) => 869 + state.notifierTalkback = innerTb; 870 + innerTb(. Pull); 871 + | Push(_) => 872 + state.ended = true; 873 + state.sourceTalkback(. Close); 874 + sink(. End); 875 + | End => () 876 + } 877 + ); 878 + | End when !state.ended => 879 + state.ended = true; 880 + state.notifierTalkback(. Close); 881 + sink(. End); 882 + | End => () 883 + | Push(_) when !state.ended => sink(. signal) 884 + | Push(_) => () 885 + } 886 + ); 887 + 888 + sink(. 889 + Start( 890 + (. signal) => 891 + if (!state.ended) { 892 + switch (signal) { 893 + | Close => 894 + state.ended = true; 895 + state.sourceTalkback(. Close); 896 + state.notifierTalkback(. Close); 897 + | Pull => state.sourceTalkback(. Pull) 898 + }; 899 + }, 900 + ), 901 + ); 902 + }) 903 + ); 904 + 905 + [@genType] 906 + let takeWhile = (f: (. 'a) => bool): operatorT('a, 'a) => 907 + curry(source => 908 + curry(sink => { 909 + let ended = ref(false); 910 + let talkback = ref(talkbackPlaceholder); 911 + 912 + source((. signal) => 913 + switch (signal) { 914 + | Start(tb) => 915 + talkback := tb; 916 + sink(. signal); 917 + | End when ! ended^ => 918 + ended := true; 919 + sink(. End); 920 + | End => () 921 + | Push(x) when ! ended^ => 922 + if (!f(. x)) { 923 + ended := true; 924 + sink(. End); 925 + talkback^(. Close); 926 + } else { 927 + sink(. signal); 928 + } 929 + | Push(_) => () 930 + } 931 + ); 932 + 933 + sink(. 934 + Start( 935 + (. signal) => 936 + if (! ended^) { 937 + switch (signal) { 938 + | Pull => talkback^(. Pull) 939 + | Close => 940 + ended := true; 941 + talkback^(. Close); 942 + }; 943 + }, 944 + ), 945 + ); 946 + }) 947 + );
+970
src/wonka_operators.test.ts
··· 1 + import * as deriving from './helpers/wonka_deriving'; 2 + import * as sources from './wonka_sources.gen'; 3 + import * as sinks from './wonka_sinks.gen'; 4 + import * as operators from './wonka_operators.gen'; 5 + import * as web from './web/wonkaJs.gen'; 6 + import * as types from './wonka_types.gen'; 7 + 8 + /* This tests a noop operator for passive Pull talkback signals. 9 + A Pull will be sent from the sink upwards and should pass through 10 + the operator until the source receives it, which then pushes a 11 + value down. */ 12 + const passesPassivePull = ( 13 + operator: types.operatorT<any, any>, 14 + output: any = 0 15 + ) => 16 + it('responds to Pull talkback signals (spec)', () => { 17 + let talkback = null; 18 + const values = []; 19 + 20 + const source: types.sourceT<any> = sink => { 21 + sink(deriving.start(tb => { 22 + if (tb === deriving.pull) 23 + sink(deriving.push(0)); 24 + })); 25 + }; 26 + 27 + const sink: types.sinkT<any> = signal => { 28 + expect(deriving.isEnd(signal)).toBeFalsy(); 29 + if (deriving.isPush(signal)) { 30 + values.push(deriving.unboxPush(signal)); 31 + } else if (deriving.isStart(signal)) { 32 + talkback = deriving.unboxStart(signal); 33 + } 34 + }; 35 + 36 + operator(source)(sink); 37 + // The Start signal should always come in immediately 38 + expect(talkback).not.toBe(null); 39 + // No Push signals should be issued initially 40 + expect(values).toEqual([]); 41 + 42 + // When pulling a value we expect an immediate response 43 + talkback(deriving.pull); 44 + jest.runAllTimers(); 45 + expect(values).toEqual([output]); 46 + }); 47 + 48 + /* This tests a noop operator for regular, active Push signals. 49 + A Push will be sent downwards from the source, through the 50 + operator to the sink. Pull events should be let through from 51 + the sink after every Push event. */ 52 + const passesActivePush = ( 53 + operator: types.operatorT<any, any>, 54 + result: any = 0 55 + ) => 56 + it('responds to eager Push signals (spec)', () => { 57 + const values = []; 58 + let talkback = null; 59 + let push = null; 60 + let pulls = 0; 61 + 62 + const source: types.sourceT<any> = sink => { 63 + push = (value: any) => sink(deriving.push(value)); 64 + sink(deriving.start(tb => { 65 + if (tb === deriving.pull) 66 + pulls++; 67 + })); 68 + }; 69 + 70 + const sink: types.sinkT<any> = signal => { 71 + expect(deriving.isEnd(signal)).toBeFalsy(); 72 + if (deriving.isStart(signal)) { 73 + talkback = deriving.unboxStart(signal); 74 + } else if (deriving.isPush(signal)) { 75 + values.push(deriving.unboxPush(signal)); 76 + talkback(deriving.pull); 77 + } 78 + }; 79 + 80 + operator(source)(sink); 81 + // No Pull signals should be issued initially 82 + expect(pulls).toBe(0); 83 + 84 + // When pushing a value we expect an immediate response 85 + push(0); 86 + jest.runAllTimers(); 87 + expect(values).toEqual([result]); 88 + // Subsequently the Pull signal should have travelled upwards 89 + expect(pulls).toBe(1); 90 + }); 91 + 92 + /* This tests a noop operator for Close talkback signals from the sink. 93 + A Close signal will be sent, which should be forwarded to the source, 94 + which then ends the communication without sending an End signal. */ 95 + const passesSinkClose = (operator: types.operatorT<any, any>) => 96 + it('responds to Close signals from sink (spec)', () => { 97 + let talkback = null; 98 + let closing = 0; 99 + let pulls = 0; 100 + 101 + const source: types.sourceT<any> = sink => { 102 + sink(deriving.start(tb => { 103 + if (tb === deriving.pull) { 104 + pulls++; 105 + if (!closing) sink(deriving.push(0)); 106 + } if (tb === deriving.close) { 107 + closing++; 108 + } 109 + })); 110 + }; 111 + 112 + const sink: types.sinkT<any> = signal => { 113 + expect(deriving.isEnd(signal)).toBeFalsy(); 114 + if (deriving.isStart(signal)) { 115 + talkback = deriving.unboxStart(signal); 116 + } else if (deriving.isPush(signal)) { 117 + talkback(deriving.close); 118 + } 119 + }; 120 + 121 + operator(source)(sink); 122 + 123 + // When pushing a value we expect an immediate close signal 124 + talkback(deriving.pull); 125 + jest.runAllTimers(); 126 + expect(closing).toBe(1); 127 + expect(pulls).toBe(1); 128 + }); 129 + 130 + /* This tests a noop operator for End signals from the source. 131 + A Push and End signal will be sent after the first Pull talkback 132 + signal from the sink, which shouldn't lead to any extra Close or Pull 133 + talkback signals. */ 134 + const passesSourceEnd = ( 135 + operator: types.operatorT<any, any>, 136 + result: any = 0 137 + ) => 138 + it('passes on End signals from source (spec)', () => { 139 + const signals = []; 140 + let talkback = null; 141 + let pulls = 0; 142 + let ending = 0; 143 + 144 + const source: types.sourceT<any> = sink => { 145 + sink(deriving.start(tb => { 146 + expect(tb).not.toBe(deriving.close); 147 + if (tb === deriving.pull) pulls++; 148 + if (pulls === 1) { 149 + sink(deriving.push(0)); 150 + sink(deriving.end()); 151 + } 152 + })); 153 + }; 154 + 155 + const sink: types.sinkT<any> = signal => { 156 + if (deriving.isStart(signal)) { 157 + talkback = deriving.unboxStart(signal); 158 + } else { 159 + signals.push(signal); 160 + if (deriving.isEnd(signal)) ending++; 161 + } 162 + }; 163 + 164 + operator(source)(sink); 165 + 166 + // When pushing a value we expect an immediate Push then End signal 167 + talkback(deriving.pull); 168 + jest.runAllTimers(); 169 + expect(pulls).toBe(1); 170 + expect(ending).toBe(1); 171 + expect(signals).toEqual([deriving.push(result), deriving.end()]); 172 + }); 173 + 174 + /* This tests a noop operator for Start signals from the source. 175 + When the operator's sink is started by the source it'll receive 176 + a Start event. As a response it should never send more than one 177 + Start signals to the sink. */ 178 + const passesSingleStart = (operator: types.operatorT<any, any>) => 179 + it('sends a single Start event to the incoming sink (spec)', () => { 180 + let start = 0; 181 + 182 + const source: types.sourceT<any> = sink => { 183 + sink(deriving.start(() => {})); 184 + }; 185 + 186 + const sink: types.sinkT<any> = signal => { 187 + if (deriving.isStart(signal)) start++; 188 + }; 189 + 190 + // When starting the operator we expect a single start event on the sink 191 + operator(source)(sink); 192 + expect(start).toBe(1); 193 + }); 194 + 195 + /* This tests a noop operator for silence after End signals from the source. 196 + When the operator receives the End signal it shouldn't forward any other 197 + signals to the sink anymore. 198 + This isn't a strict requirement, but some operators should ensure that 199 + all sources are well behaved. This is particularly true for operators 200 + that either Close sources themselves or may operate on multiple sources. */ 201 + const passesStrictEnd = (operator: types.operatorT<any, any>) => 202 + it('stops all signals after End has been received (spec: strict end)', () => { 203 + let pulls = 0; 204 + const signals = []; 205 + 206 + const source: types.sourceT<any> = sink => { 207 + sink(deriving.start(tb => { 208 + if (tb === deriving.pull) { 209 + pulls++; 210 + sink(deriving.end()); 211 + sink(deriving.push(0)); 212 + } 213 + })); 214 + }; 215 + 216 + const sink: types.sinkT<any> = signal => { 217 + if (deriving.isStart(signal)) { 218 + deriving.unboxStart(signal)(deriving.pull); 219 + } else { 220 + signals.push(signal); 221 + } 222 + }; 223 + 224 + operator(source)(sink); 225 + 226 + // The Push signal should've been dropped 227 + jest.runAllTimers(); 228 + expect(signals).toEqual([deriving.end()]); 229 + expect(pulls).toBe(1); 230 + }); 231 + 232 + /* This tests an immediately closing operator for End signals to 233 + the sink and Close signals to the source. 234 + When an operator closes immediately we expect to see a Close 235 + signal at the source and an End signal to the sink, since the 236 + closing operator is expected to end the entire chain. */ 237 + const passesCloseAndEnd = (closingOperator: types.operatorT<any, any>) => 238 + it('closes the source and ends the sink correctly (spec: ending operator)', () => { 239 + let closing = 0; 240 + let ending = 0; 241 + 242 + const source: types.sourceT<any> = sink => { 243 + sink(deriving.start(tb => { 244 + // For some operator tests we do need to send a single value 245 + if (tb === deriving.pull) 246 + sink(deriving.push(null)); 247 + if (tb === deriving.close) 248 + closing++; 249 + })); 250 + }; 251 + 252 + const sink: types.sinkT<any> = signal => { 253 + if (deriving.isStart(signal)) { 254 + deriving.unboxStart(signal)(deriving.pull); 255 + } if (deriving.isEnd(signal)) { 256 + ending++; 257 + } 258 + }; 259 + 260 + // We expect the operator to immediately end and close 261 + closingOperator(source)(sink); 262 + expect(closing).toBe(1); 263 + expect(ending).toBe(1); 264 + }); 265 + 266 + const passesAsyncSequence = ( 267 + operator: types.operatorT<any, any>, 268 + result: any = 0 269 + ) => 270 + it('passes an async push with an async end (spec)', () => { 271 + let hasPushed = false; 272 + const signals = []; 273 + 274 + const source: types.sourceT<any> = sink => { 275 + sink(deriving.start(tb => { 276 + if (tb === deriving.pull && !hasPushed) { 277 + hasPushed = true; 278 + setTimeout(() => sink(deriving.push(0)), 10); 279 + setTimeout(() => sink(deriving.end()), 20); 280 + } 281 + })); 282 + }; 283 + 284 + const sink: types.sinkT<any> = signal => { 285 + if (deriving.isStart(signal)) { 286 + setTimeout(() => { 287 + deriving.unboxStart(signal)(deriving.pull); 288 + }, 5); 289 + } else { 290 + signals.push(signal); 291 + } 292 + }; 293 + 294 + // We initially expect to see the push signal 295 + // Afterwards after all timers all other signals come in 296 + operator(source)(sink); 297 + expect(signals.length).toBe(0); 298 + jest.advanceTimersByTime(5); 299 + expect(hasPushed).toBeTruthy(); 300 + jest.runAllTimers(); 301 + 302 + expect(signals).toEqual([ 303 + deriving.push(result), 304 + deriving.end() 305 + ]); 306 + }); 307 + 308 + beforeEach(() => { 309 + jest.useFakeTimers(); 310 + }); 311 + 312 + describe('combine', () => { 313 + const noop = (source: types.sourceT<any>) => operators.combine(sources.fromValue(0), source); 314 + 315 + passesPassivePull(noop, [0, 0]); 316 + // TODO: passesActivePush(noop, [0, 0]); 317 + passesSinkClose(noop); 318 + passesSourceEnd(noop, [0, 0]); 319 + passesSingleStart(noop); 320 + passesStrictEnd(noop); 321 + 322 + it('emits the zipped values of two sources', () => { 323 + const { source: sourceA, next: nextA } = sources.makeSubject(); 324 + const { source: sourceB, next: nextB } = sources.makeSubject(); 325 + const fn = jest.fn(); 326 + 327 + sinks.forEach(fn)(operators.combine(sourceA, sourceB)); 328 + 329 + nextA(1); 330 + expect(fn).not.toHaveBeenCalled(); 331 + nextB(2); 332 + expect(fn).toHaveBeenCalledWith([1, 2]); 333 + }); 334 + }); 335 + 336 + describe('buffer', () => { 337 + const noop = operators.buffer( 338 + operators.merge([ 339 + sources.fromValue(null), 340 + sources.never 341 + ]) 342 + ); 343 + 344 + // TODO: passesPassivePull(noop, [0]); 345 + // TODO: passesActivePush(noop); 346 + // TODO: passesSinkClose(noop); 347 + // TODO: passesSourceEnd(noop); 348 + passesSingleStart(noop); 349 + // TODO: passesStrictEnd(noop); 350 + 351 + it('emits batches of input values when a notifier emits', () => { 352 + const { source: notifier$, next: notify } = sources.makeSubject(); 353 + const { source: input$, next } = sources.makeSubject(); 354 + const fn = jest.fn(); 355 + 356 + sinks.forEach(fn)(operators.buffer(notifier$)(input$)); 357 + 358 + next(1); 359 + next(2); 360 + expect(fn).not.toHaveBeenCalled(); 361 + 362 + notify(null); 363 + expect(fn).toHaveBeenCalledWith([1, 2]); 364 + }); 365 + }); 366 + 367 + describe('concatMap', () => { 368 + const noop = operators.concatMap(x => sources.fromValue(x)); 369 + // TODO: passesPassivePull(noop); 370 + // TODO: passesActivePush(noop); 371 + // TODO: passesSinkClose(noop); 372 + // TODO: passesSourceEnd(noop); 373 + passesSingleStart(noop); 374 + passesStrictEnd(noop); 375 + passesAsyncSequence(noop); 376 + 377 + // This synchronous test for concatMap will behave the same as mergeMap & switchMap 378 + it('emits values from each flattened synchronous source', () => { 379 + const { source, next, complete } = sources.makeSubject<number>(); 380 + const fn = jest.fn(); 381 + 382 + operators.concatMap((x: number) => sources.fromArray([x, x + 1]))(source)(fn); 383 + 384 + next(1); 385 + next(3); 386 + complete(); 387 + 388 + expect(fn).toHaveBeenCalledTimes(6); 389 + expect(fn.mock.calls).toEqual([ 390 + [deriving.start(expect.any(Function))], 391 + [deriving.push(1)], 392 + [deriving.push(2)], 393 + [deriving.push(3)], 394 + [deriving.push(4)], 395 + [deriving.end()], 396 + ]); 397 + }); 398 + 399 + // This asynchronous test for concatMap will behave differently than mergeMap & switchMap 400 + it('emits values from each flattened asynchronous source, one at a time', () => { 401 + const source = web.delay<number>(4)(sources.fromArray([1, 10])); 402 + const fn = jest.fn(); 403 + 404 + sinks.forEach(fn)( 405 + operators.concatMap((x: number) => { 406 + return web.delay(5)(sources.fromArray([x, x * 2])); 407 + })(source) 408 + ); 409 + 410 + jest.advanceTimersByTime(14); 411 + expect(fn.mock.calls).toEqual([ 412 + [1], 413 + [2], 414 + ]); 415 + 416 + jest.runAllTimers(); 417 + expect(fn.mock.calls).toEqual([ 418 + [1], 419 + [2], 420 + [10], 421 + [20], 422 + ]); 423 + }); 424 + }); 425 + 426 + describe('debounce', () => { 427 + const noop = web.debounce(() => 0); 428 + passesPassivePull(noop); 429 + passesActivePush(noop); 430 + passesSinkClose(noop); 431 + passesSourceEnd(noop); 432 + passesSingleStart(noop); 433 + // TODO: passesStrictEnd(noop); 434 + passesAsyncSequence(noop); 435 + 436 + it('waits for a specified amount of silence before emitting the last value', () => { 437 + const { source, next } = sources.makeSubject<number>(); 438 + const fn = jest.fn(); 439 + 440 + sinks.forEach(fn)(web.debounce(() => 100)(source)); 441 + 442 + next(1); 443 + jest.advanceTimersByTime(50); 444 + expect(fn).not.toHaveBeenCalled(); 445 + 446 + next(2); 447 + jest.advanceTimersByTime(99); 448 + expect(fn).not.toHaveBeenCalled(); 449 + 450 + jest.advanceTimersByTime(1); 451 + expect(fn).toHaveBeenCalledWith(2); 452 + }); 453 + }); 454 + 455 + describe('delay', () => { 456 + const noop = web.delay(0); 457 + passesPassivePull(noop); 458 + passesActivePush(noop); 459 + // TODO: passesSinkClose(noop); 460 + passesSourceEnd(noop); 461 + passesSingleStart(noop); 462 + passesAsyncSequence(noop); 463 + 464 + it('delays outputs by a specified delay timeout value', () => { 465 + const { source, next } = sources.makeSubject(); 466 + const fn = jest.fn(); 467 + 468 + sinks.forEach(fn)(web.delay(100)(source)); 469 + 470 + next(1); 471 + expect(fn).not.toHaveBeenCalled(); 472 + 473 + jest.advanceTimersByTime(100); 474 + expect(fn).toHaveBeenCalledWith(1); 475 + }); 476 + }); 477 + 478 + describe('filter', () => { 479 + const noop = operators.filter(() => true); 480 + passesPassivePull(noop); 481 + passesActivePush(noop); 482 + passesSinkClose(noop); 483 + passesSourceEnd(noop); 484 + passesSingleStart(noop); 485 + passesAsyncSequence(noop); 486 + 487 + it('prevents emissions for which a predicate fails', () => { 488 + const { source, next } = sources.makeSubject(); 489 + const fn = jest.fn(); 490 + 491 + sinks.forEach(fn)(operators.filter(x => !!x)(source)); 492 + 493 + next(false); 494 + expect(fn).not.toHaveBeenCalled(); 495 + 496 + next(true); 497 + expect(fn).toHaveBeenCalledWith(true); 498 + }); 499 + }); 500 + 501 + describe('map', () => { 502 + const noop = operators.map(x => x); 503 + passesPassivePull(noop); 504 + passesActivePush(noop); 505 + passesSinkClose(noop); 506 + passesSourceEnd(noop); 507 + passesSingleStart(noop); 508 + // TODO: passesStrictEnd(noop); 509 + passesAsyncSequence(noop); 510 + 511 + it('maps over values given a transform function', () => { 512 + const { source, next } = sources.makeSubject<number>(); 513 + const fn = jest.fn(); 514 + 515 + sinks.forEach(fn)(operators.map((x: number) => x + 1)(source)); 516 + 517 + next(1); 518 + expect(fn).toHaveBeenCalledWith(2); 519 + }); 520 + }); 521 + 522 + describe('mergeMap', () => { 523 + const noop = operators.mergeMap(x => sources.fromValue(x)); 524 + // TODO: passesPassivePull(noop); 525 + // TODO: passesActivePush(noop); 526 + // TODO: passesSinkClose(noop); 527 + // TODO: passesSourceEnd(noop); 528 + passesSingleStart(noop); 529 + passesStrictEnd(noop); 530 + passesAsyncSequence(noop); 531 + 532 + // This synchronous test for mergeMap will behave the same as concatMap & switchMap 533 + it('emits values from each flattened synchronous source', () => { 534 + const { source, next, complete } = sources.makeSubject<number>(); 535 + const fn = jest.fn(); 536 + 537 + operators.mergeMap((x: number) => sources.fromArray([x, x + 1]))(source)(fn); 538 + 539 + next(1); 540 + next(3); 541 + complete(); 542 + 543 + expect(fn).toHaveBeenCalledTimes(6); 544 + expect(fn.mock.calls).toEqual([ 545 + [deriving.start(expect.any(Function))], 546 + [deriving.push(1)], 547 + [deriving.push(2)], 548 + [deriving.push(3)], 549 + [deriving.push(4)], 550 + [deriving.end()], 551 + ]); 552 + }); 553 + 554 + // This asynchronous test for mergeMap will behave differently than concatMap & switchMap 555 + it('emits values from each flattened asynchronous source simultaneously', () => { 556 + const source = web.delay<number>(4)(sources.fromArray([1, 10])); 557 + const fn = jest.fn(); 558 + 559 + sinks.forEach(fn)( 560 + operators.mergeMap((x: number) => { 561 + return web.delay(5)(sources.fromArray([x, x * 2])); 562 + })(source) 563 + ); 564 + 565 + jest.advanceTimersByTime(14); 566 + expect(fn.mock.calls).toEqual([ 567 + [1], 568 + [10], 569 + [2], 570 + [20], 571 + ]); 572 + }); 573 + }); 574 + 575 + describe('onEnd', () => { 576 + const noop = operators.onEnd(() => {}); 577 + passesPassivePull(noop); 578 + passesActivePush(noop); 579 + passesSinkClose(noop); 580 + passesSourceEnd(noop); 581 + passesSingleStart(noop); 582 + passesAsyncSequence(noop); 583 + 584 + it('calls a callback when the source ends', () => { 585 + const { source, next, complete } = sources.makeSubject<number>(); 586 + const fn = jest.fn(); 587 + 588 + sinks.forEach(() => {})(operators.onEnd(fn)(source)); 589 + 590 + next(null); 591 + expect(fn).not.toHaveBeenCalled(); 592 + 593 + complete(); 594 + expect(fn).toHaveBeenCalled(); 595 + }); 596 + }); 597 + 598 + describe('onPush', () => { 599 + const noop = operators.onPush(() => {}); 600 + passesPassivePull(noop); 601 + passesActivePush(noop); 602 + passesSinkClose(noop); 603 + passesSourceEnd(noop); 604 + passesSingleStart(noop); 605 + passesAsyncSequence(noop); 606 + 607 + it('calls a callback when the source emits', () => { 608 + const { source, next } = sources.makeSubject<number>(); 609 + const fn = jest.fn(); 610 + 611 + sinks.forEach(() => {})(operators.onPush(fn)(source)); 612 + 613 + next(1); 614 + expect(fn).toHaveBeenCalledWith(1); 615 + next(2); 616 + expect(fn).toHaveBeenCalledWith(2); 617 + }); 618 + 619 + it('is the same as `tap`', () => { 620 + expect(operators.onPush).toBe(operators.tap); 621 + }); 622 + }); 623 + 624 + describe('onStart', () => { 625 + const noop = operators.onStart(() => {}); 626 + passesPassivePull(noop); 627 + passesActivePush(noop); 628 + passesSinkClose(noop); 629 + passesSourceEnd(noop); 630 + passesSingleStart(noop); 631 + passesAsyncSequence(noop); 632 + 633 + it('is called when the source starts', () => { 634 + let sink: types.sinkT<any>; 635 + 636 + const fn = jest.fn(); 637 + const source: types.sourceT<any> = _sink => { sink = _sink; }; 638 + 639 + sinks.forEach(() => {})(operators.onStart(fn)(source)); 640 + 641 + expect(fn).not.toHaveBeenCalled(); 642 + 643 + sink(deriving.start(() => {})); 644 + expect(fn).toHaveBeenCalled(); 645 + }); 646 + }); 647 + 648 + describe('sample', () => { 649 + const noop = operators.sample(sources.fromValue(null)); 650 + // TODO: passesPassivePull(noop); 651 + // TODO: passesActivePush(noop); 652 + // TODO: passesSinkClose(noop); 653 + // TODO: passesSourceEnd(noop); 654 + passesSingleStart(noop); 655 + // TODO: passesStrictEnd(noop); 656 + 657 + it('emits the latest value when a notifier source emits', () => { 658 + const { source: notifier$, next: notify } = sources.makeSubject(); 659 + const { source: input$, next } = sources.makeSubject(); 660 + const fn = jest.fn(); 661 + 662 + sinks.forEach(fn)(operators.sample(notifier$)(input$)); 663 + 664 + next(1); 665 + next(2); 666 + expect(fn).not.toHaveBeenCalled(); 667 + 668 + notify(null); 669 + expect(fn).toHaveBeenCalledWith(2); 670 + }); 671 + }); 672 + 673 + describe('scan', () => { 674 + const noop = operators.scan((_acc, x) => x, null); 675 + passesPassivePull(noop); 676 + passesActivePush(noop); 677 + passesSinkClose(noop); 678 + passesSourceEnd(noop); 679 + passesSingleStart(noop); 680 + passesAsyncSequence(noop); 681 + 682 + it('folds values continuously with a reducer and initial value', () => { 683 + const { source: input$, next } = sources.makeSubject<number>(); 684 + const fn = jest.fn(); 685 + 686 + const reducer = (acc: number, x: number) => acc + x; 687 + sinks.forEach(fn)(operators.scan(reducer, 0)(input$)); 688 + 689 + next(1); 690 + expect(fn).toHaveBeenCalledWith(1); 691 + next(2); 692 + expect(fn).toHaveBeenCalledWith(3); 693 + }); 694 + }); 695 + 696 + describe('share', () => { 697 + const noop = operators.share; 698 + passesPassivePull(noop); 699 + passesActivePush(noop); 700 + passesSinkClose(noop); 701 + passesSourceEnd(noop); 702 + passesSingleStart(noop); 703 + passesStrictEnd(noop); 704 + passesAsyncSequence(noop); 705 + 706 + it('shares output values between sinks', () => { 707 + let push = () => {}; 708 + 709 + const source: types.sourceT<any> = operators.share(sink => { 710 + sink(deriving.start(() => {})); 711 + push = () => { 712 + sink(deriving.push([0])); 713 + sink(deriving.end()); 714 + }; 715 + }); 716 + 717 + const fnA = jest.fn(); 718 + const fnB = jest.fn(); 719 + 720 + sinks.forEach(fnA)(source); 721 + sinks.forEach(fnB)(source); 722 + push(); 723 + 724 + expect(fnA).toHaveBeenCalledWith([0]); 725 + expect(fnB).toHaveBeenCalledWith([0]); 726 + expect(fnA.mock.calls[0][0]).toBe(fnB.mock.calls[0][0]); 727 + }); 728 + }); 729 + 730 + describe('skip', () => { 731 + const noop = operators.skip(0); 732 + passesPassivePull(noop); 733 + passesActivePush(noop); 734 + passesSinkClose(noop); 735 + passesSourceEnd(noop); 736 + passesSingleStart(noop); 737 + passesAsyncSequence(noop); 738 + 739 + it('skips a number of values before emitting normally', () => { 740 + const { source, next } = sources.makeSubject<number>(); 741 + const fn = jest.fn(); 742 + 743 + sinks.forEach(fn)(operators.skip(1)(source)); 744 + 745 + next(1); 746 + expect(fn).not.toHaveBeenCalled(); 747 + next(2); 748 + expect(fn).toHaveBeenCalledWith(2); 749 + }); 750 + }); 751 + 752 + describe('skipUntil', () => { 753 + const noop = operators.skipUntil(sources.fromValue(null)); 754 + // TODO: passesPassivePull(noop); 755 + // TODO: passesActivePush(noop); 756 + // TODO: passesSinkClose(noop); 757 + passesSourceEnd(noop); 758 + passesSingleStart(noop); 759 + passesAsyncSequence(noop); 760 + 761 + it('skips values until the notifier source emits', () => { 762 + const { source: notifier$, next: notify } = sources.makeSubject(); 763 + const { source: input$, next } = sources.makeSubject<number>(); 764 + const fn = jest.fn(); 765 + 766 + sinks.forEach(fn)(operators.skipUntil(notifier$)(input$)); 767 + 768 + next(1); 769 + expect(fn).not.toHaveBeenCalled(); 770 + notify(null); 771 + next(2); 772 + expect(fn).toHaveBeenCalledWith(2); 773 + }); 774 + }); 775 + 776 + describe('skipWhile', () => { 777 + const noop = operators.skipWhile(() => false); 778 + passesPassivePull(noop); 779 + passesActivePush(noop); 780 + passesSinkClose(noop); 781 + passesSourceEnd(noop); 782 + passesSingleStart(noop); 783 + passesAsyncSequence(noop); 784 + 785 + it('skips values until one fails a predicate', () => { 786 + const { source, next } = sources.makeSubject<number>(); 787 + const fn = jest.fn(); 788 + 789 + sinks.forEach(fn)(operators.skipWhile(x => x <= 1)(source)); 790 + 791 + next(1); 792 + expect(fn).not.toHaveBeenCalled(); 793 + next(2); 794 + expect(fn).toHaveBeenCalledWith(2); 795 + }); 796 + }); 797 + 798 + describe('switchMap', () => { 799 + const noop = operators.switchMap(x => sources.fromValue(x)); 800 + // TODO: passesPassivePull(noop); 801 + // TODO: passesActivePush(noop); 802 + // TODO: passesSinkClose(noop); 803 + // TODO: passesSourceEnd(noop); 804 + passesSingleStart(noop); 805 + passesStrictEnd(noop); 806 + passesAsyncSequence(noop); 807 + 808 + // This synchronous test for switchMap will behave the same as concatMap & mergeMap 809 + it('emits values from each flattened synchronous source', () => { 810 + const { source, next, complete } = sources.makeSubject<number>(); 811 + const fn = jest.fn(); 812 + 813 + operators.switchMap((x: number) => sources.fromArray([x, x + 1]))(source)(fn); 814 + 815 + next(1); 816 + next(3); 817 + complete(); 818 + 819 + expect(fn).toHaveBeenCalledTimes(6); 820 + expect(fn.mock.calls).toEqual([ 821 + [deriving.start(expect.any(Function))], 822 + [deriving.push(1)], 823 + [deriving.push(2)], 824 + [deriving.push(3)], 825 + [deriving.push(4)], 826 + [deriving.end()], 827 + ]); 828 + }); 829 + 830 + // This asynchronous test for switchMap will behave differently than concatMap & mergeMap 831 + it('emits values from each flattened asynchronous source, one at a time', () => { 832 + const source = web.delay<number>(4)(sources.fromArray([1, 10])); 833 + const fn = jest.fn(); 834 + 835 + sinks.forEach(fn)( 836 + operators.switchMap((x: number) => { 837 + return web.delay(5)(sources.fromArray([x, x * 2])); 838 + })(source) 839 + ); 840 + 841 + jest.runAllTimers(); 842 + expect(fn.mock.calls).toEqual([ 843 + [1], 844 + [10], 845 + [20], 846 + ]); 847 + }); 848 + }); 849 + 850 + describe('take', () => { 851 + const noop = operators.take(10); 852 + passesPassivePull(noop); 853 + passesActivePush(noop); 854 + // TODO: passesSinkClose(noop); 855 + passesSourceEnd(noop); 856 + passesSingleStart(noop); 857 + passesStrictEnd(noop); 858 + passesAsyncSequence(noop); 859 + 860 + // TODO: take(0) seems to be broken 861 + const ending = operators.take(1); 862 + passesCloseAndEnd(ending); 863 + 864 + it('emits values until a maximum is reached', () => { 865 + const { source, next } = sources.makeSubject<number>(); 866 + const fn = jest.fn(); 867 + 868 + operators.take(1)(source)(fn); 869 + next(1); 870 + 871 + expect(fn).toHaveBeenCalledTimes(3); 872 + expect(fn.mock.calls).toEqual([ 873 + [deriving.start(expect.any(Function))], 874 + [deriving.push(1)], 875 + [deriving.end()], 876 + ]); 877 + }); 878 + }); 879 + 880 + describe('takeUntil', () => { 881 + const noop = operators.takeUntil(sources.never); 882 + passesPassivePull(noop); 883 + passesActivePush(noop); 884 + passesSinkClose(noop); 885 + passesSourceEnd(noop); 886 + passesSingleStart(noop); 887 + passesStrictEnd(noop); 888 + passesAsyncSequence(noop); 889 + 890 + const ending = operators.takeUntil(sources.fromValue(null)); 891 + passesCloseAndEnd(ending); 892 + 893 + it('emits values until a notifier emits', () => { 894 + const { source: notifier$, next: notify } = sources.makeSubject<number>(); 895 + const { source: input$, next } = sources.makeSubject<number>(); 896 + const fn = jest.fn(); 897 + 898 + operators.takeUntil(notifier$)(input$)(fn); 899 + next(1); 900 + 901 + expect(fn).toHaveBeenCalledTimes(2); 902 + expect(fn.mock.calls).toEqual([ 903 + [deriving.start(expect.any(Function))], 904 + [deriving.push(1)], 905 + ]); 906 + 907 + notify(null); 908 + expect(fn).toHaveBeenCalledTimes(3); 909 + expect(fn.mock.calls[2][0]).toEqual(deriving.end()); 910 + }); 911 + }); 912 + 913 + describe('takeWhile', () => { 914 + const noop = operators.takeWhile(() => true); 915 + passesPassivePull(noop); 916 + passesActivePush(noop); 917 + passesSinkClose(noop); 918 + passesSourceEnd(noop); 919 + // TODO: passesSingleStart(noop); 920 + passesStrictEnd(noop); 921 + passesAsyncSequence(noop); 922 + 923 + const ending = operators.takeWhile(() => false); 924 + passesCloseAndEnd(ending); 925 + 926 + it('emits values while a predicate passes for all values', () => { 927 + const { source, next } = sources.makeSubject<number>(); 928 + const fn = jest.fn(); 929 + 930 + operators.takeWhile(x => x < 2)(source)(fn); 931 + next(1); 932 + next(2); 933 + 934 + expect(fn).toHaveBeenCalledTimes(4); 935 + expect(fn.mock.calls).toEqual([ 936 + [deriving.start(expect.any(Function))], 937 + [deriving.start(expect.any(Function))], 938 + [deriving.push(1)], 939 + [deriving.end()], 940 + ]); 941 + }); 942 + }); 943 + 944 + describe('throttle', () => { 945 + const noop = web.throttle(() => 0); 946 + passesPassivePull(noop); 947 + passesActivePush(noop); 948 + passesSinkClose(noop); 949 + passesSourceEnd(noop); 950 + passesSingleStart(noop); 951 + passesAsyncSequence(noop); 952 + 953 + it('should ignore emissions for a period of time after a value', () => { 954 + const { source, next } = sources.makeSubject<number>(); 955 + const fn = jest.fn(); 956 + 957 + sinks.forEach(fn)(web.throttle(() => 100)(source)); 958 + 959 + next(1); 960 + expect(fn).toHaveBeenCalledWith(1); 961 + jest.advanceTimersByTime(50); 962 + 963 + next(2); 964 + expect(fn).toHaveBeenCalledTimes(1); 965 + jest.advanceTimersByTime(50); 966 + 967 + next(3); 968 + expect(fn).toHaveBeenCalledWith(3); 969 + }); 970 + });
+86 -3
src/wonka_sinks.re
··· 1 - include Wonka_sink_publish; 2 - include Wonka_sink_subscribe; 3 - include Wonka_sink_toArray; 1 + open Wonka_types; 2 + open Wonka_helpers; 3 + 4 + type subscribeStateT = { 5 + mutable talkback: (. talkbackT) => unit, 6 + mutable ended: bool, 7 + }; 8 + 9 + [@genType] 10 + type subscribeConsumerT('a) = sourceT('a) => subscriptionT; 11 + 12 + [@genType] 13 + let subscribe = (f: (. 'a) => unit): subscribeConsumerT('a) => 14 + curry(source => { 15 + let state: subscribeStateT = { 16 + talkback: talkbackPlaceholder, 17 + ended: false, 18 + }; 19 + 20 + source((. signal) => 21 + switch (signal) { 22 + | Start(x) => 23 + state.talkback = x; 24 + x(. Pull); 25 + | Push(x) when !state.ended => 26 + f(. x); 27 + state.talkback(. Pull); 28 + | Push(_) => () 29 + | End => state.ended = true 30 + } 31 + ); 32 + 33 + { 34 + unsubscribe: () => 35 + if (!state.ended) { 36 + state.ended = true; 37 + state.talkback(. Close); 38 + }, 39 + }; 40 + }); 41 + 42 + [@genType] 43 + type forEachConsumerT('a) = sourceT('a) => unit; 44 + 45 + [@genType] 46 + let forEach = (f: (. 'a) => unit): forEachConsumerT('a) => 47 + curry(source => ignore(subscribe(f, source))); 48 + 49 + [@genType] 50 + let publish = (source: sourceT('a)): subscriptionT => 51 + subscribe((. _) => (), source); 52 + 53 + type toArrayStateT('a) = { 54 + values: Rebel.MutableQueue.t('a), 55 + mutable talkback: (. talkbackT) => unit, 56 + mutable value: option('a), 57 + mutable ended: bool, 58 + }; 59 + 60 + [@genType] 61 + let toArray = (source: sourceT('a)): array('a) => { 62 + let state: toArrayStateT('a) = { 63 + values: Rebel.MutableQueue.make(), 64 + talkback: talkbackPlaceholder, 65 + value: None, 66 + ended: false, 67 + }; 68 + 69 + source((. signal) => 70 + switch (signal) { 71 + | Start(x) => 72 + state.talkback = x; 73 + x(. Pull); 74 + | Push(value) => 75 + Rebel.MutableQueue.add(state.values, value); 76 + state.talkback(. Pull); 77 + | End => state.ended = true 78 + } 79 + ); 80 + 81 + if (!state.ended) { 82 + state.talkback(. Close); 83 + }; 84 + 85 + Rebel.MutableQueue.toArray(state.values); 86 + };
+290
src/wonka_sinks.test.ts
··· 1 + import * as deriving from './helpers/wonka_deriving'; 2 + import * as sinks from './wonka_sinks.gen'; 3 + import * as web from './web/wonkaJs.gen'; 4 + import * as types from './wonka_types.gen'; 5 + 6 + import Observable from 'zen-observable'; 7 + import callbagIterate from 'callbag-iterate'; 8 + import callbagTake from 'callbag-take'; 9 + 10 + describe('subscribe', () => { 11 + it('sends Pull talkback signals every Push signal', () => { 12 + let pulls = 0; 13 + const fn = jest.fn(); 14 + 15 + const source: types.sourceT<any> = sink => { 16 + sink(deriving.start(tb => { 17 + if (tb === deriving.pull) { 18 + if (pulls < 3) { 19 + pulls++; 20 + sink(deriving.push(0)); 21 + } else { 22 + sink(deriving.end()); 23 + expect(pulls).toBe(3); 24 + } 25 + } 26 + })); 27 + }; 28 + 29 + sinks.subscribe(fn)(source); 30 + expect(fn).toHaveBeenCalledTimes(3); 31 + expect(pulls).toBe(3); 32 + }); 33 + 34 + it('cancels when unsubscribe is called', () => { 35 + let pulls = 0; 36 + let closing = 0; 37 + 38 + const source: types.sourceT<any> = sink => { 39 + sink(deriving.start(tb => { 40 + if (tb === deriving.pull) { 41 + if (!pulls) { 42 + pulls++; 43 + sink(deriving.push(0)); 44 + } 45 + } else if (tb === deriving.close) { 46 + closing++; 47 + } 48 + })); 49 + }; 50 + 51 + const sub = sinks.subscribe(() => {})(source); 52 + expect(pulls).toBe(1); 53 + 54 + sub.unsubscribe(); 55 + expect(closing).toBe(1); 56 + }); 57 + 58 + it('ignores cancellation when the source has already ended', () => { 59 + let pulls = 0; 60 + let closing = 0; 61 + 62 + const source: types.sourceT<any> = sink => { 63 + sink(deriving.start(tb => { 64 + if (tb === deriving.pull) { 65 + pulls++; 66 + sink(deriving.end()); 67 + } else if (tb === deriving.close) { 68 + closing++; 69 + } 70 + })); 71 + }; 72 + 73 + const sub = sinks.subscribe(() => {})(source); 74 + expect(pulls).toBe(1); 75 + sub.unsubscribe(); 76 + expect(closing).toBe(0); 77 + }); 78 + 79 + it('ignores Push signals after the source has ended', () => { 80 + const fn = jest.fn(); 81 + const source: types.sourceT<any> = sink => { 82 + sink(deriving.start(tb => { 83 + if (tb === deriving.pull) { 84 + sink(deriving.end()); 85 + sink(deriving.push(0)); 86 + } 87 + })); 88 + }; 89 + 90 + sinks.subscribe(fn)(source); 91 + expect(fn).not.toHaveBeenCalled(); 92 + }); 93 + 94 + it('ignores Push signals after cancellation', () => { 95 + const fn = jest.fn(); 96 + const source: types.sourceT<any> = sink => { 97 + sink(deriving.start(tb => { 98 + if (tb === deriving.close) { 99 + sink(deriving.push(0)); 100 + } 101 + })); 102 + }; 103 + 104 + sinks.subscribe(fn)(source).unsubscribe(); 105 + expect(fn).not.toHaveBeenCalled(); 106 + }); 107 + }); 108 + 109 + describe('publish', () => { 110 + it('sends Pull talkback signals every Push signal', () => { 111 + let pulls = 0; 112 + const source: types.sourceT<any> = sink => { 113 + sink(deriving.start(tb => { 114 + if (tb === deriving.pull) { 115 + if (pulls < 3) { 116 + pulls++; 117 + sink(deriving.push(0)); 118 + } else { 119 + sink(deriving.end()); 120 + expect(pulls).toBe(3); 121 + } 122 + } 123 + })); 124 + }; 125 + 126 + sinks.publish(source); 127 + expect(pulls).toBe(3); 128 + }); 129 + }); 130 + 131 + describe('toArray', () => { 132 + it('sends Pull talkback signals every Push signal', () => { 133 + let pulls = 0; 134 + const source: types.sourceT<any> = sink => { 135 + sink(deriving.start(tb => { 136 + if (tb === deriving.pull) { 137 + if (pulls < 3) { 138 + pulls++; 139 + sink(deriving.push(0)); 140 + } else { 141 + sink(deriving.end()); 142 + expect(pulls).toBe(3); 143 + } 144 + } 145 + })); 146 + }; 147 + 148 + const array = sinks.toArray(source); 149 + expect(array).toEqual([0, 0, 0]); 150 + expect(pulls).toBe(3); 151 + }); 152 + 153 + it('sends a Close talkback signal after all synchronous values have been pulled', () => { 154 + let pulls = 0; 155 + let ending = 0; 156 + 157 + const source: types.sourceT<any> = sink => { 158 + sink(deriving.start(tb => { 159 + if (tb === deriving.pull) { 160 + if (!pulls) { 161 + pulls++; 162 + sink(deriving.push(0)); 163 + } 164 + } else if (tb === deriving.close) { 165 + ending++; 166 + } 167 + })); 168 + }; 169 + 170 + const array = sinks.toArray(source); 171 + expect(array).toEqual([0]); 172 + expect(ending).toBe(1); 173 + }); 174 + }); 175 + 176 + describe('toPromise', () => { 177 + it('creates a Promise that resolves on the last value', async () => { 178 + let pulls = 0; 179 + let sink = null; 180 + 181 + const source: types.sourceT<any> = _sink => { 182 + sink = _sink; 183 + sink(deriving.start(tb => { 184 + if (tb === deriving.pull) 185 + pulls++; 186 + })); 187 + }; 188 + 189 + const fn = jest.fn(); 190 + const promise = web.toPromise(source).then(fn); 191 + 192 + expect(pulls).toBe(1); 193 + sink(deriving.push(0)); 194 + expect(pulls).toBe(2); 195 + sink(deriving.push(1)); 196 + sink(deriving.end()); 197 + expect(fn).not.toHaveBeenCalled(); 198 + 199 + await promise; 200 + expect(fn).toHaveBeenCalledWith(1); 201 + }); 202 + }); 203 + 204 + describe('toObservable', () => { 205 + it('creates an Observable mirroring the Wonka source', () => { 206 + const next = jest.fn(); 207 + const complete = jest.fn(); 208 + let pulls = 0; 209 + let sink = null; 210 + 211 + const source: types.sourceT<any> = _sink => { 212 + sink = _sink; 213 + sink(deriving.start(tb => { 214 + if (tb === deriving.pull) 215 + pulls++; 216 + })); 217 + }; 218 + 219 + Observable.from(web.toObservable(source) as any).subscribe({ 220 + next, 221 + complete, 222 + }); 223 + 224 + expect(pulls).toBe(1); 225 + sink(deriving.push(0)); 226 + expect(next).toHaveBeenCalledWith(0); 227 + sink(deriving.push(1)); 228 + expect(next).toHaveBeenCalledWith(1); 229 + sink(deriving.end()); 230 + expect(complete).toHaveBeenCalled(); 231 + }); 232 + 233 + it('forwards cancellations from the Observable as a talkback', () => { 234 + let ending = 0; 235 + const source: types.sourceT<any> = sink => 236 + sink(deriving.start(tb => { 237 + if (tb === deriving.close) 238 + ending++; 239 + })); 240 + 241 + const sub = Observable.from(web.toObservable(source) as any).subscribe({}); 242 + 243 + expect(ending).toBe(0); 244 + sub.unsubscribe(); 245 + expect(ending).toBe(1); 246 + }); 247 + }); 248 + 249 + describe('toCallbag', () => { 250 + it('creates a Callbag mirroring the Wonka source', () => { 251 + const fn = jest.fn(); 252 + let pulls = 0; 253 + let sink = null; 254 + 255 + const source: types.sourceT<any> = _sink => { 256 + sink = _sink; 257 + sink(deriving.start(tb => { 258 + if (tb === deriving.pull) 259 + pulls++; 260 + })); 261 + }; 262 + 263 + callbagIterate(fn)(web.toCallbag(source)); 264 + 265 + expect(pulls).toBe(1); 266 + sink(deriving.push(0)); 267 + expect(fn).toHaveBeenCalledWith(0); 268 + sink(deriving.push(1)); 269 + expect(fn).toHaveBeenCalledWith(1); 270 + sink(deriving.end()); 271 + }); 272 + 273 + it('forwards cancellations from the Callbag as a talkback', () => { 274 + let ending = 0; 275 + const fn = jest.fn(); 276 + 277 + const source: types.sourceT<any> = sink => 278 + sink(deriving.start(tb => { 279 + if (tb === deriving.pull) 280 + sink(deriving.push(0)); 281 + if (tb === deriving.close) 282 + ending++; 283 + })); 284 + 285 + callbagIterate(fn)(callbagTake(1)(web.toCallbag(source) as any)); 286 + 287 + expect(fn.mock.calls).toEqual([[0]]); 288 + expect(ending).toBe(1); 289 + }); 290 + });
+124 -6
src/wonka_sources.re
··· 1 - include Wonka_source_fromArray; 2 - include Wonka_source_fromList; 3 - include Wonka_source_fromValue; 4 - include Wonka_source_make; 5 - include Wonka_source_makeSubject; 6 - include Wonka_source_primitives; 1 + open Wonka_types; 2 + open Wonka_helpers; 3 + 4 + [@genType] 5 + let fromArray = (arr: array('a)): sourceT('a) => 6 + curry(sink => { 7 + let size = Rebel.Array.size(arr); 8 + let index = ref(0); 9 + 10 + makeTrampoline(sink, (.) => 11 + if (index^ < size) { 12 + let x = Rebel.Array.getUnsafe(arr, index^); 13 + index := index^ + 1; 14 + Some(x); 15 + } else { 16 + None; 17 + } 18 + ); 19 + }); 20 + 21 + [@genType] 22 + let fromList = (ls: list('a)): sourceT('a) => 23 + curry(sink => { 24 + let value = ref(ls); 25 + 26 + makeTrampoline(sink, (.) => 27 + switch (value^) { 28 + | [x, ...rest] => 29 + value := rest; 30 + Some(x); 31 + | [] => None 32 + } 33 + ); 34 + }); 35 + 36 + [@genType] 37 + let fromValue = (x: 'a): sourceT('a) => 38 + curry(sink => { 39 + let ended = ref(false); 40 + 41 + sink(. 42 + Start( 43 + (. signal) => 44 + switch (signal) { 45 + | Pull when ! ended^ => 46 + ended := true; 47 + sink(. Push(x)); 48 + sink(. End); 49 + | _ => () 50 + }, 51 + ), 52 + ); 53 + }); 54 + 55 + [@genType] 56 + let make = (f: (. observerT('a)) => teardownT): sourceT('a) => 57 + curry(sink => { 58 + let teardown = ref((.) => ()); 59 + 60 + sink(. 61 + Start( 62 + (. signal) => 63 + switch (signal) { 64 + | Close => teardown^(.) 65 + | Pull => () 66 + }, 67 + ), 68 + ); 69 + 70 + teardown := 71 + f(. { 72 + next: value => sink(. Push(value)), 73 + complete: () => sink(. End), 74 + }); 75 + }); 76 + 77 + type subjectState('a) = { 78 + mutable sinks: Rebel.Array.t(sinkT('a)), 79 + mutable ended: bool, 80 + }; 81 + 82 + [@genType] 83 + let makeSubject = (): subjectT('a) => { 84 + let state: subjectState('a) = { 85 + sinks: Rebel.Array.makeEmpty(), 86 + ended: false, 87 + }; 88 + 89 + let source = sink => { 90 + state.sinks = Rebel.Array.append(state.sinks, sink); 91 + sink(. 92 + Start( 93 + (. signal) => 94 + if (signal === Close) { 95 + state.sinks = Rebel.Array.filter(state.sinks, x => x !== sink); 96 + }, 97 + ), 98 + ); 99 + }; 100 + 101 + let next = value => 102 + if (!state.ended) { 103 + Rebel.Array.forEach(state.sinks, sink => sink(. Push(value))); 104 + }; 105 + 106 + let complete = () => 107 + if (!state.ended) { 108 + state.ended = true; 109 + Rebel.Array.forEach(state.sinks, sink => sink(. End)); 110 + }; 111 + 112 + {source, next, complete}; 113 + }; 114 + 115 + [@genType] 116 + let empty = (sink: sinkT('a)): unit => { 117 + sink(. Start(talkbackPlaceholder)); 118 + sink(. End); 119 + }; 120 + 121 + [@genType] 122 + let never = (sink: sinkT('a)): unit => { 123 + sink(. Start(talkbackPlaceholder)); 124 + };
+369
src/wonka_sources.test.ts
··· 1 + import * as deriving from './helpers/wonka_deriving'; 2 + import * as sources from './wonka_sources.gen'; 3 + import * as types from './wonka_types.gen'; 4 + import * as web from './web/wonkaJs.gen'; 5 + 6 + import callbagFromArray from 'callbag-from-iter'; 7 + import Observable from 'zen-observable'; 8 + 9 + const collectSignals = ( 10 + source: types.sourceT<any>, 11 + onStart?: (talkbackCb: (tb: types.talkbackT) => void) => void 12 + ) => { 13 + let talkback = null; 14 + const signals = []; 15 + 16 + source(signal => { 17 + signals.push(signal); 18 + if (deriving.isStart(signal)) { 19 + talkback = deriving.unboxStart(signal); 20 + if (onStart) onStart(talkback); 21 + talkback(deriving.pull); 22 + } else if (deriving.isPush(signal)) { 23 + talkback(deriving.pull); 24 + } 25 + }) 26 + 27 + return signals; 28 + }; 29 + 30 + /* When a Close talkback signal is sent the source should immediately end */ 31 + const passesActiveClose = (source: types.sourceT<any>) => 32 + it('stops emitting when a Close talkback signal is received (spec)', () => { 33 + let talkback = null; 34 + 35 + const sink: types.sinkT<any> = signal => { 36 + expect(deriving.isPush(signal)).toBeFalsy(); 37 + expect(deriving.isEnd(signal)).toBeFalsy(); 38 + if (deriving.isStart(signal)) { 39 + talkback = deriving.unboxStart(signal); 40 + talkback(deriving.close); 41 + } 42 + }; 43 + 44 + source(sink); 45 + expect(talkback).not.toBe(null); 46 + }); 47 + 48 + /* All synchronous, cold sources won't send anything unless a Pull signal 49 + has been received. */ 50 + const passesColdPull = (source: types.sourceT<any>) => 51 + it('sends nothing when no Pull talkback signal has been sent (spec)', () => { 52 + let pushes = 0; 53 + let talkback = null; 54 + 55 + const sink: types.sinkT<any> = signal => { 56 + if (deriving.isPush(signal)) { 57 + pushes++; 58 + } else if (deriving.isStart(signal)) { 59 + talkback = deriving.unboxStart(signal); 60 + } 61 + }; 62 + 63 + source(sink); 64 + expect(talkback).not.toBe(null); 65 + expect(pushes).toBe(0); 66 + 67 + setTimeout(() => { 68 + expect(pushes).toBe(0); 69 + talkback(deriving.pull); 70 + }, 10); 71 + 72 + jest.runAllTimers(); 73 + expect(pushes).toBe(1); 74 + }); 75 + 76 + /* All synchronous, cold sources need to use trampoline scheduling to avoid 77 + recursively sending more and more Push signals which would eventually lead 78 + to a call stack overflow when too many values are emitted. */ 79 + const passesTrampoline = (source: types.sourceT<any>) => 80 + it('uses trampoline scheduling instead of recursive push signals (spec)', () => { 81 + let talkback = null; 82 + let pushes = 0; 83 + 84 + const signals = []; 85 + const sink: types.sinkT<any> = signal => { 86 + if (deriving.isPush(signal)) { 87 + const lastPushes = ++pushes; 88 + signals.push(signal); 89 + talkback(deriving.pull); 90 + expect(lastPushes).toBe(pushes); 91 + } else if (deriving.isStart(signal)) { 92 + talkback = deriving.unboxStart(signal); 93 + talkback(deriving.pull); 94 + expect(pushes).toBe(2); 95 + } else if (deriving.isEnd(signal)) { 96 + signals.push(signal); 97 + expect(pushes).toBe(2); 98 + } 99 + }; 100 + 101 + source(sink); 102 + 103 + expect(signals).toEqual([ 104 + deriving.push(1), 105 + deriving.push(2), 106 + deriving.end(), 107 + ]); 108 + }); 109 + 110 + beforeEach(() => { 111 + jest.useFakeTimers(); 112 + }); 113 + 114 + describe('fromArray', () => { 115 + passesTrampoline(sources.fromArray([1, 2])); 116 + passesColdPull(sources.fromArray([0])); 117 + passesActiveClose(sources.fromArray([0])); 118 + }); 119 + 120 + describe('fromList', () => { 121 + passesTrampoline(sources.fromList([1, [2]] as any)); 122 + passesColdPull(sources.fromList([0] as any)); 123 + passesActiveClose(sources.fromList([0] as any)); 124 + }); 125 + 126 + describe('fromValue', () => { 127 + passesColdPull(sources.fromValue(0)); 128 + passesActiveClose(sources.fromValue(0)); 129 + 130 + it('sends a single value and ends', () => { 131 + expect(collectSignals(sources.fromValue(1))).toEqual([ 132 + deriving.start(expect.any(Function)), 133 + deriving.push(1), 134 + deriving.end() 135 + ]); 136 + }); 137 + }); 138 + 139 + describe('make', () => { 140 + it('may be used to create async sources', () => { 141 + const teardown = jest.fn(); 142 + const source = sources.make(observer => { 143 + setTimeout(() => observer.next(1), 10); 144 + setTimeout(() => observer.complete(), 20); 145 + return teardown; 146 + }); 147 + 148 + const signals = collectSignals(source); 149 + expect(signals).toEqual([deriving.start(expect.any(Function))]); 150 + jest.runAllTimers(); 151 + 152 + expect(signals).toEqual([ 153 + deriving.start(expect.any(Function)), 154 + deriving.push(1), 155 + deriving.end(), 156 + ]); 157 + }); 158 + 159 + it('supports active cancellation', () => { 160 + const teardown = jest.fn(); 161 + const source = sources.make(() => teardown); 162 + 163 + const sink: types.sinkT<any> = signal => { 164 + expect(deriving.isPush(signal)).toBeFalsy(); 165 + expect(deriving.isEnd(signal)).toBeFalsy(); 166 + if (deriving.isStart(signal)) 167 + setTimeout(() => deriving.unboxStart(signal)(deriving.close)); 168 + }; 169 + 170 + source(sink); 171 + expect(teardown).not.toHaveBeenCalled(); 172 + jest.runAllTimers(); 173 + expect(teardown).toHaveBeenCalled(); 174 + }); 175 + }); 176 + 177 + describe('makeSubject', () => { 178 + it('may be used to emit signals programmatically', () => { 179 + const { source, next, complete } = sources.makeSubject(); 180 + const signals = collectSignals(source); 181 + 182 + expect(signals).toEqual([ 183 + deriving.start(expect.any(Function)), 184 + ]); 185 + 186 + next(1); 187 + 188 + expect(signals).toEqual([ 189 + deriving.start(expect.any(Function)), 190 + deriving.push(1), 191 + ]); 192 + 193 + complete(); 194 + 195 + expect(signals).toEqual([ 196 + deriving.start(expect.any(Function)), 197 + deriving.push(1), 198 + deriving.end(), 199 + ]); 200 + }); 201 + 202 + it('ignores signals after complete has been called', () => { 203 + const { source, next, complete } = sources.makeSubject(); 204 + const signals = collectSignals(source); 205 + complete(); 206 + 207 + expect(signals).toEqual([ 208 + deriving.start(expect.any(Function)), 209 + deriving.end(), 210 + ]); 211 + 212 + next(1); 213 + complete(); 214 + expect(signals.length).toBe(2); 215 + }); 216 + }); 217 + 218 + describe('never', () => { 219 + it('emits nothing and ends immediately', () => { 220 + const signals = collectSignals(sources.never); 221 + expect(signals).toEqual([deriving.start(expect.any(Function)) ]); 222 + }); 223 + }); 224 + 225 + describe('empty', () => { 226 + it('emits nothing and ends immediately', () => { 227 + const signals = collectSignals(sources.empty); 228 + 229 + expect(signals).toEqual([ 230 + deriving.start(expect.any(Function)), 231 + deriving.end(), 232 + ]); 233 + }); 234 + }); 235 + 236 + describe('fromPromise', () => { 237 + passesActiveClose(web.fromPromise(Promise.resolve(null))); 238 + 239 + it('emits a value when the promise resolves', async () => { 240 + const promise = Promise.resolve(1); 241 + const signals = collectSignals(web.fromPromise(promise)); 242 + 243 + expect(signals).toEqual([ 244 + deriving.start(expect.any(Function)), 245 + ]); 246 + 247 + await promise; 248 + 249 + expect(signals).toEqual([ 250 + deriving.start(expect.any(Function)), 251 + deriving.push(1), 252 + deriving.end(), 253 + ]); 254 + }); 255 + }); 256 + 257 + describe('fromObservable', () => { 258 + beforeEach(() => { 259 + jest.useRealTimers(); 260 + }); 261 + 262 + it('converts an Observable to a Wonka source', async () => { 263 + const source = web.fromObservable(Observable.from([1, 2])); 264 + const signals = collectSignals(source); 265 + 266 + await new Promise(resolve => setTimeout(resolve)); 267 + 268 + expect(signals).toEqual([ 269 + deriving.start(expect.any(Function)), 270 + deriving.push(1), 271 + deriving.push(2), 272 + deriving.end(), 273 + ]); 274 + }); 275 + 276 + it('supports cancellation on converted Observables', async () => { 277 + const source = web.fromObservable(Observable.from([1, 2])); 278 + const signals = collectSignals(source, talkback => { 279 + talkback(deriving.close); 280 + }); 281 + 282 + await new Promise(resolve => setTimeout(resolve)); 283 + 284 + expect(signals).toEqual([ 285 + deriving.start(expect.any(Function)), 286 + ]); 287 + }); 288 + }); 289 + 290 + describe('fromCallbag', () => { 291 + it('converts a Callbag to a Wonka source', () => { 292 + const source = web.fromCallbag(callbagFromArray([1, 2])); 293 + const signals = collectSignals(source); 294 + 295 + expect(signals).toEqual([ 296 + deriving.start(expect.any(Function)), 297 + deriving.push(1), 298 + deriving.push(2), 299 + deriving.end(), 300 + ]); 301 + }); 302 + 303 + it('supports cancellation on converted Observables', () => { 304 + const source = web.fromCallbag(callbagFromArray([1, 2])); 305 + const signals = collectSignals(source, talkback => { 306 + talkback(deriving.close); 307 + }); 308 + 309 + expect(signals).toEqual([ 310 + deriving.start(expect.any(Function)), 311 + ]); 312 + }); 313 + }); 314 + 315 + describe('interval', () => { 316 + it('emits Push signals until Cancel is sent', () => { 317 + let pushes = 0; 318 + let talkback = null; 319 + 320 + const sink: types.sinkT<any> = signal => { 321 + if (deriving.isPush(signal)) { 322 + pushes++; 323 + } else if (deriving.isStart(signal)) { 324 + talkback = deriving.unboxStart(signal); 325 + } 326 + }; 327 + 328 + web.interval(100)(sink); 329 + expect(talkback).not.toBe(null); 330 + expect(pushes).toBe(0); 331 + 332 + jest.advanceTimersByTime(100); 333 + expect(pushes).toBe(1); 334 + jest.advanceTimersByTime(100); 335 + expect(pushes).toBe(2); 336 + 337 + talkback(deriving.close); 338 + jest.advanceTimersByTime(100); 339 + expect(pushes).toBe(2); 340 + }); 341 + }); 342 + 343 + describe('fromDomEvent', () => { 344 + it('emits Push signals for events on a DOM element', () => { 345 + let talkback = null; 346 + 347 + const element = { 348 + addEventListener: jest.fn(), 349 + removeEventListener: jest.fn(), 350 + }; 351 + 352 + const sink: types.sinkT<any> = signal => { 353 + expect(deriving.isEnd(signal)).toBeFalsy(); 354 + if (deriving.isStart(signal)) 355 + talkback = deriving.unboxStart(signal); 356 + }; 357 + 358 + web.fromDomEvent(element as any, 'click')(sink); 359 + 360 + expect(element.addEventListener).toHaveBeenCalledWith('click', expect.any(Function)); 361 + expect(element.removeEventListener).not.toHaveBeenCalled(); 362 + const listener = element.addEventListener.mock.calls[0][1]; 363 + 364 + listener(1); 365 + listener(2); 366 + talkback(deriving.close); 367 + expect(element.removeEventListener).toHaveBeenCalledWith('click', listener); 368 + }); 369 + });
-18
src/wonka_types.d.ts
··· 1 - export type List<T> = [T, any] | 0; 2 - 3 - export type Talkback = 0 | 1; 4 - 5 - export type Signal<A> = 6 - | ({ tag: 0 } & [(talkback: Talkback) => void]) 7 - | ({ tag: 1 } & [A]) 8 - | 0; 9 - 10 - export interface Sink<A> { (signal: Signal<A>): void; } 11 - export interface Source<A> { (sink: Sink<A>): void; } 12 - export interface Operator<A, B> { (source: Source<A>): Source<B>; } 13 - 14 - export type Subscription = [() => void]; 15 - 16 - export type Observer<A> = [(value: A) => void, () => void]; 17 - 18 - export type Subject<A> = [Source<A>, (value: A) => void, () => void];
+12
src/wonka_types.re
··· 26 26 * purposes, or call the actual sink as it sees fit. 27 27 */ 28 28 29 + [@genType.import "./shims/Js.shim"] 29 30 type talkbackT = 30 31 | Pull 31 32 | Close; 32 33 34 + [@genType.import "./shims/Js.shim"] 33 35 type signalT('a) = 34 36 | Start((. talkbackT) => unit) 35 37 | Push('a) 36 38 | End; 37 39 40 + [@genType] 38 41 type sinkT('a) = (. signalT('a)) => unit; 42 + 43 + [@genType] 39 44 type sourceT('a) = sinkT('a) => unit; 40 45 46 + [@genType] 47 + type operatorT('a, 'b) = sourceT('a) => sourceT('b); 48 + 49 + [@genType] 41 50 type teardownT = (. unit) => unit; 42 51 52 + [@genType] 43 53 type subscriptionT = {unsubscribe: unit => unit}; 44 54 55 + [@genType] 45 56 type observerT('a) = { 46 57 next: 'a => unit, 47 58 complete: unit => unit, 48 59 }; 49 60 61 + [@genType] 50 62 type subjectT('a) = { 51 63 source: sourceT('a), 52 64 next: 'a => unit,
+4 -5
tsconfig.json
··· 9 9 "lib": ["dom", "esnext"], 10 10 "jsx": "react", 11 11 "declaration": false, 12 - "module": "es2015", 12 + "module": "commonjs", 13 13 "moduleResolution": "node", 14 14 "target": "esnext", 15 - "strict": true, 15 + "strict": false, 16 16 "noImplicitAny": false, 17 - "noUnusedParameters": true, 17 + "noUnusedParameters": false, 18 18 "sourceMap": true, 19 19 "pretty": true 20 - }, 21 - "include": ["src/**/*.d.ts"] 20 + } 22 21 }
+2867 -1939
yarn.lock
··· 2 2 # yarn lockfile v1 3 3 4 4 5 - "@ampproject/rollup-plugin-closure-compiler@^0.13.0": 6 - version "0.13.0" 7 - resolved "https://registry.yarnpkg.com/@ampproject/rollup-plugin-closure-compiler/-/rollup-plugin-closure-compiler-0.13.0.tgz#23083ada1e5f899280c38acbf22454616ccc78a8" 8 - integrity sha512-uvbNj/ngTZxHZM7y1RLC+hQ1qUZ9JH0BVdVmcAWRH6U/25ek18V/r+ks9VKmkzRfn8Oe9nY4XmXHJozfQGVOIQ== 5 + "@ampproject/rollup-plugin-closure-compiler@^0.18.1": 6 + version "0.18.1" 7 + resolved "https://registry.yarnpkg.com/@ampproject/rollup-plugin-closure-compiler/-/rollup-plugin-closure-compiler-0.18.1.tgz#492406d40b7c8245122e89ac8c350f8bd24e8950" 8 + integrity sha512-PIEgYrlLc6d59FYV3W/h/3CdEOkeGzAA1iONv1uYvmcAJpXTxdHVDvyTgXYlzdc2cJ9eRzgi4sFou3MhT8hU2A== 9 9 dependencies: 10 10 acorn "7.1.0" 11 11 acorn-dynamic-import "4.0.0" ··· 21 21 dependencies: 22 22 "@babel/highlight" "^7.0.0" 23 23 24 - "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.2.2", "@babel/core@^7.4.3", "@babel/core@^7.5.5", "@babel/core@^7.7.5": 25 - version "7.7.5" 26 - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.5.tgz#ae1323cd035b5160293307f50647e83f8ba62f7e" 27 - integrity sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw== 24 + "@babel/core@^7.1.0", "@babel/core@^7.2.2", "@babel/core@^7.4.3", "@babel/core@^7.5.5", "@babel/core@^7.7.5", "@babel/core@^7.7.7": 25 + version "7.7.7" 26 + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.7.tgz#ee155d2e12300bcc0cff6a8ad46f2af5063803e9" 27 + integrity sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ== 28 28 dependencies: 29 29 "@babel/code-frame" "^7.5.5" 30 - "@babel/generator" "^7.7.4" 30 + "@babel/generator" "^7.7.7" 31 31 "@babel/helpers" "^7.7.4" 32 - "@babel/parser" "^7.7.5" 32 + "@babel/parser" "^7.7.7" 33 33 "@babel/template" "^7.7.4" 34 34 "@babel/traverse" "^7.7.4" 35 35 "@babel/types" "^7.7.4" ··· 41 41 semver "^5.4.1" 42 42 source-map "^0.5.0" 43 43 44 - "@babel/generator@^7.0.0", "@babel/generator@^7.4.0", "@babel/generator@^7.7.4": 45 - version "7.7.4" 46 - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.4.tgz#db651e2840ca9aa66f327dcec1dc5f5fa9611369" 47 - integrity sha512-m5qo2WgdOJeyYngKImbkyQrnUN1mPceaG5BV+G0E3gWsa4l/jCSryWJdM2x8OuGAOyh+3d5pVYfZWCiNFtynxg== 44 + "@babel/generator@^7.4.0", "@babel/generator@^7.7.4", "@babel/generator@^7.7.7": 45 + version "7.7.7" 46 + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.7.tgz#859ac733c44c74148e1a72980a64ec84b85f4f45" 47 + integrity sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ== 48 48 dependencies: 49 49 "@babel/types" "^7.7.4" 50 50 jsesc "^2.5.1" 51 51 lodash "^4.17.13" 52 52 source-map "^0.5.0" 53 53 54 - "@babel/helper-annotate-as-pure@^7.0.0": 55 - version "7.0.0" 56 - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" 57 - integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== 54 + "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.7.4": 55 + version "7.7.4" 56 + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" 57 + integrity sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og== 58 58 dependencies: 59 - "@babel/types" "^7.0.0" 59 + "@babel/types" "^7.7.4" 60 60 61 - "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": 62 - version "7.1.0" 63 - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" 64 - integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== 61 + "@babel/helper-builder-binary-assignment-operator-visitor@^7.7.4": 62 + version "7.7.4" 63 + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.4.tgz#5f73f2b28580e224b5b9bd03146a4015d6217f5f" 64 + integrity sha512-Biq/d/WtvfftWZ9Uf39hbPBYDUo986m5Bb4zhkeYDGUllF43D+nUe5M6Vuo6/8JDK/0YX/uBdeoQpyaNhNugZQ== 65 65 dependencies: 66 - "@babel/helper-explode-assignable-expression" "^7.1.0" 67 - "@babel/types" "^7.0.0" 66 + "@babel/helper-explode-assignable-expression" "^7.7.4" 67 + "@babel/types" "^7.7.4" 68 68 69 - "@babel/helper-builder-react-jsx@^7.3.0": 70 - version "7.3.0" 71 - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" 72 - integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== 69 + "@babel/helper-builder-react-jsx@^7.7.4": 70 + version "7.7.4" 71 + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.4.tgz#da188d247508b65375b2c30cf59de187be6b0c66" 72 + integrity sha512-kvbfHJNN9dg4rkEM4xn1s8d1/h6TYNvajy9L1wx4qLn9HFg0IkTsQi4rfBe92nxrPUFcMsHoMV+8rU7MJb3fCA== 73 73 dependencies: 74 - "@babel/types" "^7.3.0" 74 + "@babel/types" "^7.7.4" 75 75 esutils "^2.0.0" 76 76 77 - "@babel/helper-call-delegate@^7.4.4": 78 - version "7.4.4" 79 - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" 80 - integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== 77 + "@babel/helper-call-delegate@^7.7.4": 78 + version "7.7.4" 79 + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.4.tgz#621b83e596722b50c0066f9dc37d3232e461b801" 80 + integrity sha512-8JH9/B7J7tCYJ2PpWVpw9JhPuEVHztagNVuQAFBVFYluRMlpG7F1CgKEgGeL6KFqcsIa92ZYVj6DSc0XwmN1ZA== 81 81 dependencies: 82 - "@babel/helper-hoist-variables" "^7.4.4" 83 - "@babel/traverse" "^7.4.4" 84 - "@babel/types" "^7.4.4" 82 + "@babel/helper-hoist-variables" "^7.7.4" 83 + "@babel/traverse" "^7.7.4" 84 + "@babel/types" "^7.7.4" 85 85 86 - "@babel/helper-create-class-features-plugin@^7.4.4": 87 - version "7.4.4" 88 - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba" 89 - integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA== 86 + "@babel/helper-create-class-features-plugin@^7.7.4": 87 + version "7.7.4" 88 + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.4.tgz#fce60939fd50618610942320a8d951b3b639da2d" 89 + integrity sha512-l+OnKACG4uiDHQ/aJT8dwpR+LhCJALxL0mJ6nzjB25e5IPwqV1VOsY7ah6UB1DG+VOXAIMtuC54rFJGiHkxjgA== 90 90 dependencies: 91 - "@babel/helper-function-name" "^7.1.0" 92 - "@babel/helper-member-expression-to-functions" "^7.0.0" 93 - "@babel/helper-optimise-call-expression" "^7.0.0" 91 + "@babel/helper-function-name" "^7.7.4" 92 + "@babel/helper-member-expression-to-functions" "^7.7.4" 93 + "@babel/helper-optimise-call-expression" "^7.7.4" 94 94 "@babel/helper-plugin-utils" "^7.0.0" 95 - "@babel/helper-replace-supers" "^7.4.4" 96 - "@babel/helper-split-export-declaration" "^7.4.4" 95 + "@babel/helper-replace-supers" "^7.7.4" 96 + "@babel/helper-split-export-declaration" "^7.7.4" 97 97 98 - "@babel/helper-define-map@^7.4.4": 99 - version "7.4.4" 100 - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a" 101 - integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg== 98 + "@babel/helper-create-regexp-features-plugin@^7.7.4": 99 + version "7.7.4" 100 + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.4.tgz#6d5762359fd34f4da1500e4cff9955b5299aaf59" 101 + integrity sha512-Mt+jBKaxL0zfOIWrfQpnfYCN7/rS6GKx6CCCfuoqVVd+17R8zNDlzVYmIi9qyb2wOk002NsmSTDymkIygDUH7A== 102 + dependencies: 103 + "@babel/helper-regex" "^7.4.4" 104 + regexpu-core "^4.6.0" 105 + 106 + "@babel/helper-define-map@^7.7.4": 107 + version "7.7.4" 108 + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.4.tgz#2841bf92eb8bd9c906851546fe6b9d45e162f176" 109 + integrity sha512-v5LorqOa0nVQUvAUTUF3KPastvUt/HzByXNamKQ6RdJRTV7j8rLL+WB5C/MzzWAwOomxDhYFb1wLLxHqox86lg== 102 110 dependencies: 103 - "@babel/helper-function-name" "^7.1.0" 104 - "@babel/types" "^7.4.4" 105 - lodash "^4.17.11" 111 + "@babel/helper-function-name" "^7.7.4" 112 + "@babel/types" "^7.7.4" 113 + lodash "^4.17.13" 106 114 107 - "@babel/helper-explode-assignable-expression@^7.1.0": 108 - version "7.1.0" 109 - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" 110 - integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== 115 + "@babel/helper-explode-assignable-expression@^7.7.4": 116 + version "7.7.4" 117 + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.4.tgz#fa700878e008d85dc51ba43e9fb835cddfe05c84" 118 + integrity sha512-2/SicuFrNSXsZNBxe5UGdLr+HZg+raWBLE9vC98bdYOKX/U6PY0mdGlYUJdtTDPSU0Lw0PNbKKDpwYHJLn2jLg== 111 119 dependencies: 112 - "@babel/traverse" "^7.1.0" 113 - "@babel/types" "^7.0.0" 120 + "@babel/traverse" "^7.7.4" 121 + "@babel/types" "^7.7.4" 114 122 115 - "@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.7.4": 123 + "@babel/helper-function-name@^7.7.4": 116 124 version "7.7.4" 117 125 resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz#ab6e041e7135d436d8f0a3eca15de5b67a341a2e" 118 126 integrity sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ== ··· 121 129 "@babel/template" "^7.7.4" 122 130 "@babel/types" "^7.7.4" 123 131 124 - "@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.7.4": 132 + "@babel/helper-get-function-arity@^7.7.4": 125 133 version "7.7.4" 126 134 resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz#cb46348d2f8808e632f0ab048172130e636005f0" 127 135 integrity sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA== 128 136 dependencies: 129 137 "@babel/types" "^7.7.4" 130 138 131 - "@babel/helper-hoist-variables@^7.4.4": 132 - version "7.4.4" 133 - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" 134 - integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== 139 + "@babel/helper-hoist-variables@^7.7.4": 140 + version "7.7.4" 141 + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.4.tgz#612384e3d823fdfaaf9fce31550fe5d4db0f3d12" 142 + integrity sha512-wQC4xyvc1Jo/FnLirL6CEgPgPCa8M74tOdjWpRhQYapz5JC7u3NYU1zCVoVAGCE3EaIP9T1A3iW0WLJ+reZlpQ== 135 143 dependencies: 136 - "@babel/types" "^7.4.4" 144 + "@babel/types" "^7.7.4" 137 145 138 - "@babel/helper-member-expression-to-functions@^7.0.0": 139 - version "7.0.0" 140 - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" 141 - integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== 146 + "@babel/helper-member-expression-to-functions@^7.7.4": 147 + version "7.7.4" 148 + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.4.tgz#356438e2569df7321a8326644d4b790d2122cb74" 149 + integrity sha512-9KcA1X2E3OjXl/ykfMMInBK+uVdfIVakVe7W7Lg3wfXUNyS3Q1HWLFRwZIjhqiCGbslummPDnmb7vIekS0C1vw== 142 150 dependencies: 143 - "@babel/types" "^7.0.0" 151 + "@babel/types" "^7.7.4" 144 152 145 - "@babel/helper-module-imports@^7.0.0": 146 - version "7.0.0" 147 - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" 148 - integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== 153 + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.7.4": 154 + version "7.7.4" 155 + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.4.tgz#e5a92529f8888bf319a6376abfbd1cebc491ad91" 156 + integrity sha512-dGcrX6K9l8258WFjyDLJwuVKxR4XZfU0/vTUgOQYWEnRD8mgr+p4d6fCUMq/ys0h4CCt/S5JhbvtyErjWouAUQ== 149 157 dependencies: 150 - "@babel/types" "^7.0.0" 158 + "@babel/types" "^7.7.4" 151 159 152 - "@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": 153 - version "7.4.4" 154 - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8" 155 - integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w== 160 + "@babel/helper-module-transforms@^7.7.4", "@babel/helper-module-transforms@^7.7.5": 161 + version "7.7.5" 162 + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.5.tgz#d044da7ffd91ec967db25cd6748f704b6b244835" 163 + integrity sha512-A7pSxyJf1gN5qXVcidwLWydjftUN878VkalhXX5iQDuGyiGK3sOrrKKHF4/A4fwHtnsotv/NipwAeLzY4KQPvw== 156 164 dependencies: 157 - "@babel/helper-module-imports" "^7.0.0" 158 - "@babel/helper-simple-access" "^7.1.0" 159 - "@babel/helper-split-export-declaration" "^7.4.4" 160 - "@babel/template" "^7.4.4" 161 - "@babel/types" "^7.4.4" 162 - lodash "^4.17.11" 165 + "@babel/helper-module-imports" "^7.7.4" 166 + "@babel/helper-simple-access" "^7.7.4" 167 + "@babel/helper-split-export-declaration" "^7.7.4" 168 + "@babel/template" "^7.7.4" 169 + "@babel/types" "^7.7.4" 170 + lodash "^4.17.13" 163 171 164 - "@babel/helper-optimise-call-expression@^7.0.0": 165 - version "7.0.0" 166 - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" 167 - integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== 172 + "@babel/helper-optimise-call-expression@^7.7.4": 173 + version "7.7.4" 174 + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.4.tgz#034af31370d2995242aa4df402c3b7794b2dcdf2" 175 + integrity sha512-VB7gWZ2fDkSuqW6b1AKXkJWO5NyNI3bFL/kK79/30moK57blr6NbH8xcl2XcKCwOmJosftWunZqfO84IGq3ZZg== 168 176 dependencies: 169 - "@babel/types" "^7.0.0" 177 + "@babel/types" "^7.7.4" 170 178 171 179 "@babel/helper-plugin-utils@^7.0.0": 172 180 version "7.0.0" ··· 180 188 dependencies: 181 189 lodash "^4.17.11" 182 190 183 - "@babel/helper-remap-async-to-generator@^7.1.0": 184 - version "7.1.0" 185 - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" 186 - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== 191 + "@babel/helper-remap-async-to-generator@^7.7.4": 192 + version "7.7.4" 193 + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.4.tgz#c68c2407350d9af0e061ed6726afb4fff16d0234" 194 + integrity sha512-Sk4xmtVdM9sA/jCI80f+KS+Md+ZHIpjuqmYPk1M7F/upHou5e4ReYmExAiu6PVe65BhJPZA2CY9x9k4BqE5klw== 187 195 dependencies: 188 - "@babel/helper-annotate-as-pure" "^7.0.0" 189 - "@babel/helper-wrap-function" "^7.1.0" 190 - "@babel/template" "^7.1.0" 191 - "@babel/traverse" "^7.1.0" 192 - "@babel/types" "^7.0.0" 196 + "@babel/helper-annotate-as-pure" "^7.7.4" 197 + "@babel/helper-wrap-function" "^7.7.4" 198 + "@babel/template" "^7.7.4" 199 + "@babel/traverse" "^7.7.4" 200 + "@babel/types" "^7.7.4" 193 201 194 - "@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.4": 195 - version "7.4.4" 196 - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27" 197 - integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg== 202 + "@babel/helper-replace-supers@^7.7.4": 203 + version "7.7.4" 204 + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.4.tgz#3c881a6a6a7571275a72d82e6107126ec9e2cdd2" 205 + integrity sha512-pP0tfgg9hsZWo5ZboYGuBn/bbYT/hdLPVSS4NMmiRJdwWhP0IznPwN9AE1JwyGsjSPLC364I0Qh5p+EPkGPNpg== 198 206 dependencies: 199 - "@babel/helper-member-expression-to-functions" "^7.0.0" 200 - "@babel/helper-optimise-call-expression" "^7.0.0" 201 - "@babel/traverse" "^7.4.4" 202 - "@babel/types" "^7.4.4" 207 + "@babel/helper-member-expression-to-functions" "^7.7.4" 208 + "@babel/helper-optimise-call-expression" "^7.7.4" 209 + "@babel/traverse" "^7.7.4" 210 + "@babel/types" "^7.7.4" 203 211 204 - "@babel/helper-simple-access@^7.1.0": 205 - version "7.1.0" 206 - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" 207 - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== 212 + "@babel/helper-simple-access@^7.7.4": 213 + version "7.7.4" 214 + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.4.tgz#a169a0adb1b5f418cfc19f22586b2ebf58a9a294" 215 + integrity sha512-zK7THeEXfan7UlWsG2A6CI/L9jVnI5+xxKZOdej39Y0YtDYKx9raHk5F2EtK9K8DHRTihYwg20ADt9S36GR78A== 208 216 dependencies: 209 - "@babel/template" "^7.1.0" 210 - "@babel/types" "^7.0.0" 217 + "@babel/template" "^7.7.4" 218 + "@babel/types" "^7.7.4" 211 219 212 - "@babel/helper-split-export-declaration@^7.4.4", "@babel/helper-split-export-declaration@^7.7.4": 220 + "@babel/helper-split-export-declaration@^7.7.4": 213 221 version "7.7.4" 214 222 resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz#57292af60443c4a3622cf74040ddc28e68336fd8" 215 223 integrity sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug== 216 224 dependencies: 217 225 "@babel/types" "^7.7.4" 218 226 219 - "@babel/helper-wrap-function@^7.1.0": 220 - version "7.2.0" 221 - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" 222 - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== 227 + "@babel/helper-wrap-function@^7.7.4": 228 + version "7.7.4" 229 + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz#37ab7fed5150e22d9d7266e830072c0cdd8baace" 230 + integrity sha512-VsfzZt6wmsocOaVU0OokwrIytHND55yvyT4BPB9AIIgwr8+x7617hetdJTsuGwygN5RC6mxA9EJztTjuwm2ofg== 223 231 dependencies: 224 - "@babel/helper-function-name" "^7.1.0" 225 - "@babel/template" "^7.1.0" 226 - "@babel/traverse" "^7.1.0" 227 - "@babel/types" "^7.2.0" 232 + "@babel/helper-function-name" "^7.7.4" 233 + "@babel/template" "^7.7.4" 234 + "@babel/traverse" "^7.7.4" 235 + "@babel/types" "^7.7.4" 228 236 229 237 "@babel/helpers@^7.7.4": 230 238 version "7.7.4" ··· 244 252 esutils "^2.0.2" 245 253 js-tokens "^4.0.0" 246 254 247 - "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.4", "@babel/parser@^7.7.5": 248 - version "7.7.5" 249 - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.5.tgz#cbf45321619ac12d83363fcf9c94bb67fa646d71" 250 - integrity sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig== 255 + "@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.4", "@babel/parser@^7.7.5", "@babel/parser@^7.7.7": 256 + version "7.7.7" 257 + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595419cf92d811316d5b715a53ff38b4937" 258 + integrity sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw== 251 259 252 - "@babel/plugin-proposal-async-generator-functions@^7.2.0": 253 - version "7.2.0" 254 - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" 255 - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== 260 + "@babel/plugin-proposal-async-generator-functions@^7.7.4": 261 + version "7.7.4" 262 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.4.tgz#0351c5ac0a9e927845fffd5b82af476947b7ce6d" 263 + integrity sha512-1ypyZvGRXriY/QP668+s8sFr2mqinhkRDMPSQLNghCQE+GAkFtp+wkHVvg2+Hdki8gwP+NFzJBJ/N1BfzCCDEw== 256 264 dependencies: 257 265 "@babel/helper-plugin-utils" "^7.0.0" 258 - "@babel/helper-remap-async-to-generator" "^7.1.0" 259 - "@babel/plugin-syntax-async-generators" "^7.2.0" 266 + "@babel/helper-remap-async-to-generator" "^7.7.4" 267 + "@babel/plugin-syntax-async-generators" "^7.7.4" 260 268 261 - "@babel/plugin-proposal-class-properties@^7.0.0": 262 - version "7.4.4" 263 - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz#93a6486eed86d53452ab9bab35e368e9461198ce" 264 - integrity sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg== 269 + "@babel/plugin-proposal-class-properties@^7.7.4": 270 + version "7.7.4" 271 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.4.tgz#2f964f0cb18b948450362742e33e15211e77c2ba" 272 + integrity sha512-EcuXeV4Hv1X3+Q1TsuOmyyxeTRiSqurGJ26+I/FW1WbymmRRapVORm6x1Zl3iDIHyRxEs+VXWp6qnlcfcJSbbw== 265 273 dependencies: 266 - "@babel/helper-create-class-features-plugin" "^7.4.4" 274 + "@babel/helper-create-class-features-plugin" "^7.7.4" 267 275 "@babel/helper-plugin-utils" "^7.0.0" 268 276 269 - "@babel/plugin-proposal-json-strings@^7.2.0": 270 - version "7.2.0" 271 - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" 272 - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== 277 + "@babel/plugin-proposal-dynamic-import@^7.7.4": 278 + version "7.7.4" 279 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.4.tgz#dde64a7f127691758cbfed6cf70de0fa5879d52d" 280 + integrity sha512-StH+nGAdO6qDB1l8sZ5UBV8AC3F2VW2I8Vfld73TMKyptMU9DY5YsJAS8U81+vEtxcH3Y/La0wG0btDrhpnhjQ== 273 281 dependencies: 274 282 "@babel/helper-plugin-utils" "^7.0.0" 275 - "@babel/plugin-syntax-json-strings" "^7.2.0" 283 + "@babel/plugin-syntax-dynamic-import" "^7.7.4" 276 284 277 - "@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.4.3", "@babel/plugin-proposal-object-rest-spread@^7.4.4": 278 - version "7.4.4" 279 - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005" 280 - integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g== 285 + "@babel/plugin-proposal-json-strings@^7.7.4": 286 + version "7.7.4" 287 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.7.4.tgz#7700a6bfda771d8dc81973249eac416c6b4c697d" 288 + integrity sha512-wQvt3akcBTfLU/wYoqm/ws7YOAQKu8EVJEvHip/mzkNtjaclQoCCIqKXFP5/eyfnfbQCDV3OLRIK3mIVyXuZlw== 281 289 dependencies: 282 290 "@babel/helper-plugin-utils" "^7.0.0" 283 - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" 291 + "@babel/plugin-syntax-json-strings" "^7.7.4" 284 292 285 - "@babel/plugin-proposal-optional-catch-binding@^7.2.0": 286 - version "7.2.0" 287 - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" 288 - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== 293 + "@babel/plugin-proposal-nullish-coalescing-operator@^7.7.4": 294 + version "7.7.4" 295 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.7.4.tgz#7db302c83bc30caa89e38fee935635ef6bd11c28" 296 + integrity sha512-TbYHmr1Gl1UC7Vo2HVuj/Naci5BEGNZ0AJhzqD2Vpr6QPFWpUmBRLrIDjedzx7/CShq0bRDS2gI4FIs77VHLVQ== 289 297 dependencies: 290 298 "@babel/helper-plugin-utils" "^7.0.0" 291 - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" 299 + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.7.4" 292 300 293 - "@babel/plugin-proposal-unicode-property-regex@^7.4.4": 294 - version "7.4.4" 295 - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" 296 - integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== 301 + "@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.4.3", "@babel/plugin-proposal-object-rest-spread@^7.7.7": 302 + version "7.7.7" 303 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.7.7.tgz#9f27075004ab99be08c5c1bd653a2985813cb370" 304 + integrity sha512-3qp9I8lelgzNedI3hrhkvhaEYree6+WHnyA/q4Dza9z7iEIs1eyhWyJnetk3jJ69RT0AT4G0UhEGwyGFJ7GUuQ== 297 305 dependencies: 298 306 "@babel/helper-plugin-utils" "^7.0.0" 299 - "@babel/helper-regex" "^7.4.4" 300 - regexpu-core "^4.5.4" 307 + "@babel/plugin-syntax-object-rest-spread" "^7.7.4" 301 308 302 - "@babel/plugin-syntax-async-generators@^7.2.0": 303 - version "7.2.0" 304 - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" 305 - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== 309 + "@babel/plugin-proposal-optional-catch-binding@^7.7.4": 310 + version "7.7.4" 311 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.7.4.tgz#ec21e8aeb09ec6711bc0a39ca49520abee1de379" 312 + integrity sha512-DyM7U2bnsQerCQ+sejcTNZh8KQEUuC3ufzdnVnSiUv/qoGJp2Z3hanKL18KDhsBT5Wj6a7CMT5mdyCNJsEaA9w== 306 313 dependencies: 307 314 "@babel/helper-plugin-utils" "^7.0.0" 315 + "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" 308 316 309 - "@babel/plugin-syntax-class-properties@^7.0.0": 310 - version "7.2.0" 311 - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.2.0.tgz#23b3b7b9bcdabd73672a9149f728cd3be6214812" 312 - integrity sha512-UxYaGXYQ7rrKJS/PxIKRkv3exi05oH7rokBAsmCSsCxz1sVPZ7Fu6FzKoGgUvmY+0YgSkYHgUoCh5R5bCNBQlw== 317 + "@babel/plugin-proposal-optional-chaining@^7.7.5": 318 + version "7.7.5" 319 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.7.5.tgz#f0835f044cef85b31071a924010a2a390add11d4" 320 + integrity sha512-sOwFqT8JSchtJeDD+CjmWCaiFoLxY4Ps7NjvwHC/U7l4e9i5pTRNt8nDMIFSOUL+ncFbYSwruHM8WknYItWdXw== 313 321 dependencies: 314 322 "@babel/helper-plugin-utils" "^7.0.0" 323 + "@babel/plugin-syntax-optional-chaining" "^7.7.4" 315 324 316 - "@babel/plugin-syntax-dynamic-import@^7.0.0": 317 - version "7.2.0" 318 - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" 319 - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== 325 + "@babel/plugin-proposal-unicode-property-regex@^7.7.7": 326 + version "7.7.7" 327 + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.7.tgz#433fa9dac64f953c12578b29633f456b68831c4e" 328 + integrity sha512-80PbkKyORBUVm1fbTLrHpYdJxMThzM1UqFGh0ALEhO9TYbG86Ah9zQYAB/84axz2vcxefDLdZwWwZNlYARlu9w== 320 329 dependencies: 330 + "@babel/helper-create-regexp-features-plugin" "^7.7.4" 321 331 "@babel/helper-plugin-utils" "^7.0.0" 322 332 323 - "@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.2.0": 324 - version "7.2.0" 325 - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" 326 - integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== 333 + "@babel/plugin-syntax-async-generators@^7.7.4": 334 + version "7.7.4" 335 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.7.4.tgz#331aaf310a10c80c44a66b238b6e49132bd3c889" 336 + integrity sha512-Li4+EjSpBgxcsmeEF8IFcfV/+yJGxHXDirDkEoyFjumuwbmfCVHUt0HuowD/iGM7OhIRyXJH9YXxqiH6N815+g== 327 337 dependencies: 328 338 "@babel/helper-plugin-utils" "^7.0.0" 329 339 330 - "@babel/plugin-syntax-json-strings@^7.2.0": 331 - version "7.2.0" 332 - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" 333 - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== 340 + "@babel/plugin-syntax-dynamic-import@^7.7.4": 341 + version "7.7.4" 342 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.7.4.tgz#29ca3b4415abfe4a5ec381e903862ad1a54c3aec" 343 + integrity sha512-jHQW0vbRGvwQNgyVxwDh4yuXu4bH1f5/EICJLAhl1SblLs2CDhrsmCk+v5XLdE9wxtAFRyxx+P//Iw+a5L/tTg== 334 344 dependencies: 335 345 "@babel/helper-plugin-utils" "^7.0.0" 336 346 337 - "@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0": 338 - version "7.2.0" 339 - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" 340 - integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== 347 + "@babel/plugin-syntax-json-strings@^7.7.4": 348 + version "7.7.4" 349 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.7.4.tgz#86e63f7d2e22f9e27129ac4e83ea989a382e86cc" 350 + integrity sha512-QpGupahTQW1mHRXddMG5srgpHWqRLwJnJZKXTigB9RPFCCGbDGCgBeM/iC82ICXp414WeYx/tD54w7M2qRqTMg== 341 351 dependencies: 342 352 "@babel/helper-plugin-utils" "^7.0.0" 343 353 344 - "@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0": 345 - version "7.2.0" 346 - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" 347 - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== 354 + "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.7.4": 355 + version "7.7.4" 356 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.7.4.tgz#dab2b56a36fb6c3c222a1fbc71f7bf97f327a9ec" 357 + integrity sha512-wuy6fiMe9y7HeZBWXYCGt2RGxZOj0BImZ9EyXJVnVGBKO/Br592rbR3rtIQn0eQhAk9vqaKP5n8tVqEFBQMfLg== 348 358 dependencies: 349 359 "@babel/helper-plugin-utils" "^7.0.0" 350 360 351 - "@babel/plugin-syntax-optional-catch-binding@^7.2.0": 352 - version "7.2.0" 353 - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" 354 - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== 361 + "@babel/plugin-syntax-nullish-coalescing-operator@^7.7.4": 362 + version "7.7.4" 363 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.7.4.tgz#e53b751d0c3061b1ba3089242524b65a7a9da12b" 364 + integrity sha512-XKh/yIRPiQTOeBg0QJjEus5qiSKucKAiApNtO1psqG7D17xmE+X2i5ZqBEuSvo0HRuyPaKaSN/Gy+Ha9KFQolw== 355 365 dependencies: 356 366 "@babel/helper-plugin-utils" "^7.0.0" 357 367 358 - "@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.2.0": 359 - version "7.2.0" 360 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" 361 - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== 368 + "@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0", "@babel/plugin-syntax-object-rest-spread@^7.7.4": 369 + version "7.7.4" 370 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.7.4.tgz#47cf220d19d6d0d7b154304701f468fc1cc6ff46" 371 + integrity sha512-mObR+r+KZq0XhRVS2BrBKBpr5jqrqzlPvS9C9vuOf5ilSwzloAl7RPWLrgKdWS6IreaVrjHxTjtyqFiOisaCwg== 362 372 dependencies: 363 373 "@babel/helper-plugin-utils" "^7.0.0" 364 374 365 - "@babel/plugin-transform-async-to-generator@^7.4.4": 366 - version "7.4.4" 367 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894" 368 - integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA== 375 + "@babel/plugin-syntax-optional-catch-binding@^7.7.4": 376 + version "7.7.4" 377 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.7.4.tgz#a3e38f59f4b6233867b4a92dcb0ee05b2c334aa6" 378 + integrity sha512-4ZSuzWgFxqHRE31Glu+fEr/MirNZOMYmD/0BhBWyLyOOQz/gTAl7QmWm2hX1QxEIXsr2vkdlwxIzTyiYRC4xcQ== 369 379 dependencies: 370 - "@babel/helper-module-imports" "^7.0.0" 371 380 "@babel/helper-plugin-utils" "^7.0.0" 372 - "@babel/helper-remap-async-to-generator" "^7.1.0" 373 381 374 - "@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.2.0": 375 - version "7.2.0" 376 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" 377 - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== 382 + "@babel/plugin-syntax-optional-chaining@^7.7.4": 383 + version "7.7.4" 384 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.7.4.tgz#c91fdde6de85d2eb8906daea7b21944c3610c901" 385 + integrity sha512-2MqYD5WjZSbJdUagnJvIdSfkb/ucOC9/1fRJxm7GAxY6YQLWlUvkfxoNbUPcPLHJyetKUDQ4+yyuUyAoc0HriA== 378 386 dependencies: 379 387 "@babel/helper-plugin-utils" "^7.0.0" 380 388 381 - "@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.4.4": 382 - version "7.4.4" 383 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d" 384 - integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA== 389 + "@babel/plugin-syntax-top-level-await@^7.7.4": 390 + version "7.7.4" 391 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.4.tgz#bd7d8fa7b9fee793a36e4027fd6dd1aa32f946da" 392 + integrity sha512-wdsOw0MvkL1UIgiQ/IFr3ETcfv1xb8RMM0H9wbiDyLaJFyiDg5oZvDLCXosIXmFeIlweML5iOBXAkqddkYNizg== 385 393 dependencies: 386 394 "@babel/helper-plugin-utils" "^7.0.0" 387 - lodash "^4.17.11" 388 395 389 - "@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.4.4": 390 - version "7.4.4" 391 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6" 392 - integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw== 396 + "@babel/plugin-syntax-typescript@^7.7.4": 397 + version "7.7.4" 398 + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.7.4.tgz#5d037ffa10f3b25a16f32570ebbe7a8c2efa304b" 399 + integrity sha512-77blgY18Hud4NM1ggTA8xVT/dBENQf17OpiToSa2jSmEY3fWXD2jwrdVlO4kq5yzUTeF15WSQ6b4fByNvJcjpQ== 393 400 dependencies: 394 - "@babel/helper-annotate-as-pure" "^7.0.0" 395 - "@babel/helper-define-map" "^7.4.4" 396 - "@babel/helper-function-name" "^7.1.0" 397 - "@babel/helper-optimise-call-expression" "^7.0.0" 398 401 "@babel/helper-plugin-utils" "^7.0.0" 399 - "@babel/helper-replace-supers" "^7.4.4" 400 - "@babel/helper-split-export-declaration" "^7.4.4" 401 - globals "^11.1.0" 402 402 403 - "@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.2.0": 404 - version "7.2.0" 405 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" 406 - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== 403 + "@babel/plugin-transform-arrow-functions@^7.7.4": 404 + version "7.7.4" 405 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.7.4.tgz#76309bd578addd8aee3b379d809c802305a98a12" 406 + integrity sha512-zUXy3e8jBNPiffmqkHRNDdZM2r8DWhCB7HhcoyZjiK1TxYEluLHAvQuYnTT+ARqRpabWqy/NHkO6e3MsYB5YfA== 407 407 dependencies: 408 408 "@babel/helper-plugin-utils" "^7.0.0" 409 409 410 - "@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.4.4": 411 - version "7.4.4" 412 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f" 413 - integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ== 410 + "@babel/plugin-transform-async-to-generator@^7.7.4": 411 + version "7.7.4" 412 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.4.tgz#694cbeae6d613a34ef0292713fa42fb45c4470ba" 413 + integrity sha512-zpUTZphp5nHokuy8yLlyafxCJ0rSlFoSHypTUWgpdwoDXWQcseaect7cJ8Ppk6nunOM6+5rPMkod4OYKPR5MUg== 414 414 dependencies: 415 + "@babel/helper-module-imports" "^7.7.4" 415 416 "@babel/helper-plugin-utils" "^7.0.0" 417 + "@babel/helper-remap-async-to-generator" "^7.7.4" 416 418 417 - "@babel/plugin-transform-dotall-regex@^7.4.4": 418 - version "7.4.4" 419 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" 420 - integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== 419 + "@babel/plugin-transform-block-scoped-functions@^7.7.4": 420 + version "7.7.4" 421 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.7.4.tgz#d0d9d5c269c78eaea76227ace214b8d01e4d837b" 422 + integrity sha512-kqtQzwtKcpPclHYjLK//3lH8OFsCDuDJBaFhVwf8kqdnF6MN4l618UDlcA7TfRs3FayrHj+svYnSX8MC9zmUyQ== 421 423 dependencies: 422 424 "@babel/helper-plugin-utils" "^7.0.0" 423 - "@babel/helper-regex" "^7.4.4" 424 - regexpu-core "^4.5.4" 425 425 426 - "@babel/plugin-transform-duplicate-keys@^7.2.0": 427 - version "7.2.0" 428 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" 429 - integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== 426 + "@babel/plugin-transform-block-scoping@^7.7.4": 427 + version "7.7.4" 428 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.7.4.tgz#200aad0dcd6bb80372f94d9e628ea062c58bf224" 429 + integrity sha512-2VBe9u0G+fDt9B5OV5DQH4KBf5DoiNkwFKOz0TCvBWvdAN2rOykCTkrL+jTLxfCAm76l9Qo5OqL7HBOx2dWggg== 430 430 dependencies: 431 431 "@babel/helper-plugin-utils" "^7.0.0" 432 + lodash "^4.17.13" 432 433 433 - "@babel/plugin-transform-exponentiation-operator@^7.2.0": 434 - version "7.2.0" 435 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" 436 - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== 434 + "@babel/plugin-transform-classes@^7.7.4": 435 + version "7.7.4" 436 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.4.tgz#c92c14be0a1399e15df72667067a8f510c9400ec" 437 + integrity sha512-sK1mjWat7K+buWRuImEzjNf68qrKcrddtpQo3swi9j7dUcG6y6R6+Di039QN2bD1dykeswlagupEmpOatFHHUg== 437 438 dependencies: 438 - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" 439 + "@babel/helper-annotate-as-pure" "^7.7.4" 440 + "@babel/helper-define-map" "^7.7.4" 441 + "@babel/helper-function-name" "^7.7.4" 442 + "@babel/helper-optimise-call-expression" "^7.7.4" 439 443 "@babel/helper-plugin-utils" "^7.0.0" 444 + "@babel/helper-replace-supers" "^7.7.4" 445 + "@babel/helper-split-export-declaration" "^7.7.4" 446 + globals "^11.1.0" 440 447 441 - "@babel/plugin-transform-flow-strip-types@^7.0.0": 442 - version "7.4.4" 443 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.4.4.tgz#d267a081f49a8705fc9146de0768c6b58dccd8f7" 444 - integrity sha512-WyVedfeEIILYEaWGAUWzVNyqG4sfsNooMhXWsu/YzOvVGcsnPb5PguysjJqI3t3qiaYj0BR8T2f5njdjTGe44Q== 448 + "@babel/plugin-transform-computed-properties@^7.7.4": 449 + version "7.7.4" 450 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.7.4.tgz#e856c1628d3238ffe12d668eb42559f79a81910d" 451 + integrity sha512-bSNsOsZnlpLLyQew35rl4Fma3yKWqK3ImWMSC/Nc+6nGjC9s5NFWAer1YQ899/6s9HxO2zQC1WoFNfkOqRkqRQ== 445 452 dependencies: 446 453 "@babel/helper-plugin-utils" "^7.0.0" 447 - "@babel/plugin-syntax-flow" "^7.2.0" 448 454 449 - "@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.4.4": 450 - version "7.4.4" 451 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" 452 - integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== 455 + "@babel/plugin-transform-destructuring@^7.7.4": 456 + version "7.7.4" 457 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.7.4.tgz#2b713729e5054a1135097b6a67da1b6fe8789267" 458 + integrity sha512-4jFMXI1Cu2aXbcXXl8Lr6YubCn6Oc7k9lLsu8v61TZh+1jny2BWmdtvY9zSUlLdGUvcy9DMAWyZEOqjsbeg/wA== 453 459 dependencies: 454 460 "@babel/helper-plugin-utils" "^7.0.0" 455 461 456 - "@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.4.4": 457 - version "7.4.4" 458 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" 459 - integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== 462 + "@babel/plugin-transform-dotall-regex@^7.7.7": 463 + version "7.7.7" 464 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.7.tgz#3e9713f1b69f339e87fa796b097d73ded16b937b" 465 + integrity sha512-b4in+YlTeE/QmTgrllnb3bHA0HntYvjz8O3Mcbx75UBPJA2xhb5A8nle498VhxSXJHQefjtQxpnLPehDJ4TRlg== 460 466 dependencies: 461 - "@babel/helper-function-name" "^7.1.0" 467 + "@babel/helper-create-regexp-features-plugin" "^7.7.4" 462 468 "@babel/helper-plugin-utils" "^7.0.0" 463 469 464 - "@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.2.0": 465 - version "7.2.0" 466 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" 467 - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== 470 + "@babel/plugin-transform-duplicate-keys@^7.7.4": 471 + version "7.7.4" 472 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.7.4.tgz#3d21731a42e3f598a73835299dd0169c3b90ac91" 473 + integrity sha512-g1y4/G6xGWMD85Tlft5XedGaZBCIVN+/P0bs6eabmcPP9egFleMAo65OOjlhcz1njpwagyY3t0nsQC9oTFegJA== 468 474 dependencies: 469 475 "@babel/helper-plugin-utils" "^7.0.0" 470 476 471 - "@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.2.0": 472 - version "7.2.0" 473 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" 474 - integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== 477 + "@babel/plugin-transform-exponentiation-operator@^7.7.4": 478 + version "7.7.4" 479 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.7.4.tgz#dd30c0191e3a1ba19bcc7e389bdfddc0729d5db9" 480 + integrity sha512-MCqiLfCKm6KEA1dglf6Uqq1ElDIZwFuzz1WH5mTf8k2uQSxEJMbOIEh7IZv7uichr7PMfi5YVSrr1vz+ipp7AQ== 475 481 dependencies: 482 + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.7.4" 476 483 "@babel/helper-plugin-utils" "^7.0.0" 477 484 478 - "@babel/plugin-transform-modules-amd@^7.2.0": 479 - version "7.2.0" 480 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" 481 - integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== 485 + "@babel/plugin-transform-for-of@^7.7.4": 486 + version "7.7.4" 487 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.7.4.tgz#248800e3a5e507b1f103d8b4ca998e77c63932bc" 488 + integrity sha512-zZ1fD1B8keYtEcKF+M1TROfeHTKnijcVQm0yO/Yu1f7qoDoxEIc/+GX6Go430Bg84eM/xwPFp0+h4EbZg7epAA== 482 489 dependencies: 483 - "@babel/helper-module-transforms" "^7.1.0" 484 490 "@babel/helper-plugin-utils" "^7.0.0" 485 491 486 - "@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.4.4": 487 - version "7.4.4" 488 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e" 489 - integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw== 492 + "@babel/plugin-transform-function-name@^7.7.4": 493 + version "7.7.4" 494 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.4.tgz#75a6d3303d50db638ff8b5385d12451c865025b1" 495 + integrity sha512-E/x09TvjHNhsULs2IusN+aJNRV5zKwxu1cpirZyRPw+FyyIKEHPXTsadj48bVpc1R5Qq1B5ZkzumuFLytnbT6g== 490 496 dependencies: 491 - "@babel/helper-module-transforms" "^7.4.4" 497 + "@babel/helper-function-name" "^7.7.4" 492 498 "@babel/helper-plugin-utils" "^7.0.0" 493 - "@babel/helper-simple-access" "^7.1.0" 494 499 495 - "@babel/plugin-transform-modules-systemjs@^7.4.4": 496 - version "7.4.4" 497 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405" 498 - integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ== 500 + "@babel/plugin-transform-literals@^7.7.4": 501 + version "7.7.4" 502 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.7.4.tgz#27fe87d2b5017a2a5a34d1c41a6b9f6a6262643e" 503 + integrity sha512-X2MSV7LfJFm4aZfxd0yLVFrEXAgPqYoDG53Br/tCKiKYfX0MjVjQeWPIhPHHsCqzwQANq+FLN786fF5rgLS+gw== 499 504 dependencies: 500 - "@babel/helper-hoist-variables" "^7.4.4" 501 505 "@babel/helper-plugin-utils" "^7.0.0" 502 506 503 - "@babel/plugin-transform-modules-umd@^7.2.0": 504 - version "7.2.0" 505 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" 506 - integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== 507 + "@babel/plugin-transform-member-expression-literals@^7.7.4": 508 + version "7.7.4" 509 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.7.4.tgz#aee127f2f3339fc34ce5e3055d7ffbf7aa26f19a" 510 + integrity sha512-9VMwMO7i69LHTesL0RdGy93JU6a+qOPuvB4F4d0kR0zyVjJRVJRaoaGjhtki6SzQUu8yen/vxPKN6CWnCUw6bA== 507 511 dependencies: 508 - "@babel/helper-module-transforms" "^7.1.0" 509 512 "@babel/helper-plugin-utils" "^7.0.0" 510 513 511 - "@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": 512 - version "7.4.5" 513 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" 514 - integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== 514 + "@babel/plugin-transform-modules-amd@^7.7.5": 515 + version "7.7.5" 516 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.7.5.tgz#39e0fb717224b59475b306402bb8eedab01e729c" 517 + integrity sha512-CT57FG4A2ZUNU1v+HdvDSDrjNWBrtCmSH6YbbgN3Lrf0Di/q/lWRxZrE72p3+HCCz9UjfZOEBdphgC0nzOS6DQ== 515 518 dependencies: 516 - regexp-tree "^0.1.6" 519 + "@babel/helper-module-transforms" "^7.7.5" 520 + "@babel/helper-plugin-utils" "^7.0.0" 521 + babel-plugin-dynamic-import-node "^2.3.0" 517 522 518 - "@babel/plugin-transform-new-target@^7.4.4": 519 - version "7.4.4" 520 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" 521 - integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== 523 + "@babel/plugin-transform-modules-commonjs@^7.7.5": 524 + version "7.7.5" 525 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.5.tgz#1d27f5eb0bcf7543e774950e5b2fa782e637b345" 526 + integrity sha512-9Cq4zTFExwFhQI6MT1aFxgqhIsMWQWDVwOgLzl7PTWJHsNaqFvklAU+Oz6AQLAS0dJKTwZSOCo20INwktxpi3Q== 522 527 dependencies: 528 + "@babel/helper-module-transforms" "^7.7.5" 523 529 "@babel/helper-plugin-utils" "^7.0.0" 530 + "@babel/helper-simple-access" "^7.7.4" 531 + babel-plugin-dynamic-import-node "^2.3.0" 524 532 525 - "@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.2.0": 526 - version "7.2.0" 527 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" 528 - integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== 533 + "@babel/plugin-transform-modules-systemjs@^7.7.4": 534 + version "7.7.4" 535 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.4.tgz#cd98152339d3e763dfe838b7d4273edaf520bb30" 536 + integrity sha512-y2c96hmcsUi6LrMqvmNDPBBiGCiQu0aYqpHatVVu6kD4mFEXKjyNxd/drc18XXAf9dv7UXjrZwBVmTTGaGP8iw== 529 537 dependencies: 538 + "@babel/helper-hoist-variables" "^7.7.4" 530 539 "@babel/helper-plugin-utils" "^7.0.0" 531 - "@babel/helper-replace-supers" "^7.1.0" 540 + babel-plugin-dynamic-import-node "^2.3.0" 532 541 533 - "@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.4.4": 534 - version "7.4.4" 535 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" 536 - integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== 542 + "@babel/plugin-transform-modules-umd@^7.7.4": 543 + version "7.7.4" 544 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.4.tgz#1027c355a118de0aae9fee00ad7813c584d9061f" 545 + integrity sha512-u2B8TIi0qZI4j8q4C51ktfO7E3cQ0qnaXFI1/OXITordD40tt17g/sXqgNNCcMTcBFKrUPcGDx+TBJuZxLx7tw== 537 546 dependencies: 538 - "@babel/helper-call-delegate" "^7.4.4" 539 - "@babel/helper-get-function-arity" "^7.0.0" 547 + "@babel/helper-module-transforms" "^7.7.4" 540 548 "@babel/helper-plugin-utils" "^7.0.0" 541 549 542 - "@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.2.0": 543 - version "7.2.0" 544 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" 545 - integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== 550 + "@babel/plugin-transform-named-capturing-groups-regex@^7.7.4": 551 + version "7.7.4" 552 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.4.tgz#fb3bcc4ee4198e7385805007373d6b6f42c98220" 553 + integrity sha512-jBUkiqLKvUWpv9GLSuHUFYdmHg0ujC1JEYoZUfeOOfNydZXp1sXObgyPatpcwjWgsdBGsagWW0cdJpX/DO2jMw== 554 + dependencies: 555 + "@babel/helper-create-regexp-features-plugin" "^7.7.4" 556 + 557 + "@babel/plugin-transform-new-target@^7.7.4": 558 + version "7.7.4" 559 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.7.4.tgz#4a0753d2d60639437be07b592a9e58ee00720167" 560 + integrity sha512-CnPRiNtOG1vRodnsyGX37bHQleHE14B9dnnlgSeEs3ek3fHN1A1SScglTCg1sfbe7sRQ2BUcpgpTpWSfMKz3gg== 546 561 dependencies: 547 562 "@babel/helper-plugin-utils" "^7.0.0" 548 563 549 - "@babel/plugin-transform-react-display-name@^7.0.0": 550 - version "7.2.0" 551 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" 552 - integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== 564 + "@babel/plugin-transform-object-super@^7.7.4": 565 + version "7.7.4" 566 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.7.4.tgz#48488937a2d586c0148451bf51af9d7dda567262" 567 + integrity sha512-ho+dAEhC2aRnff2JCA0SAK7V2R62zJd/7dmtoe7MHcso4C2mS+vZjn1Pb1pCVZvJs1mgsvv5+7sT+m3Bysb6eg== 553 568 dependencies: 554 569 "@babel/helper-plugin-utils" "^7.0.0" 570 + "@babel/helper-replace-supers" "^7.7.4" 555 571 556 - "@babel/plugin-transform-react-jsx-self@^7.0.0": 557 - version "7.2.0" 558 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" 559 - integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== 572 + "@babel/plugin-transform-parameters@^7.7.7": 573 + version "7.7.7" 574 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.7.7.tgz#7a884b2460164dc5f194f668332736584c760007" 575 + integrity sha512-OhGSrf9ZBrr1fw84oFXj5hgi8Nmg+E2w5L7NhnG0lPvpDtqd7dbyilM2/vR8CKbJ907RyxPh2kj6sBCSSfI9Ew== 576 + dependencies: 577 + "@babel/helper-call-delegate" "^7.7.4" 578 + "@babel/helper-get-function-arity" "^7.7.4" 579 + "@babel/helper-plugin-utils" "^7.0.0" 580 + 581 + "@babel/plugin-transform-property-literals@^7.7.4": 582 + version "7.7.4" 583 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.7.4.tgz#2388d6505ef89b266103f450f9167e6bd73f98c2" 584 + integrity sha512-MatJhlC4iHsIskWYyawl53KuHrt+kALSADLQQ/HkhTjX954fkxIEh4q5slL4oRAnsm/eDoZ4q0CIZpcqBuxhJQ== 585 + dependencies: 586 + "@babel/helper-plugin-utils" "^7.0.0" 587 + 588 + "@babel/plugin-transform-react-display-name@^7.7.4": 589 + version "7.7.4" 590 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.7.4.tgz#9f2b80b14ebc97eef4a9b29b612c58ed9c0d10dd" 591 + integrity sha512-sBbIvqYkthai0X0vkD2xsAwluBp+LtNHH+/V4a5ydifmTtb8KOVOlrMIk/MYmIc4uTYDnjZUHQildYNo36SRJw== 592 + dependencies: 593 + "@babel/helper-plugin-utils" "^7.0.0" 594 + 595 + "@babel/plugin-transform-react-jsx-self@^7.7.4": 596 + version "7.7.4" 597 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.7.4.tgz#81b8fbfd14b2215e8f1c2c3adfba266127b0231c" 598 + integrity sha512-PWYjSfqrO273mc1pKCRTIJXyqfc9vWYBax88yIhQb+bpw3XChVC7VWS4VwRVs63wFHKxizvGSd00XEr+YB9Q2A== 560 599 dependencies: 561 600 "@babel/helper-plugin-utils" "^7.0.0" 562 - "@babel/plugin-syntax-jsx" "^7.2.0" 601 + "@babel/plugin-syntax-jsx" "^7.7.4" 563 602 564 - "@babel/plugin-transform-react-jsx-source@^7.0.0": 565 - version "7.2.0" 566 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f" 567 - integrity sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g== 603 + "@babel/plugin-transform-react-jsx-source@^7.7.4": 604 + version "7.7.4" 605 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.7.4.tgz#8994b1bf6014b133f5a46d3b7d1ee5f5e3e72c10" 606 + integrity sha512-5ZU9FnPhqtHsOXxutRtXZAzoEJwDaP32QcobbMP1/qt7NYcsCNK8XgzJcJfoEr/ZnzVvUNInNjIW22Z6I8p9mg== 568 607 dependencies: 569 608 "@babel/helper-plugin-utils" "^7.0.0" 570 - "@babel/plugin-syntax-jsx" "^7.2.0" 609 + "@babel/plugin-syntax-jsx" "^7.7.4" 571 610 572 - "@babel/plugin-transform-react-jsx@^7.0.0": 573 - version "7.3.0" 574 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" 575 - integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== 611 + "@babel/plugin-transform-react-jsx@^7.7.4": 612 + version "7.7.7" 613 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.7.tgz#5cbaa7445b4a09f774029f3cc7bb448ff3122a5d" 614 + integrity sha512-SlPjWPbva2+7/ZJbGcoqjl4LsQaLpKEzxW9hcxU7675s24JmdotJOSJ4cgAbV82W3FcZpHIGmRZIlUL8ayMvjw== 576 615 dependencies: 577 - "@babel/helper-builder-react-jsx" "^7.3.0" 616 + "@babel/helper-builder-react-jsx" "^7.7.4" 578 617 "@babel/helper-plugin-utils" "^7.0.0" 579 - "@babel/plugin-syntax-jsx" "^7.2.0" 618 + "@babel/plugin-syntax-jsx" "^7.7.4" 580 619 581 - "@babel/plugin-transform-regenerator@^7.4.5": 582 - version "7.4.5" 583 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" 584 - integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== 620 + "@babel/plugin-transform-regenerator@^7.7.5": 621 + version "7.7.5" 622 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.5.tgz#3a8757ee1a2780f390e89f246065ecf59c26fce9" 623 + integrity sha512-/8I8tPvX2FkuEyWbjRCt4qTAgZK0DVy8QRguhA524UH48RfGJy94On2ri+dCuwOpcerPRl9O4ebQkRcVzIaGBw== 585 624 dependencies: 586 625 regenerator-transform "^0.14.0" 587 626 588 - "@babel/plugin-transform-reserved-words@^7.2.0": 589 - version "7.2.0" 590 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" 591 - integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== 627 + "@babel/plugin-transform-reserved-words@^7.7.4": 628 + version "7.7.4" 629 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.7.4.tgz#6a7cf123ad175bb5c69aec8f6f0770387ed3f1eb" 630 + integrity sha512-OrPiUB5s5XvkCO1lS7D8ZtHcswIC57j62acAnJZKqGGnHP+TIc/ljQSrgdX/QyOTdEK5COAhuc820Hi1q2UgLQ== 592 631 dependencies: 593 632 "@babel/helper-plugin-utils" "^7.0.0" 594 633 595 - "@babel/plugin-transform-runtime@^7.0.0": 596 - version "7.4.4" 597 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.4.4.tgz#a50f5d16e9c3a4ac18a1a9f9803c107c380bce08" 598 - integrity sha512-aMVojEjPszvau3NRg+TIH14ynZLvPewH4xhlCW1w6A3rkxTS1m4uwzRclYR9oS+rl/dr+kT+pzbfHuAWP/lc7Q== 634 + "@babel/plugin-transform-runtime@^7.7.6": 635 + version "7.7.6" 636 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.7.6.tgz#4f2b548c88922fb98ec1c242afd4733ee3e12f61" 637 + integrity sha512-tajQY+YmXR7JjTwRvwL4HePqoL3DYxpYXIHKVvrOIvJmeHe2y1w4tz5qz9ObUDC9m76rCzIMPyn4eERuwA4a4A== 599 638 dependencies: 600 - "@babel/helper-module-imports" "^7.0.0" 639 + "@babel/helper-module-imports" "^7.7.4" 601 640 "@babel/helper-plugin-utils" "^7.0.0" 602 641 resolve "^1.8.1" 603 642 semver "^5.5.1" 604 643 605 - "@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.2.0": 606 - version "7.2.0" 607 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" 608 - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== 644 + "@babel/plugin-transform-shorthand-properties@^7.7.4": 645 + version "7.7.4" 646 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.7.4.tgz#74a0a9b2f6d67a684c6fbfd5f0458eb7ba99891e" 647 + integrity sha512-q+suddWRfIcnyG5YiDP58sT65AJDZSUhXQDZE3r04AuqD6d/XLaQPPXSBzP2zGerkgBivqtQm9XKGLuHqBID6Q== 609 648 dependencies: 610 649 "@babel/helper-plugin-utils" "^7.0.0" 611 650 612 - "@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.2.0", "@babel/plugin-transform-spread@^7.2.2": 613 - version "7.2.2" 614 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" 615 - integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== 651 + "@babel/plugin-transform-spread@^7.7.4": 652 + version "7.7.4" 653 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.7.4.tgz#aa673b356fe6b7e70d69b6e33a17fef641008578" 654 + integrity sha512-8OSs0FLe5/80cndziPlg4R0K6HcWSM0zyNhHhLsmw/Nc5MaA49cAsnoJ/t/YZf8qkG7fD+UjTRaApVDB526d7Q== 616 655 dependencies: 617 656 "@babel/helper-plugin-utils" "^7.0.0" 618 657 619 - "@babel/plugin-transform-sticky-regex@^7.2.0": 620 - version "7.2.0" 621 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" 622 - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== 658 + "@babel/plugin-transform-sticky-regex@^7.7.4": 659 + version "7.7.4" 660 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.7.4.tgz#ffb68c05090c30732076b1285dc1401b404a123c" 661 + integrity sha512-Ls2NASyL6qtVe1H1hXts9yuEeONV2TJZmplLONkMPUG158CtmnrzW5Q5teibM5UVOFjG0D3IC5mzXR6pPpUY7A== 623 662 dependencies: 624 663 "@babel/helper-plugin-utils" "^7.0.0" 625 664 "@babel/helper-regex" "^7.0.0" 626 665 627 - "@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.4.4": 628 - version "7.4.4" 629 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" 630 - integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== 666 + "@babel/plugin-transform-template-literals@^7.7.4": 667 + version "7.7.4" 668 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.7.4.tgz#1eb6411736dd3fe87dbd20cc6668e5121c17d604" 669 + integrity sha512-sA+KxLwF3QwGj5abMHkHgshp9+rRz+oY9uoRil4CyLtgEuE/88dpkeWgNk5qKVsJE9iSfly3nvHapdRiIS2wnQ== 631 670 dependencies: 632 - "@babel/helper-annotate-as-pure" "^7.0.0" 671 + "@babel/helper-annotate-as-pure" "^7.7.4" 633 672 "@babel/helper-plugin-utils" "^7.0.0" 634 673 635 - "@babel/plugin-transform-typeof-symbol@^7.2.0": 636 - version "7.2.0" 637 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" 638 - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== 674 + "@babel/plugin-transform-typeof-symbol@^7.7.4": 675 + version "7.7.4" 676 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.7.4.tgz#3174626214f2d6de322882e498a38e8371b2140e" 677 + integrity sha512-KQPUQ/7mqe2m0B8VecdyaW5XcQYaePyl9R7IsKd+irzj6jvbhoGnRE+M0aNkyAzI07VfUQ9266L5xMARitV3wg== 639 678 dependencies: 640 679 "@babel/helper-plugin-utils" "^7.0.0" 641 680 642 - "@babel/plugin-transform-unicode-regex@^7.4.4": 643 - version "7.4.4" 644 - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" 645 - integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== 681 + "@babel/plugin-transform-unicode-regex@^7.7.4": 682 + version "7.7.4" 683 + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.4.tgz#a3c0f65b117c4c81c5b6484f2a5e7b95346b83ae" 684 + integrity sha512-N77UUIV+WCvE+5yHw+oks3m18/umd7y392Zv7mYTpFqHtkpcc+QUz+gLJNTWVlWROIWeLqY0f3OjZxV5TcXnRw== 646 685 dependencies: 686 + "@babel/helper-create-regexp-features-plugin" "^7.7.4" 647 687 "@babel/helper-plugin-utils" "^7.0.0" 648 - "@babel/helper-regex" "^7.4.4" 649 - regexpu-core "^4.5.4" 650 688 651 - "@babel/polyfill@^7.0.0": 652 - version "7.4.4" 653 - resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.4.4.tgz#78801cf3dbe657844eeabf31c1cae3828051e893" 654 - integrity sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg== 689 + "@babel/polyfill@^7.0.0", "@babel/polyfill@^7.7.0": 690 + version "7.7.0" 691 + resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.7.0.tgz#e1066e251e17606ec7908b05617f9b7f8180d8f3" 692 + integrity sha512-/TS23MVvo34dFmf8mwCisCbWGrfhbiWZSwBo6HkADTBhUa2Q/jWltyY/tpofz/b6/RIhqaqQcquptCirqIhOaQ== 655 693 dependencies: 656 694 core-js "^2.6.5" 657 695 regenerator-runtime "^0.13.2" 658 696 659 - "@babel/preset-env@^7.4.1", "@babel/preset-env@^7.4.3": 660 - version "7.4.5" 661 - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.5.tgz#2fad7f62983d5af563b5f3139242755884998a58" 662 - integrity sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w== 697 + "@babel/preset-env@^7.4.3", "@babel/preset-env@^7.7.6", "@babel/preset-env@^7.7.7": 698 + version "7.7.7" 699 + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.7.tgz#c294167b91e53e7e36d820e943ece8d0c7fe46ac" 700 + integrity sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg== 663 701 dependencies: 664 - "@babel/helper-module-imports" "^7.0.0" 702 + "@babel/helper-module-imports" "^7.7.4" 665 703 "@babel/helper-plugin-utils" "^7.0.0" 666 - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" 667 - "@babel/plugin-proposal-json-strings" "^7.2.0" 668 - "@babel/plugin-proposal-object-rest-spread" "^7.4.4" 669 - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" 670 - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" 671 - "@babel/plugin-syntax-async-generators" "^7.2.0" 672 - "@babel/plugin-syntax-json-strings" "^7.2.0" 673 - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" 674 - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" 675 - "@babel/plugin-transform-arrow-functions" "^7.2.0" 676 - "@babel/plugin-transform-async-to-generator" "^7.4.4" 677 - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" 678 - "@babel/plugin-transform-block-scoping" "^7.4.4" 679 - "@babel/plugin-transform-classes" "^7.4.4" 680 - "@babel/plugin-transform-computed-properties" "^7.2.0" 681 - "@babel/plugin-transform-destructuring" "^7.4.4" 682 - "@babel/plugin-transform-dotall-regex" "^7.4.4" 683 - "@babel/plugin-transform-duplicate-keys" "^7.2.0" 684 - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" 685 - "@babel/plugin-transform-for-of" "^7.4.4" 686 - "@babel/plugin-transform-function-name" "^7.4.4" 687 - "@babel/plugin-transform-literals" "^7.2.0" 688 - "@babel/plugin-transform-member-expression-literals" "^7.2.0" 689 - "@babel/plugin-transform-modules-amd" "^7.2.0" 690 - "@babel/plugin-transform-modules-commonjs" "^7.4.4" 691 - "@babel/plugin-transform-modules-systemjs" "^7.4.4" 692 - "@babel/plugin-transform-modules-umd" "^7.2.0" 693 - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" 694 - "@babel/plugin-transform-new-target" "^7.4.4" 695 - "@babel/plugin-transform-object-super" "^7.2.0" 696 - "@babel/plugin-transform-parameters" "^7.4.4" 697 - "@babel/plugin-transform-property-literals" "^7.2.0" 698 - "@babel/plugin-transform-regenerator" "^7.4.5" 699 - "@babel/plugin-transform-reserved-words" "^7.2.0" 700 - "@babel/plugin-transform-shorthand-properties" "^7.2.0" 701 - "@babel/plugin-transform-spread" "^7.2.0" 702 - "@babel/plugin-transform-sticky-regex" "^7.2.0" 703 - "@babel/plugin-transform-template-literals" "^7.4.4" 704 - "@babel/plugin-transform-typeof-symbol" "^7.2.0" 705 - "@babel/plugin-transform-unicode-regex" "^7.4.4" 706 - "@babel/types" "^7.4.4" 704 + "@babel/plugin-proposal-async-generator-functions" "^7.7.4" 705 + "@babel/plugin-proposal-dynamic-import" "^7.7.4" 706 + "@babel/plugin-proposal-json-strings" "^7.7.4" 707 + "@babel/plugin-proposal-object-rest-spread" "^7.7.7" 708 + "@babel/plugin-proposal-optional-catch-binding" "^7.7.4" 709 + "@babel/plugin-proposal-unicode-property-regex" "^7.7.7" 710 + "@babel/plugin-syntax-async-generators" "^7.7.4" 711 + "@babel/plugin-syntax-dynamic-import" "^7.7.4" 712 + "@babel/plugin-syntax-json-strings" "^7.7.4" 713 + "@babel/plugin-syntax-object-rest-spread" "^7.7.4" 714 + "@babel/plugin-syntax-optional-catch-binding" "^7.7.4" 715 + "@babel/plugin-syntax-top-level-await" "^7.7.4" 716 + "@babel/plugin-transform-arrow-functions" "^7.7.4" 717 + "@babel/plugin-transform-async-to-generator" "^7.7.4" 718 + "@babel/plugin-transform-block-scoped-functions" "^7.7.4" 719 + "@babel/plugin-transform-block-scoping" "^7.7.4" 720 + "@babel/plugin-transform-classes" "^7.7.4" 721 + "@babel/plugin-transform-computed-properties" "^7.7.4" 722 + "@babel/plugin-transform-destructuring" "^7.7.4" 723 + "@babel/plugin-transform-dotall-regex" "^7.7.7" 724 + "@babel/plugin-transform-duplicate-keys" "^7.7.4" 725 + "@babel/plugin-transform-exponentiation-operator" "^7.7.4" 726 + "@babel/plugin-transform-for-of" "^7.7.4" 727 + "@babel/plugin-transform-function-name" "^7.7.4" 728 + "@babel/plugin-transform-literals" "^7.7.4" 729 + "@babel/plugin-transform-member-expression-literals" "^7.7.4" 730 + "@babel/plugin-transform-modules-amd" "^7.7.5" 731 + "@babel/plugin-transform-modules-commonjs" "^7.7.5" 732 + "@babel/plugin-transform-modules-systemjs" "^7.7.4" 733 + "@babel/plugin-transform-modules-umd" "^7.7.4" 734 + "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.4" 735 + "@babel/plugin-transform-new-target" "^7.7.4" 736 + "@babel/plugin-transform-object-super" "^7.7.4" 737 + "@babel/plugin-transform-parameters" "^7.7.7" 738 + "@babel/plugin-transform-property-literals" "^7.7.4" 739 + "@babel/plugin-transform-regenerator" "^7.7.5" 740 + "@babel/plugin-transform-reserved-words" "^7.7.4" 741 + "@babel/plugin-transform-shorthand-properties" "^7.7.4" 742 + "@babel/plugin-transform-spread" "^7.7.4" 743 + "@babel/plugin-transform-sticky-regex" "^7.7.4" 744 + "@babel/plugin-transform-template-literals" "^7.7.4" 745 + "@babel/plugin-transform-typeof-symbol" "^7.7.4" 746 + "@babel/plugin-transform-unicode-regex" "^7.7.4" 747 + "@babel/types" "^7.7.4" 707 748 browserslist "^4.6.0" 708 - core-js-compat "^3.1.1" 749 + core-js-compat "^3.6.0" 709 750 invariant "^2.2.2" 710 751 js-levenshtein "^1.1.3" 711 752 semver "^5.5.0" 712 753 713 - "@babel/preset-react@^7.0.0": 714 - version "7.0.0" 715 - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" 716 - integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== 754 + "@babel/preset-react@^7.0.0", "@babel/preset-react@^7.7.4": 755 + version "7.7.4" 756 + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.7.4.tgz#3fe2ea698d8fb536d8e7881a592c3c1ee8bf5707" 757 + integrity sha512-j+vZtg0/8pQr1H8wKoaJyGL2IEk3rG/GIvua7Sec7meXVIvGycihlGMx5xcU00kqCJbwzHs18xTu3YfREOqQ+g== 717 758 dependencies: 718 759 "@babel/helper-plugin-utils" "^7.0.0" 719 - "@babel/plugin-transform-react-display-name" "^7.0.0" 720 - "@babel/plugin-transform-react-jsx" "^7.0.0" 721 - "@babel/plugin-transform-react-jsx-self" "^7.0.0" 722 - "@babel/plugin-transform-react-jsx-source" "^7.0.0" 760 + "@babel/plugin-transform-react-display-name" "^7.7.4" 761 + "@babel/plugin-transform-react-jsx" "^7.7.4" 762 + "@babel/plugin-transform-react-jsx-self" "^7.7.4" 763 + "@babel/plugin-transform-react-jsx-source" "^7.7.4" 723 764 724 - "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.2", "@babel/runtime@^7.4.5": 725 - version "7.5.5" 726 - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" 727 - integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== 765 + "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.4.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6": 766 + version "7.7.7" 767 + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz#194769ca8d6d7790ec23605af9ee3e42a0aa79cf" 768 + integrity sha512-uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA== 728 769 dependencies: 729 770 regenerator-runtime "^0.13.2" 730 771 731 - "@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4", "@babel/template@^7.7.4": 772 + "@babel/template@^7.4.0", "@babel/template@^7.7.4": 732 773 version "7.7.4" 733 774 resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.4.tgz#428a7d9eecffe27deac0a98e23bf8e3675d2a77b" 734 775 integrity sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw== ··· 737 778 "@babel/parser" "^7.7.4" 738 779 "@babel/types" "^7.7.4" 739 780 740 - "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.7.4": 781 + "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.4": 741 782 version "7.7.4" 742 783 resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.4.tgz#9c1e7c60fb679fe4fcfaa42500833333c2058558" 743 784 integrity sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw== ··· 752 793 globals "^11.1.0" 753 794 lodash "^4.17.13" 754 795 755 - "@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.4": 796 + "@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.7.4": 756 797 version "7.7.4" 757 798 resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.4.tgz#516570d539e44ddf308c07569c258ff94fde9193" 758 799 integrity sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA== ··· 786 827 resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.4.tgz#a87b4b04e5ae14a88d48ebef15015f6b7d1f5677" 787 828 integrity sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ== 788 829 789 - "@gatsbyjs/relay-compiler@2.0.0-printer-fix.2": 790 - version "2.0.0-printer-fix.2" 791 - resolved "https://registry.yarnpkg.com/@gatsbyjs/relay-compiler/-/relay-compiler-2.0.0-printer-fix.2.tgz#214db0e6072d40ea78ad5fabdb49d56bc95f4e99" 792 - integrity sha512-7GeCCEQ7O15lMTT/SXy9HuRde4cv5vs465ZnLK2QCajSDLior+20yrMqHn1PGsJYK6nNZH7p3lw9qTCpqmuc7Q== 793 - dependencies: 794 - "@babel/generator" "^7.0.0" 795 - "@babel/parser" "^7.0.0" 796 - "@babel/polyfill" "^7.0.0" 797 - "@babel/runtime" "^7.0.0" 798 - "@babel/traverse" "^7.0.0" 799 - "@babel/types" "^7.0.0" 800 - babel-preset-fbjs "^3.1.2" 801 - chalk "^2.4.1" 802 - fast-glob "^2.2.2" 803 - fb-watchman "^2.0.0" 804 - fbjs "^1.0.0" 805 - immutable "~3.7.6" 806 - nullthrows "^1.1.0" 807 - relay-runtime "2.0.0" 808 - signedsource "^1.0.0" 809 - yargs "^9.0.0" 810 - 811 - "@glennsl/bs-jest@^0.4.8": 812 - version "0.4.8" 813 - resolved "https://registry.yarnpkg.com/@glennsl/bs-jest/-/bs-jest-0.4.8.tgz#e756ae5b43edc1cdcb4b5592021e50984566dafb" 814 - integrity sha512-RU5Bl6Sc9Xdd/BMQUHjEK4qqd3pRfoqzCnU3ncZbNWGndJUHVpuZVbk6IGTqcXSpoaN6eIOppPvLxQP/5yxwKw== 830 + "@glennsl/bs-jest@^0.4.9": 831 + version "0.4.9" 832 + resolved "https://registry.yarnpkg.com/@glennsl/bs-jest/-/bs-jest-0.4.9.tgz#a23af2668dda05947ce9c043fd5a7b295e91cef7" 833 + integrity sha512-WAqXMcI6WL7JVvGdakBr1tcw8BYWXHrOZfuA1myMkFggzAv24H/OEwyqaU7x+yXd4cJaBUY8v3SjQ3Pnk/zqsg== 815 834 dependencies: 816 835 jest "^24.3.1" 817 836 ··· 820 839 resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a" 821 840 integrity sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw== 822 841 823 - "@hapi/hoek@6.x.x": 824 - version "6.2.4" 825 - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-6.2.4.tgz#4b95fbaccbfba90185690890bdf1a2fbbda10595" 826 - integrity sha512-HOJ20Kc93DkDVvjwHyHawPwPkX44sIrbXazAUDiUXaY2R9JwQGo2PhFfnQtdrsIe4igjG2fPgMra7NYw7qhy0A== 842 + "@hapi/bourne@1.x.x": 843 + version "1.3.2" 844 + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" 845 + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== 827 846 828 847 "@hapi/hoek@8.x.x": 829 848 version "8.0.1" 830 849 resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.0.1.tgz#9712fa2ad124ac64668ab06ba847b1eaf83a03fd" 831 850 integrity sha512-cctMYH5RLbElaUpZn3IJaUj9QNQD8iXDnl7xNY6KB1aFD2ciJrwpo3kvZowIT75uA+silJFDnSR2kGakALUymg== 832 851 833 - "@hapi/joi@^15.0.0", "@hapi/joi@^15.1.0": 834 - version "15.1.0" 835 - resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.0.tgz#940cb749b5c55c26ab3b34ce362e82b6162c8e7a" 836 - integrity sha512-n6kaRQO8S+kepUTbXL9O/UOL788Odqs38/VOfoCrATDtTvyfiO3fgjlSRaNkHabpTLgM7qru9ifqXlXbXk8SeQ== 852 + "@hapi/joi@^15.1.1": 853 + version "15.1.1" 854 + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" 855 + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== 837 856 dependencies: 838 857 "@hapi/address" "2.x.x" 839 - "@hapi/hoek" "6.x.x" 840 - "@hapi/marker" "1.x.x" 858 + "@hapi/bourne" "1.x.x" 859 + "@hapi/hoek" "8.x.x" 841 860 "@hapi/topo" "3.x.x" 842 - 843 - "@hapi/marker@1.x.x": 844 - version "1.0.0" 845 - resolved "https://registry.yarnpkg.com/@hapi/marker/-/marker-1.0.0.tgz#65b0b2b01d1be06304886ce9b4b77b1bfb21a769" 846 - integrity sha512-JOfdekTXnJexfE8PyhZFyHvHjt81rBFSAbTIRAhF2vv/2Y1JzoKsGqxH/GpZJoF7aEfYok8JVcAHmSz1gkBieA== 847 861 848 862 "@hapi/topo@3.x.x": 849 863 version "3.1.2" ··· 861 875 chalk "^2.0.1" 862 876 slash "^2.0.0" 863 877 878 + "@jest/console@^24.9.0": 879 + version "24.9.0" 880 + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" 881 + integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== 882 + dependencies: 883 + "@jest/source-map" "^24.9.0" 884 + chalk "^2.0.1" 885 + slash "^2.0.0" 886 + 864 887 "@jest/core@^24.8.0": 865 888 version "24.8.0" 866 889 resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b" ··· 913 936 jest-message-util "^24.8.0" 914 937 jest-mock "^24.8.0" 915 938 939 + "@jest/fake-timers@^24.9.0": 940 + version "24.9.0" 941 + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" 942 + integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== 943 + dependencies: 944 + "@jest/types" "^24.9.0" 945 + jest-message-util "^24.9.0" 946 + jest-mock "^24.9.0" 947 + 916 948 "@jest/reporters@^24.8.0": 917 949 version "24.8.0" 918 950 resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729" ··· 949 981 graceful-fs "^4.1.15" 950 982 source-map "^0.6.0" 951 983 984 + "@jest/source-map@^24.9.0": 985 + version "24.9.0" 986 + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" 987 + integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== 988 + dependencies: 989 + callsites "^3.0.0" 990 + graceful-fs "^4.1.15" 991 + source-map "^0.6.0" 992 + 952 993 "@jest/test-result@^24.8.0": 953 994 version "24.8.0" 954 995 resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3" ··· 956 997 dependencies: 957 998 "@jest/console" "^24.7.1" 958 999 "@jest/types" "^24.8.0" 1000 + "@types/istanbul-lib-coverage" "^2.0.0" 1001 + 1002 + "@jest/test-result@^24.9.0": 1003 + version "24.9.0" 1004 + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" 1005 + integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== 1006 + dependencies: 1007 + "@jest/console" "^24.9.0" 1008 + "@jest/types" "^24.9.0" 959 1009 "@types/istanbul-lib-coverage" "^2.0.0" 960 1010 961 1011 "@jest/test-sequencer@^24.8.0": ··· 989 1039 source-map "^0.6.1" 990 1040 write-file-atomic "2.4.1" 991 1041 992 - "@jest/types@^24.8.0": 993 - version "24.8.0" 994 - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad" 995 - integrity sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg== 1042 + "@jest/transform@^24.9.0": 1043 + version "24.9.0" 1044 + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" 1045 + integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== 1046 + dependencies: 1047 + "@babel/core" "^7.1.0" 1048 + "@jest/types" "^24.9.0" 1049 + babel-plugin-istanbul "^5.1.0" 1050 + chalk "^2.0.1" 1051 + convert-source-map "^1.4.0" 1052 + fast-json-stable-stringify "^2.0.0" 1053 + graceful-fs "^4.1.15" 1054 + jest-haste-map "^24.9.0" 1055 + jest-regex-util "^24.9.0" 1056 + jest-util "^24.9.0" 1057 + micromatch "^3.1.10" 1058 + pirates "^4.0.1" 1059 + realpath-native "^1.1.0" 1060 + slash "^2.0.0" 1061 + source-map "^0.6.1" 1062 + write-file-atomic "2.4.1" 1063 + 1064 + "@jest/types@^24.8.0", "@jest/types@^24.9.0": 1065 + version "24.9.0" 1066 + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" 1067 + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== 996 1068 dependencies: 997 1069 "@types/istanbul-lib-coverage" "^2.0.0" 998 1070 "@types/istanbul-reports" "^1.1.1" 999 - "@types/yargs" "^12.0.9" 1071 + "@types/yargs" "^13.0.0" 1000 1072 1001 1073 "@jimp/bmp@^0.6.4": 1002 1074 version "0.6.4" ··· 1324 1396 string-width "^2.0.0" 1325 1397 strip-ansi "^3" 1326 1398 1327 - "@reach/router@^1.1.1": 1399 + "@reach/router@^1.2.1": 1328 1400 version "1.2.1" 1329 1401 resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.2.1.tgz#34ae3541a5ac44fa7796e5506a5d7274a162be4e" 1330 1402 integrity sha512-kTaX08X4g27tzIFQGRukaHmNbtMYDS3LEWIS8+l6OayGIw6Oyo1HIF/JzeuR2FoF9z6oV+x/wJSVSq4v8tcUGQ== ··· 1345 1417 resolved "https://registry.yarnpkg.com/@reach/visually-hidden/-/visually-hidden-0.1.4.tgz#0dc4ecedf523004337214187db70a46183bd945b" 1346 1418 integrity sha512-QHbzXjflSlCvDd6vJwdwx16mSB+vUCCQMiU/wK/CgVNPibtpEiIbisyxkpZc55DyDFNUIqP91rSUsNae+ogGDQ== 1347 1419 1420 + "@rollup/plugin-buble@^0.21.0": 1421 + version "0.21.0" 1422 + resolved "https://registry.yarnpkg.com/@rollup/plugin-buble/-/plugin-buble-0.21.0.tgz#76d2a9c62ae1f1122a3a87526669a736cd86c148" 1423 + integrity sha512-n6N311RCrVvnsWGyo/if6K2kFoDW+x9r+/hkp+fI73MryLFGxN50Y3zJDg3k0ZTDjRHmveVzM6Nzwv9+plWiLA== 1424 + dependencies: 1425 + "@types/buble" "^0.19.2" 1426 + buble "^0.19.8" 1427 + rollup-pluginutils "^2.8.2" 1428 + 1429 + "@rollup/plugin-commonjs@^11.0.1": 1430 + version "11.0.1" 1431 + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-11.0.1.tgz#6056a6757286901cc6c1599123e6680a78cad6c2" 1432 + integrity sha512-SaVUoaLDg3KnIXC5IBNIspr1APTYDzk05VaYcI6qz+0XX3ZlSCwAkfAhNSOxfd5GAdcm/63Noi4TowOY9MpcDg== 1433 + dependencies: 1434 + "@rollup/pluginutils" "^3.0.0" 1435 + estree-walker "^0.6.1" 1436 + is-reference "^1.1.2" 1437 + magic-string "^0.25.2" 1438 + resolve "^1.11.0" 1439 + 1440 + "@rollup/plugin-node-resolve@^6.1.0": 1441 + version "6.1.0" 1442 + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-6.1.0.tgz#0d2909f4bf606ae34d43a9bc8be06a9b0c850cf0" 1443 + integrity sha512-Cv7PDIvxdE40SWilY5WgZpqfIUEaDxFxs89zCAHjqyRwlTSuql4M5hjIuc5QYJkOH0/vyiyNXKD72O+LhRipGA== 1444 + dependencies: 1445 + "@rollup/pluginutils" "^3.0.0" 1446 + "@types/resolve" "0.0.8" 1447 + builtin-modules "^3.1.0" 1448 + is-module "^1.0.0" 1449 + resolve "^1.11.1" 1450 + 1451 + "@rollup/pluginutils@^3.0.0": 1452 + version "3.0.2" 1453 + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.2.tgz#78a8b7c614315b40784846ad0c8e67ca52385965" 1454 + integrity sha512-OOpWfnOaveki8sI5MEY20jCxVuKTPpIYRGa5dkN3RwEHX6LZM3HwAsT4yalds5CZAGzkCnbnOUz8rxXIyTm2yQ== 1455 + dependencies: 1456 + estree-walker "^0.6.1" 1457 + 1348 1458 "@samverschueren/stream-to-observable@^0.3.0": 1349 1459 version "0.3.0" 1350 1460 resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f" 1351 1461 integrity sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg== 1352 1462 dependencies: 1353 1463 any-observable "^0.3.0" 1464 + 1465 + "@sindresorhus/is@^0.14.0": 1466 + version "0.14.0" 1467 + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" 1468 + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== 1354 1469 1355 1470 "@sindresorhus/is@^0.7.0": 1356 1471 version "0.7.0" ··· 1440 1555 integrity sha512-3pGsubgY9vsGjwNIwCcsjRA9U6Ota1Aie514McWjMngCYTZHS8oZSOJIb+crxJwYUXyOz7CNUQ+dD0jntKhl/w== 1441 1556 dependencies: 1442 1557 "@styled-system/core" "^5.0.16" 1558 + 1559 + "@szmarczak/http-timer@^1.1.2": 1560 + version "1.1.2" 1561 + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" 1562 + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== 1563 + dependencies: 1564 + defer-to-connect "^1.0.1" 1443 1565 1444 1566 "@types/babel__core@^7.1.0": 1445 1567 version "7.1.1" ··· 1474 1596 dependencies: 1475 1597 "@babel/types" "^7.3.0" 1476 1598 1599 + "@types/buble@^0.19.2": 1600 + version "0.19.2" 1601 + resolved "https://registry.yarnpkg.com/@types/buble/-/buble-0.19.2.tgz#a4289d20b175b3c206aaad80caabdabe3ecdfdd1" 1602 + integrity sha512-uUD8zIfXMKThmFkahTXDGI3CthFH1kMg2dOm3KLi4GlC5cbARA64bEcUMbbWdWdE73eoc/iBB9PiTMqH0dNS2Q== 1603 + dependencies: 1604 + magic-string "^0.25.0" 1605 + 1606 + "@types/color-name@^1.1.1": 1607 + version "1.1.1" 1608 + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" 1609 + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== 1610 + 1477 1611 "@types/configstore@^2.1.1": 1478 1612 version "2.1.1" 1479 1613 resolved "https://registry.yarnpkg.com/@types/configstore/-/configstore-2.1.1.tgz#cd1e8553633ad3185c3f2f239ecff5d2643e92b6" ··· 1483 1617 version "0.0.29" 1484 1618 resolved "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.29.tgz#a1e514adfbd92f03a224ba54d693111dbf1f3754" 1485 1619 integrity sha1-oeUUrfvZLwOiJLpU1pMRHb8fN1Q= 1620 + 1621 + "@types/eslint-visitor-keys@^1.0.0": 1622 + version "1.0.0" 1623 + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" 1624 + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== 1486 1625 1487 1626 "@types/estree@*": 1488 1627 version "0.0.40" ··· 1547 1686 "@types/istanbul-lib-coverage" "*" 1548 1687 "@types/istanbul-lib-report" "*" 1549 1688 1689 + "@types/jest@^24.0.25": 1690 + version "24.0.25" 1691 + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.0.25.tgz#2aba377824ce040114aa906ad2cac2c85351360f" 1692 + integrity sha512-hnP1WpjN4KbGEK4dLayul6lgtys6FPz0UfxMeMQCv0M+sTnzN3ConfiO72jHgLxl119guHgI8gLqDOrRLsyp2g== 1693 + dependencies: 1694 + jest-diff "^24.3.0" 1695 + 1696 + "@types/json-schema@^7.0.3": 1697 + version "7.0.4" 1698 + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" 1699 + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== 1700 + 1550 1701 "@types/minimatch@*": 1551 1702 version "3.0.3" 1552 1703 resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" ··· 1572 1723 resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" 1573 1724 integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== 1574 1725 1726 + "@types/parse-json@^4.0.0": 1727 + version "4.0.0" 1728 + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" 1729 + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== 1730 + 1575 1731 "@types/prop-types@*": 1576 1732 version "15.7.1" 1577 1733 resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.1.tgz#f1a11e7babb0c3cad68100be381d1e064c68f1f6" ··· 1582 1738 resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" 1583 1739 integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== 1584 1740 1585 - "@types/reach__router@^1.0.0": 1586 - version "1.2.4" 1587 - resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.2.4.tgz#44a701fdf15934880f6dfdef38ca49bc30e2d372" 1588 - integrity sha512-a+MFhebeSGi0LwHZ0UhH/ke77rWtNQnt8YmaHnquSaY3HmyEi+BPQi3GhPcUPnC9X5BLw/qORw3BPxGb1mCtEw== 1741 + "@types/reach__router@^1.2.6": 1742 + version "1.2.6" 1743 + resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.2.6.tgz#b14cf1adbd1a365d204bbf6605cd9dd7b8816c87" 1744 + integrity sha512-Oh5DAVr/L2svBvubw6QEFpXGu295Y406BPs4i9t1n2pp7M+q3pmCmhzb9oZV5wncR41KCD3NHl1Yhi7uKnTPsA== 1589 1745 dependencies: 1590 1746 "@types/history" "*" 1591 1747 "@types/react" "*" 1592 1748 1593 - "@types/react@*", "@types/react@^16.8.12", "@types/react@^16.8.6": 1749 + "@types/react@*": 1594 1750 version "16.8.22" 1595 1751 resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.22.tgz#7f18bf5ea0c1cad73c46b6b1c804a3ce0eec6d54" 1596 1752 integrity sha512-C3O1yVqk4sUXqWyx0wlys76eQfhrQhiDhDlHBrjER76lR2S2Agiid/KpOU9oCqj1dISStscz7xXz1Cg8+sCQeA== ··· 1637 1793 "@types/unist" "*" 1638 1794 "@types/vfile-message" "*" 1639 1795 1796 + "@types/yargs-parser@*": 1797 + version "13.1.0" 1798 + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" 1799 + integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== 1800 + 1640 1801 "@types/yargs@^12.0.2", "@types/yargs@^12.0.9": 1641 1802 version "12.0.12" 1642 1803 resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz#45dd1d0638e8c8f153e87d296907659296873916" 1643 1804 integrity sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw== 1644 1805 1645 - "@vuepress/plugin-google-analytics@^1.0.1": 1646 - version "1.0.2" 1647 - resolved "https://registry.yarnpkg.com/@vuepress/plugin-google-analytics/-/plugin-google-analytics-1.0.2.tgz#c5754d55d01bf7e1a9a5b1ff5fde07a08e4a797d" 1648 - integrity sha512-NdU18hTBW4TkNK80dgpPu4yq/smNkIUZi9gL5hCiuW43BnXFA7WFfhGcvZJ61+keNDr6gw9UIv4HQuFFPoRXQA== 1806 + "@types/yargs@^13.0.0": 1807 + version "13.0.4" 1808 + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.4.tgz#53d231cebe1a540e7e13727fc1f0d13ad4a9ba3b" 1809 + integrity sha512-Ke1WmBbIkVM8bpvsNEcGgQM70XcEh/nbpxQhW7FhrsbCsXSY9BmLB1+LHtD7r9zrsOcFlLiF+a/UeJsdfw3C5A== 1810 + dependencies: 1811 + "@types/yargs-parser" "*" 1812 + 1813 + "@types/zen-observable@^0.8.0": 1814 + version "0.8.0" 1815 + resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.0.tgz#8b63ab7f1aa5321248aad5ac890a485656dcea4d" 1816 + integrity sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg== 1817 + 1818 + "@typescript-eslint/eslint-plugin@^2.11.0": 1819 + version "2.14.0" 1820 + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.14.0.tgz#c74447400537d4eb7aae1e31879ab43e6c662a8a" 1821 + integrity sha512-sneOJ3Hu0m5whJiVIxGBZZZMxMJ7c0LhAJzeMJgHo+n5wFs+/6rSR/gl7crkdR2kNwfOOSdzdc0gMvatG4dX2Q== 1822 + dependencies: 1823 + "@typescript-eslint/experimental-utils" "2.14.0" 1824 + eslint-utils "^1.4.3" 1825 + functional-red-black-tree "^1.0.1" 1826 + regexpp "^3.0.0" 1827 + tsutils "^3.17.1" 1828 + 1829 + "@typescript-eslint/experimental-utils@2.14.0": 1830 + version "2.14.0" 1831 + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.14.0.tgz#e9179fa3c44e00b3106b85d7b69342901fb43e3b" 1832 + integrity sha512-KcyKS7G6IWnIgl3ZpyxyBCxhkBPV+0a5Jjy2g5HxlrbG2ZLQNFeneIBVXdaBCYOVjvGmGGFKom1kgiAY75SDeQ== 1833 + dependencies: 1834 + "@types/json-schema" "^7.0.3" 1835 + "@typescript-eslint/typescript-estree" "2.14.0" 1836 + eslint-scope "^5.0.0" 1837 + 1838 + "@typescript-eslint/parser@^2.11.0": 1839 + version "2.14.0" 1840 + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.14.0.tgz#30fa0523d86d74172a5e32274558404ba4262cd6" 1841 + integrity sha512-haS+8D35fUydIs+zdSf4BxpOartb/DjrZ2IxQ5sR8zyGfd77uT9ZJZYF8+I0WPhzqHmfafUBx8MYpcp8pfaoSA== 1842 + dependencies: 1843 + "@types/eslint-visitor-keys" "^1.0.0" 1844 + "@typescript-eslint/experimental-utils" "2.14.0" 1845 + "@typescript-eslint/typescript-estree" "2.14.0" 1846 + eslint-visitor-keys "^1.1.0" 1847 + 1848 + "@typescript-eslint/typescript-estree@2.14.0": 1849 + version "2.14.0" 1850 + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.14.0.tgz#c67698acdc14547f095eeefe908958d93e1a648d" 1851 + integrity sha512-pnLpUcMNG7GfFFfNQbEX6f1aPa5fMnH2G9By+A1yovYI4VIOK2DzkaRuUlIkbagpAcrxQHLqovI1YWqEcXyRnA== 1852 + dependencies: 1853 + debug "^4.1.1" 1854 + eslint-visitor-keys "^1.1.0" 1855 + glob "^7.1.6" 1856 + is-glob "^4.0.1" 1857 + lodash.unescape "4.0.1" 1858 + semver "^6.3.0" 1859 + tsutils "^3.17.1" 1649 1860 1650 1861 "@webassemblyjs/ast@1.7.11": 1651 1862 version "1.7.11" ··· 1656 1867 "@webassemblyjs/helper-wasm-bytecode" "1.7.11" 1657 1868 "@webassemblyjs/wast-parser" "1.7.11" 1658 1869 1870 + "@webassemblyjs/ast@1.8.5": 1871 + version "1.8.5" 1872 + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" 1873 + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== 1874 + dependencies: 1875 + "@webassemblyjs/helper-module-context" "1.8.5" 1876 + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 1877 + "@webassemblyjs/wast-parser" "1.8.5" 1878 + 1659 1879 "@webassemblyjs/floating-point-hex-parser@1.7.11": 1660 1880 version "1.7.11" 1661 1881 resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" 1662 1882 integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== 1663 1883 1884 + "@webassemblyjs/floating-point-hex-parser@1.8.5": 1885 + version "1.8.5" 1886 + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" 1887 + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== 1888 + 1664 1889 "@webassemblyjs/helper-api-error@1.7.11": 1665 1890 version "1.7.11" 1666 1891 resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" 1667 1892 integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== 1668 1893 1894 + "@webassemblyjs/helper-api-error@1.8.5": 1895 + version "1.8.5" 1896 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" 1897 + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== 1898 + 1669 1899 "@webassemblyjs/helper-buffer@1.7.11": 1670 1900 version "1.7.11" 1671 1901 resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" 1672 1902 integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== 1903 + 1904 + "@webassemblyjs/helper-buffer@1.8.5": 1905 + version "1.8.5" 1906 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" 1907 + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== 1673 1908 1674 1909 "@webassemblyjs/helper-code-frame@1.7.11": 1675 1910 version "1.7.11" ··· 1678 1913 dependencies: 1679 1914 "@webassemblyjs/wast-printer" "1.7.11" 1680 1915 1916 + "@webassemblyjs/helper-code-frame@1.8.5": 1917 + version "1.8.5" 1918 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" 1919 + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== 1920 + dependencies: 1921 + "@webassemblyjs/wast-printer" "1.8.5" 1922 + 1681 1923 "@webassemblyjs/helper-fsm@1.7.11": 1682 1924 version "1.7.11" 1683 1925 resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" 1684 1926 integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== 1685 1927 1928 + "@webassemblyjs/helper-fsm@1.8.5": 1929 + version "1.8.5" 1930 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" 1931 + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== 1932 + 1686 1933 "@webassemblyjs/helper-module-context@1.7.11": 1687 1934 version "1.7.11" 1688 1935 resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" 1689 1936 integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== 1690 1937 1938 + "@webassemblyjs/helper-module-context@1.8.5": 1939 + version "1.8.5" 1940 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" 1941 + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== 1942 + dependencies: 1943 + "@webassemblyjs/ast" "1.8.5" 1944 + mamacro "^0.0.3" 1945 + 1691 1946 "@webassemblyjs/helper-wasm-bytecode@1.7.11": 1692 1947 version "1.7.11" 1693 1948 resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" 1694 1949 integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== 1695 1950 1951 + "@webassemblyjs/helper-wasm-bytecode@1.8.5": 1952 + version "1.8.5" 1953 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" 1954 + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== 1955 + 1696 1956 "@webassemblyjs/helper-wasm-section@1.7.11": 1697 1957 version "1.7.11" 1698 1958 resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" ··· 1703 1963 "@webassemblyjs/helper-wasm-bytecode" "1.7.11" 1704 1964 "@webassemblyjs/wasm-gen" "1.7.11" 1705 1965 1966 + "@webassemblyjs/helper-wasm-section@1.8.5": 1967 + version "1.8.5" 1968 + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" 1969 + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== 1970 + dependencies: 1971 + "@webassemblyjs/ast" "1.8.5" 1972 + "@webassemblyjs/helper-buffer" "1.8.5" 1973 + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 1974 + "@webassemblyjs/wasm-gen" "1.8.5" 1975 + 1706 1976 "@webassemblyjs/ieee754@1.7.11": 1707 1977 version "1.7.11" 1708 1978 resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" ··· 1710 1980 dependencies: 1711 1981 "@xtuc/ieee754" "^1.2.0" 1712 1982 1983 + "@webassemblyjs/ieee754@1.8.5": 1984 + version "1.8.5" 1985 + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" 1986 + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== 1987 + dependencies: 1988 + "@xtuc/ieee754" "^1.2.0" 1989 + 1713 1990 "@webassemblyjs/leb128@1.7.11": 1714 1991 version "1.7.11" 1715 1992 resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" ··· 1717 1994 dependencies: 1718 1995 "@xtuc/long" "4.2.1" 1719 1996 1997 + "@webassemblyjs/leb128@1.8.5": 1998 + version "1.8.5" 1999 + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" 2000 + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== 2001 + dependencies: 2002 + "@xtuc/long" "4.2.2" 2003 + 1720 2004 "@webassemblyjs/utf8@1.7.11": 1721 2005 version "1.7.11" 1722 2006 resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" 1723 2007 integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== 2008 + 2009 + "@webassemblyjs/utf8@1.8.5": 2010 + version "1.8.5" 2011 + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" 2012 + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== 1724 2013 1725 2014 "@webassemblyjs/wasm-edit@1.7.11": 1726 2015 version "1.7.11" ··· 1736 2025 "@webassemblyjs/wasm-parser" "1.7.11" 1737 2026 "@webassemblyjs/wast-printer" "1.7.11" 1738 2027 2028 + "@webassemblyjs/wasm-edit@1.8.5": 2029 + version "1.8.5" 2030 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" 2031 + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== 2032 + dependencies: 2033 + "@webassemblyjs/ast" "1.8.5" 2034 + "@webassemblyjs/helper-buffer" "1.8.5" 2035 + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 2036 + "@webassemblyjs/helper-wasm-section" "1.8.5" 2037 + "@webassemblyjs/wasm-gen" "1.8.5" 2038 + "@webassemblyjs/wasm-opt" "1.8.5" 2039 + "@webassemblyjs/wasm-parser" "1.8.5" 2040 + "@webassemblyjs/wast-printer" "1.8.5" 2041 + 1739 2042 "@webassemblyjs/wasm-gen@1.7.11": 1740 2043 version "1.7.11" 1741 2044 resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" ··· 1747 2050 "@webassemblyjs/leb128" "1.7.11" 1748 2051 "@webassemblyjs/utf8" "1.7.11" 1749 2052 2053 + "@webassemblyjs/wasm-gen@1.8.5": 2054 + version "1.8.5" 2055 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" 2056 + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== 2057 + dependencies: 2058 + "@webassemblyjs/ast" "1.8.5" 2059 + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 2060 + "@webassemblyjs/ieee754" "1.8.5" 2061 + "@webassemblyjs/leb128" "1.8.5" 2062 + "@webassemblyjs/utf8" "1.8.5" 2063 + 1750 2064 "@webassemblyjs/wasm-opt@1.7.11": 1751 2065 version "1.7.11" 1752 2066 resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" ··· 1757 2071 "@webassemblyjs/wasm-gen" "1.7.11" 1758 2072 "@webassemblyjs/wasm-parser" "1.7.11" 1759 2073 2074 + "@webassemblyjs/wasm-opt@1.8.5": 2075 + version "1.8.5" 2076 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" 2077 + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== 2078 + dependencies: 2079 + "@webassemblyjs/ast" "1.8.5" 2080 + "@webassemblyjs/helper-buffer" "1.8.5" 2081 + "@webassemblyjs/wasm-gen" "1.8.5" 2082 + "@webassemblyjs/wasm-parser" "1.8.5" 2083 + 1760 2084 "@webassemblyjs/wasm-parser@1.7.11": 1761 2085 version "1.7.11" 1762 2086 resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" ··· 1769 2093 "@webassemblyjs/leb128" "1.7.11" 1770 2094 "@webassemblyjs/utf8" "1.7.11" 1771 2095 2096 + "@webassemblyjs/wasm-parser@1.8.5": 2097 + version "1.8.5" 2098 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" 2099 + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== 2100 + dependencies: 2101 + "@webassemblyjs/ast" "1.8.5" 2102 + "@webassemblyjs/helper-api-error" "1.8.5" 2103 + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" 2104 + "@webassemblyjs/ieee754" "1.8.5" 2105 + "@webassemblyjs/leb128" "1.8.5" 2106 + "@webassemblyjs/utf8" "1.8.5" 2107 + 1772 2108 "@webassemblyjs/wast-parser@1.7.11": 1773 2109 version "1.7.11" 1774 2110 resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" ··· 1781 2117 "@webassemblyjs/helper-fsm" "1.7.11" 1782 2118 "@xtuc/long" "4.2.1" 1783 2119 2120 + "@webassemblyjs/wast-parser@1.8.5": 2121 + version "1.8.5" 2122 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" 2123 + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== 2124 + dependencies: 2125 + "@webassemblyjs/ast" "1.8.5" 2126 + "@webassemblyjs/floating-point-hex-parser" "1.8.5" 2127 + "@webassemblyjs/helper-api-error" "1.8.5" 2128 + "@webassemblyjs/helper-code-frame" "1.8.5" 2129 + "@webassemblyjs/helper-fsm" "1.8.5" 2130 + "@xtuc/long" "4.2.2" 2131 + 1784 2132 "@webassemblyjs/wast-printer@1.7.11": 1785 2133 version "1.7.11" 1786 2134 resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" ··· 1790 2138 "@webassemblyjs/wast-parser" "1.7.11" 1791 2139 "@xtuc/long" "4.2.1" 1792 2140 2141 + "@webassemblyjs/wast-printer@1.8.5": 2142 + version "1.8.5" 2143 + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" 2144 + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== 2145 + dependencies: 2146 + "@webassemblyjs/ast" "1.8.5" 2147 + "@webassemblyjs/wast-parser" "1.8.5" 2148 + "@xtuc/long" "4.2.2" 2149 + 1793 2150 "@xtuc/ieee754@^1.2.0": 1794 2151 version "1.2.0" 1795 2152 resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" ··· 1800 2157 resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" 1801 2158 integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== 1802 2159 2160 + "@xtuc/long@4.2.2": 2161 + version "4.2.2" 2162 + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 2163 + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 2164 + 1803 2165 abab@^2.0.0: 1804 2166 version "2.0.0" 1805 2167 resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" ··· 1810 2172 resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 1811 2173 integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 1812 2174 1813 - accepts@^1.3.5, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: 2175 + accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: 1814 2176 version "1.3.7" 1815 2177 resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 1816 2178 integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== ··· 1838 2200 acorn "^6.0.1" 1839 2201 acorn-walk "^6.0.1" 1840 2202 1841 - acorn-jsx@^5.0.0, acorn-jsx@^5.0.1: 1842 - version "5.0.1" 1843 - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" 1844 - integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== 2203 + acorn-jsx@^5.0.1, acorn-jsx@^5.1.0: 2204 + version "5.1.0" 2205 + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" 2206 + integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== 1845 2207 1846 2208 acorn-walk@7.0.0: 1847 2209 version "7.0.0" ··· 1863 2225 resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" 1864 2226 integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== 1865 2227 1866 - acorn@^6.0.1, acorn@^6.0.7, acorn@^6.1.1: 1867 - version "6.1.1" 1868 - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" 1869 - integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== 2228 + acorn@^6.0.1, acorn@^6.1.1, acorn@^6.2.1: 2229 + version "6.4.0" 2230 + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" 2231 + integrity sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw== 1870 2232 1871 2233 address@1.0.3: 1872 2234 version "1.0.3" 1873 2235 resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" 1874 2236 integrity sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg== 1875 2237 1876 - address@^1.0.1: 1877 - version "1.1.0" 1878 - resolved "https://registry.yarnpkg.com/address/-/address-1.1.0.tgz#ef8e047847fcd2c5b6f50c16965f924fd99fe709" 1879 - integrity sha512-4diPfzWbLEIElVG4AnqP+00SULlPzNuyJFNnmMrLgyaxG6tZXJ1sn7mjBu4fHrJE+Yp/jgylOweJn2xsLMFggQ== 2238 + address@1.1.2, address@^1.0.1: 2239 + version "1.1.2" 2240 + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" 2241 + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== 1880 2242 1881 2243 after@0.8.2: 1882 2244 version "0.8.2" ··· 1889 2251 integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== 1890 2252 dependencies: 1891 2253 es6-promisify "^5.0.0" 2254 + 2255 + aggregate-error@^3.0.0: 2256 + version "3.0.1" 2257 + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" 2258 + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== 2259 + dependencies: 2260 + clean-stack "^2.0.0" 2261 + indent-string "^4.0.0" 1892 2262 1893 2263 ajv-errors@^1.0.0: 1894 2264 version "1.0.1" 1895 2265 resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" 1896 2266 integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== 1897 2267 1898 - ajv-keywords@^3.1.0: 1899 - version "3.4.0" 1900 - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" 1901 - integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== 2268 + ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: 2269 + version "3.4.1" 2270 + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" 2271 + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== 1902 2272 1903 - ajv@^6.1.0, ajv@^6.5.5, ajv@^6.9.1: 1904 - version "6.10.0" 1905 - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" 1906 - integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== 2273 + ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: 2274 + version "6.10.2" 2275 + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" 2276 + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== 1907 2277 dependencies: 1908 2278 fast-deep-equal "^2.0.1" 1909 2279 fast-json-stable-stringify "^2.0.0" ··· 1915 2285 resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" 1916 2286 integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= 1917 2287 1918 - ansi-align@^2.0.0: 1919 - version "2.0.0" 1920 - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 1921 - integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= 1922 - dependencies: 1923 - string-width "^2.0.0" 1924 - 1925 2288 ansi-align@^3.0.0: 1926 2289 version "3.0.0" 1927 2290 resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" ··· 1939 2302 resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 1940 2303 integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== 1941 2304 2305 + ansi-escapes@^4.2.1: 2306 + version "4.3.0" 2307 + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" 2308 + integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== 2309 + dependencies: 2310 + type-fest "^0.8.1" 2311 + 1942 2312 ansi-html@0.0.7: 1943 2313 version "0.0.7" 1944 2314 resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" ··· 1959 2329 resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 1960 2330 integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 1961 2331 2332 + ansi-regex@^5.0.0: 2333 + version "5.0.0" 2334 + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 2335 + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 2336 + 1962 2337 ansi-styles@^2.2.1: 1963 2338 version "2.2.1" 1964 2339 resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" ··· 1971 2346 dependencies: 1972 2347 color-convert "^1.9.0" 1973 2348 2349 + ansi-styles@^4.0.0, ansi-styles@^4.1.0: 2350 + version "4.2.1" 2351 + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" 2352 + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== 2353 + dependencies: 2354 + "@types/color-name" "^1.1.1" 2355 + color-convert "^2.0.1" 2356 + 1974 2357 any-base@^1.1.0: 1975 2358 version "1.1.0" 1976 2359 resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" ··· 1994 2377 micromatch "^3.1.4" 1995 2378 normalize-path "^2.1.1" 1996 2379 2380 + anymatch@~3.1.1: 2381 + version "3.1.1" 2382 + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" 2383 + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== 2384 + dependencies: 2385 + normalize-path "^3.0.0" 2386 + picomatch "^2.0.4" 2387 + 1997 2388 aproba@^1.0.3, aproba@^1.1.1: 1998 2389 version "1.2.0" 1999 2390 resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" 2000 2391 integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== 2001 2392 2002 - arch@^2.1.0: 2393 + arch@^2.1.0, arch@^2.1.1: 2003 2394 version "2.1.1" 2004 2395 resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" 2005 2396 integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== ··· 2129 2520 resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 2130 2521 integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= 2131 2522 2523 + array.prototype.flat@^1.2.1: 2524 + version "1.2.3" 2525 + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" 2526 + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== 2527 + dependencies: 2528 + define-properties "^1.1.3" 2529 + es-abstract "^1.17.0-next.1" 2530 + 2132 2531 arraybuffer.slice@~0.0.7: 2133 2532 version "0.0.7" 2134 2533 resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" ··· 2138 2537 version "1.0.1" 2139 2538 resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 2140 2539 integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= 2540 + 2541 + arrify@^2.0.1: 2542 + version "2.0.1" 2543 + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" 2544 + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== 2141 2545 2142 2546 asap@~2.0.3: 2143 2547 version "2.0.6" ··· 2188 2592 resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 2189 2593 integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 2190 2594 2595 + astral-regex@^2.0.0: 2596 + version "2.0.0" 2597 + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 2598 + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 2599 + 2191 2600 async-each@^1.0.1: 2192 2601 version "1.0.3" 2193 2602 resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" ··· 2198 2607 resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 2199 2608 integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== 2200 2609 2201 - async@1.5.2, async@^1.5.2: 2610 + async@1.5.2: 2202 2611 version "1.5.2" 2203 2612 resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 2204 2613 integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= 2205 2614 2206 - async@^2.1.2: 2207 - version "2.6.2" 2208 - resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" 2209 - integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== 2615 + async@^2.1.2, async@^2.6.2: 2616 + version "2.6.3" 2617 + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" 2618 + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== 2210 2619 dependencies: 2211 - lodash "^4.17.11" 2620 + lodash "^4.17.14" 2212 2621 2213 2622 asynckit@^0.4.0: 2214 2623 version "0.4.0" ··· 2220 2629 resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 2221 2630 integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== 2222 2631 2223 - auto-bind@^2.0.0: 2224 - version "2.1.0" 2225 - resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-2.1.0.tgz#254e12d53063d7cab90446ce021accfb3faa1464" 2226 - integrity sha512-qZuFvkes1eh9lB2mg8/HG18C+5GIO51r+RrCSst/lh+i5B1CtVlkhTE488M805Nr3dKl0sM/pIFKSKUIlg3zUg== 2227 - dependencies: 2228 - "@types/react" "^16.8.12" 2632 + auto-bind@^3.0.0: 2633 + version "3.0.0" 2634 + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-3.0.0.tgz#67773e64899b228f6d2a841709e7e086cfed31a3" 2635 + integrity sha512-v0A231a/lfOo6kxQtmEkdBfTApvC21aJYukA8pkKnoTvVqh3Wmm7/Rwy4GBCHTTHVoLVA5qsBDDvf1XY1nIV2g== 2229 2636 2230 - autoprefixer@^9.6.0: 2231 - version "9.6.0" 2232 - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.0.tgz#0111c6bde2ad20c6f17995a33fad7cf6854b4c87" 2233 - integrity sha512-kuip9YilBqhirhHEGHaBTZKXL//xxGnzvsD0FtBQa6z+A69qZD6s/BAX9VzDF1i9VKDquTJDQaPLSEhOnL6FvQ== 2637 + autoprefixer@^9.7.3: 2638 + version "9.7.3" 2639 + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.3.tgz#fd42ed03f53de9beb4ca0d61fb4f7268a9bb50b4" 2640 + integrity sha512-8T5Y1C5Iyj6PgkPSFd0ODvK9DIleuPKUPYniNxybS47g2k2wFgLZ46lGQHlBuGKIAEV8fbCDfKCCRS1tvOgc3Q== 2234 2641 dependencies: 2235 - browserslist "^4.6.1" 2236 - caniuse-lite "^1.0.30000971" 2642 + browserslist "^4.8.0" 2643 + caniuse-lite "^1.0.30001012" 2237 2644 chalk "^2.4.2" 2238 2645 normalize-range "^0.1.2" 2239 2646 num2fraction "^1.2.2" 2240 - postcss "^7.0.16" 2241 - postcss-value-parser "^3.3.1" 2647 + postcss "^7.0.23" 2648 + postcss-value-parser "^4.0.2" 2242 2649 2243 2650 aws-sign2@~0.7.0: 2244 2651 version "0.7.0" ··· 2250 2657 resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" 2251 2658 integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== 2252 2659 2660 + axios@^0.19.0: 2661 + version "0.19.0" 2662 + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" 2663 + integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== 2664 + dependencies: 2665 + follow-redirects "1.5.10" 2666 + is-buffer "^2.0.2" 2667 + 2253 2668 axobject-query@^2.0.2: 2254 2669 version "2.0.2" 2255 2670 resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" ··· 2271 2686 resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" 2272 2687 integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== 2273 2688 2274 - babel-eslint@^9.0.0: 2275 - version "9.0.0" 2276 - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-9.0.0.tgz#7d9445f81ed9f60aff38115f838970df9f2b6220" 2277 - integrity sha512-itv1MwE3TMbY0QtNfeL7wzak1mV47Uy+n6HtSOO4Xd7rvmO+tsGQSgyOEEgo6Y2vHZKZphaoelNeSVj4vkLA1g== 2689 + babel-eslint@^10.0.3: 2690 + version "10.0.3" 2691 + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" 2692 + integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA== 2278 2693 dependencies: 2279 2694 "@babel/code-frame" "^7.0.0" 2280 2695 "@babel/parser" "^7.0.0" 2281 2696 "@babel/traverse" "^7.0.0" 2282 2697 "@babel/types" "^7.0.0" 2283 - eslint-scope "3.7.1" 2284 2698 eslint-visitor-keys "^1.0.0" 2699 + resolve "^1.12.0" 2285 2700 2286 2701 babel-jest@^24.8.0: 2287 2702 version "24.8.0" ··· 2296 2711 chalk "^2.4.2" 2297 2712 slash "^2.0.0" 2298 2713 2299 - babel-loader@^8.0.0: 2714 + babel-jest@^24.9.0: 2715 + version "24.9.0" 2716 + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" 2717 + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== 2718 + dependencies: 2719 + "@jest/transform" "^24.9.0" 2720 + "@jest/types" "^24.9.0" 2721 + "@types/babel__core" "^7.1.0" 2722 + babel-plugin-istanbul "^5.1.0" 2723 + babel-preset-jest "^24.9.0" 2724 + chalk "^2.4.2" 2725 + slash "^2.0.0" 2726 + 2727 + babel-loader@^8.0.6: 2300 2728 version "8.0.6" 2301 2729 resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" 2302 2730 integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== ··· 2306 2734 mkdirp "^0.5.1" 2307 2735 pify "^4.0.1" 2308 2736 2309 - babel-plugin-add-module-exports@^0.2.1: 2310 - version "0.2.1" 2311 - resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz#9ae9a1f4a8dc67f0cdec4f4aeda1e43a5ff65e25" 2312 - integrity sha1-mumh9KjcZ/DN7E9K7aHkOl/2XiU= 2737 + babel-plugin-add-module-exports@^0.3.3: 2738 + version "0.3.3" 2739 + resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.3.3.tgz#b9f7c0a93b989170dce07c3e97071a905a13fc29" 2740 + integrity sha512-hC37mm7aAdEb1n8SgggG8a1QuhZapsY/XLCi4ETSH6AVjXBCWEa50CXlOsAMPPWLnSx5Ns6mzz39uvuseh0Xjg== 2741 + optionalDependencies: 2742 + chokidar "^2.0.4" 2313 2743 2314 2744 babel-plugin-closure-elimination@^1.3.0: 2315 2745 version "1.3.0" 2316 2746 resolved "https://registry.yarnpkg.com/babel-plugin-closure-elimination/-/babel-plugin-closure-elimination-1.3.0.tgz#3217fbf6d416dfdf14ff41a8a34e4d0a6bfc22b2" 2317 2747 integrity sha512-ClKuSxKLLNhe69bvTMuONDI0dQDW49lXB2qtQyyKCzvwegRGel/q4/e+1EoDNDN97Hf1QkxGMbzpAGPmU4Tfjw== 2318 2748 2319 - babel-plugin-dynamic-import-node@^1.2.0: 2320 - version "1.2.0" 2321 - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.2.0.tgz#f91631e703e0595e47d4beafbb088576c87fbeee" 2322 - integrity sha512-yeDwKaLgGdTpXL7RgGt5r6T4LmnTza/hUn5Ul8uZSGGMtEjYo13Nxai7SQaGCTEzUtg9Zq9qJn0EjEr7SeSlTQ== 2749 + babel-plugin-dynamic-import-node@^2.3.0: 2750 + version "2.3.0" 2751 + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" 2752 + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== 2323 2753 dependencies: 2324 - babel-plugin-syntax-dynamic-import "^6.18.0" 2754 + object.assign "^4.1.0" 2325 2755 2326 2756 babel-plugin-istanbul@^5.1.0: 2327 2757 version "5.1.4" ··· 2339 2769 dependencies: 2340 2770 "@types/babel__traverse" "^7.0.6" 2341 2771 2342 - babel-plugin-macros@^2.4.2: 2343 - version "2.6.1" 2344 - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.6.1.tgz#41f7ead616fc36f6a93180e89697f69f51671181" 2345 - integrity sha512-6W2nwiXme6j1n2erPOnmRiWfObUhWH7Qw1LMi9XZy8cj+KtESu3T6asZvtk5bMQQjX8te35o7CFueiSdL/2NmQ== 2772 + babel-plugin-jest-hoist@^24.9.0: 2773 + version "24.9.0" 2774 + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" 2775 + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== 2346 2776 dependencies: 2347 - "@babel/runtime" "^7.4.2" 2348 - cosmiconfig "^5.2.0" 2349 - resolve "^1.10.0" 2777 + "@types/babel__traverse" "^7.0.6" 2778 + 2779 + babel-plugin-macros@^2.8.0: 2780 + version "2.8.0" 2781 + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" 2782 + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== 2783 + dependencies: 2784 + "@babel/runtime" "^7.7.2" 2785 + cosmiconfig "^6.0.0" 2786 + resolve "^1.12.0" 2350 2787 2351 - babel-plugin-remove-graphql-queries@^2.7.2: 2352 - version "2.7.2" 2353 - resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.7.2.tgz#101c8b26567e35c217e817e892135a9a04a5a805" 2354 - integrity sha512-kkIqi2+oZ7YCLbZbrhOGxPA/HuWpfvzRUxbD75SHqwxl9fZVWSLQhOUl72GEpAuEt4MeCEguKpMX100oDN3MQA== 2788 + babel-plugin-remove-graphql-queries@^2.7.19: 2789 + version "2.7.19" 2790 + resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.7.19.tgz#063b369cbf0123cbcebeffb75eab465d8f0b16c8" 2791 + integrity sha512-/DS620ztyyrqrqjmz/KHDt++ktn+4RdvfDf5KCUmt6iJOglgNm7uHkE+snuvvL/xhNNuuPBLErc23Q0cR6MSiQ== 2355 2792 2356 2793 "babel-plugin-styled-components@>= 1", babel-plugin-styled-components@^1.10.6: 2357 2794 version "1.10.6" ··· 2362 2799 "@babel/helper-module-imports" "^7.0.0" 2363 2800 babel-plugin-syntax-jsx "^6.18.0" 2364 2801 lodash "^4.17.11" 2365 - 2366 - babel-plugin-syntax-dynamic-import@^6.18.0: 2367 - version "6.18.0" 2368 - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" 2369 - integrity sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo= 2370 2802 2371 2803 babel-plugin-syntax-jsx@^6.18.0: 2372 2804 version "6.18.0" 2373 2805 resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" 2374 2806 integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= 2375 2807 2376 - babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: 2377 - version "7.0.0-beta.0" 2378 - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" 2379 - integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== 2380 - 2381 2808 babel-plugin-transform-react-remove-prop-types@^0.4.24: 2382 2809 version "0.4.24" 2383 2810 resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" 2384 2811 integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== 2385 2812 2386 - babel-preset-fbjs@^3.1.2: 2387 - version "3.2.0" 2388 - resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.2.0.tgz#c0e6347d3e0379ed84b3c2434d3467567aa05297" 2389 - integrity sha512-5Jo+JeWiVz2wHUUyAlvb/sSYnXNig9r+HqGAOSfh5Fzxp7SnAaR/tEGRJ1ZX7C77kfk82658w6R5Z+uPATTD9g== 2813 + babel-preset-gatsby@^0.2.26: 2814 + version "0.2.26" 2815 + resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.2.26.tgz#b27344c938cb5a20c81f4be134dde5f5b93ca256" 2816 + integrity sha512-qOM26AhAPW5xetUj579jBFICg16sqFHf3dPptRXi3zS7HpEHbtsOvB9VB68MEUj+WZrrlbR/EQuT69GA1XiBdQ== 2390 2817 dependencies: 2391 - "@babel/plugin-proposal-class-properties" "^7.0.0" 2392 - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" 2393 - "@babel/plugin-syntax-class-properties" "^7.0.0" 2394 - "@babel/plugin-syntax-flow" "^7.0.0" 2395 - "@babel/plugin-syntax-jsx" "^7.0.0" 2396 - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" 2397 - "@babel/plugin-transform-arrow-functions" "^7.0.0" 2398 - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" 2399 - "@babel/plugin-transform-block-scoping" "^7.0.0" 2400 - "@babel/plugin-transform-classes" "^7.0.0" 2401 - "@babel/plugin-transform-computed-properties" "^7.0.0" 2402 - "@babel/plugin-transform-destructuring" "^7.0.0" 2403 - "@babel/plugin-transform-flow-strip-types" "^7.0.0" 2404 - "@babel/plugin-transform-for-of" "^7.0.0" 2405 - "@babel/plugin-transform-function-name" "^7.0.0" 2406 - "@babel/plugin-transform-literals" "^7.0.0" 2407 - "@babel/plugin-transform-member-expression-literals" "^7.0.0" 2408 - "@babel/plugin-transform-modules-commonjs" "^7.0.0" 2409 - "@babel/plugin-transform-object-super" "^7.0.0" 2410 - "@babel/plugin-transform-parameters" "^7.0.0" 2411 - "@babel/plugin-transform-property-literals" "^7.0.0" 2412 - "@babel/plugin-transform-react-display-name" "^7.0.0" 2413 - "@babel/plugin-transform-react-jsx" "^7.0.0" 2414 - "@babel/plugin-transform-shorthand-properties" "^7.0.0" 2415 - "@babel/plugin-transform-spread" "^7.0.0" 2416 - "@babel/plugin-transform-template-literals" "^7.0.0" 2417 - babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" 2418 - 2419 - babel-preset-gatsby@^0.2.8: 2420 - version "0.2.8" 2421 - resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.2.8.tgz#976adb62bcf73f1a53374deb3a3a37b8880d5745" 2422 - integrity sha512-Cks3TRbx0CvjwW25noYZwideKp/gH8RJypuwd8gJ/Y1JDXrE7Vnjkvct6QH61XLcX7QIkRoissvOt1QqNWyaIg== 2423 - dependencies: 2424 - "@babel/plugin-proposal-class-properties" "^7.0.0" 2425 - "@babel/plugin-syntax-dynamic-import" "^7.0.0" 2426 - "@babel/plugin-transform-runtime" "^7.0.0" 2427 - "@babel/plugin-transform-spread" "^7.2.2" 2428 - "@babel/preset-env" "^7.4.1" 2429 - "@babel/preset-react" "^7.0.0" 2430 - "@babel/runtime" "^7.4.5" 2431 - babel-plugin-dynamic-import-node "^1.2.0" 2432 - babel-plugin-macros "^2.4.2" 2818 + "@babel/plugin-proposal-class-properties" "^7.7.4" 2819 + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.7.4" 2820 + "@babel/plugin-proposal-optional-chaining" "^7.7.5" 2821 + "@babel/plugin-syntax-dynamic-import" "^7.7.4" 2822 + "@babel/plugin-transform-runtime" "^7.7.6" 2823 + "@babel/plugin-transform-spread" "^7.7.4" 2824 + "@babel/preset-env" "^7.7.6" 2825 + "@babel/preset-react" "^7.7.4" 2826 + "@babel/runtime" "^7.7.6" 2827 + babel-plugin-dynamic-import-node "^2.3.0" 2828 + babel-plugin-macros "^2.8.0" 2433 2829 babel-plugin-transform-react-remove-prop-types "^0.4.24" 2434 2830 2435 2831 babel-preset-jest@^24.6.0: ··· 2439 2835 dependencies: 2440 2836 "@babel/plugin-syntax-object-rest-spread" "^7.0.0" 2441 2837 babel-plugin-jest-hoist "^24.6.0" 2838 + 2839 + babel-preset-jest@^24.9.0: 2840 + version "24.9.0" 2841 + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" 2842 + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== 2843 + dependencies: 2844 + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" 2845 + babel-plugin-jest-hoist "^24.9.0" 2442 2846 2443 2847 babel-runtime@^6.26.0: 2444 2848 version "6.26.0" ··· 2473 2877 resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" 2474 2878 integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== 2475 2879 2476 - base64id@1.0.0: 2477 - version "1.0.0" 2478 - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" 2479 - integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= 2880 + base64id@2.0.0: 2881 + version "2.0.0" 2882 + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" 2883 + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== 2480 2884 2481 2885 base@^0.11.1: 2482 2886 version "0.11.2" ··· 2510 2914 dependencies: 2511 2915 callsite "1.0.0" 2512 2916 2513 - better-opn@0.1.4, better-opn@^0.1.4: 2514 - version "0.1.4" 2515 - resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-0.1.4.tgz#271d03bd8bcb8406d2d9d4cda5c0944d726ea171" 2516 - integrity sha512-7V92EnOdjWOB9lKsVsthCcu1FdFT5qNJVTiOgGy5wPuTsSptMMxm2G1FGHgWu22MyX3tyDRzTWk4lxY2Ppdu7A== 2917 + better-opn@1.0.0, better-opn@^1.0.0: 2918 + version "1.0.0" 2919 + resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-1.0.0.tgz#0454e4bb9115c6a9e4e5744417dd9c97fb9fce41" 2920 + integrity sha512-q3eO2se4sFbTERB1dFBDdjTiIIpRohMErpwBX21lhPvmgmQNNrcQj0zbWRhMREDesJvyod9kxBS3kOtdAvkB/A== 2517 2921 dependencies: 2518 - opn "^5.4.0" 2922 + open "^6.4.0" 2519 2923 2520 2924 better-queue-memory@^1.0.1: 2521 2925 version "1.0.3" 2522 2926 resolved "https://registry.yarnpkg.com/better-queue-memory/-/better-queue-memory-1.0.3.tgz#4e71fbb5f5976188656e0c5610da7b411af41493" 2523 2927 integrity sha512-QLFkfV+k/7e4L4FR7kqkXKtRi22kl68c/3AaBs0ArDSz0iiuAl0DjVlb6gM220jW7izLE5TRy7oXOd4Cxa0wog== 2524 2928 2525 - better-queue@^3.8.6, better-queue@^3.8.7: 2929 + better-queue@^3.8.10, better-queue@^3.8.7: 2526 2930 version "3.8.10" 2527 2931 resolved "https://registry.yarnpkg.com/better-queue/-/better-queue-3.8.10.tgz#1c93b9ec4cb3d1b72eb91d0efcb84fc80e8c6835" 2528 2932 integrity sha512-e3gwNZgDCnNWl0An0Tz6sUjKDV9m6aB+K9Xg//vYeo8+KiH8pWhLFxkawcXhm6FpM//GfD9IQv/kmvWCAVVpKA== ··· 2589 2993 resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" 2590 2994 integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== 2591 2995 2996 + binary-extensions@^2.0.0: 2997 + version "2.0.0" 2998 + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" 2999 + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== 3000 + 2592 3001 bl@^1.0.0: 2593 3002 version "1.2.2" 2594 3003 resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" ··· 2602 3011 resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" 2603 3012 integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== 2604 3013 2605 - bluebird@^3.0.5, bluebird@^3.5.0, bluebird@^3.5.5: 2606 - version "3.5.5" 2607 - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" 2608 - integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== 3014 + bluebird@^3.0.5, bluebird@^3.5.0, bluebird@^3.5.5, bluebird@^3.7.2: 3015 + version "3.7.2" 3016 + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" 3017 + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== 2609 3018 2610 3019 bmp-js@^0.1.0: 2611 3020 version "0.1.0" ··· 2650 3059 resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 2651 3060 integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= 2652 3061 2653 - boxen@^1.2.1: 2654 - version "1.3.0" 2655 - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 2656 - integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== 2657 - dependencies: 2658 - ansi-align "^2.0.0" 2659 - camelcase "^4.0.0" 2660 - chalk "^2.0.1" 2661 - cli-boxes "^1.0.0" 2662 - string-width "^2.0.0" 2663 - term-size "^1.2.0" 2664 - widest-line "^2.0.0" 2665 - 2666 - boxen@^3.1.0: 3062 + boxen@^3.0.0: 2667 3063 version "3.2.0" 2668 3064 resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" 2669 3065 integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== ··· 2677 3073 type-fest "^0.3.0" 2678 3074 widest-line "^2.0.0" 2679 3075 3076 + boxen@^4.2.0: 3077 + version "4.2.0" 3078 + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" 3079 + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== 3080 + dependencies: 3081 + ansi-align "^3.0.0" 3082 + camelcase "^5.3.1" 3083 + chalk "^3.0.0" 3084 + cli-boxes "^2.2.0" 3085 + string-width "^4.1.0" 3086 + term-size "^2.1.0" 3087 + type-fest "^0.8.1" 3088 + widest-line "^3.1.0" 3089 + 2680 3090 brace-expansion@^1.0.0, brace-expansion@^1.1.7: 2681 3091 version "1.1.11" 2682 3092 resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" ··· 2701 3111 split-string "^3.0.2" 2702 3112 to-regex "^3.0.1" 2703 3113 2704 - braces@^3.0.1: 3114 + braces@^3.0.1, braces@~3.0.2: 2705 3115 version "3.0.2" 2706 3116 resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 2707 3117 integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== ··· 2792 3202 caniuse-lite "^1.0.30000844" 2793 3203 electron-to-chromium "^1.3.47" 2794 3204 2795 - browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.1, browserslist@^4.6.2: 2796 - version "4.6.3" 2797 - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.3.tgz#0530cbc6ab0c1f3fc8c819c72377ba55cf647f05" 2798 - integrity sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ== 3205 + browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.8.0, browserslist@^4.8.2: 3206 + version "4.8.3" 3207 + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" 3208 + integrity sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg== 2799 3209 dependencies: 2800 - caniuse-lite "^1.0.30000975" 2801 - electron-to-chromium "^1.3.164" 2802 - node-releases "^1.1.23" 3210 + caniuse-lite "^1.0.30001017" 3211 + electron-to-chromium "^1.3.322" 3212 + node-releases "^1.1.44" 3213 + 3214 + bs-logger@0.x: 3215 + version "0.2.6" 3216 + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" 3217 + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== 3218 + dependencies: 3219 + fast-json-stable-stringify "2.x" 2803 3220 2804 - bs-platform@^5.0.6: 2805 - version "5.0.6" 2806 - resolved "https://registry.yarnpkg.com/bs-platform/-/bs-platform-5.0.6.tgz#88c13041fb020479800de3d82c680bf971091425" 2807 - integrity sha512-6Boa2VEcWJp2WJr38L7bp3J929nYha7gDarjxb070jWzgfPJ/WbzjipmSfnu2eqqk1MfjEIpBipbPz6n1NISwA== 3221 + bs-platform@7.0.2-dev.1: 3222 + version "7.0.2-dev.1" 3223 + resolved "https://registry.yarnpkg.com/bs-platform/-/bs-platform-7.0.2-dev.1.tgz#9f9bf2daae0bc6ca122bb0446236e7eab8b79bdd" 3224 + integrity sha512-RuGk0eTIhvtQ8/X3YVISoKX5oIsOpMS/qQHvmnpmLKvwaKVYaTBxVpL8ktjkDkbvvzZoM6Xw93jwqRlQV6IDHQ== 2808 3225 2809 3226 bser@^2.0.0: 2810 3227 version "2.0.0" ··· 2855 3272 resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" 2856 3273 integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= 2857 3274 2858 - buffer-from@^1.0.0: 3275 + buffer-from@1.x, buffer-from@^1.0.0: 2859 3276 version "1.1.1" 2860 3277 resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 2861 3278 integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== ··· 2907 3324 resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 2908 3325 integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 2909 3326 2910 - cacache@^11.3.2: 2911 - version "11.3.3" 2912 - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" 2913 - integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== 3327 + cacache@^12.0.2: 3328 + version "12.0.3" 3329 + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" 3330 + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== 2914 3331 dependencies: 2915 3332 bluebird "^3.5.5" 2916 3333 chownr "^1.1.1" 2917 3334 figgy-pudding "^3.5.1" 2918 3335 glob "^7.1.4" 2919 3336 graceful-fs "^4.1.15" 3337 + infer-owner "^1.0.3" 2920 3338 lru-cache "^5.1.1" 2921 3339 mississippi "^3.0.0" 2922 3340 mkdirp "^0.5.1" ··· 2942 3360 union-value "^1.0.0" 2943 3361 unset-value "^1.0.0" 2944 3362 2945 - cache-manager-fs-hash@^0.0.6: 2946 - version "0.0.6" 2947 - resolved "https://registry.yarnpkg.com/cache-manager-fs-hash/-/cache-manager-fs-hash-0.0.6.tgz#fccc5a6b579080cbe2186697e51b5b8ff8ca9fd0" 2948 - integrity sha512-p1nmcCQH4/jyKqEqUqPSDDcCo0PjFdv56OvtSdUrSIB7s8rAfwETLZ0CHXWdAPyg0QaER/deTvl1dCXyjZ5xAA== 3363 + cache-manager-fs-hash@^0.0.7: 3364 + version "0.0.7" 3365 + resolved "https://registry.yarnpkg.com/cache-manager-fs-hash/-/cache-manager-fs-hash-0.0.7.tgz#297f34b9c1a2aaec7b526e7ae0742c4e3fae4888" 3366 + integrity sha512-7X+FPItAJf1tKKqJx6ljDJQc0fgSR5B+KPxFQLj+vYSL4q9XdrCbZldgsNb6wueRuIooj01wt0FubB08zaefRg== 2949 3367 dependencies: 2950 3368 es6-promisify "^6.0.0" 2951 3369 lockfile "^1.0.4" 2952 3370 2953 - cache-manager@^2.9.0: 2954 - version "2.9.1" 2955 - resolved "https://registry.yarnpkg.com/cache-manager/-/cache-manager-2.9.1.tgz#1b487252a77e63ccf46be5e41438282bcbc528fb" 2956 - integrity sha512-xHSL/neqi9HmaJJmPetbVoIp2C+vXXr2FgfVK6ZcS9H2nXQJVvf3DPm+yD2FG4g7cQSF8l3wOzQ8eHbWcqmOaQ== 3371 + cache-manager@^2.10.1: 3372 + version "2.10.1" 3373 + resolved "https://registry.yarnpkg.com/cache-manager/-/cache-manager-2.10.1.tgz#d8f312381255966cfc19c990bc8834c8d24edb2a" 3374 + integrity sha512-bk17v9IkLqNcbCzggEh82LEJhjHp+COnL57L7a0ESbM/cOuXIIBatdVjD/ps7vOsofI48++zAC14Ye+8v50flg== 2957 3375 dependencies: 2958 3376 async "1.5.2" 2959 3377 lru-cache "4.0.0" ··· 2970 3388 lowercase-keys "1.0.0" 2971 3389 normalize-url "2.0.1" 2972 3390 responselike "1.0.2" 3391 + 3392 + cacheable-request@^6.0.0: 3393 + version "6.1.0" 3394 + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" 3395 + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== 3396 + dependencies: 3397 + clone-response "^1.0.2" 3398 + get-stream "^5.1.0" 3399 + http-cache-semantics "^4.0.0" 3400 + keyv "^3.0.0" 3401 + lowercase-keys "^2.0.0" 3402 + normalize-url "^4.1.0" 3403 + responselike "^1.0.2" 2973 3404 2974 3405 call-me-maybe@^1.0.1: 2975 3406 version "1.0.1" ··· 2981 3412 resolved "https://registry.yarnpkg.com/callbag-from-iter/-/callbag-from-iter-1.2.0.tgz#c1886b08a447cd2efd9a140ec11743d705f26ca9" 2982 3413 integrity sha512-9rWvHOnRGp01YMRHHwgVZOO1vu4IRR8GcoH3FpSB16AMzum5juFWJPCMX/XnkJ9j6cic/G+kvb1Grvi6IuSmIQ== 2983 3414 2984 - callbag-from-obs@^1.2.0: 2985 - version "1.2.0" 2986 - resolved "https://registry.yarnpkg.com/callbag-from-obs/-/callbag-from-obs-1.2.0.tgz#f092f302f302b53abaf1a4d7a5393f9a65fac517" 2987 - integrity sha512-InhdPC6P4Gdpg7nuXSkocDFlb+//sbwCrVCYhxOHhSVm1gDcw/zSA+IF1gHdYtk4RQKKaCymUFCkVVUVSRThVQ== 2988 - dependencies: 2989 - symbol-observable "^1.2.0" 2990 - 2991 3415 callbag-iterate@^1.0.0: 2992 3416 version "1.0.0" 2993 3417 resolved "https://registry.yarnpkg.com/callbag-iterate/-/callbag-iterate-1.0.0.tgz#97116f09296ef2d5073b35125891dca93349aeeb" 2994 3418 integrity sha512-bynCbDuqGZkj1mXAhGr8jMf8Vhifps+G+pF3xlcz3jcaZLNXHghVjValnJtBTg2N74cyl347UzagJ8niJpyF6Q== 2995 3419 3420 + callbag-take@^1.4.0: 3421 + version "1.4.0" 3422 + resolved "https://registry.yarnpkg.com/callbag-take/-/callbag-take-1.4.0.tgz#cf14718cb2f0b83825969a6055fce2907b83fcc1" 3423 + integrity sha512-SMN236uYqjZ+8ypAY12qkV2QwutjOe96GyYPzUF9RKKJR5nRyu0fON4r4XBZ3ZonOWnDW05CWmKmS0mVQg5TIg== 3424 + dependencies: 3425 + callbag "^1.1.0" 3426 + 3427 + callbag@^1.1.0: 3428 + version "1.2.0" 3429 + resolved "https://registry.yarnpkg.com/callbag/-/callbag-1.2.0.tgz#45e73962a466056c6e5f86f5627b35cf0c4df101" 3430 + integrity sha512-RMcVOk2oyA8CyCt/HsLEvnvvttKlaGVaG0uOo5IY7RpdiPLhStjxv5oYre33VJfT8kJE+cuKLSNHooz7yCUdhQ== 3431 + 2996 3432 caller-callsite@^2.0.0: 2997 3433 version "2.0.0" 2998 3434 resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" ··· 3043 3479 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 3044 3480 integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= 3045 3481 3046 - camelcase@^4.0.0, camelcase@^4.1.0: 3482 + camelcase@^4.1.0: 3047 3483 version "4.1.0" 3048 3484 resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 3049 3485 integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= ··· 3068 3504 lodash.memoize "^4.1.2" 3069 3505 lodash.uniq "^4.5.0" 3070 3506 3071 - caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000971, caniuse-lite@^1.0.30000975: 3072 - version "1.0.30000978" 3073 - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000978.tgz#1e3346c27fc46bce9ac1ccd77863153a263dde56" 3074 - integrity sha512-H6gK6kxUzG6oAwg/Jal279z8pHw0BzrpZfwo/CA9FFm/vA0l8IhDfkZtepyJNE2Y4V6Dp3P3ubz6czby1/Mgsw== 3507 + caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001017: 3508 + version "1.0.30001019" 3509 + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001019.tgz#857e3fccaad2b2feb3f1f6d8a8f62d747ea648e1" 3510 + integrity sha512-6ljkLtF1KM5fQ+5ZN0wuyVvvebJxgJPTmScOMaFuQN2QuOzvRJnWSKfzQskQU5IOU4Gap3zasYPIinzwUjoj/g== 3075 3511 3076 3512 capture-exit@^2.0.0: 3077 3513 version "2.0.0" ··· 3079 3515 integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== 3080 3516 dependencies: 3081 3517 rsvp "^4.8.4" 3082 - 3083 - capture-stack-trace@^1.0.0: 3084 - version "1.0.1" 3085 - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" 3086 - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== 3087 3518 3088 3519 caseless@~0.12.0: 3089 3520 version "0.12.0" ··· 3116 3547 strip-ansi "^3.0.0" 3117 3548 supports-color "^2.0.0" 3118 3549 3119 - chalk@2.x, chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: 3550 + chalk@2.x, chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: 3120 3551 version "2.4.2" 3121 3552 resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 3122 3553 integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== ··· 3125 3556 escape-string-regexp "^1.0.5" 3126 3557 supports-color "^5.3.0" 3127 3558 3559 + chalk@^3.0.0: 3560 + version "3.0.0" 3561 + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" 3562 + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== 3563 + dependencies: 3564 + ansi-styles "^4.1.0" 3565 + supports-color "^7.1.0" 3566 + 3128 3567 change-case@^3.1.0: 3129 3568 version "3.1.0" 3130 3569 resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.1.0.tgz#0e611b7edc9952df2e8513b27b42de72647dd17e" ··· 3237 3676 optionalDependencies: 3238 3677 fsevents "^1.2.7" 3239 3678 3240 - chokidar@^2.0.2, chokidar@^2.1.6: 3241 - version "2.1.6" 3242 - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" 3243 - integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== 3679 + chokidar@3.3.0: 3680 + version "3.3.0" 3681 + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" 3682 + integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== 3683 + dependencies: 3684 + anymatch "~3.1.1" 3685 + braces "~3.0.2" 3686 + glob-parent "~5.1.0" 3687 + is-binary-path "~2.1.0" 3688 + is-glob "~4.0.1" 3689 + normalize-path "~3.0.0" 3690 + readdirp "~3.2.0" 3691 + optionalDependencies: 3692 + fsevents "~2.1.1" 3693 + 3694 + chokidar@^2.0.2, chokidar@^2.0.4, chokidar@^2.1.8: 3695 + version "2.1.8" 3696 + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" 3697 + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== 3244 3698 dependencies: 3245 3699 anymatch "^2.0.0" 3246 3700 async-each "^1.0.1" ··· 3261 3715 resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" 3262 3716 integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== 3263 3717 3264 - chrome-trace-event@^1.0.0: 3718 + chrome-trace-event@^1.0.0, chrome-trace-event@^1.0.2: 3265 3719 version "1.0.2" 3266 3720 resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" 3267 3721 integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== ··· 3273 3727 resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" 3274 3728 integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 3275 3729 3276 - ci-info@^1.5.0: 3277 - version "1.6.0" 3278 - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" 3279 - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== 3280 - 3281 3730 cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 3282 3731 version "1.0.4" 3283 3732 resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" ··· 3296 3745 isobject "^3.0.0" 3297 3746 static-extend "^0.1.1" 3298 3747 3299 - cli-boxes@^1.0.0: 3300 - version "1.0.0" 3301 - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 3302 - integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= 3748 + clean-stack@^2.0.0: 3749 + version "2.2.0" 3750 + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" 3751 + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== 3303 3752 3304 3753 cli-boxes@^2.2.0: 3305 3754 version "2.2.0" ··· 3312 3761 integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= 3313 3762 dependencies: 3314 3763 restore-cursor "^2.0.0" 3764 + 3765 + cli-cursor@^3.1.0: 3766 + version "3.1.0" 3767 + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" 3768 + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== 3769 + dependencies: 3770 + restore-cursor "^3.1.0" 3315 3771 3316 3772 cli-spinners@^1.0.0: 3317 3773 version "1.3.1" ··· 3336 3792 slice-ansi "0.0.4" 3337 3793 string-width "^1.0.1" 3338 3794 3339 - cli-truncate@^1.1.0: 3340 - version "1.1.0" 3341 - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086" 3342 - integrity sha512-bAtZo0u82gCfaAGfSNxUdTI9mNyza7D8w4CVCcaOsy7sgwDzvx6ekr6cuWJqY3UGzgnQ1+4wgENup5eIhgxEYA== 3795 + cli-truncate@^2.0.0: 3796 + version "2.1.0" 3797 + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" 3798 + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== 3343 3799 dependencies: 3344 - slice-ansi "^1.0.0" 3345 - string-width "^2.0.0" 3800 + slice-ansi "^3.0.0" 3801 + string-width "^4.2.0" 3346 3802 3347 3803 cli-width@^2.0.0: 3348 3804 version "2.2.0" 3349 3805 resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 3350 3806 integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= 3351 3807 3352 - clipboardy@^1.2.3: 3353 - version "1.2.3" 3354 - resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.3.tgz#0526361bf78724c1f20be248d428e365433c07ef" 3355 - integrity sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA== 3356 - dependencies: 3357 - arch "^2.1.0" 3358 - execa "^0.8.0" 3359 - 3360 - cliui@^3.2.0: 3361 - version "3.2.0" 3362 - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 3363 - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= 3808 + clipboardy@^2.1.0: 3809 + version "2.1.0" 3810 + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.1.0.tgz#0123a0c8fac92f256dc56335e0bb8be97a4909a5" 3811 + integrity sha512-2pzOUxWcLlXWtn+Jd6js3o12TysNOOVes/aQfg+MT/35vrxWzedHlLwyoJpXjsFKWm95BTNEcMGD9+a7mKzZkQ== 3364 3812 dependencies: 3365 - string-width "^1.0.1" 3366 - strip-ansi "^3.0.1" 3367 - wrap-ansi "^2.0.0" 3813 + arch "^2.1.1" 3814 + execa "^1.0.0" 3368 3815 3369 3816 cliui@^4.0.0: 3370 3817 version "4.1.0" ··· 3374 3821 string-width "^2.1.1" 3375 3822 strip-ansi "^4.0.0" 3376 3823 wrap-ansi "^2.0.0" 3824 + 3825 + cliui@^5.0.0: 3826 + version "5.0.0" 3827 + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" 3828 + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== 3829 + dependencies: 3830 + string-width "^3.1.0" 3831 + strip-ansi "^5.2.0" 3832 + wrap-ansi "^5.1.0" 3377 3833 3378 3834 clone-buffer@^1.0.0: 3379 3835 version "1.0.0" 3380 3836 resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" 3381 3837 integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= 3382 3838 3383 - clone-response@1.0.2: 3839 + clone-response@1.0.2, clone-response@^1.0.2: 3384 3840 version "1.0.2" 3385 3841 resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 3386 3842 integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= ··· 3425 3881 resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 3426 3882 integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 3427 3883 3428 - codecov@^3.5.0: 3429 - version "3.5.0" 3430 - resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.5.0.tgz#3d0748932f9cb41e1ad7f21fa346ef1b2b1bed47" 3431 - integrity sha512-/OsWOfIHaQIr7aeZ4pY0UC1PZT6kimoKFOFYFNb6wxo3iw12nRrh+mNGH72rnXxNsq6SGfesVPizm/6Q3XqcFQ== 3884 + codecov@^3.6.1: 3885 + version "3.6.1" 3886 + resolved "https://registry.yarnpkg.com/codecov/-/codecov-3.6.1.tgz#f39fc49413445555f81f8e3ca5730992843b4517" 3887 + integrity sha512-IUJB6WG47nWK7o50etF8jBadxdMw7DmoQg05yIljstXFBGB6clOZsIj6iD4P82T2YaIU3qq+FFu8K9pxgkCJDQ== 3432 3888 dependencies: 3433 3889 argv "^0.0.2" 3434 3890 ignore-walk "^3.0.1" ··· 3456 3912 dependencies: 3457 3913 color-name "1.1.3" 3458 3914 3915 + color-convert@^2.0.1: 3916 + version "2.0.1" 3917 + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 3918 + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 3919 + dependencies: 3920 + color-name "~1.1.4" 3921 + 3459 3922 color-name@1.1.3: 3460 3923 version "1.1.3" 3461 3924 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 3462 3925 integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 3463 3926 3464 - color-name@^1.0.0: 3927 + color-name@^1.0.0, color-name@~1.1.4: 3465 3928 version "1.1.4" 3466 3929 resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 3467 3930 integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== ··· 3504 3967 resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.8.tgz#715acefdd1223b9c9b37110a149c6392c2852291" 3505 3968 integrity sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw== 3506 3969 3507 - commander@^2.11.0, commander@^2.19.0, commander@^2.20.0, commander@~2.20.0: 3970 + commander@^2.11.0, commander@^2.20.0, commander@~2.20.0: 3508 3971 version "2.20.0" 3509 3972 resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" 3510 3973 integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== ··· 3516 3979 dependencies: 3517 3980 graceful-readlink ">= 1.0.0" 3518 3981 3519 - common-tags@^1.4.0: 3982 + common-tags@^1.8.0: 3520 3983 version "1.8.0" 3521 3984 resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" 3522 3985 integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== ··· 3562 4025 dependencies: 3563 4026 mime-db ">= 1.40.0 < 2" 3564 4027 3565 - compression@^1.7.3, compression@^1.7.4: 4028 + compression@^1.7.4: 3566 4029 version "1.7.4" 3567 4030 resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" 3568 4031 integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== ··· 3622 4085 write-file-atomic "^2.0.0" 3623 4086 xdg-basedir "^3.0.0" 3624 4087 3625 - confusing-browser-globals@^1.0.6: 3626 - version "1.0.7" 3627 - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.7.tgz#5ae852bd541a910e7ffb2dbb864a2d21a36ad29b" 3628 - integrity sha512-cgHI1azax5ATrZ8rJ+ODDML9Fvu67PimB6aNxBrc/QwSaDaM9eTfIEUHx3bBLJJ82ioSb+/5zfsMCCEJax3ByQ== 4088 + configstore@^5.0.0: 4089 + version "5.0.0" 4090 + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.0.tgz#37de662c7a49b5fe8dbcf8f6f5818d2d81ed852b" 4091 + integrity sha512-eE/hvMs7qw7DlcB5JPRnthmrITuHMmACUJAp89v6PT6iOqzoLS7HRWhBtuHMlhNHo2AhUSA/3Dh1bKNJHcublQ== 4092 + dependencies: 4093 + dot-prop "^5.1.0" 4094 + graceful-fs "^4.1.2" 4095 + make-dir "^3.0.0" 4096 + unique-string "^2.0.0" 4097 + write-file-atomic "^3.0.0" 4098 + xdg-basedir "^4.0.0" 4099 + 4100 + confusing-browser-globals@^1.0.9: 4101 + version "1.0.9" 4102 + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" 4103 + integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw== 3629 4104 3630 4105 connect-history-api-fallback@^1.6.0: 3631 4106 version "1.6.0" ··· 3692 4167 console-polyfill "^0.1.2" 3693 4168 parse-unit "^1.0.1" 3694 4169 3695 - convert-hrtime@^2.0.0: 3696 - version "2.0.0" 3697 - resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-2.0.0.tgz#19bfb2c9162f9e11c2f04c2c79de2b7e8095c627" 3698 - integrity sha1-Gb+yyRYvnhHC8Ewsed4rfoCVxic= 4170 + convert-hrtime@^3.0.0: 4171 + version "3.0.0" 4172 + resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-3.0.0.tgz#62c7593f5809ca10be8da858a6d2f702bcda00aa" 4173 + integrity sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA== 3699 4174 3700 4175 convert-source-map@^1.4.0, convert-source-map@^1.7.0: 3701 4176 version "1.7.0" ··· 3736 4211 resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 3737 4212 integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 3738 4213 3739 - copyfiles@^1.2.0: 3740 - version "1.2.0" 3741 - resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-1.2.0.tgz#a8da3ac41aa2220ae29bd3c58b6984294f2c593c" 3742 - integrity sha1-qNo6xBqiIgrim9PFi2mEKU8sWTw= 4214 + copyfiles@^2.1.1: 4215 + version "2.1.1" 4216 + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.1.1.tgz#d430e122d7880f92c45d372208b0af03b0c39db6" 4217 + integrity sha512-y6DZHve80whydXzBal7r70TBgKMPKesVRR1Sn/raUu7Jh/i7iSLSyGvYaq0eMJ/3Y/CKghwzjY32q1WzEnpp3Q== 3743 4218 dependencies: 3744 4219 glob "^7.0.5" 3745 - ltcdr "^2.2.1" 3746 4220 minimatch "^3.0.3" 3747 4221 mkdirp "^0.5.1" 3748 4222 noms "0.0.0" 3749 4223 through2 "^2.0.1" 4224 + yargs "^13.2.4" 3750 4225 3751 - core-js-compat@^3.1.1: 3752 - version "3.1.4" 3753 - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz#e4d0c40fbd01e65b1d457980fe4112d4358a7408" 3754 - integrity sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg== 4226 + core-js-compat@^3.6.0: 4227 + version "3.6.1" 4228 + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.1.tgz#39638c935c83c93a793abb628b252ec43e85783a" 4229 + integrity sha512-2Tl1EuxZo94QS2VeH28Ebf5g3xbPZG/hj/N5HDDy4XMP/ImR0JIer/nggQRiMN91Q54JVkGbytf42wO29oXVHg== 3755 4230 dependencies: 3756 - browserslist "^4.6.2" 3757 - core-js-pure "3.1.4" 3758 - semver "^6.1.1" 4231 + browserslist "^4.8.2" 4232 + semver "7.0.0" 3759 4233 3760 - core-js-pure@3.1.4: 3761 - version "3.1.4" 3762 - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz#5fa17dc77002a169a3566cc48dc774d2e13e3769" 3763 - integrity sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA== 3764 - 3765 - core-js@2, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0, core-js@^2.5.7, core-js@^2.6.5: 3766 - version "2.6.9" 3767 - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" 3768 - integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== 4234 + core-js@2, core-js@^2.4.0, core-js@^2.5.7, core-js@^2.6.11, core-js@^2.6.5: 4235 + version "2.6.11" 4236 + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" 4237 + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== 3769 4238 3770 4239 core-js@^1.0.0: 3771 4240 version "1.2.7" ··· 3785 4254 object-assign "^4" 3786 4255 vary "^1" 3787 4256 3788 - cosmiconfig@^5.0.0, cosmiconfig@^5.2.0, cosmiconfig@^5.2.1: 4257 + cosmiconfig@^5.0.0, cosmiconfig@^5.2.1: 3789 4258 version "5.2.1" 3790 4259 resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" 3791 4260 integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== ··· 3795 4264 js-yaml "^3.13.1" 3796 4265 parse-json "^4.0.0" 3797 4266 4267 + cosmiconfig@^6.0.0: 4268 + version "6.0.0" 4269 + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" 4270 + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== 4271 + dependencies: 4272 + "@types/parse-json" "^4.0.0" 4273 + import-fresh "^3.1.0" 4274 + parse-json "^5.0.0" 4275 + path-type "^4.0.0" 4276 + yaml "^1.7.2" 4277 + 3798 4278 create-ecdh@^4.0.0: 3799 4279 version "4.0.3" 3800 4280 resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" ··· 3802 4282 dependencies: 3803 4283 bn.js "^4.1.0" 3804 4284 elliptic "^6.0.0" 3805 - 3806 - create-error-class@^3.0.0: 3807 - version "3.0.2" 3808 - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 3809 - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= 3810 - dependencies: 3811 - capture-stack-trace "^1.0.0" 3812 4285 3813 4286 create-hash@^1.1.0, create-hash@^1.1.2: 3814 4287 version "1.2.0" ··· 3869 4342 shebang-command "^1.2.0" 3870 4343 which "^1.2.9" 3871 4344 4345 + cross-spawn@^7.0.0: 4346 + version "7.0.1" 4347 + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" 4348 + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== 4349 + dependencies: 4350 + path-key "^3.1.0" 4351 + shebang-command "^2.0.0" 4352 + which "^2.0.1" 4353 + 3872 4354 crypt@~0.0.1: 3873 4355 version "0.0.2" 3874 4356 resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" ··· 3896 4378 resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 3897 4379 integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= 3898 4380 4381 + crypto-random-string@^2.0.0: 4382 + version "2.0.0" 4383 + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" 4384 + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== 4385 + 3899 4386 css-color-keywords@^1.0.0: 3900 4387 version "1.0.0" 3901 4388 resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" ··· 3914 4401 postcss "^7.0.1" 3915 4402 timsort "^0.3.0" 3916 4403 3917 - css-loader@^1.0.0: 4404 + css-loader@^1.0.1: 3918 4405 version "1.0.1" 3919 4406 resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz#6885bb5233b35ec47b006057da01cc640b6b79fe" 3920 4407 integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw== ··· 4079 4566 resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" 4080 4567 integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== 4081 4568 4082 - cssnano@^4.1.0: 4569 + cssnano@^4.1.10: 4083 4570 version "4.1.10" 4084 4571 resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" 4085 4572 integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== ··· 4170 4657 resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" 4171 4658 integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= 4172 4659 4173 - debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: 4660 + debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.9: 4174 4661 version "2.6.9" 4175 4662 resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 4176 4663 integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 4177 4664 dependencies: 4178 4665 ms "2.0.0" 4179 4666 4180 - debug@^3.1.0, debug@^3.2.5, debug@^3.2.6: 4667 + debug@=3.1.0, debug@~3.1.0: 4668 + version "3.1.0" 4669 + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 4670 + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 4671 + dependencies: 4672 + ms "2.0.0" 4673 + 4674 + debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: 4181 4675 version "3.2.6" 4182 4676 resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 4183 4677 integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== ··· 4191 4685 dependencies: 4192 4686 ms "^2.1.1" 4193 4687 4194 - debug@~3.1.0: 4195 - version "3.1.0" 4196 - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 4197 - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 4198 - dependencies: 4199 - ms "2.0.0" 4200 - 4201 - decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: 4688 + decamelize@^1.1.2, decamelize@^1.2.0: 4202 4689 version "1.2.0" 4203 4690 resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 4204 4691 integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= ··· 4273 4760 resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" 4274 4761 integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= 4275 4762 4276 - deep-equal@^1.0.1: 4277 - version "1.0.1" 4278 - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 4279 - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= 4763 + deep-equal@^1.0.1, deep-equal@^1.1.0: 4764 + version "1.1.1" 4765 + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" 4766 + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== 4767 + dependencies: 4768 + is-arguments "^1.0.4" 4769 + is-date-object "^1.0.1" 4770 + is-regex "^1.0.4" 4771 + object-is "^1.0.1" 4772 + object-keys "^1.1.1" 4773 + regexp.prototype.flags "^1.2.0" 4280 4774 4281 4775 deep-extend@^0.6.0: 4282 4776 version "0.6.0" ··· 4300 4794 dependencies: 4301 4795 execa "^1.0.0" 4302 4796 ip-regex "^2.1.0" 4797 + 4798 + defer-to-connect@^1.0.1: 4799 + version "1.1.1" 4800 + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.1.tgz#88ae694b93f67b81815a2c8c769aef6574ac8f2f" 4801 + integrity sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ== 4303 4802 4304 4803 define-properties@^1.1.2, define-properties@^1.1.3: 4305 4804 version "1.1.3" ··· 4330 4829 is-descriptor "^1.0.2" 4331 4830 isobject "^3.0.1" 4332 4831 4333 - del@^3.0.0: 4334 - version "3.0.0" 4335 - resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" 4336 - integrity sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU= 4337 - dependencies: 4338 - globby "^6.1.0" 4339 - is-path-cwd "^1.0.0" 4340 - is-path-in-cwd "^1.0.0" 4341 - p-map "^1.1.1" 4342 - pify "^3.0.0" 4343 - rimraf "^2.2.8" 4344 - 4345 4832 del@^4.1.1: 4346 4833 version "4.1.1" 4347 4834 resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" ··· 4355 4842 pify "^4.0.1" 4356 4843 rimraf "^2.6.3" 4357 4844 4358 - del@^5.0.0: 4359 - version "5.0.0" 4360 - resolved "https://registry.yarnpkg.com/del/-/del-5.0.0.tgz#4fa698b7a1ffb4e2ab3e8929ed699799654d6720" 4361 - integrity sha512-TfU3nUY0WDIhN18eq+pgpbLY9AfL5RfiE9czKaTSolc6aK7qASXfDErvYgjV1UqCR4sNXDoxO0/idPmhDUt2Sg== 4845 + del@^5.0.0, del@^5.1.0: 4846 + version "5.1.0" 4847 + resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" 4848 + integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== 4362 4849 dependencies: 4363 - globby "^10.0.0" 4364 - is-path-cwd "^2.0.0" 4365 - is-path-in-cwd "^2.0.0" 4366 - p-map "^2.0.0" 4367 - rimraf "^2.6.3" 4850 + globby "^10.0.1" 4851 + graceful-fs "^4.2.2" 4852 + is-glob "^4.0.1" 4853 + is-path-cwd "^2.2.0" 4854 + is-path-inside "^3.0.1" 4855 + p-map "^3.0.0" 4856 + rimraf "^3.0.0" 4857 + slash "^3.0.0" 4368 4858 4369 4859 delayed-stream@~1.0.0: 4370 4860 version "1.0.0" ··· 4401 4891 dependencies: 4402 4892 repeat-string "^1.5.4" 4403 4893 4404 - detect-indent@^5.0.0: 4405 - version "5.0.0" 4406 - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" 4407 - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= 4894 + detect-indent@^6.0.0: 4895 + version "6.0.0" 4896 + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" 4897 + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== 4408 4898 4409 4899 detect-libc@^1.0.2, detect-libc@^1.0.3: 4410 4900 version "1.0.3" ··· 4429 4919 address "^1.0.1" 4430 4920 debug "^2.6.0" 4431 4921 4432 - detect-port@^1.2.1: 4922 + detect-port@^1.3.0: 4433 4923 version "1.3.0" 4434 4924 resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" 4435 4925 integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== ··· 4459 4949 tmp "^0.0.31" 4460 4950 tslib "^1.6.0" 4461 4951 4462 - diff-sequences@^24.3.0: 4463 - version "24.3.0" 4464 - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" 4465 - integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== 4952 + diff-sequences@^24.9.0: 4953 + version "24.9.0" 4954 + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" 4955 + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== 4466 4956 4467 4957 diffie-hellman@^5.0.0: 4468 4958 version "5.0.3" ··· 4537 5027 dependencies: 4538 5028 utila "~0.4" 4539 5029 4540 - dom-helpers@^3.2.1: 5030 + dom-helpers@^3.4.0: 4541 5031 version "3.4.0" 4542 5032 resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" 4543 5033 integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== ··· 4611 5101 dependencies: 4612 5102 is-obj "^1.0.0" 4613 5103 4614 - dotenv@^4.0.0: 4615 - version "4.0.0" 4616 - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" 4617 - integrity sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0= 5104 + dot-prop@^5.1.0: 5105 + version "5.2.0" 5106 + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" 5107 + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== 5108 + dependencies: 5109 + is-obj "^2.0.0" 5110 + 5111 + dotenv@^8.2.0: 5112 + version "8.2.0" 5113 + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" 5114 + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== 4618 5115 4619 5116 download@^6.2.2: 4620 5117 version "6.2.5" ··· 4684 5181 resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 4685 5182 integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 4686 5183 4687 - electron-to-chromium@^1.3.164, electron-to-chromium@^1.3.47: 4688 - version "1.3.175" 4689 - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.175.tgz#a269716af5e549f9f3989ae38ba484881dcb3702" 4690 - integrity sha512-cQ0o7phcPA0EYkN4juZy/rq4XVxl/1ywQnytDT9hZTC0cHfaOBqWK2XlWp9Mk8xRGntgnmxlHTOux4HLb2ZNnA== 5184 + electron-to-chromium@^1.3.322, electron-to-chromium@^1.3.47: 5185 + version "1.3.326" 5186 + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.326.tgz#71715aca9afd328ea208a3bc4651c15b869f0d1b" 5187 + integrity sha512-kaBmGWJlLW5bGEbm7/HWG9jt4oH+uecBIIfzFWfFkgqssPT2I6RDenGqo4wmKzm7seNu7DSCRZBXCuf7w8dtkQ== 4691 5188 4692 5189 elegant-spinner@^1.0.1: 4693 5190 version "1.0.1" ··· 4717 5214 resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 4718 5215 integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 4719 5216 5217 + emoji-regex@^8.0.0: 5218 + version "8.0.0" 5219 + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 5220 + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 5221 + 4720 5222 emojis-list@^2.0.0: 4721 5223 version "2.1.0" 4722 5224 resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" ··· 4741 5243 dependencies: 4742 5244 once "^1.4.0" 4743 5245 4744 - engine.io-client@~3.3.1: 4745 - version "3.3.2" 4746 - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.3.2.tgz#04e068798d75beda14375a264bb3d742d7bc33aa" 4747 - integrity sha512-y0CPINnhMvPuwtqXfsGuWE8BB66+B6wTtCofQDRecMQPYX3MYUZXFNKDhdrSe3EVjgOu4V3rxdeqN/Tr91IgbQ== 5246 + engine.io-client@~3.4.0: 5247 + version "3.4.0" 5248 + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.0.tgz#82a642b42862a9b3f7a188f41776b2deab643700" 5249 + integrity sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA== 4748 5250 dependencies: 4749 5251 component-emitter "1.2.1" 4750 5252 component-inherit "0.0.3" 4751 - debug "~3.1.0" 4752 - engine.io-parser "~2.1.1" 5253 + debug "~4.1.0" 5254 + engine.io-parser "~2.2.0" 4753 5255 has-cors "1.1.0" 4754 5256 indexof "0.0.1" 4755 5257 parseqs "0.0.5" ··· 4758 5260 xmlhttprequest-ssl "~1.5.4" 4759 5261 yeast "0.1.2" 4760 5262 4761 - engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: 4762 - version "2.1.3" 4763 - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" 4764 - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== 5263 + engine.io-parser@~2.2.0: 5264 + version "2.2.0" 5265 + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" 5266 + integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== 4765 5267 dependencies: 4766 5268 after "0.8.2" 4767 5269 arraybuffer.slice "~0.0.7" ··· 4769 5271 blob "0.0.5" 4770 5272 has-binary2 "~1.0.2" 4771 5273 4772 - engine.io@~3.3.1: 4773 - version "3.3.2" 4774 - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz#18cbc8b6f36e9461c5c0f81df2b830de16058a59" 4775 - integrity sha512-AsaA9KG7cWPXWHp5FvHdDWY3AMWeZ8x+2pUVLcn71qE5AtAzgGbxuclOytygskw8XGmiQafTmnI9Bix3uihu2w== 5274 + engine.io@~3.4.0: 5275 + version "3.4.0" 5276 + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.0.tgz#3a962cc4535928c252759a00f98519cb46c53ff3" 5277 + integrity sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w== 4776 5278 dependencies: 4777 5279 accepts "~1.3.4" 4778 - base64id "1.0.0" 5280 + base64id "2.0.0" 4779 5281 cookie "0.3.1" 4780 - debug "~3.1.0" 4781 - engine.io-parser "~2.1.0" 4782 - ws "~6.1.0" 5282 + debug "~4.1.0" 5283 + engine.io-parser "~2.2.0" 5284 + ws "^7.1.2" 4783 5285 4784 5286 enhanced-resolve@^4.1.0: 4785 5287 version "4.1.0" ··· 4795 5297 resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" 4796 5298 integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== 4797 5299 4798 - envinfo@^5.8.1: 4799 - version "5.12.1" 4800 - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-5.12.1.tgz#83068c33e0972eb657d6bc69a6df30badefb46ef" 4801 - integrity sha512-pwdo0/G3CIkQ0y6PCXq4RdkvId2elvtPCJMG0konqlrfkWQbf1DWeH9K2b/cvu2YgGvPPTOnonZxXM1gikFu1w== 5300 + envinfo@^7.5.0: 5301 + version "7.5.0" 5302 + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" 5303 + integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== 4802 5304 4803 5305 eol@^0.8.1: 4804 5306 version "0.8.1" ··· 4826 5328 dependencies: 4827 5329 stackframe "^1.0.4" 4828 5330 4829 - es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: 4830 - version "1.13.0" 4831 - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" 4832 - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== 5331 + es-abstract@^1.12.0, es-abstract@^1.17.0-next.1, es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: 5332 + version "1.17.0" 5333 + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" 5334 + integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug== 4833 5335 dependencies: 4834 - es-to-primitive "^1.2.0" 5336 + es-to-primitive "^1.2.1" 4835 5337 function-bind "^1.1.1" 4836 5338 has "^1.0.3" 4837 - is-callable "^1.1.4" 4838 - is-regex "^1.0.4" 4839 - object-keys "^1.0.12" 5339 + has-symbols "^1.0.1" 5340 + is-callable "^1.1.5" 5341 + is-regex "^1.0.5" 5342 + object-inspect "^1.7.0" 5343 + object-keys "^1.1.1" 5344 + object.assign "^4.1.0" 5345 + string.prototype.trimleft "^2.1.1" 5346 + string.prototype.trimright "^2.1.1" 4840 5347 4841 - es-to-primitive@^1.2.0: 4842 - version "1.2.0" 4843 - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" 4844 - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== 5348 + es-to-primitive@^1.2.1: 5349 + version "1.2.1" 5350 + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 5351 + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 4845 5352 dependencies: 4846 5353 is-callable "^1.1.4" 4847 5354 is-date-object "^1.0.1" ··· 4886 5393 optionalDependencies: 4887 5394 source-map "~0.6.1" 4888 5395 4889 - eslint-config-react-app@^3.0.0: 4890 - version "3.0.8" 4891 - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.8.tgz#6f606828ba30bafee7d744c41cd07a3fea8f3035" 4892 - integrity sha512-Ovi6Bva67OjXrom9Y/SLJRkrGqKhMAL0XCH8BizPhjEVEhYczl2ZKiNZI2CuqO5/CJwAfMwRXAVGY0KToWr1aA== 5396 + eslint-config-react-app@^5.1.0: 5397 + version "5.1.0" 5398 + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.1.0.tgz#a37b3f2d4f56f856f93277281ef52bd791273e63" 5399 + integrity sha512-hBaxisHC6HXRVvxX+/t1n8mOdmCVIKgkXsf2WoUkJi7upHJTwYTsdCmx01QPOjKNT34QMQQ9sL0tVBlbiMFjxA== 4893 5400 dependencies: 4894 - confusing-browser-globals "^1.0.6" 5401 + confusing-browser-globals "^1.0.9" 4895 5402 4896 5403 eslint-import-resolver-node@^0.3.2: 4897 5404 version "0.3.2" ··· 4901 5408 debug "^2.6.9" 4902 5409 resolve "^1.5.0" 4903 5410 4904 - eslint-loader@^2.1.0: 4905 - version "2.1.2" 4906 - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.2.tgz#453542a1230d6ffac90e4e7cb9cadba9d851be68" 4907 - integrity sha512-rA9XiXEOilLYPOIInvVH5S/hYfyTPyxag6DZhoQOduM+3TkghAEQ3VcFO8VnX4J4qg/UIBzp72aOf/xvYmpmsg== 5411 + eslint-loader@^2.2.1: 5412 + version "2.2.1" 5413 + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" 5414 + integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== 4908 5415 dependencies: 4909 5416 loader-fs-cache "^1.0.0" 4910 5417 loader-utils "^1.0.2" ··· 4912 5419 object-hash "^1.1.4" 4913 5420 rimraf "^2.6.1" 4914 5421 4915 - eslint-module-utils@^2.4.0: 4916 - version "2.4.0" 4917 - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" 4918 - integrity sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw== 5422 + eslint-module-utils@^2.4.1: 5423 + version "2.5.0" 5424 + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz#cdf0b40d623032274ccd2abd7e64c4e524d6e19c" 5425 + integrity sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw== 4919 5426 dependencies: 4920 - debug "^2.6.8" 5427 + debug "^2.6.9" 4921 5428 pkg-dir "^2.0.0" 4922 5429 4923 - eslint-plugin-flowtype@^2.46.1: 4924 - version "2.50.3" 4925 - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz#61379d6dce1d010370acd6681740fd913d68175f" 4926 - integrity sha512-X+AoKVOr7Re0ko/yEXyM5SSZ0tazc6ffdIOocp2fFUlWoDt7DV0Bz99mngOkAFLOAWjqRA5jPwqUCbrx13XoxQ== 5430 + eslint-plugin-eslint-plugin@^2.1.0: 5431 + version "2.1.0" 5432 + resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz#a7a00f15a886957d855feacaafee264f039e62d5" 5433 + integrity sha512-kT3A/ZJftt28gbl/Cv04qezb/NQ1dwYIbi8lyf806XMxkus7DvOVCLIfTXMrorp322Pnoez7+zabXH29tADIDg== 5434 + 5435 + eslint-plugin-flowtype@^3.13.0: 5436 + version "3.13.0" 5437 + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz#e241ebd39c0ce519345a3f074ec1ebde4cf80f2c" 5438 + integrity sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw== 4927 5439 dependencies: 4928 - lodash "^4.17.10" 5440 + lodash "^4.17.15" 4929 5441 4930 - eslint-plugin-graphql@^3.0.3: 4931 - version "3.0.3" 4932 - resolved "https://registry.yarnpkg.com/eslint-plugin-graphql/-/eslint-plugin-graphql-3.0.3.tgz#9ecdaf5ea8397973e29cea9dbf860420694e9df0" 4933 - integrity sha512-hHwLyxSkC5rkakJ/SNTWwOswPdVhvfyMCnEOloevrLQIOHUNVIQBg1ljCaRe9C40HdzgcGUFUdG5BHLCKm8tuw== 5442 + eslint-plugin-graphql@^3.1.0: 5443 + version "3.1.1" 5444 + resolved "https://registry.yarnpkg.com/eslint-plugin-graphql/-/eslint-plugin-graphql-3.1.1.tgz#640f7f73f12cee2f7145140bd2ff21694018bff5" 5445 + integrity sha512-VNu2AipS8P1BAnE/tcJ2EmBWjFlCnG+1jKdUlFNDQjocWZlFiPpMu9xYNXePoEXK+q+jG51M/6PdhOjEgJZEaQ== 4934 5446 dependencies: 4935 5447 graphql-config "^2.0.1" 4936 5448 lodash "^4.11.1" 4937 5449 4938 - eslint-plugin-import@^2.9.0: 4939 - version "2.18.0" 4940 - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.0.tgz#7a5ba8d32622fb35eb9c8db195c2090bd18a3678" 4941 - integrity sha512-PZpAEC4gj/6DEMMoU2Df01C5c50r7zdGIN52Yfi7CvvWaYssG7Jt5R9nFG5gmqodxNOz9vQS87xk6Izdtpdrig== 5450 + eslint-plugin-import@^2.19.1: 5451 + version "2.19.1" 5452 + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz#5654e10b7839d064dd0d46cd1b88ec2133a11448" 5453 + integrity sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw== 4942 5454 dependencies: 4943 5455 array-includes "^3.0.3" 5456 + array.prototype.flat "^1.2.1" 4944 5457 contains-path "^0.1.0" 4945 5458 debug "^2.6.9" 4946 5459 doctrine "1.5.0" 4947 5460 eslint-import-resolver-node "^0.3.2" 4948 - eslint-module-utils "^2.4.0" 5461 + eslint-module-utils "^2.4.1" 4949 5462 has "^1.0.3" 4950 - lodash "^4.17.11" 4951 5463 minimatch "^3.0.4" 5464 + object.values "^1.1.0" 4952 5465 read-pkg-up "^2.0.0" 4953 - resolve "^1.11.0" 5466 + resolve "^1.12.0" 4954 5467 4955 - eslint-plugin-jsx-a11y@^6.0.3: 4956 - version "6.2.1" 4957 - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c" 4958 - integrity sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w== 5468 + eslint-plugin-jsx-a11y@^6.2.3: 5469 + version "6.2.3" 5470 + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" 5471 + integrity sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg== 4959 5472 dependencies: 5473 + "@babel/runtime" "^7.4.5" 4960 5474 aria-query "^3.0.0" 4961 5475 array-includes "^3.0.3" 4962 5476 ast-types-flow "^0.0.7" ··· 4964 5478 damerau-levenshtein "^1.0.4" 4965 5479 emoji-regex "^7.0.2" 4966 5480 has "^1.0.3" 4967 - jsx-ast-utils "^2.0.1" 5481 + jsx-ast-utils "^2.2.1" 4968 5482 4969 - eslint-plugin-react@^7.8.2: 4970 - version "7.14.2" 4971 - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.2.tgz#94c193cc77a899ac0ecbb2766fbef88685b7ecc1" 4972 - integrity sha512-jZdnKe3ip7FQOdjxks9XPN0pjUKZYq48OggNMd16Sk+8VXx6JOvXmlElxROCgp7tiUsTsze3jd78s/9AFJP2mA== 5483 + eslint-plugin-react-hooks@^1.7.0: 5484 + version "1.7.0" 5485 + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" 5486 + integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== 5487 + 5488 + eslint-plugin-react@^7.17.0: 5489 + version "7.17.0" 5490 + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.17.0.tgz#a31b3e134b76046abe3cd278e7482bd35a1d12d7" 5491 + integrity sha512-ODB7yg6lxhBVMeiH1c7E95FLD4E/TwmFjltiU+ethv7KPdCwgiFuOZg9zNRHyufStTDLl/dEFqI2Q1VPmCd78A== 4973 5492 dependencies: 4974 5493 array-includes "^3.0.3" 4975 5494 doctrine "^2.1.0" 5495 + eslint-plugin-eslint-plugin "^2.1.0" 4976 5496 has "^1.0.3" 4977 - jsx-ast-utils "^2.1.0" 5497 + jsx-ast-utils "^2.2.3" 4978 5498 object.entries "^1.1.0" 4979 - object.fromentries "^2.0.0" 5499 + object.fromentries "^2.0.1" 4980 5500 object.values "^1.1.0" 4981 5501 prop-types "^15.7.2" 4982 - resolve "^1.10.1" 4983 - 4984 - eslint-scope@3.7.1: 4985 - version "3.7.1" 4986 - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" 4987 - integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= 4988 - dependencies: 4989 - esrecurse "^4.1.0" 4990 - estraverse "^4.1.1" 5502 + resolve "^1.13.1" 4991 5503 4992 5504 eslint-scope@^4.0.0, eslint-scope@^4.0.3: 4993 5505 version "4.0.3" ··· 4997 5509 esrecurse "^4.1.0" 4998 5510 estraverse "^4.1.1" 4999 5511 5000 - eslint-utils@^1.3.1: 5001 - version "1.3.1" 5002 - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" 5003 - integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== 5512 + eslint-scope@^5.0.0: 5513 + version "5.0.0" 5514 + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" 5515 + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== 5516 + dependencies: 5517 + esrecurse "^4.1.0" 5518 + estraverse "^4.1.1" 5004 5519 5005 - eslint-visitor-keys@^1.0.0: 5006 - version "1.0.0" 5007 - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 5008 - integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== 5520 + eslint-utils@^1.4.3: 5521 + version "1.4.3" 5522 + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" 5523 + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== 5524 + dependencies: 5525 + eslint-visitor-keys "^1.1.0" 5526 + 5527 + eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: 5528 + version "1.1.0" 5529 + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" 5530 + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== 5009 5531 5010 - eslint@^5.6.0: 5011 - version "5.16.0" 5012 - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" 5013 - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== 5532 + eslint@^6.7.2: 5533 + version "6.8.0" 5534 + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" 5535 + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== 5014 5536 dependencies: 5015 5537 "@babel/code-frame" "^7.0.0" 5016 - ajv "^6.9.1" 5538 + ajv "^6.10.0" 5017 5539 chalk "^2.1.0" 5018 5540 cross-spawn "^6.0.5" 5019 5541 debug "^4.0.1" 5020 5542 doctrine "^3.0.0" 5021 - eslint-scope "^4.0.3" 5022 - eslint-utils "^1.3.1" 5023 - eslint-visitor-keys "^1.0.0" 5024 - espree "^5.0.1" 5543 + eslint-scope "^5.0.0" 5544 + eslint-utils "^1.4.3" 5545 + eslint-visitor-keys "^1.1.0" 5546 + espree "^6.1.2" 5025 5547 esquery "^1.0.1" 5026 5548 esutils "^2.0.2" 5027 5549 file-entry-cache "^5.0.1" 5028 5550 functional-red-black-tree "^1.0.1" 5029 - glob "^7.1.2" 5030 - globals "^11.7.0" 5551 + glob-parent "^5.0.0" 5552 + globals "^12.1.0" 5031 5553 ignore "^4.0.6" 5032 5554 import-fresh "^3.0.0" 5033 5555 imurmurhash "^0.1.4" 5034 - inquirer "^6.2.2" 5035 - js-yaml "^3.13.0" 5556 + inquirer "^7.0.0" 5557 + is-glob "^4.0.0" 5558 + js-yaml "^3.13.1" 5036 5559 json-stable-stringify-without-jsonify "^1.0.1" 5037 5560 levn "^0.3.0" 5038 - lodash "^4.17.11" 5561 + lodash "^4.17.14" 5039 5562 minimatch "^3.0.4" 5040 5563 mkdirp "^0.5.1" 5041 5564 natural-compare "^1.4.0" 5042 - optionator "^0.8.2" 5043 - path-is-inside "^1.0.2" 5565 + optionator "^0.8.3" 5044 5566 progress "^2.0.0" 5045 5567 regexpp "^2.0.1" 5046 - semver "^5.5.1" 5047 - strip-ansi "^4.0.0" 5048 - strip-json-comments "^2.0.1" 5568 + semver "^6.1.2" 5569 + strip-ansi "^5.2.0" 5570 + strip-json-comments "^3.0.1" 5049 5571 table "^5.2.3" 5050 5572 text-table "^0.2.0" 5573 + v8-compile-cache "^2.0.3" 5051 5574 5052 - espree@^5.0.1: 5053 - version "5.0.1" 5054 - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" 5055 - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== 5575 + espree@^6.1.2: 5576 + version "6.1.2" 5577 + resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d" 5578 + integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA== 5056 5579 dependencies: 5057 - acorn "^6.0.7" 5058 - acorn-jsx "^5.0.0" 5059 - eslint-visitor-keys "^1.0.0" 5580 + acorn "^7.1.0" 5581 + acorn-jsx "^5.1.0" 5582 + eslint-visitor-keys "^1.1.0" 5060 5583 5061 5584 esprima@^3.1.3: 5062 5585 version "3.1.3" ··· 5109 5632 dependencies: 5110 5633 require-like ">= 0.1.1" 5111 5634 5112 - event-source-polyfill@^1.0.5: 5113 - version "1.0.5" 5114 - resolved "https://registry.yarnpkg.com/event-source-polyfill/-/event-source-polyfill-1.0.5.tgz#b34be2740a685a8dc65ae750065fc983538ffcfe" 5115 - integrity sha512-PdStgZ3+G2o2gjqsBYbV4931ByVmwLwSrX7mFgawCL+9I1npo9dwAQTnWtNWXe5IY2P8+AbbPteeOueiEtRCUA== 5635 + event-source-polyfill@^1.0.11: 5636 + version "1.0.11" 5637 + resolved "https://registry.yarnpkg.com/event-source-polyfill/-/event-source-polyfill-1.0.11.tgz#37b5d37161b8980bbbacb29081b7c8e501909e3a" 5638 + integrity sha512-fbo96OutP0Bb+gIYTTy8LGhNWySdetsFElCn/vhOzQL3cXWsS70TP/aRUe32U7F+PuOZH/tvb40tZgoJV8/Ilw== 5116 5639 5117 5640 eventemitter3@^3.0.0, eventemitter3@^3.1.0: 5118 5641 version "3.1.2" ··· 5188 5711 signal-exit "^3.0.0" 5189 5712 strip-eof "^1.0.0" 5190 5713 5191 - execa@^0.8.0: 5192 - version "0.8.0" 5193 - resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" 5194 - integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= 5195 - dependencies: 5196 - cross-spawn "^5.0.1" 5197 - get-stream "^3.0.0" 5198 - is-stream "^1.1.0" 5199 - npm-run-path "^2.0.0" 5200 - p-finally "^1.0.0" 5201 - signal-exit "^3.0.0" 5202 - strip-eof "^1.0.0" 5203 - 5204 5714 execa@^1.0.0: 5205 5715 version "1.0.0" 5206 5716 resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" ··· 5224 5734 is-stream "^2.0.0" 5225 5735 merge-stream "^2.0.0" 5226 5736 npm-run-path "^3.0.0" 5737 + onetime "^5.1.0" 5738 + p-finally "^2.0.0" 5739 + signal-exit "^3.0.2" 5740 + strip-final-newline "^2.0.0" 5741 + 5742 + execa@^3.4.0: 5743 + version "3.4.0" 5744 + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" 5745 + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== 5746 + dependencies: 5747 + cross-spawn "^7.0.0" 5748 + get-stream "^5.0.0" 5749 + human-signals "^1.1.1" 5750 + is-stream "^2.0.0" 5751 + merge-stream "^2.0.0" 5752 + npm-run-path "^4.0.0" 5227 5753 onetime "^5.1.0" 5228 5754 p-finally "^2.0.0" 5229 5755 signal-exit "^3.0.2" ··· 5288 5814 jest-message-util "^24.8.0" 5289 5815 jest-regex-util "^24.3.0" 5290 5816 5291 - express-graphql@^0.7.1: 5292 - version "0.7.1" 5293 - resolved "https://registry.yarnpkg.com/express-graphql/-/express-graphql-0.7.1.tgz#6c7712ee966c3aba1930e064ea4c8181e56fd3ef" 5294 - integrity sha512-YpheAqTbSKpb5h57rV2yu2dPNUBi4FvZDspZ5iEV3ov34PBRgnM4lEBkv60+vZRJ6SweYL14N8AGYdov7g6ooQ== 5817 + express-graphql@^0.9.0: 5818 + version "0.9.0" 5819 + resolved "https://registry.yarnpkg.com/express-graphql/-/express-graphql-0.9.0.tgz#00fd8552f866bac5c9a4612b2c4c82076107b3c2" 5820 + integrity sha512-wccd9Lb6oeJ8yHpUs/8LcnGjFUUQYmOG9A5BNLybRdCzGw0PeUrtBxsIR8bfiur6uSW4OvPkVDoYH06z6/N9+w== 5295 5821 dependencies: 5296 - accepts "^1.3.5" 5822 + accepts "^1.3.7" 5297 5823 content-type "^1.0.4" 5298 - http-errors "^1.7.1" 5299 - raw-body "^2.3.3" 5824 + http-errors "^1.7.3" 5825 + raw-body "^2.4.1" 5300 5826 5301 - express@^4.16.3, express@^4.17.1: 5827 + express@^4.17.1: 5302 5828 version "4.17.1" 5303 5829 resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" 5304 5830 integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== ··· 5416 5942 resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" 5417 5943 integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= 5418 5944 5419 - fast-glob@^2.0.2, fast-glob@^2.2.2: 5945 + fast-glob@^2.0.2: 5420 5946 version "2.2.7" 5421 5947 resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" 5422 5948 integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== ··· 5440 5966 merge2 "^1.2.3" 5441 5967 micromatch "^4.0.2" 5442 5968 5443 - fast-json-stable-stringify@^2.0.0: 5444 - version "2.0.0" 5445 - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 5446 - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= 5969 + fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: 5970 + version "2.1.0" 5971 + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 5972 + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 5447 5973 5448 - fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4: 5974 + fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: 5449 5975 version "2.0.6" 5450 5976 resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 5451 5977 integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= ··· 5483 6009 dependencies: 5484 6010 bser "^2.0.0" 5485 6011 5486 - fbjs-css-vars@^1.0.0: 5487 - version "1.0.2" 5488 - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" 5489 - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== 5490 - 5491 6012 fbjs@^0.8.0: 5492 6013 version "0.8.17" 5493 6014 resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" ··· 5501 6022 setimmediate "^1.0.5" 5502 6023 ua-parser-js "^0.7.18" 5503 6024 5504 - fbjs@^1.0.0: 5505 - version "1.0.0" 5506 - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-1.0.0.tgz#52c215e0883a3c86af2a7a776ed51525ae8e0a5a" 5507 - integrity sha512-MUgcMEJaFhCaF1QtWGnmq9ZDRAzECTCRAF7O6UZIlAlkTs1SasiX9aP0Iw7wfD2mJ7wDTNfg2w7u5fSCwJk1OA== 5508 - dependencies: 5509 - core-js "^2.4.1" 5510 - fbjs-css-vars "^1.0.0" 5511 - isomorphic-fetch "^2.1.1" 5512 - loose-envify "^1.0.0" 5513 - object-assign "^4.1.0" 5514 - promise "^7.1.1" 5515 - setimmediate "^1.0.5" 5516 - ua-parser-js "^0.7.18" 5517 - 5518 6025 fd-slicer@~1.1.0: 5519 6026 version "1.1.0" 5520 6027 resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" ··· 5539 6046 version "2.0.0" 5540 6047 resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 5541 6048 integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= 6049 + dependencies: 6050 + escape-string-regexp "^1.0.5" 6051 + 6052 + figures@^3.0.0: 6053 + version "3.1.0" 6054 + resolved "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz#4b198dd07d8d71530642864af2d45dd9e459c4ec" 6055 + integrity sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg== 5542 6056 dependencies: 5543 6057 escape-string-regexp "^1.0.5" 5544 6058 ··· 5650 6164 mkdirp "^0.5.1" 5651 6165 pkg-dir "^1.0.0" 5652 6166 5653 - find-cache-dir@^2.0.0: 6167 + find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: 5654 6168 version "2.1.0" 5655 6169 resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" 5656 6170 integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== ··· 5659 6173 make-dir "^2.0.0" 5660 6174 pkg-dir "^3.0.0" 5661 6175 6176 + find-cache-dir@^3.0.0: 6177 + version "3.2.0" 6178 + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" 6179 + integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg== 6180 + dependencies: 6181 + commondir "^1.0.1" 6182 + make-dir "^3.0.0" 6183 + pkg-dir "^4.1.0" 6184 + 5662 6185 find-up@^1.0.0: 5663 6186 version "1.1.2" 5664 6187 resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" ··· 5706 6229 rimraf "2.6.3" 5707 6230 write "1.0.3" 5708 6231 5709 - flat@^4.0.0: 6232 + flat@^4.1.0: 5710 6233 version "4.1.0" 5711 6234 resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" 5712 6235 integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== ··· 5718 6241 resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" 5719 6242 integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== 5720 6243 5721 - flowgen@^1.9.2: 5722 - version "1.9.2" 5723 - resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.9.2.tgz#bf4b6319b5455e8724094ab1d8ba2a3b6f3c3a13" 5724 - integrity sha512-YKKNGUqLX/J8nNClaaoaAmICZVVUACRERbyuZPSLN/sDEK5DWRStvV+cUG/QL2ZCLRc1obZgHvkF2LR5CEK2oQ== 6244 + flowgen@^1.10.0: 6245 + version "1.10.0" 6246 + resolved "https://registry.yarnpkg.com/flowgen/-/flowgen-1.10.0.tgz#a041ae31d543d22166e7ba7c296b8445deb3c2e4" 6247 + integrity sha512-3lsoaa1vxGXhnkHuoE4mLPJi/klvpR3ID8R9CFJ/GBNi+cxJXecWQaUPrWMdNI5tGs8Y+7wrIZaCVFKFLQiGOg== 5725 6248 dependencies: 5726 6249 "@babel/code-frame" "^7.0.0" 5727 6250 "@babel/highlight" "^7.0.0" ··· 5730 6253 paralleljs "^0.2.1" 5731 6254 prettier "^1.16.4" 5732 6255 shelljs "^0.8.3" 5733 - typescript "^3.3.3333" 6256 + typescript "^3.4" 5734 6257 typescript-compiler "^1.4.1-2" 5735 6258 5736 6259 flush-write-stream@^1.0.0: ··· 5741 6264 inherits "^2.0.3" 5742 6265 readable-stream "^2.3.6" 5743 6266 6267 + follow-redirects@1.5.10: 6268 + version "1.5.10" 6269 + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" 6270 + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== 6271 + dependencies: 6272 + debug "=3.1.0" 6273 + 5744 6274 follow-redirects@^1.0.0: 5745 6275 version "1.7.0" 5746 6276 resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" ··· 5814 6344 resolved "https://registry.yarnpkg.com/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz#cf25554ca050dc49ae6656b41de42258989dcbce" 5815 6345 integrity sha1-zyVVTKBQ3EmuZla0HeQiWJidy84= 5816 6346 5817 - fs-extra@^4.0.1, fs-extra@^4.0.2: 5818 - version "4.0.3" 5819 - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" 5820 - integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== 6347 + fs-extra@8.1.0, fs-extra@^8.1.0: 6348 + version "8.1.0" 6349 + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" 6350 + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== 5821 6351 dependencies: 5822 - graceful-fs "^4.1.2" 6352 + graceful-fs "^4.2.0" 5823 6353 jsonfile "^4.0.0" 5824 6354 universalify "^0.1.0" 5825 6355 ··· 5832 6362 jsonfile "^4.0.0" 5833 6363 universalify "^0.1.0" 5834 6364 5835 - fs-extra@^7.0.0, fs-extra@^7.0.1: 6365 + fs-extra@^7.0.0: 5836 6366 version "7.0.1" 5837 6367 resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" 5838 6368 integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== ··· 5871 6401 nan "^2.12.1" 5872 6402 node-pre-gyp "^0.12.0" 5873 6403 6404 + fsevents@~2.1.1: 6405 + version "2.1.2" 6406 + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" 6407 + integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== 6408 + 5874 6409 function-bind@^1.0.2, function-bind@^1.1.1: 5875 6410 version "1.1.1" 5876 6411 resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" ··· 5881 6416 resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 5882 6417 integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 5883 6418 5884 - gatsby-cli@^2.7.20: 5885 - version "2.7.20" 5886 - resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.7.20.tgz#1117b21802741c18ec6d16cd53dbb7f41bba8d22" 5887 - integrity sha512-LVFv8RvMc8zLjCMHOJAdx0nA3Pg7baX7kFUyC/ixMJwhUSy/qUKtt4VNCpGnnTpqjO+743kyVQuw+zNK3dQtIg== 6419 + gatsby-cli@^2.8.22: 6420 + version "2.8.22" 6421 + resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.8.22.tgz#3c3ccb228767f329ff29047935595a1a1414ef96" 6422 + integrity sha512-uZix0CalIzZ6Wx5pbu5VoWA7KalWdWdfofm+thXRe4VlyJ9VnKmHAslBB03NOl707JoMsBLshHsGYynHwp0jdA== 5888 6423 dependencies: 5889 - "@babel/code-frame" "^7.0.0" 5890 - "@babel/runtime" "^7.0.0" 5891 - "@hapi/joi" "^15.1.0" 5892 - better-opn "^0.1.4" 5893 - bluebird "^3.5.0" 6424 + "@babel/code-frame" "^7.5.5" 6425 + "@babel/runtime" "^7.7.6" 6426 + "@hapi/joi" "^15.1.1" 6427 + better-opn "^1.0.0" 6428 + bluebird "^3.7.2" 5894 6429 chalk "^2.4.2" 5895 - ci-info "^2.0.0" 5896 - clipboardy "^1.2.3" 5897 - common-tags "^1.4.0" 5898 - configstore "^4.0.0" 5899 - convert-hrtime "^2.0.0" 5900 - core-js "^2.5.0" 5901 - envinfo "^5.8.1" 5902 - execa "^0.8.0" 6430 + clipboardy "^2.1.0" 6431 + common-tags "^1.8.0" 6432 + configstore "^5.0.0" 6433 + convert-hrtime "^3.0.0" 6434 + core-js "^2.6.11" 6435 + envinfo "^7.5.0" 6436 + execa "^3.4.0" 5903 6437 fs-exists-cached "^1.0.0" 5904 - fs-extra "^4.0.1" 5905 - gatsby-telemetry "^1.1.7" 5906 - hosted-git-info "^2.6.0" 6438 + fs-extra "^8.1.0" 6439 + gatsby-core-utils "^1.0.25" 6440 + gatsby-telemetry "^1.1.46" 6441 + hosted-git-info "^3.0.2" 5907 6442 is-valid-path "^0.1.1" 5908 - lodash "^4.17.14" 6443 + lodash "^4.17.15" 5909 6444 meant "^1.0.1" 5910 6445 node-fetch "^2.6.0" 5911 6446 object.entries "^1.1.0" 5912 - opentracing "^0.14.3" 6447 + opentracing "^0.14.4" 5913 6448 pretty-error "^2.1.1" 5914 6449 progress "^2.0.3" 5915 - prompts "^2.1.0" 5916 - react "^16.8.4" 6450 + prompts "^2.3.0" 6451 + react "^16.12.0" 6452 + redux "^4.0.4" 5917 6453 resolve-cwd "^2.0.0" 5918 - semver "^6.1.1" 5919 - source-map "0.5.7" 6454 + semver "^6.3.0" 6455 + signal-exit "^3.0.2" 6456 + source-map "0.7.3" 5920 6457 stack-trace "^0.0.10" 5921 6458 strip-ansi "^5.2.0" 5922 - update-notifier "^2.3.0" 5923 - uuid "3.3.2" 6459 + update-notifier "^3.0.1" 6460 + uuid "3.3.3" 5924 6461 yargs "^12.0.5" 5925 - yurnalist "^1.0.5" 6462 + yurnalist "^1.1.1" 5926 6463 optionalDependencies: 5927 - ink "^2.3.0" 6464 + ink "^2.6.0" 5928 6465 ink-spinner "^3.0.1" 5929 6466 5930 - gatsby-core-utils@^1.0.0, gatsby-core-utils@^1.0.3: 5931 - version "1.0.3" 5932 - resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.0.3.tgz#f7616192ac0b4d0fc04587d924533c3cece70980" 5933 - integrity sha512-01B0wqVTftFcYwVR7HGJy+Nriy+xxC++VZhsWNCFWtby1NwfSDUwkoScGcZ/jXvg9waEmBC1n70FwVIDnoHzSA== 6467 + gatsby-core-utils@^1.0.0, gatsby-core-utils@^1.0.25: 6468 + version "1.0.25" 6469 + resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.0.25.tgz#8cc8e76a79063c43ac06d9b72100b7c6f1fb5b60" 6470 + integrity sha512-Pz5xueweH9qv5TIW7wwlTxI/CbyzkiE5xvgLicbHbU+InH+lCNt4VuvGP1gQcIRuHMCIbuVKSiVCC7jnxEbtrA== 6471 + dependencies: 6472 + ci-info "2.0.0" 6473 + node-object-hash "^2.0.0" 5934 6474 5935 - gatsby-graphiql-explorer@^0.2.3: 5936 - version "0.2.3" 5937 - resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.2.3.tgz#fdfc6c1b8b5019df57aad025badb552e3141f6e4" 5938 - integrity sha512-SwZZ79V5TPxWP44bJTP3x4XvJH6mHDXoMTKO4RAhUygN0CtPSOfdedEWfEexDmteJyBYsu3kQzsI8h6qhbbSzg== 6475 + gatsby-graphiql-explorer@^0.2.31: 6476 + version "0.2.31" 6477 + resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.2.31.tgz#cb7a7ed2749085a28612f11ef37a35de54809710" 6478 + integrity sha512-pAK/HG/Ryw2ZDWb/5rnSBmPf8KsnFGlO/zS9m2IdLjnQS0kA0b9UbfZ5bjkg7pwPPLhWilEX+uON0l51N4gnmg== 5939 6479 dependencies: 5940 - "@babel/runtime" "^7.0.0" 6480 + "@babel/runtime" "^7.7.6" 5941 6481 5942 - gatsby-link@^2.2.3: 5943 - version "2.2.3" 5944 - resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-2.2.3.tgz#2477c0093a0183014ce8012758db94e06d0cf43d" 5945 - integrity sha512-uWDd7QMXIlHk4mTakcUEsvw/VGqcG2M72DFfEDJq50X7gyrm2pwHwsPnT5MQsuqCF+SVNG4ryzJ8TyQotoF/fQ== 6482 + gatsby-link@^2.2.27: 6483 + version "2.2.27" 6484 + resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-2.2.27.tgz#d36aa62e9854ef3102ca85c2a6fa833943059303" 6485 + integrity sha512-Jiz6ShReB25plqTKsTAVpfFvN1K/JziNhr1z8Q6p+dPzQaNWfEC61kpRKE69J1WWycvRdxCSZEkOgY/0nlAifg== 5946 6486 dependencies: 5947 - "@babel/runtime" "^7.0.0" 5948 - "@types/reach__router" "^1.0.0" 5949 - prop-types "^15.6.1" 6487 + "@babel/runtime" "^7.7.6" 6488 + "@types/reach__router" "^1.2.6" 6489 + prop-types "^15.7.2" 5950 6490 5951 - gatsby-page-utils@^0.0.5: 5952 - version "0.0.5" 5953 - resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-0.0.5.tgz#faefc2ece9f14bfd161ddd0104d1e12b54ef7a70" 5954 - integrity sha512-yHL4OKgVEOWOuTUCO2ZPPmWyA1bAtSUPrf+W5w3p24pUwqMkz2Yu2hii/PhgQs+2ap6BkpSwBjBSYS2YLRmTNg== 6491 + gatsby-page-utils@^0.0.36: 6492 + version "0.0.36" 6493 + resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-0.0.36.tgz#348e5e30dfbbad8273dbd4a9705a57624520175e" 6494 + integrity sha512-W+9+PdEWKCxO5cEr8D3F0vyN2sDLeoSwROwiuO+J791HHUj+HgnDzRAt97WjBwcD4ghT+ONs5Ao2WyR+bVrIzw== 5955 6495 dependencies: 5956 - "@babel/runtime" "^7.0.0" 5957 - bluebird "^3.5.0" 5958 - chokidar "2.1.2" 6496 + "@babel/runtime" "^7.7.6" 6497 + bluebird "^3.7.2" 6498 + chokidar "3.3.0" 5959 6499 fs-exists-cached "^1.0.0" 5960 - glob "^7.1.1" 5961 - lodash "^4.17.14" 6500 + gatsby-core-utils "^1.0.25" 6501 + glob "^7.1.6" 6502 + lodash "^4.17.15" 5962 6503 micromatch "^3.1.10" 5963 - slash "^1.0.0" 5964 6504 5965 6505 gatsby-plugin-alias-imports@^1.0.5: 5966 6506 version "1.0.5" ··· 6018 6558 unist-util-remove "^1.0.1" 6019 6559 unist-util-visit "^1.4.0" 6020 6560 6021 - gatsby-plugin-netlify@^2.1.3: 6022 - version "2.1.3" 6023 - resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify/-/gatsby-plugin-netlify-2.1.3.tgz#61bd13e97175e4b438094a03c0848118f794deab" 6024 - integrity sha512-tc43xvKuXosvDxcD6TpVCO2UX0XywKlmC46kVl3aAuKAf1lygqLEUSahKcJ/oorbx6SD0CCY135mkHLj6YsYaw== 6561 + gatsby-plugin-netlify@^2.1.30: 6562 + version "2.1.30" 6563 + resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify/-/gatsby-plugin-netlify-2.1.30.tgz#e6412b399d5182f11bccce06c8dc0aef008d2f5d" 6564 + integrity sha512-JOiG9zlPwGSYiDdCqLcnGvAuo3k/bW7IBEqdo3qo+ZDQk515HWdCPuYHfwXXOW4gCUB+5OCxnafOxTCYj7QXbg== 6025 6565 dependencies: 6026 - "@babel/runtime" "^7.0.0" 6027 - fs-extra "^4.0.2" 6566 + "@babel/runtime" "^7.7.6" 6567 + fs-extra "^8.1.0" 6028 6568 kebab-hash "^0.1.2" 6029 - lodash "^4.17.14" 6030 - webpack-assets-manifest "^3.0.2" 6569 + lodash "^4.17.15" 6570 + webpack-assets-manifest "^3.1.1" 6031 6571 6032 6572 gatsby-plugin-nprogress@^2.1.2: 6033 6573 version "2.1.2" ··· 6037 6577 "@babel/runtime" "^7.0.0" 6038 6578 nprogress "^0.2.0" 6039 6579 6040 - gatsby-plugin-page-creator@^2.1.5: 6041 - version "2.1.5" 6042 - resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.1.5.tgz#723fc0392a67978cab649a402ad88f6f06b74e4c" 6043 - integrity sha512-nUcsaJAaMy9UQS66QY0Dys6Xx+2CGG2EVyvDQ4NQ713la62jicOU764Bmi5G7sE2QGgpNoBtUQCW+aE6UMGpLQ== 6580 + gatsby-plugin-page-creator@^2.1.37, gatsby-plugin-page-creator@^2.1.5: 6581 + version "2.1.37" 6582 + resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.1.37.tgz#cfdcbbbe6cb9e347a0063714646be156e5959e44" 6583 + integrity sha512-EsHDgT4hQx9Zxqf6zUIP9qQh+0Wk1tPyiJtPRADY1jkzwu2dAidJkaUtH4XR8BExhjZ9xYB5uDliSNrGkZg7fw== 6044 6584 dependencies: 6045 - "@babel/runtime" "^7.0.0" 6046 - bluebird "^3.5.0" 6585 + "@babel/runtime" "^7.7.6" 6586 + bluebird "^3.7.2" 6047 6587 fs-exists-cached "^1.0.0" 6048 - gatsby-page-utils "^0.0.5" 6049 - glob "^7.1.1" 6050 - lodash "^4.17.14" 6588 + gatsby-page-utils "^0.0.36" 6589 + glob "^7.1.6" 6590 + lodash "^4.17.15" 6051 6591 micromatch "^3.1.10" 6052 6592 6053 6593 gatsby-plugin-react-helmet@^3.1.2: ··· 6105 6645 dependencies: 6106 6646 "@babel/runtime" "^7.0.0" 6107 6647 6108 - gatsby-react-router-scroll@^2.1.3: 6109 - version "2.1.3" 6110 - resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.1.3.tgz#4f1654555da14b4860386fab711b3bac0e177ac5" 6111 - integrity sha512-es1J3xISzrjVhvMKhf9GxgVaBKpVne6/Nk05rvHU9ZVv2jn8GjlB/DrGf+Yw0LZU5fiEJ5ePBr+YffnrPDY29A== 6648 + gatsby-react-router-scroll@^2.1.19: 6649 + version "2.1.19" 6650 + resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.1.19.tgz#4bac8cb5aaba5e2ad6b589a3d289d39257c3b5da" 6651 + integrity sha512-qK6kE48Efzf8zOsmRw6UiZH7VXuv4ti6taGu5je1D9IGDgMpETKXRA0jmKB1up50XQ4WXvyyLASOqWK3UdDNYw== 6112 6652 dependencies: 6113 - "@babel/runtime" "^7.0.0" 6114 - scroll-behavior "^0.9.9" 6653 + "@babel/runtime" "^7.7.6" 6654 + scroll-behavior "^0.9.10" 6115 6655 warning "^3.0.0" 6116 6656 6117 6657 gatsby-remark-external-links@^0.0.4: ··· 6171 6711 valid-url "^1.0.9" 6172 6712 xstate "^3.1.0" 6173 6713 6174 - gatsby-telemetry@^1.1.7: 6175 - version "1.1.7" 6176 - resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.1.7.tgz#dd2a363852ce87990249586e75189e7b05d1f561" 6177 - integrity sha512-mVJwkg4kdHGBt1OKlpcDO1gKoRd5oiJHKYR1jGrShXbB8FE4c52Z2Geg0xMKNXCeUbMUEZB78IPGlJ94nnPAag== 6714 + gatsby-telemetry@^1.1.46: 6715 + version "1.1.46" 6716 + resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.1.46.tgz#c44d196afa5e15ed7909af9ed5f3d869b684f3cd" 6717 + integrity sha512-HFrrZc/mZtzt2DsMc34HZiIEHpaXt1kKcFZC6s3Q3KqkgUweCZMwE7N52jkhGA+c3aFOZU/D+CtyP9dWcrsM/Q== 6178 6718 dependencies: 6179 - "@babel/code-frame" "^7.0.0" 6180 - "@babel/runtime" "^7.0.0" 6181 - bluebird "^3.5.0" 6182 - boxen "^3.1.0" 6183 - ci-info "2.0.0" 6184 - configstore "^4.0.0" 6185 - envinfo "^5.8.1" 6186 - fs-extra "^7.0.1" 6719 + "@babel/code-frame" "^7.5.5" 6720 + "@babel/runtime" "^7.7.6" 6721 + bluebird "^3.7.2" 6722 + boxen "^4.2.0" 6723 + configstore "^5.0.0" 6724 + envinfo "^7.5.0" 6725 + fs-extra "^8.1.0" 6726 + gatsby-core-utils "^1.0.25" 6187 6727 git-up "4.0.1" 6188 - is-docker "1.1.0" 6189 - lodash "^4.17.14" 6190 - node-fetch "2.3.0" 6728 + is-docker "2.0.0" 6729 + lodash "^4.17.15" 6730 + node-fetch "2.6.0" 6191 6731 resolve-cwd "^2.0.0" 6192 - source-map "^0.5.7" 6732 + source-map "^0.7.3" 6193 6733 stack-trace "^0.0.10" 6194 6734 stack-utils "1.0.2" 6195 - uuid "3.3.2" 6735 + uuid "3.3.3" 6196 6736 6197 6737 gatsby-theme-docs-system@^0.2.2: 6198 6738 version "0.2.2" ··· 6231 6771 typography "^0.16.19" 6232 6772 webpack "~4.28.4" 6233 6773 6234 - gatsby@^2.13.41: 6235 - version "2.13.41" 6236 - resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.13.41.tgz#918e22432b4d487420e4bbf65fbbe1cdd8d3b05e" 6237 - integrity sha512-vTPAt4xq2WOqx8EOUA72zUb9joyYiYowK0eBmt4O+HEyDHnLieubO66srTgH0XDsdXKpc1Aivug9oeKgIV5vdQ== 6774 + gatsby@^2.18.17: 6775 + version "2.18.17" 6776 + resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.18.17.tgz#43fb4c092b09e76cc9137cfc20c67ba7fdcd755d" 6777 + integrity sha512-Zj/LjZwzM0RXoqMmM+6H48IOazmJcuzyVY2yfTi8oYtcQH0F4xIELiDZJkZQb7mttlIsJTX3U1NLCYXPcohWwg== 6238 6778 dependencies: 6239 - "@babel/code-frame" "^7.0.0" 6240 - "@babel/core" "^7.0.0" 6241 - "@babel/parser" "^7.0.0" 6242 - "@babel/polyfill" "^7.0.0" 6243 - "@babel/runtime" "^7.0.0" 6244 - "@babel/traverse" "^7.0.0" 6245 - "@gatsbyjs/relay-compiler" "2.0.0-printer-fix.2" 6246 - "@hapi/joi" "^15.0.0" 6779 + "@babel/code-frame" "^7.5.5" 6780 + "@babel/core" "^7.7.5" 6781 + "@babel/parser" "^7.7.5" 6782 + "@babel/polyfill" "^7.7.0" 6783 + "@babel/runtime" "^7.7.6" 6784 + "@babel/traverse" "^7.7.4" 6785 + "@hapi/joi" "^15.1.1" 6247 6786 "@mikaelkristiansson/domready" "^1.0.9" 6248 6787 "@pieh/friendly-errors-webpack-plugin" "1.7.0-chalk-2" 6249 - "@reach/router" "^1.1.1" 6250 - address "1.0.3" 6251 - autoprefixer "^9.6.0" 6788 + "@reach/router" "^1.2.1" 6789 + "@typescript-eslint/eslint-plugin" "^2.11.0" 6790 + "@typescript-eslint/parser" "^2.11.0" 6791 + address "1.1.2" 6792 + autoprefixer "^9.7.3" 6793 + axios "^0.19.0" 6252 6794 babel-core "7.0.0-bridge.0" 6253 - babel-eslint "^9.0.0" 6254 - babel-loader "^8.0.0" 6255 - babel-plugin-add-module-exports "^0.2.1" 6256 - babel-plugin-dynamic-import-node "^1.2.0" 6257 - babel-plugin-remove-graphql-queries "^2.7.2" 6258 - babel-preset-gatsby "^0.2.8" 6259 - better-opn "0.1.4" 6260 - better-queue "^3.8.6" 6261 - bluebird "^3.5.0" 6795 + babel-eslint "^10.0.3" 6796 + babel-loader "^8.0.6" 6797 + babel-plugin-add-module-exports "^0.3.3" 6798 + babel-plugin-dynamic-import-node "^2.3.0" 6799 + babel-plugin-remove-graphql-queries "^2.7.19" 6800 + babel-preset-gatsby "^0.2.26" 6801 + better-opn "1.0.0" 6802 + better-queue "^3.8.10" 6803 + bluebird "^3.7.2" 6262 6804 browserslist "3.2.8" 6263 - cache-manager "^2.9.0" 6264 - cache-manager-fs-hash "^0.0.6" 6265 - chalk "^2.3.2" 6266 - chokidar "2.1.2" 6267 - common-tags "^1.4.0" 6268 - compression "^1.7.3" 6269 - convert-hrtime "^2.0.0" 6270 - copyfiles "^1.2.0" 6271 - core-js "^2.5.0" 6805 + cache-manager "^2.10.1" 6806 + cache-manager-fs-hash "^0.0.7" 6807 + chalk "^2.4.2" 6808 + chokidar "3.3.0" 6809 + common-tags "^1.8.0" 6810 + compression "^1.7.4" 6811 + convert-hrtime "^3.0.0" 6812 + copyfiles "^2.1.1" 6813 + core-js "^2.6.11" 6272 6814 cors "^2.8.5" 6273 - css-loader "^1.0.0" 6274 - debug "^3.1.0" 6275 - del "^3.0.0" 6276 - detect-port "^1.2.1" 6815 + css-loader "^1.0.1" 6816 + debug "^3.2.6" 6817 + del "^5.1.0" 6818 + detect-port "^1.3.0" 6277 6819 devcert-san "^0.3.3" 6278 - dotenv "^4.0.0" 6279 - eslint "^5.6.0" 6280 - eslint-config-react-app "^3.0.0" 6281 - eslint-loader "^2.1.0" 6282 - eslint-plugin-flowtype "^2.46.1" 6283 - eslint-plugin-graphql "^3.0.3" 6284 - eslint-plugin-import "^2.9.0" 6285 - eslint-plugin-jsx-a11y "^6.0.3" 6286 - eslint-plugin-react "^7.8.2" 6287 - event-source-polyfill "^1.0.5" 6288 - express "^4.16.3" 6289 - express-graphql "^0.7.1" 6820 + dotenv "^8.2.0" 6821 + eslint "^6.7.2" 6822 + eslint-config-react-app "^5.1.0" 6823 + eslint-loader "^2.2.1" 6824 + eslint-plugin-flowtype "^3.13.0" 6825 + eslint-plugin-graphql "^3.1.0" 6826 + eslint-plugin-import "^2.19.1" 6827 + eslint-plugin-jsx-a11y "^6.2.3" 6828 + eslint-plugin-react "^7.17.0" 6829 + eslint-plugin-react-hooks "^1.7.0" 6830 + event-source-polyfill "^1.0.11" 6831 + express "^4.17.1" 6832 + express-graphql "^0.9.0" 6290 6833 fast-levenshtein "^2.0.6" 6291 6834 file-loader "^1.1.11" 6292 - flat "^4.0.0" 6835 + flat "^4.1.0" 6293 6836 fs-exists-cached "1.0.0" 6294 - fs-extra "^5.0.0" 6295 - gatsby-cli "^2.7.20" 6296 - gatsby-core-utils "^1.0.3" 6297 - gatsby-graphiql-explorer "^0.2.3" 6298 - gatsby-link "^2.2.3" 6299 - gatsby-plugin-page-creator "^2.1.5" 6300 - gatsby-react-router-scroll "^2.1.3" 6301 - gatsby-telemetry "^1.1.7" 6302 - glob "^7.1.1" 6303 - got "8.0.0" 6304 - graphql "^14.1.1" 6305 - graphql-compose "^6.3.2" 6306 - graphql-playground-middleware-express "^1.7.10" 6837 + fs-extra "^8.1.0" 6838 + gatsby-cli "^2.8.22" 6839 + gatsby-core-utils "^1.0.25" 6840 + gatsby-graphiql-explorer "^0.2.31" 6841 + gatsby-link "^2.2.27" 6842 + gatsby-plugin-page-creator "^2.1.37" 6843 + gatsby-react-router-scroll "^2.1.19" 6844 + gatsby-telemetry "^1.1.46" 6845 + glob "^7.1.6" 6846 + got "8.3.2" 6847 + graphql "^14.5.8" 6848 + graphql-compose "^6.3.7" 6849 + graphql-playground-middleware-express "^1.7.12" 6307 6850 invariant "^2.2.4" 6308 6851 is-relative "^1.0.0" 6309 - is-relative-url "^2.0.0" 6310 - is-wsl "^1.1.0" 6311 - jest-worker "^23.2.0" 6852 + is-relative-url "^3.0.0" 6853 + is-wsl "^2.1.1" 6854 + jest-worker "^24.9.0" 6312 6855 json-loader "^0.5.7" 6313 6856 json-stringify-safe "^5.0.1" 6314 - lodash "^4.17.14" 6315 - lokijs "^1.5.7" 6857 + lodash "^4.17.15" 6858 + lokijs "^1.5.8" 6316 6859 md5 "^2.2.1" 6317 - md5-file "^3.1.1" 6860 + md5-file "^3.2.3" 6318 6861 micromatch "^3.1.10" 6319 - mime "^2.2.0" 6320 - mini-css-extract-plugin "^0.4.0" 6321 - mitt "^1.1.2" 6862 + mime "^2.4.4" 6863 + mini-css-extract-plugin "^0.8.0" 6864 + mitt "^1.2.0" 6322 6865 mkdirp "^0.5.1" 6323 - moment "^2.21.0" 6866 + moment "^2.24.0" 6324 6867 name-all-modules-plugin "^1.0.1" 6325 6868 normalize-path "^2.1.1" 6326 6869 null-loader "^0.1.1" 6327 - opentracing "^0.14.3" 6328 - optimize-css-assets-webpack-plugin "^5.0.1" 6329 - parseurl "^1.3.2" 6870 + opentracing "^0.14.4" 6871 + optimize-css-assets-webpack-plugin "^5.0.3" 6872 + parseurl "^1.3.3" 6330 6873 physical-cpu-count "^2.0.0" 6331 - pnp-webpack-plugin "^1.4.1" 6332 - postcss-flexbugs-fixes "^3.0.0" 6333 - postcss-loader "^2.1.3" 6334 - prop-types "^15.6.1" 6874 + pnp-webpack-plugin "^1.5.0" 6875 + postcss-flexbugs-fixes "^3.3.1" 6876 + postcss-loader "^2.1.6" 6877 + prompts "^2.3.0" 6878 + prop-types "^15.7.2" 6335 6879 raw-loader "^0.5.1" 6336 6880 react-dev-utils "^4.2.3" 6337 6881 react-error-overlay "^3.0.0" 6338 - react-hot-loader "^4.12.5" 6339 - redux "^4.0.0" 6882 + react-hot-loader "^4.12.18" 6883 + redux "^4.0.4" 6340 6884 redux-thunk "^2.3.0" 6341 - semver "^5.6.0" 6885 + semver "^5.7.1" 6342 6886 shallow-compare "^1.2.2" 6343 6887 sift "^5.1.0" 6344 6888 signal-exit "^3.0.2" 6345 - slash "^1.0.0" 6346 - socket.io "^2.0.3" 6889 + slugify "^1.3.6" 6890 + socket.io "^2.3.0" 6347 6891 stack-trace "^0.0.10" 6348 - string-similarity "^1.2.0" 6349 - style-loader "^0.21.0" 6350 - terser-webpack-plugin "1.2.4" 6351 - "true-case-path" "^1.0.3" 6892 + string-similarity "^1.2.2" 6893 + style-loader "^0.23.1" 6894 + terser-webpack-plugin "^1.4.2" 6895 + "true-case-path" "^2.2.1" 6352 6896 type-of "^2.0.1" 6353 - url-loader "^1.0.1" 6897 + url-loader "^1.1.2" 6354 6898 util.promisify "^1.0.0" 6355 - uuid "^3.1.0" 6356 - v8-compile-cache "^1.1.0" 6357 - webpack "~4.28.4" 6358 - webpack-dev-middleware "^3.0.1" 6359 - webpack-dev-server "^3.1.14" 6360 - webpack-hot-middleware "^2.21.0" 6361 - webpack-merge "^4.1.0" 6362 - webpack-stats-plugin "^0.1.5" 6363 - xstate "^4.3.2" 6899 + uuid "^3.3.3" 6900 + v8-compile-cache "^1.1.2" 6901 + webpack "~4.41.2" 6902 + webpack-dev-middleware "^3.7.2" 6903 + webpack-dev-server "^3.9.0" 6904 + webpack-hot-middleware "^2.25.0" 6905 + webpack-merge "^4.2.2" 6906 + webpack-stats-plugin "^0.3.0" 6907 + xstate "^4.7.2" 6364 6908 yaml-loader "^0.5.0" 6365 6909 6366 6910 gauge@~2.7.3: ··· 6377 6921 strip-ansi "^3.0.1" 6378 6922 wide-align "^1.1.0" 6379 6923 6924 + gentype@^3.9.1: 6925 + version "3.9.1" 6926 + resolved "https://registry.yarnpkg.com/gentype/-/gentype-3.9.1.tgz#8e5f3e0b1bbe9abc7d9332afa5fc278c126a06ac" 6927 + integrity sha512-PSkwxSlmjt339gL+t1HSpcBN83zcenVVh66Fgv6GWhe0mObv5T70IZqSLtiRsejWDpNX74Nd5JNtOR2+SmJBOA== 6928 + 6380 6929 get-caller-file@^1.0.1: 6381 6930 version "1.0.3" 6382 6931 resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 6383 6932 integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== 6384 6933 6934 + get-caller-file@^2.0.1: 6935 + version "2.0.5" 6936 + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 6937 + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 6938 + 6385 6939 get-own-enumerable-property-symbols@^3.0.0: 6386 6940 version "3.0.0" 6387 6941 resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" ··· 6422 6976 object-assign "^4.0.1" 6423 6977 pinkie-promise "^2.0.0" 6424 6978 6425 - get-stream@^4.0.0: 6979 + get-stream@^4.0.0, get-stream@^4.1.0: 6426 6980 version "4.1.0" 6427 6981 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 6428 6982 integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 6429 6983 dependencies: 6430 6984 pump "^3.0.0" 6431 6985 6432 - get-stream@^5.0.0: 6986 + get-stream@^5.0.0, get-stream@^5.1.0: 6433 6987 version "5.1.0" 6434 6988 resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" 6435 6989 integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== ··· 6476 7030 is-glob "^3.1.0" 6477 7031 path-dirname "^1.0.0" 6478 7032 6479 - glob-parent@^5.0.0: 6480 - version "5.0.0" 6481 - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954" 6482 - integrity sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg== 7033 + glob-parent@^5.0.0, glob-parent@~5.1.0: 7034 + version "5.1.0" 7035 + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" 7036 + integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== 6483 7037 dependencies: 6484 7038 is-glob "^4.0.1" 6485 7039 ··· 6488 7042 resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" 6489 7043 integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= 6490 7044 6491 - glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: 6492 - version "7.1.4" 6493 - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" 6494 - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== 7045 + glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: 7046 + version "7.1.6" 7047 + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 7048 + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 6495 7049 dependencies: 6496 7050 fs.realpath "^1.0.0" 6497 7051 inflight "^1.0.4" ··· 6543 7097 min-document "^2.19.0" 6544 7098 process "~0.5.1" 6545 7099 6546 - globals@^11.1.0, globals@^11.7.0: 7100 + globals@^11.1.0: 6547 7101 version "11.12.0" 6548 7102 resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 6549 7103 integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 6550 7104 6551 - globby@^10.0.0, globby@^10.0.1: 7105 + globals@^12.1.0: 7106 + version "12.3.0" 7107 + resolved "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13" 7108 + integrity sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw== 7109 + dependencies: 7110 + type-fest "^0.8.1" 7111 + 7112 + globby@^10.0.1: 6552 7113 version "10.0.1" 6553 7114 resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22" 6554 7115 integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A== ··· 6627 7188 google-closure-compiler-osx "^20191111.0.0" 6628 7189 google-closure-compiler-windows "^20191111.0.0" 6629 7190 6630 - got@8.0.0: 6631 - version "8.0.0" 6632 - resolved "https://registry.yarnpkg.com/got/-/got-8.0.0.tgz#57a11f841edc58e3f3eba4b3ac220faf5133770f" 6633 - integrity sha512-lqVA9ORcSGfJPHfMXh1RW451aYMP1NyXivpGqGggnfDqNz3QVfMl7MkuEz+dr70gK2X8dhLiS5YzHhCV3/3yOQ== 7191 + got@8.3.2, got@^8.3.1, got@^8.3.2: 7192 + version "8.3.2" 7193 + resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" 7194 + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== 6634 7195 dependencies: 7196 + "@sindresorhus/is" "^0.7.0" 6635 7197 cacheable-request "^2.1.1" 6636 7198 decompress-response "^3.3.0" 6637 7199 duplexer3 "^0.1.4" 6638 7200 get-stream "^3.0.0" 6639 7201 into-stream "^3.1.0" 6640 - is-plain-obj "^1.1.0" 6641 7202 is-retry-allowed "^1.1.0" 6642 - is-stream "^1.1.0" 6643 7203 isurl "^1.0.0-alpha5" 6644 7204 lowercase-keys "^1.0.0" 6645 7205 mimic-response "^1.0.0" 6646 - p-cancelable "^0.3.0" 6647 - p-timeout "^1.2.0" 7206 + p-cancelable "^0.4.0" 7207 + p-timeout "^2.0.1" 6648 7208 pify "^3.0.0" 6649 7209 safe-buffer "^5.1.1" 6650 7210 timed-out "^4.0.1" 6651 7211 url-parse-lax "^3.0.0" 6652 7212 url-to-options "^1.0.1" 6653 7213 6654 - got@^6.7.1: 6655 - version "6.7.1" 6656 - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 6657 - integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= 6658 - dependencies: 6659 - create-error-class "^3.0.0" 6660 - duplexer3 "^0.1.4" 6661 - get-stream "^3.0.0" 6662 - is-redirect "^1.0.0" 6663 - is-retry-allowed "^1.0.0" 6664 - is-stream "^1.0.0" 6665 - lowercase-keys "^1.0.0" 6666 - safe-buffer "^5.0.1" 6667 - timed-out "^4.0.0" 6668 - unzip-response "^2.0.1" 6669 - url-parse-lax "^1.0.0" 6670 - 6671 7214 got@^7.0.0, got@^7.1.0: 6672 7215 version "7.1.0" 6673 7216 resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" ··· 6688 7231 url-parse-lax "^1.0.0" 6689 7232 url-to-options "^1.0.1" 6690 7233 6691 - got@^8.3.1, got@^8.3.2: 6692 - version "8.3.2" 6693 - resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" 6694 - integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== 7234 + got@^9.6.0: 7235 + version "9.6.0" 7236 + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" 7237 + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== 6695 7238 dependencies: 6696 - "@sindresorhus/is" "^0.7.0" 6697 - cacheable-request "^2.1.1" 7239 + "@sindresorhus/is" "^0.14.0" 7240 + "@szmarczak/http-timer" "^1.1.2" 7241 + cacheable-request "^6.0.0" 6698 7242 decompress-response "^3.3.0" 6699 7243 duplexer3 "^0.1.4" 6700 - get-stream "^3.0.0" 6701 - into-stream "^3.1.0" 6702 - is-retry-allowed "^1.1.0" 6703 - isurl "^1.0.0-alpha5" 6704 - lowercase-keys "^1.0.0" 6705 - mimic-response "^1.0.0" 6706 - p-cancelable "^0.4.0" 6707 - p-timeout "^2.0.1" 6708 - pify "^3.0.0" 6709 - safe-buffer "^5.1.1" 6710 - timed-out "^4.0.1" 7244 + get-stream "^4.1.0" 7245 + lowercase-keys "^1.0.1" 7246 + mimic-response "^1.0.1" 7247 + p-cancelable "^1.0.0" 7248 + to-readable-stream "^1.0.0" 6711 7249 url-parse-lax "^3.0.0" 6712 - url-to-options "^1.0.1" 6713 7250 6714 - graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: 6715 - version "4.2.0" 6716 - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" 6717 - integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== 7251 + graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: 7252 + version "4.2.3" 7253 + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" 7254 + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== 6718 7255 6719 7256 "graceful-readlink@>= 1.0.0": 6720 7257 version "1.0.1" 6721 7258 resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 6722 7259 integrity sha1-TK+tdrxi8C+gObL5Tpo906ORpyU= 6723 7260 6724 - graphql-compose@^6.3.2: 6725 - version "6.3.2" 6726 - resolved "https://registry.yarnpkg.com/graphql-compose/-/graphql-compose-6.3.2.tgz#0eff6e0f086c934af950db88b90a6667f879c59b" 6727 - integrity sha512-2sk4G3F/j7U4OBnPkB/HrE8Cejh8nHIJFBOGcqQvsELHXUHtx4S11zR0OU+J3cMtpE/2visBUGUhEHL9WlUK9A== 7261 + graphql-compose@^6.3.7: 7262 + version "6.3.8" 7263 + resolved "https://registry.yarnpkg.com/graphql-compose/-/graphql-compose-6.3.8.tgz#9f82a85d5001a83adf1f7c4d3b5e5f72c432a062" 7264 + integrity sha512-o0/jzQEMIpSjryLKwmD1vGrCubiPxD0LxlGTgWDSu38TBepu2GhugC9gYgTEbtiCZAHPtvkZ90SzzABOWZyQLA== 6728 7265 dependencies: 6729 7266 graphql-type-json "^0.2.4" 6730 7267 object-path "^0.11.4" ··· 6753 7290 resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.12.tgz#8b3b34ab6013e2c877f0ceaae478fafc8ca91b85" 6754 7291 integrity sha512-yOYFwwSMBL0MwufeL8bkrNDgRE7eF/kTHiwrqn9FiR9KLcNIl1xw9l9a+6yIRZM56JReQOHpbQFXTZn1IuSKRg== 6755 7292 6756 - graphql-playground-middleware-express@^1.7.10: 7293 + graphql-playground-middleware-express@^1.7.12: 6757 7294 version "1.7.12" 6758 7295 resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.12.tgz#de4b2402a02159b2125561fe38eb378b56cf6d99" 6759 7296 integrity sha512-17szgonnVSxWVrgblLRHHLjWnMUONfkULIwSunaMvYx8k5oG3yL86cyGCbHuDFUFkyr2swLhdfYl4mDfDXuvOA== ··· 6772 7309 resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.2.4.tgz#545af27903e40c061edd30840a272ea0a49992f9" 6773 7310 integrity sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w== 6774 7311 6775 - graphql@^14.1.1: 6776 - version "14.4.0" 6777 - resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.4.0.tgz#e97086acfc0338e4fdc8f7dba519c6b8a6badfd9" 6778 - integrity sha512-E55z1oK6e4cGxCqlSsRWytYDPcIUxky3XkbuQUf6TIjCmn6C7CuBJpmkMF1066q95yPAGOZVPTVT7jABKbRFSA== 7312 + graphql@^14.5.8: 7313 + version "14.5.8" 7314 + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.5.8.tgz#504f3d3114cb9a0a3f359bbbcf38d9e5bf6a6b3c" 7315 + integrity sha512-MMwmi0zlVLQKLdGiMfWkgQD7dY/TUKt4L+zgJ/aR0Howebod3aNgP5JkgvAULiR2HPVZaP2VEElqtdidHweLkg== 6779 7316 dependencies: 6780 7317 iterall "^1.2.2" 6781 7318 ··· 6864 7401 resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 6865 7402 integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 6866 7403 7404 + has-flag@^4.0.0: 7405 + version "4.0.0" 7406 + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 7407 + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 7408 + 6867 7409 has-symbol-support-x@^1.4.1: 6868 7410 version "1.4.2" 6869 7411 resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" 6870 7412 integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== 6871 7413 6872 - has-symbols@^1.0.0: 6873 - version "1.0.0" 6874 - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 6875 - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= 7414 + has-symbols@^1.0.0, has-symbols@^1.0.1: 7415 + version "1.0.1" 7416 + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" 7417 + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== 6876 7418 6877 7419 has-to-string-tag-x@^1.2.0: 6878 7420 version "1.4.1" ··· 6916 7458 dependencies: 6917 7459 is-number "^3.0.0" 6918 7460 kind-of "^4.0.0" 7461 + 7462 + has-yarn@^2.1.0: 7463 + version "2.1.0" 7464 + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" 7465 + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== 6919 7466 6920 7467 has@^1.0.0, has@^1.0.1, has@^1.0.3: 6921 7468 version "1.0.3" ··· 7039 7586 dependencies: 7040 7587 parse-passwd "^1.0.0" 7041 7588 7042 - hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: 7589 + hosted-git-info@^2.1.4: 7043 7590 version "2.7.1" 7044 7591 resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" 7045 7592 integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== 7046 7593 7594 + hosted-git-info@^3.0.2: 7595 + version "3.0.2" 7596 + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.2.tgz#8b7e3bd114b59b51786f8bade0f39ddc80275a97" 7597 + integrity sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw== 7598 + dependencies: 7599 + lru-cache "^5.1.1" 7600 + 7047 7601 hpack.js@^2.1.6: 7048 7602 version "2.1.6" 7049 7603 resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" ··· 7103 7657 resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" 7104 7658 integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== 7105 7659 7660 + http-cache-semantics@^4.0.0: 7661 + version "4.0.3" 7662 + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5" 7663 + integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew== 7664 + 7106 7665 http-deceiver@^1.2.7: 7107 7666 version "1.2.7" 7108 7667 resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" ··· 7119 7678 statuses ">= 1.5.0 < 2" 7120 7679 toidentifier "1.0.0" 7121 7680 7122 - http-errors@1.7.3, http-errors@^1.7.1, http-errors@~1.7.2: 7681 + http-errors@1.7.3, http-errors@^1.7.3, http-errors@~1.7.2: 7123 7682 version "1.7.3" 7124 7683 resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 7125 7684 integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== ··· 7145 7704 resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" 7146 7705 integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= 7147 7706 7148 - http-proxy-middleware@^0.19.1: 7707 + http-proxy-middleware@0.19.1: 7149 7708 version "0.19.1" 7150 7709 resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" 7151 7710 integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== ··· 7186 7745 agent-base "^4.1.0" 7187 7746 debug "^3.1.0" 7188 7747 7189 - husky@^3.0.1: 7190 - version "3.0.1" 7191 - resolved "https://registry.yarnpkg.com/husky/-/husky-3.0.1.tgz#06152c28e129622b05fa09c494209de8cf2dfb59" 7192 - integrity sha512-PXBv+iGKw23GHUlgELRlVX9932feFL407/wHFwtsGeArp0dDM4u+/QusSQwPKxmNgjpSL+ustbOdQ2jetgAZbA== 7748 + human-signals@^1.1.1: 7749 + version "1.1.1" 7750 + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" 7751 + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== 7752 + 7753 + husky@^3.1.0: 7754 + version "3.1.0" 7755 + resolved "https://registry.yarnpkg.com/husky/-/husky-3.1.0.tgz#5faad520ab860582ed94f0c1a77f0f04c90b57c0" 7756 + integrity sha512-FJkPoHHB+6s4a+jwPqBudBDvYZsoQW5/HBuMSehC8qDiCe50kpcxeqFoDSlow+9I6wg47YxBoT3WxaURlrDIIQ== 7193 7757 dependencies: 7194 7758 chalk "^2.4.2" 7759 + ci-info "^2.0.0" 7195 7760 cosmiconfig "^5.2.1" 7196 7761 execa "^1.0.0" 7197 7762 get-stdin "^7.0.0" 7198 - is-ci "^2.0.0" 7199 7763 opencollective-postinstall "^2.0.2" 7200 7764 pkg-dir "^4.2.0" 7201 - please-upgrade-node "^3.1.1" 7202 - read-pkg "^5.1.1" 7765 + please-upgrade-node "^3.2.0" 7766 + read-pkg "^5.2.0" 7203 7767 run-node "^1.0.0" 7204 7768 slash "^3.0.0" 7205 7769 ··· 7294 7858 pify "^4.0.1" 7295 7859 replace-ext "^1.0.0" 7296 7860 7297 - immutable@~3.7.6: 7298 - version "3.7.6" 7299 - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" 7300 - integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= 7301 - 7302 7861 import-cwd@^2.0.0: 7303 7862 version "2.1.0" 7304 7863 resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" ··· 7314 7873 caller-path "^2.0.0" 7315 7874 resolve-from "^3.0.0" 7316 7875 7317 - import-fresh@^3.0.0: 7318 - version "3.0.0" 7319 - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" 7320 - integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== 7876 + import-fresh@^3.0.0, import-fresh@^3.1.0: 7877 + version "3.2.1" 7878 + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" 7879 + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== 7321 7880 dependencies: 7322 7881 parent-module "^1.0.0" 7323 7882 resolve-from "^4.0.0" ··· 7364 7923 resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" 7365 7924 integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= 7366 7925 7926 + indent-string@^4.0.0: 7927 + version "4.0.0" 7928 + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" 7929 + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== 7930 + 7367 7931 indexes-of@^1.0.1: 7368 7932 version "1.0.1" 7369 7933 resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" ··· 7373 7937 version "0.0.1" 7374 7938 resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 7375 7939 integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= 7940 + 7941 + infer-owner@^1.0.3: 7942 + version "1.0.4" 7943 + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" 7944 + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== 7376 7945 7377 7946 inflight@^1.0.4: 7378 7947 version "1.0.6" ··· 7410 7979 cli-spinners "^1.0.0" 7411 7980 prop-types "^15.5.10" 7412 7981 7413 - ink@^2.3.0: 7414 - version "2.3.0" 7415 - resolved "https://registry.yarnpkg.com/ink/-/ink-2.3.0.tgz#222136be17bb72fc742e19090483e7e0e7dc3690" 7416 - integrity sha512-931rgXHAS3hM++8ygWPOBeHOFwTzHh3pDAVZtiBVOUH6tVvJijym43ODUy22ySo2NwYUFeR/Zj3xuWzBEKMiHw== 7982 + ink@^2.6.0: 7983 + version "2.6.0" 7984 + resolved "https://registry.yarnpkg.com/ink/-/ink-2.6.0.tgz#04acefbed32f6ef9ed20512c51ec8b8e09a890c5" 7985 + integrity sha512-nD/wlSuB6WnFsFB0nUcOJdy28YvvDer3eo+gezjvZqojGA4Rx5sQpacvN//Aai83DRgwrRTyKBl5aciOcfP3zQ== 7417 7986 dependencies: 7418 - "@types/react" "^16.8.6" 7419 - arrify "^1.0.1" 7420 - auto-bind "^2.0.0" 7421 - chalk "^2.4.1" 7422 - cli-cursor "^2.1.0" 7423 - cli-truncate "^1.1.0" 7987 + ansi-escapes "^4.2.1" 7988 + arrify "^2.0.1" 7989 + auto-bind "^3.0.0" 7990 + chalk "^3.0.0" 7991 + cli-cursor "^3.1.0" 7992 + cli-truncate "^2.0.0" 7424 7993 is-ci "^2.0.0" 7425 7994 lodash.throttle "^4.1.1" 7426 7995 log-update "^3.0.0" 7427 7996 prop-types "^15.6.2" 7428 - react-reconciler "^0.20.0" 7429 - scheduler "^0.13.2" 7997 + react-reconciler "^0.24.0" 7998 + scheduler "^0.18.0" 7430 7999 signal-exit "^3.0.2" 7431 - slice-ansi "^1.0.0" 7432 - string-length "^2.0.0" 7433 - widest-line "^2.0.0" 7434 - wrap-ansi "^5.0.0" 8000 + slice-ansi "^3.0.0" 8001 + string-length "^3.1.0" 8002 + widest-line "^3.1.0" 8003 + wrap-ansi "^6.2.0" 7435 8004 yoga-layout-prebuilt "^1.9.3" 7436 8005 7437 8006 inline-style-parser@0.1.1: ··· 7459 8028 strip-ansi "^4.0.0" 7460 8029 through "^2.3.6" 7461 8030 7462 - inquirer@^6.2.0, inquirer@^6.2.2: 7463 - version "6.4.1" 7464 - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.4.1.tgz#7bd9e5ab0567cd23b41b0180b68e0cfa82fc3c0b" 7465 - integrity sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw== 8031 + inquirer@^7.0.0: 8032 + version "7.0.2" 8033 + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.2.tgz#b39b205b95c9424839a1fd991d60426cf9bbc0e9" 8034 + integrity sha512-cZGvHaHwcR9E3xK9EGO5pHKELU+yaeJO7l2qGKIbqk4bCuDuAn15LCoUTS2nSkfv9JybFlnAGrOcVpCDZZOLhw== 7466 8035 dependencies: 7467 - ansi-escapes "^3.2.0" 8036 + ansi-escapes "^4.2.1" 7468 8037 chalk "^2.4.2" 7469 - cli-cursor "^2.1.0" 8038 + cli-cursor "^3.1.0" 7470 8039 cli-width "^2.0.0" 7471 8040 external-editor "^3.0.3" 7472 - figures "^2.0.0" 7473 - lodash "^4.17.11" 7474 - mute-stream "0.0.7" 8041 + figures "^3.0.0" 8042 + lodash "^4.17.15" 8043 + mute-stream "0.0.8" 7475 8044 run-async "^2.2.0" 7476 - rxjs "^6.4.0" 7477 - string-width "^2.1.0" 8045 + rxjs "^6.5.3" 8046 + string-width "^4.1.0" 7478 8047 strip-ansi "^5.1.0" 7479 8048 through "^2.3.6" 7480 8049 ··· 7506 8075 dependencies: 7507 8076 loose-envify "^1.0.0" 7508 8077 7509 - invert-kv@^1.0.0: 7510 - version "1.0.0" 7511 - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 7512 - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= 7513 - 7514 8078 invert-kv@^2.0.0: 7515 8079 version "2.0.0" 7516 8080 resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" ··· 7535 8099 version "2.1.0" 7536 8100 resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" 7537 8101 integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= 8102 + 8103 + is-absolute-url@^3.0.0, is-absolute-url@^3.0.3: 8104 + version "3.0.3" 8105 + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" 8106 + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== 7538 8107 7539 8108 is-accessor-descriptor@^0.1.6: 7540 8109 version "0.1.6" ··· 7568 8137 is-alphabetical "^1.0.0" 7569 8138 is-decimal "^1.0.0" 7570 8139 8140 + is-arguments@^1.0.4: 8141 + version "1.0.4" 8142 + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" 8143 + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== 8144 + 7571 8145 is-arrayish@^0.2.1: 7572 8146 version "0.2.1" 7573 8147 resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" ··· 7585 8159 dependencies: 7586 8160 binary-extensions "^1.0.0" 7587 8161 8162 + is-binary-path@~2.1.0: 8163 + version "2.1.0" 8164 + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 8165 + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 8166 + dependencies: 8167 + binary-extensions "^2.0.0" 8168 + 7588 8169 is-buffer@^1.1.4, is-buffer@^1.1.5, is-buffer@~1.1.1: 7589 8170 version "1.1.6" 7590 8171 resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 7591 8172 integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 7592 8173 7593 - is-buffer@^2.0.0, is-buffer@~2.0.3: 7594 - version "2.0.3" 7595 - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" 7596 - integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== 8174 + is-buffer@^2.0.0, is-buffer@^2.0.2, is-buffer@~2.0.3: 8175 + version "2.0.4" 8176 + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" 8177 + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== 7597 8178 7598 8179 is-builtin-module@^3.0.0: 7599 8180 version "3.0.0" ··· 7602 8183 dependencies: 7603 8184 builtin-modules "^3.0.0" 7604 8185 7605 - is-callable@^1.1.3, is-callable@^1.1.4: 7606 - version "1.1.4" 7607 - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 7608 - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== 7609 - 7610 - is-ci@^1.0.10: 7611 - version "1.2.1" 7612 - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" 7613 - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== 7614 - dependencies: 7615 - ci-info "^1.5.0" 8186 + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5: 8187 + version "1.1.5" 8188 + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" 8189 + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== 7616 8190 7617 8191 is-ci@^2.0.0: 7618 8192 version "2.0.0" ··· 7687 8261 resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" 7688 8262 integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= 7689 8263 7690 - is-docker@1.1.0: 7691 - version "1.1.0" 7692 - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-1.1.0.tgz#f04374d4eee5310e9a8e113bf1495411e46176a1" 7693 - integrity sha1-8EN01O7lMQ6ajhE78UlUEeRhdqE= 8264 + is-docker@2.0.0: 8265 + version "2.0.0" 8266 + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" 8267 + integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== 7694 8268 7695 8269 is-extendable@^0.1.0, is-extendable@^0.1.1: 7696 8270 version "0.1.1" ··· 7733 8307 resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 7734 8308 integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 7735 8309 8310 + is-fullwidth-code-point@^3.0.0: 8311 + version "3.0.0" 8312 + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 8313 + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 8314 + 7736 8315 is-function@^1.0.1: 7737 8316 version "1.0.1" 7738 8317 resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" ··· 7757 8336 dependencies: 7758 8337 is-extglob "^2.1.0" 7759 8338 7760 - is-glob@^4.0.0, is-glob@^4.0.1: 8339 + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: 7761 8340 version "4.0.1" 7762 8341 resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 7763 8342 integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== ··· 7806 8385 resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" 7807 8386 integrity sha1-q5124dtM7VHjXeDHLr7PCfc0zeg= 7808 8387 7809 - is-npm@^1.0.0: 7810 - version "1.0.0" 7811 - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 7812 - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= 8388 + is-npm@^3.0.0: 8389 + version "3.0.0" 8390 + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" 8391 + integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== 7813 8392 7814 8393 is-number@^3.0.0: 7815 8394 version "3.0.0" ··· 7828 8407 resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 7829 8408 integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= 7830 8409 8410 + is-obj@^2.0.0: 8411 + version "2.0.0" 8412 + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" 8413 + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 8414 + 7831 8415 is-object@^1.0.1: 7832 8416 version "1.0.1" 7833 8417 resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" ··· 7840 8424 dependencies: 7841 8425 symbol-observable "^1.1.0" 7842 8426 7843 - is-path-cwd@^1.0.0: 7844 - version "1.0.0" 7845 - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 7846 - integrity sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0= 7847 - 7848 - is-path-cwd@^2.0.0: 7849 - version "2.1.0" 7850 - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c" 7851 - integrity sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw== 7852 - 7853 - is-path-in-cwd@^1.0.0: 7854 - version "1.0.1" 7855 - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" 7856 - integrity sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ== 7857 - dependencies: 7858 - is-path-inside "^1.0.0" 8427 + is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: 8428 + version "2.2.0" 8429 + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" 8430 + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== 7859 8431 7860 8432 is-path-in-cwd@^2.0.0: 7861 8433 version "2.1.0" ··· 7878 8450 dependencies: 7879 8451 path-is-inside "^1.0.2" 7880 8452 8453 + is-path-inside@^3.0.1: 8454 + version "3.0.2" 8455 + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" 8456 + integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== 8457 + 7881 8458 is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: 7882 8459 version "1.1.0" 7883 8460 resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" ··· 7905 8482 resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 7906 8483 integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= 7907 8484 7908 - is-redirect@^1.0.0: 7909 - version "1.0.0" 7910 - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 7911 - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= 7912 - 7913 8485 is-reference@^1.1.2: 7914 8486 version "1.1.3" 7915 8487 resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.1.3.tgz#e99059204b66fdbe09305cfca715a29caa5c8a51" ··· 7917 8489 dependencies: 7918 8490 "@types/estree" "0.0.39" 7919 8491 7920 - is-regex@^1.0.4: 7921 - version "1.0.4" 7922 - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 7923 - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= 8492 + is-regex@^1.0.4, is-regex@^1.0.5: 8493 + version "1.0.5" 8494 + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" 8495 + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== 7924 8496 dependencies: 7925 - has "^1.0.1" 8497 + has "^1.0.3" 7926 8498 7927 8499 is-regexp@^1.0.0: 7928 8500 version "1.0.0" ··· 7936 8508 dependencies: 7937 8509 is-absolute-url "^2.0.0" 7938 8510 8511 + is-relative-url@^3.0.0: 8512 + version "3.0.0" 8513 + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-3.0.0.tgz#f623c8e26baa5bd3742b3b7ec074f50f3b45b3f3" 8514 + integrity sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA== 8515 + dependencies: 8516 + is-absolute-url "^3.0.0" 8517 + 7939 8518 is-relative@^1.0.0: 7940 8519 version "1.0.0" 7941 8520 resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" ··· 7989 8568 dependencies: 7990 8569 has-symbols "^1.0.0" 7991 8570 7992 - is-typedarray@~1.0.0: 8571 + is-typedarray@^1.0.0, is-typedarray@~1.0.0: 7993 8572 version "1.0.0" 7994 8573 resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 7995 8574 integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= ··· 8045 8624 resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" 8046 8625 integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= 8047 8626 8627 + is-wsl@^2.1.1: 8628 + version "2.1.1" 8629 + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" 8630 + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== 8631 + 8632 + is-yarn-global@^0.3.0: 8633 + version "0.3.0" 8634 + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" 8635 + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== 8636 + 8048 8637 isarray@0.0.1: 8049 8638 version "0.0.1" 8050 8639 resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" ··· 8199 8788 pretty-format "^24.8.0" 8200 8789 realpath-native "^1.1.0" 8201 8790 8202 - jest-diff@^24.8.0: 8203 - version "24.8.0" 8204 - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172" 8205 - integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g== 8791 + jest-diff@^24.3.0, jest-diff@^24.8.0: 8792 + version "24.9.0" 8793 + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" 8794 + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== 8206 8795 dependencies: 8207 8796 chalk "^2.0.1" 8208 - diff-sequences "^24.3.0" 8209 - jest-get-type "^24.8.0" 8210 - pretty-format "^24.8.0" 8797 + diff-sequences "^24.9.0" 8798 + jest-get-type "^24.9.0" 8799 + pretty-format "^24.9.0" 8211 8800 8212 8801 jest-docblock@^24.3.0: 8213 8802 version "24.3.0" ··· 8250 8839 jest-mock "^24.8.0" 8251 8840 jest-util "^24.8.0" 8252 8841 8253 - jest-get-type@^24.8.0: 8254 - version "24.8.0" 8255 - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc" 8256 - integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ== 8842 + jest-get-type@^24.8.0, jest-get-type@^24.9.0: 8843 + version "24.9.0" 8844 + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" 8845 + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== 8257 8846 8258 8847 jest-haste-map@^24.8.0: 8259 8848 version "24.8.0" ··· 8274 8863 optionalDependencies: 8275 8864 fsevents "^1.2.7" 8276 8865 8866 + jest-haste-map@^24.9.0: 8867 + version "24.9.0" 8868 + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" 8869 + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== 8870 + dependencies: 8871 + "@jest/types" "^24.9.0" 8872 + anymatch "^2.0.0" 8873 + fb-watchman "^2.0.0" 8874 + graceful-fs "^4.1.15" 8875 + invariant "^2.2.4" 8876 + jest-serializer "^24.9.0" 8877 + jest-util "^24.9.0" 8878 + jest-worker "^24.9.0" 8879 + micromatch "^3.1.10" 8880 + sane "^4.0.3" 8881 + walker "^1.0.7" 8882 + optionalDependencies: 8883 + fsevents "^1.2.7" 8884 + 8277 8885 jest-jasmine2@^24.8.0: 8278 8886 version "24.8.0" 8279 8887 resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898" ··· 8327 8935 slash "^2.0.0" 8328 8936 stack-utils "^1.0.1" 8329 8937 8938 + jest-message-util@^24.9.0: 8939 + version "24.9.0" 8940 + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" 8941 + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== 8942 + dependencies: 8943 + "@babel/code-frame" "^7.0.0" 8944 + "@jest/test-result" "^24.9.0" 8945 + "@jest/types" "^24.9.0" 8946 + "@types/stack-utils" "^1.0.1" 8947 + chalk "^2.0.1" 8948 + micromatch "^3.1.10" 8949 + slash "^2.0.0" 8950 + stack-utils "^1.0.1" 8951 + 8330 8952 jest-mock@^24.8.0: 8331 8953 version "24.8.0" 8332 8954 resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56" ··· 8334 8956 dependencies: 8335 8957 "@jest/types" "^24.8.0" 8336 8958 8959 + jest-mock@^24.9.0: 8960 + version "24.9.0" 8961 + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" 8962 + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== 8963 + dependencies: 8964 + "@jest/types" "^24.9.0" 8965 + 8337 8966 jest-pnp-resolver@^1.2.1: 8338 8967 version "1.2.1" 8339 8968 resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" ··· 8343 8972 version "24.3.0" 8344 8973 resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" 8345 8974 integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== 8975 + 8976 + jest-regex-util@^24.9.0: 8977 + version "24.9.0" 8978 + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" 8979 + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== 8346 8980 8347 8981 jest-resolve-dependencies@^24.8.0: 8348 8982 version "24.8.0" ··· 8423 9057 resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" 8424 9058 integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== 8425 9059 9060 + jest-serializer@^24.9.0: 9061 + version "24.9.0" 9062 + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" 9063 + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== 9064 + 8426 9065 jest-snapshot@^24.8.0: 8427 9066 version "24.8.0" 8428 9067 resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6" ··· 8459 9098 slash "^2.0.0" 8460 9099 source-map "^0.6.0" 8461 9100 9101 + jest-util@^24.9.0: 9102 + version "24.9.0" 9103 + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" 9104 + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== 9105 + dependencies: 9106 + "@jest/console" "^24.9.0" 9107 + "@jest/fake-timers" "^24.9.0" 9108 + "@jest/source-map" "^24.9.0" 9109 + "@jest/test-result" "^24.9.0" 9110 + "@jest/types" "^24.9.0" 9111 + callsites "^3.0.0" 9112 + chalk "^2.0.1" 9113 + graceful-fs "^4.1.15" 9114 + is-ci "^2.0.0" 9115 + mkdirp "^0.5.1" 9116 + slash "^2.0.0" 9117 + source-map "^0.6.0" 9118 + 8462 9119 jest-validate@^24.8.0: 8463 9120 version "24.8.0" 8464 9121 resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849" ··· 8484 9141 jest-util "^24.8.0" 8485 9142 string-length "^2.0.0" 8486 9143 8487 - jest-worker@^23.2.0: 8488 - version "23.2.0" 8489 - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" 8490 - integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= 8491 - dependencies: 8492 - merge-stream "^1.0.1" 8493 - 8494 - jest-worker@^24.6.0: 8495 - version "24.6.0" 8496 - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz#7f81ceae34b7cde0c9827a6980c35b7cdc0161b3" 8497 - integrity sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ== 9144 + jest-worker@^24.6.0, jest-worker@^24.9.0: 9145 + version "24.9.0" 9146 + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" 9147 + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== 8498 9148 dependencies: 8499 - merge-stream "^1.0.1" 9149 + merge-stream "^2.0.0" 8500 9150 supports-color "^6.1.0" 8501 9151 8502 9152 jest@^24.3.1: ··· 8538 9188 resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 8539 9189 integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= 8540 9190 8541 - js-yaml@^3.10.0, js-yaml@^3.11.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.5.2: 9191 + js-yaml@^3.10.0, js-yaml@^3.11.0, js-yaml@^3.13.1, js-yaml@^3.5.2: 8542 9192 version "3.13.1" 8543 9193 resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 8544 9194 integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== ··· 8633 9283 resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" 8634 9284 integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== 8635 9285 9286 + json5@2.x, json5@^2.1.0: 9287 + version "2.1.1" 9288 + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" 9289 + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== 9290 + dependencies: 9291 + minimist "^1.2.0" 9292 + 8636 9293 json5@^1.0.1: 8637 9294 version "1.0.1" 8638 9295 resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 8639 9296 integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 8640 - dependencies: 8641 - minimist "^1.2.0" 8642 - 8643 - json5@^2.1.0: 8644 - version "2.1.0" 8645 - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" 8646 - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== 8647 9297 dependencies: 8648 9298 minimist "^1.2.0" 8649 9299 ··· 8669 9319 json-schema "0.2.3" 8670 9320 verror "1.10.0" 8671 9321 8672 - jsx-ast-utils@^2.0.1, jsx-ast-utils@^2.1.0: 8673 - version "2.2.0" 8674 - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.0.tgz#e2bade6d09c8ef9d5f6b9ff2ace67b2cdbc7e370" 8675 - integrity sha512-yAmhGSzR7TsD0OQpu1AGLz8Bx84cxMqtgoJrufomY6BlveEDlREhvu1rea21936xbe5tlUh7IPda82m5ae0H8Q== 9322 + jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: 9323 + version "2.2.3" 9324 + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" 9325 + integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== 8676 9326 dependencies: 8677 9327 array-includes "^3.0.3" 8678 9328 object.assign "^4.1.0" ··· 8691 9341 dependencies: 8692 9342 json-buffer "3.0.0" 8693 9343 9344 + keyv@^3.0.0: 9345 + version "3.1.0" 9346 + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" 9347 + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== 9348 + dependencies: 9349 + json-buffer "3.0.0" 9350 + 8694 9351 killable@^1.0.1: 8695 9352 version "1.0.1" 8696 9353 resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" ··· 8720 9377 resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" 8721 9378 integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== 8722 9379 8723 - kleur@^3.0.2: 9380 + kleur@^3.0.3: 8724 9381 version "3.0.3" 8725 9382 resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" 8726 9383 integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== ··· 8733 9390 lodash "^4.17.5" 8734 9391 webpack-sources "^1.1.0" 8735 9392 8736 - latest-version@^3.0.0: 8737 - version "3.1.0" 8738 - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 8739 - integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= 9393 + latest-version@^5.0.0: 9394 + version "5.1.0" 9395 + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" 9396 + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== 8740 9397 dependencies: 8741 - package-json "^4.0.0" 8742 - 8743 - lcid@^1.0.0: 8744 - version "1.0.0" 8745 - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 8746 - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= 8747 - dependencies: 8748 - invert-kv "^1.0.0" 9398 + package-json "^6.3.0" 8749 9399 8750 9400 lcid@^2.0.0: 8751 9401 version "2.0.0" ··· 8759 9409 resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" 8760 9410 integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== 8761 9411 8762 - leven@^2.0.0, leven@^2.1.0: 9412 + leven@^2.1.0: 8763 9413 version "2.1.0" 8764 9414 resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" 8765 9415 integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= 8766 9416 9417 + leven@^3.1.0: 9418 + version "3.1.0" 9419 + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" 9420 + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== 9421 + 8767 9422 levn@^0.3.0, levn@~0.3.0: 8768 9423 version "0.3.0" 8769 9424 resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" ··· 8777 9432 resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" 8778 9433 integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= 8779 9434 8780 - lint-staged@^9.2.1: 8781 - version "9.2.1" 8782 - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.2.1.tgz#57fc5947611604d5a32e478734a13f3e4687f646" 8783 - integrity sha512-3lGgJfBddCy/WndKdNko+uJbwyYjBD1k+V+SA+phBYWzH265S95KQya/Wln/UL+hOjc7NcjtFYVCUWuAcqYHhg== 9435 + lint-staged@^9.5.0: 9436 + version "9.5.0" 9437 + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-9.5.0.tgz#290ec605252af646d9b74d73a0fa118362b05a33" 9438 + integrity sha512-nawMob9cb/G1J98nb8v3VC/E8rcX1rryUYXVZ69aT9kde6YWX+uvNOEHY5yf2gcWcTJGiD0kqXmCnS3oD75GIA== 8784 9439 dependencies: 8785 9440 chalk "^2.4.2" 8786 9441 commander "^2.20.0" ··· 8792 9447 listr "^0.14.3" 8793 9448 log-symbols "^3.0.0" 8794 9449 micromatch "^4.0.2" 9450 + normalize-path "^3.0.0" 8795 9451 please-upgrade-node "^3.1.1" 8796 9452 string-argv "^0.3.0" 8797 9453 stringify-object "^3.3.0" ··· 8893 9549 find-cache-dir "^0.1.1" 8894 9550 mkdirp "0.5.1" 8895 9551 8896 - loader-runner@^2.3.0: 9552 + loader-runner@^2.3.0, loader-runner@^2.4.0: 8897 9553 version "2.4.0" 8898 9554 resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" 8899 9555 integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== ··· 9012 9668 resolved "https://registry.yarnpkg.com/lodash.maxby/-/lodash.maxby-4.6.0.tgz#082240068f3c7a227aa00a8380e4f38cf0786e3d" 9013 9669 integrity sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0= 9014 9670 9015 - lodash.memoize@^4.1.2: 9671 + lodash.memoize@4.x, lodash.memoize@^4.1.2: 9016 9672 version "4.1.2" 9017 9673 resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" 9018 9674 integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= ··· 9057 9713 resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" 9058 9714 integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= 9059 9715 9716 + lodash.unescape@4.0.1: 9717 + version "4.0.1" 9718 + resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" 9719 + integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= 9720 + 9060 9721 lodash.uniq@^4.5.0: 9061 9722 version "4.5.0" 9062 9723 resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" 9063 9724 integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= 9064 9725 9065 - lodash@^4.11.1, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: 9726 + lodash@^4.11.1, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: 9066 9727 version "4.17.15" 9067 9728 resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" 9068 9729 integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== ··· 9107 9768 figures "^1.3.5" 9108 9769 squeak "^1.0.0" 9109 9770 9110 - loglevel@^1.6.3: 9111 - version "1.6.3" 9112 - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280" 9113 - integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA== 9771 + loglevel@^1.6.6: 9772 + version "1.6.6" 9773 + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" 9774 + integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ== 9114 9775 9115 - lokijs@^1.5.7: 9116 - version "1.5.7" 9117 - resolved "https://registry.yarnpkg.com/lokijs/-/lokijs-1.5.7.tgz#3bbeb5c2dbffebd78d035bac82c7c4e6055870f0" 9118 - integrity sha512-2SqUV6JH4f15Z5/7LVsyadSUwHhZppxhujgy/VhVqiRYMGt5oaocb7fV/3JGjHJ6rTuEIajnpTLGRz9cJW/c3g== 9776 + lokijs@^1.5.8: 9777 + version "1.5.8" 9778 + resolved "https://registry.yarnpkg.com/lokijs/-/lokijs-1.5.8.tgz#9296f288edb2147389ec692fc972c428c59179d1" 9779 + integrity sha512-D8E3TBrY35o1ELnonp2MF8b3wKu2tVNl2TqRjvS+95oPMMe7OoIAxNY1qr+5BEZwnWn2V4ErAjVt000DonM+FA== 9119 9780 9120 9781 longest-streak@^1.0.0: 9121 9782 version "1.0.0" ··· 9139 9800 dependencies: 9140 9801 js-tokens "^3.0.0 || ^4.0.0" 9141 9802 9142 - loud-rejection@^1.0.0, loud-rejection@^1.2.0: 9803 + loud-rejection@^1.0.0: 9143 9804 version "1.6.0" 9144 9805 resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 9145 9806 integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= ··· 9147 9808 currently-unhandled "^0.4.1" 9148 9809 signal-exit "^3.0.0" 9149 9810 9811 + loud-rejection@^2.2.0: 9812 + version "2.2.0" 9813 + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-2.2.0.tgz#4255eb6e9c74045b0edc021fa7397ab655a8517c" 9814 + integrity sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ== 9815 + dependencies: 9816 + currently-unhandled "^0.4.1" 9817 + signal-exit "^3.0.2" 9818 + 9150 9819 lower-case-first@^1.0.0: 9151 9820 version "1.0.2" 9152 9821 resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1" ··· 9164 9833 resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 9165 9834 integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= 9166 9835 9167 - lowercase-keys@^1.0.0: 9836 + lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: 9168 9837 version "1.0.1" 9169 9838 resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 9170 9839 integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 9840 + 9841 + lowercase-keys@^2.0.0: 9842 + version "2.0.0" 9843 + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 9844 + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 9171 9845 9172 9846 lpad-align@^1.0.1: 9173 9847 version "1.1.2" ··· 9202 9876 dependencies: 9203 9877 yallist "^3.0.2" 9204 9878 9205 - ltcdr@^2.2.1: 9206 - version "2.2.1" 9207 - resolved "https://registry.yarnpkg.com/ltcdr/-/ltcdr-2.2.1.tgz#5ab87ad1d4c1dab8e8c08bbf037ee0c1902287cf" 9208 - integrity sha1-Wrh60dTB2rjowIu/A37gwZAih88= 9209 - 9210 - magic-string@0.25.4, magic-string@^0.25.2, magic-string@^0.25.3: 9879 + magic-string@0.25.4: 9211 9880 version "0.25.4" 9212 9881 resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.4.tgz#325b8a0a79fc423db109b77fd5a19183b7ba5143" 9213 9882 integrity sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw== 9883 + dependencies: 9884 + sourcemap-codec "^1.4.4" 9885 + 9886 + magic-string@^0.25.0, magic-string@^0.25.2, magic-string@^0.25.3: 9887 + version "0.25.5" 9888 + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.5.tgz#694fa8c6b9a51d83cc4a72c5b6883a7cfa890e40" 9889 + integrity sha512-vIO/BOm9odBHBAGwv0gZPLJeO9IpwliiIc0uPeAW93rrFMJ/R3M665IAEfOU/IW3kD4S9AtEn76lfTn1Yif+9A== 9214 9890 dependencies: 9215 9891 sourcemap-codec "^1.4.4" 9216 9892 ··· 9235 9911 integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw== 9236 9912 dependencies: 9237 9913 semver "^6.0.0" 9914 + 9915 + make-error@1.x: 9916 + version "1.3.5" 9917 + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" 9918 + integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== 9238 9919 9239 9920 makeerror@1.0.x: 9240 9921 version "1.0.11" ··· 9243 9924 dependencies: 9244 9925 tmpl "1.0.x" 9245 9926 9927 + mamacro@^0.0.3: 9928 + version "0.0.3" 9929 + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" 9930 + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== 9931 + 9246 9932 map-age-cleaner@^0.1.1: 9247 9933 version "0.1.3" 9248 9934 resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" ··· 9282 9968 resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" 9283 9969 integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== 9284 9970 9285 - md5-file@^3.1.1: 9971 + md5-file@^3.1.1, md5-file@^3.2.3: 9286 9972 version "3.2.3" 9287 9973 resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-3.2.3.tgz#f9bceb941eca2214a4c0727f5e700314e770f06f" 9288 9974 integrity sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw== ··· 9390 10076 resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 9391 10077 integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 9392 10078 9393 - mem@^1.1.0: 9394 - version "1.1.0" 9395 - resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" 9396 - integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= 9397 - dependencies: 9398 - mimic-fn "^1.0.0" 9399 - 9400 10079 mem@^4.0.0: 9401 10080 version "4.3.0" 9402 10081 resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" ··· 9452 10131 resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 9453 10132 integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 9454 10133 9455 - merge-stream@^1.0.1: 9456 - version "1.0.1" 9457 - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" 9458 - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= 9459 - dependencies: 9460 - readable-stream "^2.0.1" 9461 - 9462 10134 merge-stream@^2.0.0: 9463 10135 version "2.0.0" 9464 10136 resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" ··· 9526 10198 resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 9527 10199 integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 9528 10200 9529 - mime@^2.0.3, mime@^2.2.0, mime@^2.3.1, mime@^2.4.2: 10201 + mime@^2.0.3, mime@^2.2.0, mime@^2.3.1, mime@^2.4.4: 9530 10202 version "2.4.4" 9531 10203 resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" 9532 10204 integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== ··· 9541 10213 resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 9542 10214 integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 9543 10215 9544 - mimic-response@^1.0.0: 10216 + mimic-response@^1.0.0, mimic-response@^1.0.1: 9545 10217 version "1.0.1" 9546 10218 resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 9547 10219 integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== ··· 9553 10225 dependencies: 9554 10226 dom-walk "^0.1.0" 9555 10227 9556 - mini-css-extract-plugin@^0.4.0: 9557 - version "0.4.5" 9558 - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz#c99e9e78d54f3fa775633aee5933aeaa4e80719a" 9559 - integrity sha512-dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w== 10228 + mini-css-extract-plugin@^0.8.0: 10229 + version "0.8.2" 10230 + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz#a875e169beb27c88af77dd962771c9eedc3da161" 10231 + integrity sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw== 9560 10232 dependencies: 9561 10233 loader-utils "^1.1.0" 10234 + normalize-url "1.9.1" 9562 10235 schema-utils "^1.0.0" 9563 10236 webpack-sources "^1.1.0" 9564 10237 ··· 9637 10310 stream-each "^1.1.0" 9638 10311 through2 "^2.0.0" 9639 10312 9640 - mitt@^1.1.2: 9641 - version "1.1.3" 9642 - resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.1.3.tgz#528c506238a05dce11cd914a741ea2cc332da9b8" 9643 - integrity sha512-mUDCnVNsAi+eD6qA0HkRkwYczbLHJ49z17BGe2PYRhZL4wpZUFZGJHU7/5tmvohoma+Hdn0Vh/oJTiPEmgSruA== 10313 + mitt@^1.2.0: 10314 + version "1.2.0" 10315 + resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.2.0.tgz#cb24e6569c806e31bd4e3995787fe38a04fdf90d" 10316 + integrity sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw== 9644 10317 9645 10318 mixin-deep@^1.2.0: 9646 10319 version "1.3.1" ··· 9650 10323 for-in "^1.0.2" 9651 10324 is-extendable "^1.0.1" 9652 10325 9653 - mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: 10326 + mkdirp@0.5.1, mkdirp@0.x, mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: 9654 10327 version "0.5.1" 9655 10328 resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 9656 10329 integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= ··· 9664 10337 dependencies: 9665 10338 lodash.isnumber "^3.0.0" 9666 10339 9667 - moment@^2.21.0: 10340 + moment@^2.24.0: 9668 10341 version "2.24.0" 9669 10342 resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" 9670 10343 integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== ··· 9718 10391 resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 9719 10392 integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= 9720 10393 9721 - mute-stream@~0.0.4: 10394 + mute-stream@0.0.8, mute-stream@~0.0.4: 9722 10395 version "0.0.8" 9723 10396 resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" 9724 10397 integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== ··· 9774 10447 resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 9775 10448 integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 9776 10449 9777 - neo-async@^2.5.0, neo-async@^2.6.0: 10450 + neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: 9778 10451 version "2.6.1" 9779 10452 resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" 9780 10453 integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== ··· 9808 10481 dependencies: 9809 10482 semver "^5.4.1" 9810 10483 9811 - node-emoji@^1.6.1, node-emoji@^1.8.1: 10484 + node-emoji@^1.10.0, node-emoji@^1.8.1: 9812 10485 version "1.10.0" 9813 10486 resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" 9814 10487 integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== ··· 9825 10498 resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" 9826 10499 integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= 9827 10500 9828 - node-fetch@2.3.0: 9829 - version "2.3.0" 9830 - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" 9831 - integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== 10501 + node-fetch@2.6.0, node-fetch@^2.2.0, node-fetch@^2.6.0: 10502 + version "2.6.0" 10503 + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" 10504 + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== 9832 10505 9833 10506 node-fetch@^1.0.1: 9834 10507 version "1.7.3" ··· 9838 10511 encoding "^0.1.11" 9839 10512 is-stream "^1.0.1" 9840 10513 9841 - node-fetch@^2.2.0, node-fetch@^2.6.0: 9842 - version "2.6.0" 9843 - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" 9844 - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== 9845 - 9846 - node-forge@0.7.5: 9847 - version "0.7.5" 9848 - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" 9849 - integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== 10514 + node-forge@0.9.0: 10515 + version "0.9.0" 10516 + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" 10517 + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== 9850 10518 9851 10519 node-int64@^0.4.0: 9852 10520 version "0.4.0" 9853 10521 resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" 9854 10522 integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= 9855 10523 9856 - node-libs-browser@^2.0.0: 10524 + node-libs-browser@^2.0.0, node-libs-browser@^2.2.1: 9857 10525 version "2.2.1" 9858 10526 resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" 9859 10527 integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== ··· 9898 10566 shellwords "^0.1.1" 9899 10567 which "^1.3.0" 9900 10568 10569 + node-object-hash@^2.0.0: 10570 + version "2.0.0" 10571 + resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-2.0.0.tgz#9971fcdb7d254f05016bd9ccf508352bee11116b" 10572 + integrity sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ== 10573 + 9901 10574 node-pre-gyp@^0.12.0: 9902 10575 version "0.12.0" 9903 10576 resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" ··· 9914 10587 semver "^5.3.0" 9915 10588 tar "^4" 9916 10589 9917 - node-releases@^1.1.23: 9918 - version "1.1.23" 9919 - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.23.tgz#de7409f72de044a2fa59c097f436ba89c39997f0" 9920 - integrity sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w== 10590 + node-releases@^1.1.44: 10591 + version "1.1.44" 10592 + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.44.tgz#cd66438a6eb875e3eb012b6a12e48d9f4326ffd7" 10593 + integrity sha512-NwbdvJyR7nrcGrXvKAvzc5raj/NkoJudkarh2yIpJ4t0NH4aqjUDz/486P+ynIW5eokKOfzGNRdYoLfBlomruw== 9921 10594 dependencies: 9922 - semver "^5.3.0" 10595 + semver "^6.3.0" 9923 10596 9924 10597 noms@0.0.0: 9925 10598 version "0.0.0" ··· 9959 10632 dependencies: 9960 10633 remove-trailing-separator "^1.0.1" 9961 10634 9962 - normalize-path@^3.0.0: 10635 + normalize-path@^3.0.0, normalize-path@~3.0.0: 9963 10636 version "3.0.0" 9964 10637 resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 9965 10638 integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== ··· 9969 10642 resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" 9970 10643 integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= 9971 10644 10645 + normalize-url@1.9.1: 10646 + version "1.9.1" 10647 + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" 10648 + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= 10649 + dependencies: 10650 + object-assign "^4.0.1" 10651 + prepend-http "^1.0.0" 10652 + query-string "^4.1.0" 10653 + sort-keys "^1.0.0" 10654 + 9972 10655 normalize-url@2.0.1: 9973 10656 version "2.0.1" 9974 10657 resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" ··· 9982 10665 version "3.3.0" 9983 10666 resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" 9984 10667 integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== 10668 + 10669 + normalize-url@^4.1.0: 10670 + version "4.5.0" 10671 + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" 10672 + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== 9985 10673 9986 10674 npm-bundled@^1.0.1: 9987 10675 version "1.0.6" ··· 10033 10721 dependencies: 10034 10722 path-key "^3.0.0" 10035 10723 10724 + npm-run-path@^4.0.0: 10725 + version "4.0.1" 10726 + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 10727 + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 10728 + dependencies: 10729 + path-key "^3.0.0" 10730 + 10036 10731 npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: 10037 10732 version "4.1.2" 10038 10733 resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" ··· 10059 10754 version "0.1.1" 10060 10755 resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-0.1.1.tgz#17be9abfcd3ff0e1512f6fc4afcb1f5039378fae" 10061 10756 integrity sha1-F76av80/8OFRL2/Er8sfUDk3j64= 10062 - 10063 - nullthrows@^1.1.0: 10064 - version "1.1.1" 10065 - resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" 10066 - integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== 10067 10757 10068 10758 num2fraction@^1.2.2: 10069 10759 version "1.2.2" ··· 10109 10799 resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" 10110 10800 integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== 10111 10801 10112 - object-keys@^1.0.11, object-keys@^1.0.12: 10802 + object-inspect@^1.7.0: 10803 + version "1.7.0" 10804 + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" 10805 + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== 10806 + 10807 + object-is@^1.0.1: 10808 + version "1.0.2" 10809 + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" 10810 + integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ== 10811 + 10812 + object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: 10113 10813 version "1.1.1" 10114 10814 resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 10115 10815 integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== ··· 10146 10846 function-bind "^1.1.1" 10147 10847 has "^1.0.3" 10148 10848 10149 - object.fromentries@^2.0.0: 10150 - version "2.0.0" 10151 - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" 10152 - integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== 10849 + object.fromentries@^2.0.1: 10850 + version "2.0.2" 10851 + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" 10852 + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== 10153 10853 dependencies: 10154 - define-properties "^1.1.2" 10155 - es-abstract "^1.11.0" 10854 + define-properties "^1.1.3" 10855 + es-abstract "^1.17.0-next.1" 10156 10856 function-bind "^1.1.1" 10157 - has "^1.0.1" 10857 + has "^1.0.3" 10158 10858 10159 10859 object.getownpropertydescriptors@^2.0.3: 10160 10860 version "2.0.3" ··· 10224 10924 dependencies: 10225 10925 mimic-fn "^2.1.0" 10226 10926 10927 + open@^6.4.0: 10928 + version "6.4.0" 10929 + resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" 10930 + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== 10931 + dependencies: 10932 + is-wsl "^1.1.0" 10933 + 10227 10934 opencollective-postinstall@^2.0.2: 10228 10935 version "2.0.2" 10229 10936 resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" 10230 10937 integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== 10231 10938 10232 - opentracing@^0.14.3: 10233 - version "0.14.3" 10234 - resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.3.tgz#23e3ad029fa66a653926adbe57e834469f8550aa" 10235 - integrity sha1-I+OtAp+mamU5Jq2+V+g0Rp+FUKo= 10939 + opentracing@^0.14.4: 10940 + version "0.14.4" 10941 + resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.4.tgz#a113408ea740da3a90fde5b3b0011a375c2e4268" 10942 + integrity sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA== 10236 10943 10237 10944 opn@5.1.0: 10238 10945 version "5.1.0" ··· 10241 10948 dependencies: 10242 10949 is-wsl "^1.1.0" 10243 10950 10244 - opn@^5.4.0, opn@^5.5.0: 10951 + opn@^5.5.0: 10245 10952 version "5.5.0" 10246 10953 resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" 10247 10954 integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== ··· 10256 10963 minimist "~0.0.1" 10257 10964 wordwrap "~0.0.2" 10258 10965 10259 - optimize-css-assets-webpack-plugin@^5.0.1: 10260 - version "5.0.1" 10261 - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz#9eb500711d35165b45e7fd60ba2df40cb3eb9159" 10262 - integrity sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A== 10966 + optimize-css-assets-webpack-plugin@^5.0.3: 10967 + version "5.0.3" 10968 + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572" 10969 + integrity sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA== 10263 10970 dependencies: 10264 - cssnano "^4.1.0" 10971 + cssnano "^4.1.10" 10265 10972 last-call-webpack-plugin "^3.0.0" 10266 10973 10267 - optionator@^0.8.1, optionator@^0.8.2: 10268 - version "0.8.2" 10269 - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 10270 - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= 10974 + optionator@^0.8.1, optionator@^0.8.3: 10975 + version "0.8.3" 10976 + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" 10977 + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== 10271 10978 dependencies: 10272 10979 deep-is "~0.1.3" 10273 - fast-levenshtein "~2.0.4" 10980 + fast-levenshtein "~2.0.6" 10274 10981 levn "~0.3.0" 10275 10982 prelude-ls "~1.1.2" 10276 10983 type-check "~0.3.2" 10277 - wordwrap "~1.0.0" 10984 + word-wrap "~1.2.3" 10278 10985 10279 10986 original@>=0.0.5, original@^1.0.0: 10280 10987 version "1.0.2" ··· 10305 11012 resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-2.0.0.tgz#a0c76bb001a8392a503cbd46e7e650b3423a923c" 10306 11013 integrity sha512-saRNz0DSC5C/I++gFIaJTXoFJMRwiP5zHar5vV3xQ2TkgEw6hDCcU5F272JjUylpiVgBrZNQHnfjkLabTfb92Q== 10307 11014 10308 - os-locale@^2.0.0: 10309 - version "2.1.0" 10310 - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" 10311 - integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== 10312 - dependencies: 10313 - execa "^0.7.0" 10314 - lcid "^1.0.0" 10315 - mem "^1.1.0" 10316 - 10317 11015 os-locale@^3.0.0: 10318 11016 version "3.1.0" 10319 11017 resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" ··· 10345 11043 version "0.4.1" 10346 11044 resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" 10347 11045 integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== 11046 + 11047 + p-cancelable@^1.0.0: 11048 + version "1.1.0" 11049 + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" 11050 + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== 10348 11051 10349 11052 p-defer@^1.0.0: 10350 11053 version "1.0.0" ··· 10434 11137 dependencies: 10435 11138 p-reduce "^1.0.0" 10436 11139 10437 - p-map@^1.1.1: 10438 - version "1.2.0" 10439 - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" 10440 - integrity sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA== 10441 - 10442 11140 p-map@^2.0.0: 10443 11141 version "2.1.0" 10444 11142 resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" 10445 11143 integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== 10446 11144 11145 + p-map@^3.0.0: 11146 + version "3.0.0" 11147 + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" 11148 + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== 11149 + dependencies: 11150 + aggregate-error "^3.0.0" 11151 + 10447 11152 p-pipe@^1.1.0: 10448 11153 version "1.2.0" 10449 11154 resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-1.2.0.tgz#4b1a11399a11520a67790ee5a0c1d5881d6befe9" ··· 10468 11173 dependencies: 10469 11174 retry "^0.12.0" 10470 11175 10471 - p-timeout@^1.1.1, p-timeout@^1.2.0: 11176 + p-timeout@^1.1.1: 10472 11177 version "1.2.1" 10473 11178 resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" 10474 11179 integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= ··· 10492 11197 resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 10493 11198 integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 10494 11199 10495 - package-json@^4.0.0: 10496 - version "4.0.1" 10497 - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 10498 - integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= 11200 + package-json@^6.3.0: 11201 + version "6.5.0" 11202 + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" 11203 + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== 10499 11204 dependencies: 10500 - got "^6.7.1" 10501 - registry-auth-token "^3.0.1" 10502 - registry-url "^3.0.3" 10503 - semver "^5.1.0" 11205 + got "^9.6.0" 11206 + registry-auth-token "^4.0.0" 11207 + registry-url "^5.0.0" 11208 + semver "^6.2.0" 10504 11209 10505 11210 pako@^1.0.5, pako@~1.0.5: 10506 11211 version "1.0.10" ··· 10688 11393 dependencies: 10689 11394 better-assert "~1.0.0" 10690 11395 10691 - parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: 11396 + parseurl@^1.3.3, parseurl@~1.3.2, parseurl@~1.3.3: 10692 11397 version "1.3.3" 10693 11398 resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 10694 11399 integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== ··· 10755 11460 resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 10756 11461 integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 10757 11462 10758 - path-key@^3.0.0: 10759 - version "3.1.0" 10760 - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3" 10761 - integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg== 11463 + path-key@^3.0.0, path-key@^3.1.0: 11464 + version "3.1.1" 11465 + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 11466 + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 10762 11467 10763 11468 path-parse@^1.0.6: 10764 11469 version "1.0.6" ··· 10829 11534 resolved "https://registry.yarnpkg.com/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz#18de2f97e4bf7a9551ad7511942b5496f7aba660" 10830 11535 integrity sha1-GN4vl+S/epVRrXURlCtUlverpmA= 10831 11536 10832 - picomatch@^2.0.5: 10833 - version "2.0.7" 10834 - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6" 10835 - integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA== 11537 + picomatch@^2.0.4, picomatch@^2.0.5: 11538 + version "2.2.1" 11539 + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a" 11540 + integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA== 10836 11541 10837 11542 pidtree@^0.3.0: 10838 11543 version "0.3.0" ··· 10901 11606 dependencies: 10902 11607 find-up "^3.0.0" 10903 11608 10904 - pkg-dir@^4.2.0: 11609 + pkg-dir@^4.1.0, pkg-dir@^4.2.0: 10905 11610 version "4.2.0" 10906 11611 resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" 10907 11612 integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== 10908 11613 dependencies: 10909 11614 find-up "^4.0.0" 10910 11615 10911 - please-upgrade-node@^3.1.1: 10912 - version "3.1.1" 10913 - resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" 10914 - integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== 11616 + please-upgrade-node@^3.1.1, please-upgrade-node@^3.2.0: 11617 + version "3.2.0" 11618 + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" 11619 + integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg== 10915 11620 dependencies: 10916 11621 semver-compare "^1.0.0" 10917 11622 ··· 10935 11640 execa "^0.10.0" 10936 11641 logalot "^2.0.0" 10937 11642 10938 - pnp-webpack-plugin@^1.4.1: 11643 + pnp-webpack-plugin@^1.5.0: 10939 11644 version "1.5.0" 10940 11645 resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz#62a1cd3068f46d564bb33c56eb250e4d586676eb" 10941 11646 integrity sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg== 10942 11647 dependencies: 10943 11648 ts-pnp "^1.1.2" 10944 11649 10945 - portfinder@^1.0.20: 10946 - version "1.0.20" 10947 - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" 10948 - integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw== 11650 + portfinder@^1.0.25: 11651 + version "1.0.25" 11652 + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" 11653 + integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== 10949 11654 dependencies: 10950 - async "^1.5.2" 10951 - debug "^2.2.0" 10952 - mkdirp "0.5.x" 11655 + async "^2.6.2" 11656 + debug "^3.1.1" 11657 + mkdirp "^0.5.1" 10953 11658 10954 11659 posix-character-classes@^0.1.0: 10955 11660 version "0.1.1" ··· 11013 11718 dependencies: 11014 11719 postcss "^7.0.0" 11015 11720 11016 - postcss-flexbugs-fixes@^3.0.0: 11721 + postcss-flexbugs-fixes@^3.3.1: 11017 11722 version "3.3.1" 11018 11723 resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz#0783cc7212850ef707f97f8bc8b6fb624e00c75d" 11019 11724 integrity sha512-9y9kDDf2F9EjKX6x9ueNa5GARvsUbXw4ezH8vXItXHwKzljbu8awP7t5dCaabKYm18Vs1lo5bKQcnc0HkISt+w== ··· 11028 11733 cosmiconfig "^5.0.0" 11029 11734 import-cwd "^2.0.0" 11030 11735 11031 - postcss-loader@^2.1.3: 11736 + postcss-loader@^2.1.6: 11032 11737 version "2.1.6" 11033 11738 resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.6.tgz#1d7dd7b17c6ba234b9bed5af13e0bea40a42d740" 11034 11739 integrity sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg== ··· 11283 11988 resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" 11284 11989 integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== 11285 11990 11991 + postcss-value-parser@^4.0.2: 11992 + version "4.0.2" 11993 + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" 11994 + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== 11995 + 11286 11996 postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.23: 11287 11997 version "6.0.23" 11288 11998 resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" ··· 11292 12002 source-map "^0.6.1" 11293 12003 supports-color "^5.4.0" 11294 12004 11295 - postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.16, postcss@^7.0.5: 11296 - version "7.0.17" 11297 - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f" 11298 - integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ== 12005 + postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.23, postcss@^7.0.5: 12006 + version "7.0.26" 12007 + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" 12008 + integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA== 11299 12009 dependencies: 11300 12010 chalk "^2.4.2" 11301 12011 source-map "^0.6.1" ··· 11335 12045 resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 11336 12046 integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 11337 12047 11338 - prepend-http@^1.0.1: 12048 + prepend-http@^1.0.0, prepend-http@^1.0.1: 11339 12049 version "1.0.4" 11340 12050 resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 11341 12051 integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= ··· 11345 12055 resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" 11346 12056 integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= 11347 12057 11348 - prettier@^1.16.4, prettier@^1.18.2: 11349 - version "1.18.2" 11350 - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" 11351 - integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== 12058 + prettier@^1.16.4, prettier@^1.19.1: 12059 + version "1.19.1" 12060 + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" 12061 + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== 11352 12062 11353 12063 pretty-bytes@^4.0.2: 11354 12064 version "4.0.2" ··· 11368 12078 renderkid "^2.0.1" 11369 12079 utila "~0.4" 11370 12080 11371 - pretty-format@^24.8.0: 11372 - version "24.8.0" 11373 - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2" 11374 - integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw== 12081 + pretty-format@^24.8.0, pretty-format@^24.9.0: 12082 + version "24.9.0" 12083 + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" 12084 + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== 11375 12085 dependencies: 11376 - "@jest/types" "^24.8.0" 12086 + "@jest/types" "^24.9.0" 11377 12087 ansi-regex "^4.0.0" 11378 12088 ansi-styles "^3.2.0" 11379 12089 react-is "^16.8.4" ··· 11432 12142 dependencies: 11433 12143 asap "~2.0.3" 11434 12144 11435 - prompts@^2.0.1, prompts@^2.1.0: 11436 - version "2.1.0" 11437 - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.1.0.tgz#bf90bc71f6065d255ea2bdc0fe6520485c1b45db" 11438 - integrity sha512-+x5TozgqYdOwWsQFZizE/Tra3fKvAoy037kOyU6cgz84n8f6zxngLOV4O32kTwt9FcLCxAqw0P/c8rOr9y+Gfg== 12145 + prompts@^2.0.1, prompts@^2.3.0: 12146 + version "2.3.0" 12147 + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.0.tgz#a444e968fa4cc7e86689a74050685ac8006c4cc4" 12148 + integrity sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg== 11439 12149 dependencies: 11440 - kleur "^3.0.2" 11441 - sisteransi "^1.0.0" 12150 + kleur "^3.0.3" 12151 + sisteransi "^1.0.3" 11442 12152 11443 12153 prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: 11444 12154 version "15.7.2" ··· 11564 12274 resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 11565 12275 integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 11566 12276 12277 + query-string@^4.1.0: 12278 + version "4.3.4" 12279 + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" 12280 + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= 12281 + dependencies: 12282 + object-assign "^4.1.0" 12283 + strict-uri-encode "^1.0.0" 12284 + 11567 12285 query-string@^5.0.1: 11568 12286 version "5.1.1" 11569 12287 resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" ··· 11627 12345 iconv-lite "0.4.24" 11628 12346 unpipe "1.0.0" 11629 12347 11630 - raw-body@^2.3.3: 12348 + raw-body@^2.4.1: 11631 12349 version "2.4.1" 11632 12350 resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" 11633 12351 integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== ··· 11642 12360 resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" 11643 12361 integrity sha1-DD0L6u2KAclm2Xh793goElKpeao= 11644 12362 11645 - rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: 12363 + rc@^1.2.7, rc@^1.2.8: 11646 12364 version "1.2.8" 11647 12365 resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 11648 12366 integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== ··· 11676 12394 strip-ansi "3.0.1" 11677 12395 text-table "0.2.0" 11678 12396 11679 - react-dom@^16.8.6: 11680 - version "16.8.6" 11681 - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.6.tgz#71d6303f631e8b0097f56165ef608f051ff6e10f" 11682 - integrity sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA== 12397 + react-dom@^16.12.0: 12398 + version "16.12.0" 12399 + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.12.0.tgz#0da4b714b8d13c2038c9396b54a92baea633fe11" 12400 + integrity sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw== 11683 12401 dependencies: 11684 12402 loose-envify "^1.1.0" 11685 12403 object-assign "^4.1.1" 11686 12404 prop-types "^15.6.2" 11687 - scheduler "^0.13.6" 12405 + scheduler "^0.18.0" 11688 12406 11689 12407 react-error-overlay@^3.0.0: 11690 12408 version "3.0.0" ··· 11706 12424 react-fast-compare "^2.0.2" 11707 12425 react-side-effect "^1.1.0" 11708 12426 11709 - react-hot-loader@^4.12.5: 11710 - version "4.12.9" 11711 - resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.12.9.tgz#cb2a85731ca38366b0e9e28e7fd1dbd7dcacc1ef" 11712 - integrity sha512-lWT3JpWUN7nGHSoI9c4MV+42ov79bd8aqwDzhoyKev3owIh+hbEivT6Mb81lCV6tWuqm9trKo2/Th2/YDhFCdw== 12427 + react-hot-loader@^4.12.18: 12428 + version "4.12.18" 12429 + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.12.18.tgz#a9029e34af2690d76208f9a35189d73c2dfea6a7" 12430 + integrity sha512-qYD0Qi9lIbg9jLyfmodfqvAQqCBsoPKxAhca8Nxvy2/2pO5Q9r2kM28jN0bbbSnhwK8dJ7FjsfVtXKOxMW+bqw== 11713 12431 dependencies: 11714 12432 fast-levenshtein "^2.0.6" 11715 12433 global "^4.3.0" ··· 11730 12448 resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" 11731 12449 integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== 11732 12450 11733 - react-reconciler@^0.20.0: 11734 - version "0.20.4" 11735 - resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.20.4.tgz#3da6a95841592f849cb4edd3d38676c86fd920b2" 11736 - integrity sha512-kxERc4H32zV2lXMg/iMiwQHOtyqf15qojvkcZ5Ja2CPkjVohHw9k70pdDBwrnQhLVetUJBSYyqU3yqrlVTOajA== 12451 + react-reconciler@^0.24.0: 12452 + version "0.24.0" 12453 + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.24.0.tgz#5a396b2c2f5efe8554134a5935f49f546723f2dd" 12454 + integrity sha512-gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw== 11737 12455 dependencies: 11738 12456 loose-envify "^1.1.0" 11739 12457 object-assign "^4.1.1" 11740 12458 prop-types "^15.6.2" 11741 - scheduler "^0.13.6" 12459 + scheduler "^0.18.0" 11742 12460 11743 12461 react-side-effect@^1.1.0: 11744 12462 version "1.1.5" ··· 11753 12471 resolved "https://registry.yarnpkg.com/react-typography/-/react-typography-0.16.19.tgz#5736b47961dcf6b9605b6fa38d41980db2588e28" 11754 12472 integrity sha512-kV2qLEsdm0x9P4YXQEDVc88tDb4Vg0h/vdVZGgbqaRn8ERvNzV76JHUeOby3vvcUYU5MPd5Kz5DPH9Bhp4I/iw== 11755 12473 11756 - react@^16.8.4, react@^16.8.6: 11757 - version "16.8.6" 11758 - resolved "https://registry.yarnpkg.com/react/-/react-16.8.6.tgz#ad6c3a9614fd3a4e9ef51117f54d888da01f2bbe" 11759 - integrity sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw== 12474 + react@^16.12.0: 12475 + version "16.12.0" 12476 + resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83" 12477 + integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA== 11760 12478 dependencies: 11761 12479 loose-envify "^1.1.0" 11762 12480 object-assign "^4.1.1" 11763 12481 prop-types "^15.6.2" 11764 - scheduler "^0.13.6" 11765 12482 11766 12483 read-chunk@^3.0.0: 11767 12484 version "3.2.0" ··· 11822 12539 normalize-package-data "^2.3.2" 11823 12540 path-type "^3.0.0" 11824 12541 11825 - read-pkg@^5.1.1: 12542 + read-pkg@^5.2.0: 11826 12543 version "5.2.0" 11827 12544 resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" 11828 12545 integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== ··· 11880 12597 micromatch "^3.1.10" 11881 12598 readable-stream "^2.0.2" 11882 12599 12600 + readdirp@~3.2.0: 12601 + version "3.2.0" 12602 + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" 12603 + integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== 12604 + dependencies: 12605 + picomatch "^2.0.4" 12606 + 11883 12607 realpath-native@^1.1.0: 11884 12608 version "1.1.0" 11885 12609 resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" ··· 11914 12638 resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" 11915 12639 integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== 11916 12640 11917 - redux@^4.0.0: 11918 - version "4.0.1" 11919 - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5" 11920 - integrity sha512-R7bAtSkk7nY6O/OYMVR9RiBI+XghjF9rlbl5806HJbQph0LJVHZrU5oaO4q70eUKiqMRqm4y07KLTlMZ2BlVmg== 12641 + redux@^4.0.4: 12642 + version "4.0.5" 12643 + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" 12644 + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== 11921 12645 dependencies: 11922 12646 loose-envify "^1.4.0" 11923 12647 symbol-observable "^1.2.0" 11924 12648 11925 - regenerate-unicode-properties@^8.0.2: 11926 - version "8.0.2" 11927 - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.0.2.tgz#7b38faa296252376d363558cfbda90c9ce709662" 11928 - integrity sha512-SbA/iNrBUf6Pv2zU8Ekv1Qbhv92yxL4hiDa2siuxs4KKn4oOoMDHXjAf7+Nz9qinUQ46B1LcWEi/PhJfPWpZWQ== 12649 + regenerate-unicode-properties@^8.1.0: 12650 + version "8.1.0" 12651 + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" 12652 + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== 11929 12653 dependencies: 11930 12654 regenerate "^1.4.0" 11931 12655 ··· 11964 12688 extend-shallow "^3.0.2" 11965 12689 safe-regex "^1.1.0" 11966 12690 11967 - regexp-tree@^0.1.6: 11968 - version "0.1.10" 11969 - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.10.tgz#d837816a039c7af8a8d64d7a7c3cf6a1d93450bc" 11970 - integrity sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ== 12691 + regexp.prototype.flags@^1.2.0: 12692 + version "1.3.0" 12693 + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" 12694 + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== 12695 + dependencies: 12696 + define-properties "^1.1.3" 12697 + es-abstract "^1.17.0-next.1" 11971 12698 11972 12699 regexpp@^2.0.1: 11973 12700 version "2.0.1" 11974 12701 resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" 11975 12702 integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== 11976 12703 12704 + regexpp@^3.0.0: 12705 + version "3.0.0" 12706 + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.0.0.tgz#dd63982ee3300e67b41c1956f850aa680d9d330e" 12707 + integrity sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g== 12708 + 11977 12709 regexpu-core@^1.0.0: 11978 12710 version "1.0.0" 11979 12711 resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" ··· 11983 12715 regjsgen "^0.2.0" 11984 12716 regjsparser "^0.1.4" 11985 12717 11986 - regexpu-core@^4.5.4: 11987 - version "4.5.4" 11988 - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" 11989 - integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== 12718 + regexpu-core@^4.5.4, regexpu-core@^4.6.0: 12719 + version "4.6.0" 12720 + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" 12721 + integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== 11990 12722 dependencies: 11991 12723 regenerate "^1.4.0" 11992 - regenerate-unicode-properties "^8.0.2" 12724 + regenerate-unicode-properties "^8.1.0" 11993 12725 regjsgen "^0.5.0" 11994 12726 regjsparser "^0.6.0" 11995 12727 unicode-match-property-ecmascript "^1.0.4" 11996 12728 unicode-match-property-value-ecmascript "^1.1.0" 11997 12729 11998 - registry-auth-token@^3.0.1: 11999 - version "3.4.0" 12000 - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" 12001 - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== 12730 + registry-auth-token@^4.0.0: 12731 + version "4.0.0" 12732 + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.0.0.tgz#30e55961eec77379da551ea5c4cf43cbf03522be" 12733 + integrity sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw== 12002 12734 dependencies: 12003 - rc "^1.1.6" 12735 + rc "^1.2.8" 12004 12736 safe-buffer "^5.0.1" 12005 12737 12006 - registry-url@^3.0.3: 12007 - version "3.1.0" 12008 - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 12009 - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= 12738 + registry-url@^5.0.0: 12739 + version "5.1.0" 12740 + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" 12741 + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== 12010 12742 dependencies: 12011 - rc "^1.0.1" 12743 + rc "^1.2.8" 12012 12744 12013 12745 regjsgen@^0.2.0: 12014 12746 version "0.2.0" ··· 12033 12765 integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== 12034 12766 dependencies: 12035 12767 jsesc "~0.5.0" 12036 - 12037 - relay-runtime@2.0.0: 12038 - version "2.0.0" 12039 - resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-2.0.0.tgz#0e42df90365cc69f104f7e4b20fdcf975f5a9c0b" 12040 - integrity sha512-o/LPFHTI6+3FLJXM3Ec4N6hzkKYILVHYRJThNX0UQlMnqjTVPR6NO4qFE2QzzEiUS+lys+qfnvBzSmNbSh1zWQ== 12041 - dependencies: 12042 - "@babel/runtime" "^7.0.0" 12043 - fbjs "^1.0.0" 12044 12768 12045 12769 remark-emoji@^2.0.2: 12046 12770 version "2.0.2" ··· 12314 13038 resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" 12315 13039 integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= 12316 13040 12317 - resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: 12318 - version "1.11.1" 12319 - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" 12320 - integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== 13041 + resolve@1.12.0: 13042 + version "1.12.0" 13043 + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" 13044 + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== 12321 13045 dependencies: 12322 13046 path-parse "^1.0.6" 12323 13047 12324 - responselike@1.0.2: 13048 + resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1: 13049 + version "1.14.1" 13050 + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.14.1.tgz#9e018c540fcf0c427d678b9931cbf45e984bcaff" 13051 + integrity sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg== 13052 + dependencies: 13053 + path-parse "^1.0.6" 13054 + 13055 + responselike@1.0.2, responselike@^1.0.2: 12325 13056 version "1.0.2" 12326 13057 resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" 12327 13058 integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= ··· 12336 13067 onetime "^2.0.0" 12337 13068 signal-exit "^3.0.2" 12338 13069 13070 + restore-cursor@^3.1.0: 13071 + version "3.1.0" 13072 + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" 13073 + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== 13074 + dependencies: 13075 + onetime "^5.1.0" 13076 + signal-exit "^3.0.2" 13077 + 12339 13078 ret@~0.1.10: 12340 13079 version "0.1.15" 12341 13080 resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" ··· 12401 13140 resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" 12402 13141 integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= 12403 13142 12404 - rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.0, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: 13143 + rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: 12405 13144 version "2.6.3" 12406 13145 resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 12407 13146 integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 13147 + dependencies: 13148 + glob "^7.1.3" 13149 + 13150 + rimraf@^3.0.0: 13151 + version "3.0.0" 13152 + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.0.tgz#614176d4b3010b75e5c390eb0ee96f6dc0cebb9b" 13153 + integrity sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg== 12408 13154 dependencies: 12409 13155 glob "^7.1.3" 12410 13156 ··· 12424 13170 "@babel/helper-module-imports" "^7.0.0" 12425 13171 rollup-pluginutils "^2.8.1" 12426 13172 12427 - rollup-plugin-buble@^0.19.8: 12428 - version "0.19.8" 12429 - resolved "https://registry.yarnpkg.com/rollup-plugin-buble/-/rollup-plugin-buble-0.19.8.tgz#f9232e2bb62a7573d04f9705c1bd6f02c2a02c6a" 12430 - integrity sha512-8J4zPk2DQdk3rxeZvxgzhHh/rm5nJkjwgcsUYisCQg1QbT5yagW+hehYEW7ZNns/NVbDCTv4JQ7h4fC8qKGOKw== 12431 - dependencies: 12432 - buble "^0.19.8" 12433 - rollup-pluginutils "^2.3.3" 12434 - 12435 - rollup-plugin-commonjs@^10.1.0: 12436 - version "10.1.0" 12437 - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz#417af3b54503878e084d127adf4d1caf8beb86fb" 12438 - integrity sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q== 12439 - dependencies: 12440 - estree-walker "^0.6.1" 12441 - is-reference "^1.1.2" 12442 - magic-string "^0.25.2" 12443 - resolve "^1.11.0" 12444 - rollup-pluginutils "^2.8.1" 12445 - 12446 - rollup-plugin-node-resolve@^5.2.0: 12447 - version "5.2.0" 12448 - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" 12449 - integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== 12450 - dependencies: 12451 - "@types/resolve" "0.0.8" 12452 - builtin-modules "^3.1.0" 12453 - is-module "^1.0.0" 12454 - resolve "^1.11.1" 12455 - rollup-pluginutils "^2.8.1" 12456 - 12457 13173 rollup-plugin-terser@^5.1.3: 12458 13174 version "5.1.3" 12459 13175 resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.1.3.tgz#5f4c4603b12b4f8d093f4b6f31c9aa5eba98a223" ··· 12465 13181 serialize-javascript "^2.1.2" 12466 13182 terser "^4.1.0" 12467 13183 12468 - rollup-pluginutils@^2.3.3, rollup-pluginutils@^2.8.1: 13184 + rollup-plugin-typescript2@^0.25.3: 13185 + version "0.25.3" 13186 + resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.25.3.tgz#a5fb2f0f85488789334ce540abe6c7011cbdf40f" 13187 + integrity sha512-ADkSaidKBovJmf5VBnZBZe+WzaZwofuvYdzGAKTN/J4hN7QJCFYAq7IrH9caxlru6T5qhX41PNFS1S4HqhsGQg== 13188 + dependencies: 13189 + find-cache-dir "^3.0.0" 13190 + fs-extra "8.1.0" 13191 + resolve "1.12.0" 13192 + rollup-pluginutils "2.8.1" 13193 + tslib "1.10.0" 13194 + 13195 + rollup-pluginutils@2.8.1: 12469 13196 version "2.8.1" 12470 13197 resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.1.tgz#8fa6dd0697344938ef26c2c09d2488ce9e33ce97" 12471 13198 integrity sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg== 12472 13199 dependencies: 12473 13200 estree-walker "^0.6.1" 12474 13201 12475 - rollup@^1.27.13: 12476 - version "1.27.13" 12477 - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.27.13.tgz#d6d3500512daacbf8de54d2800de62d893085b90" 12478 - integrity sha512-hDi7M07MpmNSDE8YVwGVFA8L7n8jTLJ4lG65nMAijAyqBe//rtu4JdxjUBE7JqXfdpqxqDTbCDys9WcqdpsQvw== 13202 + rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: 13203 + version "2.8.2" 13204 + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" 13205 + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 13206 + dependencies: 13207 + estree-walker "^0.6.1" 13208 + 13209 + rollup@^1.28.0: 13210 + version "1.28.0" 13211 + resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.28.0.tgz#d576a6a0fd7490b2e1f531ef8b411795fb80da87" 13212 + integrity sha512-v2J/DmQi9+Nf6frGqzwZRvbiuTTrqH0yzoUF4Eybf8sONT4UpLZzJYnYzW96Zm9X1+4SJmijfnFBWCzHDAXYnQ== 12479 13213 dependencies: 12480 13214 "@types/estree" "*" 12481 13215 "@types/node" "*" ··· 12522 13256 resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 12523 13257 integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= 12524 13258 12525 - rxjs@^6.3.3, rxjs@^6.4.0: 12526 - version "6.5.2" 12527 - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" 12528 - integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg== 13259 + rxjs@^6.3.3, rxjs@^6.5.3: 13260 + version "6.5.4" 13261 + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" 13262 + integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== 12529 13263 dependencies: 12530 13264 tslib "^1.9.0" 12531 13265 ··· 12566 13300 resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 12567 13301 integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 12568 13302 12569 - scheduler@^0.13.2, scheduler@^0.13.6: 12570 - version "0.13.6" 12571 - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.6.tgz#466a4ec332467b31a91b9bf74e5347072e4cd889" 12572 - integrity sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ== 13303 + scheduler@^0.18.0: 13304 + version "0.18.0" 13305 + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" 13306 + integrity sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ== 12573 13307 dependencies: 12574 13308 loose-envify "^1.1.0" 12575 13309 object-assign "^4.1.1" ··· 12591 13325 ajv-errors "^1.0.0" 12592 13326 ajv-keywords "^3.1.0" 12593 13327 12594 - scroll-behavior@^0.9.9: 12595 - version "0.9.10" 12596 - resolved "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.9.10.tgz#c8953adeeb3586060b903328d860aa8346d62861" 12597 - integrity sha512-JVJQkBkqMLEM4ATtbHTKare97zhz/qlla9mNttFYY/bcpyOb4BuBGEQ/N9AQWXvshzf6zo9jP60TlphnJ4YPoQ== 13328 + scroll-behavior@^0.9.10: 13329 + version "0.9.11" 13330 + resolved "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.9.11.tgz#f7b34380c038062bdcbd604c90e1d313220f7f3c" 13331 + integrity sha512-Eo32cg2uFiQwEiJXHHoTfXLybTlyA1O3ZOIiTz8EqRWie+ExL+7l8PcejhKT+5QmRtykXSlsTRVDC3BVB3S/bg== 12598 13332 dependencies: 12599 - dom-helpers "^3.2.1" 12600 - invariant "^2.2.2" 13333 + dom-helpers "^3.4.0" 13334 + invariant "^2.2.4" 12601 13335 12602 13336 section-matter@^1.0.0: 12603 13337 version "1.0.0" ··· 12619 13353 resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" 12620 13354 integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= 12621 13355 12622 - selfsigned@^1.10.4: 12623 - version "1.10.4" 12624 - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" 12625 - integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== 13356 + selfsigned@^1.10.7: 13357 + version "1.10.7" 13358 + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" 13359 + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== 12626 13360 dependencies: 12627 - node-forge "0.7.5" 13361 + node-forge "0.9.0" 12628 13362 12629 13363 semver-compare@^1.0.0: 12630 13364 version "1.0.0" ··· 12650 13384 dependencies: 12651 13385 semver "^5.3.0" 12652 13386 12653 - "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: 12654 - version "5.7.0" 12655 - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" 12656 - integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== 13387 + "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0, semver@^5.4.1, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: 13388 + version "5.7.1" 13389 + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 13390 + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 12657 13391 12658 - semver@^6.0.0, semver@^6.1.1: 12659 - version "6.1.2" 12660 - resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.2.tgz#079960381376a3db62eb2edc8a3bfb10c7cfe318" 12661 - integrity sha512-z4PqiCpomGtWj8633oeAdXm1Kn1W++3T8epkZYnwiVgIYIJ0QHszhInYSJTYxebByQH7KVCEAn8R9duzZW2PhQ== 13392 + semver@7.0.0: 13393 + version "7.0.0" 13394 + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" 13395 + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== 13396 + 13397 + semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: 13398 + version "6.3.0" 13399 + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 13400 + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 12662 13401 12663 13402 send@0.17.1: 12664 13403 version "0.17.1" ··· 12686 13425 dependencies: 12687 13426 no-case "^2.2.0" 12688 13427 upper-case-first "^1.1.2" 12689 - 12690 - serialize-javascript@^1.7.0: 12691 - version "1.7.0" 12692 - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" 12693 - integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== 12694 13428 12695 13429 serialize-javascript@^2.1.2: 12696 13430 version "2.1.2" ··· 12801 13535 dependencies: 12802 13536 shebang-regex "^1.0.0" 12803 13537 13538 + shebang-command@^2.0.0: 13539 + version "2.0.0" 13540 + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 13541 + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 13542 + dependencies: 13543 + shebang-regex "^3.0.0" 13544 + 12804 13545 shebang-regex@^1.0.0: 12805 13546 version "1.0.0" 12806 13547 resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 12807 13548 integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 13549 + 13550 + shebang-regex@^3.0.0: 13551 + version "3.0.0" 13552 + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 13553 + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 12808 13554 12809 13555 shell-quote@1.6.1, shell-quote@^1.6.1: 12810 13556 version "1.6.1" ··· 12840 13586 resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 12841 13587 integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 12842 13588 12843 - signedsource@^1.0.0: 12844 - version "1.0.0" 12845 - resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" 12846 - integrity sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo= 12847 - 12848 13589 simple-concat@^1.0.0: 12849 13590 version "1.0.0" 12850 13591 resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" ··· 12875 13616 dependencies: 12876 13617 is-arrayish "^0.3.1" 12877 13618 12878 - sisteransi@^1.0.0: 12879 - version "1.0.0" 12880 - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c" 12881 - integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ== 13619 + sisteransi@^1.0.3: 13620 + version "1.0.4" 13621 + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.4.tgz#386713f1ef688c7c0304dc4c0632898941cad2e3" 13622 + integrity sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig== 12882 13623 12883 13624 sitemap@^1.12.0: 12884 13625 version "1.13.0" ··· 12908 13649 resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 12909 13650 integrity sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU= 12910 13651 12911 - slice-ansi@^1.0.0: 12912 - version "1.0.0" 12913 - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 12914 - integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== 12915 - dependencies: 12916 - is-fullwidth-code-point "^2.0.0" 12917 - 12918 13652 slice-ansi@^2.1.0: 12919 13653 version "2.1.0" 12920 13654 resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" ··· 12924 13658 astral-regex "^1.0.0" 12925 13659 is-fullwidth-code-point "^2.0.0" 12926 13660 13661 + slice-ansi@^3.0.0: 13662 + version "3.0.0" 13663 + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" 13664 + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== 13665 + dependencies: 13666 + ansi-styles "^4.0.0" 13667 + astral-regex "^2.0.0" 13668 + is-fullwidth-code-point "^3.0.0" 13669 + 13670 + slugify@^1.3.6: 13671 + version "1.3.6" 13672 + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.3.6.tgz#ba5fd6159b570fe4811d02ea9b1f4906677638c3" 13673 + integrity sha512-wA9XS475ZmGNlEnYYLPReSfuz/c3VQsEMoU43mi6OnKMCdbnFXd4/Yg7J0lBv8jkPolacMpOrWEaoYxuE1+hoQ== 13674 + 12927 13675 snake-case@^2.1.0: 12928 13676 version "2.1.0" 12929 13677 resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f" ··· 12966 13714 resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" 12967 13715 integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= 12968 13716 12969 - socket.io-client@2.2.0: 12970 - version "2.2.0" 12971 - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.2.0.tgz#84e73ee3c43d5020ccc1a258faeeb9aec2723af7" 12972 - integrity sha512-56ZrkTDbdTLmBIyfFYesgOxsjcLnwAKoN4CiPyTVkMQj3zTUh0QAx3GbvIvLpFEOvQWu92yyWICxB0u7wkVbYA== 13717 + socket.io-client@2.3.0: 13718 + version "2.3.0" 13719 + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" 13720 + integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== 12973 13721 dependencies: 12974 13722 backo2 "1.0.2" 12975 13723 base64-arraybuffer "0.1.5" 12976 13724 component-bind "1.0.0" 12977 13725 component-emitter "1.2.1" 12978 - debug "~3.1.0" 12979 - engine.io-client "~3.3.1" 13726 + debug "~4.1.0" 13727 + engine.io-client "~3.4.0" 12980 13728 has-binary2 "~1.0.2" 12981 13729 has-cors "1.1.0" 12982 13730 indexof "0.0.1" ··· 12995 13743 debug "~3.1.0" 12996 13744 isarray "2.0.1" 12997 13745 12998 - socket.io@^2.0.3: 12999 - version "2.2.0" 13000 - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz#f0f633161ef6712c972b307598ecd08c9b1b4d5b" 13001 - integrity sha512-wxXrIuZ8AILcn+f1B4ez4hJTPG24iNgxBBDaJfT6MsyOhVYiTXWexGoPkd87ktJG8kQEcL/NBvRi64+9k4Kc0w== 13746 + socket.io-parser@~3.4.0: 13747 + version "3.4.0" 13748 + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.0.tgz#370bb4a151df2f77ce3345ff55a7072cc6e9565a" 13749 + integrity sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ== 13750 + dependencies: 13751 + component-emitter "1.2.1" 13752 + debug "~4.1.0" 13753 + isarray "2.0.1" 13754 + 13755 + socket.io@^2.3.0: 13756 + version "2.3.0" 13757 + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" 13758 + integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== 13002 13759 dependencies: 13003 13760 debug "~4.1.0" 13004 - engine.io "~3.3.1" 13761 + engine.io "~3.4.0" 13005 13762 has-binary2 "~1.0.2" 13006 13763 socket.io-adapter "~1.1.0" 13007 - socket.io-client "2.2.0" 13008 - socket.io-parser "~3.3.0" 13764 + socket.io-client "2.3.0" 13765 + socket.io-parser "~3.4.0" 13009 13766 13010 13767 sockjs-client@1.1.4: 13011 13768 version "1.1.4" ··· 13019 13776 json3 "^3.3.2" 13020 13777 url-parse "^1.1.8" 13021 13778 13022 - sockjs-client@1.3.0: 13023 - version "1.3.0" 13024 - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" 13025 - integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== 13779 + sockjs-client@1.4.0: 13780 + version "1.4.0" 13781 + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" 13782 + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== 13026 13783 dependencies: 13027 13784 debug "^3.2.5" 13028 13785 eventsource "^1.0.7" ··· 13081 13838 source-map-url "^0.4.0" 13082 13839 urix "^0.1.0" 13083 13840 13084 - source-map-support@^0.5.6, source-map-support@~0.5.10, source-map-support@~0.5.12: 13841 + source-map-support@^0.5.6, source-map-support@~0.5.12: 13085 13842 version "0.5.12" 13086 13843 resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" 13087 13844 integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== ··· 13094 13851 resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" 13095 13852 integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= 13096 13853 13097 - source-map@0.5.7, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3: 13854 + source-map@0.7.3, source-map@^0.7.3: 13855 + version "0.7.3" 13856 + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 13857 + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 13858 + 13859 + source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.3: 13098 13860 version "0.5.7" 13099 13861 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 13100 13862 integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= ··· 13103 13865 version "0.6.1" 13104 13866 resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 13105 13867 integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 13106 - 13107 - source-map@^0.7.3: 13108 - version "0.7.3" 13109 - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 13110 - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 13111 13868 13112 13869 sourcemap-codec@^1.4.4: 13113 13870 version "1.4.4" ··· 13157 13914 readable-stream "^3.0.6" 13158 13915 wbuf "^1.7.3" 13159 13916 13160 - spdy@^4.0.0: 13161 - version "4.0.0" 13162 - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52" 13163 - integrity sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q== 13917 + spdy@^4.0.1: 13918 + version "4.0.1" 13919 + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" 13920 + integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== 13164 13921 dependencies: 13165 13922 debug "^4.1.0" 13166 13923 handle-thing "^2.0.0" ··· 13337 14094 astral-regex "^1.0.0" 13338 14095 strip-ansi "^4.0.0" 13339 14096 13340 - string-similarity@^1.2.0: 14097 + string-length@^3.1.0: 14098 + version "3.1.0" 14099 + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" 14100 + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== 14101 + dependencies: 14102 + astral-regex "^1.0.0" 14103 + strip-ansi "^5.2.0" 14104 + 14105 + string-similarity@^1.2.2: 13341 14106 version "1.2.2" 13342 14107 resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-1.2.2.tgz#99b2c20a3c9bbb3903964eae1d89856db3d8db9b" 13343 14108 integrity sha512-IoHUjcw3Srl8nsPlW04U3qwWPk3oG2ffLM0tN853d/E/JlIvcmZmDY2Kz5HzKp4lEi2T7QD7Zuvjq/1rDw+XcQ== ··· 13365 14130 is-fullwidth-code-point "^2.0.0" 13366 14131 strip-ansi "^4.0.0" 13367 14132 13368 - string-width@^3.0.0: 14133 + string-width@^3.0.0, string-width@^3.1.0: 13369 14134 version "3.1.0" 13370 14135 resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 13371 14136 integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== ··· 13374 14139 is-fullwidth-code-point "^2.0.0" 13375 14140 strip-ansi "^5.1.0" 13376 14141 14142 + string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: 14143 + version "4.2.0" 14144 + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 14145 + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 14146 + dependencies: 14147 + emoji-regex "^8.0.0" 14148 + is-fullwidth-code-point "^3.0.0" 14149 + strip-ansi "^6.0.0" 14150 + 13377 14151 string.prototype.padend@^3.0.0: 13378 14152 version "3.0.0" 13379 14153 resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" ··· 13392 14166 es-abstract "^1.5.0" 13393 14167 function-bind "^1.0.2" 13394 14168 14169 + string.prototype.trimleft@^2.1.1: 14170 + version "2.1.1" 14171 + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" 14172 + integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag== 14173 + dependencies: 14174 + define-properties "^1.1.3" 14175 + function-bind "^1.1.1" 14176 + 14177 + string.prototype.trimright@^2.1.1: 14178 + version "2.1.1" 14179 + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" 14180 + integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g== 14181 + dependencies: 14182 + define-properties "^1.1.3" 14183 + function-bind "^1.1.1" 14184 + 13395 14185 string_decoder@^1.0.0, string_decoder@^1.1.1: 13396 14186 version "1.2.0" 13397 14187 resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" ··· 13451 14241 dependencies: 13452 14242 ansi-regex "^4.1.0" 13453 14243 14244 + strip-ansi@^6.0.0: 14245 + version "6.0.0" 14246 + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 14247 + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 14248 + dependencies: 14249 + ansi-regex "^5.0.0" 14250 + 13454 14251 strip-bom-string@^1.0.0: 13455 14252 version "1.0.0" 13456 14253 resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" ··· 13468 14265 resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 13469 14266 integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 13470 14267 14268 + strip-bom@^4.0.0: 14269 + version "4.0.0" 14270 + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" 14271 + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== 14272 + 13471 14273 strip-dirs@^2.0.0: 13472 14274 version "2.1.0" 13473 14275 resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" ··· 13492 14294 dependencies: 13493 14295 get-stdin "^4.0.1" 13494 14296 13495 - strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: 14297 + strip-json-comments@^3.0.1: 14298 + version "3.0.1" 14299 + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" 14300 + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== 14301 + 14302 + strip-json-comments@~2.0.1: 13496 14303 version "2.0.1" 13497 14304 resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 13498 14305 integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= ··· 13504 14311 dependencies: 13505 14312 escape-string-regexp "^1.0.2" 13506 14313 13507 - style-loader@^0.21.0: 13508 - version "0.21.0" 13509 - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.21.0.tgz#68c52e5eb2afc9ca92b6274be277ee59aea3a852" 13510 - integrity sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg== 14314 + style-loader@^0.23.1: 14315 + version "0.23.1" 14316 + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" 14317 + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== 13511 14318 dependencies: 13512 14319 loader-utils "^1.1.0" 13513 - schema-utils "^0.4.5" 14320 + schema-utils "^1.0.0" 13514 14321 13515 14322 style-to-object@^0.2.1: 13516 14323 version "0.2.3" ··· 13595 14402 dependencies: 13596 14403 has-flag "^3.0.0" 13597 14404 14405 + supports-color@^7.1.0: 14406 + version "7.1.0" 14407 + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" 14408 + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== 14409 + dependencies: 14410 + has-flag "^4.0.0" 14411 + 13598 14412 svgo@^1.0.0, svgo@^1.2.0: 13599 14413 version "1.2.2" 13600 14414 resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.2.tgz#0253d34eccf2aed4ad4f283e11ee75198f9d7316" ··· 13643 14457 slice-ansi "^2.1.0" 13644 14458 string-width "^3.0.0" 13645 14459 13646 - tapable@^1.0.0, tapable@^1.1.0: 14460 + tapable@^1.0.0, tapable@^1.1.0, tapable@^1.1.3: 13647 14461 version "1.1.3" 13648 14462 resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" 13649 14463 integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== ··· 13724 14538 dependencies: 13725 14539 execa "^0.7.0" 13726 14540 13727 - terser-webpack-plugin@1.2.4: 13728 - version "1.2.4" 13729 - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.4.tgz#56f87540c28dd5265753431009388f473b5abba3" 13730 - integrity sha512-64IiILNQlACWZLzFlpzNaG0bpQ4ytaB7fwOsbpsdIV70AfLUmIGGeuKL0YV2WmtcrURjE2aOvHD4/lrFV3Rg+Q== 13731 - dependencies: 13732 - cacache "^11.3.2" 13733 - find-cache-dir "^2.0.0" 13734 - is-wsl "^1.1.0" 13735 - schema-utils "^1.0.0" 13736 - serialize-javascript "^1.7.0" 13737 - source-map "^0.6.1" 13738 - terser "^3.17.0" 13739 - webpack-sources "^1.3.0" 13740 - worker-farm "^1.7.0" 14541 + term-size@^2.1.0: 14542 + version "2.1.1" 14543 + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.1.1.tgz#f81ec25854af91a480d2f9d0c77ffcb26594ed1a" 14544 + integrity sha512-UqvQSch04R+69g4RDhrslmGvGL3ucDRX/U+snYW0Mab4uCAyKSndUksaoqlJ81QKSpRnIsuOYQCbC2ZWx2896A== 13741 14545 13742 - terser-webpack-plugin@^1.1.0: 13743 - version "1.3.0" 13744 - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz#69aa22426299f4b5b3775cbed8cb2c5d419aa1d4" 13745 - integrity sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg== 14546 + terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.4.2, terser-webpack-plugin@^1.4.3: 14547 + version "1.4.3" 14548 + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" 14549 + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== 13746 14550 dependencies: 13747 - cacache "^11.3.2" 13748 - find-cache-dir "^2.0.0" 14551 + cacache "^12.0.2" 14552 + find-cache-dir "^2.1.0" 13749 14553 is-wsl "^1.1.0" 13750 - loader-utils "^1.2.3" 13751 14554 schema-utils "^1.0.0" 13752 - serialize-javascript "^1.7.0" 14555 + serialize-javascript "^2.1.2" 13753 14556 source-map "^0.6.1" 13754 - terser "^4.0.0" 13755 - webpack-sources "^1.3.0" 14557 + terser "^4.1.2" 14558 + webpack-sources "^1.4.0" 13756 14559 worker-farm "^1.7.0" 13757 14560 13758 - terser@^3.17.0: 13759 - version "3.17.0" 13760 - resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" 13761 - integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== 13762 - dependencies: 13763 - commander "^2.19.0" 13764 - source-map "~0.6.1" 13765 - source-map-support "~0.5.10" 13766 - 13767 - terser@^4.0.0, terser@^4.1.0: 13768 - version "4.1.2" 13769 - resolved "https://registry.yarnpkg.com/terser/-/terser-4.1.2.tgz#b2656c8a506f7ce805a3f300a2ff48db022fa391" 13770 - integrity sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw== 14561 + terser@^4.1.0, terser@^4.1.2: 14562 + version "4.5.1" 14563 + resolved "https://registry.yarnpkg.com/terser/-/terser-4.5.1.tgz#63b52d6b6ce344aa6fedcd0ee06a695799eb50bd" 14564 + integrity sha512-lH9zLIbX8PRBEFCTvfHGCy0s9HEKnNso1Dx9swSopF3VUnFLB8DpQ61tHxoofovNC/sG0spajJM3EIIRSTByiQ== 13771 14565 dependencies: 13772 14566 commander "^2.20.0" 13773 14567 source-map "~0.6.1" ··· 13892 14686 dependencies: 13893 14687 kind-of "^3.0.2" 13894 14688 14689 + to-readable-stream@^1.0.0: 14690 + version "1.0.0" 14691 + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" 14692 + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== 14693 + 13895 14694 to-regex-range@^2.1.0: 13896 14695 version "2.1.1" 13897 14696 resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" ··· 13982 14781 resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" 13983 14782 integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== 13984 14783 13985 - "true-case-path@^1.0.3": 13986 - version "1.0.3" 13987 - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" 13988 - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== 14784 + "true-case-path@^2.2.1": 14785 + version "2.2.1" 14786 + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-2.2.1.tgz#c5bf04a5bbec3fd118be4084461b3a27c4d796bf" 14787 + integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q== 14788 + 14789 + ts-jest@^24.2.0: 14790 + version "24.2.0" 14791 + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.2.0.tgz#7abca28c2b4b0a1fdd715cd667d65d047ea4e768" 14792 + integrity sha512-Yc+HLyldlIC9iIK8xEN7tV960Or56N49MDP7hubCZUeI7EbIOTsas6rXCMB4kQjLACJ7eDOF4xWEO5qumpKsag== 13989 14793 dependencies: 13990 - glob "^7.1.2" 14794 + bs-logger "0.x" 14795 + buffer-from "1.x" 14796 + fast-json-stable-stringify "2.x" 14797 + json5 "2.x" 14798 + lodash.memoize "4.x" 14799 + make-error "1.x" 14800 + mkdirp "0.x" 14801 + resolve "1.x" 14802 + semver "^5.5" 14803 + yargs-parser "10.x" 13991 14804 13992 14805 ts-pnp@^1.1.2: 13993 14806 version "1.1.2" 13994 14807 resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.2.tgz#be8e4bfce5d00f0f58e0666a82260c34a57af552" 13995 14808 integrity sha512-f5Knjh7XCyRIzoC/z1Su1yLLRrPrFCgtUAh/9fCSP6NKbATwpOL1+idQVXQokK9GRFURn/jYPGPfegIctwunoA== 13996 14809 13997 - tslib@^1.6.0, tslib@^1.9.0: 14810 + tslib@1.10.0, tslib@^1.6.0, tslib@^1.8.1, tslib@^1.9.0: 13998 14811 version "1.10.0" 13999 14812 resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" 14000 14813 integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== 14001 14814 14815 + tsutils@^3.17.1: 14816 + version "3.17.1" 14817 + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" 14818 + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== 14819 + dependencies: 14820 + tslib "^1.8.1" 14821 + 14002 14822 tty-browserify@0.0.0: 14003 14823 version "0.0.0" 14004 14824 resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" ··· 14033 14853 resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" 14034 14854 integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== 14035 14855 14856 + type-fest@^0.8.1: 14857 + version "0.8.1" 14858 + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 14859 + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 14860 + 14036 14861 type-is@~1.6.17, type-is@~1.6.18: 14037 14862 version "1.6.18" 14038 14863 resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" ··· 14046 14871 resolved "https://registry.yarnpkg.com/type-of/-/type-of-2.0.1.tgz#e72a1741896568e9f628378d816d6912f7f23972" 14047 14872 integrity sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI= 14048 14873 14874 + typedarray-to-buffer@^3.1.5: 14875 + version "3.1.5" 14876 + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" 14877 + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 14878 + dependencies: 14879 + is-typedarray "^1.0.0" 14880 + 14049 14881 typedarray@^0.0.6: 14050 14882 version "0.0.6" 14051 14883 resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" ··· 14056 14888 resolved "https://registry.yarnpkg.com/typescript-compiler/-/typescript-compiler-1.4.1-2.tgz#ba4f7db22d91534a1929d90009dce161eb72fd3f" 14057 14889 integrity sha1-uk99si2RU0oZKdkACdzhYety/T8= 14058 14890 14059 - typescript@^3.3.3333, typescript@^3.7.3: 14060 - version "3.7.3" 14061 - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.3.tgz#b36840668a16458a7025b9eabfad11b66ab85c69" 14062 - integrity sha512-Mcr/Qk7hXqFBXMN7p7Lusj1ktCBydylfQM/FZCk5glCNQJrCUKPkMHdo9R0MTFWsC/4kPFvDS0fDPvukfCkFsw== 14891 + typescript@^3.4, typescript@^3.7.4: 14892 + version "3.7.4" 14893 + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.4.tgz#1743a5ec5fef6a1fa9f3e4708e33c81c73876c19" 14894 + integrity sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw== 14063 14895 14064 14896 typography-normalize@^0.16.19: 14065 14897 version "0.16.19" ··· 14239 15071 dependencies: 14240 15072 crypto-random-string "^1.0.0" 14241 15073 15074 + unique-string@^2.0.0: 15075 + version "2.0.0" 15076 + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" 15077 + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== 15078 + dependencies: 15079 + crypto-random-string "^2.0.0" 15080 + 14242 15081 unist-builder@^1.0.1: 14243 15082 version "1.0.4" 14244 15083 resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-1.0.4.tgz#e1808aed30bd72adc3607f25afecebef4dd59e17" ··· 14366 15205 has-value "^0.3.1" 14367 15206 isobject "^3.0.0" 14368 15207 14369 - unzip-response@^2.0.1: 14370 - version "2.0.1" 14371 - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 14372 - integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= 14373 - 14374 15208 upath@^1.1.0, upath@^1.1.1: 14375 15209 version "1.1.2" 14376 15210 resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" 14377 15211 integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== 14378 15212 14379 - update-notifier@^2.3.0: 14380 - version "2.5.0" 14381 - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" 14382 - integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== 15213 + update-notifier@^3.0.1: 15214 + version "3.0.1" 15215 + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250" 15216 + integrity sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ== 14383 15217 dependencies: 14384 - boxen "^1.2.1" 15218 + boxen "^3.0.0" 14385 15219 chalk "^2.0.1" 14386 - configstore "^3.0.0" 15220 + configstore "^4.0.0" 15221 + has-yarn "^2.1.0" 14387 15222 import-lazy "^2.1.0" 14388 - is-ci "^1.0.10" 15223 + is-ci "^2.0.0" 14389 15224 is-installed-globally "^0.1.0" 14390 - is-npm "^1.0.0" 14391 - latest-version "^3.0.0" 15225 + is-npm "^3.0.0" 15226 + is-yarn-global "^0.3.0" 15227 + latest-version "^5.0.0" 14392 15228 semver-diff "^2.0.0" 14393 15229 xdg-basedir "^3.0.0" 14394 15230 ··· 14421 15257 resolved "https://registry.yarnpkg.com/url-join/-/url-join-1.1.0.tgz#741c6c2f4596c4830d6718460920d0c92202dc78" 14422 15258 integrity sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg= 14423 15259 14424 - url-loader@^1.0.1: 15260 + url-loader@^1.1.2: 14425 15261 version "1.1.2" 14426 15262 resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" 14427 15263 integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== ··· 14519 15355 resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 14520 15356 integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 14521 15357 14522 - uuid@3.3.2, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2: 14523 - version "3.3.2" 14524 - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 14525 - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== 15358 + uuid@3.3.3, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.3.3: 15359 + version "3.3.3" 15360 + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" 15361 + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== 14526 15362 14527 - v8-compile-cache@^1.1.0: 15363 + v8-compile-cache@^1.1.2: 14528 15364 version "1.1.2" 14529 15365 resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" 14530 15366 integrity sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA== 15367 + 15368 + v8-compile-cache@^2.0.3: 15369 + version "2.1.0" 15370 + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" 15371 + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== 14531 15372 14532 15373 valid-url@^1.0.9: 14533 15374 version "1.0.9" ··· 14662 15503 dependencies: 14663 15504 loose-envify "^1.0.0" 14664 15505 14665 - watchpack@^1.5.0: 15506 + watchpack@^1.5.0, watchpack@^1.6.0: 14666 15507 version "1.6.0" 14667 15508 resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" 14668 15509 integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== ··· 14688 15529 resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" 14689 15530 integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== 14690 15531 14691 - webpack-assets-manifest@^3.0.2: 15532 + webpack-assets-manifest@^3.1.1: 14692 15533 version "3.1.1" 14693 15534 resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de" 14694 15535 integrity sha512-JV9V2QKc5wEWQptdIjvXDUL1ucbPLH2f27toAY3SNdGZp+xSaStAgpoMcvMZmqtFrBc9a5pTS1058vxyMPOzRQ== ··· 14701 15542 tapable "^1.0.0" 14702 15543 webpack-sources "^1.0.0" 14703 15544 14704 - webpack-dev-middleware@^3.0.1, webpack-dev-middleware@^3.7.0: 14705 - version "3.7.0" 14706 - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" 14707 - integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== 15545 + webpack-dev-middleware@^3.7.2: 15546 + version "3.7.2" 15547 + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" 15548 + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== 14708 15549 dependencies: 14709 15550 memory-fs "^0.4.1" 14710 - mime "^2.4.2" 15551 + mime "^2.4.4" 15552 + mkdirp "^0.5.1" 14711 15553 range-parser "^1.2.1" 14712 15554 webpack-log "^2.0.0" 14713 15555 14714 - webpack-dev-server@^3.1.14: 14715 - version "3.7.2" 14716 - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.7.2.tgz#f79caa5974b7f8b63268ef5421222a8486d792f5" 14717 - integrity sha512-mjWtrKJW2T9SsjJ4/dxDC2fkFVUw8jlpemDERqV0ZJIkjjjamR2AbQlr3oz+j4JLhYCHImHnXZK5H06P2wvUew== 15556 + webpack-dev-server@^3.9.0: 15557 + version "3.10.1" 15558 + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz#1ff3e5cccf8e0897aa3f5909c654e623f69b1c0e" 15559 + integrity sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA== 14718 15560 dependencies: 14719 15561 ansi-html "0.0.7" 14720 15562 bonjour "^3.5.0" 14721 - chokidar "^2.1.6" 15563 + chokidar "^2.1.8" 14722 15564 compression "^1.7.4" 14723 15565 connect-history-api-fallback "^1.6.0" 14724 15566 debug "^4.1.1" 14725 15567 del "^4.1.1" 14726 15568 express "^4.17.1" 14727 15569 html-entities "^1.2.1" 14728 - http-proxy-middleware "^0.19.1" 15570 + http-proxy-middleware "0.19.1" 14729 15571 import-local "^2.0.0" 14730 15572 internal-ip "^4.3.0" 14731 15573 ip "^1.1.5" 15574 + is-absolute-url "^3.0.3" 14732 15575 killable "^1.0.1" 14733 - loglevel "^1.6.3" 15576 + loglevel "^1.6.6" 14734 15577 opn "^5.5.0" 14735 15578 p-retry "^3.0.1" 14736 - portfinder "^1.0.20" 15579 + portfinder "^1.0.25" 14737 15580 schema-utils "^1.0.0" 14738 - selfsigned "^1.10.4" 14739 - semver "^6.1.1" 15581 + selfsigned "^1.10.7" 15582 + semver "^6.3.0" 14740 15583 serve-index "^1.9.1" 14741 15584 sockjs "0.3.19" 14742 - sockjs-client "1.3.0" 14743 - spdy "^4.0.0" 15585 + sockjs-client "1.4.0" 15586 + spdy "^4.0.1" 14744 15587 strip-ansi "^3.0.1" 14745 15588 supports-color "^6.1.0" 14746 15589 url "^0.11.0" 14747 - webpack-dev-middleware "^3.7.0" 15590 + webpack-dev-middleware "^3.7.2" 14748 15591 webpack-log "^2.0.0" 15592 + ws "^6.2.1" 14749 15593 yargs "12.0.5" 14750 15594 14751 - webpack-hot-middleware@^2.21.0: 15595 + webpack-hot-middleware@^2.25.0: 14752 15596 version "2.25.0" 14753 15597 resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" 14754 15598 integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== ··· 14766 15610 ansi-colors "^3.0.0" 14767 15611 uuid "^3.3.2" 14768 15612 14769 - webpack-merge@^4.1.0: 14770 - version "4.2.1" 14771 - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.1.tgz#5e923cf802ea2ace4fd5af1d3247368a633489b4" 14772 - integrity sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw== 15613 + webpack-merge@^4.2.2: 15614 + version "4.2.2" 15615 + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" 15616 + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== 14773 15617 dependencies: 14774 - lodash "^4.17.5" 15618 + lodash "^4.17.15" 14775 15619 14776 15620 webpack-sources@^0.2.0: 14777 15621 version "0.2.3" ··· 14781 15625 source-list-map "^1.1.1" 14782 15626 source-map "~0.5.3" 14783 15627 14784 - webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.3.0: 14785 - version "1.3.0" 14786 - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" 14787 - integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== 15628 + webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: 15629 + version "1.4.3" 15630 + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" 15631 + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== 14788 15632 dependencies: 14789 15633 source-list-map "^2.0.0" 14790 15634 source-map "~0.6.1" 14791 15635 14792 - webpack-stats-plugin@^0.1.5: 14793 - version "0.1.5" 14794 - resolved "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.1.5.tgz#29e5f12ebfd53158d31d656a113ac1f7b86179d9" 14795 - integrity sha1-KeXxLr/VMVjTHWVqETrB97hhedk= 15636 + webpack-stats-plugin@^0.3.0: 15637 + version "0.3.1" 15638 + resolved "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.3.1.tgz#1103c39a305a4e6ba15d5078db84bc0b35447417" 15639 + integrity sha512-pxqzFE055NlNTlNyfDG3xlB2QwT1EWdm/CF5dCJI/e+rRHVxrWhWg1rf1lfsWhI1/EePv8gi/A36YxO/+u0FgQ== 14796 15640 14797 15641 webpack@~4.28.4: 14798 15642 version "4.28.4" ··· 14824 15668 watchpack "^1.5.0" 14825 15669 webpack-sources "^1.3.0" 14826 15670 15671 + webpack@~4.41.2: 15672 + version "4.41.5" 15673 + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.5.tgz#3210f1886bce5310e62bb97204d18c263341b77c" 15674 + integrity sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw== 15675 + dependencies: 15676 + "@webassemblyjs/ast" "1.8.5" 15677 + "@webassemblyjs/helper-module-context" "1.8.5" 15678 + "@webassemblyjs/wasm-edit" "1.8.5" 15679 + "@webassemblyjs/wasm-parser" "1.8.5" 15680 + acorn "^6.2.1" 15681 + ajv "^6.10.2" 15682 + ajv-keywords "^3.4.1" 15683 + chrome-trace-event "^1.0.2" 15684 + enhanced-resolve "^4.1.0" 15685 + eslint-scope "^4.0.3" 15686 + json-parse-better-errors "^1.0.2" 15687 + loader-runner "^2.4.0" 15688 + loader-utils "^1.2.3" 15689 + memory-fs "^0.4.1" 15690 + micromatch "^3.1.10" 15691 + mkdirp "^0.5.1" 15692 + neo-async "^2.6.1" 15693 + node-libs-browser "^2.2.1" 15694 + schema-utils "^1.0.0" 15695 + tapable "^1.1.3" 15696 + terser-webpack-plugin "^1.4.3" 15697 + watchpack "^1.6.0" 15698 + webpack-sources "^1.4.1" 15699 + 14827 15700 websocket-driver@>=0.5.1: 14828 15701 version "0.7.3" 14829 15702 resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" ··· 14895 15768 dependencies: 14896 15769 isexe "^2.0.0" 14897 15770 15771 + which@^2.0.1: 15772 + version "2.0.2" 15773 + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 15774 + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 15775 + dependencies: 15776 + isexe "^2.0.0" 15777 + 14898 15778 wide-align@^1.1.0: 14899 15779 version "1.1.3" 14900 15780 resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" ··· 14909 15789 dependencies: 14910 15790 string-width "^2.1.1" 14911 15791 15792 + widest-line@^3.1.0: 15793 + version "3.1.0" 15794 + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" 15795 + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== 15796 + dependencies: 15797 + string-width "^4.0.0" 15798 + 14912 15799 with-open-file@^0.1.6: 14913 15800 version "0.1.6" 14914 15801 resolved "https://registry.yarnpkg.com/with-open-file/-/with-open-file-0.1.6.tgz#0bc178ecab75f6baac8ae11c85e07445d690ea50" ··· 14918 15805 p-try "^2.1.0" 14919 15806 pify "^4.0.1" 14920 15807 15808 + word-wrap@~1.2.3: 15809 + version "1.2.3" 15810 + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" 15811 + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== 15812 + 14921 15813 wordwrap@~0.0.2: 14922 15814 version "0.0.3" 14923 15815 resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" 14924 15816 integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= 14925 - 14926 - wordwrap@~1.0.0: 14927 - version "1.0.0" 14928 - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 14929 - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= 14930 15817 14931 15818 worker-farm@^1.7.0: 14932 15819 version "1.7.0" ··· 14951 15838 string-width "^2.1.1" 14952 15839 strip-ansi "^4.0.0" 14953 15840 14954 - wrap-ansi@^5.0.0: 15841 + wrap-ansi@^5.0.0, wrap-ansi@^5.1.0: 14955 15842 version "5.1.0" 14956 15843 resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" 14957 15844 integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== ··· 14960 15847 string-width "^3.0.0" 14961 15848 strip-ansi "^5.0.0" 14962 15849 15850 + wrap-ansi@^6.2.0: 15851 + version "6.2.0" 15852 + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" 15853 + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== 15854 + dependencies: 15855 + ansi-styles "^4.0.0" 15856 + string-width "^4.1.0" 15857 + strip-ansi "^6.0.0" 15858 + 14963 15859 wrappy@1: 14964 15860 version "1.0.2" 14965 15861 resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" ··· 14983 15879 imurmurhash "^0.1.4" 14984 15880 signal-exit "^3.0.2" 14985 15881 15882 + write-file-atomic@^3.0.0: 15883 + version "3.0.1" 15884 + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.1.tgz#558328352e673b5bb192cf86500d60b230667d4b" 15885 + integrity sha512-JPStrIyyVJ6oCSz/691fAjFtefZ6q+fP6tm+OS4Qw6o+TGQxNp1ziY2PgS+X/m0V8OWhZiO/m4xSj+Pr4RrZvw== 15886 + dependencies: 15887 + imurmurhash "^0.1.4" 15888 + is-typedarray "^1.0.0" 15889 + signal-exit "^3.0.2" 15890 + typedarray-to-buffer "^3.1.5" 15891 + 14986 15892 write@1.0.3: 14987 15893 version "1.0.3" 14988 15894 resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" ··· 14997 15903 dependencies: 14998 15904 async-limiter "~1.0.0" 14999 15905 15906 + ws@^6.2.1: 15907 + version "6.2.1" 15908 + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" 15909 + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== 15910 + dependencies: 15911 + async-limiter "~1.0.0" 15912 + 15913 + ws@^7.1.2: 15914 + version "7.2.1" 15915 + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.1.tgz#03ed52423cd744084b2cf42ed197c8b65a936b8e" 15916 + integrity sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A== 15917 + 15000 15918 ws@~6.1.0: 15001 15919 version "6.1.4" 15002 15920 resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" ··· 15013 15931 version "3.0.0" 15014 15932 resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 15015 15933 integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= 15934 + 15935 + xdg-basedir@^4.0.0: 15936 + version "4.0.0" 15937 + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" 15938 + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== 15016 15939 15017 15940 xhr@^2.0.1: 15018 15941 version "2.5.0" ··· 15057 15980 resolved "https://registry.yarnpkg.com/xstate/-/xstate-3.3.3.tgz#64177cd4473d4c2424b3df7d2434d835404b09a9" 15058 15981 integrity sha512-p0ZYDPWxZZZRAJyD3jaGO9/MYioHuxZp6sjcLhPfBZHAprl4EDrZRGDqRVH9VvK8oa6Nrbpf+U5eNmn8KFwO3g== 15059 15982 15060 - xstate@^4.3.2: 15061 - version "4.6.3" 15062 - resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.6.3.tgz#21e5a132867e5509a08d16c32b525ba4898492bd" 15063 - integrity sha512-ihJcpZWjqW60psaC+RxFhfZxgFDNRpEmHeSsM4DgtKswsz6HxEzNx7rgesZtg8/LqluOba8puy8lVtB748RG6A== 15064 - dependencies: 15065 - "@vuepress/plugin-google-analytics" "^1.0.1" 15983 + xstate@^4.7.2: 15984 + version "4.7.5" 15985 + resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.7.5.tgz#b684db66f5ce32422dd97de0fbdf188bc07fe169" 15986 + integrity sha512-1QbwTUviBCHSnT3ct+GZZspzbNsftMEzP1lXmeR/zJphA1BHeLh/JV+woCmRdTBHyuGcJ2I7u7pp/+Y9e4qq9A== 15066 15987 15067 15988 xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: 15068 15989 version "4.0.1" 15069 15990 resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 15070 15991 integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= 15071 15992 15072 - y18n@^3.2.1: 15073 - version "3.2.1" 15074 - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 15075 - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= 15076 - 15077 15993 "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: 15078 15994 version "4.0.0" 15079 15995 resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" ··· 15096 16012 dependencies: 15097 16013 js-yaml "^3.5.2" 15098 16014 16015 + yaml@^1.7.2: 16016 + version "1.7.2" 16017 + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" 16018 + integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw== 16019 + dependencies: 16020 + "@babel/runtime" "^7.6.3" 16021 + 16022 + yargs-parser@10.x: 16023 + version "10.1.0" 16024 + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" 16025 + integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ== 16026 + dependencies: 16027 + camelcase "^4.1.0" 16028 + 15099 16029 yargs-parser@^11.1.1: 15100 16030 version "11.1.1" 15101 16031 resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" ··· 15104 16034 camelcase "^5.0.0" 15105 16035 decamelize "^1.2.0" 15106 16036 15107 - yargs-parser@^7.0.0: 15108 - version "7.0.0" 15109 - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" 15110 - integrity sha1-jQrELxbqVd69MyyvTEA4s+P139k= 16037 + yargs-parser@^13.1.1: 16038 + version "13.1.1" 16039 + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" 16040 + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== 15111 16041 dependencies: 15112 - camelcase "^4.1.0" 16042 + camelcase "^5.0.0" 16043 + decamelize "^1.2.0" 15113 16044 15114 16045 yargs@12.0.5, yargs@^12.0.2, yargs@^12.0.5: 15115 16046 version "12.0.5" ··· 15129 16060 y18n "^3.2.1 || ^4.0.0" 15130 16061 yargs-parser "^11.1.1" 15131 16062 15132 - yargs@^9.0.0: 15133 - version "9.0.1" 15134 - resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" 15135 - integrity sha1-UqzCP+7Kw0BCB47njAwAf1CF20w= 16063 + yargs@^13.2.4: 16064 + version "13.3.0" 16065 + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" 16066 + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== 15136 16067 dependencies: 15137 - camelcase "^4.1.0" 15138 - cliui "^3.2.0" 15139 - decamelize "^1.1.1" 15140 - get-caller-file "^1.0.1" 15141 - os-locale "^2.0.0" 15142 - read-pkg-up "^2.0.0" 16068 + cliui "^5.0.0" 16069 + find-up "^3.0.0" 16070 + get-caller-file "^2.0.1" 15143 16071 require-directory "^2.1.1" 15144 - require-main-filename "^1.0.1" 16072 + require-main-filename "^2.0.0" 15145 16073 set-blocking "^2.0.0" 15146 - string-width "^2.0.0" 16074 + string-width "^3.0.0" 15147 16075 which-module "^2.0.0" 15148 - y18n "^3.2.1" 15149 - yargs-parser "^7.0.0" 16076 + y18n "^4.0.0" 16077 + yargs-parser "^13.1.1" 15150 16078 15151 16079 yauzl@^2.4.2: 15152 16080 version "2.10.0" ··· 15166 16094 resolved "https://registry.yarnpkg.com/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.9.3.tgz#11e3be29096afe3c284e5d963cc2d628148c1372" 15167 16095 integrity sha512-9SNQpwuEh2NucU83i2KMZnONVudZ86YNcFk9tq74YaqrQfgJWO3yB9uzH1tAg8iqh5c9F5j0wuyJ2z72wcum2w== 15168 16096 15169 - yurnalist@^1.0.5: 15170 - version "1.0.5" 15171 - resolved "https://registry.yarnpkg.com/yurnalist/-/yurnalist-1.0.5.tgz#98534ddc1330e1316684981f53cba879ffc07a28" 15172 - integrity sha512-EuLjqX3Q15iVM0UtZa5Ju536uRmklKd2kKhdE5D5fIh8RZmh+pJ8c6wj2oGo0TA+T/Ii2o79cIHCTMfciW8jlA== 16097 + yurnalist@^1.1.1: 16098 + version "1.1.1" 16099 + resolved "https://registry.yarnpkg.com/yurnalist/-/yurnalist-1.1.1.tgz#701fea4d6a02f7a44d57bc0dcf75138590549dcb" 16100 + integrity sha512-WMk8SL262zU/3Cr8twpfx/kdhPDAkhWN9HukNeb1U1xVrwU9iIAsCgYI8J5QMZTz+5N3Et/ZKzvOzVCjd/dAWA== 15173 16101 dependencies: 15174 16102 babel-runtime "^6.26.0" 15175 - chalk "^2.1.0" 16103 + chalk "^2.4.2" 15176 16104 cli-table3 "^0.5.1" 15177 - debug "^4.1.0" 15178 - deep-equal "^1.0.1" 15179 - detect-indent "^5.0.0" 15180 - inquirer "^6.2.0" 16105 + debug "^4.1.1" 16106 + deep-equal "^1.1.0" 16107 + detect-indent "^6.0.0" 16108 + inquirer "^7.0.0" 15181 16109 invariant "^2.2.0" 15182 16110 is-builtin-module "^3.0.0" 15183 16111 is-ci "^2.0.0" 15184 - leven "^2.0.0" 15185 - loud-rejection "^1.2.0" 15186 - node-emoji "^1.6.1" 16112 + leven "^3.1.0" 16113 + loud-rejection "^2.2.0" 16114 + node-emoji "^1.10.0" 15187 16115 object-path "^0.11.2" 15188 16116 read "^1.0.7" 15189 - rimraf "^2.5.0" 15190 - semver "^5.1.0" 15191 - strip-ansi "^5.0.0" 15192 - strip-bom "^3.0.0" 16117 + rimraf "^3.0.0" 16118 + semver "^6.3.0" 16119 + strip-ansi "^5.2.0" 16120 + strip-bom "^4.0.0" 15193 16121 15194 - zen-observable@^0.8.14: 15195 - version "0.8.14" 15196 - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.14.tgz#d33058359d335bc0db1f0af66158b32872af3bf7" 15197 - integrity sha512-kQz39uonEjEESwh+qCi83kcC3rZJGh4mrZW7xjkSQYXkq//JZHTtKo+6yuVloTgMtzsIWOJrjIrKvk/dqm0L5g== 16122 + zen-observable@^0.8.15: 16123 + version "0.8.15" 16124 + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" 16125 + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== 15198 16126 15199 16127 zwitch@^1.0.0: 15200 16128 version "1.0.4"