Add basic unit tests

f39b7c3 · Jonathan Clem · 2020-09-16 18:56

9 files +8374 -2492

Files changed

modified .github/workflows/test.yml
+11 −1
@@ -7,7 +7,17 @@ on:
7 7 workflow_dispatch:
8 8
9 9 jobs:
10 test:
10 + unit_test:
11 + runs-on: ubuntu-latest
12 + name: Unit tests
13 + steps:
14 + - uses: actions/checkout@v2
15 + - uses: actions/setup-node@v1
16 + with: {node-version: '12'}
17 + - run: npm ci
18 + - run: npm test
19 +
20 + integration_test:
11 21 runs-on: ubuntu-latest
12 22 name: OTP ${{matrix.pair.otp-version}} / Elixir ${{matrix.pair.elixir-version}}
13 23 strategy:
added __tests__/builds.txt
+313 −0
@@ -0,0 +1,313 @@
1 +master d25b61db13d94ee83374748581c7bcb8e2dfc0e6 2020-09-16T06:12:57Z a8ca8155a9b4b6ec1d60454f9032a29d4b95afa782984e3ed783c5f242541090
2 +master-otp-21 d25b61db13d94ee83374748581c7bcb8e2dfc0e6 2020-09-16T06:12:48Z a8ca8155a9b4b6ec1d60454f9032a29d4b95afa782984e3ed783c5f242541090
3 +master-otp-22 d25b61db13d94ee83374748581c7bcb8e2dfc0e6 2020-09-16T06:11:25Z 917d5856e50670c8670e60fcbaddd74aa207e7cb60a91fe5f7d62959db1161de
4 +master-otp-23 d25b61db13d94ee83374748581c7bcb8e2dfc0e6 2020-09-16T06:09:48Z 80af5358209cdc3c8321c3852e962957fd3e63a22b1da13f56a3f1571ecb1e7e
5 +v0.12.4 543dfdeac80cfaf3483927c189cf9974f1e361eb 2016-06-02T12:43:53Z
6 +v0.12.5 b07fbcf8b73e9353cc336107050a8aac5fdabd11 2016-06-02T12:42:56Z
7 +v0.13.0 ada53524caa6ea27ffaa1a373f5c86bd6cadb0d5 2016-06-02T12:42:00Z
8 +v0.13.1 c03d42b0ccf38b31dcaef0cb7e9ea8851cb39907 2016-06-02T12:41:00Z
9 +v0.13.2 7a24767137c596a84014a0ed1a8dde64e45f9666 2016-06-02T12:40:00Z
10 +v0.13.3 3c48099718cd718d25527875a407cc842cf72565 2016-06-02T12:39:01Z
11 +v0.14.0 9cff61493e9e3626e8d243dfe8aec07230a7fe73 2016-06-02T12:38:04Z
12 +v0.14.1 22f3a50ebabfefd36be1a8472c8b78257df6affa 2016-03-07T22:22:53Z
13 +v0.14.2 44b04120425c83984c867ee6b06974b7c139ba52 2016-03-07T22:22:53Z
14 +v0.14.3 82535feb90ba1a27ad12b9389d86b11b8311a618 2016-06-02T12:36:35Z
15 +v0.15.0 2f2a52a64874a0a5b6d5c1fab812a80e94d982bc 2016-06-02T12:35:36Z
16 +v0.15.1 a54d9212b89da61ec0dd4227ed24e59f37738fe5 2016-06-02T12:34:37Z
17 +v1.0 9033b217d9721c86d1e73ccd91ceb7c6716124d9 2020-03-25T22:13:41Z 0fccc644156e18ff02c8fe0fa6d3b5ee085b05ecc956ae93151ea938d2d0297b
18 +v1.0-otp-17 9033b217d9721c86d1e73ccd91ceb7c6716124d9 2020-03-25T22:13:35Z 0fccc644156e18ff02c8fe0fa6d3b5ee085b05ecc956ae93151ea938d2d0297b
19 +v1.0-otp-18 9033b217d9721c86d1e73ccd91ceb7c6716124d9 2020-03-25T22:12:48Z a3d53f5001261eca9c976b911f3ece7b0d32ec45029975781c1b67f0511eb216
20 +v1.0.0 52ff7e96867c027745d29f5d3feb77f546f22c4f 2017-06-26T04:08:29Z
21 +v1.0.0-otp-17 52ff7e96867c027745d29f5d3feb77f546f22c4f 2017-06-26T04:08:31Z
22 +v1.0.0-rc1 5b4497fa6b2da7831418cf1307248dc73b4ee34b 2017-06-26T04:12:30Z
23 +v1.0.0-rc1-otp-17 5b4497fa6b2da7831418cf1307248dc73b4ee34b 2017-06-26T04:12:32Z
24 +v1.0.0-rc2 8931f345826b71056ab3df0fba7dbb1b9c3bce25 2017-06-26T04:10:30Z
25 +v1.0.0-rc2-otp-17 8931f345826b71056ab3df0fba7dbb1b9c3bce25 2017-06-26T04:10:32Z
26 +v1.0.1 89460154bb1ab3faa9a7aad4a1edc621cc35d1de 2017-06-26T04:06:28Z
27 +v1.0.1-otp-17 89460154bb1ab3faa9a7aad4a1edc621cc35d1de 2017-06-26T04:06:30Z
28 +v1.0.2 34df8176385200d483ab483a973c498ffa62e580 2017-06-26T04:04:26Z
29 +v1.0.2-otp-17 34df8176385200d483ab483a973c498ffa62e580 2017-06-26T04:04:28Z
30 +v1.0.3 307675284cfde2e2e3ff4b868ff5c2253dac3936 2017-06-26T04:02:25Z
31 +v1.0.3-otp-17 307675284cfde2e2e3ff4b868ff5c2253dac3936 2017-06-26T04:02:27Z
32 +v1.0.4 e02d7bf913f3e5ea8c9e49648e69324ec5c65919 2020-03-25T22:13:16Z 64aa83a5f82a36f451e692f2abb080756056b141e45a088546610182916aab1e
33 +v1.0.4-otp-17 e02d7bf913f3e5ea8c9e49648e69324ec5c65919 2020-03-25T22:13:10Z 64aa83a5f82a36f451e692f2abb080756056b141e45a088546610182916aab1e
34 +v1.0.5 3eb938a0ba7db5c6cc13d390e6242f66fdc9ef00 2020-03-25T22:13:18Z 7fab3ebec908087824c94e9a9d2606aa83793d98737a5389e737aad71d1b6d5b
35 +v1.0.5-otp-17 3eb938a0ba7db5c6cc13d390e6242f66fdc9ef00 2020-03-25T21:25:52Z fb980bd05a63a3d419fc56235c52dbef96bcd91b559da523a12f92e352d49719
36 +v1.0.5-otp-18 3eb938a0ba7db5c6cc13d390e6242f66fdc9ef00 2018-11-25T23:13:38Z
37 +v1.1 5591ab2dffeb8df448728dd2e712c416ac1a07ca 2020-03-25T22:14:09Z 085c6bfbce870870741cbdbf4917e3785b54bd804749955052d8875857847652
38 +v1.1-otp-17 5591ab2dffeb8df448728dd2e712c416ac1a07ca 2020-03-25T22:14:03Z 085c6bfbce870870741cbdbf4917e3785b54bd804749955052d8875857847652
39 +v1.1-otp-18 5591ab2dffeb8df448728dd2e712c416ac1a07ca 2020-03-25T21:25:40Z 3989ccea818ce8da9d355f9b3080780cd1c0fc03b51a2d0bb47673250bae4504
40 +v1.1.0 f2a9c7016633ca63541a8160c63a53eb7edbccdb 2020-03-25T21:27:07Z de44f8b3b3969d2fd280a50f4f96a8f2b7249037a696d6c2214d50b4e3b9adb9
41 +v1.1.0-otp-17 f2a9c7016633ca63541a8160c63a53eb7edbccdb 2020-03-25T22:14:20Z a0b5ff7c507881f6557c86686574c046b5bd67cddf2fedfc82cd5d9c8176ed0b
42 +v1.1.0-otp-18 f2a9c7016633ca63541a8160c63a53eb7edbccdb 2020-03-25T22:13:27Z e767678a166e0799792321073f53ac9655d120e8fa0a5a789af6832356c53755
43 +v1.1.0-rc.0 0e3c06b03149022b980e69872003d401c4788fea 2020-03-25T21:27:09Z 205c018fd2b0a4ebd4fa00a43b68cf2222aba43ab06fc07eeda98c0058a3d6d6
44 +v1.1.0-rc.0-otp-17 0e3c06b03149022b980e69872003d401c4788fea 2020-03-25T22:14:30Z 9a5674bfc64bc7236436c097d99aafce02c83ec926d58854a1f175284f271648
45 +v1.1.0-rc.0-otp-18 0e3c06b03149022b980e69872003d401c4788fea 2020-03-25T22:13:38Z 81a3be6e2711a66c90676ad0029ee305430e7c9384901857a1ec9047aea30235
46 +v1.1.1 139d2eac5998259379862ff6ed2a5287f7de4ea6 2020-03-25T22:14:44Z 61c3ebc971aecfe8624ff819ab7b2e7a7802a867f2ec5407c9827d879521b866
47 +v1.1.1-otp-17 139d2eac5998259379862ff6ed2a5287f7de4ea6 2020-03-25T22:14:38Z 61c3ebc971aecfe8624ff819ab7b2e7a7802a867f2ec5407c9827d879521b866
48 +v1.1.1-otp-18 139d2eac5998259379862ff6ed2a5287f7de4ea6 2020-03-25T22:13:44Z bdfa8f86fc0ca296c045b67d6c7d9a7b25f3dddcb2388c066dddfe03e231a0aa
49 +v1.10 8731ef03d97a8febcaa272a85efe1656a797892b 2020-07-14T10:41:39Z 4de78cc0d7ae93146912a6866070a19caddb18ed5766babf50432de05f1f670c
50 +v1.10-otp-21 8731ef03d97a8febcaa272a85efe1656a797892b 2020-07-14T10:41:34Z 4de78cc0d7ae93146912a6866070a19caddb18ed5766babf50432de05f1f670c
51 +v1.10-otp-22 8731ef03d97a8febcaa272a85efe1656a797892b 2020-07-14T10:40:30Z 53bae3f6816383278ec2b85324f5c55df0d3e9c9ac260e9d8f7fc18e184e6e23
52 +v1.10-otp-23 8731ef03d97a8febcaa272a85efe1656a797892b 2020-07-14T10:39:13Z 17785f8d823baca46daec4a1c61dc846eee86fc89497b50777d819dd54ff5ac5
53 +v1.10.0 5bd7a90864417e7be9483002cfa0e543d265b71d 2020-03-25T22:15:30Z 15e0f608cde3757a7a2e44f3683dd3ec5f184cd76cfa43366467f9d3556870ce
54 +v1.10.0-otp-21 5bd7a90864417e7be9483002cfa0e543d265b71d 2020-03-25T22:15:23Z 15e0f608cde3757a7a2e44f3683dd3ec5f184cd76cfa43366467f9d3556870ce
55 +v1.10.0-otp-22 5bd7a90864417e7be9483002cfa0e543d265b71d 2020-03-25T22:14:28Z b0c1f9bcddba50dc39e63b16e2df38a0fef74995d29bc47084ffb6ad5bd7b533
56 +v1.10.0-rc.0 105770cfa0ac0591c1fecca17f2221e0ac6af051 2020-03-25T22:16:49Z 8e6aec5f0c2bcf8c08451af20cfc0e61e0e484561e68a0e5f42eb8d6c99727d1
57 +v1.10.0-rc.0-otp-21 105770cfa0ac0591c1fecca17f2221e0ac6af051 2020-03-25T22:16:31Z 8e6aec5f0c2bcf8c08451af20cfc0e61e0e484561e68a0e5f42eb8d6c99727d1
58 +v1.10.0-rc.0-otp-22 105770cfa0ac0591c1fecca17f2221e0ac6af051 2020-03-25T22:15:26Z 3e6d407075290902b220c18726da4a785623e57dee620f414a8cefead34e1c01
59 +v1.10.1 51c95b60004d3d9d297fff23f576bdd97c931afd 2020-03-25T22:16:45Z 70adaff3b66377251aa8687087fa589981336371dd80d134e57abc39b6788a7c
60 +v1.10.1-otp-21 51c95b60004d3d9d297fff23f576bdd97c931afd 2020-03-25T21:29:16Z ee33314dad3ab8be426bcc2c77eaff7713fe03306b2d92b53dc0618d29a82ee7
61 +v1.10.1-otp-22 51c95b60004d3d9d297fff23f576bdd97c931afd 2020-03-25T22:15:35Z 8aba1324a382eded4dc614fad5d21f9af63d46a0f60b0834369868fa10b3402f
62 +v1.10.2 07450832e7fbc902bfdee124adda1b5a0f6b689d 2020-03-25T22:17:19Z dd23b5b2f78860de341b7fbeae0f4e8b681dca971036e1546ba86d04852b9097
63 +v1.10.2-otp-21 07450832e7fbc902bfdee124adda1b5a0f6b689d 2020-03-25T22:17:06Z dd23b5b2f78860de341b7fbeae0f4e8b681dca971036e1546ba86d04852b9097
64 +v1.10.2-otp-22 07450832e7fbc902bfdee124adda1b5a0f6b689d 2020-03-25T22:16:15Z 58616d0a492f9375d6e892200bf3d7618e5021a7a639620595b570a52973eac1
65 +v1.10.3 c88ecdec1655b04f88e3caef22f050bb85740e4c 2020-05-13T18:09:54Z c9b6ebc81bed67be4eeac420b3d4c8d727f69caf23103ce65d9d0795eab50aec
66 +v1.10.3-otp-21 c88ecdec1655b04f88e3caef22f050bb85740e4c 2020-05-13T18:09:48Z c9b6ebc81bed67be4eeac420b3d4c8d727f69caf23103ce65d9d0795eab50aec
67 +v1.10.3-otp-22 c88ecdec1655b04f88e3caef22f050bb85740e4c 2020-05-13T18:09:03Z db294219b295b1b24e7f7b5f8a133851f84f3eb175f73a7f43dbfa55e05af3fb
68 +v1.10.3-otp-23 c88ecdec1655b04f88e3caef22f050bb85740e4c 2020-05-13T18:08:09Z ef567be0c939211a21843a39dfdec3f870328e3ef9fb2695c0aa8a2d37b50d96
69 +v1.10.4 1145dc01680aab7094f8a6dbd38b65185e14adb4 2020-07-05T12:01:41Z e780a224631e029b3eee675ef251d01fc0f29bf550027cd0e93c2dbeeb8f4da8
70 +v1.10.4-otp-21 1145dc01680aab7094f8a6dbd38b65185e14adb4 2020-07-05T12:01:36Z e780a224631e029b3eee675ef251d01fc0f29bf550027cd0e93c2dbeeb8f4da8
71 +v1.10.4-otp-22 1145dc01680aab7094f8a6dbd38b65185e14adb4 2020-07-05T12:00:35Z ab49b0e07cac98cf8e73168be359b6ec3e6e7f6357be1407e31d7d823ca9e97c
72 +v1.10.4-otp-23 1145dc01680aab7094f8a6dbd38b65185e14adb4 2020-07-05T11:59:26Z ebe895088bdfdf6d156f090f3ec4c939265ce2ebe3868886832ddeb7f8f3aba1
73 +v1.11 57abca4c1687c77781785afef488d24cd945fa37 2020-09-14T22:27:05Z 20bc4ecf1fb7256f16081abc8c05a25b7fdebc89e7c6769e9fb80bee2f39a621
74 +v1.11-otp-21 57abca4c1687c77781785afef488d24cd945fa37 2020-09-14T22:26:58Z 20bc4ecf1fb7256f16081abc8c05a25b7fdebc89e7c6769e9fb80bee2f39a621
75 +v1.11-otp-22 57abca4c1687c77781785afef488d24cd945fa37 2020-09-14T22:25:35Z 4b5d7096f3a83ce9ee267c8f68f9d706da903958a5bf75a2c23f640caa05fe31
76 +v1.11-otp-23 57abca4c1687c77781785afef488d24cd945fa37 2020-09-14T22:24:03Z 7e2480c562ea3d7a15b82985b114668cdd8dbb8e00e819070a41c45ac79cd4a7
77 +v1.11.0-rc.0 48cee5aaa54fad593c5aca940ab3dd330652eab8 2020-09-14T10:57:02Z ff64bb368e07ba6b6c4434c36b8de89a4fbfac70e01a1e087c48a4e8eddf8b3a
78 +v1.11.0-rc.0-otp-21 48cee5aaa54fad593c5aca940ab3dd330652eab8 2020-09-14T10:56:53Z ff64bb368e07ba6b6c4434c36b8de89a4fbfac70e01a1e087c48a4e8eddf8b3a
79 +v1.11.0-rc.0-otp-22 48cee5aaa54fad593c5aca940ab3dd330652eab8 2020-09-14T10:55:50Z 6874ed67a30ec4e4ba8d9332d3833a0f0d68ebcd4fe3cd6e5992741384c888a4
80 +v1.11.0-rc.0-otp-23 48cee5aaa54fad593c5aca940ab3dd330652eab8 2020-09-14T10:54:36Z 171229bade46586771d05a18e489002d57cbe7b9a41640c3802ca07f5bff87d6
81 +v1.2 9c91d2cc91fa2ee2ceb88075e69e5eb18bbb1af8 2020-03-25T22:16:42Z 9bc461faad6f92f10f09e5d3b61b216dc4b28122cdae3a28b3bbfac8a693160f
82 +v1.2-otp-18 9c91d2cc91fa2ee2ceb88075e69e5eb18bbb1af8 2020-03-25T22:16:36Z 9bc461faad6f92f10f09e5d3b61b216dc4b28122cdae3a28b3bbfac8a693160f
83 +v1.2-otp-19 9c91d2cc91fa2ee2ceb88075e69e5eb18bbb1af8 2020-03-25T21:28:02Z b2d2fb4fa365d848ee6c8fabe11b72376a57bfeb9d2fc3c0067ce3e7c0a94c88
84 +v1.2.0 b1344724b695a9a474d73d4633c5a151f1a7d61d 2020-03-25T22:16:11Z 44f2a639ed3ffbae7489c4e229370b205014c9495a674d2bda23463a802de49d
85 +v1.2.0-otp-18 b1344724b695a9a474d73d4633c5a151f1a7d61d 2020-03-25T22:16:04Z 44f2a639ed3ffbae7489c4e229370b205014c9495a674d2bda23463a802de49d
86 +v1.2.0-rc.0 a2860b32a3cc8f543406b582fc583185c8c31e5c 2017-06-26T03:35:19Z
87 +v1.2.0-rc.0-otp-18 a2860b32a3cc8f543406b582fc583185c8c31e5c 2017-06-26T03:36:45Z
88 +v1.2.0-rc.1 211a1299cc033debf9a00fc5ac5f4d4e1eb4d6a7 2017-06-26T03:32:52Z
89 +v1.2.0-rc.1-otp-18 211a1299cc033debf9a00fc5ac5f4d4e1eb4d6a7 2017-06-26T03:34:19Z
90 +v1.2.1 a3d88dc406ca9642bcabf375db7f74f2cc6a751d 2020-03-25T22:16:38Z fc9d9c833d5cbcb49dba0a5d567c40c27bd9c39478f3712c0a5e738b96e4b53a
91 +v1.2.1-otp-18 a3d88dc406ca9642bcabf375db7f74f2cc6a751d 2018-11-25T23:39:21Z
92 +v1.2.2 9decf4c78a911bc1375891bb65fbf2e50fcedeb8 2020-03-25T22:17:12Z 8f0010f5924d5e8d1e42e907c85e662a7d0c41d33d92cf2c0c7c40b5d5190e44
93 +v1.2.2-otp-18 9decf4c78a911bc1375891bb65fbf2e50fcedeb8 2020-03-25T21:29:41Z 6699e120159a17c7e06e2ad4b5ce3fb6741d68cf43c9153c51e3ef00b3b1cb58
94 +v1.2.3 737ac62926db7a692e2fe67c27b696cfd0866674 2020-03-25T22:17:23Z 7513357020d13813ac09f1b4abaf825df62936f95e8ea33224a9719b88423bb7
95 +v1.2.3-otp-18 737ac62926db7a692e2fe67c27b696cfd0866674 2020-03-25T22:17:17Z 7513357020d13813ac09f1b4abaf825df62936f95e8ea33224a9719b88423bb7
96 +v1.2.4 17e8dbbf16c08dff0ded22c37ae80a37f99ff99a 2020-03-25T22:17:34Z 485cf049c609a33dd3f7f49842ea1d23b6ee41170e7e148a65feded33e4ec3c6
97 +v1.2.4-otp-18 17e8dbbf16c08dff0ded22c37ae80a37f99ff99a 2020-03-25T22:17:27Z 485cf049c609a33dd3f7f49842ea1d23b6ee41170e7e148a65feded33e4ec3c6
98 +v1.2.5 e5374cf5d3beb510a0fdeddd0f8b89e8e26445ef 2020-03-25T22:17:43Z 1e583f13c332082e58b1b9c4d183c161c95623924606d1673dd260d9d52ecef0
99 +v1.2.5-otp-18 e5374cf5d3beb510a0fdeddd0f8b89e8e26445ef 2020-03-25T22:17:37Z 1e583f13c332082e58b1b9c4d183c161c95623924606d1673dd260d9d52ecef0
100 +v1.2.6 3dbfb92860fb24f83c92e1f1b67f48554fb211d6 2020-03-25T22:18:06Z a9a29ba0b872be92aee79f221bd5cfcccbe242edf298df04940004b211b75332
101 +v1.2.6-otp-18 3dbfb92860fb24f83c92e1f1b67f48554fb211d6 2020-03-25T22:17:59Z a9a29ba0b872be92aee79f221bd5cfcccbe242edf298df04940004b211b75332
102 +v1.3 bbf5e2bc7bc3179588bab5e87ad740ff5790d72e 2020-03-25T22:19:45Z 971b9b3ec0fe6aba8811f675bfb44f13b1be97439e2b959dba3941dbf6b04ba4
103 +v1.3-otp-18 bbf5e2bc7bc3179588bab5e87ad740ff5790d72e 2020-03-25T22:19:38Z 971b9b3ec0fe6aba8811f675bfb44f13b1be97439e2b959dba3941dbf6b04ba4
104 +v1.3-otp-19 bbf5e2bc7bc3179588bab5e87ad740ff5790d72e 2020-03-25T22:18:42Z 3b1eb45ad96b573db97759931e120f78e1ac35983da14bc1ace8e9e4821e6a7b
105 +v1.3.0 416bf41a032280b988d537bd4635beecc3aeed29 2020-03-25T22:20:09Z 10f3755e1575b85e364db5120d53ac72d1e7af66cc86d46874a035d142ff14b5
106 +v1.3.0-otp-18 416bf41a032280b988d537bd4635beecc3aeed29 2020-03-25T22:20:02Z 10f3755e1575b85e364db5120d53ac72d1e7af66cc86d46874a035d142ff14b5
107 +v1.3.0-otp-19 416bf41a032280b988d537bd4635beecc3aeed29 2020-03-25T21:41:57Z 0dde36e034c35af1b3d51db86616800619f6e455d3c5410dd7daa36ec23f0972
108 +v1.3.0-rc.0 7881123953300152650e83e4ba6e56e4d6895d72 2020-03-25T22:20:16Z 4f8a004a6e6f97d8a27044ff45f0a149728fbb6d6c839e6af4122bb3b2bf866e
109 +v1.3.0-rc.0-otp-18 7881123953300152650e83e4ba6e56e4d6895d72 2020-03-25T21:32:26Z beacc2e95f1d4a5af290bbeef031f328fb0df4dabd95215fe1df9aebcd16a47b
110 +v1.3.0-rc.0-otp-19 7881123953300152650e83e4ba6e56e4d6895d72 2020-03-25T22:18:50Z b5b32c2c920038f50a8037d51722f83364026cdfb4a14e6c6c0f7add18e55878
111 +v1.3.0-rc.1 9eb47818abb00f207e442ffe06eef5a28155d371 2020-03-25T22:19:57Z 583b9f1bbfc650784fcd9f9a2930a5ea077a05262112aad2c983ef25d390c428
112 +v1.3.0-rc.1-otp-18 9eb47818abb00f207e442ffe06eef5a28155d371 2020-03-25T22:19:50Z 583b9f1bbfc650784fcd9f9a2930a5ea077a05262112aad2c983ef25d390c428
113 +v1.3.0-rc.1-otp-19 9eb47818abb00f207e442ffe06eef5a28155d371 2020-03-25T22:18:52Z 3d9a9441319c1cbe749833fce2ff5d057676ecebb98d371c1c4a1bf9cad4ad46
114 +v1.3.1 01a1acd27b2b742a480dbc2210177f45982cc77e 2020-03-25T22:20:24Z 75b8c766c25873ab49e217bfa74b680c0f1630b28ad59b6cddca29fe549b87da
115 +v1.3.1-otp-18 01a1acd27b2b742a480dbc2210177f45982cc77e 2020-03-25T22:20:18Z 75b8c766c25873ab49e217bfa74b680c0f1630b28ad59b6cddca29fe549b87da
116 +v1.3.1-otp-19 01a1acd27b2b742a480dbc2210177f45982cc77e 2020-03-25T22:19:17Z e40938de58f10ad2b436eaae5725239ae06bd0d8416aa05d58b3970603488fd3
117 +v1.3.2 56f1037973d50721206324db48cf86509779c862 2020-03-25T22:20:27Z 32b7542ab3fffd51422bc44721f878e82a23ec6d11ae798805e1c52717f8566a
118 +v1.3.2-otp-18 56f1037973d50721206324db48cf86509779c862 2020-03-25T22:20:20Z 32b7542ab3fffd51422bc44721f878e82a23ec6d11ae798805e1c52717f8566a
119 +v1.3.2-otp-19 56f1037973d50721206324db48cf86509779c862 2020-03-25T22:19:21Z 3a0095634b1ba86156c0cec4d07eacebad9185eb57507a6ecf3e4a94769cf685
120 +v1.3.3 0caa75760b14e7392a9f2d7aa08218ba53c8c76a 2020-03-25T22:20:43Z a68a1fdec897290d816cb265fe66588e8345f23f53254d954be266edad4e0c59
121 +v1.3.3-otp-18 0caa75760b14e7392a9f2d7aa08218ba53c8c76a 2020-03-25T21:33:07Z 535fc67015404e21326f9aa55f8866a416ae6a5cfe65dc9ddd2885d8abdde3d2
122 +v1.3.3-otp-19 0caa75760b14e7392a9f2d7aa08218ba53c8c76a 2020-03-25T22:19:29Z 3ae582c46d95c22c724df9a4f617684c277737d8ac82f154ce718baed20726bd
123 +v1.3.4 87710cd49521fc396f3f04fa8615f05e7f57ecc0 2020-03-25T22:20:46Z 1c3048f9de5f645c4f393201a15c403924886dc18690c36abbeb48aa342cc952
124 +v1.3.4-otp-18 87710cd49521fc396f3f04fa8615f05e7f57ecc0 2020-03-25T22:20:37Z 1c3048f9de5f645c4f393201a15c403924886dc18690c36abbeb48aa342cc952
125 +v1.3.4-otp-19 87710cd49521fc396f3f04fa8615f05e7f57ecc0 2020-03-25T22:19:40Z fc55e25dae9eb99db14bcf73952274db99467cbde17d7084232e4cc444e9e57d
126 +v1.4 5131c6be9d1799eb32567afa95290313833afab4 2020-03-25T22:22:08Z 73b9d87a2d83a447ee13f78469fa0cb477691b5a7c580b6b1e8543ded0d74740
127 +v1.4-otp-18 5131c6be9d1799eb32567afa95290313833afab4 2020-03-25T22:22:02Z 73b9d87a2d83a447ee13f78469fa0cb477691b5a7c580b6b1e8543ded0d74740
128 +v1.4-otp-19 5131c6be9d1799eb32567afa95290313833afab4 2020-03-25T22:21:01Z 30da8426d030698c54ce18ab7388224eee9873ea05d84314ca07b8e9a20ce98c
129 +v1.4-otp-20 5131c6be9d1799eb32567afa95290313833afab4 2020-03-25T22:19:59Z 3aa8e74da72590a059a106dbbc0ecfa8cdcaae0de947296a2758d29d6898334c
130 +v1.4.0 f045705ac559290866abda5f9daeac4b701b6e7f 2020-03-25T22:21:20Z 3b215e4caa0346086e05bd687b8e6d24429cee2f33738be5acbce34eb42ee961
131 +v1.4.0-otp-18 f045705ac559290866abda5f9daeac4b701b6e7f 2020-03-25T22:21:14Z 3b215e4caa0346086e05bd687b8e6d24429cee2f33738be5acbce34eb42ee961
132 +v1.4.0-otp-19 f045705ac559290866abda5f9daeac4b701b6e7f 2020-03-25T21:33:02Z c6a69b98a6a337a778888a2ca525cbc68e1323e2eee9a66126d3703df7a3cb69
133 +v1.4.0-rc.0 fbfb41dfeedf14ccc4bd80c3c366382c8a2fcb9e 2020-03-25T21:35:09Z 73e665879a38ebe9ac2f9e01151d824fabb346c972153c55c6a51a15d77dfd0a
134 +v1.4.0-rc.0-otp-18 fbfb41dfeedf14ccc4bd80c3c366382c8a2fcb9e 2018-11-26T00:18:02Z
135 +v1.4.0-rc.0-otp-19 fbfb41dfeedf14ccc4bd80c3c366382c8a2fcb9e 2020-03-25T22:22:35Z 6465652089273611d4b30956cf805368dc7f98251ff97f2f4260aa92f5559040
136 +v1.4.0-rc.0-otp-20 fbfb41dfeedf14ccc4bd80c3c366382c8a2fcb9e 2020-03-25T22:21:44Z d19b14c98892750c03274862e4ae9bacc4e5541762acecb069e1e2b3998bec61
137 +v1.4.0-rc.1 16a14c1f6d25e4b51e78fdcacf4f824966a17eb5 2020-03-25T22:24:04Z c7f8f78eb2e61fc664b3827c112b0019a26415147bf46942b048647b37f164e1
138 +v1.4.0-rc.1-otp-18 16a14c1f6d25e4b51e78fdcacf4f824966a17eb5 2020-03-25T22:23:57Z c7f8f78eb2e61fc664b3827c112b0019a26415147bf46942b048647b37f164e1
139 +v1.4.0-rc.1-otp-19 16a14c1f6d25e4b51e78fdcacf4f824966a17eb5 2020-03-25T22:22:58Z 709696973ae7f81a3cdc4fd6438981f67988ef26fe1481dc63fda29985d6a66f
140 +v1.4.0-rc.1-otp-20 16a14c1f6d25e4b51e78fdcacf4f824966a17eb5 2020-03-25T22:21:58Z d847e27bdbbd6ecff6f6e94d9087b31a57eaf2822a38b6af87e81beea3e9b1de
141 +v1.4.1 0397a46bb762923a91353e1c957ae2443d50dc05 2020-03-25T22:23:21Z 9398a8fbd4c64bbde76cbc179f2837ba6815a9d60fdca49fe43cd86c70ed0fcb
142 +v1.4.1-otp-18 0397a46bb762923a91353e1c957ae2443d50dc05 2020-03-25T22:23:14Z 9398a8fbd4c64bbde76cbc179f2837ba6815a9d60fdca49fe43cd86c70ed0fcb
143 +v1.4.1-otp-19 0397a46bb762923a91353e1c957ae2443d50dc05 2020-03-25T22:22:15Z fc54fa404028f712a135db14d9cf8d6bcec505cae020dc1c60db92f22b43a93f
144 +v1.4.2 27fdc68ff41a75b16778f2ed8d4d6605764e31b6 2020-03-25T22:24:08Z bb6b153387177a6e440b385420ce20e6017d05170fff681f0d23c7fba82fca1b
145 +v1.4.2-otp-18 27fdc68ff41a75b16778f2ed8d4d6605764e31b6 2020-03-25T22:24:02Z bb6b153387177a6e440b385420ce20e6017d05170fff681f0d23c7fba82fca1b
146 +v1.4.2-otp-19 27fdc68ff41a75b16778f2ed8d4d6605764e31b6 2020-03-25T22:22:42Z 88a6afd1d9c7d0a2c60e2c24be439942568f6ab2a4bc507fd3831865188efe8d
147 +v1.4.3 b2b974dc71e2d98c3179c08a9356835f68442a80 2020-03-25T22:23:39Z b2313b3e4efb2841d2c3c7cd34fc03cae85366ca9e7a2f56e4eca836811f2177
148 +v1.4.3-otp-18 b2b974dc71e2d98c3179c08a9356835f68442a80 2020-03-25T22:23:33Z b2313b3e4efb2841d2c3c7cd34fc03cae85366ca9e7a2f56e4eca836811f2177
149 +v1.4.3-otp-19 b2b974dc71e2d98c3179c08a9356835f68442a80 2020-03-25T22:22:31Z da40d1f7aaa389b6366ad3fbd0fc622caa70081f30b0dcbc5820eb57fd3e13ea
150 +v1.4.4 867da6f876c48279823a41a33030c95ef37379b2 2020-03-25T22:23:43Z c1f13c7b6f46bb82928a1545a2980c93f4f32c5065d172b18d978913e39aec57
151 +v1.4.4-otp-18 867da6f876c48279823a41a33030c95ef37379b2 2020-03-25T22:23:36Z c1f13c7b6f46bb82928a1545a2980c93f4f32c5065d172b18d978913e39aec57
152 +v1.4.4-otp-19 867da6f876c48279823a41a33030c95ef37379b2 2019-01-11T13:10:55Z
153 +v1.4.5 e25c37108a5294b205ad0abe558cb82f19d342c5 2020-03-25T22:24:53Z a52e8962a2856887e8401ea3868c35f9811d2584bebe0e1e2243242f5bf208ee
154 +v1.4.5-otp-18 e25c37108a5294b205ad0abe558cb82f19d342c5 2020-03-25T22:24:46Z a52e8962a2856887e8401ea3868c35f9811d2584bebe0e1e2243242f5bf208ee
155 +v1.4.5-otp-19 e25c37108a5294b205ad0abe558cb82f19d342c5 2020-03-25T22:23:46Z 16351a7334cfb840b5be0be854c95c3092425463da7bd97509dfc0d964d3ece8
156 +v1.4.5-otp-20 e25c37108a5294b205ad0abe558cb82f19d342c5 2020-03-25T22:22:45Z 8b3c151e66b2ba79786aad6dd83a2b6f846cf6451e361847f0604bbb31a11db3
157 +v1.5 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T22:24:25Z 6a1e40830b90883395c84abc7f98a41da33d70e89da841256fdf568c3afcaf42
158 +v1.5-otp-18 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T21:36:44Z f706fbb55eb5d2dde87d71a69f82176f8d6876e0a3b7471f2c28839169b98cf9
159 +v1.5-otp-19 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T22:23:30Z 12c498b581f6cec636d8994195548ac9730aefde3ef9b1d7febc06ffe24a2430
160 +v1.5-otp-20 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T21:35:04Z f7347176a029cae438d87c87117af3862ce9175514eb69a468ade4bbe37c6e92
161 +v1.5.0 117b2bf614d4b74281ff6dfe0e0e95caf50ff100 2020-03-25T22:25:26Z 9e1b22e464e70f7d614b91d002d37dbabec2bd1a0ff7ced0578435d69f5b695f
162 +v1.5.0-otp-18 117b2bf614d4b74281ff6dfe0e0e95caf50ff100 2020-03-25T21:38:02Z ad69e965bef4d98282a17551cd33350ca0d189c0c35b7ea3f78c9dd36fb221aa
163 +v1.5.0-otp-19 117b2bf614d4b74281ff6dfe0e0e95caf50ff100 2020-03-25T22:24:16Z 5829820f88b2af596c2ed810dbe12cbe02fd5445052ac8338cf2855085eeaa15
164 +v1.5.0-otp-20 117b2bf614d4b74281ff6dfe0e0e95caf50ff100 2020-03-25T22:23:18Z ca38567d4468fc5463105c87e79886a458404596fad06cf60d9b41ab63b8ae10
165 +v1.5.0-rc.0 fa0de77862f10496f8285079c7cdc367ead7c8c8 2020-03-25T22:26:37Z 3cc7f60e1e1514de2a39b91af1605fc15017a170a1f56649a77cba08792e0693
166 +v1.5.0-rc.0-otp-18 fa0de77862f10496f8285079c7cdc367ead7c8c8 2020-03-25T21:38:42Z 8fded176eed47bd6787280f68fe66c57ab34f441cf9d05b1015f605026af133e
167 +v1.5.0-rc.0-otp-19 fa0de77862f10496f8285079c7cdc367ead7c8c8 2020-03-25T22:25:25Z ca09faf48cf590bc128fd2a3cb1ea40a53cad9d8f242be7f3ba684b536de86ef
168 +v1.5.0-rc.0-otp-20 fa0de77862f10496f8285079c7cdc367ead7c8c8 2020-03-25T22:24:19Z 94dc670c3989970976c951b554d78b235c8d16d434faf398147788c661c3481d
169 +v1.5.0-rc.1 704fb9599b522bb530efdc5bb527d005e0c8ed68 2020-03-25T21:13:57Z a93294558d96225d89adad8140195e2d037671bbba268f7232cbf9a0c262a75a
170 +v1.5.0-rc.1-otp-18 704fb9599b522bb530efdc5bb527d005e0c8ed68 2020-03-25T21:13:51Z a93294558d96225d89adad8140195e2d037671bbba268f7232cbf9a0c262a75a
171 +v1.5.0-rc.1-otp-19 704fb9599b522bb530efdc5bb527d005e0c8ed68 2020-03-25T22:26:30Z 3a77c443c52bad797b527a5042a11800f95204efe6f84ec3d580ea15836db06d
172 +v1.5.0-rc.1-otp-20 704fb9599b522bb530efdc5bb527d005e0c8ed68 2020-03-25T22:25:17Z 634c5939d546639e1e7535555b40eea9181fed035bc3276f6eb8b7978e7776bb
173 +v1.5.0-rc.2 e5208421b32f197379b26c55bfde22651bea5e1c 2018-11-26T02:09:46Z
174 +v1.5.0-rc.2-otp-18 e5208421b32f197379b26c55bfde22651bea5e1c 2020-03-25T22:27:49Z 4a8f1ac1160d9b0b7d664e23d5beeb1a8fc763ec23b4c50b8ae26bea7ecf053f
175 +v1.5.0-rc.2-otp-19 e5208421b32f197379b26c55bfde22651bea5e1c 2020-03-25T21:12:20Z e813dd6ec6cb5fdd8047e4c663903e32cc36eda50d6f7259596477f41390df41
176 +v1.5.0-rc.2-otp-20 e5208421b32f197379b26c55bfde22651bea5e1c 2020-03-25T22:25:44Z 5cbab05adcf1953bbd6b56f56c1ba0ca81a4697bcc93d488c8e6b2d6e638cdf9
177 +v1.5.1 1406d853e0e6515007696f871d0a9e2c023da6da 2020-03-25T22:27:58Z cae0fcae269ac84e5e67e522dc0bdd857a660fa3e46733a198d9ded465e4fba8
178 +v1.5.1-otp-18 1406d853e0e6515007696f871d0a9e2c023da6da 2020-03-25T22:27:51Z cae0fcae269ac84e5e67e522dc0bdd857a660fa3e46733a198d9ded465e4fba8
179 +v1.5.1-otp-19 1406d853e0e6515007696f871d0a9e2c023da6da 2020-03-25T22:26:47Z 8109aae79aa6fc175ecf45283309b54697b3d050c38d14250f939b4dcae08696
180 +v1.5.1-otp-20 1406d853e0e6515007696f871d0a9e2c023da6da 2020-03-25T21:10:55Z b2af6a669a7d62d9e29ca5057393de5531597286812335684c6a826b9b628563
181 +v1.5.2 05418eaa4bf4fa8473900741252d93d76ed3307b 2020-03-25T22:27:19Z 6376a037205f9de43a520335be42c2475d3576f3da944b998a24082eea359054
182 +v1.5.2-otp-18 05418eaa4bf4fa8473900741252d93d76ed3307b 2020-03-25T22:27:12Z 6376a037205f9de43a520335be42c2475d3576f3da944b998a24082eea359054
183 +v1.5.2-otp-19 05418eaa4bf4fa8473900741252d93d76ed3307b 2020-03-25T22:26:22Z 1f72b8efad0e23ed3da34313cc87724b09bd8eb312d544827c07acf5cd9c6a63
184 +v1.5.2-otp-20 05418eaa4bf4fa8473900741252d93d76ed3307b 2020-03-25T22:25:33Z 972f37c2372d0237eab5efc295f4c79bef958a79ead0c08784bf42e821fc53ba
185 +v1.5.3 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T22:27:45Z 34e7571a455e5983ca34c846edb323954d89e16ca037bbb68fd8a51d580338b5
186 +v1.5.3-otp-18 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T22:27:37Z 34e7571a455e5983ca34c846edb323954d89e16ca037bbb68fd8a51d580338b5
187 +v1.5.3-otp-19 7340ca2d925297e98dd71528a09bf0fb8634b47f 2018-11-26T02:26:23Z
188 +v1.5.3-otp-20 7340ca2d925297e98dd71528a09bf0fb8634b47f 2018-11-26T02:24:29Z
189 +v1.6 ddc554a7efef67f16e462709e7f46662f21f7ab5 2020-03-25T22:27:39Z 81cae25bef08452ceaf734c382c56f710c55ad5c45e1357a39b1dabf47b65d4b
190 +v1.6-otp-19 ddc554a7efef67f16e462709e7f46662f21f7ab5 2020-03-25T22:27:31Z 81cae25bef08452ceaf734c382c56f710c55ad5c45e1357a39b1dabf47b65d4b
191 +v1.6-otp-20 ddc554a7efef67f16e462709e7f46662f21f7ab5 2020-03-25T22:26:41Z 1b6fe7864287f959d4e1b401679389e44ea8ba97fb91cbc2fda5232630f2cde7
192 +v1.6-otp-21 ddc554a7efef67f16e462709e7f46662f21f7ab5 2020-03-25T22:25:53Z ee2763087170a639d9f5c3b044de81bafdbd717aba11e69db9fe7d94007a8c8e
193 +v1.6.0 63b8d0ba34f38baa6f3a11020215b2f66213d27e 2020-03-25T22:27:06Z 610e548f35d0a90e0a8d291449d17bbba9d5d1e80509792f5e44aea7bb76ac4c
194 +v1.6.0-otp-19 63b8d0ba34f38baa6f3a11020215b2f66213d27e 2020-03-25T22:26:58Z 610e548f35d0a90e0a8d291449d17bbba9d5d1e80509792f5e44aea7bb76ac4c
195 +v1.6.0-otp-20 63b8d0ba34f38baa6f3a11020215b2f66213d27e 2020-03-25T22:26:09Z c09a0a90143abf9a37fce19a1959308fc52d52c461f1a703eae3ee18b616c683
196 +v1.6.0-rc.0 182c730bdb431fd1ff6789057e4903c33e377f43 2017-12-24T12:37:44Z
197 +v1.6.0-rc.0-otp-19 182c730bdb431fd1ff6789057e4903c33e377f43 2017-12-24T12:38:46Z
198 +v1.6.0-rc.0-otp-20 182c730bdb431fd1ff6789057e4903c33e377f43 2017-12-24T12:39:45Z
199 +v1.6.0-rc.1 67e575eca7b97d4fe063626671d1fd1da0ba7fed 2018-01-11T10:39:01Z
200 +v1.6.0-rc.1-otp-19 67e575eca7b97d4fe063626671d1fd1da0ba7fed 2018-01-11T10:40:00Z
201 +v1.6.0-rc.1-otp-20 67e575eca7b97d4fe063626671d1fd1da0ba7fed 2018-01-11T10:40:58Z
202 +v1.6.1 2b588dfb3ebb2f3221bec3509cb1dbb8e08ef1af 2020-03-25T22:28:09Z f9102f0a90aec8ad2a372a782aedc9ed4c3bd0d6ae391a7cc84cb3fc6c5f133c
203 +v1.6.1-otp-19 2b588dfb3ebb2f3221bec3509cb1dbb8e08ef1af 2020-03-25T22:28:03Z f9102f0a90aec8ad2a372a782aedc9ed4c3bd0d6ae391a7cc84cb3fc6c5f133c
204 +v1.6.1-otp-20 2b588dfb3ebb2f3221bec3509cb1dbb8e08ef1af 2020-03-25T22:27:15Z 679c6d51e6955225b6fd553282f09d003ecdc1b2bcebf3fd3d855034a60419f3
205 +v1.6.2 c2a9c93f023c0c00e5f387a1476f4cca01752bb8 2020-03-25T22:28:44Z c9e1e85acfd362fd1dfe6abb89019b57bf44fc032c982a37fca60ec2ccf0cefa
206 +v1.6.2-otp-19 c2a9c93f023c0c00e5f387a1476f4cca01752bb8 2020-03-25T22:28:38Z c9e1e85acfd362fd1dfe6abb89019b57bf44fc032c982a37fca60ec2ccf0cefa
207 +v1.6.2-otp-20 c2a9c93f023c0c00e5f387a1476f4cca01752bb8 2020-03-25T21:11:05Z e555433aa78c4c50dc4adcd14f7713f03c8d17ad3bc0db4e8ebbd6cfeca50e85
208 +v1.6.3 45c7f828ef7cb29647d4ac999761ed4e2ff0dc08 2020-03-25T22:29:23Z c33d6c4440838fe1c09e514ff0a907937a5bae5336b424129d8a4375e308bb01
209 +v1.6.3-otp-19 45c7f828ef7cb29647d4ac999761ed4e2ff0dc08 2020-03-25T22:29:16Z c33d6c4440838fe1c09e514ff0a907937a5bae5336b424129d8a4375e308bb01
210 +v1.6.3-otp-20 45c7f828ef7cb29647d4ac999761ed4e2ff0dc08 2020-03-25T22:28:23Z e9b49410f9c2b49464c23e813d1f43303f9199926323d047631c82019423517f
211 +v1.6.4 c107a2fe2623d11d132cdfeefbb7370abd44f85c 2020-03-25T21:15:15Z f4945bf238bb96675c8462c781f520a23025a58311608b4760f0ca71a98dd0e9
212 +v1.6.4-otp-19 c107a2fe2623d11d132cdfeefbb7370abd44f85c 2020-03-25T22:29:37Z 57f5902d73f55e502fa9f785c7fa76505e649a494bd507fe55ee98356a5d89b7
213 +v1.6.4-otp-20 c107a2fe2623d11d132cdfeefbb7370abd44f85c 2020-03-25T22:28:47Z 7b09df2473d0b4073fd7612ba3317b578e1a9646955e18cd15807107a0a11dac
214 +v1.6.5 a9f1be07ca1a939739bd013f100686c8cf81432a 2020-03-25T22:29:56Z d6bf2716030666d4939211d867fad73eabb9fbacd330861a6e325eded452f84d
215 +v1.6.5-otp-19 a9f1be07ca1a939739bd013f100686c8cf81432a 2020-03-25T22:29:49Z d6bf2716030666d4939211d867fad73eabb9fbacd330861a6e325eded452f84d
216 +v1.6.5-otp-20 a9f1be07ca1a939739bd013f100686c8cf81432a 2020-03-25T22:29:01Z 1606a442acf49326d6805d9aa0a323fabfb150a27c5cb5de36489d5d759447a5
217 +v1.6.5-otp-21 a9f1be07ca1a939739bd013f100686c8cf81432a 2018-11-26T02:52:18Z
218 +v1.6.6 1ec9d1d7bdd01665deb3607ba6beb8bcd524b85d 2020-03-25T22:30:57Z 025cb325e1cd9b6823bbd869f1b30f7f0529bef38e52335af5063a292b210a29
219 +v1.6.6-otp-19 1ec9d1d7bdd01665deb3607ba6beb8bcd524b85d 2020-03-25T22:30:50Z 025cb325e1cd9b6823bbd869f1b30f7f0529bef38e52335af5063a292b210a29
220 +v1.6.6-otp-20 1ec9d1d7bdd01665deb3607ba6beb8bcd524b85d 2020-03-25T21:14:55Z 25e55384303eaf867722fdfd9ff6ecdd300633a8e35146fa4c90a2f873f1d916
221 +v1.6.6-otp-21 1ec9d1d7bdd01665deb3607ba6beb8bcd524b85d 2018-11-26T02:57:59Z
222 +v1.7 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:32:27Z 1ecb432fe2fe82a5f4b1287eda09799de1f4544a5cfd451c89544f93b3856b68
223 +v1.7-otp-19 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:32:19Z 1ecb432fe2fe82a5f4b1287eda09799de1f4544a5cfd451c89544f93b3856b68
224 +v1.7-otp-20 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:31:26Z feace86783358fe1ccbe5a8b55bfcdaddd64e6a0aef3656ff36c9200b7e8dacb
225 +v1.7-otp-21 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:30:37Z 8535ea645e53e5b1d740fcee364a98e309247a623f28b7b0d281c8cdf518086f
226 +v1.7-otp-22 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:29:45Z 6cdd6a9714a1fc7209e2498936986418c3a145b14e158df5e9e8d762a52fb281
227 +v1.7.0 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T21:17:57Z 16f6a0c235c8766fcb3a97ced61c9e3f08df579f7234464827824a9097b59123
228 +v1.7.0-otp-19 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T22:32:30Z 3f0ce20986311d9d21121d7e6314fb25ffebe520fd9f4b974074caf74dca33e0
229 +v1.7.0-otp-20 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T21:16:57Z c9bbf4d7d9a4088644797bae699f10be011ef0a144faa8c48a14aa40e6d2bd05
230 +v1.7.0-otp-21 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T22:30:45Z ca180626cc6fcd7a6b4c591410d42e68ad3e0007e07ad645a39fb3c2ed66f6ff
231 +v1.7.0-otp-22 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T21:14:57Z c3fee34257d49ba18fce12dc165bea9f65828969ff2e6acc596c0d8a594237d1
232 +v1.7.0-rc.0 1164784b8ef25967471c068600301db850de58b3 2020-03-25T21:18:18Z f5d16a2382408acddb1a6d18ee73d0e92ae2eaa0d4adfebf8097723743eea85c
233 +v1.7.0-rc.0-otp-19 1164784b8ef25967471c068600301db850de58b3 2020-03-25T22:32:36Z 08dbb2970f9ce6a9c4b246dbc8dd8dcace40d7ce0027772da09fdc8891b112e2
234 +v1.7.0-rc.0-otp-20 1164784b8ef25967471c068600301db850de58b3 2020-03-25T22:31:39Z ea293ca82f093a75ef10a377b3fe75ef5244c60388853bfcfcfebd313f21ced1
235 +v1.7.0-rc.0-otp-21 1164784b8ef25967471c068600301db850de58b3 2020-03-25T22:30:48Z 069a6875b80837e39b879ebc7a614cdc6e3a57d903c1c9c113fbf37a0a001805
236 +v1.7.0-rc.0-otp-22 1164784b8ef25967471c068600301db850de58b3 2020-03-25T22:29:59Z 236dbcc06de39c4c6afb8d72fe8f45e8a260da96aff214e0dfe442108f5bdaac
237 +v1.7.0-rc.1 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T22:32:49Z 82001fa454804c467dc5d3128273e2f4c51d1529e05ab0dd976c5fbfc810c1c1
238 +v1.7.0-rc.1-otp-19 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T22:32:42Z 82001fa454804c467dc5d3128273e2f4c51d1529e05ab0dd976c5fbfc810c1c1
239 +v1.7.0-rc.1-otp-20 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T21:17:38Z e89ede91c4a824e7b930ad02a0b9c231a0b77cf01f74e122dd72ad29e31f9b99
240 +v1.7.0-rc.1-otp-21 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T22:30:59Z 6aa0013c238185014b300016c88f7211a00c5b1b04d3146d4788a7f0e4f2207f
241 +v1.7.0-rc.1-otp-22 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T22:30:13Z a481cff84a405be9da89721b1ed022f422a45b855d2159266302b3f6f2fa234b
242 +v1.7.1 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2019-05-14T23:45:16Z
243 +v1.7.1-otp-19 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2020-03-25T22:32:44Z b775acc22b7486ee5b0e2a3bb7101206889b4e33d9bb7e5dc734094e949cbfe3
244 +v1.7.1-otp-20 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2020-03-25T21:17:33Z aa2c20a4e3ac4d2a7767379fa3e185774e7052a969f6595dac4e4d4040e41dd1
245 +v1.7.1-otp-21 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2020-03-25T21:16:45Z b79f34570ab6ba52b4f0ce6067f6552225f9cc063ffd8d843310d833d7cffeff
246 +v1.7.1-otp-22 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2020-03-25T22:30:09Z 23bb48b55a98a7b47cd58433f6a3c17b6bd18c748ebcb2b32d2f6a90b4057557
247 +v1.7.2 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T22:33:25Z bd93d69afaa0ffcb456f158bf785f9b211803e472d5624030877771ba47af2f3
248 +v1.7.2-otp-19 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T22:33:18Z bd93d69afaa0ffcb456f158bf785f9b211803e472d5624030877771ba47af2f3
249 +v1.7.2-otp-20 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T21:17:42Z 1e36d839e8d075e68219944c34b3c90622e0a5698e954c0a22384d412f958509
250 +v1.7.2-otp-21 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T22:31:36Z f11f023abdf43cbade64b7f0fef316d361e716bf5274aff3398a1ba97411cb41
251 +v1.7.2-otp-22 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T21:16:06Z 83d4c728d4526e7a72e423b2cca650d20ef8cf4cd8ceb1da022c900490de964e
252 +v1.7.3 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:33:58Z 358170a282e52728be7402eadd52fdc66419c322548f2c6f0fd717741c86d029
253 +v1.7.3-otp-19 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:33:51Z 358170a282e52728be7402eadd52fdc66419c322548f2c6f0fd717741c86d029
254 +v1.7.3-otp-20 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:32:57Z 7df5ddd0b565c6bfe02b743a7338dd095b74228ea44bf71d912d1875a861c442
255 +v1.7.3-otp-21 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:32:08Z a20a939d8046184ab45b37efba70705cee4c66f73d227578b7e717a4e65bb26a
256 +v1.7.3-otp-22 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:31:22Z c3c8b2cff0bef4c91636cd8335988e808ae2978ed90cc0ea2acd238bf60f22d8
257 +v1.7.4 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:34:34Z c82b6f34a17fc6f9fba9327e9080d2c44c97e11bf00398db2a5c120ac289671b
258 +v1.7.4-otp-19 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:34:21Z c82b6f34a17fc6f9fba9327e9080d2c44c97e11bf00398db2a5c120ac289671b
259 +v1.7.4-otp-20 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:33:29Z 620b4f6097aaa22421a41bde19c838983b2854aebc429b883342b7f71f8542df
260 +v1.7.4-otp-21 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:32:39Z 2b372cbe7d905f3403bc42b9284ae9b84d2c1f9ee3b847ca6bc416c4d941e44d
261 +v1.7.4-otp-22 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:31:50Z 802ef1addcdfb16408b6b90f9a22c415ae23f5d725e5f5e3101cd196ef3a7b56
262 +v1.8 6d98af49c929b9e23c7c3b59e93f5f53cedeebd4 2020-03-25T22:33:48Z 90a26e9cc5b1cc7e2279dc633ef52e471f8eaaa4ce3263a6e87506427ad3fedc
263 +v1.8-otp-20 6d98af49c929b9e23c7c3b59e93f5f53cedeebd4 2020-03-25T22:33:41Z 90a26e9cc5b1cc7e2279dc633ef52e471f8eaaa4ce3263a6e87506427ad3fedc
264 +v1.8-otp-21 6d98af49c929b9e23c7c3b59e93f5f53cedeebd4 2020-03-25T22:32:52Z 69def395dc582c762c43267935e07732cddcc7a71a830bb09ce863b49b3d20cc
265 +v1.8-otp-22 6d98af49c929b9e23c7c3b59e93f5f53cedeebd4 2020-03-25T22:32:06Z d7532382e69ba14b947a1405fa88cb05de11713673ab106b589958d456d726e3
266 +v1.8.0 2eee2fc6a4c3733537dc95083c4247a1fa723ab1 2020-03-25T22:34:52Z c08ff8e7affa636b2b0b0769d63c42289691d70cae832bdf97aeff5c931f8f95
267 +v1.8.0-otp-20 2eee2fc6a4c3733537dc95083c4247a1fa723ab1 2020-03-25T22:34:38Z c08ff8e7affa636b2b0b0769d63c42289691d70cae832bdf97aeff5c931f8f95
268 +v1.8.0-otp-21 2eee2fc6a4c3733537dc95083c4247a1fa723ab1 2019-05-15T02:00:31Z
269 +v1.8.0-otp-22 2eee2fc6a4c3733537dc95083c4247a1fa723ab1 2020-03-25T22:33:03Z 40a1ca4092f367b2200612cfa16f0e1bd0c9ae7a1088a51665681acb6031c94a
270 +v1.8.0-rc.0 2b594057567f352bd63f43c6535a901db6d37ed4 2019-05-15T01:22:37Z
271 +v1.8.0-rc.0-otp-20 2b594057567f352bd63f43c6535a901db6d37ed4 2019-05-15T01:22:34Z
272 +v1.8.0-rc.0-otp-21 2b594057567f352bd63f43c6535a901db6d37ed4 2019-05-15T01:16:16Z
273 +v1.8.0-rc.0-otp-22 2b594057567f352bd63f43c6535a901db6d37ed4 2019-05-15T01:08:38Z
274 +v1.8.0-rc.1 32825ebaa0c1f6785dcd30d87f0ade45cd6c20cb 2020-03-25T21:21:56Z 794460fe3531805f0a9d1a3ccbecf07fc13df0702002651d308e1ebb3f1a525c
275 +v1.8.0-rc.1-otp-20 32825ebaa0c1f6785dcd30d87f0ade45cd6c20cb 2020-03-25T22:36:20Z 4743096ed9861d76537c36721c9e198e0efb63536ea05d11cb3c2d50abbacbc6
276 +v1.8.0-rc.1-otp-21 32825ebaa0c1f6785dcd30d87f0ade45cd6c20cb 2020-03-25T22:35:32Z f5defae82816a9dfef9f77be83e8d3d9f1b82b750b44825a1bbd58b1f4224c91
277 +v1.8.0-rc.1-otp-22 32825ebaa0c1f6785dcd30d87f0ade45cd6c20cb 2020-03-25T22:34:43Z 225ed2da0b5d0d6f8a6ac908d06f1e5c7000bdd32cc7e896fa44bd0fdf9939c8
278 +v1.8.1 511a51ba8925daa025d3c2fd410e170c1b651013 2020-03-25T22:36:31Z 36ab446e5db70a7d26bffc065054b4c70f3640c4b8b0387b170543c2cd769cd1
279 +v1.8.1-otp-20 511a51ba8925daa025d3c2fd410e170c1b651013 2020-03-25T21:22:02Z d9f62778b673791aa2bfeb50821eac0f949243bdc26287b3bbe2227771d78a0a
280 +v1.8.1-otp-21 511a51ba8925daa025d3c2fd410e170c1b651013 2020-03-25T22:35:35Z 1e145564990957496145884aaed03228c7dc4105473f8bf023f567aedd2191cc
281 +v1.8.1-otp-22 511a51ba8925daa025d3c2fd410e170c1b651013 2020-03-25T22:34:51Z 3a4aaa68928a5768441577eb9c90ccfc217ecee9be9da2456dde074d93fb2eda
282 +v1.8.2 98485daab0a9f3ac2d7809d38f5e57cd73cb22ac 2020-03-25T22:36:35Z c77e0ac5ab0ba5cff5f573cdf711ed9106db788317ab16cacdcf41a93a795d48
283 +v1.8.2-otp-20 98485daab0a9f3ac2d7809d38f5e57cd73cb22ac 2020-03-25T22:36:28Z c77e0ac5ab0ba5cff5f573cdf711ed9106db788317ab16cacdcf41a93a795d48
284 +v1.8.2-otp-21 98485daab0a9f3ac2d7809d38f5e57cd73cb22ac 2020-03-25T22:35:41Z b406265ae842fe8355244150d06c92e01ab1fdc3e985feb59e9bf13452ac9754
285 +v1.8.2-otp-22 98485daab0a9f3ac2d7809d38f5e57cd73cb22ac 2020-03-25T22:34:56Z 570c7b1ab710b9a44326d7badc4254f6e66ce3111a3802f0a162210144260234
286 +v1.9 762989b39f62e8dc8153f5ea6c71c57693ffc3f3 2020-03-25T22:36:56Z 403db3ad4ae9e27272a06c6c95850507fa34dc2b311447f2190e22fa2c901ded
287 +v1.9-otp-20 762989b39f62e8dc8153f5ea6c71c57693ffc3f3 2020-03-25T22:36:45Z 403db3ad4ae9e27272a06c6c95850507fa34dc2b311447f2190e22fa2c901ded
288 +v1.9-otp-21 762989b39f62e8dc8153f5ea6c71c57693ffc3f3 2020-03-25T21:21:43Z 6d538a3e45b4bee6449d085c53f104a0c9680cb006f15857cd689a2e5e3251d5
289 +v1.9-otp-22 762989b39f62e8dc8153f5ea6c71c57693ffc3f3 2020-03-25T21:20:47Z 80953f1a1cbd8428a3d17042360a0a2c023ea029c2199909df97045f7b962de2
290 +v1.9.0 71c335ac2694d4457ac8f4fefdfc68ae167c8775 2020-03-25T22:37:01Z 74808a0308d64f36946dce470b51615117c9933a4454e52d3e25538f243fcfa3
291 +v1.9.0-otp-20 71c335ac2694d4457ac8f4fefdfc68ae167c8775 2020-03-25T22:36:55Z 74808a0308d64f36946dce470b51615117c9933a4454e52d3e25538f243fcfa3
292 +v1.9.0-otp-21 71c335ac2694d4457ac8f4fefdfc68ae167c8775 2020-03-25T21:21:41Z 59dc26d6691062788ec8e774c941098eaa5f02b4ad3c33502e910e4efaf4ee1e
293 +v1.9.0-otp-22 71c335ac2694d4457ac8f4fefdfc68ae167c8775 2020-03-25T22:35:06Z ddae00c5bca44dd5bacbc4c4200be302c96b63cbad9c4433ea9fa0bba1d0a486
294 +v1.9.0-rc.0 aad7aa4d2255f1c33f2de6525f67cd7e852324d2 2020-03-25T22:37:19Z b6e6026f22a7e590f3b9122f3363a09572f251a288a4e50b9faad63548e81331
295 +v1.9.0-rc.0-otp-20 aad7aa4d2255f1c33f2de6525f67cd7e852324d2 2020-03-25T22:37:12Z b6e6026f22a7e590f3b9122f3363a09572f251a288a4e50b9faad63548e81331
296 +v1.9.0-rc.0-otp-21 aad7aa4d2255f1c33f2de6525f67cd7e852324d2 2020-03-25T22:36:25Z 698b8b34f9fe12ce3fbf1cf06ca455d689ed83fb927ae70f636a058a4ef9e700
297 +v1.9.0-rc.0-otp-22 aad7aa4d2255f1c33f2de6525f67cd7e852324d2 2019-06-04T11:49:17Z
298 +v1.9.1 79388035f5391f0a283a48fba792ae3b4f4b5f21 2020-03-25T22:37:38Z cf13db14a1fd86d6e8824331eca7a2b41674a4ce04fba838877952194f9d02cd
299 +v1.9.1-otp-20 79388035f5391f0a283a48fba792ae3b4f4b5f21 2020-03-25T22:37:31Z cf13db14a1fd86d6e8824331eca7a2b41674a4ce04fba838877952194f9d02cd
300 +v1.9.1-otp-21 79388035f5391f0a283a48fba792ae3b4f4b5f21 2020-03-25T21:22:51Z 93af7d51379858451b90c1efdd859b7c80e0d9c0fc6531cea06e4edffd85605e
301 +v1.9.1-otp-22 79388035f5391f0a283a48fba792ae3b4f4b5f21 2020-03-25T22:35:55Z 3e9d11d583fe60b4e4d7ae23aa4fa70baf41a4d53df4d1be75d9636637f7f699
302 +v1.9.2 ffe7a577cc80f37381dc289c820842d346002364 2020-03-25T21:24:21Z ec94b266ec22e3479126cfca69bd84002671c93c9a9dfe13e018efc5cf090f9e
303 +v1.9.2-otp-20 ffe7a577cc80f37381dc289c820842d346002364 2020-03-25T22:37:45Z 0971bbcfb1759fdcb2b9dd13907c1f3cb521fbd0afbd177b8a236ad2018b669f
304 +v1.9.2-otp-21 ffe7a577cc80f37381dc289c820842d346002364 2020-03-25T22:36:59Z e579d4f46fbc847d4609d7ca1be4ce28ea08c6c46b9113a278540ea89adb31f8
305 +v1.9.2-otp-22 ffe7a577cc80f37381dc289c820842d346002364 2020-03-25T22:36:11Z c2a03b667d9f079558995112ca29adb11bde1eeecd6126ac74bdd4a3c583c547
306 +v1.9.3 5af52898d344fda201e2437319449cdc0242eb31 2020-03-25T22:38:20Z 3f8e1d964e70bbd935b24ee5d06319440b2214ef66c5e6d3007bb1737c7589b2
307 +v1.9.3-otp-20 5af52898d344fda201e2437319449cdc0242eb31 2020-03-25T22:38:13Z 3f8e1d964e70bbd935b24ee5d06319440b2214ef66c5e6d3007bb1737c7589b2
308 +v1.9.3-otp-21 5af52898d344fda201e2437319449cdc0242eb31 2020-03-25T22:37:27Z a67f1826a0ee7a66e8588d72ac50843e68316ab275656dc95e1dcca5515dc612
309 +v1.9.3-otp-22 5af52898d344fda201e2437319449cdc0242eb31 2020-03-25T22:36:42Z 063e93f5de308925aa198343d5fdd65a8ebdff76bf7e8c5f4c0ef76c16f67e4c
310 +v1.9.4 055526057ac9992cc1df87441357c4e56d45235d 2020-03-25T22:38:42Z 46810a6da6e68c4ac408c6e3120d985d87485f62e4afcd62673831d328d9e588
311 +v1.9.4-otp-20 055526057ac9992cc1df87441357c4e56d45235d 2020-03-25T22:38:36Z 46810a6da6e68c4ac408c6e3120d985d87485f62e4afcd62673831d328d9e588
312 +v1.9.4-otp-21 055526057ac9992cc1df87441357c4e56d45235d 2020-03-25T22:37:52Z 1e6c090841c267c4828d68647e020c91067daace9ba05669fd5c3ec315175423
313 +v1.9.4-otp-22 055526057ac9992cc1df87441357c4e56d45235d 2020-03-25T22:37:07Z b5eba5ab892f431a0d914055ee0ba177304e74da0b2af5a657670aa5ce00f10f
added __tests__/setup-elixir.test.js
+18 −0
@@ -0,0 +1,18 @@
1 +const {getElixirVersion} = require('../src/setup-elixir')
2 +
3 +describe('getElixirVersion', () => {
4 + test('actual version parsing', async () => {
5 + const vsn = await getElixirVersion('v1.10.x', '23')
6 + expect(vsn).toEqual(['v1.10.4', '23'])
7 + })
8 +
9 + test('version range parsing', async () => {
10 + const vsn = await getElixirVersion('^v1.10', '23')
11 + expect(vsn).toEqual(['v1.10.4', '23'])
12 + })
13 +
14 + test('pre-release versions', async () => {
15 + const vsn = await getElixirVersion('v1.11.0-rc.0', '23')
16 + expect(vsn).toEqual(['v1.11.0-rc.0', '23'])
17 + })
18 +})
modified dist/.github/workflows/test.yml
+11 −1
@@ -7,7 +7,17 @@ on:
7 7 workflow_dispatch:
8 8
9 9 jobs:
10 test:
10 + unit_test:
11 + runs-on: ubuntu-latest
12 + name: Unit tests
13 + steps:
14 + - uses: actions/checkout@v2
15 + - uses: actions/setup-node@v1
16 + with: {node-version: '12'}
17 + - run: npm ci
18 + - run: npm test
19 +
20 + integration_test:
11 21 runs-on: ubuntu-latest
12 22 name: OTP ${{matrix.pair.otp-version}} / Elixir ${{matrix.pair.elixir-version}}
13 23 strategy:
added dist/builds.txt
+313 −0
@@ -0,0 +1,313 @@
1 +master d25b61db13d94ee83374748581c7bcb8e2dfc0e6 2020-09-16T06:12:57Z a8ca8155a9b4b6ec1d60454f9032a29d4b95afa782984e3ed783c5f242541090
2 +master-otp-21 d25b61db13d94ee83374748581c7bcb8e2dfc0e6 2020-09-16T06:12:48Z a8ca8155a9b4b6ec1d60454f9032a29d4b95afa782984e3ed783c5f242541090
3 +master-otp-22 d25b61db13d94ee83374748581c7bcb8e2dfc0e6 2020-09-16T06:11:25Z 917d5856e50670c8670e60fcbaddd74aa207e7cb60a91fe5f7d62959db1161de
4 +master-otp-23 d25b61db13d94ee83374748581c7bcb8e2dfc0e6 2020-09-16T06:09:48Z 80af5358209cdc3c8321c3852e962957fd3e63a22b1da13f56a3f1571ecb1e7e
5 +v0.12.4 543dfdeac80cfaf3483927c189cf9974f1e361eb 2016-06-02T12:43:53Z
6 +v0.12.5 b07fbcf8b73e9353cc336107050a8aac5fdabd11 2016-06-02T12:42:56Z
7 +v0.13.0 ada53524caa6ea27ffaa1a373f5c86bd6cadb0d5 2016-06-02T12:42:00Z
8 +v0.13.1 c03d42b0ccf38b31dcaef0cb7e9ea8851cb39907 2016-06-02T12:41:00Z
9 +v0.13.2 7a24767137c596a84014a0ed1a8dde64e45f9666 2016-06-02T12:40:00Z
10 +v0.13.3 3c48099718cd718d25527875a407cc842cf72565 2016-06-02T12:39:01Z
11 +v0.14.0 9cff61493e9e3626e8d243dfe8aec07230a7fe73 2016-06-02T12:38:04Z
12 +v0.14.1 22f3a50ebabfefd36be1a8472c8b78257df6affa 2016-03-07T22:22:53Z
13 +v0.14.2 44b04120425c83984c867ee6b06974b7c139ba52 2016-03-07T22:22:53Z
14 +v0.14.3 82535feb90ba1a27ad12b9389d86b11b8311a618 2016-06-02T12:36:35Z
15 +v0.15.0 2f2a52a64874a0a5b6d5c1fab812a80e94d982bc 2016-06-02T12:35:36Z
16 +v0.15.1 a54d9212b89da61ec0dd4227ed24e59f37738fe5 2016-06-02T12:34:37Z
17 +v1.0 9033b217d9721c86d1e73ccd91ceb7c6716124d9 2020-03-25T22:13:41Z 0fccc644156e18ff02c8fe0fa6d3b5ee085b05ecc956ae93151ea938d2d0297b
18 +v1.0-otp-17 9033b217d9721c86d1e73ccd91ceb7c6716124d9 2020-03-25T22:13:35Z 0fccc644156e18ff02c8fe0fa6d3b5ee085b05ecc956ae93151ea938d2d0297b
19 +v1.0-otp-18 9033b217d9721c86d1e73ccd91ceb7c6716124d9 2020-03-25T22:12:48Z a3d53f5001261eca9c976b911f3ece7b0d32ec45029975781c1b67f0511eb216
20 +v1.0.0 52ff7e96867c027745d29f5d3feb77f546f22c4f 2017-06-26T04:08:29Z
21 +v1.0.0-otp-17 52ff7e96867c027745d29f5d3feb77f546f22c4f 2017-06-26T04:08:31Z
22 +v1.0.0-rc1 5b4497fa6b2da7831418cf1307248dc73b4ee34b 2017-06-26T04:12:30Z
23 +v1.0.0-rc1-otp-17 5b4497fa6b2da7831418cf1307248dc73b4ee34b 2017-06-26T04:12:32Z
24 +v1.0.0-rc2 8931f345826b71056ab3df0fba7dbb1b9c3bce25 2017-06-26T04:10:30Z
25 +v1.0.0-rc2-otp-17 8931f345826b71056ab3df0fba7dbb1b9c3bce25 2017-06-26T04:10:32Z
26 +v1.0.1 89460154bb1ab3faa9a7aad4a1edc621cc35d1de 2017-06-26T04:06:28Z
27 +v1.0.1-otp-17 89460154bb1ab3faa9a7aad4a1edc621cc35d1de 2017-06-26T04:06:30Z
28 +v1.0.2 34df8176385200d483ab483a973c498ffa62e580 2017-06-26T04:04:26Z
29 +v1.0.2-otp-17 34df8176385200d483ab483a973c498ffa62e580 2017-06-26T04:04:28Z
30 +v1.0.3 307675284cfde2e2e3ff4b868ff5c2253dac3936 2017-06-26T04:02:25Z
31 +v1.0.3-otp-17 307675284cfde2e2e3ff4b868ff5c2253dac3936 2017-06-26T04:02:27Z
32 +v1.0.4 e02d7bf913f3e5ea8c9e49648e69324ec5c65919 2020-03-25T22:13:16Z 64aa83a5f82a36f451e692f2abb080756056b141e45a088546610182916aab1e
33 +v1.0.4-otp-17 e02d7bf913f3e5ea8c9e49648e69324ec5c65919 2020-03-25T22:13:10Z 64aa83a5f82a36f451e692f2abb080756056b141e45a088546610182916aab1e
34 +v1.0.5 3eb938a0ba7db5c6cc13d390e6242f66fdc9ef00 2020-03-25T22:13:18Z 7fab3ebec908087824c94e9a9d2606aa83793d98737a5389e737aad71d1b6d5b
35 +v1.0.5-otp-17 3eb938a0ba7db5c6cc13d390e6242f66fdc9ef00 2020-03-25T21:25:52Z fb980bd05a63a3d419fc56235c52dbef96bcd91b559da523a12f92e352d49719
36 +v1.0.5-otp-18 3eb938a0ba7db5c6cc13d390e6242f66fdc9ef00 2018-11-25T23:13:38Z
37 +v1.1 5591ab2dffeb8df448728dd2e712c416ac1a07ca 2020-03-25T22:14:09Z 085c6bfbce870870741cbdbf4917e3785b54bd804749955052d8875857847652
38 +v1.1-otp-17 5591ab2dffeb8df448728dd2e712c416ac1a07ca 2020-03-25T22:14:03Z 085c6bfbce870870741cbdbf4917e3785b54bd804749955052d8875857847652
39 +v1.1-otp-18 5591ab2dffeb8df448728dd2e712c416ac1a07ca 2020-03-25T21:25:40Z 3989ccea818ce8da9d355f9b3080780cd1c0fc03b51a2d0bb47673250bae4504
40 +v1.1.0 f2a9c7016633ca63541a8160c63a53eb7edbccdb 2020-03-25T21:27:07Z de44f8b3b3969d2fd280a50f4f96a8f2b7249037a696d6c2214d50b4e3b9adb9
41 +v1.1.0-otp-17 f2a9c7016633ca63541a8160c63a53eb7edbccdb 2020-03-25T22:14:20Z a0b5ff7c507881f6557c86686574c046b5bd67cddf2fedfc82cd5d9c8176ed0b
42 +v1.1.0-otp-18 f2a9c7016633ca63541a8160c63a53eb7edbccdb 2020-03-25T22:13:27Z e767678a166e0799792321073f53ac9655d120e8fa0a5a789af6832356c53755
43 +v1.1.0-rc.0 0e3c06b03149022b980e69872003d401c4788fea 2020-03-25T21:27:09Z 205c018fd2b0a4ebd4fa00a43b68cf2222aba43ab06fc07eeda98c0058a3d6d6
44 +v1.1.0-rc.0-otp-17 0e3c06b03149022b980e69872003d401c4788fea 2020-03-25T22:14:30Z 9a5674bfc64bc7236436c097d99aafce02c83ec926d58854a1f175284f271648
45 +v1.1.0-rc.0-otp-18 0e3c06b03149022b980e69872003d401c4788fea 2020-03-25T22:13:38Z 81a3be6e2711a66c90676ad0029ee305430e7c9384901857a1ec9047aea30235
46 +v1.1.1 139d2eac5998259379862ff6ed2a5287f7de4ea6 2020-03-25T22:14:44Z 61c3ebc971aecfe8624ff819ab7b2e7a7802a867f2ec5407c9827d879521b866
47 +v1.1.1-otp-17 139d2eac5998259379862ff6ed2a5287f7de4ea6 2020-03-25T22:14:38Z 61c3ebc971aecfe8624ff819ab7b2e7a7802a867f2ec5407c9827d879521b866
48 +v1.1.1-otp-18 139d2eac5998259379862ff6ed2a5287f7de4ea6 2020-03-25T22:13:44Z bdfa8f86fc0ca296c045b67d6c7d9a7b25f3dddcb2388c066dddfe03e231a0aa
49 +v1.10 8731ef03d97a8febcaa272a85efe1656a797892b 2020-07-14T10:41:39Z 4de78cc0d7ae93146912a6866070a19caddb18ed5766babf50432de05f1f670c
50 +v1.10-otp-21 8731ef03d97a8febcaa272a85efe1656a797892b 2020-07-14T10:41:34Z 4de78cc0d7ae93146912a6866070a19caddb18ed5766babf50432de05f1f670c
51 +v1.10-otp-22 8731ef03d97a8febcaa272a85efe1656a797892b 2020-07-14T10:40:30Z 53bae3f6816383278ec2b85324f5c55df0d3e9c9ac260e9d8f7fc18e184e6e23
52 +v1.10-otp-23 8731ef03d97a8febcaa272a85efe1656a797892b 2020-07-14T10:39:13Z 17785f8d823baca46daec4a1c61dc846eee86fc89497b50777d819dd54ff5ac5
53 +v1.10.0 5bd7a90864417e7be9483002cfa0e543d265b71d 2020-03-25T22:15:30Z 15e0f608cde3757a7a2e44f3683dd3ec5f184cd76cfa43366467f9d3556870ce
54 +v1.10.0-otp-21 5bd7a90864417e7be9483002cfa0e543d265b71d 2020-03-25T22:15:23Z 15e0f608cde3757a7a2e44f3683dd3ec5f184cd76cfa43366467f9d3556870ce
55 +v1.10.0-otp-22 5bd7a90864417e7be9483002cfa0e543d265b71d 2020-03-25T22:14:28Z b0c1f9bcddba50dc39e63b16e2df38a0fef74995d29bc47084ffb6ad5bd7b533
56 +v1.10.0-rc.0 105770cfa0ac0591c1fecca17f2221e0ac6af051 2020-03-25T22:16:49Z 8e6aec5f0c2bcf8c08451af20cfc0e61e0e484561e68a0e5f42eb8d6c99727d1
57 +v1.10.0-rc.0-otp-21 105770cfa0ac0591c1fecca17f2221e0ac6af051 2020-03-25T22:16:31Z 8e6aec5f0c2bcf8c08451af20cfc0e61e0e484561e68a0e5f42eb8d6c99727d1
58 +v1.10.0-rc.0-otp-22 105770cfa0ac0591c1fecca17f2221e0ac6af051 2020-03-25T22:15:26Z 3e6d407075290902b220c18726da4a785623e57dee620f414a8cefead34e1c01
59 +v1.10.1 51c95b60004d3d9d297fff23f576bdd97c931afd 2020-03-25T22:16:45Z 70adaff3b66377251aa8687087fa589981336371dd80d134e57abc39b6788a7c
60 +v1.10.1-otp-21 51c95b60004d3d9d297fff23f576bdd97c931afd 2020-03-25T21:29:16Z ee33314dad3ab8be426bcc2c77eaff7713fe03306b2d92b53dc0618d29a82ee7
61 +v1.10.1-otp-22 51c95b60004d3d9d297fff23f576bdd97c931afd 2020-03-25T22:15:35Z 8aba1324a382eded4dc614fad5d21f9af63d46a0f60b0834369868fa10b3402f
62 +v1.10.2 07450832e7fbc902bfdee124adda1b5a0f6b689d 2020-03-25T22:17:19Z dd23b5b2f78860de341b7fbeae0f4e8b681dca971036e1546ba86d04852b9097
63 +v1.10.2-otp-21 07450832e7fbc902bfdee124adda1b5a0f6b689d 2020-03-25T22:17:06Z dd23b5b2f78860de341b7fbeae0f4e8b681dca971036e1546ba86d04852b9097
64 +v1.10.2-otp-22 07450832e7fbc902bfdee124adda1b5a0f6b689d 2020-03-25T22:16:15Z 58616d0a492f9375d6e892200bf3d7618e5021a7a639620595b570a52973eac1
65 +v1.10.3 c88ecdec1655b04f88e3caef22f050bb85740e4c 2020-05-13T18:09:54Z c9b6ebc81bed67be4eeac420b3d4c8d727f69caf23103ce65d9d0795eab50aec
66 +v1.10.3-otp-21 c88ecdec1655b04f88e3caef22f050bb85740e4c 2020-05-13T18:09:48Z c9b6ebc81bed67be4eeac420b3d4c8d727f69caf23103ce65d9d0795eab50aec
67 +v1.10.3-otp-22 c88ecdec1655b04f88e3caef22f050bb85740e4c 2020-05-13T18:09:03Z db294219b295b1b24e7f7b5f8a133851f84f3eb175f73a7f43dbfa55e05af3fb
68 +v1.10.3-otp-23 c88ecdec1655b04f88e3caef22f050bb85740e4c 2020-05-13T18:08:09Z ef567be0c939211a21843a39dfdec3f870328e3ef9fb2695c0aa8a2d37b50d96
69 +v1.10.4 1145dc01680aab7094f8a6dbd38b65185e14adb4 2020-07-05T12:01:41Z e780a224631e029b3eee675ef251d01fc0f29bf550027cd0e93c2dbeeb8f4da8
70 +v1.10.4-otp-21 1145dc01680aab7094f8a6dbd38b65185e14adb4 2020-07-05T12:01:36Z e780a224631e029b3eee675ef251d01fc0f29bf550027cd0e93c2dbeeb8f4da8
71 +v1.10.4-otp-22 1145dc01680aab7094f8a6dbd38b65185e14adb4 2020-07-05T12:00:35Z ab49b0e07cac98cf8e73168be359b6ec3e6e7f6357be1407e31d7d823ca9e97c
72 +v1.10.4-otp-23 1145dc01680aab7094f8a6dbd38b65185e14adb4 2020-07-05T11:59:26Z ebe895088bdfdf6d156f090f3ec4c939265ce2ebe3868886832ddeb7f8f3aba1
73 +v1.11 57abca4c1687c77781785afef488d24cd945fa37 2020-09-14T22:27:05Z 20bc4ecf1fb7256f16081abc8c05a25b7fdebc89e7c6769e9fb80bee2f39a621
74 +v1.11-otp-21 57abca4c1687c77781785afef488d24cd945fa37 2020-09-14T22:26:58Z 20bc4ecf1fb7256f16081abc8c05a25b7fdebc89e7c6769e9fb80bee2f39a621
75 +v1.11-otp-22 57abca4c1687c77781785afef488d24cd945fa37 2020-09-14T22:25:35Z 4b5d7096f3a83ce9ee267c8f68f9d706da903958a5bf75a2c23f640caa05fe31
76 +v1.11-otp-23 57abca4c1687c77781785afef488d24cd945fa37 2020-09-14T22:24:03Z 7e2480c562ea3d7a15b82985b114668cdd8dbb8e00e819070a41c45ac79cd4a7
77 +v1.11.0-rc.0 48cee5aaa54fad593c5aca940ab3dd330652eab8 2020-09-14T10:57:02Z ff64bb368e07ba6b6c4434c36b8de89a4fbfac70e01a1e087c48a4e8eddf8b3a
78 +v1.11.0-rc.0-otp-21 48cee5aaa54fad593c5aca940ab3dd330652eab8 2020-09-14T10:56:53Z ff64bb368e07ba6b6c4434c36b8de89a4fbfac70e01a1e087c48a4e8eddf8b3a
79 +v1.11.0-rc.0-otp-22 48cee5aaa54fad593c5aca940ab3dd330652eab8 2020-09-14T10:55:50Z 6874ed67a30ec4e4ba8d9332d3833a0f0d68ebcd4fe3cd6e5992741384c888a4
80 +v1.11.0-rc.0-otp-23 48cee5aaa54fad593c5aca940ab3dd330652eab8 2020-09-14T10:54:36Z 171229bade46586771d05a18e489002d57cbe7b9a41640c3802ca07f5bff87d6
81 +v1.2 9c91d2cc91fa2ee2ceb88075e69e5eb18bbb1af8 2020-03-25T22:16:42Z 9bc461faad6f92f10f09e5d3b61b216dc4b28122cdae3a28b3bbfac8a693160f
82 +v1.2-otp-18 9c91d2cc91fa2ee2ceb88075e69e5eb18bbb1af8 2020-03-25T22:16:36Z 9bc461faad6f92f10f09e5d3b61b216dc4b28122cdae3a28b3bbfac8a693160f
83 +v1.2-otp-19 9c91d2cc91fa2ee2ceb88075e69e5eb18bbb1af8 2020-03-25T21:28:02Z b2d2fb4fa365d848ee6c8fabe11b72376a57bfeb9d2fc3c0067ce3e7c0a94c88
84 +v1.2.0 b1344724b695a9a474d73d4633c5a151f1a7d61d 2020-03-25T22:16:11Z 44f2a639ed3ffbae7489c4e229370b205014c9495a674d2bda23463a802de49d
85 +v1.2.0-otp-18 b1344724b695a9a474d73d4633c5a151f1a7d61d 2020-03-25T22:16:04Z 44f2a639ed3ffbae7489c4e229370b205014c9495a674d2bda23463a802de49d
86 +v1.2.0-rc.0 a2860b32a3cc8f543406b582fc583185c8c31e5c 2017-06-26T03:35:19Z
87 +v1.2.0-rc.0-otp-18 a2860b32a3cc8f543406b582fc583185c8c31e5c 2017-06-26T03:36:45Z
88 +v1.2.0-rc.1 211a1299cc033debf9a00fc5ac5f4d4e1eb4d6a7 2017-06-26T03:32:52Z
89 +v1.2.0-rc.1-otp-18 211a1299cc033debf9a00fc5ac5f4d4e1eb4d6a7 2017-06-26T03:34:19Z
90 +v1.2.1 a3d88dc406ca9642bcabf375db7f74f2cc6a751d 2020-03-25T22:16:38Z fc9d9c833d5cbcb49dba0a5d567c40c27bd9c39478f3712c0a5e738b96e4b53a
91 +v1.2.1-otp-18 a3d88dc406ca9642bcabf375db7f74f2cc6a751d 2018-11-25T23:39:21Z
92 +v1.2.2 9decf4c78a911bc1375891bb65fbf2e50fcedeb8 2020-03-25T22:17:12Z 8f0010f5924d5e8d1e42e907c85e662a7d0c41d33d92cf2c0c7c40b5d5190e44
93 +v1.2.2-otp-18 9decf4c78a911bc1375891bb65fbf2e50fcedeb8 2020-03-25T21:29:41Z 6699e120159a17c7e06e2ad4b5ce3fb6741d68cf43c9153c51e3ef00b3b1cb58
94 +v1.2.3 737ac62926db7a692e2fe67c27b696cfd0866674 2020-03-25T22:17:23Z 7513357020d13813ac09f1b4abaf825df62936f95e8ea33224a9719b88423bb7
95 +v1.2.3-otp-18 737ac62926db7a692e2fe67c27b696cfd0866674 2020-03-25T22:17:17Z 7513357020d13813ac09f1b4abaf825df62936f95e8ea33224a9719b88423bb7
96 +v1.2.4 17e8dbbf16c08dff0ded22c37ae80a37f99ff99a 2020-03-25T22:17:34Z 485cf049c609a33dd3f7f49842ea1d23b6ee41170e7e148a65feded33e4ec3c6
97 +v1.2.4-otp-18 17e8dbbf16c08dff0ded22c37ae80a37f99ff99a 2020-03-25T22:17:27Z 485cf049c609a33dd3f7f49842ea1d23b6ee41170e7e148a65feded33e4ec3c6
98 +v1.2.5 e5374cf5d3beb510a0fdeddd0f8b89e8e26445ef 2020-03-25T22:17:43Z 1e583f13c332082e58b1b9c4d183c161c95623924606d1673dd260d9d52ecef0
99 +v1.2.5-otp-18 e5374cf5d3beb510a0fdeddd0f8b89e8e26445ef 2020-03-25T22:17:37Z 1e583f13c332082e58b1b9c4d183c161c95623924606d1673dd260d9d52ecef0
100 +v1.2.6 3dbfb92860fb24f83c92e1f1b67f48554fb211d6 2020-03-25T22:18:06Z a9a29ba0b872be92aee79f221bd5cfcccbe242edf298df04940004b211b75332
101 +v1.2.6-otp-18 3dbfb92860fb24f83c92e1f1b67f48554fb211d6 2020-03-25T22:17:59Z a9a29ba0b872be92aee79f221bd5cfcccbe242edf298df04940004b211b75332
102 +v1.3 bbf5e2bc7bc3179588bab5e87ad740ff5790d72e 2020-03-25T22:19:45Z 971b9b3ec0fe6aba8811f675bfb44f13b1be97439e2b959dba3941dbf6b04ba4
103 +v1.3-otp-18 bbf5e2bc7bc3179588bab5e87ad740ff5790d72e 2020-03-25T22:19:38Z 971b9b3ec0fe6aba8811f675bfb44f13b1be97439e2b959dba3941dbf6b04ba4
104 +v1.3-otp-19 bbf5e2bc7bc3179588bab5e87ad740ff5790d72e 2020-03-25T22:18:42Z 3b1eb45ad96b573db97759931e120f78e1ac35983da14bc1ace8e9e4821e6a7b
105 +v1.3.0 416bf41a032280b988d537bd4635beecc3aeed29 2020-03-25T22:20:09Z 10f3755e1575b85e364db5120d53ac72d1e7af66cc86d46874a035d142ff14b5
106 +v1.3.0-otp-18 416bf41a032280b988d537bd4635beecc3aeed29 2020-03-25T22:20:02Z 10f3755e1575b85e364db5120d53ac72d1e7af66cc86d46874a035d142ff14b5
107 +v1.3.0-otp-19 416bf41a032280b988d537bd4635beecc3aeed29 2020-03-25T21:41:57Z 0dde36e034c35af1b3d51db86616800619f6e455d3c5410dd7daa36ec23f0972
108 +v1.3.0-rc.0 7881123953300152650e83e4ba6e56e4d6895d72 2020-03-25T22:20:16Z 4f8a004a6e6f97d8a27044ff45f0a149728fbb6d6c839e6af4122bb3b2bf866e
109 +v1.3.0-rc.0-otp-18 7881123953300152650e83e4ba6e56e4d6895d72 2020-03-25T21:32:26Z beacc2e95f1d4a5af290bbeef031f328fb0df4dabd95215fe1df9aebcd16a47b
110 +v1.3.0-rc.0-otp-19 7881123953300152650e83e4ba6e56e4d6895d72 2020-03-25T22:18:50Z b5b32c2c920038f50a8037d51722f83364026cdfb4a14e6c6c0f7add18e55878
111 +v1.3.0-rc.1 9eb47818abb00f207e442ffe06eef5a28155d371 2020-03-25T22:19:57Z 583b9f1bbfc650784fcd9f9a2930a5ea077a05262112aad2c983ef25d390c428
112 +v1.3.0-rc.1-otp-18 9eb47818abb00f207e442ffe06eef5a28155d371 2020-03-25T22:19:50Z 583b9f1bbfc650784fcd9f9a2930a5ea077a05262112aad2c983ef25d390c428
113 +v1.3.0-rc.1-otp-19 9eb47818abb00f207e442ffe06eef5a28155d371 2020-03-25T22:18:52Z 3d9a9441319c1cbe749833fce2ff5d057676ecebb98d371c1c4a1bf9cad4ad46
114 +v1.3.1 01a1acd27b2b742a480dbc2210177f45982cc77e 2020-03-25T22:20:24Z 75b8c766c25873ab49e217bfa74b680c0f1630b28ad59b6cddca29fe549b87da
115 +v1.3.1-otp-18 01a1acd27b2b742a480dbc2210177f45982cc77e 2020-03-25T22:20:18Z 75b8c766c25873ab49e217bfa74b680c0f1630b28ad59b6cddca29fe549b87da
116 +v1.3.1-otp-19 01a1acd27b2b742a480dbc2210177f45982cc77e 2020-03-25T22:19:17Z e40938de58f10ad2b436eaae5725239ae06bd0d8416aa05d58b3970603488fd3
117 +v1.3.2 56f1037973d50721206324db48cf86509779c862 2020-03-25T22:20:27Z 32b7542ab3fffd51422bc44721f878e82a23ec6d11ae798805e1c52717f8566a
118 +v1.3.2-otp-18 56f1037973d50721206324db48cf86509779c862 2020-03-25T22:20:20Z 32b7542ab3fffd51422bc44721f878e82a23ec6d11ae798805e1c52717f8566a
119 +v1.3.2-otp-19 56f1037973d50721206324db48cf86509779c862 2020-03-25T22:19:21Z 3a0095634b1ba86156c0cec4d07eacebad9185eb57507a6ecf3e4a94769cf685
120 +v1.3.3 0caa75760b14e7392a9f2d7aa08218ba53c8c76a 2020-03-25T22:20:43Z a68a1fdec897290d816cb265fe66588e8345f23f53254d954be266edad4e0c59
121 +v1.3.3-otp-18 0caa75760b14e7392a9f2d7aa08218ba53c8c76a 2020-03-25T21:33:07Z 535fc67015404e21326f9aa55f8866a416ae6a5cfe65dc9ddd2885d8abdde3d2
122 +v1.3.3-otp-19 0caa75760b14e7392a9f2d7aa08218ba53c8c76a 2020-03-25T22:19:29Z 3ae582c46d95c22c724df9a4f617684c277737d8ac82f154ce718baed20726bd
123 +v1.3.4 87710cd49521fc396f3f04fa8615f05e7f57ecc0 2020-03-25T22:20:46Z 1c3048f9de5f645c4f393201a15c403924886dc18690c36abbeb48aa342cc952
124 +v1.3.4-otp-18 87710cd49521fc396f3f04fa8615f05e7f57ecc0 2020-03-25T22:20:37Z 1c3048f9de5f645c4f393201a15c403924886dc18690c36abbeb48aa342cc952
125 +v1.3.4-otp-19 87710cd49521fc396f3f04fa8615f05e7f57ecc0 2020-03-25T22:19:40Z fc55e25dae9eb99db14bcf73952274db99467cbde17d7084232e4cc444e9e57d
126 +v1.4 5131c6be9d1799eb32567afa95290313833afab4 2020-03-25T22:22:08Z 73b9d87a2d83a447ee13f78469fa0cb477691b5a7c580b6b1e8543ded0d74740
127 +v1.4-otp-18 5131c6be9d1799eb32567afa95290313833afab4 2020-03-25T22:22:02Z 73b9d87a2d83a447ee13f78469fa0cb477691b5a7c580b6b1e8543ded0d74740
128 +v1.4-otp-19 5131c6be9d1799eb32567afa95290313833afab4 2020-03-25T22:21:01Z 30da8426d030698c54ce18ab7388224eee9873ea05d84314ca07b8e9a20ce98c
129 +v1.4-otp-20 5131c6be9d1799eb32567afa95290313833afab4 2020-03-25T22:19:59Z 3aa8e74da72590a059a106dbbc0ecfa8cdcaae0de947296a2758d29d6898334c
130 +v1.4.0 f045705ac559290866abda5f9daeac4b701b6e7f 2020-03-25T22:21:20Z 3b215e4caa0346086e05bd687b8e6d24429cee2f33738be5acbce34eb42ee961
131 +v1.4.0-otp-18 f045705ac559290866abda5f9daeac4b701b6e7f 2020-03-25T22:21:14Z 3b215e4caa0346086e05bd687b8e6d24429cee2f33738be5acbce34eb42ee961
132 +v1.4.0-otp-19 f045705ac559290866abda5f9daeac4b701b6e7f 2020-03-25T21:33:02Z c6a69b98a6a337a778888a2ca525cbc68e1323e2eee9a66126d3703df7a3cb69
133 +v1.4.0-rc.0 fbfb41dfeedf14ccc4bd80c3c366382c8a2fcb9e 2020-03-25T21:35:09Z 73e665879a38ebe9ac2f9e01151d824fabb346c972153c55c6a51a15d77dfd0a
134 +v1.4.0-rc.0-otp-18 fbfb41dfeedf14ccc4bd80c3c366382c8a2fcb9e 2018-11-26T00:18:02Z
135 +v1.4.0-rc.0-otp-19 fbfb41dfeedf14ccc4bd80c3c366382c8a2fcb9e 2020-03-25T22:22:35Z 6465652089273611d4b30956cf805368dc7f98251ff97f2f4260aa92f5559040
136 +v1.4.0-rc.0-otp-20 fbfb41dfeedf14ccc4bd80c3c366382c8a2fcb9e 2020-03-25T22:21:44Z d19b14c98892750c03274862e4ae9bacc4e5541762acecb069e1e2b3998bec61
137 +v1.4.0-rc.1 16a14c1f6d25e4b51e78fdcacf4f824966a17eb5 2020-03-25T22:24:04Z c7f8f78eb2e61fc664b3827c112b0019a26415147bf46942b048647b37f164e1
138 +v1.4.0-rc.1-otp-18 16a14c1f6d25e4b51e78fdcacf4f824966a17eb5 2020-03-25T22:23:57Z c7f8f78eb2e61fc664b3827c112b0019a26415147bf46942b048647b37f164e1
139 +v1.4.0-rc.1-otp-19 16a14c1f6d25e4b51e78fdcacf4f824966a17eb5 2020-03-25T22:22:58Z 709696973ae7f81a3cdc4fd6438981f67988ef26fe1481dc63fda29985d6a66f
140 +v1.4.0-rc.1-otp-20 16a14c1f6d25e4b51e78fdcacf4f824966a17eb5 2020-03-25T22:21:58Z d847e27bdbbd6ecff6f6e94d9087b31a57eaf2822a38b6af87e81beea3e9b1de
141 +v1.4.1 0397a46bb762923a91353e1c957ae2443d50dc05 2020-03-25T22:23:21Z 9398a8fbd4c64bbde76cbc179f2837ba6815a9d60fdca49fe43cd86c70ed0fcb
142 +v1.4.1-otp-18 0397a46bb762923a91353e1c957ae2443d50dc05 2020-03-25T22:23:14Z 9398a8fbd4c64bbde76cbc179f2837ba6815a9d60fdca49fe43cd86c70ed0fcb
143 +v1.4.1-otp-19 0397a46bb762923a91353e1c957ae2443d50dc05 2020-03-25T22:22:15Z fc54fa404028f712a135db14d9cf8d6bcec505cae020dc1c60db92f22b43a93f
144 +v1.4.2 27fdc68ff41a75b16778f2ed8d4d6605764e31b6 2020-03-25T22:24:08Z bb6b153387177a6e440b385420ce20e6017d05170fff681f0d23c7fba82fca1b
145 +v1.4.2-otp-18 27fdc68ff41a75b16778f2ed8d4d6605764e31b6 2020-03-25T22:24:02Z bb6b153387177a6e440b385420ce20e6017d05170fff681f0d23c7fba82fca1b
146 +v1.4.2-otp-19 27fdc68ff41a75b16778f2ed8d4d6605764e31b6 2020-03-25T22:22:42Z 88a6afd1d9c7d0a2c60e2c24be439942568f6ab2a4bc507fd3831865188efe8d
147 +v1.4.3 b2b974dc71e2d98c3179c08a9356835f68442a80 2020-03-25T22:23:39Z b2313b3e4efb2841d2c3c7cd34fc03cae85366ca9e7a2f56e4eca836811f2177
148 +v1.4.3-otp-18 b2b974dc71e2d98c3179c08a9356835f68442a80 2020-03-25T22:23:33Z b2313b3e4efb2841d2c3c7cd34fc03cae85366ca9e7a2f56e4eca836811f2177
149 +v1.4.3-otp-19 b2b974dc71e2d98c3179c08a9356835f68442a80 2020-03-25T22:22:31Z da40d1f7aaa389b6366ad3fbd0fc622caa70081f30b0dcbc5820eb57fd3e13ea
150 +v1.4.4 867da6f876c48279823a41a33030c95ef37379b2 2020-03-25T22:23:43Z c1f13c7b6f46bb82928a1545a2980c93f4f32c5065d172b18d978913e39aec57
151 +v1.4.4-otp-18 867da6f876c48279823a41a33030c95ef37379b2 2020-03-25T22:23:36Z c1f13c7b6f46bb82928a1545a2980c93f4f32c5065d172b18d978913e39aec57
152 +v1.4.4-otp-19 867da6f876c48279823a41a33030c95ef37379b2 2019-01-11T13:10:55Z
153 +v1.4.5 e25c37108a5294b205ad0abe558cb82f19d342c5 2020-03-25T22:24:53Z a52e8962a2856887e8401ea3868c35f9811d2584bebe0e1e2243242f5bf208ee
154 +v1.4.5-otp-18 e25c37108a5294b205ad0abe558cb82f19d342c5 2020-03-25T22:24:46Z a52e8962a2856887e8401ea3868c35f9811d2584bebe0e1e2243242f5bf208ee
155 +v1.4.5-otp-19 e25c37108a5294b205ad0abe558cb82f19d342c5 2020-03-25T22:23:46Z 16351a7334cfb840b5be0be854c95c3092425463da7bd97509dfc0d964d3ece8
156 +v1.4.5-otp-20 e25c37108a5294b205ad0abe558cb82f19d342c5 2020-03-25T22:22:45Z 8b3c151e66b2ba79786aad6dd83a2b6f846cf6451e361847f0604bbb31a11db3
157 +v1.5 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T22:24:25Z 6a1e40830b90883395c84abc7f98a41da33d70e89da841256fdf568c3afcaf42
158 +v1.5-otp-18 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T21:36:44Z f706fbb55eb5d2dde87d71a69f82176f8d6876e0a3b7471f2c28839169b98cf9
159 +v1.5-otp-19 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T22:23:30Z 12c498b581f6cec636d8994195548ac9730aefde3ef9b1d7febc06ffe24a2430
160 +v1.5-otp-20 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T21:35:04Z f7347176a029cae438d87c87117af3862ce9175514eb69a468ade4bbe37c6e92
161 +v1.5.0 117b2bf614d4b74281ff6dfe0e0e95caf50ff100 2020-03-25T22:25:26Z 9e1b22e464e70f7d614b91d002d37dbabec2bd1a0ff7ced0578435d69f5b695f
162 +v1.5.0-otp-18 117b2bf614d4b74281ff6dfe0e0e95caf50ff100 2020-03-25T21:38:02Z ad69e965bef4d98282a17551cd33350ca0d189c0c35b7ea3f78c9dd36fb221aa
163 +v1.5.0-otp-19 117b2bf614d4b74281ff6dfe0e0e95caf50ff100 2020-03-25T22:24:16Z 5829820f88b2af596c2ed810dbe12cbe02fd5445052ac8338cf2855085eeaa15
164 +v1.5.0-otp-20 117b2bf614d4b74281ff6dfe0e0e95caf50ff100 2020-03-25T22:23:18Z ca38567d4468fc5463105c87e79886a458404596fad06cf60d9b41ab63b8ae10
165 +v1.5.0-rc.0 fa0de77862f10496f8285079c7cdc367ead7c8c8 2020-03-25T22:26:37Z 3cc7f60e1e1514de2a39b91af1605fc15017a170a1f56649a77cba08792e0693
166 +v1.5.0-rc.0-otp-18 fa0de77862f10496f8285079c7cdc367ead7c8c8 2020-03-25T21:38:42Z 8fded176eed47bd6787280f68fe66c57ab34f441cf9d05b1015f605026af133e
167 +v1.5.0-rc.0-otp-19 fa0de77862f10496f8285079c7cdc367ead7c8c8 2020-03-25T22:25:25Z ca09faf48cf590bc128fd2a3cb1ea40a53cad9d8f242be7f3ba684b536de86ef
168 +v1.5.0-rc.0-otp-20 fa0de77862f10496f8285079c7cdc367ead7c8c8 2020-03-25T22:24:19Z 94dc670c3989970976c951b554d78b235c8d16d434faf398147788c661c3481d
169 +v1.5.0-rc.1 704fb9599b522bb530efdc5bb527d005e0c8ed68 2020-03-25T21:13:57Z a93294558d96225d89adad8140195e2d037671bbba268f7232cbf9a0c262a75a
170 +v1.5.0-rc.1-otp-18 704fb9599b522bb530efdc5bb527d005e0c8ed68 2020-03-25T21:13:51Z a93294558d96225d89adad8140195e2d037671bbba268f7232cbf9a0c262a75a
171 +v1.5.0-rc.1-otp-19 704fb9599b522bb530efdc5bb527d005e0c8ed68 2020-03-25T22:26:30Z 3a77c443c52bad797b527a5042a11800f95204efe6f84ec3d580ea15836db06d
172 +v1.5.0-rc.1-otp-20 704fb9599b522bb530efdc5bb527d005e0c8ed68 2020-03-25T22:25:17Z 634c5939d546639e1e7535555b40eea9181fed035bc3276f6eb8b7978e7776bb
173 +v1.5.0-rc.2 e5208421b32f197379b26c55bfde22651bea5e1c 2018-11-26T02:09:46Z
174 +v1.5.0-rc.2-otp-18 e5208421b32f197379b26c55bfde22651bea5e1c 2020-03-25T22:27:49Z 4a8f1ac1160d9b0b7d664e23d5beeb1a8fc763ec23b4c50b8ae26bea7ecf053f
175 +v1.5.0-rc.2-otp-19 e5208421b32f197379b26c55bfde22651bea5e1c 2020-03-25T21:12:20Z e813dd6ec6cb5fdd8047e4c663903e32cc36eda50d6f7259596477f41390df41
176 +v1.5.0-rc.2-otp-20 e5208421b32f197379b26c55bfde22651bea5e1c 2020-03-25T22:25:44Z 5cbab05adcf1953bbd6b56f56c1ba0ca81a4697bcc93d488c8e6b2d6e638cdf9
177 +v1.5.1 1406d853e0e6515007696f871d0a9e2c023da6da 2020-03-25T22:27:58Z cae0fcae269ac84e5e67e522dc0bdd857a660fa3e46733a198d9ded465e4fba8
178 +v1.5.1-otp-18 1406d853e0e6515007696f871d0a9e2c023da6da 2020-03-25T22:27:51Z cae0fcae269ac84e5e67e522dc0bdd857a660fa3e46733a198d9ded465e4fba8
179 +v1.5.1-otp-19 1406d853e0e6515007696f871d0a9e2c023da6da 2020-03-25T22:26:47Z 8109aae79aa6fc175ecf45283309b54697b3d050c38d14250f939b4dcae08696
180 +v1.5.1-otp-20 1406d853e0e6515007696f871d0a9e2c023da6da 2020-03-25T21:10:55Z b2af6a669a7d62d9e29ca5057393de5531597286812335684c6a826b9b628563
181 +v1.5.2 05418eaa4bf4fa8473900741252d93d76ed3307b 2020-03-25T22:27:19Z 6376a037205f9de43a520335be42c2475d3576f3da944b998a24082eea359054
182 +v1.5.2-otp-18 05418eaa4bf4fa8473900741252d93d76ed3307b 2020-03-25T22:27:12Z 6376a037205f9de43a520335be42c2475d3576f3da944b998a24082eea359054
183 +v1.5.2-otp-19 05418eaa4bf4fa8473900741252d93d76ed3307b 2020-03-25T22:26:22Z 1f72b8efad0e23ed3da34313cc87724b09bd8eb312d544827c07acf5cd9c6a63
184 +v1.5.2-otp-20 05418eaa4bf4fa8473900741252d93d76ed3307b 2020-03-25T22:25:33Z 972f37c2372d0237eab5efc295f4c79bef958a79ead0c08784bf42e821fc53ba
185 +v1.5.3 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T22:27:45Z 34e7571a455e5983ca34c846edb323954d89e16ca037bbb68fd8a51d580338b5
186 +v1.5.3-otp-18 7340ca2d925297e98dd71528a09bf0fb8634b47f 2020-03-25T22:27:37Z 34e7571a455e5983ca34c846edb323954d89e16ca037bbb68fd8a51d580338b5
187 +v1.5.3-otp-19 7340ca2d925297e98dd71528a09bf0fb8634b47f 2018-11-26T02:26:23Z
188 +v1.5.3-otp-20 7340ca2d925297e98dd71528a09bf0fb8634b47f 2018-11-26T02:24:29Z
189 +v1.6 ddc554a7efef67f16e462709e7f46662f21f7ab5 2020-03-25T22:27:39Z 81cae25bef08452ceaf734c382c56f710c55ad5c45e1357a39b1dabf47b65d4b
190 +v1.6-otp-19 ddc554a7efef67f16e462709e7f46662f21f7ab5 2020-03-25T22:27:31Z 81cae25bef08452ceaf734c382c56f710c55ad5c45e1357a39b1dabf47b65d4b
191 +v1.6-otp-20 ddc554a7efef67f16e462709e7f46662f21f7ab5 2020-03-25T22:26:41Z 1b6fe7864287f959d4e1b401679389e44ea8ba97fb91cbc2fda5232630f2cde7
192 +v1.6-otp-21 ddc554a7efef67f16e462709e7f46662f21f7ab5 2020-03-25T22:25:53Z ee2763087170a639d9f5c3b044de81bafdbd717aba11e69db9fe7d94007a8c8e
193 +v1.6.0 63b8d0ba34f38baa6f3a11020215b2f66213d27e 2020-03-25T22:27:06Z 610e548f35d0a90e0a8d291449d17bbba9d5d1e80509792f5e44aea7bb76ac4c
194 +v1.6.0-otp-19 63b8d0ba34f38baa6f3a11020215b2f66213d27e 2020-03-25T22:26:58Z 610e548f35d0a90e0a8d291449d17bbba9d5d1e80509792f5e44aea7bb76ac4c
195 +v1.6.0-otp-20 63b8d0ba34f38baa6f3a11020215b2f66213d27e 2020-03-25T22:26:09Z c09a0a90143abf9a37fce19a1959308fc52d52c461f1a703eae3ee18b616c683
196 +v1.6.0-rc.0 182c730bdb431fd1ff6789057e4903c33e377f43 2017-12-24T12:37:44Z
197 +v1.6.0-rc.0-otp-19 182c730bdb431fd1ff6789057e4903c33e377f43 2017-12-24T12:38:46Z
198 +v1.6.0-rc.0-otp-20 182c730bdb431fd1ff6789057e4903c33e377f43 2017-12-24T12:39:45Z
199 +v1.6.0-rc.1 67e575eca7b97d4fe063626671d1fd1da0ba7fed 2018-01-11T10:39:01Z
200 +v1.6.0-rc.1-otp-19 67e575eca7b97d4fe063626671d1fd1da0ba7fed 2018-01-11T10:40:00Z
201 +v1.6.0-rc.1-otp-20 67e575eca7b97d4fe063626671d1fd1da0ba7fed 2018-01-11T10:40:58Z
202 +v1.6.1 2b588dfb3ebb2f3221bec3509cb1dbb8e08ef1af 2020-03-25T22:28:09Z f9102f0a90aec8ad2a372a782aedc9ed4c3bd0d6ae391a7cc84cb3fc6c5f133c
203 +v1.6.1-otp-19 2b588dfb3ebb2f3221bec3509cb1dbb8e08ef1af 2020-03-25T22:28:03Z f9102f0a90aec8ad2a372a782aedc9ed4c3bd0d6ae391a7cc84cb3fc6c5f133c
204 +v1.6.1-otp-20 2b588dfb3ebb2f3221bec3509cb1dbb8e08ef1af 2020-03-25T22:27:15Z 679c6d51e6955225b6fd553282f09d003ecdc1b2bcebf3fd3d855034a60419f3
205 +v1.6.2 c2a9c93f023c0c00e5f387a1476f4cca01752bb8 2020-03-25T22:28:44Z c9e1e85acfd362fd1dfe6abb89019b57bf44fc032c982a37fca60ec2ccf0cefa
206 +v1.6.2-otp-19 c2a9c93f023c0c00e5f387a1476f4cca01752bb8 2020-03-25T22:28:38Z c9e1e85acfd362fd1dfe6abb89019b57bf44fc032c982a37fca60ec2ccf0cefa
207 +v1.6.2-otp-20 c2a9c93f023c0c00e5f387a1476f4cca01752bb8 2020-03-25T21:11:05Z e555433aa78c4c50dc4adcd14f7713f03c8d17ad3bc0db4e8ebbd6cfeca50e85
208 +v1.6.3 45c7f828ef7cb29647d4ac999761ed4e2ff0dc08 2020-03-25T22:29:23Z c33d6c4440838fe1c09e514ff0a907937a5bae5336b424129d8a4375e308bb01
209 +v1.6.3-otp-19 45c7f828ef7cb29647d4ac999761ed4e2ff0dc08 2020-03-25T22:29:16Z c33d6c4440838fe1c09e514ff0a907937a5bae5336b424129d8a4375e308bb01
210 +v1.6.3-otp-20 45c7f828ef7cb29647d4ac999761ed4e2ff0dc08 2020-03-25T22:28:23Z e9b49410f9c2b49464c23e813d1f43303f9199926323d047631c82019423517f
211 +v1.6.4 c107a2fe2623d11d132cdfeefbb7370abd44f85c 2020-03-25T21:15:15Z f4945bf238bb96675c8462c781f520a23025a58311608b4760f0ca71a98dd0e9
212 +v1.6.4-otp-19 c107a2fe2623d11d132cdfeefbb7370abd44f85c 2020-03-25T22:29:37Z 57f5902d73f55e502fa9f785c7fa76505e649a494bd507fe55ee98356a5d89b7
213 +v1.6.4-otp-20 c107a2fe2623d11d132cdfeefbb7370abd44f85c 2020-03-25T22:28:47Z 7b09df2473d0b4073fd7612ba3317b578e1a9646955e18cd15807107a0a11dac
214 +v1.6.5 a9f1be07ca1a939739bd013f100686c8cf81432a 2020-03-25T22:29:56Z d6bf2716030666d4939211d867fad73eabb9fbacd330861a6e325eded452f84d
215 +v1.6.5-otp-19 a9f1be07ca1a939739bd013f100686c8cf81432a 2020-03-25T22:29:49Z d6bf2716030666d4939211d867fad73eabb9fbacd330861a6e325eded452f84d
216 +v1.6.5-otp-20 a9f1be07ca1a939739bd013f100686c8cf81432a 2020-03-25T22:29:01Z 1606a442acf49326d6805d9aa0a323fabfb150a27c5cb5de36489d5d759447a5
217 +v1.6.5-otp-21 a9f1be07ca1a939739bd013f100686c8cf81432a 2018-11-26T02:52:18Z
218 +v1.6.6 1ec9d1d7bdd01665deb3607ba6beb8bcd524b85d 2020-03-25T22:30:57Z 025cb325e1cd9b6823bbd869f1b30f7f0529bef38e52335af5063a292b210a29
219 +v1.6.6-otp-19 1ec9d1d7bdd01665deb3607ba6beb8bcd524b85d 2020-03-25T22:30:50Z 025cb325e1cd9b6823bbd869f1b30f7f0529bef38e52335af5063a292b210a29
220 +v1.6.6-otp-20 1ec9d1d7bdd01665deb3607ba6beb8bcd524b85d 2020-03-25T21:14:55Z 25e55384303eaf867722fdfd9ff6ecdd300633a8e35146fa4c90a2f873f1d916
221 +v1.6.6-otp-21 1ec9d1d7bdd01665deb3607ba6beb8bcd524b85d 2018-11-26T02:57:59Z
222 +v1.7 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:32:27Z 1ecb432fe2fe82a5f4b1287eda09799de1f4544a5cfd451c89544f93b3856b68
223 +v1.7-otp-19 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:32:19Z 1ecb432fe2fe82a5f4b1287eda09799de1f4544a5cfd451c89544f93b3856b68
224 +v1.7-otp-20 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:31:26Z feace86783358fe1ccbe5a8b55bfcdaddd64e6a0aef3656ff36c9200b7e8dacb
225 +v1.7-otp-21 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:30:37Z 8535ea645e53e5b1d740fcee364a98e309247a623f28b7b0d281c8cdf518086f
226 +v1.7-otp-22 a1fb6c0d0e801debd2ec88602abc493ef7937907 2020-03-25T22:29:45Z 6cdd6a9714a1fc7209e2498936986418c3a145b14e158df5e9e8d762a52fb281
227 +v1.7.0 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T21:17:57Z 16f6a0c235c8766fcb3a97ced61c9e3f08df579f7234464827824a9097b59123
228 +v1.7.0-otp-19 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T22:32:30Z 3f0ce20986311d9d21121d7e6314fb25ffebe520fd9f4b974074caf74dca33e0
229 +v1.7.0-otp-20 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T21:16:57Z c9bbf4d7d9a4088644797bae699f10be011ef0a144faa8c48a14aa40e6d2bd05
230 +v1.7.0-otp-21 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T22:30:45Z ca180626cc6fcd7a6b4c591410d42e68ad3e0007e07ad645a39fb3c2ed66f6ff
231 +v1.7.0-otp-22 06e5ec2d4c628e57440b0a393e4efa98e7226173 2020-03-25T21:14:57Z c3fee34257d49ba18fce12dc165bea9f65828969ff2e6acc596c0d8a594237d1
232 +v1.7.0-rc.0 1164784b8ef25967471c068600301db850de58b3 2020-03-25T21:18:18Z f5d16a2382408acddb1a6d18ee73d0e92ae2eaa0d4adfebf8097723743eea85c
233 +v1.7.0-rc.0-otp-19 1164784b8ef25967471c068600301db850de58b3 2020-03-25T22:32:36Z 08dbb2970f9ce6a9c4b246dbc8dd8dcace40d7ce0027772da09fdc8891b112e2
234 +v1.7.0-rc.0-otp-20 1164784b8ef25967471c068600301db850de58b3 2020-03-25T22:31:39Z ea293ca82f093a75ef10a377b3fe75ef5244c60388853bfcfcfebd313f21ced1
235 +v1.7.0-rc.0-otp-21 1164784b8ef25967471c068600301db850de58b3 2020-03-25T22:30:48Z 069a6875b80837e39b879ebc7a614cdc6e3a57d903c1c9c113fbf37a0a001805
236 +v1.7.0-rc.0-otp-22 1164784b8ef25967471c068600301db850de58b3 2020-03-25T22:29:59Z 236dbcc06de39c4c6afb8d72fe8f45e8a260da96aff214e0dfe442108f5bdaac
237 +v1.7.0-rc.1 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T22:32:49Z 82001fa454804c467dc5d3128273e2f4c51d1529e05ab0dd976c5fbfc810c1c1
238 +v1.7.0-rc.1-otp-19 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T22:32:42Z 82001fa454804c467dc5d3128273e2f4c51d1529e05ab0dd976c5fbfc810c1c1
239 +v1.7.0-rc.1-otp-20 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T21:17:38Z e89ede91c4a824e7b930ad02a0b9c231a0b77cf01f74e122dd72ad29e31f9b99
240 +v1.7.0-rc.1-otp-21 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T22:30:59Z 6aa0013c238185014b300016c88f7211a00c5b1b04d3146d4788a7f0e4f2207f
241 +v1.7.0-rc.1-otp-22 b6d77696743a34ade6a222cbe2811440ae4e0018 2020-03-25T22:30:13Z a481cff84a405be9da89721b1ed022f422a45b855d2159266302b3f6f2fa234b
242 +v1.7.1 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2019-05-14T23:45:16Z
243 +v1.7.1-otp-19 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2020-03-25T22:32:44Z b775acc22b7486ee5b0e2a3bb7101206889b4e33d9bb7e5dc734094e949cbfe3
244 +v1.7.1-otp-20 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2020-03-25T21:17:33Z aa2c20a4e3ac4d2a7767379fa3e185774e7052a969f6595dac4e4d4040e41dd1
245 +v1.7.1-otp-21 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2020-03-25T21:16:45Z b79f34570ab6ba52b4f0ce6067f6552225f9cc063ffd8d843310d833d7cffeff
246 +v1.7.1-otp-22 8aab53b941ee955f005e7b4e08c333f0b94c48b7 2020-03-25T22:30:09Z 23bb48b55a98a7b47cd58433f6a3c17b6bd18c748ebcb2b32d2f6a90b4057557
247 +v1.7.2 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T22:33:25Z bd93d69afaa0ffcb456f158bf785f9b211803e472d5624030877771ba47af2f3
248 +v1.7.2-otp-19 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T22:33:18Z bd93d69afaa0ffcb456f158bf785f9b211803e472d5624030877771ba47af2f3
249 +v1.7.2-otp-20 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T21:17:42Z 1e36d839e8d075e68219944c34b3c90622e0a5698e954c0a22384d412f958509
250 +v1.7.2-otp-21 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T22:31:36Z f11f023abdf43cbade64b7f0fef316d361e716bf5274aff3398a1ba97411cb41
251 +v1.7.2-otp-22 2b338092b6da5cd5101072dfdd627cfbb49e4736 2020-03-25T21:16:06Z 83d4c728d4526e7a72e423b2cca650d20ef8cf4cd8ceb1da022c900490de964e
252 +v1.7.3 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:33:58Z 358170a282e52728be7402eadd52fdc66419c322548f2c6f0fd717741c86d029
253 +v1.7.3-otp-19 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:33:51Z 358170a282e52728be7402eadd52fdc66419c322548f2c6f0fd717741c86d029
254 +v1.7.3-otp-20 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:32:57Z 7df5ddd0b565c6bfe02b743a7338dd095b74228ea44bf71d912d1875a861c442
255 +v1.7.3-otp-21 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:32:08Z a20a939d8046184ab45b37efba70705cee4c66f73d227578b7e717a4e65bb26a
256 +v1.7.3-otp-22 8ca85ed2a82019df1a2acf3238f24a56370464bb 2020-03-25T22:31:22Z c3c8b2cff0bef4c91636cd8335988e808ae2978ed90cc0ea2acd238bf60f22d8
257 +v1.7.4 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:34:34Z c82b6f34a17fc6f9fba9327e9080d2c44c97e11bf00398db2a5c120ac289671b
258 +v1.7.4-otp-19 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:34:21Z c82b6f34a17fc6f9fba9327e9080d2c44c97e11bf00398db2a5c120ac289671b
259 +v1.7.4-otp-20 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:33:29Z 620b4f6097aaa22421a41bde19c838983b2854aebc429b883342b7f71f8542df
260 +v1.7.4-otp-21 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:32:39Z 2b372cbe7d905f3403bc42b9284ae9b84d2c1f9ee3b847ca6bc416c4d941e44d
261 +v1.7.4-otp-22 eb5679bfcc9bd35c4c016e91745b4a1a4d43356a 2020-03-25T22:31:50Z 802ef1addcdfb16408b6b90f9a22c415ae23f5d725e5f5e3101cd196ef3a7b56
262 +v1.8 6d98af49c929b9e23c7c3b59e93f5f53cedeebd4 2020-03-25T22:33:48Z 90a26e9cc5b1cc7e2279dc633ef52e471f8eaaa4ce3263a6e87506427ad3fedc
263 +v1.8-otp-20 6d98af49c929b9e23c7c3b59e93f5f53cedeebd4 2020-03-25T22:33:41Z 90a26e9cc5b1cc7e2279dc633ef52e471f8eaaa4ce3263a6e87506427ad3fedc
264 +v1.8-otp-21 6d98af49c929b9e23c7c3b59e93f5f53cedeebd4 2020-03-25T22:32:52Z 69def395dc582c762c43267935e07732cddcc7a71a830bb09ce863b49b3d20cc
265 +v1.8-otp-22 6d98af49c929b9e23c7c3b59e93f5f53cedeebd4 2020-03-25T22:32:06Z d7532382e69ba14b947a1405fa88cb05de11713673ab106b589958d456d726e3
266 +v1.8.0 2eee2fc6a4c3733537dc95083c4247a1fa723ab1 2020-03-25T22:34:52Z c08ff8e7affa636b2b0b0769d63c42289691d70cae832bdf97aeff5c931f8f95
267 +v1.8.0-otp-20 2eee2fc6a4c3733537dc95083c4247a1fa723ab1 2020-03-25T22:34:38Z c08ff8e7affa636b2b0b0769d63c42289691d70cae832bdf97aeff5c931f8f95
268 +v1.8.0-otp-21 2eee2fc6a4c3733537dc95083c4247a1fa723ab1 2019-05-15T02:00:31Z
269 +v1.8.0-otp-22 2eee2fc6a4c3733537dc95083c4247a1fa723ab1 2020-03-25T22:33:03Z 40a1ca4092f367b2200612cfa16f0e1bd0c9ae7a1088a51665681acb6031c94a
270 +v1.8.0-rc.0 2b594057567f352bd63f43c6535a901db6d37ed4 2019-05-15T01:22:37Z
271 +v1.8.0-rc.0-otp-20 2b594057567f352bd63f43c6535a901db6d37ed4 2019-05-15T01:22:34Z
272 +v1.8.0-rc.0-otp-21 2b594057567f352bd63f43c6535a901db6d37ed4 2019-05-15T01:16:16Z
273 +v1.8.0-rc.0-otp-22 2b594057567f352bd63f43c6535a901db6d37ed4 2019-05-15T01:08:38Z
274 +v1.8.0-rc.1 32825ebaa0c1f6785dcd30d87f0ade45cd6c20cb 2020-03-25T21:21:56Z 794460fe3531805f0a9d1a3ccbecf07fc13df0702002651d308e1ebb3f1a525c
275 +v1.8.0-rc.1-otp-20 32825ebaa0c1f6785dcd30d87f0ade45cd6c20cb 2020-03-25T22:36:20Z 4743096ed9861d76537c36721c9e198e0efb63536ea05d11cb3c2d50abbacbc6
276 +v1.8.0-rc.1-otp-21 32825ebaa0c1f6785dcd30d87f0ade45cd6c20cb 2020-03-25T22:35:32Z f5defae82816a9dfef9f77be83e8d3d9f1b82b750b44825a1bbd58b1f4224c91
277 +v1.8.0-rc.1-otp-22 32825ebaa0c1f6785dcd30d87f0ade45cd6c20cb 2020-03-25T22:34:43Z 225ed2da0b5d0d6f8a6ac908d06f1e5c7000bdd32cc7e896fa44bd0fdf9939c8
278 +v1.8.1 511a51ba8925daa025d3c2fd410e170c1b651013 2020-03-25T22:36:31Z 36ab446e5db70a7d26bffc065054b4c70f3640c4b8b0387b170543c2cd769cd1
279 +v1.8.1-otp-20 511a51ba8925daa025d3c2fd410e170c1b651013 2020-03-25T21:22:02Z d9f62778b673791aa2bfeb50821eac0f949243bdc26287b3bbe2227771d78a0a
280 +v1.8.1-otp-21 511a51ba8925daa025d3c2fd410e170c1b651013 2020-03-25T22:35:35Z 1e145564990957496145884aaed03228c7dc4105473f8bf023f567aedd2191cc
281 +v1.8.1-otp-22 511a51ba8925daa025d3c2fd410e170c1b651013 2020-03-25T22:34:51Z 3a4aaa68928a5768441577eb9c90ccfc217ecee9be9da2456dde074d93fb2eda
282 +v1.8.2 98485daab0a9f3ac2d7809d38f5e57cd73cb22ac 2020-03-25T22:36:35Z c77e0ac5ab0ba5cff5f573cdf711ed9106db788317ab16cacdcf41a93a795d48
283 +v1.8.2-otp-20 98485daab0a9f3ac2d7809d38f5e57cd73cb22ac 2020-03-25T22:36:28Z c77e0ac5ab0ba5cff5f573cdf711ed9106db788317ab16cacdcf41a93a795d48
284 +v1.8.2-otp-21 98485daab0a9f3ac2d7809d38f5e57cd73cb22ac 2020-03-25T22:35:41Z b406265ae842fe8355244150d06c92e01ab1fdc3e985feb59e9bf13452ac9754
285 +v1.8.2-otp-22 98485daab0a9f3ac2d7809d38f5e57cd73cb22ac 2020-03-25T22:34:56Z 570c7b1ab710b9a44326d7badc4254f6e66ce3111a3802f0a162210144260234
286 +v1.9 762989b39f62e8dc8153f5ea6c71c57693ffc3f3 2020-03-25T22:36:56Z 403db3ad4ae9e27272a06c6c95850507fa34dc2b311447f2190e22fa2c901ded
287 +v1.9-otp-20 762989b39f62e8dc8153f5ea6c71c57693ffc3f3 2020-03-25T22:36:45Z 403db3ad4ae9e27272a06c6c95850507fa34dc2b311447f2190e22fa2c901ded
288 +v1.9-otp-21 762989b39f62e8dc8153f5ea6c71c57693ffc3f3 2020-03-25T21:21:43Z 6d538a3e45b4bee6449d085c53f104a0c9680cb006f15857cd689a2e5e3251d5
289 +v1.9-otp-22 762989b39f62e8dc8153f5ea6c71c57693ffc3f3 2020-03-25T21:20:47Z 80953f1a1cbd8428a3d17042360a0a2c023ea029c2199909df97045f7b962de2
290 +v1.9.0 71c335ac2694d4457ac8f4fefdfc68ae167c8775 2020-03-25T22:37:01Z 74808a0308d64f36946dce470b51615117c9933a4454e52d3e25538f243fcfa3
291 +v1.9.0-otp-20 71c335ac2694d4457ac8f4fefdfc68ae167c8775 2020-03-25T22:36:55Z 74808a0308d64f36946dce470b51615117c9933a4454e52d3e25538f243fcfa3
292 +v1.9.0-otp-21 71c335ac2694d4457ac8f4fefdfc68ae167c8775 2020-03-25T21:21:41Z 59dc26d6691062788ec8e774c941098eaa5f02b4ad3c33502e910e4efaf4ee1e
293 +v1.9.0-otp-22 71c335ac2694d4457ac8f4fefdfc68ae167c8775 2020-03-25T22:35:06Z ddae00c5bca44dd5bacbc4c4200be302c96b63cbad9c4433ea9fa0bba1d0a486
294 +v1.9.0-rc.0 aad7aa4d2255f1c33f2de6525f67cd7e852324d2 2020-03-25T22:37:19Z b6e6026f22a7e590f3b9122f3363a09572f251a288a4e50b9faad63548e81331
295 +v1.9.0-rc.0-otp-20 aad7aa4d2255f1c33f2de6525f67cd7e852324d2 2020-03-25T22:37:12Z b6e6026f22a7e590f3b9122f3363a09572f251a288a4e50b9faad63548e81331
296 +v1.9.0-rc.0-otp-21 aad7aa4d2255f1c33f2de6525f67cd7e852324d2 2020-03-25T22:36:25Z 698b8b34f9fe12ce3fbf1cf06ca455d689ed83fb927ae70f636a058a4ef9e700
297 +v1.9.0-rc.0-otp-22 aad7aa4d2255f1c33f2de6525f67cd7e852324d2 2019-06-04T11:49:17Z
298 +v1.9.1 79388035f5391f0a283a48fba792ae3b4f4b5f21 2020-03-25T22:37:38Z cf13db14a1fd86d6e8824331eca7a2b41674a4ce04fba838877952194f9d02cd
299 +v1.9.1-otp-20 79388035f5391f0a283a48fba792ae3b4f4b5f21 2020-03-25T22:37:31Z cf13db14a1fd86d6e8824331eca7a2b41674a4ce04fba838877952194f9d02cd
300 +v1.9.1-otp-21 79388035f5391f0a283a48fba792ae3b4f4b5f21 2020-03-25T21:22:51Z 93af7d51379858451b90c1efdd859b7c80e0d9c0fc6531cea06e4edffd85605e
301 +v1.9.1-otp-22 79388035f5391f0a283a48fba792ae3b4f4b5f21 2020-03-25T22:35:55Z 3e9d11d583fe60b4e4d7ae23aa4fa70baf41a4d53df4d1be75d9636637f7f699
302 +v1.9.2 ffe7a577cc80f37381dc289c820842d346002364 2020-03-25T21:24:21Z ec94b266ec22e3479126cfca69bd84002671c93c9a9dfe13e018efc5cf090f9e
303 +v1.9.2-otp-20 ffe7a577cc80f37381dc289c820842d346002364 2020-03-25T22:37:45Z 0971bbcfb1759fdcb2b9dd13907c1f3cb521fbd0afbd177b8a236ad2018b669f
304 +v1.9.2-otp-21 ffe7a577cc80f37381dc289c820842d346002364 2020-03-25T22:36:59Z e579d4f46fbc847d4609d7ca1be4ce28ea08c6c46b9113a278540ea89adb31f8
305 +v1.9.2-otp-22 ffe7a577cc80f37381dc289c820842d346002364 2020-03-25T22:36:11Z c2a03b667d9f079558995112ca29adb11bde1eeecd6126ac74bdd4a3c583c547
306 +v1.9.3 5af52898d344fda201e2437319449cdc0242eb31 2020-03-25T22:38:20Z 3f8e1d964e70bbd935b24ee5d06319440b2214ef66c5e6d3007bb1737c7589b2
307 +v1.9.3-otp-20 5af52898d344fda201e2437319449cdc0242eb31 2020-03-25T22:38:13Z 3f8e1d964e70bbd935b24ee5d06319440b2214ef66c5e6d3007bb1737c7589b2
308 +v1.9.3-otp-21 5af52898d344fda201e2437319449cdc0242eb31 2020-03-25T22:37:27Z a67f1826a0ee7a66e8588d72ac50843e68316ab275656dc95e1dcca5515dc612
309 +v1.9.3-otp-22 5af52898d344fda201e2437319449cdc0242eb31 2020-03-25T22:36:42Z 063e93f5de308925aa198343d5fdd65a8ebdff76bf7e8c5f4c0ef76c16f67e4c
310 +v1.9.4 055526057ac9992cc1df87441357c4e56d45235d 2020-03-25T22:38:42Z 46810a6da6e68c4ac408c6e3120d985d87485f62e4afcd62673831d328d9e588
311 +v1.9.4-otp-20 055526057ac9992cc1df87441357c4e56d45235d 2020-03-25T22:38:36Z 46810a6da6e68c4ac408c6e3120d985d87485f62e4afcd62673831d328d9e588
312 +v1.9.4-otp-21 055526057ac9992cc1df87441357c4e56d45235d 2020-03-25T22:37:52Z 1e6c090841c267c4828d68647e020c91067daace9ba05669fd5c3ec315175423
313 +v1.9.4-otp-22 055526057ac9992cc1df87441357c4e56d45235d 2020-03-25T22:37:07Z b5eba5ab892f431a0d914055ee0ba177304e74da0b2af5a657670aa5ce00f10f
modified dist/index.js
+2810 −2257
@@ -650,1875 +650,2147 @@ class ExecState extends events.EventEmitter {
650 650
651 651 /***/ }),
652 652
653 /***/ 87:
654 /***/ (function(module) {
653 +/***/ 16:
654 +/***/ (function(module, __unusedexports, __webpack_require__) {
655 +
656 +const SemVer = __webpack_require__(65)
657 +const compareBuild = (a, b, loose) => {
658 + const versionA = new SemVer(a, loose)
659 + const versionB = new SemVer(b, loose)
660 + return versionA.compare(versionB) || versionA.compareBuild(versionB)
661 +}
662 +module.exports = compareBuild
655 663
656 module.exports = require("os");
657 664
658 665 /***/ }),
659 666
660 /***/ 129:
661 /***/ (function(module) {
667 +/***/ 65:
668 +/***/ (function(module, __unusedexports, __webpack_require__) {
662 669
663 module.exports = require("child_process");
670 +const debug = __webpack_require__(548)
671 +const { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__(181)
672 +const { re, t } = __webpack_require__(976)
673 +
674 +const { compareIdentifiers } = __webpack_require__(760)
675 +class SemVer {
676 + constructor (version, options) {
677 + if (!options || typeof options !== 'object') {
678 + options = {
679 + loose: !!options,
680 + includePrerelease: false
681 + }
682 + }
683 + if (version instanceof SemVer) {
684 + if (version.loose === !!options.loose &&
685 + version.includePrerelease === !!options.includePrerelease) {
686 + return version
687 + } else {
688 + version = version.version
689 + }
690 + } else if (typeof version !== 'string') {
691 + throw new TypeError(`Invalid Version: ${version}`)
692 + }
664 693
665 /***/ }),
694 + if (version.length > MAX_LENGTH) {
695 + throw new TypeError(
696 + `version is longer than ${MAX_LENGTH} characters`
697 + )
698 + }
666 699
667 /***/ 194:
668 /***/ (function(__unusedmodule, exports, __webpack_require__) {
700 + debug('SemVer', version, options)
701 + this.options = options
702 + this.loose = !!options.loose
703 + // this isn't actually relevant for versions, but keep it so that we
704 + // don't run into trouble passing this.options around.
705 + this.includePrerelease = !!options.includePrerelease
669 706
670 "use strict";
707 + const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
671 708
672 var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
673 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
674 return new (P || (P = Promise))(function (resolve, reject) {
675 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
676 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
677 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
678 step((generator = generator.apply(thisArg, _arguments || [])).next());
679 });
680 };
681 Object.defineProperty(exports, "__esModule", { value: true });
682 const childProcess = __webpack_require__(129);
683 const path = __webpack_require__(622);
684 const util_1 = __webpack_require__(669);
685 const ioUtil = __webpack_require__(408);
686 const exec = util_1.promisify(childProcess.exec);
687 /**
688 * Copies a file or folder.
689 * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
690 *
691 * @param source source path
692 * @param dest destination path
693 * @param options optional. See CopyOptions.
694 */
695 function cp(source, dest, options = {}) {
696 return __awaiter(this, void 0, void 0, function* () {
697 const { force, recursive } = readCopyOptions(options);
698 const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;
699 // Dest is an existing file, but not forcing
700 if (destStat && destStat.isFile() && !force) {
701 return;
702 }
703 // If dest is an existing directory, should copy inside.
704 const newDest = destStat && destStat.isDirectory()
705 ? path.join(dest, path.basename(source))
706 : dest;
707 if (!(yield ioUtil.exists(source))) {
708 throw new Error(`no such file or directory: ${source}`);
709 + if (!m) {
710 + throw new TypeError(`Invalid Version: ${version}`)
711 + }
712 +
713 + this.raw = version
714 +
715 + // these are actually numbers
716 + this.major = +m[1]
717 + this.minor = +m[2]
718 + this.patch = +m[3]
719 +
720 + if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
721 + throw new TypeError('Invalid major version')
722 + }
723 +
724 + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
725 + throw new TypeError('Invalid minor version')
726 + }
727 +
728 + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
729 + throw new TypeError('Invalid patch version')
730 + }
731 +
732 + // numberify any prerelease numeric ids
733 + if (!m[4]) {
734 + this.prerelease = []
735 + } else {
736 + this.prerelease = m[4].split('.').map((id) => {
737 + if (/^[0-9]+$/.test(id)) {
738 + const num = +id
739 + if (num >= 0 && num < MAX_SAFE_INTEGER) {
740 + return num
741 + }
709 742 }
710 const sourceStat = yield ioUtil.stat(source);
711 if (sourceStat.isDirectory()) {
712 if (!recursive) {
713 throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);
714 }
715 else {
716 yield cpDirRecursive(source, newDest, 0, force);
743 + return id
744 + })
745 + }
746 +
747 + this.build = m[5] ? m[5].split('.') : []
748 + this.format()
749 + }
750 +
751 + format () {
752 + this.version = `${this.major}.${this.minor}.${this.patch}`
753 + if (this.prerelease.length) {
754 + this.version += `-${this.prerelease.join('.')}`
755 + }
756 + return this.version
757 + }
758 +
759 + toString () {
760 + return this.version
761 + }
762 +
763 + compare (other) {
764 + debug('SemVer.compare', this.version, this.options, other)
765 + if (!(other instanceof SemVer)) {
766 + if (typeof other === 'string' && other === this.version) {
767 + return 0
768 + }
769 + other = new SemVer(other, this.options)
770 + }
771 +
772 + if (other.version === this.version) {
773 + return 0
774 + }
775 +
776 + return this.compareMain(other) || this.comparePre(other)
777 + }
778 +
779 + compareMain (other) {
780 + if (!(other instanceof SemVer)) {
781 + other = new SemVer(other, this.options)
782 + }
783 +
784 + return (
785 + compareIdentifiers(this.major, other.major) ||
786 + compareIdentifiers(this.minor, other.minor) ||
787 + compareIdentifiers(this.patch, other.patch)
788 + )
789 + }
790 +
791 + comparePre (other) {
792 + if (!(other instanceof SemVer)) {
793 + other = new SemVer(other, this.options)
794 + }
795 +
796 + // NOT having a prerelease is > having one
797 + if (this.prerelease.length && !other.prerelease.length) {
798 + return -1
799 + } else if (!this.prerelease.length && other.prerelease.length) {
800 + return 1
801 + } else if (!this.prerelease.length && !other.prerelease.length) {
802 + return 0
803 + }
804 +
805 + let i = 0
806 + do {
807 + const a = this.prerelease[i]
808 + const b = other.prerelease[i]
809 + debug('prerelease compare', i, a, b)
810 + if (a === undefined && b === undefined) {
811 + return 0
812 + } else if (b === undefined) {
813 + return 1
814 + } else if (a === undefined) {
815 + return -1
816 + } else if (a === b) {
817 + continue
818 + } else {
819 + return compareIdentifiers(a, b)
820 + }
821 + } while (++i)
822 + }
823 +
824 + compareBuild (other) {
825 + if (!(other instanceof SemVer)) {
826 + other = new SemVer(other, this.options)
827 + }
828 +
829 + let i = 0
830 + do {
831 + const a = this.build[i]
832 + const b = other.build[i]
833 + debug('prerelease compare', i, a, b)
834 + if (a === undefined && b === undefined) {
835 + return 0
836 + } else if (b === undefined) {
837 + return 1
838 + } else if (a === undefined) {
839 + return -1
840 + } else if (a === b) {
841 + continue
842 + } else {
843 + return compareIdentifiers(a, b)
844 + }
845 + } while (++i)
846 + }
847 +
848 + // preminor will bump the version up to the next minor release, and immediately
849 + // down to pre-release. premajor and prepatch work the same way.
850 + inc (release, identifier) {
851 + switch (release) {
852 + case 'premajor':
853 + this.prerelease.length = 0
854 + this.patch = 0
855 + this.minor = 0
856 + this.major++
857 + this.inc('pre', identifier)
858 + break
859 + case 'preminor':
860 + this.prerelease.length = 0
861 + this.patch = 0
862 + this.minor++
863 + this.inc('pre', identifier)
864 + break
865 + case 'prepatch':
866 + // If this is already a prerelease, it will bump to the next version
867 + // drop any prereleases that might already exist, since they are not
868 + // relevant at this point.
869 + this.prerelease.length = 0
870 + this.inc('patch', identifier)
871 + this.inc('pre', identifier)
872 + break
873 + // If the input is a non-prerelease version, this acts the same as
874 + // prepatch.
875 + case 'prerelease':
876 + if (this.prerelease.length === 0) {
877 + this.inc('patch', identifier)
878 + }
879 + this.inc('pre', identifier)
880 + break
881 +
882 + case 'major':
883 + // If this is a pre-major version, bump up to the same major version.
884 + // Otherwise increment major.
885 + // 1.0.0-5 bumps to 1.0.0
886 + // 1.1.0 bumps to 2.0.0
887 + if (
888 + this.minor !== 0 ||
889 + this.patch !== 0 ||
890 + this.prerelease.length === 0
891 + ) {
892 + this.major++
893 + }
894 + this.minor = 0
895 + this.patch = 0
896 + this.prerelease = []
897 + break
898 + case 'minor':
899 + // If this is a pre-minor version, bump up to the same minor version.
900 + // Otherwise increment minor.
901 + // 1.2.0-5 bumps to 1.2.0
902 + // 1.2.1 bumps to 1.3.0
903 + if (this.patch !== 0 || this.prerelease.length === 0) {
904 + this.minor++
905 + }
906 + this.patch = 0
907 + this.prerelease = []
908 + break
909 + case 'patch':
910 + // If this is not a pre-release version, it will increment the patch.
911 + // If it is a pre-release it will bump up to the same patch version.
912 + // 1.2.0-5 patches to 1.2.0
913 + // 1.2.0 patches to 1.2.1
914 + if (this.prerelease.length === 0) {
915 + this.patch++
916 + }
917 + this.prerelease = []
918 + break
919 + // This probably shouldn't be used publicly.
920 + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.
921 + case 'pre':
922 + if (this.prerelease.length === 0) {
923 + this.prerelease = [0]
924 + } else {
925 + let i = this.prerelease.length
926 + while (--i >= 0) {
927 + if (typeof this.prerelease[i] === 'number') {
928 + this.prerelease[i]++
929 + i = -2
717 930 }
931 + }
932 + if (i === -1) {
933 + // didn't increment anything
934 + this.prerelease.push(0)
935 + }
718 936 }
719 else {
720 if (path.relative(source, newDest) === '') {
721 // a file cannot be copied to itself
722 throw new Error(`'${newDest}' and '${source}' are the same file`);
937 + if (identifier) {
938 + // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
939 + // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
940 + if (this.prerelease[0] === identifier) {
941 + if (isNaN(this.prerelease[1])) {
942 + this.prerelease = [identifier, 0]
723 943 }
724 yield copyFile(source, newDest, force);
944 + } else {
945 + this.prerelease = [identifier, 0]
946 + }
725 947 }
726 });
948 + break
949 +
950 + default:
951 + throw new Error(`invalid increment argument: ${release}`)
952 + }
953 + this.format()
954 + this.raw = this.version
955 + return this
956 + }
727 957 }
728 exports.cp = cp;
729 /**
730 * Moves a path.
731 *
732 * @param source source path
733 * @param dest destination path
734 * @param options optional. See MoveOptions.
735 */
736 function mv(source, dest, options = {}) {
737 return __awaiter(this, void 0, void 0, function* () {
738 if (yield ioUtil.exists(dest)) {
739 let destExists = true;
740 if (yield ioUtil.isDirectory(dest)) {
741 // If dest is directory copy src into dest
742 dest = path.join(dest, path.basename(source));
743 destExists = yield ioUtil.exists(dest);
744 }
745 if (destExists) {
746 if (options.force == null || options.force) {
747 yield rmRF(dest);
748 }
749 else {
750 throw new Error('Destination already exists');
751 }
752 }
753 }
754 yield mkdirP(path.dirname(dest));
755 yield ioUtil.rename(source, dest);
756 });
958 +
959 +module.exports = SemVer
960 +
961 +
962 +/***/ }),
963 +
964 +/***/ 87:
965 +/***/ (function(module) {
966 +
967 +module.exports = require("os");
968 +
969 +/***/ }),
970 +
971 +/***/ 120:
972 +/***/ (function(module, __unusedexports, __webpack_require__) {
973 +
974 +const compareBuild = __webpack_require__(16)
975 +const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))
976 +module.exports = sort
977 +
978 +
979 +/***/ }),
980 +
981 +/***/ 124:
982 +/***/ (function(module, __unusedexports, __webpack_require__) {
983 +
984 +// hoisted class for cyclic dependency
985 +class Range {
986 + constructor (range, options) {
987 + if (!options || typeof options !== 'object') {
988 + options = {
989 + loose: !!options,
990 + includePrerelease: false
991 + }
992 + }
993 +
994 + if (range instanceof Range) {
995 + if (
996 + range.loose === !!options.loose &&
997 + range.includePrerelease === !!options.includePrerelease
998 + ) {
999 + return range
1000 + } else {
1001 + return new Range(range.raw, options)
1002 + }
1003 + }
1004 +
1005 + if (range instanceof Comparator) {
1006 + // just put it in the set and return
1007 + this.raw = range.value
1008 + this.set = [[range]]
1009 + this.format()
1010 + return this
1011 + }
1012 +
1013 + this.options = options
1014 + this.loose = !!options.loose
1015 + this.includePrerelease = !!options.includePrerelease
1016 +
1017 + // First, split based on boolean or ||
1018 + this.raw = range
1019 + this.set = range
1020 + .split(/\s*\|\|\s*/)
1021 + // map the range to a 2d array of comparators
1022 + .map(range => this.parseRange(range.trim()))
1023 + // throw out any comparator lists that are empty
1024 + // this generally means that it was not a valid range, which is allowed
1025 + // in loose mode, but will still throw if the WHOLE range is invalid.
1026 + .filter(c => c.length)
1027 +
1028 + if (!this.set.length) {
1029 + throw new TypeError(`Invalid SemVer Range: ${range}`)
1030 + }
1031 +
1032 + this.format()
1033 + }
1034 +
1035 + format () {
1036 + this.range = this.set
1037 + .map((comps) => {
1038 + return comps.join(' ').trim()
1039 + })
1040 + .join('||')
1041 + .trim()
1042 + return this.range
1043 + }
1044 +
1045 + toString () {
1046 + return this.range
1047 + }
1048 +
1049 + parseRange (range) {
1050 + const loose = this.options.loose
1051 + range = range.trim()
1052 + // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
1053 + const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
1054 + range = range.replace(hr, hyphenReplace(this.options.includePrerelease))
1055 + debug('hyphen replace', range)
1056 + // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
1057 + range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
1058 + debug('comparator trim', range, re[t.COMPARATORTRIM])
1059 +
1060 + // `~ 1.2.3` => `~1.2.3`
1061 + range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
1062 +
1063 + // `^ 1.2.3` => `^1.2.3`
1064 + range = range.replace(re[t.CARETTRIM], caretTrimReplace)
1065 +
1066 + // normalize spaces
1067 + range = range.split(/\s+/).join(' ')
1068 +
1069 + // At this point, the range is completely trimmed and
1070 + // ready to be split into comparators.
1071 +
1072 + const compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
1073 + return range
1074 + .split(' ')
1075 + .map(comp => parseComparator(comp, this.options))
1076 + .join(' ')
1077 + .split(/\s+/)
1078 + .map(comp => replaceGTE0(comp, this.options))
1079 + // in loose mode, throw out any that are not valid comparators
1080 + .filter(this.options.loose ? comp => !!comp.match(compRe) : () => true)
1081 + .map(comp => new Comparator(comp, this.options))
1082 + }
1083 +
1084 + intersects (range, options) {
1085 + if (!(range instanceof Range)) {
1086 + throw new TypeError('a Range is required')
1087 + }
1088 +
1089 + return this.set.some((thisComparators) => {
1090 + return (
1091 + isSatisfiable(thisComparators, options) &&
1092 + range.set.some((rangeComparators) => {
1093 + return (
1094 + isSatisfiable(rangeComparators, options) &&
1095 + thisComparators.every((thisComparator) => {
1096 + return rangeComparators.every((rangeComparator) => {
1097 + return thisComparator.intersects(rangeComparator, options)
1098 + })
1099 + })
1100 + )
1101 + })
1102 + )
1103 + })
1104 + }
1105 +
1106 + // if ANY of the sets match ALL of its comparators, then pass
1107 + test (version) {
1108 + if (!version) {
1109 + return false
1110 + }
1111 +
1112 + if (typeof version === 'string') {
1113 + try {
1114 + version = new SemVer(version, this.options)
1115 + } catch (er) {
1116 + return false
1117 + }
1118 + }
1119 +
1120 + for (let i = 0; i < this.set.length; i++) {
1121 + if (testSet(this.set[i], version, this.options)) {
1122 + return true
1123 + }
1124 + }
1125 + return false
1126 + }
757 1127 }
758 exports.mv = mv;
759 /**
760 * Remove a path recursively with force
761 *
762 * @param inputPath path to remove
763 */
764 function rmRF(inputPath) {
765 return __awaiter(this, void 0, void 0, function* () {
766 if (ioUtil.IS_WINDOWS) {
767 // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another
768 // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del.
769 try {
770 if (yield ioUtil.isDirectory(inputPath, true)) {
771 yield exec(`rd /s /q "${inputPath}"`);
772 }
773 else {
774 yield exec(`del /f /a "${inputPath}"`);
775 }
776 }
777 catch (err) {
778 // if you try to delete a file that doesn't exist, desired result is achieved
779 // other errors are valid
780 if (err.code !== 'ENOENT')
781 throw err;
782 }
783 // Shelling out fails to remove a symlink folder with missing source, this unlink catches that
784 try {
785 yield ioUtil.unlink(inputPath);
786 }
787 catch (err) {
788 // if you try to delete a file that doesn't exist, desired result is achieved
789 // other errors are valid
790 if (err.code !== 'ENOENT')
791 throw err;
792 }
793 }
794 else {
795 let isDir = false;
796 try {
797 isDir = yield ioUtil.isDirectory(inputPath);
798 }
799 catch (err) {
800 // if you try to delete a file that doesn't exist, desired result is achieved
801 // other errors are valid
802 if (err.code !== 'ENOENT')
803 throw err;
804 return;
805 }
806 if (isDir) {
807 yield exec(`rm -rf "${inputPath}"`);
808 }
809 else {
810 yield ioUtil.unlink(inputPath);
811 }
812 }
813 });
814 }
815 exports.rmRF = rmRF;
816 /**
817 * Make a directory. Creates the full path with folders in between
818 * Will throw if it fails
819 *
820 * @param fsPath path to create
821 * @returns Promise<void>
822 */
823 function mkdirP(fsPath) {
824 return __awaiter(this, void 0, void 0, function* () {
825 yield ioUtil.mkdirP(fsPath);
826 });
827 }
828 exports.mkdirP = mkdirP;
829 /**
830 * Returns path of a tool had the tool actually been invoked. Resolves via paths.
831 * If you check and the tool does not exist, it will throw.
832 *
833 * @param tool name of the tool
834 * @param check whether to check if tool exists
835 * @returns Promise<string> path to tool
836 */
837 function which(tool, check) {
838 return __awaiter(this, void 0, void 0, function* () {
839 if (!tool) {
840 throw new Error("parameter 'tool' is required");
841 }
842 // recursive when check=true
843 if (check) {
844 const result = yield which(tool, false);
845 if (!result) {
846 if (ioUtil.IS_WINDOWS) {
847 throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);
848 }
849 else {
850 throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);
851 }
852 }
853 }
854 try {
855 // build the list of extensions to try
856 const extensions = [];
857 if (ioUtil.IS_WINDOWS && process.env.PATHEXT) {
858 for (const extension of process.env.PATHEXT.split(path.delimiter)) {
859 if (extension) {
860 extensions.push(extension);
861 }
862 }
863 }
864 // if it's rooted, return it if exists. otherwise return empty.
865 if (ioUtil.isRooted(tool)) {
866 const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);
867 if (filePath) {
868 return filePath;
869 }
870 return '';
871 }
872 // if any path separators, return empty
873 if (tool.includes('/') || (ioUtil.IS_WINDOWS && tool.includes('\\'))) {
874 return '';
875 }
876 // build the list of directories
877 //
878 // Note, technically "where" checks the current directory on Windows. From a toolkit perspective,
879 // it feels like we should not do this. Checking the current directory seems like more of a use
880 // case of a shell, and the which() function exposed by the toolkit should strive for consistency
881 // across platforms.
882 const directories = [];
883 if (process.env.PATH) {
884 for (const p of process.env.PATH.split(path.delimiter)) {
885 if (p) {
886 directories.push(p);
887 }
888 }
889 }
890 // return the first match
891 for (const directory of directories) {
892 const filePath = yield ioUtil.tryGetExecutablePath(directory + path.sep + tool, extensions);
893 if (filePath) {
894 return filePath;
895 }
896 }
897 return '';
898 }
899 catch (err) {
900 throw new Error(`which failed with message ${err.message}`);
901 }
902 });
903 }
904 exports.which = which;
905 function readCopyOptions(options) {
906 const force = options.force == null ? true : options.force;
907 const recursive = Boolean(options.recursive);
908 return { force, recursive };
909 }
910 function cpDirRecursive(sourceDir, destDir, currentDepth, force) {
911 return __awaiter(this, void 0, void 0, function* () {
912 // Ensure there is not a run away recursive copy
913 if (currentDepth >= 255)
914 return;
915 currentDepth++;
916 yield mkdirP(destDir);
917 const files = yield ioUtil.readdir(sourceDir);
918 for (const fileName of files) {
919 const srcFile = `${sourceDir}/${fileName}`;
920 const destFile = `${destDir}/${fileName}`;
921 const srcFileStat = yield ioUtil.lstat(srcFile);
922 if (srcFileStat.isDirectory()) {
923 // Recurse
924 yield cpDirRecursive(srcFile, destFile, currentDepth, force);
925 }
926 else {
927 yield copyFile(srcFile, destFile, force);
928 }
929 }
930 // Change the mode for the newly created directory
931 yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);
932 });
933 }
934 // Buffered file copy
935 function copyFile(srcFile, destFile, force) {
936 return __awaiter(this, void 0, void 0, function* () {
937 if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) {
938 // unlink/re-link it
939 try {
940 yield ioUtil.lstat(destFile);
941 yield ioUtil.unlink(destFile);
942 }
943 catch (e) {
944 // Try to override file permission
945 if (e.code === 'EPERM') {
946 yield ioUtil.chmod(destFile, '0666');
947 yield ioUtil.unlink(destFile);
948 }
949 // other errors = it doesn't exist, no work to do
950 }
951 // Copy over symlink
952 const symlinkFull = yield ioUtil.readlink(srcFile);
953 yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null);
954 }
955 else if (!(yield ioUtil.exists(destFile)) || force) {
956 yield ioUtil.copyFile(srcFile, destFile);
957 }
958 });
959 }
960 //# sourceMappingURL=io.js.map
961
962 /***/ }),
1128 +module.exports = Range
963 1129
964 /***/ 211:
965 /***/ (function(module) {
1130 +const Comparator = __webpack_require__(174)
1131 +const debug = __webpack_require__(548)
1132 +const SemVer = __webpack_require__(65)
1133 +const {
1134 + re,
1135 + t,
1136 + comparatorTrimReplace,
1137 + tildeTrimReplace,
1138 + caretTrimReplace
1139 +} = __webpack_require__(976)
966 1140
967 module.exports = require("https");
1141 +// take a set of comparators and determine whether there
1142 +// exists a version which can satisfy it
1143 +const isSatisfiable = (comparators, options) => {
1144 + let result = true
1145 + const remainingComparators = comparators.slice()
1146 + let testComparator = remainingComparators.pop()
968 1147
969 /***/ }),
1148 + while (result && remainingComparators.length) {
1149 + result = remainingComparators.every((otherComparator) => {
1150 + return testComparator.intersects(otherComparator, options)
1151 + })
970 1152
971 /***/ 280:
972 /***/ (function(module, exports) {
973
974 exports = module.exports = SemVer
975
976 var debug
977 /* istanbul ignore next */
978 if (typeof process === 'object' &&
979 process.env &&
980 process.env.NODE_DEBUG &&
981 /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
982 debug = function () {
983 var args = Array.prototype.slice.call(arguments, 0)
984 args.unshift('SEMVER')
985 console.log.apply(console, args)
1153 + testComparator = remainingComparators.pop()
986 1154 }
987 } else {
988 debug = function () {}
989 }
990
991 // Note: this is the semver.org version of the spec that it implements
992 // Not necessarily the package version of this code.
993 exports.SEMVER_SPEC_VERSION = '2.0.0'
994
995 var MAX_LENGTH = 256
996 var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
997 /* istanbul ignore next */ 9007199254740991
998
999 // Max safe segment length for coercion.
1000 var MAX_SAFE_COMPONENT_LENGTH = 16
1001
1002 // The actual regexps go on exports.re
1003 var re = exports.re = []
1004 var src = exports.src = []
1005 var t = exports.tokens = {}
1006 var R = 0
1007 1155
1008 function tok (n) {
1009 t[n] = R++
1156 + return result
1010 1157 }
1011 1158
1012 // The following Regular Expressions can be used for tokenizing,
1013 // validating, and parsing SemVer version strings.
1014
1015 // ## Numeric Identifier
1016 // A single `0`, or a non-zero digit followed by zero or more digits.
1017
1018 tok('NUMERICIDENTIFIER')
1019 src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
1020 tok('NUMERICIDENTIFIERLOOSE')
1021 src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'
1022
1023 // ## Non-numeric Identifier
1024 // Zero or more digits, followed by a letter or hyphen, and then zero or
1025 // more letters, digits, or hyphens.
1026
1027 tok('NONNUMERICIDENTIFIER')
1028 src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
1029
1030 // ## Main Version
1031 // Three dot-separated numeric identifiers.
1032
1033 tok('MAINVERSION')
1034 src[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\.' +
1035 '(' + src[t.NUMERICIDENTIFIER] + ')\\.' +
1036 '(' + src[t.NUMERICIDENTIFIER] + ')'
1159 +// comprised of xranges, tildes, stars, and gtlt's at this point.
1160 +// already replaced the hyphen ranges
1161 +// turn into a set of JUST comparators.
1162 +const parseComparator = (comp, options) => {
1163 + debug('comp', comp, options)
1164 + comp = replaceCarets(comp, options)
1165 + debug('caret', comp)
1166 + comp = replaceTildes(comp, options)
1167 + debug('tildes', comp)
1168 + comp = replaceXRanges(comp, options)
1169 + debug('xrange', comp)
1170 + comp = replaceStars(comp, options)
1171 + debug('stars', comp)
1172 + return comp
1173 +}
1037 1174
1038 tok('MAINVERSIONLOOSE')
1039 src[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' +
1040 '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\.' +
1041 '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'
1175 +const isX = id => !id || id.toLowerCase() === 'x' || id === '*'
1042 1176
1043 // ## Pre-release Version Identifier
1044 // A numeric identifier, or a non-numeric identifier.
1177 +// ~, ~> --> * (any, kinda silly)
1178 +// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0
1179 +// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0
1180 +// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0
1181 +// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0
1182 +// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0
1183 +const replaceTildes = (comp, options) =>
1184 + comp.trim().split(/\s+/).map((comp) => {
1185 + return replaceTilde(comp, options)
1186 + }).join(' ')
1045 1187
1046 tok('PRERELEASEIDENTIFIER')
1047 src[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +
1048 '|' + src[t.NONNUMERICIDENTIFIER] + ')'
1188 +const replaceTilde = (comp, options) => {
1189 + const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
1190 + return comp.replace(r, (_, M, m, p, pr) => {
1191 + debug('tilde', comp, _, M, m, p, pr)
1192 + let ret
1049 1193
1050 tok('PRERELEASEIDENTIFIERLOOSE')
1051 src[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +
1052 '|' + src[t.NONNUMERICIDENTIFIER] + ')'
1194 + if (isX(M)) {
1195 + ret = ''
1196 + } else if (isX(m)) {
1197 + ret = `>=${M}.0.0 <${+M + 1}.0.0-0`
1198 + } else if (isX(p)) {
1199 + // ~1.2 == >=1.2.0 <1.3.0-0
1200 + ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`
1201 + } else if (pr) {
1202 + debug('replaceTilde pr', pr)
1203 + ret = `>=${M}.${m}.${p}-${pr
1204 + } <${M}.${+m + 1}.0-0`
1205 + } else {
1206 + // ~1.2.3 == >=1.2.3 <1.3.0-0
1207 + ret = `>=${M}.${m}.${p
1208 + } <${M}.${+m + 1}.0-0`
1209 + }
1053 1210
1054 // ## Pre-release Version
1055 // Hyphen, followed by one or more dot-separated pre-release version
1056 // identifiers.
1211 + debug('tilde return', ret)
1212 + return ret
1213 + })
1214 +}
1057 1215
1058 tok('PRERELEASE')
1059 src[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +
1060 '(?:\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'
1216 +// ^ --> * (any, kinda silly)
1217 +// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0
1218 +// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0
1219 +// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0
1220 +// ^1.2.3 --> >=1.2.3 <2.0.0-0
1221 +// ^1.2.0 --> >=1.2.0 <2.0.0-0
1222 +const replaceCarets = (comp, options) =>
1223 + comp.trim().split(/\s+/).map((comp) => {
1224 + return replaceCaret(comp, options)
1225 + }).join(' ')
1061 1226
1062 tok('PRERELEASELOOSE')
1063 src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +
1064 '(?:\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'
1227 +const replaceCaret = (comp, options) => {
1228 + debug('caret', comp, options)
1229 + const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
1230 + const z = options.includePrerelease ? '-0' : ''
1231 + return comp.replace(r, (_, M, m, p, pr) => {
1232 + debug('caret', comp, _, M, m, p, pr)
1233 + let ret
1065 1234
1066 // ## Build Metadata Identifier
1067 // Any combination of digits, letters, or hyphens.
1068
1069 tok('BUILDIDENTIFIER')
1070 src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
1071
1072 // ## Build Metadata
1073 // Plus sign, followed by one or more period-separated build metadata
1074 // identifiers.
1075
1076 tok('BUILD')
1077 src[t.BUILD] = '(?:\\+(' + src[t.BUILDIDENTIFIER] +
1078 '(?:\\.' + src[t.BUILDIDENTIFIER] + ')*))'
1079
1080 // ## Full Version String
1081 // A main version, followed optionally by a pre-release version and
1082 // build metadata.
1083
1084 // Note that the only major, minor, patch, and pre-release sections of
1085 // the version string are capturing groups. The build metadata is not a
1086 // capturing group, because it should not ever be used in version
1087 // comparison.
1088
1089 tok('FULL')
1090 tok('FULLPLAIN')
1091 src[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +
1092 src[t.PRERELEASE] + '?' +
1093 src[t.BUILD] + '?'
1094
1095 src[t.FULL] = '^' + src[t.FULLPLAIN] + '$'
1096
1097 // like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
1098 // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
1099 // common in the npm registry.
1100 tok('LOOSEPLAIN')
1101 src[t.LOOSEPLAIN] = '[v=\\s]*' + src[t.MAINVERSIONLOOSE] +
1102 src[t.PRERELEASELOOSE] + '?' +
1103 src[t.BUILD] + '?'
1104
1105 tok('LOOSE')
1106 src[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'
1107
1108 tok('GTLT')
1109 src[t.GTLT] = '((?:<|>)?=?)'
1235 + if (isX(M)) {
1236 + ret = ''
1237 + } else if (isX(m)) {
1238 + ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`
1239 + } else if (isX(p)) {
1240 + if (M === '0') {
1241 + ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`
1242 + } else {
1243 + ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`
1244 + }
1245 + } else if (pr) {
1246 + debug('replaceCaret pr', pr)
1247 + if (M === '0') {
1248 + if (m === '0') {
1249 + ret = `>=${M}.${m}.${p}-${pr
1250 + } <${M}.${m}.${+p + 1}-0`
1251 + } else {
1252 + ret = `>=${M}.${m}.${p}-${pr
1253 + } <${M}.${+m + 1}.0-0`
1254 + }
1255 + } else {
1256 + ret = `>=${M}.${m}.${p}-${pr
1257 + } <${+M + 1}.0.0-0`
1258 + }
1259 + } else {
1260 + debug('no pr')
1261 + if (M === '0') {
1262 + if (m === '0') {
1263 + ret = `>=${M}.${m}.${p
1264 + }${z} <${M}.${m}.${+p + 1}-0`
1265 + } else {
1266 + ret = `>=${M}.${m}.${p
1267 + }${z} <${M}.${+m + 1}.0-0`
1268 + }
1269 + } else {
1270 + ret = `>=${M}.${m}.${p
1271 + } <${+M + 1}.0.0-0`
1272 + }
1273 + }
1110 1274
1111 // Something like "2.*" or "1.2.x".
1112 // Note that "x.x" is a valid xRange identifer, meaning "any version"
1113 // Only the first item is strictly required.
1114 tok('XRANGEIDENTIFIERLOOSE')
1115 src[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
1116 tok('XRANGEIDENTIFIER')
1117 src[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\*'
1118
1119 tok('XRANGEPLAIN')
1120 src[t.XRANGEPLAIN] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +
1121 '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' +
1122 '(?:\\.(' + src[t.XRANGEIDENTIFIER] + ')' +
1123 '(?:' + src[t.PRERELEASE] + ')?' +
1124 src[t.BUILD] + '?' +
1125 ')?)?'
1126
1127 tok('XRANGEPLAINLOOSE')
1128 src[t.XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
1129 '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
1130 '(?:\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +
1131 '(?:' + src[t.PRERELEASELOOSE] + ')?' +
1132 src[t.BUILD] + '?' +
1133 ')?)?'
1134
1135 tok('XRANGE')
1136 src[t.XRANGE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAIN] + '$'
1137 tok('XRANGELOOSE')
1138 src[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\s*' + src[t.XRANGEPLAINLOOSE] + '$'
1275 + debug('caret return', ret)
1276 + return ret
1277 + })
1278 +}
1139 1279
1140 // Coercion.
1141 // Extract anything that could conceivably be a part of a valid semver
1142 tok('COERCE')
1143 src[t.COERCE] = '(^|[^\\d])' +
1144 '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
1145 '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
1146 '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
1147 '(?:$|[^\\d])'
1148 tok('COERCERTL')
1149 re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
1280 +const replaceXRanges = (comp, options) => {
1281 + debug('replaceXRanges', comp, options)
1282 + return comp.split(/\s+/).map((comp) => {
1283 + return replaceXRange(comp, options)
1284 + }).join(' ')
1285 +}
1150 1286
1151 // Tilde ranges.
1152 // Meaning is "reasonably at or greater than"
1153 tok('LONETILDE')
1154 src[t.LONETILDE] = '(?:~>?)'
1287 +const replaceXRange = (comp, options) => {
1288 + comp = comp.trim()
1289 + const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
1290 + return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
1291 + debug('xRange', comp, ret, gtlt, M, m, p, pr)
1292 + const xM = isX(M)
1293 + const xm = xM || isX(m)
1294 + const xp = xm || isX(p)
1295 + const anyX = xp
1155 1296
1156 tok('TILDETRIM')
1157 src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
1158 re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
1159 var tildeTrimReplace = '$1~'
1297 + if (gtlt === '=' && anyX) {
1298 + gtlt = ''
1299 + }
1160 1300
1161 tok('TILDE')
1162 src[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'
1163 tok('TILDELOOSE')
1164 src[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'
1301 + // if we're including prereleases in the match, then we need
1302 + // to fix this to -0, the lowest possible prerelease value
1303 + pr = options.includePrerelease ? '-0' : ''
1165 1304
1166 // Caret ranges.
1167 // Meaning is "at least and backwards compatible with"
1168 tok('LONECARET')
1169 src[t.LONECARET] = '(?:\\^)'
1305 + if (xM) {
1306 + if (gtlt === '>' || gtlt === '<') {
1307 + // nothing is allowed
1308 + ret = '<0.0.0-0'
1309 + } else {
1310 + // nothing is forbidden
1311 + ret = '*'
1312 + }
1313 + } else if (gtlt && anyX) {
1314 + // we know patch is an x, because we have any x at all.
1315 + // replace X with 0
1316 + if (xm) {
1317 + m = 0
1318 + }
1319 + p = 0
1170 1320
1171 tok('CARETTRIM')
1172 src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
1173 re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
1174 var caretTrimReplace = '$1^'
1321 + if (gtlt === '>') {
1322 + // >1 => >=2.0.0
1323 + // >1.2 => >=1.3.0
1324 + gtlt = '>='
1325 + if (xm) {
1326 + M = +M + 1
1327 + m = 0
1328 + p = 0
1329 + } else {
1330 + m = +m + 1
1331 + p = 0
1332 + }
1333 + } else if (gtlt === '<=') {
1334 + // <=0.7.x is actually <0.8.0, since any 0.7.x should
1335 + // pass. Similarly, <=7.x is actually <8.0.0, etc.
1336 + gtlt = '<'
1337 + if (xm) {
1338 + M = +M + 1
1339 + } else {
1340 + m = +m + 1
1341 + }
1342 + }
1175 1343
1176 tok('CARET')
1177 src[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'
1178 tok('CARETLOOSE')
1179 src[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'
1344 + if (gtlt === '<')
1345 + pr = '-0'
1180 1346
1181 // A simple gt/lt/eq thing, or just "" to indicate "any version"
1182 tok('COMPARATORLOOSE')
1183 src[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'
1184 tok('COMPARATOR')
1185 src[t.COMPARATOR] = '^' + src[t.GTLT] + '\\s*(' + src[t.FULLPLAIN] + ')$|^$'
1347 + ret = `${gtlt + M}.${m}.${p}${pr}`
1348 + } else if (xm) {
1349 + ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`
1350 + } else if (xp) {
1351 + ret = `>=${M}.${m}.0${pr
1352 + } <${M}.${+m + 1}.0-0`
1353 + }
1186 1354
1187 // An expression to strip any whitespace between the gtlt and the thing
1188 // it modifies, so that `> 1.2.3` ==> `>1.2.3`
1189 tok('COMPARATORTRIM')
1190 src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] +
1191 '\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'
1355 + debug('xRange return', ret)
1192 1356
1193 // this one has to use the /g flag
1194 re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
1195 var comparatorTrimReplace = '$1$2$3'
1357 + return ret
1358 + })
1359 +}
1196 1360
1197 // Something like `1.2.3 - 1.2.4`
1198 // Note that these all use the loose form, because they'll be
1199 // checked against either the strict or loose comparator form
1200 // later.
1201 tok('HYPHENRANGE')
1202 src[t.HYPHENRANGE] = '^\\s*(' + src[t.XRANGEPLAIN] + ')' +
1203 '\\s+-\\s+' +
1204 '(' + src[t.XRANGEPLAIN] + ')' +
1205 '\\s*$'
1206
1207 tok('HYPHENRANGELOOSE')
1208 src[t.HYPHENRANGELOOSE] = '^\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +
1209 '\\s+-\\s+' +
1210 '(' + src[t.XRANGEPLAINLOOSE] + ')' +
1211 '\\s*$'
1361 +// Because * is AND-ed with everything else in the comparator,
1362 +// and '' means "any version", just remove the *s entirely.
1363 +const replaceStars = (comp, options) => {
1364 + debug('replaceStars', comp, options)
1365 + // Looseness is ignored here. star is always as loose as it gets!
1366 + return comp.trim().replace(re[t.STAR], '')
1367 +}
1212 1368
1213 // Star ranges basically just allow anything at all.
1214 tok('STAR')
1215 src[t.STAR] = '(<|>)?=?\\s*\\*'
1216
1217 // Compile to actual regexp objects.
1218 // All are flag-free, unless they were created above with a flag.
1219 for (var i = 0; i < R; i++) {
1220 debug(i, src[i])
1221 if (!re[i]) {
1222 re[i] = new RegExp(src[i])
1223 }
1369 +const replaceGTE0 = (comp, options) => {
1370 + debug('replaceGTE0', comp, options)
1371 + return comp.trim()
1372 + .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')
1224 1373 }
1225 1374
1226 exports.parse = parse
1227 function parse (version, options) {
1228 if (!options || typeof options !== 'object') {
1229 options = {
1230 loose: !!options,
1231 includePrerelease: false
1232 }
1375 +// This function is passed to string.replace(re[t.HYPHENRANGE])
1376 +// M, m, patch, prerelease, build
1377 +// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
1378 +// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do
1379 +// 1.2 - 3.4 => >=1.2.0 <3.5.0-0
1380 +const hyphenReplace = incPr => ($0,
1381 + from, fM, fm, fp, fpr, fb,
1382 + to, tM, tm, tp, tpr, tb) => {
1383 + if (isX(fM)) {
1384 + from = ''
1385 + } else if (isX(fm)) {
1386 + from = `>=${fM}.0.0${incPr ? '-0' : ''}`
1387 + } else if (isX(fp)) {
1388 + from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`
1389 + } else if (fpr) {
1390 + from = `>=${from}`
1391 + } else {
1392 + from = `>=${from}${incPr ? '-0' : ''}`
1233 1393 }
1234 1394
1235 if (version instanceof SemVer) {
1236 return version
1395 + if (isX(tM)) {
1396 + to = ''
1397 + } else if (isX(tm)) {
1398 + to = `<${+tM + 1}.0.0-0`
1399 + } else if (isX(tp)) {
1400 + to = `<${tM}.${+tm + 1}.0-0`
1401 + } else if (tpr) {
1402 + to = `<=${tM}.${tm}.${tp}-${tpr}`
1403 + } else if (incPr) {
1404 + to = `<${tM}.${tm}.${+tp + 1}-0`
1405 + } else {
1406 + to = `<=${to}`
1237 1407 }
1238 1408
1239 if (typeof version !== 'string') {
1240 return null
1241 }
1409 + return (`${from} ${to}`).trim()
1410 +}
1242 1411
1243 if (version.length > MAX_LENGTH) {
1244 return null
1412 +const testSet = (set, version, options) => {
1413 + for (let i = 0; i < set.length; i++) {
1414 + if (!set[i].test(version)) {
1415 + return false
1416 + }
1245 1417 }
1246 1418
1247 var r = options.loose ? re[t.LOOSE] : re[t.FULL]
1248 if (!r.test(version)) {
1249 return null
1250 }
1419 + if (version.prerelease.length && !options.includePrerelease) {
1420 + // Find the set of versions that are allowed to have prereleases
1421 + // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
1422 + // That should allow `1.2.3-pr.2` to pass.
1423 + // However, `1.2.4-alpha.notready` should NOT be allowed,
1424 + // even though it's within the range set by the comparators.
1425 + for (let i = 0; i < set.length; i++) {
1426 + debug(set[i].semver)
1427 + if (set[i].semver === Comparator.ANY) {
1428 + continue
1429 + }
1251 1430
1252 try {
1253 return new SemVer(version, options)
1254 } catch (er) {
1255 return null
1256 }
1257 }
1431 + if (set[i].semver.prerelease.length > 0) {
1432 + const allowed = set[i].semver
1433 + if (allowed.major === version.major &&
1434 + allowed.minor === version.minor &&
1435 + allowed.patch === version.patch) {
1436 + return true
1437 + }
1438 + }
1439 + }
1258 1440
1259 exports.valid = valid
1260 function valid (version, options) {
1261 var v = parse(version, options)
1262 return v ? v.version : null
1263 }
1441 + // Version has a -pre, but it's not one of the ones we like.
1442 + return false
1443 + }
1264 1444
1265 exports.clean = clean
1266 function clean (version, options) {
1267 var s = parse(version.trim().replace(/^[=v]+/, ''), options)
1268 return s ? s.version : null
1445 + return true
1269 1446 }
1270 1447
1271 exports.SemVer = SemVer
1272
1273 function SemVer (version, options) {
1274 if (!options || typeof options !== 'object') {
1275 options = {
1276 loose: !!options,
1277 includePrerelease: false
1278 }
1279 }
1280 if (version instanceof SemVer) {
1281 if (version.loose === options.loose) {
1282 return version
1283 } else {
1284 version = version.version
1285 }
1286 } else if (typeof version !== 'string') {
1287 throw new TypeError('Invalid Version: ' + version)
1288 }
1289 1448
1290 if (version.length > MAX_LENGTH) {
1291 throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
1292 }
1449 +/***/ }),
1293 1450
1294 if (!(this instanceof SemVer)) {
1295 return new SemVer(version, options)
1296 }
1451 +/***/ 129:
1452 +/***/ (function(module) {
1297 1453
1298 debug('SemVer', version, options)
1299 this.options = options
1300 this.loose = !!options.loose
1454 +module.exports = require("child_process");
1301 1455
1302 var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
1456 +/***/ }),
1303 1457
1304 if (!m) {
1305 throw new TypeError('Invalid Version: ' + version)
1306 }
1458 +/***/ 164:
1459 +/***/ (function(module, __unusedexports, __webpack_require__) {
1307 1460
1308 this.raw = version
1461 +const SemVer = __webpack_require__(65)
1462 +const Range = __webpack_require__(124)
1463 +const gt = __webpack_require__(486)
1309 1464
1310 // these are actually numbers
1311 this.major = +m[1]
1312 this.minor = +m[2]
1313 this.patch = +m[3]
1465 +const minVersion = (range, loose) => {
1466 + range = new Range(range, loose)
1314 1467
1315 if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
1316 throw new TypeError('Invalid major version')
1468 + let minver = new SemVer('0.0.0')
1469 + if (range.test(minver)) {
1470 + return minver
1317 1471 }
1318 1472
1319 if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
1320 throw new TypeError('Invalid minor version')
1473 + minver = new SemVer('0.0.0-0')
1474 + if (range.test(minver)) {
1475 + return minver
1321 1476 }
1322 1477
1323 if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
1324 throw new TypeError('Invalid patch version')
1325 }
1478 + minver = null
1479 + for (let i = 0; i < range.set.length; ++i) {
1480 + const comparators = range.set[i]
1326 1481
1327 // numberify any prerelease numeric ids
1328 if (!m[4]) {
1329 this.prerelease = []
1330 } else {
1331 this.prerelease = m[4].split('.').map(function (id) {
1332 if (/^[0-9]+$/.test(id)) {
1333 var num = +id
1334 if (num >= 0 && num < MAX_SAFE_INTEGER) {
1335 return num
1336 }
1482 + comparators.forEach((comparator) => {
1483 + // Clone to avoid manipulating the comparator's semver object.
1484 + const compver = new SemVer(comparator.semver.version)
1485 + switch (comparator.operator) {
1486 + case '>':
1487 + if (compver.prerelease.length === 0) {
1488 + compver.patch++
1489 + } else {
1490 + compver.prerelease.push(0)
1491 + }
1492 + compver.raw = compver.format()
1493 + /* fallthrough */
1494 + case '':
1495 + case '>=':
1496 + if (!minver || gt(minver, compver)) {
1497 + minver = compver
1498 + }
1499 + break
1500 + case '<':
1501 + case '<=':
1502 + /* Ignore maximum versions */
1503 + break
1504 + /* istanbul ignore next */
1505 + default:
1506 + throw new Error(`Unexpected operation: ${comparator.operator}`)
1337 1507 }
1338 return id
1339 1508 })
1340 1509 }
1341 1510
1342 this.build = m[5] ? m[5].split('.') : []
1343 this.format()
1344 }
1345
1346 SemVer.prototype.format = function () {
1347 this.version = this.major + '.' + this.minor + '.' + this.patch
1348 if (this.prerelease.length) {
1349 this.version += '-' + this.prerelease.join('.')
1511 + if (minver && range.test(minver)) {
1512 + return minver
1350 1513 }
1351 return this.version
1352 }
1353 1514
1354 SemVer.prototype.toString = function () {
1355 return this.version
1356 }
1357
1358 SemVer.prototype.compare = function (other) {
1359 debug('SemVer.compare', this.version, this.options, other)
1360 if (!(other instanceof SemVer)) {
1361 other = new SemVer(other, this.options)
1362 }
1363
1364 return this.compareMain(other) || this.comparePre(other)
1515 + return null
1365 1516 }
1517 +module.exports = minVersion
1366 1518
1367 SemVer.prototype.compareMain = function (other) {
1368 if (!(other instanceof SemVer)) {
1369 other = new SemVer(other, this.options)
1370 }
1371 1519
1372 return compareIdentifiers(this.major, other.major) ||
1373 compareIdentifiers(this.minor, other.minor) ||
1374 compareIdentifiers(this.patch, other.patch)
1375 }
1520 +/***/ }),
1376 1521
1377 SemVer.prototype.comparePre = function (other) {
1378 if (!(other instanceof SemVer)) {
1379 other = new SemVer(other, this.options)
1380 }
1522 +/***/ 167:
1523 +/***/ (function(module, __unusedexports, __webpack_require__) {
1381 1524
1382 // NOT having a prerelease is > having one
1383 if (this.prerelease.length && !other.prerelease.length) {
1384 return -1
1385 } else if (!this.prerelease.length && other.prerelease.length) {
1386 return 1
1387 } else if (!this.prerelease.length && !other.prerelease.length) {
1388 return 0
1389 }
1525 +const compare = __webpack_require__(874)
1526 +const gte = (a, b, loose) => compare(a, b, loose) >= 0
1527 +module.exports = gte
1390 1528
1391 var i = 0
1392 do {
1393 var a = this.prerelease[i]
1394 var b = other.prerelease[i]
1395 debug('prerelease compare', i, a, b)
1396 if (a === undefined && b === undefined) {
1397 return 0
1398 } else if (b === undefined) {
1399 return 1
1400 } else if (a === undefined) {
1401 return -1
1402 } else if (a === b) {
1403 continue
1404 } else {
1405 return compareIdentifiers(a, b)
1406 }
1407 } while (++i)
1408 }
1409 1529
1410 SemVer.prototype.compareBuild = function (other) {
1411 if (!(other instanceof SemVer)) {
1412 other = new SemVer(other, this.options)
1413 }
1530 +/***/ }),
1414 1531
1415 var i = 0
1416 do {
1417 var a = this.build[i]
1418 var b = other.build[i]
1419 debug('prerelease compare', i, a, b)
1420 if (a === undefined && b === undefined) {
1421 return 0
1422 } else if (b === undefined) {
1423 return 1
1424 } else if (a === undefined) {
1425 return -1
1426 } else if (a === b) {
1427 continue
1428 } else {
1429 return compareIdentifiers(a, b)
1430 }
1431 } while (++i)
1432 }
1532 +/***/ 174:
1533 +/***/ (function(module, __unusedexports, __webpack_require__) {
1433 1534
1434 // preminor will bump the version up to the next minor release, and immediately
1435 // down to pre-release. premajor and prepatch work the same way.
1436 SemVer.prototype.inc = function (release, identifier) {
1437 switch (release) {
1438 case 'premajor':
1439 this.prerelease.length = 0
1440 this.patch = 0
1441 this.minor = 0
1442 this.major++
1443 this.inc('pre', identifier)
1444 break
1445 case 'preminor':
1446 this.prerelease.length = 0
1447 this.patch = 0
1448 this.minor++
1449 this.inc('pre', identifier)
1450 break
1451 case 'prepatch':
1452 // If this is already a prerelease, it will bump to the next version
1453 // drop any prereleases that might already exist, since they are not
1454 // relevant at this point.
1455 this.prerelease.length = 0
1456 this.inc('patch', identifier)
1457 this.inc('pre', identifier)
1458 break
1459 // If the input is a non-prerelease version, this acts the same as
1460 // prepatch.
1461 case 'prerelease':
1462 if (this.prerelease.length === 0) {
1463 this.inc('patch', identifier)
1535 +const ANY = Symbol('SemVer ANY')
1536 +// hoisted class for cyclic dependency
1537 +class Comparator {
1538 + static get ANY () {
1539 + return ANY
1540 + }
1541 + constructor (comp, options) {
1542 + if (!options || typeof options !== 'object') {
1543 + options = {
1544 + loose: !!options,
1545 + includePrerelease: false
1464 1546 }
1465 this.inc('pre', identifier)
1466 break
1547 + }
1467 1548
1468 case 'major':
1469 // If this is a pre-major version, bump up to the same major version.
1470 // Otherwise increment major.
1471 // 1.0.0-5 bumps to 1.0.0
1472 // 1.1.0 bumps to 2.0.0
1473 if (this.minor !== 0 ||
1474 this.patch !== 0 ||
1475 this.prerelease.length === 0) {
1476 this.major++
1477 }
1478 this.minor = 0
1479 this.patch = 0
1480 this.prerelease = []
1481 break
1482 case 'minor':
1483 // If this is a pre-minor version, bump up to the same minor version.
1484 // Otherwise increment minor.
1485 // 1.2.0-5 bumps to 1.2.0
1486 // 1.2.1 bumps to 1.3.0
1487 if (this.patch !== 0 || this.prerelease.length === 0) {
1488 this.minor++
1489 }
1490 this.patch = 0
1491 this.prerelease = []
1492 break
1493 case 'patch':
1494 // If this is not a pre-release version, it will increment the patch.
1495 // If it is a pre-release it will bump up to the same patch version.
1496 // 1.2.0-5 patches to 1.2.0
1497 // 1.2.0 patches to 1.2.1
1498 if (this.prerelease.length === 0) {
1499 this.patch++
1500 }
1501 this.prerelease = []
1502 break
1503 // This probably shouldn't be used publicly.
1504 // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
1505 case 'pre':
1506 if (this.prerelease.length === 0) {
1507 this.prerelease = [0]
1549 + if (comp instanceof Comparator) {
1550 + if (comp.loose === !!options.loose) {
1551 + return comp
1508 1552 } else {
1509 var i = this.prerelease.length
1510 while (--i >= 0) {
1511 if (typeof this.prerelease[i] === 'number') {
1512 this.prerelease[i]++
1513 i = -2
1514 }
1515 }
1516 if (i === -1) {
1517 // didn't increment anything
1518 this.prerelease.push(0)
1519 }
1520 }
1521 if (identifier) {
1522 // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
1523 // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
1524 if (this.prerelease[0] === identifier) {
1525 if (isNaN(this.prerelease[1])) {
1526 this.prerelease = [identifier, 0]
1527 }
1528 } else {
1529 this.prerelease = [identifier, 0]
1530 }
1531 }
1532 break
1533
1534 default:
1535 throw new Error('invalid increment argument: ' + release)
1536 }
1537 this.format()
1538 this.raw = this.version
1539 return this
1540 }
1541
1542 exports.inc = inc
1543 function inc (version, release, loose, identifier) {
1544 if (typeof (loose) === 'string') {
1545 identifier = loose
1546 loose = undefined
1547 }
1548
1549 try {
1550 return new SemVer(version, loose).inc(release, identifier).version
1551 } catch (er) {
1552 return null
1553 }
1554 }
1555
1556 exports.diff = diff
1557 function diff (version1, version2) {
1558 if (eq(version1, version2)) {
1559 return null
1560 } else {
1561 var v1 = parse(version1)
1562 var v2 = parse(version2)
1563 var prefix = ''
1564 if (v1.prerelease.length || v2.prerelease.length) {
1565 prefix = 'pre'
1566 var defaultResult = 'prerelease'
1567 }
1568 for (var key in v1) {
1569 if (key === 'major' || key === 'minor' || key === 'patch') {
1570 if (v1[key] !== v2[key]) {
1571 return prefix + key
1572 }
1553 + comp = comp.value
1573 1554 }
1574 1555 }
1575 return defaultResult // may be undefined
1576 }
1577 }
1578 1556
1579 exports.compareIdentifiers = compareIdentifiers
1557 + debug('comparator', comp, options)
1558 + this.options = options
1559 + this.loose = !!options.loose
1560 + this.parse(comp)
1580 1561
1581 var numeric = /^[0-9]+$/
1582 function compareIdentifiers (a, b) {
1583 var anum = numeric.test(a)
1584 var bnum = numeric.test(b)
1562 + if (this.semver === ANY) {
1563 + this.value = ''
1564 + } else {
1565 + this.value = this.operator + this.semver.version
1566 + }
1585 1567
1586 if (anum && bnum) {
1587 a = +a
1588 b = +b
1568 + debug('comp', this)
1589 1569 }
1590 1570
1591 return a === b ? 0
1592 : (anum && !bnum) ? -1
1593 : (bnum && !anum) ? 1
1594 : a < b ? -1
1595 : 1
1596 }
1597
1598 exports.rcompareIdentifiers = rcompareIdentifiers
1599 function rcompareIdentifiers (a, b) {
1600 return compareIdentifiers(b, a)
1601 }
1602
1603 exports.major = major
1604 function major (a, loose) {
1605 return new SemVer(a, loose).major
1606 }
1607
1608 exports.minor = minor
1609 function minor (a, loose) {
1610 return new SemVer(a, loose).minor
1611 }
1612
1613 exports.patch = patch
1614 function patch (a, loose) {
1615 return new SemVer(a, loose).patch
1616 }
1617
1618 exports.compare = compare
1619 function compare (a, b, loose) {
1620 return new SemVer(a, loose).compare(new SemVer(b, loose))
1621 }
1622
1623 exports.compareLoose = compareLoose
1624 function compareLoose (a, b) {
1625 return compare(a, b, true)
1626 }
1627
1628 exports.compareBuild = compareBuild
1629 function compareBuild (a, b, loose) {
1630 var versionA = new SemVer(a, loose)
1631 var versionB = new SemVer(b, loose)
1632 return versionA.compare(versionB) || versionA.compareBuild(versionB)
1633 }
1634
1635 exports.rcompare = rcompare
1636 function rcompare (a, b, loose) {
1637 return compare(b, a, loose)
1638 }
1639
1640 exports.sort = sort
1641 function sort (list, loose) {
1642 return list.sort(function (a, b) {
1643 return exports.compareBuild(a, b, loose)
1644 })
1645 }
1646
1647 exports.rsort = rsort
1648 function rsort (list, loose) {
1649 return list.sort(function (a, b) {
1650 return exports.compareBuild(b, a, loose)
1651 })
1652 }
1653
1654 exports.gt = gt
1655 function gt (a, b, loose) {
1656 return compare(a, b, loose) > 0
1657 }
1658
1659 exports.lt = lt
1660 function lt (a, b, loose) {
1661 return compare(a, b, loose) < 0
1662 }
1663
1664 exports.eq = eq
1665 function eq (a, b, loose) {
1666 return compare(a, b, loose) === 0
1667 }
1668
1669 exports.neq = neq
1670 function neq (a, b, loose) {
1671 return compare(a, b, loose) !== 0
1672 }
1673
1674 exports.gte = gte
1675 function gte (a, b, loose) {
1676 return compare(a, b, loose) >= 0
1677 }
1678
1679 exports.lte = lte
1680 function lte (a, b, loose) {
1681 return compare(a, b, loose) <= 0
1682 }
1683
1684 exports.cmp = cmp
1685 function cmp (a, op, b, loose) {
1686 switch (op) {
1687 case '===':
1688 if (typeof a === 'object')
1689 a = a.version
1690 if (typeof b === 'object')
1691 b = b.version
1692 return a === b
1693
1694 case '!==':
1695 if (typeof a === 'object')
1696 a = a.version
1697 if (typeof b === 'object')
1698 b = b.version
1699 return a !== b
1700
1701 case '':
1702 case '=':
1703 case '==':
1704 return eq(a, b, loose)
1705
1706 case '!=':
1707 return neq(a, b, loose)
1708
1709 case '>':
1710 return gt(a, b, loose)
1711
1712 case '>=':
1713 return gte(a, b, loose)
1571 + parse (comp) {
1572 + const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
1573 + const m = comp.match(r)
1714 1574
1715 case '<':
1716 return lt(a, b, loose)
1717
1718 case '<=':
1719 return lte(a, b, loose)
1720
1721 default:
1722 throw new TypeError('Invalid operator: ' + op)
1723 }
1724 }
1575 + if (!m) {
1576 + throw new TypeError(`Invalid comparator: ${comp}`)
1577 + }
1725 1578
1726 exports.Comparator = Comparator
1727 function Comparator (comp, options) {
1728 if (!options || typeof options !== 'object') {
1729 options = {
1730 loose: !!options,
1731 includePrerelease: false
1579 + this.operator = m[1] !== undefined ? m[1] : ''
1580 + if (this.operator === '=') {
1581 + this.operator = ''
1732 1582 }
1733 }
1734 1583
1735 if (comp instanceof Comparator) {
1736 if (comp.loose === !!options.loose) {
1737 return comp
1584 + // if it literally is just '>' or '' then allow anything.
1585 + if (!m[2]) {
1586 + this.semver = ANY
1738 1587 } else {
1739 comp = comp.value
1588 + this.semver = new SemVer(m[2], this.options.loose)
1740 1589 }
1741 1590 }
1742 1591
1743 if (!(this instanceof Comparator)) {
1744 return new Comparator(comp, options)
1745 }
1746
1747 debug('comparator', comp, options)
1748 this.options = options
1749 this.loose = !!options.loose
1750 this.parse(comp)
1751
1752 if (this.semver === ANY) {
1753 this.value = ''
1754 } else {
1755 this.value = this.operator + this.semver.version
1756 }
1757
1758 debug('comp', this)
1759 }
1760
1761 var ANY = {}
1762 Comparator.prototype.parse = function (comp) {
1763 var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
1764 var m = comp.match(r)
1765
1766 if (!m) {
1767 throw new TypeError('Invalid comparator: ' + comp)
1768 }
1769
1770 this.operator = m[1] !== undefined ? m[1] : ''
1771 if (this.operator === '=') {
1772 this.operator = ''
1773 }
1774
1775 // if it literally is just '>' or '' then allow anything.
1776 if (!m[2]) {
1777 this.semver = ANY
1778 } else {
1779 this.semver = new SemVer(m[2], this.options.loose)
1592 + toString () {
1593 + return this.value
1780 1594 }
1781 }
1782
1783 Comparator.prototype.toString = function () {
1784 return this.value
1785 }
1786 1595
1787 Comparator.prototype.test = function (version) {
1788 debug('Comparator.test', version, this.options.loose)
1596 + test (version) {
1597 + debug('Comparator.test', version, this.options.loose)
1789 1598
1790 if (this.semver === ANY || version === ANY) {
1791 return true
1792 }
1793
1794 if (typeof version === 'string') {
1795 try {
1796 version = new SemVer(version, this.options)
1797 } catch (er) {
1798 return false
1599 + if (this.semver === ANY || version === ANY) {
1600 + return true
1799 1601 }
1800 }
1801
1802 return cmp(version, this.operator, this.semver, this.options)
1803 }
1804 1602
1805 Comparator.prototype.intersects = function (comp, options) {
1806 if (!(comp instanceof Comparator)) {
1807 throw new TypeError('a Comparator is required')
1808 }
1809
1810 if (!options || typeof options !== 'object') {
1811 options = {
1812 loose: !!options,
1813 includePrerelease: false
1603 + if (typeof version === 'string') {
1604 + try {
1605 + version = new SemVer(version, this.options)
1606 + } catch (er) {
1607 + return false
1608 + }
1814 1609 }
1815 }
1816 1610
1817 var rangeTmp
1818
1819 if (this.operator === '') {
1820 if (this.value === '') {
1821 return true
1822 }
1823 rangeTmp = new Range(comp.value, options)
1824 return satisfies(this.value, rangeTmp, options)
1825 } else if (comp.operator === '') {
1826 if (comp.value === '') {
1827 return true
1828 }
1829 rangeTmp = new Range(this.value, options)
1830 return satisfies(comp.semver, rangeTmp, options)
1611 + return cmp(version, this.operator, this.semver, this.options)
1831 1612 }
1832 1613
1833 var sameDirectionIncreasing =
1834 (this.operator === '>=' || this.operator === '>') &&
1835 (comp.operator === '>=' || comp.operator === '>')
1836 var sameDirectionDecreasing =
1837 (this.operator === '<=' || this.operator === '<') &&
1838 (comp.operator === '<=' || comp.operator === '<')
1839 var sameSemVer = this.semver.version === comp.semver.version
1840 var differentDirectionsInclusive =
1841 (this.operator === '>=' || this.operator === '<=') &&
1842 (comp.operator === '>=' || comp.operator === '<=')
1843 var oppositeDirectionsLessThan =
1844 cmp(this.semver, '<', comp.semver, options) &&
1845 ((this.operator === '>=' || this.operator === '>') &&
1846 (comp.operator === '<=' || comp.operator === '<'))
1847 var oppositeDirectionsGreaterThan =
1848 cmp(this.semver, '>', comp.semver, options) &&
1849 ((this.operator === '<=' || this.operator === '<') &&
1850 (comp.operator === '>=' || comp.operator === '>'))
1851
1852 return sameDirectionIncreasing || sameDirectionDecreasing ||
1853 (sameSemVer && differentDirectionsInclusive) ||
1854 oppositeDirectionsLessThan || oppositeDirectionsGreaterThan
1855 }
1856
1857 exports.Range = Range
1858 function Range (range, options) {
1859 if (!options || typeof options !== 'object') {
1860 options = {
1861 loose: !!options,
1862 includePrerelease: false
1614 + intersects (comp, options) {
1615 + if (!(comp instanceof Comparator)) {
1616 + throw new TypeError('a Comparator is required')
1863 1617 }
1864 }
1865 1618
1866 if (range instanceof Range) {
1867 if (range.loose === !!options.loose &&
1868 range.includePrerelease === !!options.includePrerelease) {
1869 return range
1870 } else {
1871 return new Range(range.raw, options)
1619 + if (!options || typeof options !== 'object') {
1620 + options = {
1621 + loose: !!options,
1622 + includePrerelease: false
1623 + }
1872 1624 }
1873 }
1874
1875 if (range instanceof Comparator) {
1876 return new Range(range.value, options)
1877 }
1878 1625
1879 if (!(this instanceof Range)) {
1880 return new Range(range, options)
1881 }
1626 + if (this.operator === '') {
1627 + if (this.value === '') {
1628 + return true
1629 + }
1630 + return new Range(comp.value, options).test(this.value)
1631 + } else if (comp.operator === '') {
1632 + if (comp.value === '') {
1633 + return true
1634 + }
1635 + return new Range(this.value, options).test(comp.semver)
1636 + }
1882 1637
1883 this.options = options
1884 this.loose = !!options.loose
1885 this.includePrerelease = !!options.includePrerelease
1886
1887 // First, split based on boolean or ||
1888 this.raw = range
1889 this.set = range.split(/\s*\|\|\s*/).map(function (range) {
1890 return this.parseRange(range.trim())
1891 }, this).filter(function (c) {
1892 // throw out any that are not relevant for whatever reason
1893 return c.length
1894 })
1638 + const sameDirectionIncreasing =
1639 + (this.operator === '>=' || this.operator === '>') &&
1640 + (comp.operator === '>=' || comp.operator === '>')
1641 + const sameDirectionDecreasing =
1642 + (this.operator === '<=' || this.operator === '<') &&
1643 + (comp.operator === '<=' || comp.operator === '<')
1644 + const sameSemVer = this.semver.version === comp.semver.version
1645 + const differentDirectionsInclusive =
1646 + (this.operator === '>=' || this.operator === '<=') &&
1647 + (comp.operator === '>=' || comp.operator === '<=')
1648 + const oppositeDirectionsLessThan =
1649 + cmp(this.semver, '<', comp.semver, options) &&
1650 + (this.operator === '>=' || this.operator === '>') &&
1651 + (comp.operator === '<=' || comp.operator === '<')
1652 + const oppositeDirectionsGreaterThan =
1653 + cmp(this.semver, '>', comp.semver, options) &&
1654 + (this.operator === '<=' || this.operator === '<') &&
1655 + (comp.operator === '>=' || comp.operator === '>')
1895 1656
1896 if (!this.set.length) {
1897 throw new TypeError('Invalid SemVer Range: ' + range)
1657 + return (
1658 + sameDirectionIncreasing ||
1659 + sameDirectionDecreasing ||
1660 + (sameSemVer && differentDirectionsInclusive) ||
1661 + oppositeDirectionsLessThan ||
1662 + oppositeDirectionsGreaterThan
1663 + )
1898 1664 }
1899
1900 this.format()
1901 }
1902
1903 Range.prototype.format = function () {
1904 this.range = this.set.map(function (comps) {
1905 return comps.join(' ').trim()
1906 }).join('||').trim()
1907 return this.range
1908 }
1909
1910 Range.prototype.toString = function () {
1911 return this.range
1912 1665 }
1913 1666
1914 Range.prototype.parseRange = function (range) {
1915 var loose = this.options.loose
1916 range = range.trim()
1917 // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
1918 var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
1919 range = range.replace(hr, hyphenReplace)
1920 debug('hyphen replace', range)
1921 // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
1922 range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
1923 debug('comparator trim', range, re[t.COMPARATORTRIM])
1667 +module.exports = Comparator
1924 1668
1925 // `~ 1.2.3` => `~1.2.3`
1926 range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
1669 +const {re, t} = __webpack_require__(976)
1670 +const cmp = __webpack_require__(752)
1671 +const debug = __webpack_require__(548)
1672 +const SemVer = __webpack_require__(65)
1673 +const Range = __webpack_require__(124)
1927 1674
1928 // `^ 1.2.3` => `^1.2.3`
1929 range = range.replace(re[t.CARETTRIM], caretTrimReplace)
1930 1675
1931 // normalize spaces
1932 range = range.split(/\s+/).join(' ')
1676 +/***/ }),
1933 1677
1934 // At this point, the range is completely trimmed and
1935 // ready to be split into comparators.
1678 +/***/ 181:
1679 +/***/ (function(module) {
1936 1680
1937 var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
1938 var set = range.split(' ').map(function (comp) {
1939 return parseComparator(comp, this.options)
1940 }, this).join(' ').split(/\s+/)
1941 if (this.options.loose) {
1942 // in loose mode, throw out any that are not valid comparators
1943 set = set.filter(function (comp) {
1944 return !!comp.match(compRe)
1945 })
1946 }
1947 set = set.map(function (comp) {
1948 return new Comparator(comp, this.options)
1949 }, this)
1681 +// Note: this is the semver.org version of the spec that it implements
1682 +// Not necessarily the package version of this code.
1683 +const SEMVER_SPEC_VERSION = '2.0.0'
1950 1684
1951 return set
1952 }
1685 +const MAX_LENGTH = 256
1686 +const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
1687 + /* istanbul ignore next */ 9007199254740991
1953 1688
1954 Range.prototype.intersects = function (range, options) {
1955 if (!(range instanceof Range)) {
1956 throw new TypeError('a Range is required')
1957 }
1689 +// Max safe segment length for coercion.
1690 +const MAX_SAFE_COMPONENT_LENGTH = 16
1958 1691
1959 return this.set.some(function (thisComparators) {
1960 return (
1961 isSatisfiable(thisComparators, options) &&
1962 range.set.some(function (rangeComparators) {
1963 return (
1964 isSatisfiable(rangeComparators, options) &&
1965 thisComparators.every(function (thisComparator) {
1966 return rangeComparators.every(function (rangeComparator) {
1967 return thisComparator.intersects(rangeComparator, options)
1968 })
1969 })
1970 )
1971 })
1972 )
1973 })
1692 +module.exports = {
1693 + SEMVER_SPEC_VERSION,
1694 + MAX_LENGTH,
1695 + MAX_SAFE_INTEGER,
1696 + MAX_SAFE_COMPONENT_LENGTH
1974 1697 }
1975 1698
1976 // take a set of comparators and determine whether there
1977 // exists a version which can satisfy it
1978 function isSatisfiable (comparators, options) {
1979 var result = true
1980 var remainingComparators = comparators.slice()
1981 var testComparator = remainingComparators.pop()
1982 1699
1983 while (result && remainingComparators.length) {
1984 result = remainingComparators.every(function (otherComparator) {
1985 return testComparator.intersects(otherComparator, options)
1986 })
1700 +/***/ }),
1987 1701
1988 testComparator = remainingComparators.pop()
1989 }
1702 +/***/ 194:
1703 +/***/ (function(__unusedmodule, exports, __webpack_require__) {
1990 1704
1991 return result
1992 }
1705 +"use strict";
1993 1706
1994 // Mostly just for testing and legacy API reasons
1995 exports.toComparators = toComparators
1996 function toComparators (range, options) {
1997 return new Range(range, options).set.map(function (comp) {
1998 return comp.map(function (c) {
1999 return c.value
2000 }).join(' ').trim().split(' ')
2001 })
1707 +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
1708 + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
1709 + return new (P || (P = Promise))(function (resolve, reject) {
1710 + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
1711 + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
1712 + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
1713 + step((generator = generator.apply(thisArg, _arguments || [])).next());
1714 + });
1715 +};
1716 +Object.defineProperty(exports, "__esModule", { value: true });
1717 +const childProcess = __webpack_require__(129);
1718 +const path = __webpack_require__(622);
1719 +const util_1 = __webpack_require__(669);
1720 +const ioUtil = __webpack_require__(408);
1721 +const exec = util_1.promisify(childProcess.exec);
1722 +/**
1723 + * Copies a file or folder.
1724 + * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
1725 + *
1726 + * @param source source path
1727 + * @param dest destination path
1728 + * @param options optional. See CopyOptions.
1729 + */
1730 +function cp(source, dest, options = {}) {
1731 + return __awaiter(this, void 0, void 0, function* () {
1732 + const { force, recursive } = readCopyOptions(options);
1733 + const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;
1734 + // Dest is an existing file, but not forcing
1735 + if (destStat && destStat.isFile() && !force) {
1736 + return;
1737 + }
1738 + // If dest is an existing directory, should copy inside.
1739 + const newDest = destStat && destStat.isDirectory()
1740 + ? path.join(dest, path.basename(source))
1741 + : dest;
1742 + if (!(yield ioUtil.exists(source))) {
1743 + throw new Error(`no such file or directory: ${source}`);
1744 + }
1745 + const sourceStat = yield ioUtil.stat(source);
1746 + if (sourceStat.isDirectory()) {
1747 + if (!recursive) {
1748 + throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);
1749 + }
1750 + else {
1751 + yield cpDirRecursive(source, newDest, 0, force);
1752 + }
1753 + }
1754 + else {
1755 + if (path.relative(source, newDest) === '') {
1756 + // a file cannot be copied to itself
1757 + throw new Error(`'${newDest}' and '${source}' are the same file`);
1758 + }
1759 + yield copyFile(source, newDest, force);
1760 + }
1761 + });
1762 +}
1763 +exports.cp = cp;
1764 +/**
1765 + * Moves a path.
1766 + *
1767 + * @param source source path
1768 + * @param dest destination path
1769 + * @param options optional. See MoveOptions.
1770 + */
1771 +function mv(source, dest, options = {}) {
1772 + return __awaiter(this, void 0, void 0, function* () {
1773 + if (yield ioUtil.exists(dest)) {
1774 + let destExists = true;
1775 + if (yield ioUtil.isDirectory(dest)) {
1776 + // If dest is directory copy src into dest
1777 + dest = path.join(dest, path.basename(source));
1778 + destExists = yield ioUtil.exists(dest);
1779 + }
1780 + if (destExists) {
1781 + if (options.force == null || options.force) {
1782 + yield rmRF(dest);
1783 + }
1784 + else {
1785 + throw new Error('Destination already exists');
1786 + }
1787 + }
1788 + }
1789 + yield mkdirP(path.dirname(dest));
1790 + yield ioUtil.rename(source, dest);
1791 + });
1792 +}
1793 +exports.mv = mv;
1794 +/**
1795 + * Remove a path recursively with force
1796 + *
1797 + * @param inputPath path to remove
1798 + */
1799 +function rmRF(inputPath) {
1800 + return __awaiter(this, void 0, void 0, function* () {
1801 + if (ioUtil.IS_WINDOWS) {
1802 + // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another
1803 + // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del.
1804 + try {
1805 + if (yield ioUtil.isDirectory(inputPath, true)) {
1806 + yield exec(`rd /s /q "${inputPath}"`);
1807 + }
1808 + else {
1809 + yield exec(`del /f /a "${inputPath}"`);
1810 + }
1811 + }
1812 + catch (err) {
1813 + // if you try to delete a file that doesn't exist, desired result is achieved
1814 + // other errors are valid
1815 + if (err.code !== 'ENOENT')
1816 + throw err;
1817 + }
1818 + // Shelling out fails to remove a symlink folder with missing source, this unlink catches that
1819 + try {
1820 + yield ioUtil.unlink(inputPath);
1821 + }
1822 + catch (err) {
1823 + // if you try to delete a file that doesn't exist, desired result is achieved
1824 + // other errors are valid
1825 + if (err.code !== 'ENOENT')
1826 + throw err;
1827 + }
1828 + }
1829 + else {
1830 + let isDir = false;
1831 + try {
1832 + isDir = yield ioUtil.isDirectory(inputPath);
1833 + }
1834 + catch (err) {
1835 + // if you try to delete a file that doesn't exist, desired result is achieved
1836 + // other errors are valid
1837 + if (err.code !== 'ENOENT')
1838 + throw err;
1839 + return;
1840 + }
1841 + if (isDir) {
1842 + yield exec(`rm -rf "${inputPath}"`);
1843 + }
1844 + else {
1845 + yield ioUtil.unlink(inputPath);
1846 + }
1847 + }
1848 + });
1849 +}
1850 +exports.rmRF = rmRF;
1851 +/**
1852 + * Make a directory. Creates the full path with folders in between
1853 + * Will throw if it fails
1854 + *
1855 + * @param fsPath path to create
1856 + * @returns Promise<void>
1857 + */
1858 +function mkdirP(fsPath) {
1859 + return __awaiter(this, void 0, void 0, function* () {
1860 + yield ioUtil.mkdirP(fsPath);
1861 + });
1862 +}
1863 +exports.mkdirP = mkdirP;
1864 +/**
1865 + * Returns path of a tool had the tool actually been invoked. Resolves via paths.
1866 + * If you check and the tool does not exist, it will throw.
1867 + *
1868 + * @param tool name of the tool
1869 + * @param check whether to check if tool exists
1870 + * @returns Promise<string> path to tool
1871 + */
1872 +function which(tool, check) {
1873 + return __awaiter(this, void 0, void 0, function* () {
1874 + if (!tool) {
1875 + throw new Error("parameter 'tool' is required");
1876 + }
1877 + // recursive when check=true
1878 + if (check) {
1879 + const result = yield which(tool, false);
1880 + if (!result) {
1881 + if (ioUtil.IS_WINDOWS) {
1882 + throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);
1883 + }
1884 + else {
1885 + throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);
1886 + }
1887 + }
1888 + }
1889 + try {
1890 + // build the list of extensions to try
1891 + const extensions = [];
1892 + if (ioUtil.IS_WINDOWS && process.env.PATHEXT) {
1893 + for (const extension of process.env.PATHEXT.split(path.delimiter)) {
1894 + if (extension) {
1895 + extensions.push(extension);
1896 + }
1897 + }
1898 + }
1899 + // if it's rooted, return it if exists. otherwise return empty.
1900 + if (ioUtil.isRooted(tool)) {
1901 + const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);
1902 + if (filePath) {
1903 + return filePath;
1904 + }
1905 + return '';
1906 + }
1907 + // if any path separators, return empty
1908 + if (tool.includes('/') || (ioUtil.IS_WINDOWS && tool.includes('\\'))) {
1909 + return '';
1910 + }
1911 + // build the list of directories
1912 + //
1913 + // Note, technically "where" checks the current directory on Windows. From a toolkit perspective,
1914 + // it feels like we should not do this. Checking the current directory seems like more of a use
1915 + // case of a shell, and the which() function exposed by the toolkit should strive for consistency
1916 + // across platforms.
1917 + const directories = [];
1918 + if (process.env.PATH) {
1919 + for (const p of process.env.PATH.split(path.delimiter)) {
1920 + if (p) {
1921 + directories.push(p);
1922 + }
1923 + }
1924 + }
1925 + // return the first match
1926 + for (const directory of directories) {
1927 + const filePath = yield ioUtil.tryGetExecutablePath(directory + path.sep + tool, extensions);
1928 + if (filePath) {
1929 + return filePath;
1930 + }
1931 + }
1932 + return '';
1933 + }
1934 + catch (err) {
1935 + throw new Error(`which failed with message ${err.message}`);
1936 + }
1937 + });
1938 +}
1939 +exports.which = which;
1940 +function readCopyOptions(options) {
1941 + const force = options.force == null ? true : options.force;
1942 + const recursive = Boolean(options.recursive);
1943 + return { force, recursive };
1944 +}
1945 +function cpDirRecursive(sourceDir, destDir, currentDepth, force) {
1946 + return __awaiter(this, void 0, void 0, function* () {
1947 + // Ensure there is not a run away recursive copy
1948 + if (currentDepth >= 255)
1949 + return;
1950 + currentDepth++;
1951 + yield mkdirP(destDir);
1952 + const files = yield ioUtil.readdir(sourceDir);
1953 + for (const fileName of files) {
1954 + const srcFile = `${sourceDir}/${fileName}`;
1955 + const destFile = `${destDir}/${fileName}`;
1956 + const srcFileStat = yield ioUtil.lstat(srcFile);
1957 + if (srcFileStat.isDirectory()) {
1958 + // Recurse
1959 + yield cpDirRecursive(srcFile, destFile, currentDepth, force);
1960 + }
1961 + else {
1962 + yield copyFile(srcFile, destFile, force);
1963 + }
1964 + }
1965 + // Change the mode for the newly created directory
1966 + yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);
1967 + });
1968 +}
1969 +// Buffered file copy
1970 +function copyFile(srcFile, destFile, force) {
1971 + return __awaiter(this, void 0, void 0, function* () {
1972 + if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) {
1973 + // unlink/re-link it
1974 + try {
1975 + yield ioUtil.lstat(destFile);
1976 + yield ioUtil.unlink(destFile);
1977 + }
1978 + catch (e) {
1979 + // Try to override file permission
1980 + if (e.code === 'EPERM') {
1981 + yield ioUtil.chmod(destFile, '0666');
1982 + yield ioUtil.unlink(destFile);
1983 + }
1984 + // other errors = it doesn't exist, no work to do
1985 + }
1986 + // Copy over symlink
1987 + const symlinkFull = yield ioUtil.readlink(srcFile);
1988 + yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null);
1989 + }
1990 + else if (!(yield ioUtil.exists(destFile)) || force) {
1991 + yield ioUtil.copyFile(srcFile, destFile);
1992 + }
1993 + });
1994 +}
1995 +//# sourceMappingURL=io.js.map
1996 +
1997 +/***/ }),
1998 +
1999 +/***/ 211:
2000 +/***/ (function(module) {
2001 +
2002 +module.exports = require("https");
2003 +
2004 +/***/ }),
2005 +
2006 +/***/ 219:
2007 +/***/ (function(module, __unusedexports, __webpack_require__) {
2008 +
2009 +const Range = __webpack_require__(124)
2010 +
2011 +// Mostly just for testing and legacy API reasons
2012 +const toComparators = (range, options) =>
2013 + new Range(range, options).set
2014 + .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))
2015 +
2016 +module.exports = toComparators
2017 +
2018 +
2019 +/***/ }),
2020 +
2021 +/***/ 259:
2022 +/***/ (function(module, __unusedexports, __webpack_require__) {
2023 +
2024 +const Range = __webpack_require__(124)
2025 +const intersects = (r1, r2, options) => {
2026 + r1 = new Range(r1, options)
2027 + r2 = new Range(r2, options)
2028 + return r1.intersects(r2)
2029 +}
2030 +module.exports = intersects
2031 +
2032 +
2033 +/***/ }),
2034 +
2035 +/***/ 283:
2036 +/***/ (function(module, __unusedexports, __webpack_require__) {
2037 +
2038 +const compare = __webpack_require__(874)
2039 +const compareLoose = (a, b) => compare(a, b, true)
2040 +module.exports = compareLoose
2041 +
2042 +
2043 +/***/ }),
2044 +
2045 +/***/ 298:
2046 +/***/ (function(module, __unusedexports, __webpack_require__) {
2047 +
2048 +const compare = __webpack_require__(874)
2049 +const eq = (a, b, loose) => compare(a, b, loose) === 0
2050 +module.exports = eq
2051 +
2052 +
2053 +/***/ }),
2054 +
2055 +/***/ 310:
2056 +/***/ (function(module, __unusedexports, __webpack_require__) {
2057 +
2058 +const Range = __webpack_require__(124)
2059 +const satisfies = (version, range, options) => {
2060 + try {
2061 + range = new Range(range, options)
2062 + } catch (er) {
2063 + return false
2064 + }
2065 + return range.test(version)
2066 +}
2067 +module.exports = satisfies
2068 +
2069 +
2070 +/***/ }),
2071 +
2072 +/***/ 323:
2073 +/***/ (function(module, __unusedexports, __webpack_require__) {
2074 +
2075 +const outside = __webpack_require__(462)
2076 +// Determine if version is less than all the versions possible in the range
2077 +const ltr = (version, range, options) => outside(version, range, '<', options)
2078 +module.exports = ltr
2079 +
2080 +
2081 +/***/ }),
2082 +
2083 +/***/ 357:
2084 +/***/ (function(module) {
2085 +
2086 +module.exports = require("assert");
2087 +
2088 +/***/ }),
2089 +
2090 +/***/ 408:
2091 +/***/ (function(__unusedmodule, exports, __webpack_require__) {
2092 +
2093 +"use strict";
2094 +
2095 +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2096 + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2097 + return new (P || (P = Promise))(function (resolve, reject) {
2098 + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
2099 + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
2100 + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
2101 + step((generator = generator.apply(thisArg, _arguments || [])).next());
2102 + });
2103 +};
2104 +var _a;
2105 +Object.defineProperty(exports, "__esModule", { value: true });
2106 +const assert_1 = __webpack_require__(357);
2107 +const fs = __webpack_require__(747);
2108 +const path = __webpack_require__(622);
2109 +_a = fs.promises, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;
2110 +exports.IS_WINDOWS = process.platform === 'win32';
2111 +function exists(fsPath) {
2112 + return __awaiter(this, void 0, void 0, function* () {
2113 + try {
2114 + yield exports.stat(fsPath);
2115 + }
2116 + catch (err) {
2117 + if (err.code === 'ENOENT') {
2118 + return false;
2119 + }
2120 + throw err;
2121 + }
2122 + return true;
2123 + });
2124 +}
2125 +exports.exists = exists;
2126 +function isDirectory(fsPath, useStat = false) {
2127 + return __awaiter(this, void 0, void 0, function* () {
2128 + const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);
2129 + return stats.isDirectory();
2130 + });
2131 +}
2132 +exports.isDirectory = isDirectory;
2133 +/**
2134 + * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:
2135 + * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases).
2136 + */
2137 +function isRooted(p) {
2138 + p = normalizeSeparators(p);
2139 + if (!p) {
2140 + throw new Error('isRooted() parameter "p" cannot be empty');
2141 + }
2142 + if (exports.IS_WINDOWS) {
2143 + return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello
2144 + ); // e.g. C: or C:\hello
2145 + }
2146 + return p.startsWith('/');
2147 +}
2148 +exports.isRooted = isRooted;
2149 +/**
2150 + * Recursively create a directory at `fsPath`.
2151 + *
2152 + * This implementation is optimistic, meaning it attempts to create the full
2153 + * path first, and backs up the path stack from there.
2154 + *
2155 + * @param fsPath The path to create
2156 + * @param maxDepth The maximum recursion depth
2157 + * @param depth The current recursion depth
2158 + */
2159 +function mkdirP(fsPath, maxDepth = 1000, depth = 1) {
2160 + return __awaiter(this, void 0, void 0, function* () {
2161 + assert_1.ok(fsPath, 'a path argument must be provided');
2162 + fsPath = path.resolve(fsPath);
2163 + if (depth >= maxDepth)
2164 + return exports.mkdir(fsPath);
2165 + try {
2166 + yield exports.mkdir(fsPath);
2167 + return;
2168 + }
2169 + catch (err) {
2170 + switch (err.code) {
2171 + case 'ENOENT': {
2172 + yield mkdirP(path.dirname(fsPath), maxDepth, depth + 1);
2173 + yield exports.mkdir(fsPath);
2174 + return;
2175 + }
2176 + default: {
2177 + let stats;
2178 + try {
2179 + stats = yield exports.stat(fsPath);
2180 + }
2181 + catch (err2) {
2182 + throw err;
2183 + }
2184 + if (!stats.isDirectory())
2185 + throw err;
2186 + }
2187 + }
2188 + }
2189 + });
2190 +}
2191 +exports.mkdirP = mkdirP;
2192 +/**
2193 + * Best effort attempt to determine whether a file exists and is executable.
2194 + * @param filePath file path to check
2195 + * @param extensions additional file extensions to try
2196 + * @return if file exists and is executable, returns the file path. otherwise empty string.
2197 + */
2198 +function tryGetExecutablePath(filePath, extensions) {
2199 + return __awaiter(this, void 0, void 0, function* () {
2200 + let stats = undefined;
2201 + try {
2202 + // test file exists
2203 + stats = yield exports.stat(filePath);
2204 + }
2205 + catch (err) {
2206 + if (err.code !== 'ENOENT') {
2207 + // eslint-disable-next-line no-console
2208 + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
2209 + }
2210 + }
2211 + if (stats && stats.isFile()) {
2212 + if (exports.IS_WINDOWS) {
2213 + // on Windows, test for valid extension
2214 + const upperExt = path.extname(filePath).toUpperCase();
2215 + if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {
2216 + return filePath;
2217 + }
2218 + }
2219 + else {
2220 + if (isUnixExecutable(stats)) {
2221 + return filePath;
2222 + }
2223 + }
2224 + }
2225 + // try each extension
2226 + const originalFilePath = filePath;
2227 + for (const extension of extensions) {
2228 + filePath = originalFilePath + extension;
2229 + stats = undefined;
2230 + try {
2231 + stats = yield exports.stat(filePath);
2232 + }
2233 + catch (err) {
2234 + if (err.code !== 'ENOENT') {
2235 + // eslint-disable-next-line no-console
2236 + console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
2237 + }
2238 + }
2239 + if (stats && stats.isFile()) {
2240 + if (exports.IS_WINDOWS) {
2241 + // preserve the case of the actual file (since an extension was appended)
2242 + try {
2243 + const directory = path.dirname(filePath);
2244 + const upperName = path.basename(filePath).toUpperCase();
2245 + for (const actualName of yield exports.readdir(directory)) {
2246 + if (upperName === actualName.toUpperCase()) {
2247 + filePath = path.join(directory, actualName);
2248 + break;
2249 + }
2250 + }
2251 + }
2252 + catch (err) {
2253 + // eslint-disable-next-line no-console
2254 + console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);
2255 + }
2256 + return filePath;
2257 + }
2258 + else {
2259 + if (isUnixExecutable(stats)) {
2260 + return filePath;
2261 + }
2262 + }
2263 + }
2264 + }
2265 + return '';
2266 + });
2267 +}
2268 +exports.tryGetExecutablePath = tryGetExecutablePath;
2269 +function normalizeSeparators(p) {
2270 + p = p || '';
2271 + if (exports.IS_WINDOWS) {
2272 + // convert slashes on Windows
2273 + p = p.replace(/\//g, '\\');
2274 + // remove redundant slashes
2275 + return p.replace(/\\\\+/g, '\\');
2276 + }
2277 + // remove redundant slashes
2278 + return p.replace(/\/\/+/g, '/');
2279 +}
2280 +// on Mac/Linux, test the execute bit
2281 +// R W X R W X R W X
2282 +// 256 128 64 32 16 8 4 2 1
2283 +function isUnixExecutable(stats) {
2284 + return ((stats.mode & 1) > 0 ||
2285 + ((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||
2286 + ((stats.mode & 64) > 0 && stats.uid === process.getuid()));
2002 2287 }
2288 +//# sourceMappingURL=io-util.js.map
2003 2289
2004 // comprised of xranges, tildes, stars, and gtlt's at this point.
2005 // already replaced the hyphen ranges
2006 // turn into a set of JUST comparators.
2007 function parseComparator (comp, options) {
2008 debug('comp', comp, options)
2009 comp = replaceCarets(comp, options)
2010 debug('caret', comp)
2011 comp = replaceTildes(comp, options)
2012 debug('tildes', comp)
2013 comp = replaceXRanges(comp, options)
2014 debug('xrange', comp)
2015 comp = replaceStars(comp, options)
2016 debug('stars', comp)
2017 return comp
2290 +/***/ }),
2291 +
2292 +/***/ 431:
2293 +/***/ (function(__unusedmodule, exports, __webpack_require__) {
2294 +
2295 +"use strict";
2296 +
2297 +var __importStar = (this && this.__importStar) || function (mod) {
2298 + if (mod && mod.__esModule) return mod;
2299 + var result = {};
2300 + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
2301 + result["default"] = mod;
2302 + return result;
2303 +};
2304 +Object.defineProperty(exports, "__esModule", { value: true });
2305 +const os = __importStar(__webpack_require__(87));
2306 +/**
2307 + * Commands
2308 + *
2309 + * Command Format:
2310 + * ::name key=value,key=value::message
2311 + *
2312 + * Examples:
2313 + * ::warning::This is the message
2314 + * ::set-env name=MY_VAR::some value
2315 + */
2316 +function issueCommand(command, properties, message) {
2317 + const cmd = new Command(command, properties, message);
2318 + process.stdout.write(cmd.toString() + os.EOL);
2319 +}
2320 +exports.issueCommand = issueCommand;
2321 +function issue(name, message = '') {
2322 + issueCommand(name, {}, message);
2323 +}
2324 +exports.issue = issue;
2325 +const CMD_STRING = '::';
2326 +class Command {
2327 + constructor(command, properties, message) {
2328 + if (!command) {
2329 + command = 'missing.command';
2330 + }
2331 + this.command = command;
2332 + this.properties = properties;
2333 + this.message = message;
2334 + }
2335 + toString() {
2336 + let cmdStr = CMD_STRING + this.command;
2337 + if (this.properties && Object.keys(this.properties).length > 0) {
2338 + cmdStr += ' ';
2339 + let first = true;
2340 + for (const key in this.properties) {
2341 + if (this.properties.hasOwnProperty(key)) {
2342 + const val = this.properties[key];
2343 + if (val) {
2344 + if (first) {
2345 + first = false;
2346 + }
2347 + else {
2348 + cmdStr += ',';
2349 + }
2350 + cmdStr += `${key}=${escapeProperty(val)}`;
2351 + }
2352 + }
2353 + }
2354 + }
2355 + cmdStr += `${CMD_STRING}${escapeData(this.message)}`;
2356 + return cmdStr;
2357 + }
2358 +}
2359 +/**
2360 + * Sanitizes an input into a string so it can be passed into issueCommand safely
2361 + * @param input input to sanitize into a string
2362 + */
2363 +function toCommandValue(input) {
2364 + if (input === null || input === undefined) {
2365 + return '';
2366 + }
2367 + else if (typeof input === 'string' || input instanceof String) {
2368 + return input;
2369 + }
2370 + return JSON.stringify(input);
2371 +}
2372 +exports.toCommandValue = toCommandValue;
2373 +function escapeData(s) {
2374 + return toCommandValue(s)
2375 + .replace(/%/g, '%25')
2376 + .replace(/\r/g, '%0D')
2377 + .replace(/\n/g, '%0A');
2378 +}
2379 +function escapeProperty(s) {
2380 + return toCommandValue(s)
2381 + .replace(/%/g, '%25')
2382 + .replace(/\r/g, '%0D')
2383 + .replace(/\n/g, '%0A')
2384 + .replace(/:/g, '%3A')
2385 + .replace(/,/g, '%2C');
2018 2386 }
2387 +//# sourceMappingURL=command.js.map
2388 +
2389 +/***/ }),
2390 +
2391 +/***/ 449:
2392 +/***/ (function(module, __unusedexports, __webpack_require__) {
2393 +
2394 +const {exec} = __webpack_require__(917)
2395 +const path = __webpack_require__(622)
2396 +const semver = __webpack_require__(876)
2397 +
2398 +module.exports = {installElixir, installOTP}
2019 2399
2020 function isX (id) {
2021 return !id || id.toLowerCase() === 'x' || id === '*'
2400 +/**
2401 + * Install Elixir.
2402 + *
2403 + * @param {string} version
2404 + * @param {string} otpMajor
2405 + */
2406 +async function installElixir(version, otpMajor) {
2407 + if (process.platform === 'linux') {
2408 + const otpString = otpMajor ? `-otp-${otpMajor}` : ''
2409 + await exec(__webpack_require__.ab + "install-elixir", [version, otpString])
2410 + }
2022 2411 }
2023 2412
2024 // ~, ~> --> * (any, kinda silly)
2025 // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
2026 // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
2027 // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
2028 // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
2029 // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
2030 function replaceTildes (comp, options) {
2031 return comp.trim().split(/\s+/).map(function (comp) {
2032 return replaceTilde(comp, options)
2033 }).join(' ')
2413 +/**
2414 + * Install OTP.
2415 + *
2416 + * @param {string} version
2417 + */
2418 +async function installOTP(version) {
2419 + if (process.platform === 'linux') {
2420 + await exec(__webpack_require__.ab + "install-otp", [version])
2421 + return
2422 + }
2423 +
2424 + throw new Error(
2425 + '@actions/setup-elixir only supports Ubuntu Linux at this time'
2426 + )
2034 2427 }
2035 2428
2036 function replaceTilde (comp, options) {
2037 var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
2038 return comp.replace(r, function (_, M, m, p, pr) {
2039 debug('tilde', comp, _, M, m, p, pr)
2040 var ret
2041 2429
2042 if (isX(M)) {
2043 ret = ''
2044 } else if (isX(m)) {
2045 ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
2046 } else if (isX(p)) {
2047 // ~1.2 == >=1.2.0 <1.3.0
2048 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
2049 } else if (pr) {
2050 debug('replaceTilde pr', pr)
2051 ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
2052 ' <' + M + '.' + (+m + 1) + '.0'
2053 } else {
2054 // ~1.2.3 == >=1.2.3 <1.3.0
2055 ret = '>=' + M + '.' + m + '.' + p +
2056 ' <' + M + '.' + (+m + 1) + '.0'
2057 }
2430 +/***/ }),
2058 2431
2059 debug('tilde return', ret)
2060 return ret
2061 })
2062 }
2432 +/***/ 462:
2433 +/***/ (function(module, __unusedexports, __webpack_require__) {
2434 +
2435 +const SemVer = __webpack_require__(65)
2436 +const Comparator = __webpack_require__(174)
2437 +const {ANY} = Comparator
2438 +const Range = __webpack_require__(124)
2439 +const satisfies = __webpack_require__(310)
2440 +const gt = __webpack_require__(486)
2441 +const lt = __webpack_require__(586)
2442 +const lte = __webpack_require__(898)
2443 +const gte = __webpack_require__(167)
2444 +
2445 +const outside = (version, range, hilo, options) => {
2446 + version = new SemVer(version, options)
2447 + range = new Range(range, options)
2448 +
2449 + let gtfn, ltefn, ltfn, comp, ecomp
2450 + switch (hilo) {
2451 + case '>':
2452 + gtfn = gt
2453 + ltefn = lte
2454 + ltfn = lt
2455 + comp = '>'
2456 + ecomp = '>='
2457 + break
2458 + case '<':
2459 + gtfn = lt
2460 + ltefn = gte
2461 + ltfn = gt
2462 + comp = '<'
2463 + ecomp = '<='
2464 + break
2465 + default:
2466 + throw new TypeError('Must provide a hilo val of "<" or ">"')
2467 + }
2468 +
2469 + // If it satisifes the range it is not outside
2470 + if (satisfies(version, range, options)) {
2471 + return false
2472 + }
2063 2473
2064 // ^ --> * (any, kinda silly)
2065 // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
2066 // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
2067 // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
2068 // ^1.2.3 --> >=1.2.3 <2.0.0
2069 // ^1.2.0 --> >=1.2.0 <2.0.0
2070 function replaceCarets (comp, options) {
2071 return comp.trim().split(/\s+/).map(function (comp) {
2072 return replaceCaret(comp, options)
2073 }).join(' ')
2074 }
2474 + // From now on, variable terms are as if we're in "gtr" mode.
2475 + // but note that everything is flipped for the "ltr" function.
2075 2476
2076 function replaceCaret (comp, options) {
2077 debug('caret', comp, options)
2078 var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
2079 return comp.replace(r, function (_, M, m, p, pr) {
2080 debug('caret', comp, _, M, m, p, pr)
2081 var ret
2477 + for (let i = 0; i < range.set.length; ++i) {
2478 + const comparators = range.set[i]
2082 2479
2083 if (isX(M)) {
2084 ret = ''
2085 } else if (isX(m)) {
2086 ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
2087 } else if (isX(p)) {
2088 if (M === '0') {
2089 ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
2090 } else {
2091 ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'
2092 }
2093 } else if (pr) {
2094 debug('replaceCaret pr', pr)
2095 if (M === '0') {
2096 if (m === '0') {
2097 ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
2098 ' <' + M + '.' + m + '.' + (+p + 1)
2099 } else {
2100 ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
2101 ' <' + M + '.' + (+m + 1) + '.0'
2102 }
2103 } else {
2104 ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
2105 ' <' + (+M + 1) + '.0.0'
2480 + let high = null
2481 + let low = null
2482 +
2483 + comparators.forEach((comparator) => {
2484 + if (comparator.semver === ANY) {
2485 + comparator = new Comparator('>=0.0.0')
2106 2486 }
2107 } else {
2108 debug('no pr')
2109 if (M === '0') {
2110 if (m === '0') {
2111 ret = '>=' + M + '.' + m + '.' + p +
2112 ' <' + M + '.' + m + '.' + (+p + 1)
2113 } else {
2114 ret = '>=' + M + '.' + m + '.' + p +
2115 ' <' + M + '.' + (+m + 1) + '.0'
2116 }
2117 } else {
2118 ret = '>=' + M + '.' + m + '.' + p +
2119 ' <' + (+M + 1) + '.0.0'
2487 + high = high || comparator
2488 + low = low || comparator
2489 + if (gtfn(comparator.semver, high.semver, options)) {
2490 + high = comparator
2491 + } else if (ltfn(comparator.semver, low.semver, options)) {
2492 + low = comparator
2120 2493 }
2121 }
2494 + })
2122 2495
2123 debug('caret return', ret)
2124 return ret
2125 })
2126 }
2496 + // If the edge version comparator has a operator then our version
2497 + // isn't outside it
2498 + if (high.operator === comp || high.operator === ecomp) {
2499 + return false
2500 + }
2127 2501
2128 function replaceXRanges (comp, options) {
2129 debug('replaceXRanges', comp, options)
2130 return comp.split(/\s+/).map(function (comp) {
2131 return replaceXRange(comp, options)
2132 }).join(' ')
2502 + // If the lowest version comparator has an operator and our version
2503 + // is less than it then it isn't higher than the range
2504 + if ((!low.operator || low.operator === comp) &&
2505 + ltefn(version, low.semver)) {
2506 + return false
2507 + } else if (low.operator === ecomp && ltfn(version, low.semver)) {
2508 + return false
2509 + }
2510 + }
2511 + return true
2133 2512 }
2134 2513
2135 function replaceXRange (comp, options) {
2136 comp = comp.trim()
2137 var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
2138 return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
2139 debug('xRange', comp, ret, gtlt, M, m, p, pr)
2140 var xM = isX(M)
2141 var xm = xM || isX(m)
2142 var xp = xm || isX(p)
2143 var anyX = xp
2514 +module.exports = outside
2144 2515
2145 if (gtlt === '=' && anyX) {
2146 gtlt = ''
2147 }
2148 2516
2149 // if we're including prereleases in the match, then we need
2150 // to fix this to -0, the lowest possible prerelease value
2151 pr = options.includePrerelease ? '-0' : ''
2517 +/***/ }),
2152 2518
2153 if (xM) {
2154 if (gtlt === '>' || gtlt === '<') {
2155 // nothing is allowed
2156 ret = '<0.0.0-0'
2157 } else {
2158 // nothing is forbidden
2159 ret = '*'
2160 }
2161 } else if (gtlt && anyX) {
2162 // we know patch is an x, because we have any x at all.
2163 // replace X with 0
2164 if (xm) {
2165 m = 0
2166 }
2167 p = 0
2519 +/***/ 470:
2520 +/***/ (function(__unusedmodule, exports, __webpack_require__) {
2168 2521
2169 if (gtlt === '>') {
2170 // >1 => >=2.0.0
2171 // >1.2 => >=1.3.0
2172 // >1.2.3 => >= 1.2.4
2173 gtlt = '>='
2174 if (xm) {
2175 M = +M + 1
2176 m = 0
2177 p = 0
2178 } else {
2179 m = +m + 1
2180 p = 0
2181 }
2182 } else if (gtlt === '<=') {
2183 // <=0.7.x is actually <0.8.0, since any 0.7.x should
2184 // pass. Similarly, <=7.x is actually <8.0.0, etc.
2185 gtlt = '<'
2186 if (xm) {
2187 M = +M + 1
2188 } else {
2189 m = +m + 1
2190 }
2191 }
2522 +"use strict";
2192 2523
2193 ret = gtlt + M + '.' + m + '.' + p + pr
2194 } else if (xm) {
2195 ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr
2196 } else if (xp) {
2197 ret = '>=' + M + '.' + m + '.0' + pr +
2198 ' <' + M + '.' + (+m + 1) + '.0' + pr
2524 +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2525 + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2526 + return new (P || (P = Promise))(function (resolve, reject) {
2527 + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
2528 + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
2529 + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
2530 + step((generator = generator.apply(thisArg, _arguments || [])).next());
2531 + });
2532 +};
2533 +var __importStar = (this && this.__importStar) || function (mod) {
2534 + if (mod && mod.__esModule) return mod;
2535 + var result = {};
2536 + if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
2537 + result["default"] = mod;
2538 + return result;
2539 +};
2540 +Object.defineProperty(exports, "__esModule", { value: true });
2541 +const command_1 = __webpack_require__(431);
2542 +const os = __importStar(__webpack_require__(87));
2543 +const path = __importStar(__webpack_require__(622));
2544 +/**
2545 + * The code to exit an action
2546 + */
2547 +var ExitCode;
2548 +(function (ExitCode) {
2549 + /**
2550 + * A code indicating that the action was successful
2551 + */
2552 + ExitCode[ExitCode["Success"] = 0] = "Success";
2553 + /**
2554 + * A code indicating that the action was a failure
2555 + */
2556 + ExitCode[ExitCode["Failure"] = 1] = "Failure";
2557 +})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));
2558 +//-----------------------------------------------------------------------
2559 +// Variables
2560 +//-----------------------------------------------------------------------
2561 +/**
2562 + * Sets env variable for this action and future actions in the job
2563 + * @param name the name of the variable to set
2564 + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify
2565 + */
2566 +// eslint-disable-next-line @typescript-eslint/no-explicit-any
2567 +function exportVariable(name, val) {
2568 + const convertedVal = command_1.toCommandValue(val);
2569 + process.env[name] = convertedVal;
2570 + command_1.issueCommand('set-env', { name }, convertedVal);
2571 +}
2572 +exports.exportVariable = exportVariable;
2573 +/**
2574 + * Registers a secret which will get masked from logs
2575 + * @param secret value of the secret
2576 + */
2577 +function setSecret(secret) {
2578 + command_1.issueCommand('add-mask', {}, secret);
2579 +}
2580 +exports.setSecret = setSecret;
2581 +/**
2582 + * Prepends inputPath to the PATH (for this action and future actions)
2583 + * @param inputPath
2584 + */
2585 +function addPath(inputPath) {
2586 + command_1.issueCommand('add-path', {}, inputPath);
2587 + process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
2588 +}
2589 +exports.addPath = addPath;
2590 +/**
2591 + * Gets the value of an input. The value is also trimmed.
2592 + *
2593 + * @param name name of the input to get
2594 + * @param options optional. See InputOptions.
2595 + * @returns string
2596 + */
2597 +function getInput(name, options) {
2598 + const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';
2599 + if (options && options.required && !val) {
2600 + throw new Error(`Input required and not supplied: ${name}`);
2199 2601 }
2200
2201 debug('xRange return', ret)
2202
2203 return ret
2204 })
2602 + return val.trim();
2603 +}
2604 +exports.getInput = getInput;
2605 +/**
2606 + * Sets the value of an output.
2607 + *
2608 + * @param name name of the output to set
2609 + * @param value value to store. Non-string values will be converted to a string via JSON.stringify
2610 + */
2611 +// eslint-disable-next-line @typescript-eslint/no-explicit-any
2612 +function setOutput(name, value) {
2613 + command_1.issueCommand('set-output', { name }, value);
2614 +}
2615 +exports.setOutput = setOutput;
2616 +/**
2617 + * Enables or disables the echoing of commands into stdout for the rest of the step.
2618 + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.
2619 + *
2620 + */
2621 +function setCommandEcho(enabled) {
2622 + command_1.issue('echo', enabled ? 'on' : 'off');
2623 +}
2624 +exports.setCommandEcho = setCommandEcho;
2625 +//-----------------------------------------------------------------------
2626 +// Results
2627 +//-----------------------------------------------------------------------
2628 +/**
2629 + * Sets the action status to failed.
2630 + * When the action exits it will be with an exit code of 1
2631 + * @param message add error issue message
2632 + */
2633 +function setFailed(message) {
2634 + process.exitCode = ExitCode.Failure;
2635 + error(message);
2636 +}
2637 +exports.setFailed = setFailed;
2638 +//-----------------------------------------------------------------------
2639 +// Logging Commands
2640 +//-----------------------------------------------------------------------
2641 +/**
2642 + * Gets whether Actions Step Debug is on or not
2643 + */
2644 +function isDebug() {
2645 + return process.env['RUNNER_DEBUG'] === '1';
2646 +}
2647 +exports.isDebug = isDebug;
2648 +/**
2649 + * Writes debug message to user log
2650 + * @param message debug message
2651 + */
2652 +function debug(message) {
2653 + command_1.issueCommand('debug', {}, message);
2654 +}
2655 +exports.debug = debug;
2656 +/**
2657 + * Adds an error issue
2658 + * @param message error issue message. Errors will be converted to string via toString()
2659 + */
2660 +function error(message) {
2661 + command_1.issue('error', message instanceof Error ? message.toString() : message);
2205 2662 }
2206
2207 // Because * is AND-ed with everything else in the comparator,
2208 // and '' means "any version", just remove the *s entirely.
2209 function replaceStars (comp, options) {
2210 debug('replaceStars', comp, options)
2211 // Looseness is ignored here. star is always as loose as it gets!
2212 return comp.trim().replace(re[t.STAR], '')
2663 +exports.error = error;
2664 +/**
2665 + * Adds an warning issue
2666 + * @param message warning issue message. Errors will be converted to string via toString()
2667 + */
2668 +function warning(message) {
2669 + command_1.issue('warning', message instanceof Error ? message.toString() : message);
2213 2670 }
2214
2215 // This function is passed to string.replace(re[t.HYPHENRANGE])
2216 // M, m, patch, prerelease, build
2217 // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
2218 // 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
2219 // 1.2 - 3.4 => >=1.2.0 <3.5.0
2220 function hyphenReplace ($0,
2221 from, fM, fm, fp, fpr, fb,
2222 to, tM, tm, tp, tpr, tb) {
2223 if (isX(fM)) {
2224 from = ''
2225 } else if (isX(fm)) {
2226 from = '>=' + fM + '.0.0'
2227 } else if (isX(fp)) {
2228 from = '>=' + fM + '.' + fm + '.0'
2229 } else {
2230 from = '>=' + from
2231 }
2232
2233 if (isX(tM)) {
2234 to = ''
2235 } else if (isX(tm)) {
2236 to = '<' + (+tM + 1) + '.0.0'
2237 } else if (isX(tp)) {
2238 to = '<' + tM + '.' + (+tm + 1) + '.0'
2239 } else if (tpr) {
2240 to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr
2241 } else {
2242 to = '<=' + to
2243 }
2244
2245 return (from + ' ' + to).trim()
2671 +exports.warning = warning;
2672 +/**
2673 + * Writes info to log with console.log.
2674 + * @param message info message
2675 + */
2676 +function info(message) {
2677 + process.stdout.write(message + os.EOL);
2246 2678 }
2247
2248 // if ANY of the sets match ALL of its comparators, then pass
2249 Range.prototype.test = function (version) {
2250 if (!version) {
2251 return false
2252 }
2253
2254 if (typeof version === 'string') {
2255 try {
2256 version = new SemVer(version, this.options)
2257 } catch (er) {
2258 return false
2259 }
2260 }
2261
2262 for (var i = 0; i < this.set.length; i++) {
2263 if (testSet(this.set[i], version, this.options)) {
2264 return true
2265 }
2266 }
2267 return false
2679 +exports.info = info;
2680 +/**
2681 + * Begin an output group.
2682 + *
2683 + * Output until the next `groupEnd` will be foldable in this group
2684 + *
2685 + * @param name The name of the output group
2686 + */
2687 +function startGroup(name) {
2688 + command_1.issue('group', name);
2268 2689 }
2269
2270 function testSet (set, version, options) {
2271 for (var i = 0; i < set.length; i++) {
2272 if (!set[i].test(version)) {
2273 return false
2274 }
2275 }
2276
2277 if (version.prerelease.length && !options.includePrerelease) {
2278 // Find the set of versions that are allowed to have prereleases
2279 // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
2280 // That should allow `1.2.3-pr.2` to pass.
2281 // However, `1.2.4-alpha.notready` should NOT be allowed,
2282 // even though it's within the range set by the comparators.
2283 for (i = 0; i < set.length; i++) {
2284 debug(set[i].semver)
2285 if (set[i].semver === ANY) {
2286 continue
2287 }
2288
2289 if (set[i].semver.prerelease.length > 0) {
2290 var allowed = set[i].semver
2291 if (allowed.major === version.major &&
2292 allowed.minor === version.minor &&
2293 allowed.patch === version.patch) {
2294 return true
2295 }
2296 }
2297 }
2298
2299 // Version has a -pre, but it's not one of the ones we like.
2300 return false
2301 }
2302
2303 return true
2690 +exports.startGroup = startGroup;
2691 +/**
2692 + * End an output group.
2693 + */
2694 +function endGroup() {
2695 + command_1.issue('endgroup');
2304 2696 }
2305
2306 exports.satisfies = satisfies
2307 function satisfies (version, range, options) {
2308 try {
2309 range = new Range(range, options)
2310 } catch (er) {
2311 return false
2312 }
2313 return range.test(version)
2697 +exports.endGroup = endGroup;
2698 +/**
2699 + * Wrap an asynchronous function call in a group.
2700 + *
2701 + * Returns the same type as the function itself.
2702 + *
2703 + * @param name The name of the group
2704 + * @param fn The function to wrap in the group
2705 + */
2706 +function group(name, fn) {
2707 + return __awaiter(this, void 0, void 0, function* () {
2708 + startGroup(name);
2709 + let result;
2710 + try {
2711 + result = yield fn();
2712 + }
2713 + finally {
2714 + endGroup();
2715 + }
2716 + return result;
2717 + });
2314 2718 }
2315
2316 exports.maxSatisfying = maxSatisfying
2317 function maxSatisfying (versions, range, options) {
2318 var max = null
2319 var maxSV = null
2320 try {
2321 var rangeObj = new Range(range, options)
2322 } catch (er) {
2323 return null
2324 }
2325 versions.forEach(function (v) {
2326 if (rangeObj.test(v)) {
2327 // satisfies(v, range, options)
2328 if (!max || maxSV.compare(v) === -1) {
2329 // compare(max, v, true)
2330 max = v
2331 maxSV = new SemVer(max, options)
2332 }
2333 }
2334 })
2335 return max
2719 +exports.group = group;
2720 +//-----------------------------------------------------------------------
2721 +// Wrapper action state
2722 +//-----------------------------------------------------------------------
2723 +/**
2724 + * Saves state for current action, the state can only be retrieved by this action's post job execution.
2725 + *
2726 + * @param name name of the state to store
2727 + * @param value value to store. Non-string values will be converted to a string via JSON.stringify
2728 + */
2729 +// eslint-disable-next-line @typescript-eslint/no-explicit-any
2730 +function saveState(name, value) {
2731 + command_1.issueCommand('save-state', { name }, value);
2336 2732 }
2337
2338 exports.minSatisfying = minSatisfying
2339 function minSatisfying (versions, range, options) {
2340 var min = null
2341 var minSV = null
2342 try {
2343 var rangeObj = new Range(range, options)
2344 } catch (er) {
2345 return null
2346 }
2347 versions.forEach(function (v) {
2348 if (rangeObj.test(v)) {
2349 // satisfies(v, range, options)
2350 if (!min || minSV.compare(v) === 1) {
2351 // compare(min, v, true)
2352 min = v
2353 minSV = new SemVer(min, options)
2354 }
2355 }
2356 })
2357 return min
2733 +exports.saveState = saveState;
2734 +/**
2735 + * Gets the value of an state set by this action's main execution.
2736 + *
2737 + * @param name name of the state to get
2738 + * @returns string
2739 + */
2740 +function getState(name) {
2741 + return process.env[`STATE_${name}`] || '';
2358 2742 }
2743 +exports.getState = getState;
2744 +//# sourceMappingURL=core.js.map
2359 2745
2360 exports.minVersion = minVersion
2361 function minVersion (range, loose) {
2362 range = new Range(range, loose)
2363
2364 var minver = new SemVer('0.0.0')
2365 if (range.test(minver)) {
2366 return minver
2367 }
2368
2369 minver = new SemVer('0.0.0-0')
2370 if (range.test(minver)) {
2371 return minver
2372 }
2373
2374 minver = null
2375 for (var i = 0; i < range.set.length; ++i) {
2376 var comparators = range.set[i]
2377
2378 comparators.forEach(function (comparator) {
2379 // Clone to avoid manipulating the comparator's semver object.
2380 var compver = new SemVer(comparator.semver.version)
2381 switch (comparator.operator) {
2382 case '>':
2383 if (compver.prerelease.length === 0) {
2384 compver.patch++
2385 } else {
2386 compver.prerelease.push(0)
2387 }
2388 compver.raw = compver.format()
2389 /* fallthrough */
2390 case '':
2391 case '>=':
2392 if (!minver || gt(minver, compver)) {
2393 minver = compver
2394 }
2395 break
2396 case '<':
2397 case '<=':
2398 /* Ignore maximum versions */
2399 break
2400 /* istanbul ignore next */
2401 default:
2402 throw new Error('Unexpected operation: ' + comparator.operator)
2403 }
2404 })
2405 }
2406
2407 if (minver && range.test(minver)) {
2408 return minver
2409 }
2746 +/***/ }),
2410 2747
2411 return null
2412 }
2748 +/***/ 480:
2749 +/***/ (function(module, __unusedexports, __webpack_require__) {
2413 2750
2414 exports.validRange = validRange
2415 function validRange (range, options) {
2751 +const Range = __webpack_require__(124)
2752 +const validRange = (range, options) => {
2416 2753 try {
2417 2754 // Return '*' instead of '' so that truthiness works.
2418 2755 // This will throw if it's invalid anyway
2419 2756 return new Range(range, options).range || '*'
2420 2757 } catch (er) {
2421 return null
2422 }
2423 }
2424
2425 // Determine if version is less than all the versions possible in the range
2426 exports.ltr = ltr
2427 function ltr (version, range, options) {
2428 return outside(version, range, '<', options)
2429 }
2430
2431 // Determine if version is greater than all the versions possible in the range.
2432 exports.gtr = gtr
2433 function gtr (version, range, options) {
2434 return outside(version, range, '>', options)
2435 }
2436
2437 exports.outside = outside
2438 function outside (version, range, hilo, options) {
2439 version = new SemVer(version, options)
2440 range = new Range(range, options)
2441
2442 var gtfn, ltefn, ltfn, comp, ecomp
2443 switch (hilo) {
2444 case '>':
2445 gtfn = gt
2446 ltefn = lte
2447 ltfn = lt
2448 comp = '>'
2449 ecomp = '>='
2450 break
2451 case '<':
2452 gtfn = lt
2453 ltefn = gte
2454 ltfn = gt
2455 comp = '<'
2456 ecomp = '<='
2457 break
2458 default:
2459 throw new TypeError('Must provide a hilo val of "<" or ">"')
2758 + return null
2460 2759 }
2760 +}
2761 +module.exports = validRange
2461 2762
2462 // If it satisifes the range it is not outside
2463 if (satisfies(version, range, options)) {
2464 return false
2465 }
2466 2763
2467 // From now on, variable terms are as if we're in "gtr" mode.
2468 // but note that everything is flipped for the "ltr" function.
2764 +/***/ }),
2469 2765
2470 for (var i = 0; i < range.set.length; ++i) {
2471 var comparators = range.set[i]
2766 +/***/ 486:
2767 +/***/ (function(module, __unusedexports, __webpack_require__) {
2472 2768
2473 var high = null
2474 var low = null
2769 +const compare = __webpack_require__(874)
2770 +const gt = (a, b, loose) => compare(a, b, loose) > 0
2771 +module.exports = gt
2475 2772
2476 comparators.forEach(function (comparator) {
2477 if (comparator.semver === ANY) {
2478 comparator = new Comparator('>=0.0.0')
2479 }
2480 high = high || comparator
2481 low = low || comparator
2482 if (gtfn(comparator.semver, high.semver, options)) {
2483 high = comparator
2484 } else if (ltfn(comparator.semver, low.semver, options)) {
2485 low = comparator
2486 }
2487 })
2488 2773
2489 // If the edge version comparator has a operator then our version
2490 // isn't outside it
2491 if (high.operator === comp || high.operator === ecomp) {
2492 return false
2493 }
2774 +/***/ }),
2494 2775
2495 // If the lowest version comparator has an operator and our version
2496 // is less than it then it isn't higher than the range
2497 if ((!low.operator || low.operator === comp) &&
2498 ltefn(version, low.semver)) {
2499 return false
2500 } else if (low.operator === ecomp && ltfn(version, low.semver)) {
2501 return false
2502 }
2503 }
2504 return true
2505 }
2776 +/***/ 489:
2777 +/***/ (function(module, __unusedexports, __webpack_require__) {
2506 2778
2507 exports.prerelease = prerelease
2508 function prerelease (version, options) {
2509 var parsed = parse(version, options)
2510 return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
2511 }
2779 +const SemVer = __webpack_require__(65)
2780 +const patch = (a, loose) => new SemVer(a, loose).patch
2781 +module.exports = patch
2512 2782
2513 exports.intersects = intersects
2514 function intersects (r1, r2, options) {
2515 r1 = new Range(r1, options)
2516 r2 = new Range(r2, options)
2517 return r1.intersects(r2)
2518 }
2519 2783
2520 exports.coerce = coerce
2521 function coerce (version, options) {
2784 +/***/ }),
2785 +
2786 +/***/ 499:
2787 +/***/ (function(module, __unusedexports, __webpack_require__) {
2788 +
2789 +const SemVer = __webpack_require__(65)
2790 +const parse = __webpack_require__(830)
2791 +const {re, t} = __webpack_require__(976)
2792 +
2793 +const coerce = (version, options) => {
2522 2794 if (version instanceof SemVer) {
2523 2795 return version
2524 2796 }
@@ -2533,7 +2805,7 @@ function coerce (version, options) {
2533 2805
2534 2806 options = options || {}
2535 2807
2536 var match = null
2808 + let match = null
2537 2809 if (!options.rtl) {
2538 2810 match = version.match(re[t.COERCE])
2539 2811 } else {
@@ -2545,635 +2817,518 @@ function coerce (version, options) {
2545 2817 // Manually set the index so as to pick up overlapping matches.
2546 2818 // Stop when we get a match that ends at the string end, since no
2547 2819 // coercible string can be more right-ward without the same terminus.
2548 var next
2820 + let next
2549 2821 while ((next = re[t.COERCERTL].exec(version)) &&
2550 (!match || match.index + match[0].length !== version.length)
2822 + (!match || match.index + match[0].length !== version.length)
2551 2823 ) {
2552 2824 if (!match ||
2553 next.index + next[0].length !== match.index + match[0].length) {
2825 + next.index + next[0].length !== match.index + match[0].length) {
2554 2826 match = next
2555 2827 }
2556 2828 re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
2557 2829 }
2558 2830 // leave it in a clean state
2559 2831 re[t.COERCERTL].lastIndex = -1
2560 }
2561
2562 if (match === null) {
2563 return null
2564 }
2565
2566 return parse(match[2] +
2567 '.' + (match[3] || '0') +
2568 '.' + (match[4] || '0'), options)
2569 }
2570
2571
2572 /***/ }),
2573
2574 /***/ 357:
2575 /***/ (function(module) {
2576
2577 module.exports = require("assert");
2578
2579 /***/ }),
2580
2581 /***/ 408:
2582 /***/ (function(__unusedmodule, exports, __webpack_require__) {
2583
2584 "use strict";
2585
2586 var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2587 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2588 return new (P || (P = Promise))(function (resolve, reject) {
2589 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
2590 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
2591 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
2592 step((generator = generator.apply(thisArg, _arguments || [])).next());
2593 });
2594 };
2595 var _a;
2596 Object.defineProperty(exports, "__esModule", { value: true });
2597 const assert_1 = __webpack_require__(357);
2598 const fs = __webpack_require__(747);
2599 const path = __webpack_require__(622);
2600 _a = fs.promises, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;
2601 exports.IS_WINDOWS = process.platform === 'win32';
2602 function exists(fsPath) {
2603 return __awaiter(this, void 0, void 0, function* () {
2604 try {
2605 yield exports.stat(fsPath);
2606 }
2607 catch (err) {
2608 if (err.code === 'ENOENT') {
2609 return false;
2610 }
2611 throw err;
2612 }
2613 return true;
2614 });
2615 }
2616 exports.exists = exists;
2617 function isDirectory(fsPath, useStat = false) {
2618 return __awaiter(this, void 0, void 0, function* () {
2619 const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);
2620 return stats.isDirectory();
2621 });
2622 }
2623 exports.isDirectory = isDirectory;
2624 /**
2625 * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:
2626 * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases).
2627 */
2628 function isRooted(p) {
2629 p = normalizeSeparators(p);
2630 if (!p) {
2631 throw new Error('isRooted() parameter "p" cannot be empty');
2632 }
2633 if (exports.IS_WINDOWS) {
2634 return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello
2635 ); // e.g. C: or C:\hello
2636 }
2637 return p.startsWith('/');
2638 }
2639 exports.isRooted = isRooted;
2640 /**
2641 * Recursively create a directory at `fsPath`.
2642 *
2643 * This implementation is optimistic, meaning it attempts to create the full
2644 * path first, and backs up the path stack from there.
2645 *
2646 * @param fsPath The path to create
2647 * @param maxDepth The maximum recursion depth
2648 * @param depth The current recursion depth
2649 */
2650 function mkdirP(fsPath, maxDepth = 1000, depth = 1) {
2651 return __awaiter(this, void 0, void 0, function* () {
2652 assert_1.ok(fsPath, 'a path argument must be provided');
2653 fsPath = path.resolve(fsPath);
2654 if (depth >= maxDepth)
2655 return exports.mkdir(fsPath);
2656 try {
2657 yield exports.mkdir(fsPath);
2658 return;
2659 }
2660 catch (err) {
2661 switch (err.code) {
2662 case 'ENOENT': {
2663 yield mkdirP(path.dirname(fsPath), maxDepth, depth + 1);
2664 yield exports.mkdir(fsPath);
2665 return;
2666 }
2667 default: {
2668 let stats;
2669 try {
2670 stats = yield exports.stat(fsPath);
2671 }
2672 catch (err2) {
2673 throw err;
2674 }
2675 if (!stats.isDirectory())
2676 throw err;
2677 }
2678 }
2679 }
2680 });
2681 }
2682 exports.mkdirP = mkdirP;
2683 /**
2684 * Best effort attempt to determine whether a file exists and is executable.
2685 * @param filePath file path to check
2686 * @param extensions additional file extensions to try
2687 * @return if file exists and is executable, returns the file path. otherwise empty string.
2688 */
2689 function tryGetExecutablePath(filePath, extensions) {
2690 return __awaiter(this, void 0, void 0, function* () {
2691 let stats = undefined;
2692 try {
2693 // test file exists
2694 stats = yield exports.stat(filePath);
2695 }
2696 catch (err) {
2697 if (err.code !== 'ENOENT') {
2698 // eslint-disable-next-line no-console
2699 console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
2700 }
2701 }
2702 if (stats && stats.isFile()) {
2703 if (exports.IS_WINDOWS) {
2704 // on Windows, test for valid extension
2705 const upperExt = path.extname(filePath).toUpperCase();
2706 if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {
2707 return filePath;
2708 }
2709 }
2710 else {
2711 if (isUnixExecutable(stats)) {
2712 return filePath;
2713 }
2714 }
2715 }
2716 // try each extension
2717 const originalFilePath = filePath;
2718 for (const extension of extensions) {
2719 filePath = originalFilePath + extension;
2720 stats = undefined;
2721 try {
2722 stats = yield exports.stat(filePath);
2723 }
2724 catch (err) {
2725 if (err.code !== 'ENOENT') {
2726 // eslint-disable-next-line no-console
2727 console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
2728 }
2729 }
2730 if (stats && stats.isFile()) {
2731 if (exports.IS_WINDOWS) {
2732 // preserve the case of the actual file (since an extension was appended)
2733 try {
2734 const directory = path.dirname(filePath);
2735 const upperName = path.basename(filePath).toUpperCase();
2736 for (const actualName of yield exports.readdir(directory)) {
2737 if (upperName === actualName.toUpperCase()) {
2738 filePath = path.join(directory, actualName);
2739 break;
2740 }
2741 }
2742 }
2743 catch (err) {
2744 // eslint-disable-next-line no-console
2745 console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);
2746 }
2747 return filePath;
2748 }
2749 else {
2750 if (isUnixExecutable(stats)) {
2751 return filePath;
2752 }
2753 }
2754 }
2755 }
2756 return '';
2757 });
2758 }
2759 exports.tryGetExecutablePath = tryGetExecutablePath;
2760 function normalizeSeparators(p) {
2761 p = p || '';
2762 if (exports.IS_WINDOWS) {
2763 // convert slashes on Windows
2764 p = p.replace(/\//g, '\\');
2765 // remove redundant slashes
2766 return p.replace(/\\\\+/g, '\\');
2767 }
2768 // remove redundant slashes
2769 return p.replace(/\/\/+/g, '/');
2832 + }
2833 +
2834 + if (match === null)
2835 + return null
2836 +
2837 + return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)
2770 2838 }
2771 // on Mac/Linux, test the execute bit
2772 // R W X R W X R W X
2773 // 256 128 64 32 16 8 4 2 1
2774 function isUnixExecutable(stats) {
2775 return ((stats.mode & 1) > 0 ||
2776 ((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||
2777 ((stats.mode & 64) > 0 && stats.uid === process.getuid()));
2839 +module.exports = coerce
2840 +
2841 +
2842 +/***/ }),
2843 +
2844 +/***/ 503:
2845 +/***/ (function(module, __unusedexports, __webpack_require__) {
2846 +
2847 +const parse = __webpack_require__(830)
2848 +const clean = (version, options) => {
2849 + const s = parse(version.trim().replace(/^[=v]+/, ''), options)
2850 + return s ? s.version : null
2778 2851 }
2779 //# sourceMappingURL=io-util.js.map
2852 +module.exports = clean
2853 +
2780 2854
2781 2855 /***/ }),
2782 2856
2783 /***/ 431:
2784 /***/ (function(__unusedmodule, exports, __webpack_require__) {
2857 +/***/ 531:
2858 +/***/ (function(module, __unusedexports, __webpack_require__) {
2785 2859
2786 "use strict";
2860 +// Determine if version is greater than all the versions possible in the range.
2861 +const outside = __webpack_require__(462)
2862 +const gtr = (version, range, options) => outside(version, range, '>', options)
2863 +module.exports = gtr
2787 2864
2788 var __importStar = (this && this.__importStar) || function (mod) {
2789 if (mod && mod.__esModule) return mod;
2790 var result = {};
2791 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
2792 result["default"] = mod;
2793 return result;
2794 };
2795 Object.defineProperty(exports, "__esModule", { value: true });
2796 const os = __importStar(__webpack_require__(87));
2797 /**
2798 * Commands
2799 *
2800 * Command Format:
2801 * ::name key=value,key=value::message
2802 *
2803 * Examples:
2804 * ::warning::This is the message
2805 * ::set-env name=MY_VAR::some value
2806 */
2807 function issueCommand(command, properties, message) {
2808 const cmd = new Command(command, properties, message);
2809 process.stdout.write(cmd.toString() + os.EOL);
2810 }
2811 exports.issueCommand = issueCommand;
2812 function issue(name, message = '') {
2813 issueCommand(name, {}, message);
2814 }
2815 exports.issue = issue;
2816 const CMD_STRING = '::';
2817 class Command {
2818 constructor(command, properties, message) {
2819 if (!command) {
2820 command = 'missing.command';
2821 }
2822 this.command = command;
2823 this.properties = properties;
2824 this.message = message;
2825 }
2826 toString() {
2827 let cmdStr = CMD_STRING + this.command;
2828 if (this.properties && Object.keys(this.properties).length > 0) {
2829 cmdStr += ' ';
2830 let first = true;
2831 for (const key in this.properties) {
2832 if (this.properties.hasOwnProperty(key)) {
2833 const val = this.properties[key];
2834 if (val) {
2835 if (first) {
2836 first = false;
2837 }
2838 else {
2839 cmdStr += ',';
2840 }
2841 cmdStr += `${key}=${escapeProperty(val)}`;
2842 }
2843 }
2844 }
2845 }
2846 cmdStr += `${CMD_STRING}${escapeData(this.message)}`;
2847 return cmdStr;
2848 }
2865 +
2866 +/***/ }),
2867 +
2868 +/***/ 548:
2869 +/***/ (function(module) {
2870 +
2871 +const debug = (
2872 + typeof process === 'object' &&
2873 + process.env &&
2874 + process.env.NODE_DEBUG &&
2875 + /\bsemver\b/i.test(process.env.NODE_DEBUG)
2876 +) ? (...args) => console.error('SEMVER', ...args)
2877 + : () => {}
2878 +
2879 +module.exports = debug
2880 +
2881 +
2882 +/***/ }),
2883 +
2884 +/***/ 586:
2885 +/***/ (function(module, __unusedexports, __webpack_require__) {
2886 +
2887 +const compare = __webpack_require__(874)
2888 +const lt = (a, b, loose) => compare(a, b, loose) < 0
2889 +module.exports = lt
2890 +
2891 +
2892 +/***/ }),
2893 +
2894 +/***/ 593:
2895 +/***/ (function(module, __unusedexports, __webpack_require__) {
2896 +
2897 +const compareBuild = __webpack_require__(16)
2898 +const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))
2899 +module.exports = rsort
2900 +
2901 +
2902 +/***/ }),
2903 +
2904 +/***/ 614:
2905 +/***/ (function(module) {
2906 +
2907 +module.exports = require("events");
2908 +
2909 +/***/ }),
2910 +
2911 +/***/ 622:
2912 +/***/ (function(module) {
2913 +
2914 +module.exports = require("path");
2915 +
2916 +/***/ }),
2917 +
2918 +/***/ 630:
2919 +/***/ (function(module, __unusedexports, __webpack_require__) {
2920 +
2921 +const compare = __webpack_require__(874)
2922 +const rcompare = (a, b, loose) => compare(b, a, loose)
2923 +module.exports = rcompare
2924 +
2925 +
2926 +/***/ }),
2927 +
2928 +/***/ 669:
2929 +/***/ (function(module) {
2930 +
2931 +module.exports = require("util");
2932 +
2933 +/***/ }),
2934 +
2935 +/***/ 714:
2936 +/***/ (function(module, __unusedexports, __webpack_require__) {
2937 +
2938 +const parse = __webpack_require__(830)
2939 +const valid = (version, options) => {
2940 + const v = parse(version, options)
2941 + return v ? v.version : null
2849 2942 }
2850 /**
2851 * Sanitizes an input into a string so it can be passed into issueCommand safely
2852 * @param input input to sanitize into a string
2853 */
2854 function toCommandValue(input) {
2855 if (input === null || input === undefined) {
2856 return '';
2857 }
2858 else if (typeof input === 'string' || input instanceof String) {
2859 return input;
2943 +module.exports = valid
2944 +
2945 +
2946 +/***/ }),
2947 +
2948 +/***/ 740:
2949 +/***/ (function(module, __unusedexports, __webpack_require__) {
2950 +
2951 +const SemVer = __webpack_require__(65)
2952 +const Range = __webpack_require__(124)
2953 +const minSatisfying = (versions, range, options) => {
2954 + let min = null
2955 + let minSV = null
2956 + let rangeObj = null
2957 + try {
2958 + rangeObj = new Range(range, options)
2959 + } catch (er) {
2960 + return null
2961 + }
2962 + versions.forEach((v) => {
2963 + if (rangeObj.test(v)) {
2964 + // satisfies(v, range, options)
2965 + if (!min || minSV.compare(v) === 1) {
2966 + // compare(min, v, true)
2967 + min = v
2968 + minSV = new SemVer(min, options)
2969 + }
2860 2970 }
2861 return JSON.stringify(input);
2862 }
2863 exports.toCommandValue = toCommandValue;
2864 function escapeData(s) {
2865 return toCommandValue(s)
2866 .replace(/%/g, '%25')
2867 .replace(/\r/g, '%0D')
2868 .replace(/\n/g, '%0A');
2869 }
2870 function escapeProperty(s) {
2871 return toCommandValue(s)
2872 .replace(/%/g, '%25')
2873 .replace(/\r/g, '%0D')
2874 .replace(/\n/g, '%0A')
2875 .replace(/:/g, '%3A')
2876 .replace(/,/g, '%2C');
2971 + })
2972 + return min
2877 2973 }
2878 //# sourceMappingURL=command.js.map
2974 +module.exports = minSatisfying
2975 +
2879 2976
2880 2977 /***/ }),
2881 2978
2882 /***/ 449:
2979 +/***/ 744:
2883 2980 /***/ (function(module, __unusedexports, __webpack_require__) {
2884 2981
2885 const {exec} = __webpack_require__(917)
2886 const path = __webpack_require__(622)
2887 const semver = __webpack_require__(280)
2982 +const SemVer = __webpack_require__(65)
2983 +const major = (a, loose) => new SemVer(a, loose).major
2984 +module.exports = major
2888 2985
2889 module.exports = {installElixir, installOTP}
2890 2986
2891 /**
2892 * Install Elixir.
2893 *
2894 * @param {string} version
2895 * @param {string} otpMajor
2896 */
2897 async function installElixir(version, otpMajor) {
2898 if (process.platform === 'linux') {
2899 const otpString = otpMajor ? `-otp-${otpMajor}` : ''
2900 await exec(__webpack_require__.ab + "install-elixir", [version, otpString])
2987 +/***/ }),
2988 +
2989 +/***/ 747:
2990 +/***/ (function(module) {
2991 +
2992 +module.exports = require("fs");
2993 +
2994 +/***/ }),
2995 +
2996 +/***/ 752:
2997 +/***/ (function(module, __unusedexports, __webpack_require__) {
2998 +
2999 +const eq = __webpack_require__(298)
3000 +const neq = __webpack_require__(873)
3001 +const gt = __webpack_require__(486)
3002 +const gte = __webpack_require__(167)
3003 +const lt = __webpack_require__(586)
3004 +const lte = __webpack_require__(898)
3005 +
3006 +const cmp = (a, op, b, loose) => {
3007 + switch (op) {
3008 + case '===':
3009 + if (typeof a === 'object')
3010 + a = a.version
3011 + if (typeof b === 'object')
3012 + b = b.version
3013 + return a === b
3014 +
3015 + case '!==':
3016 + if (typeof a === 'object')
3017 + a = a.version
3018 + if (typeof b === 'object')
3019 + b = b.version
3020 + return a !== b
3021 +
3022 + case '':
3023 + case '=':
3024 + case '==':
3025 + return eq(a, b, loose)
3026 +
3027 + case '!=':
3028 + return neq(a, b, loose)
3029 +
3030 + case '>':
3031 + return gt(a, b, loose)
3032 +
3033 + case '>=':
3034 + return gte(a, b, loose)
3035 +
3036 + case '<':
3037 + return lt(a, b, loose)
3038 +
3039 + case '<=':
3040 + return lte(a, b, loose)
3041 +
3042 + default:
3043 + throw new TypeError(`Invalid operator: ${op}`)
3044 + }
3045 +}
3046 +module.exports = cmp
3047 +
3048 +
3049 +/***/ }),
3050 +
3051 +/***/ 760:
3052 +/***/ (function(module) {
3053 +
3054 +const numeric = /^[0-9]+$/
3055 +const compareIdentifiers = (a, b) => {
3056 + const anum = numeric.test(a)
3057 + const bnum = numeric.test(b)
3058 +
3059 + if (anum && bnum) {
3060 + a = +a
3061 + b = +b
2901 3062 }
3063 +
3064 + return a === b ? 0
3065 + : (anum && !bnum) ? -1
3066 + : (bnum && !anum) ? 1
3067 + : a < b ? -1
3068 + : 1
2902 3069 }
2903 3070
2904 /**
2905 * Install OTP.
2906 *
2907 * @param {string} version
2908 */
2909 async function installOTP(version) {
2910 if (process.platform === 'linux') {
2911 await exec(__webpack_require__.ab + "install-otp", [version])
2912 return
2913 }
3071 +const rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)
2914 3072
2915 throw new Error(
2916 '@actions/setup-elixir only supports Ubuntu Linux at this time'
2917 )
3073 +module.exports = {
3074 + compareIdentifiers,
3075 + rcompareIdentifiers
2918 3076 }
2919 3077
2920 3078
2921 3079 /***/ }),
2922 3080
2923 /***/ 470:
2924 /***/ (function(__unusedmodule, exports, __webpack_require__) {
3081 +/***/ 803:
3082 +/***/ (function(module, __unusedexports, __webpack_require__) {
2925 3083
2926 "use strict";
3084 +const SemVer = __webpack_require__(65)
3085 +const minor = (a, loose) => new SemVer(a, loose).minor
3086 +module.exports = minor
2927 3087
2928 var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2929 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
2930 return new (P || (P = Promise))(function (resolve, reject) {
2931 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
2932 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
2933 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
2934 step((generator = generator.apply(thisArg, _arguments || [])).next());
2935 });
2936 };
2937 var __importStar = (this && this.__importStar) || function (mod) {
2938 if (mod && mod.__esModule) return mod;
2939 var result = {};
2940 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
2941 result["default"] = mod;
2942 return result;
2943 };
2944 Object.defineProperty(exports, "__esModule", { value: true });
2945 const command_1 = __webpack_require__(431);
2946 const os = __importStar(__webpack_require__(87));
2947 const path = __importStar(__webpack_require__(622));
2948 /**
2949 * The code to exit an action
2950 */
2951 var ExitCode;
2952 (function (ExitCode) {
2953 /**
2954 * A code indicating that the action was successful
2955 */
2956 ExitCode[ExitCode["Success"] = 0] = "Success";
2957 /**
2958 * A code indicating that the action was a failure
2959 */
2960 ExitCode[ExitCode["Failure"] = 1] = "Failure";
2961 })(ExitCode = exports.ExitCode || (exports.ExitCode = {}));
2962 //-----------------------------------------------------------------------
2963 // Variables
2964 //-----------------------------------------------------------------------
2965 /**
2966 * Sets env variable for this action and future actions in the job
2967 * @param name the name of the variable to set
2968 * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify
2969 */
2970 // eslint-disable-next-line @typescript-eslint/no-explicit-any
2971 function exportVariable(name, val) {
2972 const convertedVal = command_1.toCommandValue(val);
2973 process.env[name] = convertedVal;
2974 command_1.issueCommand('set-env', { name }, convertedVal);
2975 }
2976 exports.exportVariable = exportVariable;
2977 /**
2978 * Registers a secret which will get masked from logs
2979 * @param secret value of the secret
2980 */
2981 function setSecret(secret) {
2982 command_1.issueCommand('add-mask', {}, secret);
2983 }
2984 exports.setSecret = setSecret;
2985 /**
2986 * Prepends inputPath to the PATH (for this action and future actions)
2987 * @param inputPath
2988 */
2989 function addPath(inputPath) {
2990 command_1.issueCommand('add-path', {}, inputPath);
2991 process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
2992 }
2993 exports.addPath = addPath;
2994 /**
2995 * Gets the value of an input. The value is also trimmed.
2996 *
2997 * @param name name of the input to get
2998 * @param options optional. See InputOptions.
2999 * @returns string
3000 */
3001 function getInput(name, options) {
3002 const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';
3003 if (options && options.required && !val) {
3004 throw new Error(`Input required and not supplied: ${name}`);
3088 +
3089 +/***/ }),
3090 +
3091 +/***/ 811:
3092 +/***/ (function(module, __unusedexports, __webpack_require__) {
3093 +
3094 +const SemVer = __webpack_require__(65)
3095 +const Range = __webpack_require__(124)
3096 +
3097 +const maxSatisfying = (versions, range, options) => {
3098 + let max = null
3099 + let maxSV = null
3100 + let rangeObj = null
3101 + try {
3102 + rangeObj = new Range(range, options)
3103 + } catch (er) {
3104 + return null
3105 + }
3106 + versions.forEach((v) => {
3107 + if (rangeObj.test(v)) {
3108 + // satisfies(v, range, options)
3109 + if (!max || maxSV.compare(v) === -1) {
3110 + // compare(max, v, true)
3111 + max = v
3112 + maxSV = new SemVer(max, options)
3113 + }
3005 3114 }
3006 return val.trim();
3007 }
3008 exports.getInput = getInput;
3009 /**
3010 * Sets the value of an output.
3011 *
3012 * @param name name of the output to set
3013 * @param value value to store. Non-string values will be converted to a string via JSON.stringify
3014 */
3015 // eslint-disable-next-line @typescript-eslint/no-explicit-any
3016 function setOutput(name, value) {
3017 command_1.issueCommand('set-output', { name }, value);
3018 }
3019 exports.setOutput = setOutput;
3020 /**
3021 * Enables or disables the echoing of commands into stdout for the rest of the step.
3022 * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set.
3023 *
3024 */
3025 function setCommandEcho(enabled) {
3026 command_1.issue('echo', enabled ? 'on' : 'off');
3027 }
3028 exports.setCommandEcho = setCommandEcho;
3029 //-----------------------------------------------------------------------
3030 // Results
3031 //-----------------------------------------------------------------------
3032 /**
3033 * Sets the action status to failed.
3034 * When the action exits it will be with an exit code of 1
3035 * @param message add error issue message
3036 */
3037 function setFailed(message) {
3038 process.exitCode = ExitCode.Failure;
3039 error(message);
3040 }
3041 exports.setFailed = setFailed;
3042 //-----------------------------------------------------------------------
3043 // Logging Commands
3044 //-----------------------------------------------------------------------
3045 /**
3046 * Gets whether Actions Step Debug is on or not
3047 */
3048 function isDebug() {
3049 return process.env['RUNNER_DEBUG'] === '1';
3050 }
3051 exports.isDebug = isDebug;
3052 /**
3053 * Writes debug message to user log
3054 * @param message debug message
3055 */
3056 function debug(message) {
3057 command_1.issueCommand('debug', {}, message);
3058 }
3059 exports.debug = debug;
3060 /**
3061 * Adds an error issue
3062 * @param message error issue message. Errors will be converted to string via toString()
3063 */
3064 function error(message) {
3065 command_1.issue('error', message instanceof Error ? message.toString() : message);
3066 }
3067 exports.error = error;
3068 /**
3069 * Adds an warning issue
3070 * @param message warning issue message. Errors will be converted to string via toString()
3071 */
3072 function warning(message) {
3073 command_1.issue('warning', message instanceof Error ? message.toString() : message);
3074 }
3075 exports.warning = warning;
3076 /**
3077 * Writes info to log with console.log.
3078 * @param message info message
3079 */
3080 function info(message) {
3081 process.stdout.write(message + os.EOL);
3082 }
3083 exports.info = info;
3084 /**
3085 * Begin an output group.
3086 *
3087 * Output until the next `groupEnd` will be foldable in this group
3088 *
3089 * @param name The name of the output group
3090 */
3091 function startGroup(name) {
3092 command_1.issue('group', name);
3093 }
3094 exports.startGroup = startGroup;
3095 /**
3096 * End an output group.
3097 */
3098 function endGroup() {
3099 command_1.issue('endgroup');
3100 }
3101 exports.endGroup = endGroup;
3102 /**
3103 * Wrap an asynchronous function call in a group.
3104 *
3105 * Returns the same type as the function itself.
3106 *
3107 * @param name The name of the group
3108 * @param fn The function to wrap in the group
3109 */
3110 function group(name, fn) {
3111 return __awaiter(this, void 0, void 0, function* () {
3112 startGroup(name);
3113 let result;
3114 try {
3115 result = yield fn();
3116 }
3117 finally {
3118 endGroup();
3119 }
3120 return result;
3121 });
3115 + })
3116 + return max
3122 3117 }
3123 exports.group = group;
3124 //-----------------------------------------------------------------------
3125 // Wrapper action state
3126 //-----------------------------------------------------------------------
3127 /**
3128 * Saves state for current action, the state can only be retrieved by this action's post job execution.
3129 *
3130 * @param name name of the state to store
3131 * @param value value to store. Non-string values will be converted to a string via JSON.stringify
3132 */
3133 // eslint-disable-next-line @typescript-eslint/no-explicit-any
3134 function saveState(name, value) {
3135 command_1.issueCommand('save-state', { name }, value);
3118 +module.exports = maxSatisfying
3119 +
3120 +
3121 +/***/ }),
3122 +
3123 +/***/ 822:
3124 +/***/ (function(module, __unusedexports, __webpack_require__) {
3125 +
3126 +const parse = __webpack_require__(830)
3127 +const eq = __webpack_require__(298)
3128 +
3129 +const diff = (version1, version2) => {
3130 + if (eq(version1, version2)) {
3131 + return null
3132 + } else {
3133 + const v1 = parse(version1)
3134 + const v2 = parse(version2)
3135 + const hasPre = v1.prerelease.length || v2.prerelease.length
3136 + const prefix = hasPre ? 'pre' : ''
3137 + const defaultResult = hasPre ? 'prerelease' : ''
3138 + for (const key in v1) {
3139 + if (key === 'major' || key === 'minor' || key === 'patch') {
3140 + if (v1[key] !== v2[key]) {
3141 + return prefix + key
3142 + }
3143 + }
3144 + }
3145 + return defaultResult // may be undefined
3146 + }
3136 3147 }
3137 exports.saveState = saveState;
3138 /**
3139 * Gets the value of an state set by this action's main execution.
3140 *
3141 * @param name name of the state to get
3142 * @returns string
3143 */
3144 function getState(name) {
3145 return process.env[`STATE_${name}`] || '';
3148 +module.exports = diff
3149 +
3150 +
3151 +/***/ }),
3152 +
3153 +/***/ 830:
3154 +/***/ (function(module, __unusedexports, __webpack_require__) {
3155 +
3156 +const {MAX_LENGTH} = __webpack_require__(181)
3157 +const { re, t } = __webpack_require__(976)
3158 +const SemVer = __webpack_require__(65)
3159 +
3160 +const parse = (version, options) => {
3161 + if (!options || typeof options !== 'object') {
3162 + options = {
3163 + loose: !!options,
3164 + includePrerelease: false
3165 + }
3166 + }
3167 +
3168 + if (version instanceof SemVer) {
3169 + return version
3170 + }
3171 +
3172 + if (typeof version !== 'string') {
3173 + return null
3174 + }
3175 +
3176 + if (version.length > MAX_LENGTH) {
3177 + return null
3178 + }
3179 +
3180 + const r = options.loose ? re[t.LOOSE] : re[t.FULL]
3181 + if (!r.test(version)) {
3182 + return null
3183 + }
3184 +
3185 + try {
3186 + return new SemVer(version, options)
3187 + } catch (er) {
3188 + return null
3189 + }
3146 3190 }
3147 exports.getState = getState;
3148 //# sourceMappingURL=core.js.map
3191 +
3192 +module.exports = parse
3193 +
3149 3194
3150 3195 /***/ }),
3151 3196
3152 /***/ 614:
3153 /***/ (function(module) {
3197 +/***/ 873:
3198 +/***/ (function(module, __unusedexports, __webpack_require__) {
3199 +
3200 +const compare = __webpack_require__(874)
3201 +const neq = (a, b, loose) => compare(a, b, loose) !== 0
3202 +module.exports = neq
3154 3203
3155 module.exports = require("events");
3156 3204
3157 3205 /***/ }),
3158 3206
3159 /***/ 622:
3160 /***/ (function(module) {
3207 +/***/ 874:
3208 +/***/ (function(module, __unusedexports, __webpack_require__) {
3209 +
3210 +const SemVer = __webpack_require__(65)
3211 +const compare = (a, b, loose) =>
3212 + new SemVer(a, loose).compare(new SemVer(b, loose))
3213 +
3214 +module.exports = compare
3161 3215
3162 module.exports = require("path");
3163 3216
3164 3217 /***/ }),
3165 3218
3166 /***/ 669:
3167 /***/ (function(module) {
3219 +/***/ 876:
3220 +/***/ (function(module, __unusedexports, __webpack_require__) {
3221 +
3222 +// just pre-load all the stuff that index.js lazily exports
3223 +const internalRe = __webpack_require__(976)
3224 +module.exports = {
3225 + re: internalRe.re,
3226 + src: internalRe.src,
3227 + tokens: internalRe.t,
3228 + SEMVER_SPEC_VERSION: __webpack_require__(181).SEMVER_SPEC_VERSION,
3229 + SemVer: __webpack_require__(65),
3230 + compareIdentifiers: __webpack_require__(760).compareIdentifiers,
3231 + rcompareIdentifiers: __webpack_require__(760).rcompareIdentifiers,
3232 + parse: __webpack_require__(830),
3233 + valid: __webpack_require__(714),
3234 + clean: __webpack_require__(503),
3235 + inc: __webpack_require__(928),
3236 + diff: __webpack_require__(822),
3237 + major: __webpack_require__(744),
3238 + minor: __webpack_require__(803),
3239 + patch: __webpack_require__(489),
3240 + prerelease: __webpack_require__(968),
3241 + compare: __webpack_require__(874),
3242 + rcompare: __webpack_require__(630),
3243 + compareLoose: __webpack_require__(283),
3244 + compareBuild: __webpack_require__(16),
3245 + sort: __webpack_require__(120),
3246 + rsort: __webpack_require__(593),
3247 + gt: __webpack_require__(486),
3248 + lt: __webpack_require__(586),
3249 + eq: __webpack_require__(298),
3250 + neq: __webpack_require__(873),
3251 + gte: __webpack_require__(167),
3252 + lte: __webpack_require__(898),
3253 + cmp: __webpack_require__(752),
3254 + coerce: __webpack_require__(499),
3255 + Comparator: __webpack_require__(174),
3256 + Range: __webpack_require__(124),
3257 + satisfies: __webpack_require__(310),
3258 + toComparators: __webpack_require__(219),
3259 + maxSatisfying: __webpack_require__(811),
3260 + minSatisfying: __webpack_require__(740),
3261 + minVersion: __webpack_require__(164),
3262 + validRange: __webpack_require__(480),
3263 + outside: __webpack_require__(462),
3264 + gtr: __webpack_require__(531),
3265 + ltr: __webpack_require__(323),
3266 + intersects: __webpack_require__(259),
3267 + simplifyRange: __webpack_require__(877),
3268 + subset: __webpack_require__(999),
3269 +}
3168 3270
3169 module.exports = require("util");
3170 3271
3171 3272 /***/ }),
3172 3273
3173 /***/ 747:
3174 /***/ (function(module) {
3274 +/***/ 877:
3275 +/***/ (function(module, __unusedexports, __webpack_require__) {
3276 +
3277 +// given a set of versions and a range, create a "simplified" range
3278 +// that includes the same versions that the original range does
3279 +// If the original range is shorter than the simplified one, return that.
3280 +const satisfies = __webpack_require__(310)
3281 +const compare = __webpack_require__(874)
3282 +module.exports = (versions, range, options) => {
3283 + const set = []
3284 + let min = null
3285 + let prev = null
3286 + const v = versions.sort((a, b) => compare(a, b, options))
3287 + for (const version of v) {
3288 + const included = satisfies(version, range, options)
3289 + if (included) {
3290 + prev = version
3291 + if (!min)
3292 + min = version
3293 + } else {
3294 + if (prev) {
3295 + set.push([min, prev])
3296 + }
3297 + prev = null
3298 + min = null
3299 + }
3300 + }
3301 + if (min)
3302 + set.push([min, null])
3303 +
3304 + const ranges = []
3305 + for (const [min, max] of set) {
3306 + if (min === max)
3307 + ranges.push(min)
3308 + else if (!max && min === v[0])
3309 + ranges.push('*')
3310 + else if (!max)
3311 + ranges.push(`>=${min}`)
3312 + else if (min === v[0])
3313 + ranges.push(`<=${max}`)
3314 + else
3315 + ranges.push(`${min} - ${max}`)
3316 + }
3317 + const simplified = ranges.join(' || ')
3318 + const original = typeof range.raw === 'string' ? range.raw : String(range)
3319 + return simplified.length < original.length ? simplified : range
3320 +}
3321 +
3322 +
3323 +/***/ }),
3324 +
3325 +/***/ 898:
3326 +/***/ (function(module, __unusedexports, __webpack_require__) {
3327 +
3328 +const compare = __webpack_require__(874)
3329 +const lte = (a, b, loose) => compare(a, b, loose) <= 0
3330 +module.exports = lte
3175 3331
3176 module.exports = require("fs");
3177 3332
3178 3333 /***/ }),
3179 3334
@@ -3226,17 +3381,245 @@ function exec(commandLine, args, options) {
3226 3381 exports.exec = exec;
3227 3382 //# sourceMappingURL=exec.js.map
3228 3383
3384 +/***/ }),
3385 +
3386 +/***/ 928:
3387 +/***/ (function(module, __unusedexports, __webpack_require__) {
3388 +
3389 +const SemVer = __webpack_require__(65)
3390 +
3391 +const inc = (version, release, options, identifier) => {
3392 + if (typeof (options) === 'string') {
3393 + identifier = options
3394 + options = undefined
3395 + }
3396 +
3397 + try {
3398 + return new SemVer(version, options).inc(release, identifier).version
3399 + } catch (er) {
3400 + return null
3401 + }
3402 +}
3403 +module.exports = inc
3404 +
3405 +
3406 +/***/ }),
3407 +
3408 +/***/ 968:
3409 +/***/ (function(module, __unusedexports, __webpack_require__) {
3410 +
3411 +const parse = __webpack_require__(830)
3412 +const prerelease = (version, options) => {
3413 + const parsed = parse(version, options)
3414 + return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
3415 +}
3416 +module.exports = prerelease
3417 +
3418 +
3419 +/***/ }),
3420 +
3421 +/***/ 976:
3422 +/***/ (function(module, exports, __webpack_require__) {
3423 +
3424 +const { MAX_SAFE_COMPONENT_LENGTH } = __webpack_require__(181)
3425 +const debug = __webpack_require__(548)
3426 +exports = module.exports = {}
3427 +
3428 +// The actual regexps go on exports.re
3429 +const re = exports.re = []
3430 +const src = exports.src = []
3431 +const t = exports.t = {}
3432 +let R = 0
3433 +
3434 +const createToken = (name, value, isGlobal) => {
3435 + const index = R++
3436 + debug(index, value)
3437 + t[name] = index
3438 + src[index] = value
3439 + re[index] = new RegExp(value, isGlobal ? 'g' : undefined)
3440 +}
3441 +
3442 +// The following Regular Expressions can be used for tokenizing,
3443 +// validating, and parsing SemVer version strings.
3444 +
3445 +// ## Numeric Identifier
3446 +// A single `0`, or a non-zero digit followed by zero or more digits.
3447 +
3448 +createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*')
3449 +createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')
3450 +
3451 +// ## Non-numeric Identifier
3452 +// Zero or more digits, followed by a letter or hyphen, and then zero or
3453 +// more letters, digits, or hyphens.
3454 +
3455 +createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*')
3456 +
3457 +// ## Main Version
3458 +// Three dot-separated numeric identifiers.
3459 +
3460 +createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` +
3461 + `(${src[t.NUMERICIDENTIFIER]})\\.` +
3462 + `(${src[t.NUMERICIDENTIFIER]})`)
3463 +
3464 +createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
3465 + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` +
3466 + `(${src[t.NUMERICIDENTIFIERLOOSE]})`)
3467 +
3468 +// ## Pre-release Version Identifier
3469 +// A numeric identifier, or a non-numeric identifier.
3470 +
3471 +createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]
3472 +}|${src[t.NONNUMERICIDENTIFIER]})`)
3473 +
3474 +createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]
3475 +}|${src[t.NONNUMERICIDENTIFIER]})`)
3476 +
3477 +// ## Pre-release Version
3478 +// Hyphen, followed by one or more dot-separated pre-release version
3479 +// identifiers.
3480 +
3481 +createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]
3482 +}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`)
3483 +
3484 +createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
3485 +}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)
3486 +
3487 +// ## Build Metadata Identifier
3488 +// Any combination of digits, letters, or hyphens.
3489 +
3490 +createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')
3491 +
3492 +// ## Build Metadata
3493 +// Plus sign, followed by one or more period-separated build metadata
3494 +// identifiers.
3495 +
3496 +createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]
3497 +}(?:\\.${src[t.BUILDIDENTIFIER]})*))`)
3498 +
3499 +// ## Full Version String
3500 +// A main version, followed optionally by a pre-release version and
3501 +// build metadata.
3502 +
3503 +// Note that the only major, minor, patch, and pre-release sections of
3504 +// the version string are capturing groups. The build metadata is not a
3505 +// capturing group, because it should not ever be used in version
3506 +// comparison.
3507 +
3508 +createToken('FULLPLAIN', `v?${src[t.MAINVERSION]
3509 +}${src[t.PRERELEASE]}?${
3510 + src[t.BUILD]}?`)
3511 +
3512 +createToken('FULL', `^${src[t.FULLPLAIN]}$`)
3513 +
3514 +// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
3515 +// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
3516 +// common in the npm registry.
3517 +createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]
3518 +}${src[t.PRERELEASELOOSE]}?${
3519 + src[t.BUILD]}?`)
3520 +
3521 +createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)
3522 +
3523 +createToken('GTLT', '((?:<|>)?=?)')
3524 +
3525 +// Something like "2.*" or "1.2.x".
3526 +// Note that "x.x" is a valid xRange identifer, meaning "any version"
3527 +// Only the first item is strictly required.
3528 +createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`)
3529 +createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`)
3530 +
3531 +createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` +
3532 + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
3533 + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` +
3534 + `(?:${src[t.PRERELEASE]})?${
3535 + src[t.BUILD]}?` +
3536 + `)?)?`)
3537 +
3538 +createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +
3539 + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
3540 + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +
3541 + `(?:${src[t.PRERELEASELOOSE]})?${
3542 + src[t.BUILD]}?` +
3543 + `)?)?`)
3544 +
3545 +createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`)
3546 +createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`)
3547 +
3548 +// Coercion.
3549 +// Extract anything that could conceivably be a part of a valid semver
3550 +createToken('COERCE', `${'(^|[^\\d])' +
3551 + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +
3552 + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
3553 + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +
3554 + `(?:$|[^\\d])`)
3555 +createToken('COERCERTL', src[t.COERCE], true)
3556 +
3557 +// Tilde ranges.
3558 +// Meaning is "reasonably at or greater than"
3559 +createToken('LONETILDE', '(?:~>?)')
3560 +
3561 +createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true)
3562 +exports.tildeTrimReplace = '$1~'
3563 +
3564 +createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)
3565 +createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)
3566 +
3567 +// Caret ranges.
3568 +// Meaning is "at least and backwards compatible with"
3569 +createToken('LONECARET', '(?:\\^)')
3570 +
3571 +createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true)
3572 +exports.caretTrimReplace = '$1^'
3573 +
3574 +createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)
3575 +createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)
3576 +
3577 +// A simple gt/lt/eq thing, or just "" to indicate "any version"
3578 +createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`)
3579 +createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`)
3580 +
3581 +// An expression to strip any whitespace between the gtlt and the thing
3582 +// it modifies, so that `> 1.2.3` ==> `>1.2.3`
3583 +createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]
3584 +}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)
3585 +exports.comparatorTrimReplace = '$1$2$3'
3586 +
3587 +// Something like `1.2.3 - 1.2.4`
3588 +// Note that these all use the loose form, because they'll be
3589 +// checked against either the strict or loose comparator form
3590 +// later.
3591 +createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` +
3592 + `\\s+-\\s+` +
3593 + `(${src[t.XRANGEPLAIN]})` +
3594 + `\\s*$`)
3595 +
3596 +createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` +
3597 + `\\s+-\\s+` +
3598 + `(${src[t.XRANGEPLAINLOOSE]})` +
3599 + `\\s*$`)
3600 +
3601 +// Star ranges basically just allow anything at all.
3602 +createToken('STAR', '(<|>)?=?\\s*\\*')
3603 +// >=0.0.0 is like a star
3604 +createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$')
3605 +createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$')
3606 +
3607 +
3229 3608 /***/ }),
3230 3609
3231 3610 /***/ 986:
3232 /***/ (function(__unusedmodule, __unusedexports, __webpack_require__) {
3611 +/***/ (function(__unusedmodule, exports, __webpack_require__) {
3233 3612
3234 3613 const core = __webpack_require__(470)
3235 3614 const {exec} = __webpack_require__(917)
3236 3615 const {installElixir, installOTP} = __webpack_require__(449)
3237 3616 const path = __webpack_require__(622)
3238 const semver = __webpack_require__(280)
3617 +const semver = __webpack_require__(876)
3239 3618 const https = __webpack_require__(211)
3619 +const {
3620 + fstat,
3621 + promises: {readFile},
3622 +} = __webpack_require__(747)
3240 3623
3241 3624 main().catch(err => {
3242 3625 core.setFailed(err.message)
@@ -3288,9 +3671,11 @@ async function getOtpVersion(spec) {
3288 3671 return getVersionFromSpec(spec, await getOtpVersions()) || spec
3289 3672 }
3290 3673
3674 +exports.getElixirVersion = getElixirVersion
3675 +
3291 3676 async function getElixirVersion(spec, otpVersion) {
3292 3677 const versions = await getElixirVersions()
3293 const semverRegex = /^v(\d+\.\d+\.\d+)/
3678 + const semverRegex = /^v(\d+\.\d+\.\d+(?:-.+)?)/
3294 3679
3295 3680 const semverVersions = Array.from(versions.keys())
3296 3681 .filter(str => str.match(semverRegex))
@@ -3339,7 +3724,7 @@ async function getElixirVersions() {
3339 3724 .split('\n')
3340 3725 .forEach(line => {
3341 3726 const match =
3342 line.match(/^(v\d+\.\d+\.\d+)-otp-(\d+)/) ||
3727 + line.match(/^(v\d+\.\d+\.\d+(?:-.+)?)-otp-(\d+)/) ||
3343 3728 line.match(/^([^-]+)-otp-(\d+)/)
3344 3729
3345 3730 if (match) {
@@ -3354,6 +3739,12 @@ async function getElixirVersions() {
3354 3739 }
3355 3740
3356 3741 function get(url) {
3742 + if (process.env.NODE_ENV === 'test') {
3743 + return readFile(
3744 + __webpack_require__.ab + "builds.txt"
3745 + ).then(buf => buf.toString())
3746 + }
3747 +
3357 3748 return new Promise((resolve, reject) => {
3358 3749 const req = https.get(url)
3359 3750
@@ -3374,6 +3765,168 @@ function get(url) {
3374 3765 }
3375 3766
3376 3767
3768 +/***/ }),
3769 +
3770 +/***/ 999:
3771 +/***/ (function(module, __unusedexports, __webpack_require__) {
3772 +
3773 +const Range = __webpack_require__(124)
3774 +const { ANY } = __webpack_require__(174)
3775 +const satisfies = __webpack_require__(310)
3776 +const compare = __webpack_require__(874)
3777 +
3778 +// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:
3779 +// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`
3780 +//
3781 +// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:
3782 +// - If c is only the ANY comparator
3783 +// - If C is only the ANY comparator, return true
3784 +// - Else return false
3785 +// - Let EQ be the set of = comparators in c
3786 +// - If EQ is more than one, return true (null set)
3787 +// - Let GT be the highest > or >= comparator in c
3788 +// - Let LT be the lowest < or <= comparator in c
3789 +// - If GT and LT, and GT.semver > LT.semver, return true (null set)
3790 +// - If EQ
3791 +// - If GT, and EQ does not satisfy GT, return true (null set)
3792 +// - If LT, and EQ does not satisfy LT, return true (null set)
3793 +// - If EQ satisfies every C, return true
3794 +// - Else return false
3795 +// - If GT
3796 +// - If GT is lower than any > or >= comp in C, return false
3797 +// - If GT is >=, and GT.semver does not satisfy every C, return false
3798 +// - If LT
3799 +// - If LT.semver is greater than that of any > comp in C, return false
3800 +// - If LT is <=, and LT.semver does not satisfy every C, return false
3801 +// - If any C is a = range, and GT or LT are set, return false
3802 +// - Else return true
3803 +
3804 +const subset = (sub, dom, options) => {
3805 + sub = new Range(sub, options)
3806 + dom = new Range(dom, options)
3807 + let sawNonNull = false
3808 +
3809 + OUTER: for (const simpleSub of sub.set) {
3810 + for (const simpleDom of dom.set) {
3811 + const isSub = simpleSubset(simpleSub, simpleDom, options)
3812 + sawNonNull = sawNonNull || isSub !== null
3813 + if (isSub)
3814 + continue OUTER
3815 + }
3816 + // the null set is a subset of everything, but null simple ranges in
3817 + // a complex range should be ignored. so if we saw a non-null range,
3818 + // then we know this isn't a subset, but if EVERY simple range was null,
3819 + // then it is a subset.
3820 + if (sawNonNull)
3821 + return false
3822 + }
3823 + return true
3824 +}
3825 +
3826 +const simpleSubset = (sub, dom, options) => {
3827 + if (sub.length === 1 && sub[0].semver === ANY)
3828 + return dom.length === 1 && dom[0].semver === ANY
3829 +
3830 + const eqSet = new Set()
3831 + let gt, lt
3832 + for (const c of sub) {
3833 + if (c.operator === '>' || c.operator === '>=')
3834 + gt = higherGT(gt, c, options)
3835 + else if (c.operator === '<' || c.operator === '<=')
3836 + lt = lowerLT(lt, c, options)
3837 + else
3838 + eqSet.add(c.semver)
3839 + }
3840 +
3841 + if (eqSet.size > 1)
3842 + return null
3843 +
3844 + let gtltComp
3845 + if (gt && lt) {
3846 + gtltComp = compare(gt.semver, lt.semver, options)
3847 + if (gtltComp > 0)
3848 + return null
3849 + else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<='))
3850 + return null
3851 + }
3852 +
3853 + // will iterate one or zero times
3854 + for (const eq of eqSet) {
3855 + if (gt && !satisfies(eq, String(gt), options))
3856 + return null
3857 +
3858 + if (lt && !satisfies(eq, String(lt), options))
3859 + return null
3860 +
3861 + for (const c of dom) {
3862 + if (!satisfies(eq, String(c), options))
3863 + return false
3864 + }
3865 + return true
3866 + }
3867 +
3868 + let higher, lower
3869 + let hasDomLT, hasDomGT
3870 + for (const c of dom) {
3871 + hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='
3872 + hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='
3873 + if (gt) {
3874 + if (c.operator === '>' || c.operator === '>=') {
3875 + higher = higherGT(gt, c, options)
3876 + if (higher === c)
3877 + return false
3878 + } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))
3879 + return false
3880 + }
3881 + if (lt) {
3882 + if (c.operator === '<' || c.operator === '<=') {
3883 + lower = lowerLT(lt, c, options)
3884 + if (lower === c)
3885 + return false
3886 + } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))
3887 + return false
3888 + }
3889 + if (!c.operator && (lt || gt) && gtltComp !== 0)
3890 + return false
3891 + }
3892 +
3893 + // if there was a < or >, and nothing in the dom, then must be false
3894 + // UNLESS it was limited by another range in the other direction.
3895 + // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0
3896 + if (gt && hasDomLT && !lt && gtltComp !== 0)
3897 + return false
3898 +
3899 + if (lt && hasDomGT && !gt && gtltComp !== 0)
3900 + return false
3901 +
3902 + return true
3903 +}
3904 +
3905 +// >=1.2.3 is lower than >1.2.3
3906 +const higherGT = (a, b, options) => {
3907 + if (!a)
3908 + return b
3909 + const comp = compare(a.semver, b.semver, options)
3910 + return comp > 0 ? a
3911 + : comp < 0 ? b
3912 + : b.operator === '>' && a.operator === '>=' ? b
3913 + : a
3914 +}
3915 +
3916 +// <=1.2.3 is higher than <1.2.3
3917 +const lowerLT = (a, b, options) => {
3918 + if (!a)
3919 + return b
3920 + const comp = compare(a.semver, b.semver, options)
3921 + return comp < 0 ? a
3922 + : comp > 0 ? b
3923 + : b.operator === '<' && a.operator === '<=' ? b
3924 + : a
3925 +}
3926 +
3927 +module.exports = subset
3928 +
3929 +
3377 3930 /***/ })
3378 3931
3379 3932 /******/ });
modified package-lock.json
+4880 −229
@@ -68,23 +68,56 @@
68 68 "@babel/highlight": "^7.8.3"
69 69 }
70 70 },
71 "@babel/helper-validator-identifier": {
72 "version": "7.9.5",
73 "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
74 "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
75 "dev": true
76 },
77 "@babel/highlight": {
78 "version": "7.9.0",
79 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
80 "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
71 + "@babel/core": {
72 + "version": "7.11.6",
73 + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz",
74 + "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==",
81 75 "dev": true,
82 76 "requires": {
83 "@babel/helper-validator-identifier": "^7.9.0",
84 "chalk": "^2.0.0",
85 "js-tokens": "^4.0.0"
77 + "@babel/code-frame": "^7.10.4",
78 + "@babel/generator": "^7.11.6",
79 + "@babel/helper-module-transforms": "^7.11.0",
80 + "@babel/helpers": "^7.10.4",
81 + "@babel/parser": "^7.11.5",
82 + "@babel/template": "^7.10.4",
83 + "@babel/traverse": "^7.11.5",
84 + "@babel/types": "^7.11.5",
85 + "convert-source-map": "^1.7.0",
86 + "debug": "^4.1.0",
87 + "gensync": "^1.0.0-beta.1",
88 + "json5": "^2.1.2",
89 + "lodash": "^4.17.19",
90 + "resolve": "^1.3.2",
91 + "semver": "^5.4.1",
92 + "source-map": "^0.5.0"
86 93 },
87 94 "dependencies": {
95 + "@babel/code-frame": {
96 + "version": "7.10.4",
97 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
98 + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
99 + "dev": true,
100 + "requires": {
101 + "@babel/highlight": "^7.10.4"
102 + }
103 + },
104 + "@babel/helper-validator-identifier": {
105 + "version": "7.10.4",
106 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
107 + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
108 + "dev": true
109 + },
110 + "@babel/highlight": {
111 + "version": "7.10.4",
112 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
113 + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
114 + "dev": true,
115 + "requires": {
116 + "@babel/helper-validator-identifier": "^7.10.4",
117 + "chalk": "^2.0.0",
118 + "js-tokens": "^4.0.0"
119 + }
120 + },
88 121 "ansi-styles": {
89 122 "version": "3.2.1",
90 123 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
@@ -126,6 +159,18 @@
126 159 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
127 160 "dev": true
128 161 },
162 + "semver": {
163 + "version": "5.7.1",
164 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
165 + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
166 + "dev": true
167 + },
168 + "source-map": {
169 + "version": "0.5.7",
170 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
171 + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
172 + "dev": true
173 + },
129 174 "supports-color": {
130 175 "version": "5.5.0",
131 176 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -137,329 +182,4615 @@
137 182 }
138 183 }
139 184 },
140 "@babel/runtime": {
141 "version": "7.9.6",
142 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
143 "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
185 + "@babel/generator": {
186 + "version": "7.11.6",
187 + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz",
188 + "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==",
144 189 "dev": true,
145 190 "requires": {
146 "regenerator-runtime": "^0.13.4"
191 + "@babel/types": "^7.11.5",
192 + "jsesc": "^2.5.1",
193 + "source-map": "^0.5.0"
194 + },
195 + "dependencies": {
196 + "source-map": {
197 + "version": "0.5.7",
198 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
199 + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
200 + "dev": true
201 + }
147 202 }
148 203 },
149 "@types/color-name": {
150 "version": "1.1.1",
151 "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
152 "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
153 "dev": true
154 },
155 "@types/parse-json": {
156 "version": "4.0.0",
157 "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
158 "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
159 "dev": true
160 },
161 "@zeit/ncc": {
162 "version": "0.22.1",
163 "resolved": "https://registry.npmjs.org/@zeit/ncc/-/ncc-0.22.1.tgz",
164 "integrity": "sha512-Qq3bMuonkcnV/96jhy9SQYdh39NXHxNMJ1O31ZFzWG9n52fR2DLtgrNzhj/ahlEjnBziMLGVWDbaS9sf03/fEw==",
165 "dev": true
204 + "@babel/helper-function-name": {
205 + "version": "7.10.4",
206 + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
207 + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
208 + "dev": true,
209 + "requires": {
210 + "@babel/helper-get-function-arity": "^7.10.4",
211 + "@babel/template": "^7.10.4",
212 + "@babel/types": "^7.10.4"
213 + }
166 214 },
167 "ansi-styles": {
168 "version": "4.2.1",
169 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
170 "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
215 + "@babel/helper-get-function-arity": {
216 + "version": "7.10.4",
217 + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
218 + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
171 219 "dev": true,
172 220 "requires": {
173 "@types/color-name": "^1.1.1",
174 "color-convert": "^2.0.1"
221 + "@babel/types": "^7.10.4"
175 222 }
176 223 },
177 "callsites": {
178 "version": "3.1.0",
179 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
180 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
181 "dev": true
224 + "@babel/helper-member-expression-to-functions": {
225 + "version": "7.11.0",
226 + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz",
227 + "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==",
228 + "dev": true,
229 + "requires": {
230 + "@babel/types": "^7.11.0"
231 + }
182 232 },
183 "chalk": {
184 "version": "4.0.0",
185 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
186 "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
233 + "@babel/helper-module-imports": {
234 + "version": "7.10.4",
235 + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
236 + "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
187 237 "dev": true,
188 238 "requires": {
189 "ansi-styles": "^4.1.0",
190 "supports-color": "^7.1.0"
239 + "@babel/types": "^7.10.4"
191 240 }
192 241 },
193 "ci-info": {
194 "version": "2.0.0",
195 "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
196 "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
197 "dev": true
242 + "@babel/helper-module-transforms": {
243 + "version": "7.11.0",
244 + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz",
245 + "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==",
246 + "dev": true,
247 + "requires": {
248 + "@babel/helper-module-imports": "^7.10.4",
249 + "@babel/helper-replace-supers": "^7.10.4",
250 + "@babel/helper-simple-access": "^7.10.4",
251 + "@babel/helper-split-export-declaration": "^7.11.0",
252 + "@babel/template": "^7.10.4",
253 + "@babel/types": "^7.11.0",
254 + "lodash": "^4.17.19"
255 + }
198 256 },
199 "color-convert": {
200 "version": "2.0.1",
201 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
202 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
257 + "@babel/helper-optimise-call-expression": {
258 + "version": "7.10.4",
259 + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
260 + "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
203 261 "dev": true,
204 262 "requires": {
205 "color-name": "~1.1.4"
263 + "@babel/types": "^7.10.4"
206 264 }
207 265 },
208 "color-name": {
209 "version": "1.1.4",
210 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
211 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
266 + "@babel/helper-plugin-utils": {
267 + "version": "7.10.4",
268 + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
269 + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==",
212 270 "dev": true
213 271 },
214 "compare-versions": {
215 "version": "3.6.0",
216 "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
217 "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
218 "dev": true
272 + "@babel/helper-replace-supers": {
273 + "version": "7.10.4",
274 + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
275 + "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
276 + "dev": true,
277 + "requires": {
278 + "@babel/helper-member-expression-to-functions": "^7.10.4",
279 + "@babel/helper-optimise-call-expression": "^7.10.4",
280 + "@babel/traverse": "^7.10.4",
281 + "@babel/types": "^7.10.4"
282 + }
219 283 },
220 "cosmiconfig": {
221 "version": "6.0.0",
222 "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
223 "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
284 + "@babel/helper-simple-access": {
285 + "version": "7.10.4",
286 + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
287 + "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
224 288 "dev": true,
225 289 "requires": {
226 "@types/parse-json": "^4.0.0",
227 "import-fresh": "^3.1.0",
228 "parse-json": "^5.0.0",
229 "path-type": "^4.0.0",
230 "yaml": "^1.7.2"
290 + "@babel/template": "^7.10.4",
291 + "@babel/types": "^7.10.4"
231 292 }
232 293 },
233 "error-ex": {
234 "version": "1.3.2",
235 "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
236 "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
294 + "@babel/helper-split-export-declaration": {
295 + "version": "7.11.0",
296 + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
297 + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
237 298 "dev": true,
238 299 "requires": {
239 "is-arrayish": "^0.2.1"
300 + "@babel/types": "^7.11.0"
240 301 }
241 302 },
242 "escape-string-regexp": {
243 "version": "1.0.5",
244 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
245 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
303 + "@babel/helper-validator-identifier": {
304 + "version": "7.9.5",
305 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
306 + "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
246 307 "dev": true
247 308 },
248 "find-up": {
249 "version": "4.1.0",
250 "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
251 "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
309 + "@babel/helpers": {
310 + "version": "7.10.4",
311 + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
312 + "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
252 313 "dev": true,
253 314 "requires": {
254 "locate-path": "^5.0.0",
255 "path-exists": "^4.0.0"
315 + "@babel/template": "^7.10.4",
316 + "@babel/traverse": "^7.10.4",
317 + "@babel/types": "^7.10.4"
256 318 }
257 319 },
258 "find-versions": {
259 "version": "3.2.0",
260 "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
261 "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
320 + "@babel/highlight": {
321 + "version": "7.9.0",
322 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
323 + "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
262 324 "dev": true,
263 325 "requires": {
264 "semver-regex": "^2.0.0"
326 + "@babel/helper-validator-identifier": "^7.9.0",
327 + "chalk": "^2.0.0",
328 + "js-tokens": "^4.0.0"
329 + },
330 + "dependencies": {
331 + "ansi-styles": {
332 + "version": "3.2.1",
333 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
334 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
335 + "dev": true,
336 + "requires": {
337 + "color-convert": "^1.9.0"
338 + }
339 + },
340 + "chalk": {
341 + "version": "2.4.2",
342 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
343 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
344 + "dev": true,
345 + "requires": {
346 + "ansi-styles": "^3.2.1",
347 + "escape-string-regexp": "^1.0.5",
348 + "supports-color": "^5.3.0"
349 + }
350 + },
351 + "color-convert": {
352 + "version": "1.9.3",
353 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
354 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
355 + "dev": true,
356 + "requires": {
357 + "color-name": "1.1.3"
358 + }
359 + },
360 + "color-name": {
361 + "version": "1.1.3",
362 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
363 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
364 + "dev": true
365 + },
366 + "has-flag": {
367 + "version": "3.0.0",
368 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
369 + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
370 + "dev": true
371 + },
372 + "supports-color": {
373 + "version": "5.5.0",
374 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
375 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
376 + "dev": true,
377 + "requires": {
378 + "has-flag": "^3.0.0"
379 + }
380 + }
265 381 }
266 382 },
267 "has-flag": {
268 "version": "4.0.0",
269 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
270 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
383 + "@babel/parser": {
384 + "version": "7.11.5",
385 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz",
386 + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==",
271 387 "dev": true
272 388 },
273 "husky": {
274 "version": "4.2.5",
275 "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz",
276 "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==",
389 + "@babel/plugin-syntax-async-generators": {
390 + "version": "7.8.4",
391 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
392 + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
277 393 "dev": true,
278 394 "requires": {
279 "chalk": "^4.0.0",
280 "ci-info": "^2.0.0",
281 "compare-versions": "^3.6.0",
282 "cosmiconfig": "^6.0.0",
283 "find-versions": "^3.2.0",
284 "opencollective-postinstall": "^2.0.2",
285 "pkg-dir": "^4.2.0",
286 "please-upgrade-node": "^3.2.0",
287 "slash": "^3.0.0",
288 "which-pm-runs": "^1.0.0"
395 + "@babel/helper-plugin-utils": "^7.8.0"
289 396 }
290 397 },
291 "import-fresh": {
292 "version": "3.2.1",
293 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
294 "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
398 + "@babel/plugin-syntax-bigint": {
399 + "version": "7.8.3",
400 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
401 + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
295 402 "dev": true,
296 403 "requires": {
297 "parent-module": "^1.0.0",
298 "resolve-from": "^4.0.0"
404 + "@babel/helper-plugin-utils": "^7.8.0"
299 405 }
300 406 },
301 "is-arrayish": {
302 "version": "0.2.1",
303 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
304 "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
305 "dev": true
306 },
307 "js-tokens": {
308 "version": "4.0.0",
309 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
310 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
311 "dev": true
407 + "@babel/plugin-syntax-class-properties": {
408 + "version": "7.10.4",
409 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz",
410 + "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==",
411 + "dev": true,
412 + "requires": {
413 + "@babel/helper-plugin-utils": "^7.10.4"
414 + }
312 415 },
313 "json-parse-better-errors": {
314 "version": "1.0.2",
315 "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
316 "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
317 "dev": true
416 + "@babel/plugin-syntax-import-meta": {
417 + "version": "7.10.4",
418 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
419 + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
420 + "dev": true,
421 + "requires": {
422 + "@babel/helper-plugin-utils": "^7.10.4"
423 + }
318 424 },
319 "lines-and-columns": {
320 "version": "1.1.6",
321 "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
322 "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
323 "dev": true
425 + "@babel/plugin-syntax-json-strings": {
426 + "version": "7.8.3",
427 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
428 + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
429 + "dev": true,
430 + "requires": {
431 + "@babel/helper-plugin-utils": "^7.8.0"
432 + }
324 433 },
325 "locate-path": {
326 "version": "5.0.0",
327 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
328 "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
434 + "@babel/plugin-syntax-logical-assignment-operators": {
435 + "version": "7.10.4",
436 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
437 + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
329 438 "dev": true,
330 439 "requires": {
331 "p-locate": "^4.1.0"
440 + "@babel/helper-plugin-utils": "^7.10.4"
332 441 }
333 442 },
334 "opencollective-postinstall": {
443 + "@babel/plugin-syntax-nullish-coalescing-operator": {
444 + "version": "7.8.3",
445 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
446 + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
447 + "dev": true,
448 + "requires": {
449 + "@babel/helper-plugin-utils": "^7.8.0"
450 + }
451 + },
452 + "@babel/plugin-syntax-numeric-separator": {
453 + "version": "7.10.4",
454 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
455 + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
456 + "dev": true,
457 + "requires": {
458 + "@babel/helper-plugin-utils": "^7.10.4"
459 + }
460 + },
461 + "@babel/plugin-syntax-object-rest-spread": {
462 + "version": "7.8.3",
463 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
464 + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
465 + "dev": true,
466 + "requires": {
467 + "@babel/helper-plugin-utils": "^7.8.0"
468 + }
469 + },
470 + "@babel/plugin-syntax-optional-catch-binding": {
471 + "version": "7.8.3",
472 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
473 + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
474 + "dev": true,
475 + "requires": {
476 + "@babel/helper-plugin-utils": "^7.8.0"
477 + }
478 + },
479 + "@babel/plugin-syntax-optional-chaining": {
480 + "version": "7.8.3",
481 + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
482 + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
483 + "dev": true,
484 + "requires": {
485 + "@babel/helper-plugin-utils": "^7.8.0"
486 + }
487 + },
488 + "@babel/runtime": {
489 + "version": "7.9.6",
490 + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
491 + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
492 + "dev": true,
493 + "requires": {
494 + "regenerator-runtime": "^0.13.4"
495 + }
496 + },
497 + "@babel/template": {
498 + "version": "7.10.4",
499 + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
500 + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
501 + "dev": true,
502 + "requires": {
503 + "@babel/code-frame": "^7.10.4",
504 + "@babel/parser": "^7.10.4",
505 + "@babel/types": "^7.10.4"
506 + },
507 + "dependencies": {
508 + "@babel/code-frame": {
509 + "version": "7.10.4",
510 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
511 + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
512 + "dev": true,
513 + "requires": {
514 + "@babel/highlight": "^7.10.4"
515 + }
516 + },
517 + "@babel/helper-validator-identifier": {
518 + "version": "7.10.4",
519 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
520 + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
521 + "dev": true
522 + },
523 + "@babel/highlight": {
524 + "version": "7.10.4",
525 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
526 + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
527 + "dev": true,
528 + "requires": {
529 + "@babel/helper-validator-identifier": "^7.10.4",
530 + "chalk": "^2.0.0",
531 + "js-tokens": "^4.0.0"
532 + }
533 + },
534 + "ansi-styles": {
535 + "version": "3.2.1",
536 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
537 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
538 + "dev": true,
539 + "requires": {
540 + "color-convert": "^1.9.0"
541 + }
542 + },
543 + "chalk": {
544 + "version": "2.4.2",
545 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
546 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
547 + "dev": true,
548 + "requires": {
549 + "ansi-styles": "^3.2.1",
550 + "escape-string-regexp": "^1.0.5",
551 + "supports-color": "^5.3.0"
552 + }
553 + },
554 + "color-convert": {
555 + "version": "1.9.3",
556 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
557 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
558 + "dev": true,
559 + "requires": {
560 + "color-name": "1.1.3"
561 + }
562 + },
563 + "color-name": {
564 + "version": "1.1.3",
565 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
566 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
567 + "dev": true
568 + },
569 + "has-flag": {
570 + "version": "3.0.0",
571 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
572 + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
573 + "dev": true
574 + },
575 + "supports-color": {
576 + "version": "5.5.0",
577 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
578 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
579 + "dev": true,
580 + "requires": {
581 + "has-flag": "^3.0.0"
582 + }
583 + }
584 + }
585 + },
586 + "@babel/traverse": {
587 + "version": "7.11.5",
588 + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz",
589 + "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==",
590 + "dev": true,
591 + "requires": {
592 + "@babel/code-frame": "^7.10.4",
593 + "@babel/generator": "^7.11.5",
594 + "@babel/helper-function-name": "^7.10.4",
595 + "@babel/helper-split-export-declaration": "^7.11.0",
596 + "@babel/parser": "^7.11.5",
597 + "@babel/types": "^7.11.5",
598 + "debug": "^4.1.0",
599 + "globals": "^11.1.0",
600 + "lodash": "^4.17.19"
601 + },
602 + "dependencies": {
603 + "@babel/code-frame": {
604 + "version": "7.10.4",
605 + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
606 + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
607 + "dev": true,
608 + "requires": {
609 + "@babel/highlight": "^7.10.4"
610 + }
611 + },
612 + "@babel/helper-validator-identifier": {
613 + "version": "7.10.4",
614 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
615 + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
616 + "dev": true
617 + },
618 + "@babel/highlight": {
619 + "version": "7.10.4",
620 + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
621 + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
622 + "dev": true,
623 + "requires": {
624 + "@babel/helper-validator-identifier": "^7.10.4",
625 + "chalk": "^2.0.0",
626 + "js-tokens": "^4.0.0"
627 + }
628 + },
629 + "ansi-styles": {
630 + "version": "3.2.1",
631 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
632 + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
633 + "dev": true,
634 + "requires": {
635 + "color-convert": "^1.9.0"
636 + }
637 + },
638 + "chalk": {
639 + "version": "2.4.2",
640 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
641 + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
642 + "dev": true,
643 + "requires": {
644 + "ansi-styles": "^3.2.1",
645 + "escape-string-regexp": "^1.0.5",
646 + "supports-color": "^5.3.0"
647 + }
648 + },
649 + "color-convert": {
650 + "version": "1.9.3",
651 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
652 + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
653 + "dev": true,
654 + "requires": {
655 + "color-name": "1.1.3"
656 + }
657 + },
658 + "color-name": {
659 + "version": "1.1.3",
660 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
661 + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
662 + "dev": true
663 + },
664 + "has-flag": {
665 + "version": "3.0.0",
666 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
667 + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
668 + "dev": true
669 + },
670 + "supports-color": {
671 + "version": "5.5.0",
672 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
673 + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
674 + "dev": true,
675 + "requires": {
676 + "has-flag": "^3.0.0"
677 + }
678 + }
679 + }
680 + },
681 + "@babel/types": {
682 + "version": "7.11.5",
683 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz",
684 + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==",
685 + "dev": true,
686 + "requires": {
687 + "@babel/helper-validator-identifier": "^7.10.4",
688 + "lodash": "^4.17.19",
689 + "to-fast-properties": "^2.0.0"
690 + },
691 + "dependencies": {
692 + "@babel/helper-validator-identifier": {
693 + "version": "7.10.4",
694 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
695 + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
696 + "dev": true
697 + }
698 + }
699 + },
700 + "@bcoe/v8-coverage": {
701 + "version": "0.2.3",
702 + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
703 + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
704 + "dev": true
705 + },
706 + "@cnakazawa/watch": {
707 + "version": "1.0.4",
708 + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
709 + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==",
710 + "dev": true,
711 + "requires": {
712 + "exec-sh": "^0.3.2",
713 + "minimist": "^1.2.0"
714 + }
715 + },
716 + "@istanbuljs/load-nyc-config": {
717 + "version": "1.1.0",
718 + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
719 + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
720 + "dev": true,
721 + "requires": {
722 + "camelcase": "^5.3.1",
723 + "find-up": "^4.1.0",
724 + "get-package-type": "^0.1.0",
725 + "js-yaml": "^3.13.1",
726 + "resolve-from": "^5.0.0"
727 + },
728 + "dependencies": {
729 + "resolve-from": {
730 + "version": "5.0.0",
731 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
732 + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
733 + "dev": true
734 + }
735 + }
736 + },
737 + "@istanbuljs/schema": {
738 + "version": "0.1.2",
739 + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz",
740 + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==",
741 + "dev": true
742 + },
743 + "@jest/console": {
744 + "version": "26.3.0",
745 + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.3.0.tgz",
746 + "integrity": "sha512-/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w==",
747 + "dev": true,
748 + "requires": {
749 + "@jest/types": "^26.3.0",
750 + "@types/node": "*",
751 + "chalk": "^4.0.0",
752 + "jest-message-util": "^26.3.0",
753 + "jest-util": "^26.3.0",
754 + "slash": "^3.0.0"
755 + }
756 + },
757 + "@jest/core": {
758 + "version": "26.4.2",
759 + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.4.2.tgz",
760 + "integrity": "sha512-sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg==",
761 + "dev": true,
762 + "requires": {
763 + "@jest/console": "^26.3.0",
764 + "@jest/reporters": "^26.4.1",
765 + "@jest/test-result": "^26.3.0",
766 + "@jest/transform": "^26.3.0",
767 + "@jest/types": "^26.3.0",
768 + "@types/node": "*",
769 + "ansi-escapes": "^4.2.1",
770 + "chalk": "^4.0.0",
771 + "exit": "^0.1.2",
772 + "graceful-fs": "^4.2.4",
773 + "jest-changed-files": "^26.3.0",
774 + "jest-config": "^26.4.2",
775 + "jest-haste-map": "^26.3.0",
776 + "jest-message-util": "^26.3.0",
777 + "jest-regex-util": "^26.0.0",
778 + "jest-resolve": "^26.4.0",
779 + "jest-resolve-dependencies": "^26.4.2",
780 + "jest-runner": "^26.4.2",
781 + "jest-runtime": "^26.4.2",
782 + "jest-snapshot": "^26.4.2",
783 + "jest-util": "^26.3.0",
784 + "jest-validate": "^26.4.2",
785 + "jest-watcher": "^26.3.0",
786 + "micromatch": "^4.0.2",
787 + "p-each-series": "^2.1.0",
788 + "rimraf": "^3.0.0",
789 + "slash": "^3.0.0",
790 + "strip-ansi": "^6.0.0"
791 + }
792 + },
793 + "@jest/environment": {
794 + "version": "26.3.0",
795 + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.3.0.tgz",
796 + "integrity": "sha512-EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA==",
797 + "dev": true,
798 + "requires": {
799 + "@jest/fake-timers": "^26.3.0",
800 + "@jest/types": "^26.3.0",
801 + "@types/node": "*",
802 + "jest-mock": "^26.3.0"
803 + }
804 + },
805 + "@jest/fake-timers": {
806 + "version": "26.3.0",
807 + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.3.0.tgz",
808 + "integrity": "sha512-ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A==",
809 + "dev": true,
810 + "requires": {
811 + "@jest/types": "^26.3.0",
812 + "@sinonjs/fake-timers": "^6.0.1",
813 + "@types/node": "*",
814 + "jest-message-util": "^26.3.0",
815 + "jest-mock": "^26.3.0",
816 + "jest-util": "^26.3.0"
817 + }
818 + },
819 + "@jest/globals": {
820 + "version": "26.4.2",
821 + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.4.2.tgz",
822 + "integrity": "sha512-Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow==",
823 + "dev": true,
824 + "requires": {
825 + "@jest/environment": "^26.3.0",
826 + "@jest/types": "^26.3.0",
827 + "expect": "^26.4.2"
828 + }
829 + },
830 + "@jest/reporters": {
831 + "version": "26.4.1",
832 + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.4.1.tgz",
833 + "integrity": "sha512-aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ==",
834 + "dev": true,
835 + "requires": {
836 + "@bcoe/v8-coverage": "^0.2.3",
837 + "@jest/console": "^26.3.0",
838 + "@jest/test-result": "^26.3.0",
839 + "@jest/transform": "^26.3.0",
840 + "@jest/types": "^26.3.0",
841 + "chalk": "^4.0.0",
842 + "collect-v8-coverage": "^1.0.0",
843 + "exit": "^0.1.2",
844 + "glob": "^7.1.2",
845 + "graceful-fs": "^4.2.4",
846 + "istanbul-lib-coverage": "^3.0.0",
847 + "istanbul-lib-instrument": "^4.0.3",
848 + "istanbul-lib-report": "^3.0.0",
849 + "istanbul-lib-source-maps": "^4.0.0",
850 + "istanbul-reports": "^3.0.2",
851 + "jest-haste-map": "^26.3.0",
852 + "jest-resolve": "^26.4.0",
853 + "jest-util": "^26.3.0",
854 + "jest-worker": "^26.3.0",
855 + "node-notifier": "^8.0.0",
856 + "slash": "^3.0.0",
857 + "source-map": "^0.6.0",
858 + "string-length": "^4.0.1",
859 + "terminal-link": "^2.0.0",
860 + "v8-to-istanbul": "^5.0.1"
861 + }
862 + },
863 + "@jest/source-map": {
864 + "version": "26.3.0",
865 + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.3.0.tgz",
866 + "integrity": "sha512-hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ==",
867 + "dev": true,
868 + "requires": {
869 + "callsites": "^3.0.0",
870 + "graceful-fs": "^4.2.4",
871 + "source-map": "^0.6.0"
872 + }
873 + },
874 + "@jest/test-result": {
875 + "version": "26.3.0",
876 + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.3.0.tgz",
877 + "integrity": "sha512-a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg==",
878 + "dev": true,
879 + "requires": {
880 + "@jest/console": "^26.3.0",
881 + "@jest/types": "^26.3.0",
882 + "@types/istanbul-lib-coverage": "^2.0.0",
883 + "collect-v8-coverage": "^1.0.0"
884 + }
885 + },
886 + "@jest/test-sequencer": {
887 + "version": "26.4.2",
888 + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz",
889 + "integrity": "sha512-83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog==",
890 + "dev": true,
891 + "requires": {
892 + "@jest/test-result": "^26.3.0",
893 + "graceful-fs": "^4.2.4",
894 + "jest-haste-map": "^26.3.0",
895 + "jest-runner": "^26.4.2",
896 + "jest-runtime": "^26.4.2"
897 + }
898 + },
899 + "@jest/transform": {
900 + "version": "26.3.0",
901 + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.3.0.tgz",
902 + "integrity": "sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A==",
903 + "dev": true,
904 + "requires": {
905 + "@babel/core": "^7.1.0",
906 + "@jest/types": "^26.3.0",
907 + "babel-plugin-istanbul": "^6.0.0",
908 + "chalk": "^4.0.0",
909 + "convert-source-map": "^1.4.0",
910 + "fast-json-stable-stringify": "^2.0.0",
911 + "graceful-fs": "^4.2.4",
912 + "jest-haste-map": "^26.3.0",
913 + "jest-regex-util": "^26.0.0",
914 + "jest-util": "^26.3.0",
915 + "micromatch": "^4.0.2",
916 + "pirates": "^4.0.1",
917 + "slash": "^3.0.0",
918 + "source-map": "^0.6.1",
919 + "write-file-atomic": "^3.0.0"
920 + }
921 + },
922 + "@jest/types": {
923 + "version": "26.3.0",
924 + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz",
925 + "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==",
926 + "dev": true,
927 + "requires": {
928 + "@types/istanbul-lib-coverage": "^2.0.0",
929 + "@types/istanbul-reports": "^3.0.0",
930 + "@types/node": "*",
931 + "@types/yargs": "^15.0.0",
932 + "chalk": "^4.0.0"
933 + }
934 + },
935 + "@sinonjs/commons": {
936 + "version": "1.8.1",
937 + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz",
938 + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==",
939 + "dev": true,
940 + "requires": {
941 + "type-detect": "4.0.8"
942 + }
943 + },
944 + "@sinonjs/fake-timers": {
945 + "version": "6.0.1",
946 + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz",
947 + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==",
948 + "dev": true,
949 + "requires": {
950 + "@sinonjs/commons": "^1.7.0"
951 + }
952 + },
953 + "@types/babel__core": {
954 + "version": "7.1.9",
955 + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz",
956 + "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==",
957 + "dev": true,
958 + "requires": {
959 + "@babel/parser": "^7.1.0",
960 + "@babel/types": "^7.0.0",
961 + "@types/babel__generator": "*",
962 + "@types/babel__template": "*",
963 + "@types/babel__traverse": "*"
964 + }
965 + },
966 + "@types/babel__generator": {
967 + "version": "7.6.1",
968 + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz",
969 + "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==",
970 + "dev": true,
971 + "requires": {
972 + "@babel/types": "^7.0.0"
973 + }
974 + },
975 + "@types/babel__template": {
976 + "version": "7.0.2",
977 + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz",
978 + "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==",
979 + "dev": true,
980 + "requires": {
981 + "@babel/parser": "^7.1.0",
982 + "@babel/types": "^7.0.0"
983 + }
984 + },
985 + "@types/babel__traverse": {
986 + "version": "7.0.14",
987 + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.14.tgz",
988 + "integrity": "sha512-8w9szzKs14ZtBVuP6Wn7nMLRJ0D6dfB0VEBEyRgxrZ/Ln49aNMykrghM2FaNn4FJRzNppCSa0Rv9pBRM5Xc3wg==",
989 + "dev": true,
990 + "requires": {
991 + "@babel/types": "^7.3.0"
992 + }
993 + },
994 + "@types/color-name": {
995 + "version": "1.1.1",
996 + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
997 + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
998 + "dev": true
999 + },
1000 + "@types/graceful-fs": {
1001 + "version": "4.1.3",
1002 + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz",
1003 + "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==",
1004 + "dev": true,
1005 + "requires": {
1006 + "@types/node": "*"
1007 + }
1008 + },
1009 + "@types/istanbul-lib-coverage": {
1010 + "version": "2.0.3",
1011 + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
1012 + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==",
1013 + "dev": true
1014 + },
1015 + "@types/istanbul-lib-report": {
1016 + "version": "3.0.0",
1017 + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
1018 + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
1019 + "dev": true,
1020 + "requires": {
1021 + "@types/istanbul-lib-coverage": "*"
1022 + }
1023 + },
1024 + "@types/istanbul-reports": {
1025 + "version": "3.0.0",
1026 + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz",
1027 + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==",
1028 + "dev": true,
1029 + "requires": {
1030 + "@types/istanbul-lib-report": "*"
1031 + }
1032 + },
1033 + "@types/node": {
1034 + "version": "14.10.2",
1035 + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.10.2.tgz",
1036 + "integrity": "sha512-IzMhbDYCpv26pC2wboJ4MMOa9GKtjplXfcAqrMeNJpUUwpM/2ATt2w1JPUXwS6spu856TvKZL2AOmeU2rAxskw==",
1037 + "dev": true
1038 + },
1039 + "@types/normalize-package-data": {
1040 + "version": "2.4.0",
1041 + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
1042 + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
1043 + "dev": true
1044 + },
1045 + "@types/parse-json": {
1046 + "version": "4.0.0",
1047 + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
1048 + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
1049 + "dev": true
1050 + },
1051 + "@types/prettier": {
1052 + "version": "2.1.1",
1053 + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.1.tgz",
1054 + "integrity": "sha512-2zs+O+UkDsJ1Vcp667pd3f8xearMdopz/z54i99wtRDI5KLmngk7vlrYZD0ZjKHaROR03EznlBbVY9PfAEyJIQ==",
1055 + "dev": true
1056 + },
1057 + "@types/stack-utils": {
1058 + "version": "1.0.1",
1059 + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
1060 + "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==",
1061 + "dev": true
1062 + },
1063 + "@types/yargs": {
1064 + "version": "15.0.5",
1065 + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz",
1066 + "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==",
1067 + "dev": true,
1068 + "requires": {
1069 + "@types/yargs-parser": "*"
1070 + }
1071 + },
1072 + "@types/yargs-parser": {
1073 + "version": "15.0.0",
1074 + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
1075 + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==",
1076 + "dev": true
1077 + },
1078 + "@zeit/ncc": {
1079 + "version": "0.22.1",
1080 + "resolved": "https://registry.npmjs.org/@zeit/ncc/-/ncc-0.22.1.tgz",
1081 + "integrity": "sha512-Qq3bMuonkcnV/96jhy9SQYdh39NXHxNMJ1O31ZFzWG9n52fR2DLtgrNzhj/ahlEjnBziMLGVWDbaS9sf03/fEw==",
1082 + "dev": true
1083 + },
1084 + "abab": {
1085 + "version": "2.0.5",
1086 + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
1087 + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==",
1088 + "dev": true
1089 + },
1090 + "acorn": {
1091 + "version": "7.4.0",
1092 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
1093 + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
1094 + "dev": true
1095 + },
1096 + "acorn-globals": {
1097 + "version": "6.0.0",
1098 + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz",
1099 + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==",
1100 + "dev": true,
1101 + "requires": {
1102 + "acorn": "^7.1.1",
1103 + "acorn-walk": "^7.1.1"
1104 + }
1105 + },
1106 + "acorn-walk": {
1107 + "version": "7.2.0",
1108 + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
1109 + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
1110 + "dev": true
1111 + },
1112 + "ajv": {
1113 + "version": "6.12.5",
1114 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz",
1115 + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==",
1116 + "dev": true,
1117 + "requires": {
1118 + "fast-deep-equal": "^3.1.1",
1119 + "fast-json-stable-stringify": "^2.0.0",
1120 + "json-schema-traverse": "^0.4.1",
1121 + "uri-js": "^4.2.2"
1122 + }
1123 + },
1124 + "ansi-escapes": {
1125 + "version": "4.3.1",
1126 + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
1127 + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
1128 + "dev": true,
1129 + "requires": {
1130 + "type-fest": "^0.11.0"
1131 + },
1132 + "dependencies": {
1133 + "type-fest": {
1134 + "version": "0.11.0",
1135 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
1136 + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
1137 + "dev": true
1138 + }
1139 + }
1140 + },
1141 + "ansi-regex": {
1142 + "version": "5.0.0",
1143 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
1144 + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
1145 + "dev": true
1146 + },
1147 + "ansi-styles": {
1148 + "version": "4.2.1",
1149 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
1150 + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
1151 + "dev": true,
1152 + "requires": {
1153 + "@types/color-name": "^1.1.1",
1154 + "color-convert": "^2.0.1"
1155 + }
1156 + },
1157 + "anymatch": {
1158 + "version": "3.1.1",
1159 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
1160 + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
1161 + "dev": true,
1162 + "requires": {
1163 + "normalize-path": "^3.0.0",
1164 + "picomatch": "^2.0.4"
1165 + }
1166 + },
1167 + "argparse": {
1168 + "version": "1.0.10",
1169 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
1170 + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
1171 + "dev": true,
1172 + "requires": {
1173 + "sprintf-js": "~1.0.2"
1174 + }
1175 + },
1176 + "arr-diff": {
1177 + "version": "4.0.0",
1178 + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
1179 + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
1180 + "dev": true
1181 + },
1182 + "arr-flatten": {
1183 + "version": "1.1.0",
1184 + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
1185 + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
1186 + "dev": true
1187 + },
1188 + "arr-union": {
1189 + "version": "3.1.0",
1190 + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
1191 + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
1192 + "dev": true
1193 + },
1194 + "array-unique": {
1195 + "version": "0.3.2",
1196 + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
1197 + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
1198 + "dev": true
1199 + },
1200 + "asn1": {
1201 + "version": "0.2.4",
1202 + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
1203 + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
1204 + "dev": true,
1205 + "requires": {
1206 + "safer-buffer": "~2.1.0"
1207 + }
1208 + },
1209 + "assert-plus": {
1210 + "version": "1.0.0",
1211 + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
1212 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
1213 + "dev": true
1214 + },
1215 + "assign-symbols": {
1216 + "version": "1.0.0",
1217 + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
1218 + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
1219 + "dev": true
1220 + },
1221 + "asynckit": {
1222 + "version": "0.4.0",
1223 + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1224 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
1225 + "dev": true
1226 + },
1227 + "atob": {
1228 + "version": "2.1.2",
1229 + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
1230 + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
1231 + "dev": true
1232 + },
1233 + "aws-sign2": {
1234 + "version": "0.7.0",
1235 + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
1236 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
1237 + "dev": true
1238 + },
1239 + "aws4": {
1240 + "version": "1.10.1",
1241 + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz",
1242 + "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==",
1243 + "dev": true
1244 + },
1245 + "babel-jest": {
1246 + "version": "26.3.0",
1247 + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.3.0.tgz",
1248 + "integrity": "sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g==",
1249 + "dev": true,
1250 + "requires": {
1251 + "@jest/transform": "^26.3.0",
1252 + "@jest/types": "^26.3.0",
1253 + "@types/babel__core": "^7.1.7",
1254 + "babel-plugin-istanbul": "^6.0.0",
1255 + "babel-preset-jest": "^26.3.0",
1256 + "chalk": "^4.0.0",
1257 + "graceful-fs": "^4.2.4",
1258 + "slash": "^3.0.0"
1259 + }
1260 + },
1261 + "babel-plugin-istanbul": {
1262 + "version": "6.0.0",
1263 + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz",
1264 + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==",
1265 + "dev": true,
1266 + "requires": {
1267 + "@babel/helper-plugin-utils": "^7.0.0",
1268 + "@istanbuljs/load-nyc-config": "^1.0.0",
1269 + "@istanbuljs/schema": "^0.1.2",
1270 + "istanbul-lib-instrument": "^4.0.0",
1271 + "test-exclude": "^6.0.0"
1272 + }
1273 + },
1274 + "babel-plugin-jest-hoist": {
1275 + "version": "26.2.0",
1276 + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz",
1277 + "integrity": "sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA==",
1278 + "dev": true,
1279 + "requires": {
1280 + "@babel/template": "^7.3.3",
1281 + "@babel/types": "^7.3.3",
1282 + "@types/babel__core": "^7.0.0",
1283 + "@types/babel__traverse": "^7.0.6"
1284 + }
1285 + },
1286 + "babel-preset-current-node-syntax": {
1287 + "version": "0.1.3",
1288 + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz",
1289 + "integrity": "sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==",
1290 + "dev": true,
1291 + "requires": {
1292 + "@babel/plugin-syntax-async-generators": "^7.8.4",
1293 + "@babel/plugin-syntax-bigint": "^7.8.3",
1294 + "@babel/plugin-syntax-class-properties": "^7.8.3",
1295 + "@babel/plugin-syntax-import-meta": "^7.8.3",
1296 + "@babel/plugin-syntax-json-strings": "^7.8.3",
1297 + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
1298 + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
1299 + "@babel/plugin-syntax-numeric-separator": "^7.8.3",
1300 + "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1301 + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
1302 + "@babel/plugin-syntax-optional-chaining": "^7.8.3"
1303 + }
1304 + },
1305 + "babel-preset-jest": {
1306 + "version": "26.3.0",
1307 + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz",
1308 + "integrity": "sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw==",
1309 + "dev": true,
1310 + "requires": {
1311 + "babel-plugin-jest-hoist": "^26.2.0",
1312 + "babel-preset-current-node-syntax": "^0.1.3"
1313 + }
1314 + },
1315 + "balanced-match": {
1316 + "version": "1.0.0",
1317 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1318 + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
1319 + "dev": true
1320 + },
1321 + "base": {
1322 + "version": "0.11.2",
1323 + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
1324 + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
1325 + "dev": true,
1326 + "requires": {
1327 + "cache-base": "^1.0.1",
1328 + "class-utils": "^0.3.5",
1329 + "component-emitter": "^1.2.1",
1330 + "define-property": "^1.0.0",
1331 + "isobject": "^3.0.1",
1332 + "mixin-deep": "^1.2.0",
1333 + "pascalcase": "^0.1.1"
1334 + },
1335 + "dependencies": {
1336 + "define-property": {
1337 + "version": "1.0.0",
1338 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
1339 + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
1340 + "dev": true,
1341 + "requires": {
1342 + "is-descriptor": "^1.0.0"
1343 + }
1344 + },
1345 + "is-accessor-descriptor": {
1346 + "version": "1.0.0",
1347 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1348 + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1349 + "dev": true,
1350 + "requires": {
1351 + "kind-of": "^6.0.0"
1352 + }
1353 + },
1354 + "is-data-descriptor": {
1355 + "version": "1.0.0",
1356 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1357 + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1358 + "dev": true,
1359 + "requires": {
1360 + "kind-of": "^6.0.0"
1361 + }
1362 + },
1363 + "is-descriptor": {
1364 + "version": "1.0.2",
1365 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1366 + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1367 + "dev": true,
1368 + "requires": {
1369 + "is-accessor-descriptor": "^1.0.0",
1370 + "is-data-descriptor": "^1.0.0",
1371 + "kind-of": "^6.0.2"
1372 + }
1373 + }
1374 + }
1375 + },
1376 + "bcrypt-pbkdf": {
1377 + "version": "1.0.2",
1378 + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1379 + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1380 + "dev": true,
1381 + "requires": {
1382 + "tweetnacl": "^0.14.3"
1383 + }
1384 + },
1385 + "brace-expansion": {
1386 + "version": "1.1.11",
1387 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1388 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1389 + "dev": true,
1390 + "requires": {
1391 + "balanced-match": "^1.0.0",
1392 + "concat-map": "0.0.1"
1393 + }
1394 + },
1395 + "braces": {
1396 + "version": "3.0.2",
1397 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
1398 + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
1399 + "dev": true,
1400 + "requires": {
1401 + "fill-range": "^7.0.1"
1402 + }
1403 + },
1404 + "browser-process-hrtime": {
1405 + "version": "1.0.0",
1406 + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
1407 + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
1408 + "dev": true
1409 + },
1410 + "bser": {
1411 + "version": "2.1.1",
1412 + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
1413 + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
1414 + "dev": true,
1415 + "requires": {
1416 + "node-int64": "^0.4.0"
1417 + }
1418 + },
1419 + "buffer-from": {
1420 + "version": "1.1.1",
1421 + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
1422 + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
1423 + "dev": true
1424 + },
1425 + "cache-base": {
1426 + "version": "1.0.1",
1427 + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
1428 + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
1429 + "dev": true,
1430 + "requires": {
1431 + "collection-visit": "^1.0.0",
1432 + "component-emitter": "^1.2.1",
1433 + "get-value": "^2.0.6",
1434 + "has-value": "^1.0.0",
1435 + "isobject": "^3.0.1",
1436 + "set-value": "^2.0.0",
1437 + "to-object-path": "^0.3.0",
1438 + "union-value": "^1.0.0",
1439 + "unset-value": "^1.0.0"
1440 + }
1441 + },
1442 + "callsites": {
1443 + "version": "3.1.0",
1444 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1445 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1446 + "dev": true
1447 + },
1448 + "camelcase": {
1449 + "version": "5.3.1",
1450 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
1451 + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
1452 + "dev": true
1453 + },
1454 + "capture-exit": {
1455 + "version": "2.0.0",
1456 + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz",
1457 + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==",
1458 + "dev": true,
1459 + "requires": {
1460 + "rsvp": "^4.8.4"
1461 + }
1462 + },
1463 + "caseless": {
1464 + "version": "0.12.0",
1465 + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
1466 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
1467 + "dev": true
1468 + },
1469 + "chalk": {
1470 + "version": "4.0.0",
1471 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
1472 + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
1473 + "dev": true,
1474 + "requires": {
1475 + "ansi-styles": "^4.1.0",
1476 + "supports-color": "^7.1.0"
1477 + }
1478 + },
1479 + "char-regex": {
1480 + "version": "1.0.2",
1481 + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
1482 + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
1483 + "dev": true
1484 + },
1485 + "ci-info": {
1486 + "version": "2.0.0",
1487 + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
1488 + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
1489 + "dev": true
1490 + },
1491 + "class-utils": {
1492 + "version": "0.3.6",
1493 + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
1494 + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
1495 + "dev": true,
1496 + "requires": {
1497 + "arr-union": "^3.1.0",
1498 + "define-property": "^0.2.5",
1499 + "isobject": "^3.0.0",
1500 + "static-extend": "^0.1.1"
1501 + },
1502 + "dependencies": {
1503 + "define-property": {
1504 + "version": "0.2.5",
1505 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1506 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1507 + "dev": true,
1508 + "requires": {
1509 + "is-descriptor": "^0.1.0"
1510 + }
1511 + }
1512 + }
1513 + },
1514 + "cliui": {
1515 + "version": "6.0.0",
1516 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
1517 + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
1518 + "dev": true,
1519 + "requires": {
1520 + "string-width": "^4.2.0",
1521 + "strip-ansi": "^6.0.0",
1522 + "wrap-ansi": "^6.2.0"
1523 + }
1524 + },
1525 + "co": {
1526 + "version": "4.6.0",
1527 + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
1528 + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
1529 + "dev": true
1530 + },
1531 + "collect-v8-coverage": {
1532 + "version": "1.0.1",
1533 + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
1534 + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
1535 + "dev": true
1536 + },
1537 + "collection-visit": {
1538 + "version": "1.0.0",
1539 + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
1540 + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
1541 + "dev": true,
1542 + "requires": {
1543 + "map-visit": "^1.0.0",
1544 + "object-visit": "^1.0.0"
1545 + }
1546 + },
1547 + "color-convert": {
1548 + "version": "2.0.1",
1549 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1550 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1551 + "dev": true,
1552 + "requires": {
1553 + "color-name": "~1.1.4"
1554 + }
1555 + },
1556 + "color-name": {
1557 + "version": "1.1.4",
1558 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1559 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1560 + "dev": true
1561 + },
1562 + "combined-stream": {
1563 + "version": "1.0.8",
1564 + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1565 + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1566 + "dev": true,
1567 + "requires": {
1568 + "delayed-stream": "~1.0.0"
1569 + }
1570 + },
1571 + "compare-versions": {
1572 + "version": "3.6.0",
1573 + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
1574 + "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
1575 + "dev": true
1576 + },
1577 + "component-emitter": {
1578 + "version": "1.3.0",
1579 + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
1580 + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
1581 + "dev": true
1582 + },
1583 + "concat-map": {
1584 + "version": "0.0.1",
1585 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1586 + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1587 + "dev": true
1588 + },
1589 + "convert-source-map": {
1590 + "version": "1.7.0",
1591 + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
1592 + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
1593 + "dev": true,
1594 + "requires": {
1595 + "safe-buffer": "~5.1.1"
1596 + }
1597 + },
1598 + "copy-descriptor": {
1599 + "version": "0.1.1",
1600 + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
1601 + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
1602 + "dev": true
1603 + },
1604 + "core-util-is": {
1605 + "version": "1.0.2",
1606 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
1607 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
1608 + "dev": true
1609 + },
1610 + "cosmiconfig": {
1611 + "version": "6.0.0",
1612 + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
1613 + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
1614 + "dev": true,
1615 + "requires": {
1616 + "@types/parse-json": "^4.0.0",
1617 + "import-fresh": "^3.1.0",
1618 + "parse-json": "^5.0.0",
1619 + "path-type": "^4.0.0",
1620 + "yaml": "^1.7.2"
1621 + }
1622 + },
1623 + "cross-spawn": {
1624 + "version": "6.0.5",
1625 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
1626 + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
1627 + "dev": true,
1628 + "requires": {
1629 + "nice-try": "^1.0.4",
1630 + "path-key": "^2.0.1",
1631 + "semver": "^5.5.0",
1632 + "shebang-command": "^1.2.0",
1633 + "which": "^1.2.9"
1634 + },
1635 + "dependencies": {
1636 + "semver": {
1637 + "version": "5.7.1",
1638 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1639 + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1640 + "dev": true
1641 + }
1642 + }
1643 + },
1644 + "cssom": {
1645 + "version": "0.4.4",
1646 + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz",
1647 + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==",
1648 + "dev": true
1649 + },
1650 + "cssstyle": {
1651 + "version": "2.3.0",
1652 + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
1653 + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
1654 + "dev": true,
1655 + "requires": {
1656 + "cssom": "~0.3.6"
1657 + },
1658 + "dependencies": {
1659 + "cssom": {
1660 + "version": "0.3.8",
1661 + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
1662 + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
1663 + "dev": true
1664 + }
1665 + }
1666 + },
1667 + "dashdash": {
1668 + "version": "1.14.1",
1669 + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
1670 + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
1671 + "dev": true,
1672 + "requires": {
1673 + "assert-plus": "^1.0.0"
1674 + }
1675 + },
1676 + "data-urls": {
1677 + "version": "2.0.0",
1678 + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
1679 + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==",
1680 + "dev": true,
1681 + "requires": {
1682 + "abab": "^2.0.3",
1683 + "whatwg-mimetype": "^2.3.0",
1684 + "whatwg-url": "^8.0.0"
1685 + }
1686 + },
1687 + "debug": {
1688 + "version": "4.1.1",
1689 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
1690 + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
1691 + "dev": true,
1692 + "requires": {
1693 + "ms": "^2.1.1"
1694 + }
1695 + },
1696 + "decamelize": {
1697 + "version": "1.2.0",
1698 + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
1699 + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
1700 + "dev": true
1701 + },
1702 + "decimal.js": {
1703 + "version": "10.2.0",
1704 + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz",
1705 + "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==",
1706 + "dev": true
1707 + },
1708 + "decode-uri-component": {
1709 + "version": "0.2.0",
1710 + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
1711 + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
1712 + "dev": true
1713 + },
1714 + "deep-is": {
1715 + "version": "0.1.3",
1716 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
1717 + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
1718 + "dev": true
1719 + },
1720 + "deepmerge": {
1721 + "version": "4.2.2",
1722 + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
1723 + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
1724 + "dev": true
1725 + },
1726 + "define-property": {
1727 + "version": "2.0.2",
1728 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
1729 + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
1730 + "dev": true,
1731 + "requires": {
1732 + "is-descriptor": "^1.0.2",
1733 + "isobject": "^3.0.1"
1734 + },
1735 + "dependencies": {
1736 + "is-accessor-descriptor": {
1737 + "version": "1.0.0",
1738 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
1739 + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
1740 + "dev": true,
1741 + "requires": {
1742 + "kind-of": "^6.0.0"
1743 + }
1744 + },
1745 + "is-data-descriptor": {
1746 + "version": "1.0.0",
1747 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
1748 + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
1749 + "dev": true,
1750 + "requires": {
1751 + "kind-of": "^6.0.0"
1752 + }
1753 + },
1754 + "is-descriptor": {
1755 + "version": "1.0.2",
1756 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
1757 + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
1758 + "dev": true,
1759 + "requires": {
1760 + "is-accessor-descriptor": "^1.0.0",
1761 + "is-data-descriptor": "^1.0.0",
1762 + "kind-of": "^6.0.2"
1763 + }
1764 + }
1765 + }
1766 + },
1767 + "delayed-stream": {
1768 + "version": "1.0.0",
1769 + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1770 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
1771 + "dev": true
1772 + },
1773 + "detect-newline": {
1774 + "version": "3.1.0",
1775 + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
1776 + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
1777 + "dev": true
1778 + },
1779 + "diff-sequences": {
1780 + "version": "26.3.0",
1781 + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.3.0.tgz",
1782 + "integrity": "sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig==",
1783 + "dev": true
1784 + },
1785 + "domexception": {
1786 + "version": "2.0.1",
1787 + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz",
1788 + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==",
1789 + "dev": true,
1790 + "requires": {
1791 + "webidl-conversions": "^5.0.0"
1792 + },
1793 + "dependencies": {
1794 + "webidl-conversions": {
1795 + "version": "5.0.0",
1796 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz",
1797 + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==",
1798 + "dev": true
1799 + }
1800 + }
1801 + },
1802 + "ecc-jsbn": {
1803 + "version": "0.1.2",
1804 + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
1805 + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
1806 + "dev": true,
1807 + "requires": {
1808 + "jsbn": "~0.1.0",
1809 + "safer-buffer": "^2.1.0"
1810 + }
1811 + },
1812 + "emittery": {
1813 + "version": "0.7.1",
1814 + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz",
1815 + "integrity": "sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==",
1816 + "dev": true
1817 + },
1818 + "emoji-regex": {
1819 + "version": "8.0.0",
1820 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1821 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1822 + "dev": true
1823 + },
1824 + "end-of-stream": {
1825 + "version": "1.4.4",
1826 + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
1827 + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
1828 + "dev": true,
1829 + "requires": {
1830 + "once": "^1.4.0"
1831 + }
1832 + },
1833 + "error-ex": {
1834 + "version": "1.3.2",
1835 + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
1836 + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
1837 + "dev": true,
1838 + "requires": {
1839 + "is-arrayish": "^0.2.1"
1840 + }
1841 + },
1842 + "escape-string-regexp": {
1843 + "version": "1.0.5",
1844 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1845 + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1846 + "dev": true
1847 + },
1848 + "escodegen": {
1849 + "version": "1.14.3",
1850 + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
1851 + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
1852 + "dev": true,
1853 + "requires": {
1854 + "esprima": "^4.0.1",
1855 + "estraverse": "^4.2.0",
1856 + "esutils": "^2.0.2",
1857 + "optionator": "^0.8.1",
1858 + "source-map": "~0.6.1"
1859 + }
1860 + },
1861 + "esprima": {
1862 + "version": "4.0.1",
1863 + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1864 + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
1865 + "dev": true
1866 + },
1867 + "estraverse": {
1868 + "version": "4.3.0",
1869 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
1870 + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
1871 + "dev": true
1872 + },
1873 + "esutils": {
1874 + "version": "2.0.3",
1875 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1876 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1877 + "dev": true
1878 + },
1879 + "exec-sh": {
1880 + "version": "0.3.4",
1881 + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz",
1882 + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==",
1883 + "dev": true
1884 + },
1885 + "execa": {
1886 + "version": "1.0.0",
1887 + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
1888 + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
1889 + "dev": true,
1890 + "requires": {
1891 + "cross-spawn": "^6.0.0",
1892 + "get-stream": "^4.0.0",
1893 + "is-stream": "^1.1.0",
1894 + "npm-run-path": "^2.0.0",
1895 + "p-finally": "^1.0.0",
1896 + "signal-exit": "^3.0.0",
1897 + "strip-eof": "^1.0.0"
1898 + }
1899 + },
1900 + "exit": {
1901 + "version": "0.1.2",
1902 + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
1903 + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
1904 + "dev": true
1905 + },
1906 + "expand-brackets": {
1907 + "version": "2.1.4",
1908 + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
1909 + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
1910 + "dev": true,
1911 + "requires": {
1912 + "debug": "^2.3.3",
1913 + "define-property": "^0.2.5",
1914 + "extend-shallow": "^2.0.1",
1915 + "posix-character-classes": "^0.1.0",
1916 + "regex-not": "^1.0.0",
1917 + "snapdragon": "^0.8.1",
1918 + "to-regex": "^3.0.1"
1919 + },
1920 + "dependencies": {
1921 + "debug": {
1922 + "version": "2.6.9",
1923 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1924 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1925 + "dev": true,
1926 + "requires": {
1927 + "ms": "2.0.0"
1928 + }
1929 + },
1930 + "define-property": {
1931 + "version": "0.2.5",
1932 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
1933 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
1934 + "dev": true,
1935 + "requires": {
1936 + "is-descriptor": "^0.1.0"
1937 + }
1938 + },
1939 + "extend-shallow": {
1940 + "version": "2.0.1",
1941 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
1942 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
1943 + "dev": true,
1944 + "requires": {
1945 + "is-extendable": "^0.1.0"
1946 + }
1947 + },
1948 + "ms": {
1949 + "version": "2.0.0",
1950 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1951 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1952 + "dev": true
1953 + }
1954 + }
1955 + },
1956 + "expect": {
1957 + "version": "26.4.2",
1958 + "resolved": "https://registry.npmjs.org/expect/-/expect-26.4.2.tgz",
1959 + "integrity": "sha512-IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA==",
1960 + "dev": true,
1961 + "requires": {
1962 + "@jest/types": "^26.3.0",
1963 + "ansi-styles": "^4.0.0",
1964 + "jest-get-type": "^26.3.0",
1965 + "jest-matcher-utils": "^26.4.2",
1966 + "jest-message-util": "^26.3.0",
1967 + "jest-regex-util": "^26.0.0"
1968 + }
1969 + },
1970 + "extend": {
1971 + "version": "3.0.2",
1972 + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
1973 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
1974 + "dev": true
1975 + },
1976 + "extend-shallow": {
1977 + "version": "3.0.2",
1978 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
1979 + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
1980 + "dev": true,
1981 + "requires": {
1982 + "assign-symbols": "^1.0.0",
1983 + "is-extendable": "^1.0.1"
1984 + },
1985 + "dependencies": {
1986 + "is-extendable": {
1987 + "version": "1.0.1",
1988 + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
1989 + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
1990 + "dev": true,
1991 + "requires": {
1992 + "is-plain-object": "^2.0.4"
1993 + }
1994 + }
1995 + }
1996 + },
1997 + "extglob": {
1998 + "version": "2.0.4",
1999 + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
2000 + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
2001 + "dev": true,
2002 + "requires": {
2003 + "array-unique": "^0.3.2",
2004 + "define-property": "^1.0.0",
2005 + "expand-brackets": "^2.1.4",
2006 + "extend-shallow": "^2.0.1",
2007 + "fragment-cache": "^0.2.1",
2008 + "regex-not": "^1.0.0",
2009 + "snapdragon": "^0.8.1",
2010 + "to-regex": "^3.0.1"
2011 + },
2012 + "dependencies": {
2013 + "define-property": {
2014 + "version": "1.0.0",
2015 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
2016 + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
2017 + "dev": true,
2018 + "requires": {
2019 + "is-descriptor": "^1.0.0"
2020 + }
2021 + },
2022 + "extend-shallow": {
2023 + "version": "2.0.1",
2024 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
2025 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
2026 + "dev": true,
2027 + "requires": {
2028 + "is-extendable": "^0.1.0"
2029 + }
2030 + },
2031 + "is-accessor-descriptor": {
2032 + "version": "1.0.0",
2033 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
2034 + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
2035 + "dev": true,
2036 + "requires": {
2037 + "kind-of": "^6.0.0"
2038 + }
2039 + },
2040 + "is-data-descriptor": {
2041 + "version": "1.0.0",
2042 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
2043 + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
2044 + "dev": true,
2045 + "requires": {
2046 + "kind-of": "^6.0.0"
2047 + }
2048 + },
2049 + "is-descriptor": {
2050 + "version": "1.0.2",
2051 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
2052 + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
2053 + "dev": true,
2054 + "requires": {
2055 + "is-accessor-descriptor": "^1.0.0",
2056 + "is-data-descriptor": "^1.0.0",
2057 + "kind-of": "^6.0.2"
2058 + }
2059 + }
2060 + }
2061 + },
2062 + "extsprintf": {
2063 + "version": "1.3.0",
2064 + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
2065 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
2066 + "dev": true
2067 + },
2068 + "fast-deep-equal": {
2069 + "version": "3.1.3",
2070 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
2071 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
2072 + "dev": true
2073 + },
2074 + "fast-json-stable-stringify": {
2075 + "version": "2.1.0",
2076 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
2077 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
2078 + "dev": true
2079 + },
2080 + "fast-levenshtein": {
2081 + "version": "2.0.6",
2082 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
2083 + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
2084 + "dev": true
2085 + },
2086 + "fb-watchman": {
2087 + "version": "2.0.1",
2088 + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
2089 + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
2090 + "dev": true,
2091 + "requires": {
2092 + "bser": "2.1.1"
2093 + }
2094 + },
2095 + "fill-range": {
2096 + "version": "7.0.1",
2097 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
2098 + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
2099 + "dev": true,
2100 + "requires": {
2101 + "to-regex-range": "^5.0.1"
2102 + }
2103 + },
2104 + "find-up": {
2105 + "version": "4.1.0",
2106 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
2107 + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
2108 + "dev": true,
2109 + "requires": {
2110 + "locate-path": "^5.0.0",
2111 + "path-exists": "^4.0.0"
2112 + }
2113 + },
2114 + "find-versions": {
2115 + "version": "3.2.0",
2116 + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
2117 + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
2118 + "dev": true,
2119 + "requires": {
2120 + "semver-regex": "^2.0.0"
2121 + }
2122 + },
2123 + "for-in": {
2124 + "version": "1.0.2",
2125 + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
2126 + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
2127 + "dev": true
2128 + },
2129 + "forever-agent": {
2130 + "version": "0.6.1",
2131 + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
2132 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
2133 + "dev": true
2134 + },
2135 + "form-data": {
2136 + "version": "2.3.3",
2137 + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
2138 + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
2139 + "dev": true,
2140 + "requires": {
2141 + "asynckit": "^0.4.0",
2142 + "combined-stream": "^1.0.6",
2143 + "mime-types": "^2.1.12"
2144 + }
2145 + },
2146 + "fragment-cache": {
2147 + "version": "0.2.1",
2148 + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
2149 + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
2150 + "dev": true,
2151 + "requires": {
2152 + "map-cache": "^0.2.2"
2153 + }
2154 + },
2155 + "fs.realpath": {
2156 + "version": "1.0.0",
2157 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2158 + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2159 + "dev": true
2160 + },
2161 + "fsevents": {
2162 + "version": "2.1.3",
2163 + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
2164 + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
2165 + "dev": true,
2166 + "optional": true
2167 + },
2168 + "gensync": {
2169 + "version": "1.0.0-beta.1",
2170 + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
2171 + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
2172 + "dev": true
2173 + },
2174 + "get-caller-file": {
2175 + "version": "2.0.5",
2176 + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
2177 + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
2178 + "dev": true
2179 + },
2180 + "get-package-type": {
2181 + "version": "0.1.0",
2182 + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
2183 + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
2184 + "dev": true
2185 + },
2186 + "get-stream": {
2187 + "version": "4.1.0",
2188 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
2189 + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
2190 + "dev": true,
2191 + "requires": {
2192 + "pump": "^3.0.0"
2193 + }
2194 + },
2195 + "get-value": {
2196 + "version": "2.0.6",
2197 + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
2198 + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
2199 + "dev": true
2200 + },
2201 + "getpass": {
2202 + "version": "0.1.7",
2203 + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
2204 + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
2205 + "dev": true,
2206 + "requires": {
2207 + "assert-plus": "^1.0.0"
2208 + }
2209 + },
2210 + "glob": {
2211 + "version": "7.1.6",
2212 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
2213 + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
2214 + "dev": true,
2215 + "requires": {
2216 + "fs.realpath": "^1.0.0",
2217 + "inflight": "^1.0.4",
2218 + "inherits": "2",
2219 + "minimatch": "^3.0.4",
2220 + "once": "^1.3.0",
2221 + "path-is-absolute": "^1.0.0"
2222 + }
2223 + },
2224 + "globals": {
2225 + "version": "11.12.0",
2226 + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2227 + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2228 + "dev": true
2229 + },
2230 + "graceful-fs": {
2231 + "version": "4.2.4",
2232 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
2233 + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
2234 + "dev": true
2235 + },
2236 + "growly": {
2237 + "version": "1.3.0",
2238 + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
2239 + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
2240 + "dev": true,
2241 + "optional": true
2242 + },
2243 + "har-schema": {
2244 + "version": "2.0.0",
2245 + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
2246 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
2247 + "dev": true
2248 + },
2249 + "har-validator": {
2250 + "version": "5.1.5",
2251 + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
2252 + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
2253 + "dev": true,
2254 + "requires": {
2255 + "ajv": "^6.12.3",
2256 + "har-schema": "^2.0.0"
2257 + }
2258 + },
2259 + "has-flag": {
2260 + "version": "4.0.0",
2261 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2262 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2263 + "dev": true
2264 + },
2265 + "has-value": {
2266 + "version": "1.0.0",
2267 + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
2268 + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
2269 + "dev": true,
2270 + "requires": {
2271 + "get-value": "^2.0.6",
2272 + "has-values": "^1.0.0",
2273 + "isobject": "^3.0.0"
2274 + }
2275 + },
2276 + "has-values": {
2277 + "version": "1.0.0",
2278 + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
2279 + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
2280 + "dev": true,
2281 + "requires": {
2282 + "is-number": "^3.0.0",
2283 + "kind-of": "^4.0.0"
2284 + },
2285 + "dependencies": {
2286 + "is-number": {
2287 + "version": "3.0.0",
2288 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
2289 + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
2290 + "dev": true,
2291 + "requires": {
2292 + "kind-of": "^3.0.2"
2293 + },
2294 + "dependencies": {
2295 + "kind-of": {
2296 + "version": "3.2.2",
2297 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2298 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2299 + "dev": true,
2300 + "requires": {
2301 + "is-buffer": "^1.1.5"
2302 + }
2303 + }
2304 + }
2305 + },
2306 + "kind-of": {
2307 + "version": "4.0.0",
2308 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
2309 + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
2310 + "dev": true,
2311 + "requires": {
2312 + "is-buffer": "^1.1.5"
2313 + }
2314 + }
2315 + }
2316 + },
2317 + "hosted-git-info": {
2318 + "version": "2.8.8",
2319 + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
2320 + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
2321 + "dev": true
2322 + },
2323 + "html-encoding-sniffer": {
2324 + "version": "2.0.1",
2325 + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
2326 + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==",
2327 + "dev": true,
2328 + "requires": {
2329 + "whatwg-encoding": "^1.0.5"
2330 + }
2331 + },
2332 + "html-escaper": {
2333 + "version": "2.0.2",
2334 + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
2335 + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
2336 + "dev": true
2337 + },
2338 + "http-signature": {
2339 + "version": "1.2.0",
2340 + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
2341 + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
2342 + "dev": true,
2343 + "requires": {
2344 + "assert-plus": "^1.0.0",
2345 + "jsprim": "^1.2.2",
2346 + "sshpk": "^1.7.0"
2347 + }
2348 + },
2349 + "human-signals": {
2350 + "version": "1.1.1",
2351 + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
2352 + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
2353 + "dev": true
2354 + },
2355 + "husky": {
2356 + "version": "4.2.5",
2357 + "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz",
2358 + "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==",
2359 + "dev": true,
2360 + "requires": {
2361 + "chalk": "^4.0.0",
2362 + "ci-info": "^2.0.0",
2363 + "compare-versions": "^3.6.0",
2364 + "cosmiconfig": "^6.0.0",
2365 + "find-versions": "^3.2.0",
2366 + "opencollective-postinstall": "^2.0.2",
2367 + "pkg-dir": "^4.2.0",
2368 + "please-upgrade-node": "^3.2.0",
2369 + "slash": "^3.0.0",
2370 + "which-pm-runs": "^1.0.0"
2371 + }
2372 + },
2373 + "iconv-lite": {
2374 + "version": "0.4.24",
2375 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
2376 + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
2377 + "dev": true,
2378 + "requires": {
2379 + "safer-buffer": ">= 2.1.2 < 3"
2380 + }
2381 + },
2382 + "import-fresh": {
2383 + "version": "3.2.1",
2384 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
2385 + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
2386 + "dev": true,
2387 + "requires": {
2388 + "parent-module": "^1.0.0",
2389 + "resolve-from": "^4.0.0"
2390 + }
2391 + },
2392 + "import-local": {
2393 + "version": "3.0.2",
2394 + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz",
2395 + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==",
2396 + "dev": true,
2397 + "requires": {
2398 + "pkg-dir": "^4.2.0",
2399 + "resolve-cwd": "^3.0.0"
2400 + }
2401 + },
2402 + "imurmurhash": {
2403 + "version": "0.1.4",
2404 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2405 + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
2406 + "dev": true
2407 + },
2408 + "inflight": {
2409 + "version": "1.0.6",
2410 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2411 + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2412 + "dev": true,
2413 + "requires": {
2414 + "once": "^1.3.0",
2415 + "wrappy": "1"
2416 + }
2417 + },
2418 + "inherits": {
2419 + "version": "2.0.4",
2420 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2421 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2422 + "dev": true
2423 + },
2424 + "ip-regex": {
2425 + "version": "2.1.0",
2426 + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
2427 + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
2428 + "dev": true
2429 + },
2430 + "is-accessor-descriptor": {
2431 + "version": "0.1.6",
2432 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
2433 + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
2434 + "dev": true,
2435 + "requires": {
2436 + "kind-of": "^3.0.2"
2437 + },
2438 + "dependencies": {
2439 + "kind-of": {
2440 + "version": "3.2.2",
2441 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2442 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2443 + "dev": true,
2444 + "requires": {
2445 + "is-buffer": "^1.1.5"
2446 + }
2447 + }
2448 + }
2449 + },
2450 + "is-arrayish": {
2451 + "version": "0.2.1",
2452 + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
2453 + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
2454 + "dev": true
2455 + },
2456 + "is-buffer": {
2457 + "version": "1.1.6",
2458 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
2459 + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
2460 + "dev": true
2461 + },
2462 + "is-ci": {
2463 + "version": "2.0.0",
2464 + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
2465 + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
2466 + "dev": true,
2467 + "requires": {
2468 + "ci-info": "^2.0.0"
2469 + }
2470 + },
2471 + "is-data-descriptor": {
2472 + "version": "0.1.4",
2473 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
2474 + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
2475 + "dev": true,
2476 + "requires": {
2477 + "kind-of": "^3.0.2"
2478 + },
2479 + "dependencies": {
2480 + "kind-of": {
2481 + "version": "3.2.2",
2482 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
2483 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
2484 + "dev": true,
2485 + "requires": {
2486 + "is-buffer": "^1.1.5"
2487 + }
2488 + }
2489 + }
2490 + },
2491 + "is-descriptor": {
2492 + "version": "0.1.6",
2493 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
2494 + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
2495 + "dev": true,
2496 + "requires": {
2497 + "is-accessor-descriptor": "^0.1.6",
2498 + "is-data-descriptor": "^0.1.4",
2499 + "kind-of": "^5.0.0"
2500 + },
2501 + "dependencies": {
2502 + "kind-of": {
2503 + "version": "5.1.0",
2504 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
2505 + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
2506 + "dev": true
2507 + }
2508 + }
2509 + },
2510 + "is-docker": {
2511 + "version": "2.1.1",
2512 + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz",
2513 + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==",
2514 + "dev": true,
2515 + "optional": true
2516 + },
2517 + "is-extendable": {
2518 + "version": "0.1.1",
2519 + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
2520 + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
2521 + "dev": true
2522 + },
2523 + "is-fullwidth-code-point": {
2524 + "version": "3.0.0",
2525 + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2526 + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2527 + "dev": true
2528 + },
2529 + "is-generator-fn": {
2530 + "version": "2.1.0",
2531 + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
2532 + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
2533 + "dev": true
2534 + },
2535 + "is-number": {
2536 + "version": "7.0.0",
2537 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2538 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2539 + "dev": true
2540 + },
2541 + "is-plain-object": {
2542 + "version": "2.0.4",
2543 + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
2544 + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
2545 + "dev": true,
2546 + "requires": {
2547 + "isobject": "^3.0.1"
2548 + }
2549 + },
2550 + "is-potential-custom-element-name": {
2551 + "version": "1.0.0",
2552 + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz",
2553 + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=",
2554 + "dev": true
2555 + },
2556 + "is-stream": {
2557 + "version": "1.1.0",
2558 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
2559 + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
2560 + "dev": true
2561 + },
2562 + "is-typedarray": {
2563 + "version": "1.0.0",
2564 + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2565 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
2566 + "dev": true
2567 + },
2568 + "is-windows": {
2569 + "version": "1.0.2",
2570 + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
2571 + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
2572 + "dev": true
2573 + },
2574 + "is-wsl": {
2575 + "version": "2.2.0",
2576 + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
2577 + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
2578 + "dev": true,
2579 + "optional": true,
2580 + "requires": {
2581 + "is-docker": "^2.0.0"
2582 + }
2583 + },
2584 + "isarray": {
2585 + "version": "1.0.0",
2586 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2587 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2588 + "dev": true
2589 + },
2590 + "isexe": {
2591 + "version": "2.0.0",
2592 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2593 + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2594 + "dev": true
2595 + },
2596 + "isobject": {
2597 + "version": "3.0.1",
2598 + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
2599 + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
2600 + "dev": true
2601 + },
2602 + "isstream": {
2603 + "version": "0.1.2",
2604 + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
2605 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
2606 + "dev": true
2607 + },
2608 + "istanbul-lib-coverage": {
2609 + "version": "3.0.0",
2610 + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz",
2611 + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==",
2612 + "dev": true
2613 + },
2614 + "istanbul-lib-instrument": {
2615 + "version": "4.0.3",
2616 + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
2617 + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
2618 + "dev": true,
2619 + "requires": {
2620 + "@babel/core": "^7.7.5",
2621 + "@istanbuljs/schema": "^0.1.2",
2622 + "istanbul-lib-coverage": "^3.0.0",
2623 + "semver": "^6.3.0"
2624 + },
2625 + "dependencies": {
2626 + "semver": {
2627 + "version": "6.3.0",
2628 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
2629 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
2630 + "dev": true
2631 + }
2632 + }
2633 + },
2634 + "istanbul-lib-report": {
2635 + "version": "3.0.0",
2636 + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
2637 + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
2638 + "dev": true,
2639 + "requires": {
2640 + "istanbul-lib-coverage": "^3.0.0",
2641 + "make-dir": "^3.0.0",
2642 + "supports-color": "^7.1.0"
2643 + }
2644 + },
2645 + "istanbul-lib-source-maps": {
2646 + "version": "4.0.0",
2647 + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz",
2648 + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==",
2649 + "dev": true,
2650 + "requires": {
2651 + "debug": "^4.1.1",
2652 + "istanbul-lib-coverage": "^3.0.0",
2653 + "source-map": "^0.6.1"
2654 + }
2655 + },
2656 + "istanbul-reports": {
2657 + "version": "3.0.2",
2658 + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
2659 + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
2660 + "dev": true,
2661 + "requires": {
2662 + "html-escaper": "^2.0.0",
2663 + "istanbul-lib-report": "^3.0.0"
2664 + }
2665 + },
2666 + "jest": {
2667 + "version": "26.4.2",
2668 + "resolved": "https://registry.npmjs.org/jest/-/jest-26.4.2.tgz",
2669 + "integrity": "sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw==",
2670 + "dev": true,
2671 + "requires": {
2672 + "@jest/core": "^26.4.2",
2673 + "import-local": "^3.0.2",
2674 + "jest-cli": "^26.4.2"
2675 + },
2676 + "dependencies": {
2677 + "jest-cli": {
2678 + "version": "26.4.2",
2679 + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.4.2.tgz",
2680 + "integrity": "sha512-zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw==",
2681 + "dev": true,
2682 + "requires": {
2683 + "@jest/core": "^26.4.2",
2684 + "@jest/test-result": "^26.3.0",
2685 + "@jest/types": "^26.3.0",
2686 + "chalk": "^4.0.0",
2687 + "exit": "^0.1.2",
2688 + "graceful-fs": "^4.2.4",
2689 + "import-local": "^3.0.2",
2690 + "is-ci": "^2.0.0",
2691 + "jest-config": "^26.4.2",
2692 + "jest-util": "^26.3.0",
2693 + "jest-validate": "^26.4.2",
2694 + "prompts": "^2.0.1",
2695 + "yargs": "^15.3.1"
2696 + }
2697 + }
2698 + }
2699 + },
2700 + "jest-changed-files": {
2701 + "version": "26.3.0",
2702 + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.3.0.tgz",
2703 + "integrity": "sha512-1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g==",
2704 + "dev": true,
2705 + "requires": {
2706 + "@jest/types": "^26.3.0",
2707 + "execa": "^4.0.0",
2708 + "throat": "^5.0.0"
2709 + },
2710 + "dependencies": {
2711 + "cross-spawn": {
2712 + "version": "7.0.3",
2713 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
2714 + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
2715 + "dev": true,
2716 + "requires": {
2717 + "path-key": "^3.1.0",
2718 + "shebang-command": "^2.0.0",
2719 + "which": "^2.0.1"
2720 + }
2721 + },
2722 + "execa": {
2723 + "version": "4.0.3",
2724 + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz",
2725 + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==",
2726 + "dev": true,
2727 + "requires": {
2728 + "cross-spawn": "^7.0.0",
2729 + "get-stream": "^5.0.0",
2730 + "human-signals": "^1.1.1",
2731 + "is-stream": "^2.0.0",
2732 + "merge-stream": "^2.0.0",
2733 + "npm-run-path": "^4.0.0",
2734 + "onetime": "^5.1.0",
2735 + "signal-exit": "^3.0.2",
2736 + "strip-final-newline": "^2.0.0"
2737 + }
2738 + },
2739 + "get-stream": {
2740 + "version": "5.2.0",
2741 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
2742 + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
2743 + "dev": true,
2744 + "requires": {
2745 + "pump": "^3.0.0"
2746 + }
2747 + },
2748 + "is-stream": {
2749 + "version": "2.0.0",
2750 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
2751 + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
2752 + "dev": true
2753 + },
2754 + "npm-run-path": {
2755 + "version": "4.0.1",
2756 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
2757 + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
2758 + "dev": true,
2759 + "requires": {
2760 + "path-key": "^3.0.0"
2761 + }
2762 + },
2763 + "path-key": {
2764 + "version": "3.1.1",
2765 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
2766 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
2767 + "dev": true
2768 + },
2769 + "shebang-command": {
2770 + "version": "2.0.0",
2771 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2772 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2773 + "dev": true,
2774 + "requires": {
2775 + "shebang-regex": "^3.0.0"
2776 + }
2777 + },
2778 + "shebang-regex": {
2779 + "version": "3.0.0",
2780 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2781 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2782 + "dev": true
2783 + },
2784 + "which": {
2785 + "version": "2.0.2",
2786 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2787 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2788 + "dev": true,
2789 + "requires": {
2790 + "isexe": "^2.0.0"
2791 + }
2792 + }
2793 + }
2794 + },
2795 + "jest-config": {
2796 + "version": "26.4.2",
2797 + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.4.2.tgz",
2798 + "integrity": "sha512-QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A==",
2799 + "dev": true,
2800 + "requires": {
2801 + "@babel/core": "^7.1.0",
2802 + "@jest/test-sequencer": "^26.4.2",
2803 + "@jest/types": "^26.3.0",
2804 + "babel-jest": "^26.3.0",
2805 + "chalk": "^4.0.0",
2806 + "deepmerge": "^4.2.2",
2807 + "glob": "^7.1.1",
2808 + "graceful-fs": "^4.2.4",
2809 + "jest-environment-jsdom": "^26.3.0",
2810 + "jest-environment-node": "^26.3.0",
2811 + "jest-get-type": "^26.3.0",
2812 + "jest-jasmine2": "^26.4.2",
2813 + "jest-regex-util": "^26.0.0",
2814 + "jest-resolve": "^26.4.0",
2815 + "jest-util": "^26.3.0",
2816 + "jest-validate": "^26.4.2",
2817 + "micromatch": "^4.0.2",
2818 + "pretty-format": "^26.4.2"
2819 + }
2820 + },
2821 + "jest-diff": {
2822 + "version": "26.4.2",
2823 + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.4.2.tgz",
2824 + "integrity": "sha512-6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ==",
2825 + "dev": true,
2826 + "requires": {
2827 + "chalk": "^4.0.0",
2828 + "diff-sequences": "^26.3.0",
2829 + "jest-get-type": "^26.3.0",
2830 + "pretty-format": "^26.4.2"
2831 + }
2832 + },
2833 + "jest-docblock": {
2834 + "version": "26.0.0",
2835 + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz",
2836 + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==",
2837 + "dev": true,
2838 + "requires": {
2839 + "detect-newline": "^3.0.0"
2840 + }
2841 + },
2842 + "jest-each": {
2843 + "version": "26.4.2",
2844 + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.4.2.tgz",
2845 + "integrity": "sha512-p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA==",
2846 + "dev": true,
2847 + "requires": {
2848 + "@jest/types": "^26.3.0",
2849 + "chalk": "^4.0.0",
2850 + "jest-get-type": "^26.3.0",
2851 + "jest-util": "^26.3.0",
2852 + "pretty-format": "^26.4.2"
2853 + }
2854 + },
2855 + "jest-environment-jsdom": {
2856 + "version": "26.3.0",
2857 + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz",
2858 + "integrity": "sha512-zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA==",
2859 + "dev": true,
2860 + "requires": {
2861 + "@jest/environment": "^26.3.0",
2862 + "@jest/fake-timers": "^26.3.0",
2863 + "@jest/types": "^26.3.0",
2864 + "@types/node": "*",
2865 + "jest-mock": "^26.3.0",
2866 + "jest-util": "^26.3.0",
2867 + "jsdom": "^16.2.2"
2868 + }
2869 + },
2870 + "jest-environment-node": {
2871 + "version": "26.3.0",
2872 + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.3.0.tgz",
2873 + "integrity": "sha512-c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw==",
2874 + "dev": true,
2875 + "requires": {
2876 + "@jest/environment": "^26.3.0",
2877 + "@jest/fake-timers": "^26.3.0",
2878 + "@jest/types": "^26.3.0",
2879 + "@types/node": "*",
2880 + "jest-mock": "^26.3.0",
2881 + "jest-util": "^26.3.0"
2882 + }
2883 + },
2884 + "jest-get-type": {
2885 + "version": "26.3.0",
2886 + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz",
2887 + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==",
2888 + "dev": true
2889 + },
2890 + "jest-haste-map": {
2891 + "version": "26.3.0",
2892 + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.3.0.tgz",
2893 + "integrity": "sha512-DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA==",
2894 + "dev": true,
2895 + "requires": {
2896 + "@jest/types": "^26.3.0",
2897 + "@types/graceful-fs": "^4.1.2",
2898 + "@types/node": "*",
2899 + "anymatch": "^3.0.3",
2900 + "fb-watchman": "^2.0.0",
2901 + "fsevents": "^2.1.2",
2902 + "graceful-fs": "^4.2.4",
2903 + "jest-regex-util": "^26.0.0",
2904 + "jest-serializer": "^26.3.0",
2905 + "jest-util": "^26.3.0",
2906 + "jest-worker": "^26.3.0",
2907 + "micromatch": "^4.0.2",
2908 + "sane": "^4.0.3",
2909 + "walker": "^1.0.7"
2910 + }
2911 + },
2912 + "jest-jasmine2": {
2913 + "version": "26.4.2",
2914 + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz",
2915 + "integrity": "sha512-z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA==",
2916 + "dev": true,
2917 + "requires": {
2918 + "@babel/traverse": "^7.1.0",
2919 + "@jest/environment": "^26.3.0",
2920 + "@jest/source-map": "^26.3.0",
2921 + "@jest/test-result": "^26.3.0",
2922 + "@jest/types": "^26.3.0",
2923 + "@types/node": "*",
2924 + "chalk": "^4.0.0",
2925 + "co": "^4.6.0",
2926 + "expect": "^26.4.2",
2927 + "is-generator-fn": "^2.0.0",
2928 + "jest-each": "^26.4.2",
2929 + "jest-matcher-utils": "^26.4.2",
2930 + "jest-message-util": "^26.3.0",
2931 + "jest-runtime": "^26.4.2",
2932 + "jest-snapshot": "^26.4.2",
2933 + "jest-util": "^26.3.0",
2934 + "pretty-format": "^26.4.2",
2935 + "throat": "^5.0.0"
2936 + }
2937 + },
2938 + "jest-leak-detector": {
2939 + "version": "26.4.2",
2940 + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz",
2941 + "integrity": "sha512-akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA==",
2942 + "dev": true,
2943 + "requires": {
2944 + "jest-get-type": "^26.3.0",
2945 + "pretty-format": "^26.4.2"
2946 + }
2947 + },
2948 + "jest-matcher-utils": {
2949 + "version": "26.4.2",
2950 + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz",
2951 + "integrity": "sha512-KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q==",
2952 + "dev": true,
2953 + "requires": {
2954 + "chalk": "^4.0.0",
2955 + "jest-diff": "^26.4.2",
2956 + "jest-get-type": "^26.3.0",
2957 + "pretty-format": "^26.4.2"
2958 + }
2959 + },
2960 + "jest-message-util": {
2961 + "version": "26.3.0",
2962 + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.3.0.tgz",
2963 + "integrity": "sha512-xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA==",
2964 + "dev": true,
2965 + "requires": {
2966 + "@babel/code-frame": "^7.0.0",
2967 + "@jest/types": "^26.3.0",
2968 + "@types/stack-utils": "^1.0.1",
2969 + "chalk": "^4.0.0",
2970 + "graceful-fs": "^4.2.4",
2971 + "micromatch": "^4.0.2",
2972 + "slash": "^3.0.0",
2973 + "stack-utils": "^2.0.2"
2974 + }
2975 + },
2976 + "jest-mock": {
2977 + "version": "26.3.0",
2978 + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.3.0.tgz",
2979 + "integrity": "sha512-PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q==",
2980 + "dev": true,
2981 + "requires": {
2982 + "@jest/types": "^26.3.0",
2983 + "@types/node": "*"
2984 + }
2985 + },
2986 + "jest-pnp-resolver": {
2987 + "version": "1.2.2",
2988 + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
2989 + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
2990 + "dev": true
2991 + },
2992 + "jest-regex-util": {
2993 + "version": "26.0.0",
2994 + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz",
2995 + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==",
2996 + "dev": true
2997 + },
2998 + "jest-resolve": {
2999 + "version": "26.4.0",
3000 + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.4.0.tgz",
3001 + "integrity": "sha512-bn/JoZTEXRSlEx3+SfgZcJAVuTMOksYq9xe9O6s4Ekg84aKBObEaVXKOEilULRqviSLAYJldnoWV9c07kwtiCg==",
3002 + "dev": true,
3003 + "requires": {
3004 + "@jest/types": "^26.3.0",
3005 + "chalk": "^4.0.0",
3006 + "graceful-fs": "^4.2.4",
3007 + "jest-pnp-resolver": "^1.2.2",
3008 + "jest-util": "^26.3.0",
3009 + "read-pkg-up": "^7.0.1",
3010 + "resolve": "^1.17.0",
3011 + "slash": "^3.0.0"
3012 + }
3013 + },
3014 + "jest-resolve-dependencies": {
3015 + "version": "26.4.2",
3016 + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz",
3017 + "integrity": "sha512-ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ==",
3018 + "dev": true,
3019 + "requires": {
3020 + "@jest/types": "^26.3.0",
3021 + "jest-regex-util": "^26.0.0",
3022 + "jest-snapshot": "^26.4.2"
3023 + }
3024 + },
3025 + "jest-runner": {
3026 + "version": "26.4.2",
3027 + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.4.2.tgz",
3028 + "integrity": "sha512-FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g==",
3029 + "dev": true,
3030 + "requires": {
3031 + "@jest/console": "^26.3.0",
3032 + "@jest/environment": "^26.3.0",
3033 + "@jest/test-result": "^26.3.0",
3034 + "@jest/types": "^26.3.0",
3035 + "@types/node": "*",
3036 + "chalk": "^4.0.0",
3037 + "emittery": "^0.7.1",
3038 + "exit": "^0.1.2",
3039 + "graceful-fs": "^4.2.4",
3040 + "jest-config": "^26.4.2",
3041 + "jest-docblock": "^26.0.0",
3042 + "jest-haste-map": "^26.3.0",
3043 + "jest-leak-detector": "^26.4.2",
3044 + "jest-message-util": "^26.3.0",
3045 + "jest-resolve": "^26.4.0",
3046 + "jest-runtime": "^26.4.2",
3047 + "jest-util": "^26.3.0",
3048 + "jest-worker": "^26.3.0",
3049 + "source-map-support": "^0.5.6",
3050 + "throat": "^5.0.0"
3051 + }
3052 + },
3053 + "jest-runtime": {
3054 + "version": "26.4.2",
3055 + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.4.2.tgz",
3056 + "integrity": "sha512-4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ==",
3057 + "dev": true,
3058 + "requires": {
3059 + "@jest/console": "^26.3.0",
3060 + "@jest/environment": "^26.3.0",
3061 + "@jest/fake-timers": "^26.3.0",
3062 + "@jest/globals": "^26.4.2",
3063 + "@jest/source-map": "^26.3.0",
3064 + "@jest/test-result": "^26.3.0",
3065 + "@jest/transform": "^26.3.0",
3066 + "@jest/types": "^26.3.0",
3067 + "@types/yargs": "^15.0.0",
3068 + "chalk": "^4.0.0",
3069 + "collect-v8-coverage": "^1.0.0",
3070 + "exit": "^0.1.2",
3071 + "glob": "^7.1.3",
3072 + "graceful-fs": "^4.2.4",
3073 + "jest-config": "^26.4.2",
3074 + "jest-haste-map": "^26.3.0",
3075 + "jest-message-util": "^26.3.0",
3076 + "jest-mock": "^26.3.0",
3077 + "jest-regex-util": "^26.0.0",
3078 + "jest-resolve": "^26.4.0",
3079 + "jest-snapshot": "^26.4.2",
3080 + "jest-util": "^26.3.0",
3081 + "jest-validate": "^26.4.2",
3082 + "slash": "^3.0.0",
3083 + "strip-bom": "^4.0.0",
3084 + "yargs": "^15.3.1"
3085 + }
3086 + },
3087 + "jest-serializer": {
3088 + "version": "26.3.0",
3089 + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.3.0.tgz",
3090 + "integrity": "sha512-IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow==",
3091 + "dev": true,
3092 + "requires": {
3093 + "@types/node": "*",
3094 + "graceful-fs": "^4.2.4"
3095 + }
3096 + },
3097 + "jest-snapshot": {
3098 + "version": "26.4.2",
3099 + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.4.2.tgz",
3100 + "integrity": "sha512-N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg==",
3101 + "dev": true,
3102 + "requires": {
3103 + "@babel/types": "^7.0.0",
3104 + "@jest/types": "^26.3.0",
3105 + "@types/prettier": "^2.0.0",
3106 + "chalk": "^4.0.0",
3107 + "expect": "^26.4.2",
3108 + "graceful-fs": "^4.2.4",
3109 + "jest-diff": "^26.4.2",
3110 + "jest-get-type": "^26.3.0",
3111 + "jest-haste-map": "^26.3.0",
3112 + "jest-matcher-utils": "^26.4.2",
3113 + "jest-message-util": "^26.3.0",
3114 + "jest-resolve": "^26.4.0",
3115 + "natural-compare": "^1.4.0",
3116 + "pretty-format": "^26.4.2",
3117 + "semver": "^7.3.2"
3118 + }
3119 + },
3120 + "jest-util": {
3121 + "version": "26.3.0",
3122 + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz",
3123 + "integrity": "sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==",
3124 + "dev": true,
3125 + "requires": {
3126 + "@jest/types": "^26.3.0",
3127 + "@types/node": "*",
3128 + "chalk": "^4.0.0",
3129 + "graceful-fs": "^4.2.4",
3130 + "is-ci": "^2.0.0",
3131 + "micromatch": "^4.0.2"
3132 + }
3133 + },
3134 + "jest-validate": {
3135 + "version": "26.4.2",
3136 + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.4.2.tgz",
3137 + "integrity": "sha512-blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ==",
3138 + "dev": true,
3139 + "requires": {
3140 + "@jest/types": "^26.3.0",
3141 + "camelcase": "^6.0.0",
3142 + "chalk": "^4.0.0",
3143 + "jest-get-type": "^26.3.0",
3144 + "leven": "^3.1.0",
3145 + "pretty-format": "^26.4.2"
3146 + },
3147 + "dependencies": {
3148 + "camelcase": {
3149 + "version": "6.0.0",
3150 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz",
3151 + "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==",
3152 + "dev": true
3153 + }
3154 + }
3155 + },
3156 + "jest-watcher": {
3157 + "version": "26.3.0",
3158 + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.3.0.tgz",
3159 + "integrity": "sha512-XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ==",
3160 + "dev": true,
3161 + "requires": {
3162 + "@jest/test-result": "^26.3.0",
3163 + "@jest/types": "^26.3.0",
3164 + "@types/node": "*",
3165 + "ansi-escapes": "^4.2.1",
3166 + "chalk": "^4.0.0",
3167 + "jest-util": "^26.3.0",
3168 + "string-length": "^4.0.1"
3169 + }
3170 + },
3171 + "jest-worker": {
3172 + "version": "26.3.0",
3173 + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz",
3174 + "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==",
3175 + "dev": true,
3176 + "requires": {
3177 + "@types/node": "*",
3178 + "merge-stream": "^2.0.0",
3179 + "supports-color": "^7.0.0"
3180 + }
3181 + },
3182 + "js-tokens": {
3183 + "version": "4.0.0",
3184 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
3185 + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
3186 + "dev": true
3187 + },
3188 + "js-yaml": {
3189 + "version": "3.14.0",
3190 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
3191 + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
3192 + "dev": true,
3193 + "requires": {
3194 + "argparse": "^1.0.7",
3195 + "esprima": "^4.0.0"
3196 + }
3197 + },
3198 + "jsbn": {
3199 + "version": "0.1.1",
3200 + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
3201 + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
3202 + "dev": true
3203 + },
3204 + "jsdom": {
3205 + "version": "16.4.0",
3206 + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz",
3207 + "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==",
3208 + "dev": true,
3209 + "requires": {
3210 + "abab": "^2.0.3",
3211 + "acorn": "^7.1.1",
3212 + "acorn-globals": "^6.0.0",
3213 + "cssom": "^0.4.4",
3214 + "cssstyle": "^2.2.0",
3215 + "data-urls": "^2.0.0",
3216 + "decimal.js": "^10.2.0",
3217 + "domexception": "^2.0.1",
3218 + "escodegen": "^1.14.1",
3219 + "html-encoding-sniffer": "^2.0.1",
3220 + "is-potential-custom-element-name": "^1.0.0",
3221 + "nwsapi": "^2.2.0",
3222 + "parse5": "5.1.1",
3223 + "request": "^2.88.2",
3224 + "request-promise-native": "^1.0.8",
3225 + "saxes": "^5.0.0",
3226 + "symbol-tree": "^3.2.4",
3227 + "tough-cookie": "^3.0.1",
3228 + "w3c-hr-time": "^1.0.2",
3229 + "w3c-xmlserializer": "^2.0.0",
3230 + "webidl-conversions": "^6.1.0",
3231 + "whatwg-encoding": "^1.0.5",
3232 + "whatwg-mimetype": "^2.3.0",
3233 + "whatwg-url": "^8.0.0",
3234 + "ws": "^7.2.3",
3235 + "xml-name-validator": "^3.0.0"
3236 + }
3237 + },
3238 + "jsesc": {
3239 + "version": "2.5.2",
3240 + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
3241 + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
3242 + "dev": true
3243 + },
3244 + "json-parse-better-errors": {
3245 + "version": "1.0.2",
3246 + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
3247 + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
3248 + "dev": true
3249 + },
3250 + "json-schema": {
3251 + "version": "0.2.3",
3252 + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
3253 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
3254 + "dev": true
3255 + },
3256 + "json-schema-traverse": {
3257 + "version": "0.4.1",
3258 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
3259 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
3260 + "dev": true
3261 + },
3262 + "json-stringify-safe": {
3263 + "version": "5.0.1",
3264 + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
3265 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
3266 + "dev": true
3267 + },
3268 + "json5": {
3269 + "version": "2.1.3",
3270 + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
3271 + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
3272 + "dev": true,
3273 + "requires": {
3274 + "minimist": "^1.2.5"
3275 + }
3276 + },
3277 + "jsprim": {
3278 + "version": "1.4.1",
3279 + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
3280 + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
3281 + "dev": true,
3282 + "requires": {
3283 + "assert-plus": "1.0.0",
3284 + "extsprintf": "1.3.0",
3285 + "json-schema": "0.2.3",
3286 + "verror": "1.10.0"
3287 + }
3288 + },
3289 + "kind-of": {
3290 + "version": "6.0.3",
3291 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
3292 + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
3293 + "dev": true
3294 + },
3295 + "kleur": {
3296 + "version": "3.0.3",
3297 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
3298 + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
3299 + "dev": true
3300 + },
3301 + "leven": {
3302 + "version": "3.1.0",
3303 + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
3304 + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
3305 + "dev": true
3306 + },
3307 + "levn": {
3308 + "version": "0.3.0",
3309 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
3310 + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
3311 + "dev": true,
3312 + "requires": {
3313 + "prelude-ls": "~1.1.2",
3314 + "type-check": "~0.3.2"
3315 + }
3316 + },
3317 + "lines-and-columns": {
3318 + "version": "1.1.6",
3319 + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
3320 + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
3321 + "dev": true
3322 + },
3323 + "locate-path": {
3324 + "version": "5.0.0",
3325 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
3326 + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
3327 + "dev": true,
3328 + "requires": {
3329 + "p-locate": "^4.1.0"
3330 + }
3331 + },
3332 + "lodash": {
3333 + "version": "4.17.20",
3334 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
3335 + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
3336 + "dev": true
3337 + },
3338 + "lodash.sortby": {
3339 + "version": "4.7.0",
3340 + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
3341 + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
3342 + "dev": true
3343 + },
3344 + "make-dir": {
3345 + "version": "3.1.0",
3346 + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
3347 + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
3348 + "dev": true,
3349 + "requires": {
3350 + "semver": "^6.0.0"
3351 + },
3352 + "dependencies": {
3353 + "semver": {
3354 + "version": "6.3.0",
3355 + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3356 + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
3357 + "dev": true
3358 + }
3359 + }
3360 + },
3361 + "makeerror": {
3362 + "version": "1.0.11",
3363 + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
3364 + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=",
3365 + "dev": true,
3366 + "requires": {
3367 + "tmpl": "1.0.x"
3368 + }
3369 + },
3370 + "map-cache": {
3371 + "version": "0.2.2",
3372 + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
3373 + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
3374 + "dev": true
3375 + },
3376 + "map-visit": {
3377 + "version": "1.0.0",
3378 + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
3379 + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
3380 + "dev": true,
3381 + "requires": {
3382 + "object-visit": "^1.0.0"
3383 + }
3384 + },
3385 + "merge-stream": {
3386 + "version": "2.0.0",
3387 + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
3388 + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
3389 + "dev": true
3390 + },
3391 + "micromatch": {
3392 + "version": "4.0.2",
3393 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
3394 + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
3395 + "dev": true,
3396 + "requires": {
3397 + "braces": "^3.0.1",
3398 + "picomatch": "^2.0.5"
3399 + }
3400 + },
3401 + "mime-db": {
3402 + "version": "1.44.0",
3403 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
3404 + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
3405 + "dev": true
3406 + },
3407 + "mime-types": {
3408 + "version": "2.1.27",
3409 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
3410 + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
3411 + "dev": true,
3412 + "requires": {
3413 + "mime-db": "1.44.0"
3414 + }
3415 + },
3416 + "mimic-fn": {
3417 + "version": "2.1.0",
3418 + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
3419 + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
3420 + "dev": true
3421 + },
3422 + "minimatch": {
3423 + "version": "3.0.4",
3424 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
3425 + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
3426 + "dev": true,
3427 + "requires": {
3428 + "brace-expansion": "^1.1.7"
3429 + }
3430 + },
3431 + "minimist": {
3432 + "version": "1.2.5",
3433 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
3434 + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
3435 + "dev": true
3436 + },
3437 + "mixin-deep": {
3438 + "version": "1.3.2",
3439 + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
3440 + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
3441 + "dev": true,
3442 + "requires": {
3443 + "for-in": "^1.0.2",
3444 + "is-extendable": "^1.0.1"
3445 + },
3446 + "dependencies": {
3447 + "is-extendable": {
3448 + "version": "1.0.1",
3449 + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
3450 + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
3451 + "dev": true,
3452 + "requires": {
3453 + "is-plain-object": "^2.0.4"
3454 + }
3455 + }
3456 + }
3457 + },
3458 + "ms": {
3459 + "version": "2.1.2",
3460 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3461 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
3462 + "dev": true
3463 + },
3464 + "nanomatch": {
3465 + "version": "1.2.13",
3466 + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
3467 + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
3468 + "dev": true,
3469 + "requires": {
3470 + "arr-diff": "^4.0.0",
3471 + "array-unique": "^0.3.2",
3472 + "define-property": "^2.0.2",
3473 + "extend-shallow": "^3.0.2",
3474 + "fragment-cache": "^0.2.1",
3475 + "is-windows": "^1.0.2",
3476 + "kind-of": "^6.0.2",
3477 + "object.pick": "^1.3.0",
3478 + "regex-not": "^1.0.0",
3479 + "snapdragon": "^0.8.1",
3480 + "to-regex": "^3.0.1"
3481 + }
3482 + },
3483 + "natural-compare": {
3484 + "version": "1.4.0",
3485 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
3486 + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
3487 + "dev": true
3488 + },
3489 + "nice-try": {
3490 + "version": "1.0.5",
3491 + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
3492 + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
3493 + "dev": true
3494 + },
3495 + "node-int64": {
3496 + "version": "0.4.0",
3497 + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
3498 + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=",
3499 + "dev": true
3500 + },
3501 + "node-modules-regexp": {
3502 + "version": "1.0.0",
3503 + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz",
3504 + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=",
3505 + "dev": true
3506 + },
3507 + "node-notifier": {
3508 + "version": "8.0.0",
3509 + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz",
3510 + "integrity": "sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==",
3511 + "dev": true,
3512 + "optional": true,
3513 + "requires": {
3514 + "growly": "^1.3.0",
3515 + "is-wsl": "^2.2.0",
3516 + "semver": "^7.3.2",
3517 + "shellwords": "^0.1.1",
3518 + "uuid": "^8.3.0",
3519 + "which": "^2.0.2"
3520 + },
3521 + "dependencies": {
3522 + "uuid": {
3523 + "version": "8.3.0",
3524 + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz",
3525 + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==",
3526 + "dev": true,
3527 + "optional": true
3528 + },
3529 + "which": {
3530 + "version": "2.0.2",
3531 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
3532 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
3533 + "dev": true,
3534 + "optional": true,
3535 + "requires": {
3536 + "isexe": "^2.0.0"
3537 + }
3538 + }
3539 + }
3540 + },
3541 + "normalize-package-data": {
3542 + "version": "2.5.0",
3543 + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
3544 + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
3545 + "dev": true,
3546 + "requires": {
3547 + "hosted-git-info": "^2.1.4",
3548 + "resolve": "^1.10.0",
3549 + "semver": "2 || 3 || 4 || 5",
3550 + "validate-npm-package-license": "^3.0.1"
3551 + },
3552 + "dependencies": {
3553 + "semver": {
3554 + "version": "5.7.1",
3555 + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
3556 + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
3557 + "dev": true
3558 + }
3559 + }
3560 + },
3561 + "normalize-path": {
3562 + "version": "3.0.0",
3563 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
3564 + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
3565 + "dev": true
3566 + },
3567 + "npm-run-path": {
3568 + "version": "2.0.2",
3569 + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
3570 + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
3571 + "dev": true,
3572 + "requires": {
3573 + "path-key": "^2.0.0"
3574 + }
3575 + },
3576 + "nwsapi": {
3577 + "version": "2.2.0",
3578 + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
3579 + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==",
3580 + "dev": true
3581 + },
3582 + "oauth-sign": {
3583 + "version": "0.9.0",
3584 + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
3585 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
3586 + "dev": true
3587 + },
3588 + "object-copy": {
3589 + "version": "0.1.0",
3590 + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
3591 + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
3592 + "dev": true,
3593 + "requires": {
3594 + "copy-descriptor": "^0.1.0",
3595 + "define-property": "^0.2.5",
3596 + "kind-of": "^3.0.3"
3597 + },
3598 + "dependencies": {
3599 + "define-property": {
3600 + "version": "0.2.5",
3601 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
3602 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
3603 + "dev": true,
3604 + "requires": {
3605 + "is-descriptor": "^0.1.0"
3606 + }
3607 + },
3608 + "kind-of": {
3609 + "version": "3.2.2",
3610 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
3611 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
3612 + "dev": true,
3613 + "requires": {
3614 + "is-buffer": "^1.1.5"
3615 + }
3616 + }
3617 + }
3618 + },
3619 + "object-visit": {
3620 + "version": "1.0.1",
3621 + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
3622 + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
3623 + "dev": true,
3624 + "requires": {
3625 + "isobject": "^3.0.0"
3626 + }
3627 + },
3628 + "object.pick": {
3629 + "version": "1.3.0",
3630 + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
3631 + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
3632 + "dev": true,
3633 + "requires": {
3634 + "isobject": "^3.0.1"
3635 + }
3636 + },
3637 + "once": {
3638 + "version": "1.4.0",
3639 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3640 + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
3641 + "dev": true,
3642 + "requires": {
3643 + "wrappy": "1"
3644 + }
3645 + },
3646 + "onetime": {
3647 + "version": "5.1.2",
3648 + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
3649 + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
3650 + "dev": true,
3651 + "requires": {
3652 + "mimic-fn": "^2.1.0"
3653 + }
3654 + },
3655 + "opencollective-postinstall": {
335 3656 "version": "2.0.2",
336 3657 "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz",
337 3658 "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==",
338 3659 "dev": true
339 3660 },
340 "p-limit": {
3661 + "optionator": {
3662 + "version": "0.8.3",
3663 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
3664 + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
3665 + "dev": true,
3666 + "requires": {
3667 + "deep-is": "~0.1.3",
3668 + "fast-levenshtein": "~2.0.6",
3669 + "levn": "~0.3.0",
3670 + "prelude-ls": "~1.1.2",
3671 + "type-check": "~0.3.2",
3672 + "word-wrap": "~1.2.3"
3673 + }
3674 + },
3675 + "p-each-series": {
3676 + "version": "2.1.0",
3677 + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz",
3678 + "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==",
3679 + "dev": true
3680 + },
3681 + "p-finally": {
3682 + "version": "1.0.0",
3683 + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
3684 + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
3685 + "dev": true
3686 + },
3687 + "p-limit": {
3688 + "version": "2.3.0",
3689 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
3690 + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
3691 + "dev": true,
3692 + "requires": {
3693 + "p-try": "^2.0.0"
3694 + }
3695 + },
3696 + "p-locate": {
3697 + "version": "4.1.0",
3698 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
3699 + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
3700 + "dev": true,
3701 + "requires": {
3702 + "p-limit": "^2.2.0"
3703 + }
3704 + },
3705 + "p-try": {
3706 + "version": "2.2.0",
3707 + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
3708 + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
3709 + "dev": true
3710 + },
3711 + "parent-module": {
3712 + "version": "1.0.1",
3713 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
3714 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
3715 + "dev": true,
3716 + "requires": {
3717 + "callsites": "^3.0.0"
3718 + }
3719 + },
3720 + "parse-json": {
3721 + "version": "5.0.0",
3722 + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
3723 + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
3724 + "dev": true,
3725 + "requires": {
3726 + "@babel/code-frame": "^7.0.0",
3727 + "error-ex": "^1.3.1",
3728 + "json-parse-better-errors": "^1.0.1",
3729 + "lines-and-columns": "^1.1.6"
3730 + }
3731 + },
3732 + "parse5": {
3733 + "version": "5.1.1",
3734 + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
3735 + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
3736 + "dev": true
3737 + },
3738 + "pascalcase": {
3739 + "version": "0.1.1",
3740 + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
3741 + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
3742 + "dev": true
3743 + },
3744 + "path-exists": {
3745 + "version": "4.0.0",
3746 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
3747 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
3748 + "dev": true
3749 + },
3750 + "path-is-absolute": {
3751 + "version": "1.0.1",
3752 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3753 + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
3754 + "dev": true
3755 + },
3756 + "path-key": {
3757 + "version": "2.0.1",
3758 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
3759 + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
3760 + "dev": true
3761 + },
3762 + "path-parse": {
3763 + "version": "1.0.6",
3764 + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
3765 + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
3766 + "dev": true
3767 + },
3768 + "path-type": {
3769 + "version": "4.0.0",
3770 + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
3771 + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
3772 + "dev": true
3773 + },
3774 + "performance-now": {
3775 + "version": "2.1.0",
3776 + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
3777 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
3778 + "dev": true
3779 + },
3780 + "picomatch": {
3781 + "version": "2.2.2",
3782 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
3783 + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
3784 + "dev": true
3785 + },
3786 + "pirates": {
3787 + "version": "4.0.1",
3788 + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz",
3789 + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==",
3790 + "dev": true,
3791 + "requires": {
3792 + "node-modules-regexp": "^1.0.0"
3793 + }
3794 + },
3795 + "pkg-dir": {
3796 + "version": "4.2.0",
3797 + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
3798 + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
3799 + "dev": true,
3800 + "requires": {
3801 + "find-up": "^4.0.0"
3802 + }
3803 + },
3804 + "please-upgrade-node": {
3805 + "version": "3.2.0",
3806 + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
3807 + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
3808 + "dev": true,
3809 + "requires": {
3810 + "semver-compare": "^1.0.0"
3811 + }
3812 + },
3813 + "posix-character-classes": {
3814 + "version": "0.1.1",
3815 + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
3816 + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
3817 + "dev": true
3818 + },
3819 + "prelude-ls": {
3820 + "version": "1.1.2",
3821 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
3822 + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
3823 + "dev": true
3824 + },
3825 + "prettier": {
3826 + "version": "2.0.5",
3827 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
3828 + "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==",
3829 + "dev": true
3830 + },
3831 + "pretty-format": {
3832 + "version": "26.4.2",
3833 + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz",
3834 + "integrity": "sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==",
3835 + "dev": true,
3836 + "requires": {
3837 + "@jest/types": "^26.3.0",
3838 + "ansi-regex": "^5.0.0",
3839 + "ansi-styles": "^4.0.0",
3840 + "react-is": "^16.12.0"
3841 + }
3842 + },
3843 + "prompts": {
3844 + "version": "2.3.2",
3845 + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz",
3846 + "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==",
3847 + "dev": true,
3848 + "requires": {
3849 + "kleur": "^3.0.3",
3850 + "sisteransi": "^1.0.4"
3851 + }
3852 + },
3853 + "psl": {
3854 + "version": "1.8.0",
3855 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
3856 + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
3857 + "dev": true
3858 + },
3859 + "pump": {
3860 + "version": "3.0.0",
3861 + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
3862 + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
3863 + "dev": true,
3864 + "requires": {
3865 + "end-of-stream": "^1.1.0",
3866 + "once": "^1.3.1"
3867 + }
3868 + },
3869 + "punycode": {
3870 + "version": "2.1.1",
3871 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
3872 + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
3873 + "dev": true
3874 + },
3875 + "qs": {
3876 + "version": "6.5.2",
3877 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
3878 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
3879 + "dev": true
3880 + },
3881 + "react-is": {
3882 + "version": "16.13.1",
3883 + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
3884 + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
3885 + "dev": true
3886 + },
3887 + "read-pkg": {
3888 + "version": "5.2.0",
3889 + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
3890 + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
3891 + "dev": true,
3892 + "requires": {
3893 + "@types/normalize-package-data": "^2.4.0",
3894 + "normalize-package-data": "^2.5.0",
3895 + "parse-json": "^5.0.0",
3896 + "type-fest": "^0.6.0"
3897 + },
3898 + "dependencies": {
3899 + "type-fest": {
3900 + "version": "0.6.0",
3901 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
3902 + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
3903 + "dev": true
3904 + }
3905 + }
3906 + },
3907 + "read-pkg-up": {
3908 + "version": "7.0.1",
3909 + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
3910 + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
3911 + "dev": true,
3912 + "requires": {
3913 + "find-up": "^4.1.0",
3914 + "read-pkg": "^5.2.0",
3915 + "type-fest": "^0.8.1"
3916 + }
3917 + },
3918 + "regenerator-runtime": {
3919 + "version": "0.13.5",
3920 + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
3921 + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
3922 + "dev": true
3923 + },
3924 + "regex-not": {
3925 + "version": "1.0.2",
3926 + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
3927 + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
3928 + "dev": true,
3929 + "requires": {
3930 + "extend-shallow": "^3.0.2",
3931 + "safe-regex": "^1.1.0"
3932 + }
3933 + },
3934 + "remove-trailing-separator": {
3935 + "version": "1.1.0",
3936 + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
3937 + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
3938 + "dev": true
3939 + },
3940 + "repeat-element": {
3941 + "version": "1.1.3",
3942 + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
3943 + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
3944 + "dev": true
3945 + },
3946 + "repeat-string": {
3947 + "version": "1.6.1",
3948 + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
3949 + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
3950 + "dev": true
3951 + },
3952 + "request": {
3953 + "version": "2.88.2",
3954 + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
3955 + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
3956 + "dev": true,
3957 + "requires": {
3958 + "aws-sign2": "~0.7.0",
3959 + "aws4": "^1.8.0",
3960 + "caseless": "~0.12.0",
3961 + "combined-stream": "~1.0.6",
3962 + "extend": "~3.0.2",
3963 + "forever-agent": "~0.6.1",
3964 + "form-data": "~2.3.2",
3965 + "har-validator": "~5.1.3",
3966 + "http-signature": "~1.2.0",
3967 + "is-typedarray": "~1.0.0",
3968 + "isstream": "~0.1.2",
3969 + "json-stringify-safe": "~5.0.1",
3970 + "mime-types": "~2.1.19",
3971 + "oauth-sign": "~0.9.0",
3972 + "performance-now": "^2.1.0",
3973 + "qs": "~6.5.2",
3974 + "safe-buffer": "^5.1.2",
3975 + "tough-cookie": "~2.5.0",
3976 + "tunnel-agent": "^0.6.0",
3977 + "uuid": "^3.3.2"
3978 + },
3979 + "dependencies": {
3980 + "tough-cookie": {
3981 + "version": "2.5.0",
3982 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
3983 + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
3984 + "dev": true,
3985 + "requires": {
3986 + "psl": "^1.1.28",
3987 + "punycode": "^2.1.1"
3988 + }
3989 + }
3990 + }
3991 + },
3992 + "request-promise-core": {
3993 + "version": "1.1.4",
3994 + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz",
3995 + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
3996 + "dev": true,
3997 + "requires": {
3998 + "lodash": "^4.17.19"
3999 + }
4000 + },
4001 + "request-promise-native": {
4002 + "version": "1.0.9",
4003 + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz",
4004 + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==",
4005 + "dev": true,
4006 + "requires": {
4007 + "request-promise-core": "1.1.4",
4008 + "stealthy-require": "^1.1.1",
4009 + "tough-cookie": "^2.3.3"
4010 + },
4011 + "dependencies": {
4012 + "tough-cookie": {
4013 + "version": "2.5.0",
4014 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
4015 + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
4016 + "dev": true,
4017 + "requires": {
4018 + "psl": "^1.1.28",
4019 + "punycode": "^2.1.1"
4020 + }
4021 + }
4022 + }
4023 + },
4024 + "require-directory": {
4025 + "version": "2.1.1",
4026 + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
4027 + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
4028 + "dev": true
4029 + },
4030 + "require-main-filename": {
4031 + "version": "2.0.0",
4032 + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
4033 + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
4034 + "dev": true
4035 + },
4036 + "resolve": {
4037 + "version": "1.17.0",
4038 + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
4039 + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
4040 + "dev": true,
4041 + "requires": {
4042 + "path-parse": "^1.0.6"
4043 + }
4044 + },
4045 + "resolve-cwd": {
4046 + "version": "3.0.0",
4047 + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
4048 + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
4049 + "dev": true,
4050 + "requires": {
4051 + "resolve-from": "^5.0.0"
4052 + },
4053 + "dependencies": {
4054 + "resolve-from": {
4055 + "version": "5.0.0",
4056 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
4057 + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
4058 + "dev": true
4059 + }
4060 + }
4061 + },
4062 + "resolve-from": {
4063 + "version": "4.0.0",
4064 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
4065 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
4066 + "dev": true
4067 + },
4068 + "resolve-url": {
4069 + "version": "0.2.1",
4070 + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
4071 + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
4072 + "dev": true
4073 + },
4074 + "ret": {
4075 + "version": "0.1.15",
4076 + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
4077 + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
4078 + "dev": true
4079 + },
4080 + "rimraf": {
4081 + "version": "3.0.2",
4082 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
4083 + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
4084 + "dev": true,
4085 + "requires": {
4086 + "glob": "^7.1.3"
4087 + }
4088 + },
4089 + "rsvp": {
4090 + "version": "4.8.5",
4091 + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",
4092 + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==",
4093 + "dev": true
4094 + },
4095 + "safe-buffer": {
4096 + "version": "5.1.2",
4097 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
4098 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
4099 + "dev": true
4100 + },
4101 + "safe-regex": {
4102 + "version": "1.1.0",
4103 + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
4104 + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
4105 + "dev": true,
4106 + "requires": {
4107 + "ret": "~0.1.10"
4108 + }
4109 + },
4110 + "safer-buffer": {
4111 + "version": "2.1.2",
4112 + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
4113 + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
4114 + "dev": true
4115 + },
4116 + "sane": {
4117 + "version": "4.1.0",
4118 + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz",
4119 + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==",
4120 + "dev": true,
4121 + "requires": {
4122 + "@cnakazawa/watch": "^1.0.3",
4123 + "anymatch": "^2.0.0",
4124 + "capture-exit": "^2.0.0",
4125 + "exec-sh": "^0.3.2",
4126 + "execa": "^1.0.0",
4127 + "fb-watchman": "^2.0.0",
4128 + "micromatch": "^3.1.4",
4129 + "minimist": "^1.1.1",
4130 + "walker": "~1.0.5"
4131 + },
4132 + "dependencies": {
4133 + "anymatch": {
4134 + "version": "2.0.0",
4135 + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
4136 + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
4137 + "dev": true,
4138 + "requires": {
4139 + "micromatch": "^3.1.4",
4140 + "normalize-path": "^2.1.1"
4141 + }
4142 + },
4143 + "braces": {
4144 + "version": "2.3.2",
4145 + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
4146 + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
4147 + "dev": true,
4148 + "requires": {
4149 + "arr-flatten": "^1.1.0",
4150 + "array-unique": "^0.3.2",
4151 + "extend-shallow": "^2.0.1",
4152 + "fill-range": "^4.0.0",
4153 + "isobject": "^3.0.1",
4154 + "repeat-element": "^1.1.2",
4155 + "snapdragon": "^0.8.1",
4156 + "snapdragon-node": "^2.0.1",
4157 + "split-string": "^3.0.2",
4158 + "to-regex": "^3.0.1"
4159 + },
4160 + "dependencies": {
4161 + "extend-shallow": {
4162 + "version": "2.0.1",
4163 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4164 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4165 + "dev": true,
4166 + "requires": {
4167 + "is-extendable": "^0.1.0"
4168 + }
4169 + }
4170 + }
4171 + },
4172 + "fill-range": {
4173 + "version": "4.0.0",
4174 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
4175 + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
4176 + "dev": true,
4177 + "requires": {
4178 + "extend-shallow": "^2.0.1",
4179 + "is-number": "^3.0.0",
4180 + "repeat-string": "^1.6.1",
4181 + "to-regex-range": "^2.1.0"
4182 + },
4183 + "dependencies": {
4184 + "extend-shallow": {
4185 + "version": "2.0.1",
4186 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4187 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4188 + "dev": true,
4189 + "requires": {
4190 + "is-extendable": "^0.1.0"
4191 + }
4192 + }
4193 + }
4194 + },
4195 + "is-number": {
4196 + "version": "3.0.0",
4197 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
4198 + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
4199 + "dev": true,
4200 + "requires": {
4201 + "kind-of": "^3.0.2"
4202 + },
4203 + "dependencies": {
4204 + "kind-of": {
4205 + "version": "3.2.2",
4206 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4207 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4208 + "dev": true,
4209 + "requires": {
4210 + "is-buffer": "^1.1.5"
4211 + }
4212 + }
4213 + }
4214 + },
4215 + "micromatch": {
4216 + "version": "3.1.10",
4217 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
4218 + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
4219 + "dev": true,
4220 + "requires": {
4221 + "arr-diff": "^4.0.0",
4222 + "array-unique": "^0.3.2",
4223 + "braces": "^2.3.1",
4224 + "define-property": "^2.0.2",
4225 + "extend-shallow": "^3.0.2",
4226 + "extglob": "^2.0.4",
4227 + "fragment-cache": "^0.2.1",
4228 + "kind-of": "^6.0.2",
4229 + "nanomatch": "^1.2.9",
4230 + "object.pick": "^1.3.0",
4231 + "regex-not": "^1.0.0",
4232 + "snapdragon": "^0.8.1",
4233 + "to-regex": "^3.0.2"
4234 + }
4235 + },
4236 + "normalize-path": {
4237 + "version": "2.1.1",
4238 + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
4239 + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
4240 + "dev": true,
4241 + "requires": {
4242 + "remove-trailing-separator": "^1.0.1"
4243 + }
4244 + },
4245 + "to-regex-range": {
4246 + "version": "2.1.1",
4247 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
4248 + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
4249 + "dev": true,
4250 + "requires": {
4251 + "is-number": "^3.0.0",
4252 + "repeat-string": "^1.6.1"
4253 + }
4254 + }
4255 + }
4256 + },
4257 + "saxes": {
4258 + "version": "5.0.1",
4259 + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
4260 + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
4261 + "dev": true,
4262 + "requires": {
4263 + "xmlchars": "^2.2.0"
4264 + }
4265 + },
4266 + "semver": {
4267 + "version": "7.3.2",
4268 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
4269 + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ=="
4270 + },
4271 + "semver-compare": {
4272 + "version": "1.0.0",
4273 + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
4274 + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
4275 + "dev": true
4276 + },
4277 + "semver-regex": {
4278 + "version": "2.0.0",
4279 + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
4280 + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
4281 + "dev": true
4282 + },
4283 + "set-blocking": {
4284 + "version": "2.0.0",
4285 + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
4286 + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
4287 + "dev": true
4288 + },
4289 + "set-value": {
4290 + "version": "2.0.1",
4291 + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
4292 + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
4293 + "dev": true,
4294 + "requires": {
4295 + "extend-shallow": "^2.0.1",
4296 + "is-extendable": "^0.1.1",
4297 + "is-plain-object": "^2.0.3",
4298 + "split-string": "^3.0.1"
4299 + },
4300 + "dependencies": {
4301 + "extend-shallow": {
4302 + "version": "2.0.1",
4303 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4304 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4305 + "dev": true,
4306 + "requires": {
4307 + "is-extendable": "^0.1.0"
4308 + }
4309 + }
4310 + }
4311 + },
4312 + "shebang-command": {
4313 + "version": "1.2.0",
4314 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
4315 + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
4316 + "dev": true,
4317 + "requires": {
4318 + "shebang-regex": "^1.0.0"
4319 + }
4320 + },
4321 + "shebang-regex": {
4322 + "version": "1.0.0",
4323 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
4324 + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
4325 + "dev": true
4326 + },
4327 + "shellwords": {
4328 + "version": "0.1.1",
4329 + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
4330 + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
4331 + "dev": true,
4332 + "optional": true
4333 + },
4334 + "signal-exit": {
4335 + "version": "3.0.3",
4336 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
4337 + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
4338 + "dev": true
4339 + },
4340 + "sisteransi": {
4341 + "version": "1.0.5",
4342 + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
4343 + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
4344 + "dev": true
4345 + },
4346 + "slash": {
4347 + "version": "3.0.0",
4348 + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
4349 + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
4350 + "dev": true
4351 + },
4352 + "snapdragon": {
4353 + "version": "0.8.2",
4354 + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
4355 + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
4356 + "dev": true,
4357 + "requires": {
4358 + "base": "^0.11.1",
4359 + "debug": "^2.2.0",
4360 + "define-property": "^0.2.5",
4361 + "extend-shallow": "^2.0.1",
4362 + "map-cache": "^0.2.2",
4363 + "source-map": "^0.5.6",
4364 + "source-map-resolve": "^0.5.0",
4365 + "use": "^3.1.0"
4366 + },
4367 + "dependencies": {
4368 + "debug": {
4369 + "version": "2.6.9",
4370 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
4371 + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
4372 + "dev": true,
4373 + "requires": {
4374 + "ms": "2.0.0"
4375 + }
4376 + },
4377 + "define-property": {
4378 + "version": "0.2.5",
4379 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4380 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4381 + "dev": true,
4382 + "requires": {
4383 + "is-descriptor": "^0.1.0"
4384 + }
4385 + },
4386 + "extend-shallow": {
4387 + "version": "2.0.1",
4388 + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
4389 + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
4390 + "dev": true,
4391 + "requires": {
4392 + "is-extendable": "^0.1.0"
4393 + }
4394 + },
4395 + "ms": {
4396 + "version": "2.0.0",
4397 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
4398 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
4399 + "dev": true
4400 + },
4401 + "source-map": {
4402 + "version": "0.5.7",
4403 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
4404 + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
4405 + "dev": true
4406 + }
4407 + }
4408 + },
4409 + "snapdragon-node": {
4410 + "version": "2.1.1",
4411 + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
4412 + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
4413 + "dev": true,
4414 + "requires": {
4415 + "define-property": "^1.0.0",
4416 + "isobject": "^3.0.0",
4417 + "snapdragon-util": "^3.0.1"
4418 + },
4419 + "dependencies": {
4420 + "define-property": {
4421 + "version": "1.0.0",
4422 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
4423 + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
4424 + "dev": true,
4425 + "requires": {
4426 + "is-descriptor": "^1.0.0"
4427 + }
4428 + },
4429 + "is-accessor-descriptor": {
4430 + "version": "1.0.0",
4431 + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
4432 + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
4433 + "dev": true,
4434 + "requires": {
4435 + "kind-of": "^6.0.0"
4436 + }
4437 + },
4438 + "is-data-descriptor": {
4439 + "version": "1.0.0",
4440 + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
4441 + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
4442 + "dev": true,
4443 + "requires": {
4444 + "kind-of": "^6.0.0"
4445 + }
4446 + },
4447 + "is-descriptor": {
4448 + "version": "1.0.2",
4449 + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
4450 + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
4451 + "dev": true,
4452 + "requires": {
4453 + "is-accessor-descriptor": "^1.0.0",
4454 + "is-data-descriptor": "^1.0.0",
4455 + "kind-of": "^6.0.2"
4456 + }
4457 + }
4458 + }
4459 + },
4460 + "snapdragon-util": {
4461 + "version": "3.0.1",
4462 + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
4463 + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
4464 + "dev": true,
4465 + "requires": {
4466 + "kind-of": "^3.2.0"
4467 + },
4468 + "dependencies": {
4469 + "kind-of": {
4470 + "version": "3.2.2",
4471 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4472 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4473 + "dev": true,
4474 + "requires": {
4475 + "is-buffer": "^1.1.5"
4476 + }
4477 + }
4478 + }
4479 + },
4480 + "source-map": {
4481 + "version": "0.6.1",
4482 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
4483 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
4484 + "dev": true
4485 + },
4486 + "source-map-resolve": {
4487 + "version": "0.5.3",
4488 + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
4489 + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
4490 + "dev": true,
4491 + "requires": {
4492 + "atob": "^2.1.2",
4493 + "decode-uri-component": "^0.2.0",
4494 + "resolve-url": "^0.2.1",
4495 + "source-map-url": "^0.4.0",
4496 + "urix": "^0.1.0"
4497 + }
4498 + },
4499 + "source-map-support": {
4500 + "version": "0.5.19",
4501 + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
4502 + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
4503 + "dev": true,
4504 + "requires": {
4505 + "buffer-from": "^1.0.0",
4506 + "source-map": "^0.6.0"
4507 + }
4508 + },
4509 + "source-map-url": {
4510 + "version": "0.4.0",
4511 + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
4512 + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
4513 + "dev": true
4514 + },
4515 + "spdx-correct": {
4516 + "version": "3.1.1",
4517 + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
4518 + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
4519 + "dev": true,
4520 + "requires": {
4521 + "spdx-expression-parse": "^3.0.0",
4522 + "spdx-license-ids": "^3.0.0"
4523 + }
4524 + },
4525 + "spdx-exceptions": {
341 4526 "version": "2.3.0",
342 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
343 "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
4527 + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
4528 + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
4529 + "dev": true
4530 + },
4531 + "spdx-expression-parse": {
4532 + "version": "3.0.1",
4533 + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
4534 + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
344 4535 "dev": true,
345 4536 "requires": {
346 "p-try": "^2.0.0"
4537 + "spdx-exceptions": "^2.1.0",
4538 + "spdx-license-ids": "^3.0.0"
4539 + }
4540 + },
4541 + "spdx-license-ids": {
4542 + "version": "3.0.5",
4543 + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
4544 + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
4545 + "dev": true
4546 + },
4547 + "split-string": {
4548 + "version": "3.1.0",
4549 + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
4550 + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
4551 + "dev": true,
4552 + "requires": {
4553 + "extend-shallow": "^3.0.0"
4554 + }
4555 + },
4556 + "sprintf-js": {
4557 + "version": "1.0.3",
4558 + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
4559 + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
4560 + "dev": true
4561 + },
4562 + "sshpk": {
4563 + "version": "1.16.1",
4564 + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
4565 + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
4566 + "dev": true,
4567 + "requires": {
4568 + "asn1": "~0.2.3",
4569 + "assert-plus": "^1.0.0",
4570 + "bcrypt-pbkdf": "^1.0.0",
4571 + "dashdash": "^1.12.0",
4572 + "ecc-jsbn": "~0.1.1",
4573 + "getpass": "^0.1.1",
4574 + "jsbn": "~0.1.0",
4575 + "safer-buffer": "^2.0.2",
4576 + "tweetnacl": "~0.14.0"
4577 + }
4578 + },
4579 + "stack-utils": {
4580 + "version": "2.0.2",
4581 + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz",
4582 + "integrity": "sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==",
4583 + "dev": true,
4584 + "requires": {
4585 + "escape-string-regexp": "^2.0.0"
4586 + },
4587 + "dependencies": {
4588 + "escape-string-regexp": {
4589 + "version": "2.0.0",
4590 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
4591 + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
4592 + "dev": true
4593 + }
347 4594 }
348 4595 },
349 "p-locate": {
350 "version": "4.1.0",
351 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
352 "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
4596 + "static-extend": {
4597 + "version": "0.1.2",
4598 + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
4599 + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
353 4600 "dev": true,
354 4601 "requires": {
355 "p-limit": "^2.2.0"
4602 + "define-property": "^0.2.5",
4603 + "object-copy": "^0.1.0"
4604 + },
4605 + "dependencies": {
4606 + "define-property": {
4607 + "version": "0.2.5",
4608 + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
4609 + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
4610 + "dev": true,
4611 + "requires": {
4612 + "is-descriptor": "^0.1.0"
4613 + }
4614 + }
356 4615 }
357 4616 },
358 "p-try": {
359 "version": "2.2.0",
360 "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
361 "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
4617 + "stealthy-require": {
4618 + "version": "1.1.1",
4619 + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
4620 + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=",
362 4621 "dev": true
363 4622 },
364 "parent-module": {
365 "version": "1.0.1",
366 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
367 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
4623 + "string-length": {
4624 + "version": "4.0.1",
4625 + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz",
4626 + "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==",
368 4627 "dev": true,
369 4628 "requires": {
370 "callsites": "^3.0.0"
4629 + "char-regex": "^1.0.2",
4630 + "strip-ansi": "^6.0.0"
371 4631 }
372 4632 },
373 "parse-json": {
374 "version": "5.0.0",
375 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
376 "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
4633 + "string-width": {
4634 + "version": "4.2.0",
4635 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
4636 + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
377 4637 "dev": true,
378 4638 "requires": {
379 "@babel/code-frame": "^7.0.0",
380 "error-ex": "^1.3.1",
381 "json-parse-better-errors": "^1.0.1",
382 "lines-and-columns": "^1.1.6"
4639 + "emoji-regex": "^8.0.0",
4640 + "is-fullwidth-code-point": "^3.0.0",
4641 + "strip-ansi": "^6.0.0"
383 4642 }
384 4643 },
385 "path-exists": {
4644 + "strip-ansi": {
4645 + "version": "6.0.0",
4646 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
4647 + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
4648 + "dev": true,
4649 + "requires": {
4650 + "ansi-regex": "^5.0.0"
4651 + }
4652 + },
4653 + "strip-bom": {
386 4654 "version": "4.0.0",
387 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
388 "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
4655 + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
4656 + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
389 4657 "dev": true
390 4658 },
391 "path-type": {
392 "version": "4.0.0",
393 "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
394 "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
4659 + "strip-eof": {
4660 + "version": "1.0.0",
4661 + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
4662 + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
395 4663 "dev": true
396 4664 },
397 "pkg-dir": {
398 "version": "4.2.0",
399 "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
400 "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
4665 + "strip-final-newline": {
4666 + "version": "2.0.0",
4667 + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
4668 + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
4669 + "dev": true
4670 + },
4671 + "supports-color": {
4672 + "version": "7.1.0",
4673 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
4674 + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
401 4675 "dev": true,
402 4676 "requires": {
403 "find-up": "^4.0.0"
4677 + "has-flag": "^4.0.0"
404 4678 }
405 4679 },
406 "please-upgrade-node": {
407 "version": "3.2.0",
408 "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
409 "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
4680 + "supports-hyperlinks": {
4681 + "version": "2.1.0",
4682 + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz",
4683 + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==",
410 4684 "dev": true,
411 4685 "requires": {
412 "semver-compare": "^1.0.0"
4686 + "has-flag": "^4.0.0",
4687 + "supports-color": "^7.0.0"
413 4688 }
414 4689 },
415 "prettier": {
416 "version": "2.0.5",
417 "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz",
418 "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==",
4690 + "symbol-tree": {
4691 + "version": "3.2.4",
4692 + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
4693 + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
419 4694 "dev": true
420 4695 },
421 "regenerator-runtime": {
422 "version": "0.13.5",
423 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
424 "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
425 "dev": true
4696 + "terminal-link": {
4697 + "version": "2.1.1",
4698 + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
4699 + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
4700 + "dev": true,
4701 + "requires": {
4702 + "ansi-escapes": "^4.2.1",
4703 + "supports-hyperlinks": "^2.0.0"
4704 + }
426 4705 },
427 "resolve-from": {
428 "version": "4.0.0",
429 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
430 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
431 "dev": true
4706 + "test-exclude": {
4707 + "version": "6.0.0",
4708 + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
4709 + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
4710 + "dev": true,
4711 + "requires": {
4712 + "@istanbuljs/schema": "^0.1.2",
4713 + "glob": "^7.1.4",
4714 + "minimatch": "^3.0.4"
4715 + }
432 4716 },
433 "semver": {
434 "version": "6.3.0",
435 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
436 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
4717 + "throat": {
4718 + "version": "5.0.0",
4719 + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz",
4720 + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==",
4721 + "dev": true
437 4722 },
438 "semver-compare": {
439 "version": "1.0.0",
440 "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
441 "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
4723 + "tmpl": {
4724 + "version": "1.0.4",
4725 + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
4726 + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=",
442 4727 "dev": true
443 4728 },
444 "semver-regex": {
4729 + "to-fast-properties": {
445 4730 "version": "2.0.0",
446 "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz",
447 "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==",
4731 + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
4732 + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
448 4733 "dev": true
449 4734 },
450 "slash": {
451 "version": "3.0.0",
452 "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
453 "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
454 "dev": true
4735 + "to-object-path": {
4736 + "version": "0.3.0",
4737 + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
4738 + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
4739 + "dev": true,
4740 + "requires": {
4741 + "kind-of": "^3.0.2"
4742 + },
4743 + "dependencies": {
4744 + "kind-of": {
4745 + "version": "3.2.2",
4746 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4747 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4748 + "dev": true,
4749 + "requires": {
4750 + "is-buffer": "^1.1.5"
4751 + }
4752 + }
4753 + }
455 4754 },
456 "supports-color": {
457 "version": "7.1.0",
458 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
459 "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
4755 + "to-regex": {
4756 + "version": "3.0.2",
4757 + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
4758 + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
460 4759 "dev": true,
461 4760 "requires": {
462 "has-flag": "^4.0.0"
4761 + "define-property": "^2.0.2",
4762 + "extend-shallow": "^3.0.2",
4763 + "regex-not": "^1.0.2",
4764 + "safe-regex": "^1.1.0"
4765 + }
4766 + },
4767 + "to-regex-range": {
4768 + "version": "5.0.1",
4769 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
4770 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
4771 + "dev": true,
4772 + "requires": {
4773 + "is-number": "^7.0.0"
4774 + }
4775 + },
4776 + "tough-cookie": {
4777 + "version": "3.0.1",
4778 + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
4779 + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
4780 + "dev": true,
4781 + "requires": {
4782 + "ip-regex": "^2.1.0",
4783 + "psl": "^1.1.28",
4784 + "punycode": "^2.1.1"
4785 + }
4786 + },
4787 + "tr46": {
4788 + "version": "2.0.2",
4789 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz",
4790 + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==",
4791 + "dev": true,
4792 + "requires": {
4793 + "punycode": "^2.1.1"
463 4794 }
464 4795 },
465 4796 "tunnel": {
@@ -467,6 +4798,42 @@
467 4798 "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.4.tgz",
468 4799 "integrity": "sha1-LTeFoVjBdMmhbcLARuxfxfF0IhM="
469 4800 },
4801 + "tunnel-agent": {
4802 + "version": "0.6.0",
4803 + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
4804 + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
4805 + "dev": true,
4806 + "requires": {
4807 + "safe-buffer": "^5.0.1"
4808 + }
4809 + },
4810 + "tweetnacl": {
4811 + "version": "0.14.5",
4812 + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
4813 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
4814 + "dev": true
4815 + },
4816 + "type-check": {
4817 + "version": "0.3.2",
4818 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
4819 + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
4820 + "dev": true,
4821 + "requires": {
4822 + "prelude-ls": "~1.1.2"
4823 + }
4824 + },
4825 + "type-detect": {
4826 + "version": "4.0.8",
4827 + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
4828 + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
4829 + "dev": true
4830 + },
4831 + "type-fest": {
4832 + "version": "0.8.1",
4833 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
4834 + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
4835 + "dev": true
4836 + },
470 4837 "typed-rest-client": {
471 4838 "version": "1.5.0",
472 4839 "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.5.0.tgz",
@@ -476,22 +4843,277 @@
476 4843 "underscore": "1.8.3"
477 4844 }
478 4845 },
4846 + "typedarray-to-buffer": {
4847 + "version": "3.1.5",
4848 + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
4849 + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
4850 + "dev": true,
4851 + "requires": {
4852 + "is-typedarray": "^1.0.0"
4853 + }
4854 + },
479 4855 "underscore": {
480 4856 "version": "1.8.3",
481 4857 "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
482 4858 "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
483 4859 },
4860 + "union-value": {
4861 + "version": "1.0.1",
4862 + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
4863 + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
4864 + "dev": true,
4865 + "requires": {
4866 + "arr-union": "^3.1.0",
4867 + "get-value": "^2.0.6",
4868 + "is-extendable": "^0.1.1",
4869 + "set-value": "^2.0.1"
4870 + }
4871 + },
4872 + "unset-value": {
4873 + "version": "1.0.0",
4874 + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
4875 + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
4876 + "dev": true,
4877 + "requires": {
4878 + "has-value": "^0.3.1",
4879 + "isobject": "^3.0.0"
4880 + },
4881 + "dependencies": {
4882 + "has-value": {
4883 + "version": "0.3.1",
4884 + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
4885 + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
4886 + "dev": true,
4887 + "requires": {
4888 + "get-value": "^2.0.3",
4889 + "has-values": "^0.1.4",
4890 + "isobject": "^2.0.0"
4891 + },
4892 + "dependencies": {
4893 + "isobject": {
4894 + "version": "2.1.0",
4895 + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
4896 + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
4897 + "dev": true,
4898 + "requires": {
4899 + "isarray": "1.0.0"
4900 + }
4901 + }
4902 + }
4903 + },
4904 + "has-values": {
4905 + "version": "0.1.4",
4906 + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
4907 + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
4908 + "dev": true
4909 + }
4910 + }
4911 + },
4912 + "uri-js": {
4913 + "version": "4.4.0",
4914 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
4915 + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
4916 + "dev": true,
4917 + "requires": {
4918 + "punycode": "^2.1.0"
4919 + }
4920 + },
4921 + "urix": {
4922 + "version": "0.1.0",
4923 + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
4924 + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
4925 + "dev": true
4926 + },
4927 + "use": {
4928 + "version": "3.1.1",
4929 + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
4930 + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
4931 + "dev": true
4932 + },
484 4933 "uuid": {
485 4934 "version": "3.3.3",
486 4935 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
487 4936 "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
488 4937 },
4938 + "v8-to-istanbul": {
4939 + "version": "5.0.1",
4940 + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz",
4941 + "integrity": "sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q==",
4942 + "dev": true,
4943 + "requires": {
4944 + "@types/istanbul-lib-coverage": "^2.0.1",
4945 + "convert-source-map": "^1.6.0",
4946 + "source-map": "^0.7.3"
4947 + },
4948 + "dependencies": {
4949 + "source-map": {
4950 + "version": "0.7.3",
4951 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
4952 + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
4953 + "dev": true
4954 + }
4955 + }
4956 + },
4957 + "validate-npm-package-license": {
4958 + "version": "3.0.4",
4959 + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
4960 + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
4961 + "dev": true,
4962 + "requires": {
4963 + "spdx-correct": "^3.0.0",
4964 + "spdx-expression-parse": "^3.0.0"
4965 + }
4966 + },
4967 + "verror": {
4968 + "version": "1.10.0",
4969 + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
4970 + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
4971 + "dev": true,
4972 + "requires": {
4973 + "assert-plus": "^1.0.0",
4974 + "core-util-is": "1.0.2",
4975 + "extsprintf": "^1.2.0"
4976 + }
4977 + },
4978 + "w3c-hr-time": {
4979 + "version": "1.0.2",
4980 + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
4981 + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
4982 + "dev": true,
4983 + "requires": {
4984 + "browser-process-hrtime": "^1.0.0"
4985 + }
4986 + },
4987 + "w3c-xmlserializer": {
4988 + "version": "2.0.0",
4989 + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
4990 + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
4991 + "dev": true,
4992 + "requires": {
4993 + "xml-name-validator": "^3.0.0"
4994 + }
4995 + },
4996 + "walker": {
4997 + "version": "1.0.7",
4998 + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
4999 + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=",
5000 + "dev": true,
5001 + "requires": {
5002 + "makeerror": "1.0.x"
5003 + }
5004 + },
5005 + "webidl-conversions": {
5006 + "version": "6.1.0",
5007 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
5008 + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
5009 + "dev": true
5010 + },
5011 + "whatwg-encoding": {
5012 + "version": "1.0.5",
5013 + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
5014 + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
5015 + "dev": true,
5016 + "requires": {
5017 + "iconv-lite": "0.4.24"
5018 + }
5019 + },
5020 + "whatwg-mimetype": {
5021 + "version": "2.3.0",
5022 + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
5023 + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
5024 + "dev": true
5025 + },
5026 + "whatwg-url": {
5027 + "version": "8.2.2",
5028 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.2.tgz",
5029 + "integrity": "sha512-PcVnO6NiewhkmzV0qn7A+UZ9Xx4maNTI+O+TShmfE4pqjoCMwUMjkvoNhNHPTvgR7QH9Xt3R13iHuWy2sToFxQ==",
5030 + "dev": true,
5031 + "requires": {
5032 + "lodash.sortby": "^4.7.0",
5033 + "tr46": "^2.0.2",
5034 + "webidl-conversions": "^6.1.0"
5035 + }
5036 + },
5037 + "which": {
5038 + "version": "1.3.1",
5039 + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
5040 + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
5041 + "dev": true,
5042 + "requires": {
5043 + "isexe": "^2.0.0"
5044 + }
5045 + },
5046 + "which-module": {
5047 + "version": "2.0.0",
5048 + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
5049 + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
5050 + "dev": true
5051 + },
489 5052 "which-pm-runs": {
490 5053 "version": "1.0.0",
491 5054 "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
492 5055 "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=",
493 5056 "dev": true
494 5057 },
5058 + "word-wrap": {
5059 + "version": "1.2.3",
5060 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
5061 + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
5062 + "dev": true
5063 + },
5064 + "wrap-ansi": {
5065 + "version": "6.2.0",
5066 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
5067 + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
5068 + "dev": true,
5069 + "requires": {
5070 + "ansi-styles": "^4.0.0",
5071 + "string-width": "^4.1.0",
5072 + "strip-ansi": "^6.0.0"
5073 + }
5074 + },
5075 + "wrappy": {
5076 + "version": "1.0.2",
5077 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
5078 + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
5079 + "dev": true
5080 + },
5081 + "write-file-atomic": {
5082 + "version": "3.0.3",
5083 + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
5084 + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
5085 + "dev": true,
5086 + "requires": {
5087 + "imurmurhash": "^0.1.4",
5088 + "is-typedarray": "^1.0.0",
5089 + "signal-exit": "^3.0.2",
5090 + "typedarray-to-buffer": "^3.1.5"
5091 + }
5092 + },
5093 + "ws": {
5094 + "version": "7.3.1",
5095 + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
5096 + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
5097 + "dev": true
5098 + },
5099 + "xml-name-validator": {
5100 + "version": "3.0.0",
5101 + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
5102 + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
5103 + "dev": true
5104 + },
5105 + "xmlchars": {
5106 + "version": "2.2.0",
5107 + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
5108 + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
5109 + "dev": true
5110 + },
5111 + "y18n": {
5112 + "version": "4.0.0",
5113 + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
5114 + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
5115 + "dev": true
5116 + },
495 5117 "yaml": {
496 5118 "version": "1.9.2",
497 5119 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz",
@@ -500,6 +5122,35 @@
500 5122 "requires": {
501 5123 "@babel/runtime": "^7.9.2"
502 5124 }
5125 + },
5126 + "yargs": {
5127 + "version": "15.4.1",
5128 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
5129 + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
5130 + "dev": true,
5131 + "requires": {
5132 + "cliui": "^6.0.0",
5133 + "decamelize": "^1.2.0",
5134 + "find-up": "^4.1.0",
5135 + "get-caller-file": "^2.0.1",
5136 + "require-directory": "^2.1.1",
5137 + "require-main-filename": "^2.0.0",
5138 + "set-blocking": "^2.0.0",
5139 + "string-width": "^4.2.0",
5140 + "which-module": "^2.0.0",
5141 + "y18n": "^4.0.0",
5142 + "yargs-parser": "^18.1.2"
5143 + }
5144 + },
5145 + "yargs-parser": {
5146 + "version": "18.1.3",
5147 + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
5148 + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
5149 + "dev": true,
5150 + "requires": {
5151 + "camelcase": "^5.0.0",
5152 + "decamelize": "^1.2.0"
5153 + }
503 5154 }
504 5155 }
505 5156 }
modified package.json
+4 −2
@@ -5,7 +5,8 @@
5 5 "private": true,
6 6 "scripts": {
7 7 "build": "ncc build src/setup-elixir.js",
8 "format": "prettier \"src/**/*.js\""
8 + "format": "prettier \"src/**/*.js\"",
9 + "test": "jest"
9 10 },
10 11 "husky": {
11 12 "hooks": {
@@ -16,11 +17,12 @@
16 17 "@actions/core": "^1.0.0",
17 18 "@actions/exec": "^1.0.0",
18 19 "@actions/tool-cache": "^1.1.0",
19 "semver": "^6.3.0"
20 + "semver": "^7.3.2"
20 21 },
21 22 "devDependencies": {
22 23 "@zeit/ncc": "^0.22.1",
23 24 "husky": "^4.2.5",
25 + "jest": "^26.4.2",
24 26 "prettier": "^2.0.5"
25 27 }
26 28 }
modified src/setup-elixir.js
+14 −2
@@ -4,6 +4,10 @@ const {installElixir, installOTP} = require('./installer')
4 4 const path = require('path')
5 5 const semver = require('semver')
6 6 const https = require('https')
7 +const {
8 + fstat,
9 + promises: {readFile},
10 +} = require('fs')
7 11
8 12 main().catch(err => {
9 13 core.setFailed(err.message)
@@ -55,9 +59,11 @@ async function getOtpVersion(spec) {
55 59 return getVersionFromSpec(spec, await getOtpVersions()) || spec
56 60 }
57 61
62 +exports.getElixirVersion = getElixirVersion
63 +
58 64 async function getElixirVersion(spec, otpVersion) {
59 65 const versions = await getElixirVersions()
60 const semverRegex = /^v(\d+\.\d+\.\d+)/
66 + const semverRegex = /^v(\d+\.\d+\.\d+(?:-.+)?)/
61 67
62 68 const semverVersions = Array.from(versions.keys())
63 69 .filter(str => str.match(semverRegex))
@@ -106,7 +112,7 @@ async function getElixirVersions() {
106 112 .split('\n')
107 113 .forEach(line => {
108 114 const match =
109 line.match(/^(v\d+\.\d+\.\d+)-otp-(\d+)/) ||
115 + line.match(/^(v\d+\.\d+\.\d+(?:-.+)?)-otp-(\d+)/) ||
110 116 line.match(/^([^-]+)-otp-(\d+)/)
111 117
112 118 if (match) {
@@ -121,6 +127,12 @@ async function getElixirVersions() {
121 127 }
122 128
123 129 function get(url) {
130 + if (process.env.NODE_ENV === 'test') {
131 + return readFile(
132 + path.join(__dirname, '..', '__tests__', 'builds.txt')
133 + ).then(buf => buf.toString())
134 + }
135 +
124 136 return new Promise((resolve, reject) => {
125 137 const req = https.get(url)
126 138

Parents: 230dd25