git.iko.soy/rowtype-yoga/psfp
on master help sign in
playground/packages.dhall+2−1
since splitsnapshots
unifiedsplit
@@ -117,6 +117,7 @@ let additions =
117-------------------------------
117-------------------------------
118-}
118-}
119let upstream =
119let upstream =
120− https://github.com/purescript/package-sets/releases/download/psc-0.14.0-20210317/packages.dhall sha256:e2e744972f9b60188dcf07f41418661b505c9ee2e9f91e57e67daefad3a5ae09
120+ https://github.com/purescript/package-sets/releases/download/psc-0.15.8-20230617/packages.dhall
121+ sha256:292a92e32db0272db2089f3234140287c9eaf2fc15b6790a3c51f41471050eeb
121
122
122in upstream
123in upstream
playground/run.jsdeleted−9
@@ -1,9 +0,0 @@
1−const main = require ("./output/Main")
2−if(main.main == undefined) {
3− console.error("You are missing a 'main' function")
4−} else if (main.main instanceof Function) {
5− main.main()
6−}
7−else {
8− console.error("Make sure that you're main function is of type `Effect Unit`")
9−}
playground/run.mjsnew file+9
@@ -0,0 +1,9 @@
1+import { main } from "./output/Main/index.js"
2+if(main === undefined) {
3+ console.error("You are missing a 'main' function")
4+} else if (main instanceof Function) {
5+ main()
6+}
7+else {
8+ console.error("Make sure that your main function is of type `Effect Unit`")
9+}
playground/spago.dhall+18
@@ -7,18 +7,36 @@ You can edit this file as you like.
7 [ "aff"
7 [ "aff"
8 , "argonaut"
8 , "argonaut"
9 , "argonaut-codecs"
9 , "argonaut-codecs"
10+ , "arrays"
10 , "avar"
11 , "avar"
12+ , "bifunctors"
11 , "console"
13 , "console"
14+ , "control"
12 , "debug"
15 , "debug"
16+ , "distributive"
13 , "effect"
17 , "effect"
18+ , "either"
19+ , "enums"
14 , "foldable-traversable"
20 , "foldable-traversable"
21+ , "functions"
22+ , "identity"
23+ , "integers"
24+ , "invariant"
25+ , "lists"
15 , "maybe"
26 , "maybe"
16 , "newtype"
27 , "newtype"
28+ , "nonempty"
17 , "nullable"
29 , "nullable"
18 , "ordered-collections"
30 , "ordered-collections"
31+ , "orders"
32+ , "prelude"
19 , "psci-support"
33 , "psci-support"
34+ , "strings"
20 , "stringutils"
35 , "stringutils"
36+ , "tailrec"
37+ , "transformers"
21 , "tuples"
38 , "tuples"
39+ , "unsafe-coerce"
22 , "validation"
40 , "validation"
23 ]
41 ]
24, packages = ./packages.dhall
42, packages = ./packages.dhall
playground/src/Basics.purs+1−3
@@ -78,7 +78,6 @@ module Basics
78 , module Data.Tuple.Nested
78 , module Data.Tuple.Nested
79 , module Data.Traversable
79 , module Data.Traversable
80 , module Debug
80 , module Debug
81− , module Math
82 , module Prelude
81 , module Prelude
83 , module Type.Proxy
82 , module Type.Proxy
84 , module Unsafe.Coerce
83 , module Unsafe.Coerce
@@ -165,7 +164,6 @@ import Debug (spy, spyWith, trace, traceM)
165import Effect (Effect, untilE, whileE, forE, foreachE)
164import Effect (Effect, untilE, whileE, forE, foreachE)
166import Effect.Aff (Aff, Canceler(Canceler), apathize, attempt, cancelWith, finally, forkAff, delay, launchAff, makeAff, nonCanceler, runAff)
165import Effect.Aff (Aff, Canceler(Canceler), apathize, attempt, cancelWith, finally, forkAff, delay, launchAff, makeAff, nonCanceler, runAff)
167import Effect.Class (liftEffect)
166import Effect.Class (liftEffect)
168−import Math (Radians, acos, asin, atan, atan2, cos, e, exp, ln10, ln2, log10e, log2e, pi, pow, sin, sqrt, sqrt1_2, sqrt2, tan, (%))
169import Prelude (class Applicative, class Apply, class Bind, class BooleanAlgebra, class Bounded, class Category, class CommutativeRing, class Eq, class EuclideanRing, class Field, class Functor, class HeytingAlgebra, class Monad, class Ord, class Ring, class Semigroup, class Semigroupoid, class Semiring, class Show, Ordering(LT, EQ, GT), Unit, Void, absurd, add, ap, append, apply, between, bind, bottom, clamp, compare, comparing, compose, conj, const, degree, disj, div, eq, flip, liftA1, liftM1, map, max, min, mod, mul, negate, not, notEq, one, otherwise, pure, show, sub, top, unit, unless, void, zero, type (~>), (-), (*), (*>), (/), (/=), (&&), (#), (+), (<), (<*), (<*>), (<#>), (<<<), (<=), (<=<), (<>), (<$), (<$>), (=<<), (==), (>), (>=), (>=>), (>>=), (>>>), (||), ($), ($>))
167import Prelude (class Applicative, class Apply, class Bind, class BooleanAlgebra, class Bounded, class Category, class CommutativeRing, class Eq, class EuclideanRing, class Field, class Functor, class HeytingAlgebra, class Monad, class Ord, class Ring, class Semigroup, class Semigroupoid, class Semiring, class Show, Ordering(LT, EQ, GT), Unit, Void, absurd, add, ap, append, apply, between, bind, bottom, clamp, compare, comparing, compose, conj, const, degree, disj, div, eq, flip, liftA1, liftM1, map, max, min, mod, mul, negate, not, notEq, one, otherwise, pure, show, sub, top, unit, unless, void, zero, type (~>), (-), (*), (*>), (/), (/=), (&&), (#), (+), (<), (<*), (<*>), (<#>), (<<<), (<=), (<=<), (<>), (<$), (<$>), (=<<), (==), (>), (>=), (>=>), (>>=), (>>>), (||), ($), ($>))
170−import Type.Proxy (Proxy(Proxy), Proxy2(Proxy2), Proxy3(Proxy3))
168+import Type.Proxy (Proxy(Proxy))
171import Unsafe.Coerce (unsafeCoerce)
169import Unsafe.Coerce (unsafeCoerce)
server/.idea/.gitignorenew file+8
@@ -0,0 +1,8 @@
1+# Default ignored files
2+/shelf/
3+/workspace.xml
4+# Editor-based HTTP Client requests
5+/httpRequests/
6+# Datasource local storage ignored files
7+/dataSources/
8+/dataSources.local.xml
server/.idea/misc.xmlnew file+6
@@ -0,0 +1,6 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<project version="4">
3+ <component name="ProjectRootManager">
4+ <output url="file://$PROJECT_DIR$/out" />
5+ </component>
6+</project>
server/.idea/modules.xmlnew file+8
@@ -0,0 +1,8 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<project version="4">
3+ <component name="ProjectModuleManager">
4+ <modules>
5+ <module fileurl="file://$PROJECT_DIR$/.idea/server.iml" filepath="$PROJECT_DIR$/.idea/server.iml" />
6+ </modules>
7+ </component>
8+</project>
server/.idea/server.imlnew file+9
@@ -0,0 +1,9 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<module type="JAVA_MODULE" version="4">
3+ <component name="NewModuleRootManager" inherit-compiler-output="true">
4+ <exclude-output />
5+ <content url="file://$MODULE_DIR$" />
6+ <orderEntry type="inheritedJdk" />
7+ <orderEntry type="sourceFolder" forTests="false" />
8+ </component>
9+</module>
server/.idea/vcs.xmlnew file+6
@@ -0,0 +1,6 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<project version="4">
3+ <component name="VcsDirectoryMappings">
4+ <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
5+ </component>
6+</project>
server/.vscode/settings.json+2−2
@@ -16,8 +16,8 @@
16 "replace": "∀$1"
16 "replace": "∀$1"
17 },
17 },
18 ],
18 ],
19− "purescript.buildCommand": "npx spago build --purs-args '--json-errors'",
19+ "purescript.buildCommand": "spago build --purs-args '--json-errors'",
20 "vscode_custom_css.imports": [
20 "vscode_custom_css.imports": [
21 "file:///Users/mark/.vscode-oss/extensions/webrender.synthwave-x-fluoromachine-0.0.9/synthwave-x-fluoromachine.css"
21 "file:///Users/mark/.vscode-oss/extensions/webrender.synthwave-x-fluoromachine-0.0.9/synthwave-x-fluoromachine.css"
22 ]
22 ]
23−}
23+}
server/package-lock.json+73−3755
@@ -5,134 +5,16 @@
5 "requires": true,
5 "requires": true,
6 "packages": {
6 "packages": {
7 "": {
7 "": {
8+ "name": "server",
8 "version": "1.0.0",
9 "version": "1.0.0",
9 "license": "ISC",
10 "license": "ISC",
10 "dependencies": {
11 "dependencies": {
11− "body-parser": "^1.19.0",
12+ "big-integer": "^1.6.51",
12− "express": "^4.17.1",
13 "fs-extra": "^9.0.0",
13 "fs-extra": "^9.0.0",
14− "json-parser": "^3.1.2",
15 "minimist": "^1.2.2",
14 "minimist": "^1.2.2",
16− "uuid": "^7.0.2"
15+ "uuid": "^8.3.2"
17− },
18− "devDependencies": {
19− "purescript": "^0.14.0",
20− "spago": "^0.19.1"
21− }
22− },
23− "node_modules/accepts": {
24− "version": "1.3.7",
25− "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
26− "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
27− "dependencies": {
28− "mime-types": "~2.1.24",
29− "negotiator": "0.6.2"
30− },
31− "engines": {
32− "node": ">= 0.6"
33− }
34− },
35− "node_modules/ajv": {
36− "version": "6.12.6",
37− "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
38− "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
39− "dev": true,
40− "dependencies": {
41− "fast-deep-equal": "^3.1.1",
42− "fast-json-stable-stringify": "^2.0.0",
43− "json-schema-traverse": "^0.4.1",
44− "uri-js": "^4.2.2"
45− },
46− "funding": {
47− "type": "github",
48− "url": "https://github.com/sponsors/epoberezkin"
49− }
50− },
51− "node_modules/ansi-escapes": {
52− "version": "3.2.0",
53− "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
54− "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
55− "dev": true,
56− "engines": {
57− "node": ">=4"
58− }
59− },
60− "node_modules/ansi-regex": {
61− "version": "4.1.0",
62− "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
63− "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
64− "dev": true,
65− "engines": {
66− "node": ">=6"
67 }
16 }
68 },
17 },
69− "node_modules/ansi-styles": {
70− "version": "3.2.1",
71− "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
72− "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
73− "dev": true,
74− "dependencies": {
75− "color-convert": "^1.9.0"
76− },
77− "engines": {
78− "node": ">=4"
79− }
80− },
81− "node_modules/aproba": {
82− "version": "1.2.0",
83− "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
84− "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
85− "dev": true
86− },
87− "node_modules/arch": {
88− "version": "2.2.0",
89− "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
90− "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
91− "dev": true,
92− "funding": [
93− {
94− "type": "github",
95− "url": "https://github.com/sponsors/feross"
96− },
97− {
98− "type": "patreon",
99− "url": "https://www.patreon.com/feross"
100− },
101− {
102− "type": "consulting",
103− "url": "https://feross.org/support"
104− }
105− ]
106− },
107− "node_modules/array-flatten": {
108− "version": "1.1.1",
109− "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
110− "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
111− },
112− "node_modules/asn1": {
113− "version": "0.2.4",
114− "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
115− "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
116− "dev": true,
117− "dependencies": {
118− "safer-buffer": "~2.1.0"
119− }
120− },
121− "node_modules/assert-plus": {
122− "version": "1.0.0",
123− "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
124− "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
125− "dev": true,
126− "engines": {
127− "node": ">=0.8"
128− }
129− },
130− "node_modules/asynckit": {
131− "version": "0.4.0",
132− "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
133− "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
134− "dev": true
135− },
136 "node_modules/at-least-node": {
18 "node_modules/at-least-node": {
137 "version": "1.0.0",
19 "version": "1.0.0",
138 "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
20 "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
@@ -141,3680 +23,116 @@
141 "node": ">= 4.0.0"
23 "node": ">= 4.0.0"
142 }
24 }
143 },
25 },
144− "node_modules/aws-sign2": {
26+ "node_modules/big-integer": {
145− "version": "0.7.0",
146− "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
147− "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
148− "dev": true,
149− "engines": {
150− "node": "*"
151− }
152− },
153− "node_modules/aws4": {
154− "version": "1.11.0",
155− "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
156− "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
157− "dev": true
158− },
159− "node_modules/balanced-match": {
160− "version": "1.0.0",
161− "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
162− "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
163− "dev": true
164− },
165− "node_modules/bcrypt-pbkdf": {
166− "version": "1.0.2",
167− "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
168− "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
169− "dev": true,
170− "dependencies": {
171− "tweetnacl": "^0.14.3"
172− }
173− },
174− "node_modules/bluebird": {
175− "version": "3.7.2",
176− "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
177− "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
178− "dev": true
179− },
180− "node_modules/body-parser": {
181− "version": "1.19.0",
182− "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
183− "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
184− "dependencies": {
185− "bytes": "3.1.0",
186− "content-type": "~1.0.4",
187− "debug": "2.6.9",
188− "depd": "~1.1.2",
189− "http-errors": "1.7.2",
190− "iconv-lite": "0.4.24",
191− "on-finished": "~2.3.0",
192− "qs": "6.7.0",
193− "raw-body": "2.4.0",
194− "type-is": "~1.6.17"
195− },
196− "engines": {
197− "node": ">= 0.8"
198− }
199− },
200− "node_modules/brace-expansion": {
201− "version": "1.1.11",
202− "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
203− "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
204− "dev": true,
205− "dependencies": {
206− "balanced-match": "^1.0.0",
207− "concat-map": "0.0.1"
208− }
209− },
210− "node_modules/buffer-from": {
211− "version": "1.1.1",
212− "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
213− "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
214− "dev": true
215− },
216− "node_modules/byline": {
217− "version": "5.0.0",
218− "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
219− "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=",
220− "dev": true,
221− "engines": {
222− "node": ">=0.10.0"
223− }
224− },
225− "node_modules/bytes": {
226− "version": "3.1.0",
227− "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
228− "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
229− "engines": {
230− "node": ">= 0.8"
231− }
232− },
233− "node_modules/cacache": {
234− "version": "11.3.3",
235− "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
236− "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
237− "dev": true,
238− "dependencies": {
239− "bluebird": "^3.5.5",
240− "chownr": "^1.1.1",
241− "figgy-pudding": "^3.5.1",
242− "glob": "^7.1.4",
243− "graceful-fs": "^4.1.15",
244− "lru-cache": "^5.1.1",
245− "mississippi": "^3.0.0",
246− "mkdirp": "^0.5.1",
247− "move-concurrently": "^1.0.1",
248− "promise-inflight": "^1.0.1",
249− "rimraf": "^2.6.3",
250− "ssri": "^6.0.1",
251− "unique-filename": "^1.1.1",
252− "y18n": "^4.0.0"
253− }
254− },
255− "node_modules/caseless": {
256− "version": "0.12.0",
257− "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
258− "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
259− "dev": true
260− },
261− "node_modules/chalk": {
262− "version": "2.4.2",
263− "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
264− "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
265− "dev": true,
266− "dependencies": {
267− "ansi-styles": "^3.2.1",
268− "escape-string-regexp": "^1.0.5",
269− "supports-color": "^5.3.0"
270− },
271− "engines": {
272− "node": ">=4"
273− }
274− },
275− "node_modules/chownr": {
276− "version": "1.1.4",
277− "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
278− "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
279− "dev": true
280− },
281− "node_modules/cli-cursor": {
282− "version": "2.1.0",
283− "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
284− "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
285− "dev": true,
286− "dependencies": {
287− "restore-cursor": "^2.0.0"
288− },
289− "engines": {
290− "node": ">=4"
291− }
292− },
293− "node_modules/color-convert": {
294− "version": "1.9.3",
295− "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
296− "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
297− "dev": true,
298− "dependencies": {
299− "color-name": "1.1.3"
300− }
301− },
302− "node_modules/color-name": {
303− "version": "1.1.3",
27+ "version": "1.6.51",
304− "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
28+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
305− "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
29+ "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
306− "dev": true
307− },
308− "node_modules/combined-stream": {
309− "version": "1.0.8",
310− "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
311− "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
312− "dev": true,
313− "dependencies": {
314− "delayed-stream": "~1.0.0"
315− },
316 "engines": {
30 "engines": {
317− "node": ">= 0.8"
31+ "node": ">=0.6"
318 }
32 }
319 },
33 },
320− "node_modules/comment-json": {
34+ "node_modules/fs-extra": {
321− "version": "2.4.2",
35+ "version": "9.1.0",
322− "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-2.4.2.tgz",
36+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
323− "integrity": "sha512-T+iXox779qsqneMYx/x5BZyz4xjCeQRmuNVzz8tko7qZUs3MlzpA3RAs+O1XsgcKToNBMIvfVzafGOeiU7RggA==",
37+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
324 "dependencies": {
38 "dependencies": {
325− "core-util-is": "^1.0.2",
39+ "at-least-node": "^1.0.0",
326− "esprima": "^4.0.1",
40+ "graceful-fs": "^4.2.0",
327− "has-own-prop": "^2.0.0",
41+ "jsonfile": "^6.0.1",
328− "repeat-string": "^1.6.1"
42+ "universalify": "^2.0.0"
329 },
43 },
330 "engines": {
44 "engines": {
331− "node": ">= 6"
45+ "node": ">=10"
332 }
46 }
333 },
47 },
334− "node_modules/concat-map": {
48+ "node_modules/graceful-fs": {
335− "version": "0.0.1",
49+ "version": "4.2.10",
336− "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
50+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
337− "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
51+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
338− "dev": true
339− },
340− "node_modules/concat-stream": {
341− "version": "1.6.2",
342− "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
343− "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
344− "dev": true,
345− "engines": [
346− "node >= 0.8"
347− ],
348− "dependencies": {
349− "buffer-from": "^1.0.0",
350− "inherits": "^2.0.3",
351− "readable-stream": "^2.2.2",
352− "typedarray": "^0.0.6"
353− }
354 },
52 },
355− "node_modules/content-disposition": {
53+ "node_modules/jsonfile": {
356− "version": "0.5.3",
54+ "version": "6.1.0",
357− "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
55+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
358− "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
56+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
359 "dependencies": {
57 "dependencies": {
360− "safe-buffer": "5.1.2"
58+ "universalify": "^2.0.0"
361 },
59 },
362− "engines": {
60+ "optionalDependencies": {
363− "node": ">= 0.6"
61+ "graceful-fs": "^4.1.6"
364− }
365− },
366− "node_modules/content-type": {
367− "version": "1.0.4",
368− "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
369− "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
370− "engines": {
371− "node": ">= 0.6"
372− }
373− },
374− "node_modules/cookie": {
375− "version": "0.4.0",
376− "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
377− "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
378− "engines": {
379− "node": ">= 0.6"
380− }
381− },
382− "node_modules/cookie-signature": {
383− "version": "1.0.6",
384− "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
385− "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
386− },
387− "node_modules/copy-concurrently": {
388− "version": "1.0.5",
389− "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
390− "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
391− "dev": true,
392− "dependencies": {
393− "aproba": "^1.1.1",
394− "fs-write-stream-atomic": "^1.0.8",
395− "iferr": "^0.1.5",
396− "mkdirp": "^0.5.1",
397− "rimraf": "^2.5.4",
398− "run-queue": "^1.0.0"
399 }
62 }
400 },
63 },
401− "node_modules/core-util-is": {
64+ "node_modules/minimist": {
402− "version": "1.0.2",
65+ "version": "1.2.6",
403− "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
66+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
404− "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
67+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
405 },
68 },
406− "node_modules/cross-spawn": {
69+ "node_modules/universalify": {
407− "version": "7.0.3",
70+ "version": "2.0.0",
408− "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
71+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
409− "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
72+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
410− "dev": true,
411− "dependencies": {
412− "path-key": "^3.1.0",
413− "shebang-command": "^2.0.0",
414− "which": "^2.0.1"
415− },
416 "engines": {
73 "engines": {
417− "node": ">= 8"
74+ "node": ">= 10.0.0"
418 }
75 }
419 },
76 },
420− "node_modules/cross-spawn/node_modules/which": {
77+ "node_modules/uuid": {
421− "version": "2.0.2",
78+ "version": "8.3.2",
422− "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
79+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
423− "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
80+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
424− "dev": true,
425− "dependencies": {
426− "isexe": "^2.0.0"
427− },
428 "bin": {
81 "bin": {
429− "node-which": "bin/node-which"
82+ "uuid": "dist/bin/uuid"
430− },
431− "engines": {
432− "node": ">= 8"
433− }
434− },
435− "node_modules/cyclist": {
436− "version": "1.0.1",
437− "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
438− "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
439− "dev": true
440− },
441− "node_modules/dashdash": {
442− "version": "1.14.1",
443− "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
444− "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
445− "dev": true,
446− "dependencies": {
447− "assert-plus": "^1.0.0"
448− },
449− "engines": {
450− "node": ">=0.10"
451− }
452− },
453− "node_modules/debug": {
454− "version": "2.6.9",
455− "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
456− "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
457− "dependencies": {
458− "ms": "2.0.0"
459 }
83 }
460− },
84+ }
461− "node_modules/delayed-stream": {
85+ },
86+ "dependencies": {
87+ "at-least-node": {
462 "version": "1.0.0",
88 "version": "1.0.0",
463− "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
89+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
464− "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
90+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
465− "dev": true,
466− "engines": {
467− "node": ">=0.4.0"
468− }
469− },
470− "node_modules/depd": {
471− "version": "1.1.2",
472− "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
473− "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
474− "engines": {
475− "node": ">= 0.6"
476− }
477− },
478− "node_modules/destroy": {
479− "version": "1.0.4",
480− "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
481− "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
482− },
483− "node_modules/duplexify": {
484− "version": "3.7.1",
485− "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
486− "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
487− "dev": true,
488− "dependencies": {
489− "end-of-stream": "^1.0.0",
490− "inherits": "^2.0.1",
491− "readable-stream": "^2.0.0",
492− "stream-shift": "^1.0.0"
493− }
494− },
495− "node_modules/ecc-jsbn": {
496− "version": "0.1.2",
497− "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
498− "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
499− "dev": true,
500− "dependencies": {
501− "jsbn": "~0.1.0",
502− "safer-buffer": "^2.1.0"
503− }
504− },
505− "node_modules/ee-first": {
506− "version": "1.1.1",
507− "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
508− "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
509− },
510− "node_modules/emoji-regex": {
511− "version": "7.0.3",
512− "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
513− "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
514− "dev": true
515− },
516− "node_modules/encodeurl": {
517− "version": "1.0.2",
518− "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
519− "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
520− "engines": {
521− "node": ">= 0.8"
522− }
523− },
524− "node_modules/end-of-stream": {
525− "version": "1.4.4",
526− "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
527− "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
528− "dev": true,
529− "dependencies": {
530− "once": "^1.4.0"
531− }
532− },
533− "node_modules/env-paths": {
534− "version": "2.2.1",
535− "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
536− "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
537− "dev": true,
538− "engines": {
539− "node": ">=6"
540− }
541− },
542− "node_modules/escape-html": {
543− "version": "1.0.3",
544− "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
545− "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
546− },
547− "node_modules/escape-string-regexp": {
548− "version": "1.0.5",
549− "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
550− "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
551− "dev": true,
552− "engines": {
553− "node": ">=0.8.0"
554− }
555− },
556− "node_modules/esprima": {
557− "version": "4.0.1",
558− "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
559− "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
560− "bin": {
561− "esparse": "bin/esparse.js",
562− "esvalidate": "bin/esvalidate.js"
563− },
564− "engines": {
565− "node": ">=4"
566− }
567− },
568− "node_modules/etag": {
569− "version": "1.8.1",
570− "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
571− "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
572− "engines": {
573− "node": ">= 0.6"
574− }
575− },
576− "node_modules/execa": {
577− "version": "2.1.0",
578− "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz",
579− "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==",
580− "dev": true,
581− "dependencies": {
582− "cross-spawn": "^7.0.0",
583− "get-stream": "^5.0.0",
584− "is-stream": "^2.0.0",
585− "merge-stream": "^2.0.0",
586− "npm-run-path": "^3.0.0",
587− "onetime": "^5.1.0",
588− "p-finally": "^2.0.0",
589− "signal-exit": "^3.0.2",
590− "strip-final-newline": "^2.0.0"
591− },
592− "engines": {
593− "node": "^8.12.0 || >=9.7.0"
594− }
595− },
596− "node_modules/express": {
597− "version": "4.17.1",
598− "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
599− "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
600− "dependencies": {
601− "accepts": "~1.3.7",
602− "array-flatten": "1.1.1",
603− "body-parser": "1.19.0",
604− "content-disposition": "0.5.3",
605− "content-type": "~1.0.4",
606− "cookie": "0.4.0",
607− "cookie-signature": "1.0.6",
608− "debug": "2.6.9",
609− "depd": "~1.1.2",
610− "encodeurl": "~1.0.2",
611− "escape-html": "~1.0.3",
612− "etag": "~1.8.1",
613− "finalhandler": "~1.1.2",
614− "fresh": "0.5.2",
615− "merge-descriptors": "1.0.1",
616− "methods": "~1.1.2",
617− "on-finished": "~2.3.0",
618− "parseurl": "~1.3.3",
619− "path-to-regexp": "0.1.7",
620− "proxy-addr": "~2.0.5",
621− "qs": "6.7.0",
622− "range-parser": "~1.2.1",
623− "safe-buffer": "5.1.2",
624− "send": "0.17.1",
625− "serve-static": "1.14.1",
626− "setprototypeof": "1.1.1",
627− "statuses": "~1.5.0",
628− "type-is": "~1.6.18",
629− "utils-merge": "1.0.1",
630− "vary": "~1.1.2"
631− },
632− "engines": {
633− "node": ">= 0.10.0"
634− }
635− },
636− "node_modules/extend": {
637− "version": "3.0.2",
638− "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
639− "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
640− "dev": true
641− },
642− "node_modules/extsprintf": {
643− "version": "1.3.0",
644− "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
645− "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
646− "dev": true,
647− "engines": [
648− "node >=0.6.0"
649− ]
650− },
651− "node_modules/fast-deep-equal": {
652− "version": "3.1.3",
653− "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
654− "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
655− "dev": true
656− },
657− "node_modules/fast-json-stable-stringify": {
658− "version": "2.1.0",
659− "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
660− "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
661− "dev": true
662− },
663− "node_modules/figgy-pudding": {
664− "version": "3.5.2",
665− "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
666− "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
667− "dev": true
668− },
669− "node_modules/filesize": {
670− "version": "4.2.1",
671− "resolved": "https://registry.npmjs.org/filesize/-/filesize-4.2.1.tgz",
672− "integrity": "sha512-bP82Hi8VRZX/TUBKfE24iiUGsB/sfm2WUrwTQyAzQrhO3V9IhcBBNBXMyzLY5orACxRyYJ3d2HeRVX+eFv4lmA==",
673− "dev": true,
674− "engines": {
675− "node": ">= 0.4.0"
676− }
677− },
678− "node_modules/finalhandler": {
679− "version": "1.1.2",
680− "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
681− "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
682− "dependencies": {
683− "debug": "2.6.9",
684− "encodeurl": "~1.0.2",
685− "escape-html": "~1.0.3",
686− "on-finished": "~2.3.0",
687− "parseurl": "~1.3.3",
688− "statuses": "~1.5.0",
689− "unpipe": "~1.0.0"
690− },
691− "engines": {
692− "node": ">= 0.8"
693− }
694− },
695− "node_modules/flush-write-stream": {
696− "version": "1.1.1",
697− "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
698− "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
699− "dev": true,
700− "dependencies": {
701− "inherits": "^2.0.3",
702− "readable-stream": "^2.3.6"
703− }
704− },
705− "node_modules/forever-agent": {
706− "version": "0.6.1",
707− "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
708− "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
709− "dev": true,
710− "engines": {
711− "node": "*"
712− }
713− },
714− "node_modules/form-data": {
715− "version": "2.3.3",
716− "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
717− "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
718− "dev": true,
719− "dependencies": {
720− "asynckit": "^0.4.0",
721− "combined-stream": "^1.0.6",
722− "mime-types": "^2.1.12"
723− },
724− "engines": {
725− "node": ">= 0.12"
726− }
727− },
728− "node_modules/forwarded": {
729− "version": "0.1.2",
730− "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
731− "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
732− "engines": {
733− "node": ">= 0.6"
734− }
735− },
736− "node_modules/fresh": {
737− "version": "0.5.2",
738− "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
739− "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
740− "engines": {
741− "node": ">= 0.6"
742− }
743 },
91 },
744− "node_modules/from2": {
92+ "big-integer": {
745− "version": "2.3.0",
93+ "version": "1.6.51",
746− "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
94+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
747− "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
95+ "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg=="
748− "dev": true,
749− "dependencies": {
750− "inherits": "^2.0.1",
751− "readable-stream": "^2.0.0"
752− }
753 },
96 },
754− "node_modules/fs-extra": {
97+ "fs-extra": {
755 "version": "9.1.0",
98 "version": "9.1.0",
756 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
99 "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
757 "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
100 "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
758− "dependencies": {
101+ "requires": {
759 "at-least-node": "^1.0.0",
102 "at-least-node": "^1.0.0",
760 "graceful-fs": "^4.2.0",
103 "graceful-fs": "^4.2.0",
761 "jsonfile": "^6.0.1",
104 "jsonfile": "^6.0.1",
762 "universalify": "^2.0.0"
105 "universalify": "^2.0.0"
763− },
764− "engines": {
765− "node": ">=10"
766 }
106 }
767 },
107 },
768− "node_modules/fs-minipass": {
769− "version": "1.2.7",
770− "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
771− "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
772− "dev": true,
773− "dependencies": {
774− "minipass": "^2.6.0"
775− }
776− },
777− "node_modules/fs-write-stream-atomic": {
778− "version": "1.0.10",
779− "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
780− "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
781− "dev": true,
782− "dependencies": {
783− "graceful-fs": "^4.1.2",
108+ "graceful-fs": {
784− "iferr": "^0.1.5",
785− "imurmurhash": "^0.1.4",
786− "readable-stream": "1 || 2"
787− }
788− },
789− "node_modules/fs.realpath": {
790− "version": "1.0.0",
791− "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
792− "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
793− "dev": true
794− },
795− "node_modules/get-stream": {
796− "version": "5.2.0",
109+ "version": "4.2.10",
797− "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
110+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
798− "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
111+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
799− "dev": true,
800− "dependencies": {
801− "pump": "^3.0.0"
802− },
803− "engines": {
804− "node": ">=8"
805− },
806− "funding": {
807− "url": "https://github.com/sponsors/sindresorhus"
808− }
809− },
810− "node_modules/getpass": {
811− "version": "0.1.7",
812− "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
813− "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
814− "dev": true,
815− "dependencies": {
816− "assert-plus": "^1.0.0"
817− }
818 },
112 },
819− "node_modules/glob": {
113+ "jsonfile": {
820− "version": "7.1.6",
114+ "version": "6.1.0",
821− "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
115+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
822− "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
116+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
823− "dev": true,
117+ "requires": {
824− "dependencies": {
118+ "graceful-fs": "^4.1.6",
825− "fs.realpath": "^1.0.0",
119+ "universalify": "^2.0.0"
826− "inflight": "^1.0.4",
827− "inherits": "2",
828− "minimatch": "^3.0.4",
829− "once": "^1.3.0",
830− "path-is-absolute": "^1.0.0"
831− },
832− "engines": {
833− "node": "*"
834− },
835− "funding": {
836− "url": "https://github.com/sponsors/isaacs"
837 }
120 }
838 },
121 },
839− "node_modules/graceful-fs": {
122+ "minimist": {
840− "version": "4.2.6",
123+ "version": "1.2.6",
841− "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
124+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
842− "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
125+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
843 },
126 },
844− "node_modules/har-schema": {
127+ "universalify": {
845− "version": "2.0.0",
846− "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
847− "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
848− "dev": true,
849− "engines": {
850− "node": ">=4"
851− }
852− },
853− "node_modules/har-validator": {
854− "version": "5.1.5",
855− "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
856− "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
857− "deprecated": "this library is no longer supported",
858− "dev": true,
859− "dependencies": {
860− "ajv": "^6.12.3",
861− "har-schema": "^2.0.0"
862− },
863− "engines": {
864− "node": ">=6"
865− }
866− },
867− "node_modules/has-flag": {
868− "version": "3.0.0",
869− "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
870− "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
871− "dev": true,
872− "engines": {
873− "node": ">=4"
874− }
875− },
876− "node_modules/has-own-prop": {
877− "version": "2.0.0",
878− "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz",
879− "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==",
880− "engines": {
881− "node": ">=8"
882− }
883− },
884− "node_modules/http-errors": {
885− "version": "1.7.2",
886− "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
887− "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
888− "dependencies": {
889− "depd": "~1.1.2",
890− "inherits": "2.0.3",
891− "setprototypeof": "1.1.1",
892− "statuses": ">= 1.5.0 < 2",
893− "toidentifier": "1.0.0"
894− },
895− "engines": {
896− "node": ">= 0.6"
897− }
898− },
899− "node_modules/http-signature": {
900− "version": "1.2.0",
901− "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
902− "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
903− "dev": true,
904− "dependencies": {
905− "assert-plus": "^1.0.0",
906− "jsprim": "^1.2.2",
907− "sshpk": "^1.7.0"
908− },
909− "engines": {
910− "node": ">=0.8",
911− "npm": ">=1.3.7"
912− }
913− },
914− "node_modules/iconv-lite": {
915− "version": "0.4.24",
916− "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
917− "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
918− "dependencies": {
919− "safer-buffer": ">= 2.1.2 < 3"
920− },
921− "engines": {
922− "node": ">=0.10.0"
923− }
924− },
925− "node_modules/iferr": {
926− "version": "0.1.5",
927− "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
928− "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
929− "dev": true
930− },
931− "node_modules/imurmurhash": {
932− "version": "0.1.4",
933− "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
934− "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
935− "dev": true,
936− "engines": {
937− "node": ">=0.8.19"
938− }
939− },
940− "node_modules/inflight": {
941− "version": "1.0.6",
942− "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
943− "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
944− "dev": true,
945− "dependencies": {
946− "once": "^1.3.0",
947− "wrappy": "1"
948− }
949− },
950− "node_modules/inherits": {
951− "version": "2.0.3",
952− "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
953− "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
954− },
955− "node_modules/ipaddr.js": {
956− "version": "1.9.1",
957− "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
958− "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
959− "engines": {
960− "node": ">= 0.10"
961− }
962− },
963− "node_modules/is-fullwidth-code-point": {
964− "version": "2.0.0",
965− "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
966− "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
967− "dev": true,
968− "engines": {
969− "node": ">=4"
970− }
971− },
972− "node_modules/is-plain-obj": {
973− "version": "2.1.0",
974− "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
975− "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
976− "dev": true,
977− "engines": {
978− "node": ">=8"
979− }
980− },
981− "node_modules/is-stream": {
982− "version": "2.0.0",
983− "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
984− "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
985− "dev": true,
986− "engines": {
987− "node": ">=8"
988− }
989− },
990− "node_modules/is-typedarray": {
991− "version": "1.0.0",
992− "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
993− "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
994− "dev": true
995− },
996− "node_modules/isarray": {
997− "version": "1.0.0",
998− "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
999− "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
1000− "dev": true
1001− },
1002− "node_modules/isexe": {
1003− "version": "2.0.0",
1004− "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1005− "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1006− "dev": true
1007− },
1008− "node_modules/isstream": {
1009− "version": "0.1.2",
1010− "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
1011− "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
1012− "dev": true
1013− },
1014− "node_modules/jsbn": {
1015− "version": "0.1.1",
1016− "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
1017− "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
1018− "dev": true
1019− },
1020− "node_modules/json-parser": {
1021− "version": "3.1.2",
1022− "resolved": "https://registry.npmjs.org/json-parser/-/json-parser-3.1.2.tgz",
1023− "integrity": "sha512-FCy1zIx3KUtOcNlFw9/ZGfDFBAGAwE6qYeaYwXCYUXhMO4TzizoQaQN1/LpZn088O7cz8eLVCjd/9aeW9HN32w==",
1024− "deprecated": "`json-parser` is deprecated. Please use `comment-json` instead",
1025− "dependencies": {
1026− "comment-json": "^2.1.0"
1027− },
1028− "engines": {
1029− "node": ">= 6"
1030− }
1031− },
1032− "node_modules/json-schema": {
1033− "version": "0.2.3",
1034− "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
1035− "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
1036− "dev": true
1037− },
1038− "node_modules/json-schema-traverse": {
1039− "version": "0.4.1",
1040− "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1041− "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1042− "dev": true
1043− },
1044− "node_modules/json-stringify-safe": {
1045− "version": "5.0.1",
1046− "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
1047− "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
1048− "dev": true
1049− },
1050− "node_modules/jsonfile": {
1051− "version": "6.1.0",
1052− "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
1053− "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
1054− "dependencies": {
1055− "universalify": "^2.0.0"
1056− },
1057− "optionalDependencies": {
1058− "graceful-fs": "^4.1.6"
1059− }
1060− },
1061− "node_modules/jsprim": {
1062− "version": "1.4.1",
1063− "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
1064− "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
1065− "dev": true,
1066− "engines": [
1067− "node >=0.6.0"
1068− ],
1069− "dependencies": {
1070− "assert-plus": "1.0.0",
1071− "extsprintf": "1.3.0",
1072− "json-schema": "0.2.3",
1073− "verror": "1.10.0"
1074− }
1075− },
1076− "node_modules/log-symbols": {
1077− "version": "3.0.0",
1078− "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
1079− "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
1080− "dev": true,
1081− "dependencies": {
1082− "chalk": "^2.4.2"
1083− },
1084− "engines": {
1085− "node": ">=8"
1086− }
1087− },
1088− "node_modules/log-update": {
1089− "version": "3.4.0",
1090− "resolved": "https://registry.npmjs.org/log-update/-/log-update-3.4.0.tgz",
1091− "integrity": "sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==",
1092− "dev": true,
1093− "dependencies": {
1094− "ansi-escapes": "^3.2.0",
1095− "cli-cursor": "^2.1.0",
1096− "wrap-ansi": "^5.0.0"
1097− },
1098− "engines": {
1099− "node": ">=6"
1100− },
1101− "funding": {
1102− "url": "https://github.com/sponsors/sindresorhus"
1103− }
1104− },
1105− "node_modules/lru-cache": {
1106− "version": "5.1.1",
1107− "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
1108− "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
1109− "dev": true,
1110− "dependencies": {
1111− "yallist": "^3.0.2"
1112− }
1113− },
1114− "node_modules/media-typer": {
1115− "version": "0.3.0",
1116− "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1117− "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
1118− "engines": {
1119− "node": ">= 0.6"
1120− }
1121− },
1122− "node_modules/merge-descriptors": {
1123− "version": "1.0.1",
1124− "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1125− "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
1126− },
1127− "node_modules/merge-stream": {
1128− "version": "2.0.0",
1129− "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
1130− "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
1131− "dev": true
1132− },
1133− "node_modules/methods": {
1134− "version": "1.1.2",
1135− "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1136− "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
1137− "engines": {
1138− "node": ">= 0.6"
1139− }
1140− },
1141− "node_modules/mime": {
1142− "version": "1.6.0",
1143− "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1144− "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1145− "bin": {
1146− "mime": "cli.js"
1147− },
1148− "engines": {
1149− "node": ">=4"
1150− }
1151− },
1152− "node_modules/mime-db": {
1153− "version": "1.46.0",
1154− "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
1155− "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==",
1156− "engines": {
1157− "node": ">= 0.6"
1158− }
1159− },
1160− "node_modules/mime-types": {
1161− "version": "2.1.29",
1162− "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz",
1163− "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==",
1164− "dependencies": {
1165− "mime-db": "1.46.0"
1166− },
1167− "engines": {
1168− "node": ">= 0.6"
1169− }
1170− },
1171− "node_modules/mimic-fn": {
1172− "version": "2.1.0",
1173− "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
1174− "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
1175− "dev": true,
1176− "engines": {
1177− "node": ">=6"
1178− }
1179− },
1180− "node_modules/minimatch": {
1181− "version": "3.0.4",
1182− "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1183− "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1184− "dev": true,
1185− "dependencies": {
1186− "brace-expansion": "^1.1.7"
1187− },
1188− "engines": {
1189− "node": "*"
1190− }
1191− },
1192− "node_modules/minimist": {
1193− "version": "1.2.5",
1194− "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1195− "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
1196− },
1197− "node_modules/minipass": {
1198− "version": "2.9.0",
1199− "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
1200− "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
1201− "dev": true,
1202− "dependencies": {
1203− "safe-buffer": "^5.1.2",
1204− "yallist": "^3.0.0"
1205− }
1206− },
1207− "node_modules/minizlib": {
1208− "version": "1.3.3",
1209− "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
1210− "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
1211− "dev": true,
1212− "dependencies": {
1213− "minipass": "^2.9.0"
1214− }
1215− },
1216− "node_modules/mississippi": {
1217− "version": "3.0.0",
1218− "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
1219− "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
1220− "dev": true,
1221− "dependencies": {
1222− "concat-stream": "^1.5.0",
1223− "duplexify": "^3.4.2",
1224− "end-of-stream": "^1.1.0",
1225− "flush-write-stream": "^1.0.0",
1226− "from2": "^2.1.0",
1227− "parallel-transform": "^1.1.0",
1228− "pump": "^3.0.0",
1229− "pumpify": "^1.3.3",
1230− "stream-each": "^1.1.0",
1231− "through2": "^2.0.0"
1232− },
1233− "engines": {
1234− "node": ">=4.0.0"
1235− }
1236− },
1237− "node_modules/mkdirp": {
1238− "version": "0.5.5",
1239− "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1240− "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1241− "dev": true,
1242− "dependencies": {
1243− "minimist": "^1.2.5"
1244− },
1245− "bin": {
1246− "mkdirp": "bin/cmd.js"
1247− }
1248− },
1249− "node_modules/move-concurrently": {
1250− "version": "1.0.1",
1251− "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
1252− "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
1253− "dev": true,
1254− "dependencies": {
1255− "aproba": "^1.1.1",
1256− "copy-concurrently": "^1.0.0",
1257− "fs-write-stream-atomic": "^1.0.8",
1258− "mkdirp": "^0.5.1",
1259− "rimraf": "^2.5.4",
1260− "run-queue": "^1.0.3"
1261− }
1262− },
1263− "node_modules/ms": {
1264− "version": "2.0.0",
1265− "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1266− "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
1267− },
1268− "node_modules/negotiator": {
1269− "version": "0.6.2",
1270− "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1271− "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
1272− "engines": {
1273− "node": ">= 0.6"
1274− }
1275− },
1276− "node_modules/npm-run-path": {
1277− "version": "3.1.0",
1278− "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz",
1279− "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==",
1280− "dev": true,
1281− "dependencies": {
1282− "path-key": "^3.0.0"
1283− },
1284− "engines": {
1285− "node": ">=8"
1286− }
1287− },
1288− "node_modules/oauth-sign": {
1289− "version": "0.9.0",
1290− "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
1291− "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
1292− "dev": true,
1293− "engines": {
1294− "node": "*"
1295− }
1296− },
1297− "node_modules/on-finished": {
1298− "version": "2.3.0",
1299− "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1300− "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1301− "dependencies": {
1302− "ee-first": "1.1.1"
1303− },
1304− "engines": {
1305− "node": ">= 0.8"
1306− }
1307− },
1308− "node_modules/once": {
1309− "version": "1.4.0",
1310− "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1311− "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1312− "dev": true,
1313− "dependencies": {
1314− "wrappy": "1"
1315− }
1316− },
1317− "node_modules/onetime": {
1318− "version": "5.1.2",
1319− "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
1320− "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
1321− "dev": true,
1322− "dependencies": {
1323− "mimic-fn": "^2.1.0"
1324− },
1325− "engines": {
1326− "node": ">=6"
1327− },
1328− "funding": {
1329− "url": "https://github.com/sponsors/sindresorhus"
1330− }
1331− },
1332− "node_modules/p-finally": {
1333− "version": "2.0.1",
1334− "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
1335− "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
1336− "dev": true,
1337− "engines": {
1338− "node": ">=8"
1339− }
1340− },
1341− "node_modules/parallel-transform": {
1342− "version": "1.2.0",
1343− "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
1344− "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
1345− "dev": true,
1346− "dependencies": {
1347− "cyclist": "^1.0.1",
1348− "inherits": "^2.0.3",
1349− "readable-stream": "^2.1.5"
1350− }
1351− },
1352− "node_modules/parseurl": {
1353− "version": "1.3.3",
1354− "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1355− "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1356− "engines": {
1357− "node": ">= 0.8"
1358− }
1359− },
1360− "node_modules/path-is-absolute": {
1361− "version": "1.0.1",
1362− "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1363− "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1364− "dev": true,
1365− "engines": {
1366− "node": ">=0.10.0"
1367− }
1368− },
1369− "node_modules/path-key": {
1370− "version": "3.1.1",
1371− "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1372− "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1373− "dev": true,
1374− "engines": {
1375− "node": ">=8"
1376− }
1377− },
1378− "node_modules/path-to-regexp": {
1379− "version": "0.1.7",
1380− "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1381− "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
1382− },
1383− "node_modules/performance-now": {
1384− "version": "2.1.0",
1385− "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
1386− "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
1387− "dev": true
1388− },
1389− "node_modules/process-nextick-args": {
1390− "version": "2.0.1",
1391− "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
1392− "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
1393− "dev": true
1394− },
1395− "node_modules/promise-inflight": {
1396− "version": "1.0.1",
1397− "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
1398− "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
1399− "dev": true
1400− },
1401− "node_modules/proxy-addr": {
1402− "version": "2.0.6",
1403− "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
1404− "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
1405− "dependencies": {
1406− "forwarded": "~0.1.2",
1407− "ipaddr.js": "1.9.1"
1408− },
1409− "engines": {
1410− "node": ">= 0.10"
1411− }
1412− },
1413− "node_modules/psl": {
1414− "version": "1.8.0",
1415− "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
1416− "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
1417− "dev": true
1418− },
1419− "node_modules/pump": {
1420− "version": "3.0.0",
1421− "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1422− "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1423− "dev": true,
1424− "dependencies": {
1425− "end-of-stream": "^1.1.0",
1426− "once": "^1.3.1"
1427− }
1428− },
1429− "node_modules/pumpify": {
1430− "version": "1.5.1",
1431− "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
1432− "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
1433− "dev": true,
1434− "dependencies": {
1435− "duplexify": "^3.6.0",
1436− "inherits": "^2.0.3",
1437− "pump": "^2.0.0"
1438− }
1439− },
1440− "node_modules/pumpify/node_modules/pump": {
1441− "version": "2.0.1",
1442− "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
1443− "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
1444− "dev": true,
1445− "dependencies": {
1446− "end-of-stream": "^1.1.0",
1447− "once": "^1.3.1"
1448− }
1449− },
1450− "node_modules/punycode": {
1451− "version": "2.1.1",
1452− "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1453− "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1454− "dev": true,
1455− "engines": {
1456− "node": ">=6"
1457− }
1458− },
1459− "node_modules/purescript": {
1460− "version": "0.14.0",
1461− "resolved": "https://registry.npmjs.org/purescript/-/purescript-0.14.0.tgz",
1462− "integrity": "sha512-iTA1k8mwxHqrJp/K296g6omVfve5RCjnB5D6Up93PVtZdP66mCIqlOYC4hrLBHg2hgkk27xePDt5NUXKvH4ApQ==",
1463− "dev": true,
1464− "hasInstallScript": true,
1465− "dependencies": {
1466− "purescript-installer": "^0.2.0"
1467− },
1468− "bin": {
1469− "purs": "purs.bin"
1470− }
1471− },
1472− "node_modules/purescript-installer": {
1473− "version": "0.2.5",
1474− "resolved": "https://registry.npmjs.org/purescript-installer/-/purescript-installer-0.2.5.tgz",
1475− "integrity": "sha512-fQAWWP5a7scuchXecjpU4r4KEgSPuS6bBnaP01k9f71qqD28HaJ2m4PXHFkhkR4oATAxTPIGCtmTwtVoiBOHog==",
1476− "dev": true,
1477− "dependencies": {
1478− "arch": "^2.1.1",
1479− "byline": "^5.0.0",
1480− "cacache": "^11.3.2",
1481− "chalk": "^2.4.2",
1482− "env-paths": "^2.2.0",
1483− "execa": "^2.0.3",
1484− "filesize": "^4.1.2",
1485− "is-plain-obj": "^2.0.0",
1486− "log-symbols": "^3.0.0",
1487− "log-update": "^3.2.0",
1488− "minimist": "^1.2.0",
1489− "mkdirp": "^0.5.1",
1490− "ms": "^2.1.2",
1491− "once": "^1.4.0",
1492− "pump": "^3.0.0",
1493− "request": "^2.88.0",
1494− "rimraf": "^2.6.3",
1495− "tar": "^4.4.6",
1496− "which": "^1.3.1",
1497− "zen-observable": "^0.8.14"
1498− },
1499− "bin": {
1500− "install-purescript": "index.js"
1501− },
1502− "engines": {
1503− "node": ">=8.3.0"
1504− }
1505− },
1506− "node_modules/purescript-installer/node_modules/ms": {
1507− "version": "2.1.3",
1508− "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1509− "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1510− "dev": true
1511− },
1512− "node_modules/qs": {
1513− "version": "6.7.0",
1514− "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
1515− "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
1516− "engines": {
1517− "node": ">=0.6"
1518− }
1519− },
1520− "node_modules/range-parser": {
1521− "version": "1.2.1",
1522− "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1523− "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1524− "engines": {
1525− "node": ">= 0.6"
1526− }
1527− },
1528− "node_modules/raw-body": {
1529− "version": "2.4.0",
1530− "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
1531− "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
1532− "dependencies": {
1533− "bytes": "3.1.0",
1534− "http-errors": "1.7.2",
1535− "iconv-lite": "0.4.24",
1536− "unpipe": "1.0.0"
1537− },
1538− "engines": {
1539− "node": ">= 0.8"
1540− }
1541− },
1542− "node_modules/readable-stream": {
1543− "version": "2.3.7",
1544− "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
1545− "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
1546− "dev": true,
1547− "dependencies": {
1548− "core-util-is": "~1.0.0",
1549− "inherits": "~2.0.3",
1550− "isarray": "~1.0.0",
1551− "process-nextick-args": "~2.0.0",
1552− "safe-buffer": "~5.1.1",
1553− "string_decoder": "~1.1.1",
1554− "util-deprecate": "~1.0.1"
1555− }
1556− },
1557− "node_modules/repeat-string": {
1558− "version": "1.6.1",
1559− "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
1560− "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
1561− "engines": {
1562− "node": ">=0.10"
1563− }
1564− },
1565− "node_modules/request": {
1566− "version": "2.88.2",
1567− "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
1568− "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
1569− "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
1570− "dev": true,
1571− "dependencies": {
1572− "aws-sign2": "~0.7.0",
1573− "aws4": "^1.8.0",
1574− "caseless": "~0.12.0",
1575− "combined-stream": "~1.0.6",
1576− "extend": "~3.0.2",
1577− "forever-agent": "~0.6.1",
1578− "form-data": "~2.3.2",
1579− "har-validator": "~5.1.3",
1580− "http-signature": "~1.2.0",
1581− "is-typedarray": "~1.0.0",
1582− "isstream": "~0.1.2",
1583− "json-stringify-safe": "~5.0.1",
1584− "mime-types": "~2.1.19",
1585− "oauth-sign": "~0.9.0",
1586− "performance-now": "^2.1.0",
1587− "qs": "~6.5.2",
1588− "safe-buffer": "^5.1.2",
1589− "tough-cookie": "~2.5.0",
1590− "tunnel-agent": "^0.6.0",
1591− "uuid": "^3.3.2"
1592− },
1593− "engines": {
1594− "node": ">= 6"
1595− }
1596− },
1597− "node_modules/request/node_modules/qs": {
1598− "version": "6.5.2",
1599− "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
1600− "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
1601− "dev": true,
1602− "engines": {
1603− "node": ">=0.6"
1604− }
1605− },
1606− "node_modules/request/node_modules/uuid": {
1607− "version": "3.4.0",
1608− "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
1609− "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
1610− "dev": true,
1611− "bin": {
1612− "uuid": "bin/uuid"
1613− }
1614− },
1615− "node_modules/restore-cursor": {
1616− "version": "2.0.0",
1617− "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
1618− "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
1619− "dev": true,
1620− "dependencies": {
1621− "onetime": "^2.0.0",
1622− "signal-exit": "^3.0.2"
1623− },
1624− "engines": {
1625− "node": ">=4"
1626− }
1627− },
1628− "node_modules/restore-cursor/node_modules/mimic-fn": {
1629− "version": "1.2.0",
1630− "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
1631− "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
1632− "dev": true,
1633− "engines": {
1634− "node": ">=4"
1635− }
1636− },
1637− "node_modules/restore-cursor/node_modules/onetime": {
1638− "version": "2.0.1",
1639− "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
1640− "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
1641− "dev": true,
1642− "dependencies": {
1643− "mimic-fn": "^1.0.0"
1644− },
1645− "engines": {
1646− "node": ">=4"
1647− }
1648− },
1649− "node_modules/rimraf": {
1650− "version": "2.7.1",
1651− "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1652− "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1653− "dev": true,
1654− "dependencies": {
1655− "glob": "^7.1.3"
1656− },
1657− "bin": {
1658− "rimraf": "bin.js"
1659− }
1660− },
1661− "node_modules/run-queue": {
1662− "version": "1.0.3",
1663− "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
1664− "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
1665− "dev": true,
1666− "dependencies": {
1667− "aproba": "^1.1.1"
1668− }
1669− },
1670− "node_modules/safe-buffer": {
1671− "version": "5.1.2",
1672− "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1673− "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
1674− },
1675− "node_modules/safer-buffer": {
1676− "version": "2.1.2",
1677− "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1678− "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1679− },
1680− "node_modules/send": {
1681− "version": "0.17.1",
1682− "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
1683− "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
1684− "dependencies": {
1685− "debug": "2.6.9",
1686− "depd": "~1.1.2",
1687− "destroy": "~1.0.4",
1688− "encodeurl": "~1.0.2",
1689− "escape-html": "~1.0.3",
1690− "etag": "~1.8.1",
1691− "fresh": "0.5.2",
1692− "http-errors": "~1.7.2",
1693− "mime": "1.6.0",
1694− "ms": "2.1.1",
1695− "on-finished": "~2.3.0",
1696− "range-parser": "~1.2.1",
1697− "statuses": "~1.5.0"
1698− },
1699− "engines": {
1700− "node": ">= 0.8.0"
1701− }
1702− },
1703− "node_modules/send/node_modules/ms": {
1704− "version": "2.1.1",
1705− "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1706− "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
1707− },
1708− "node_modules/serve-static": {
1709− "version": "1.14.1",
1710− "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
1711− "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
1712− "dependencies": {
1713− "encodeurl": "~1.0.2",
1714− "escape-html": "~1.0.3",
1715− "parseurl": "~1.3.3",
1716− "send": "0.17.1"
1717− },
1718− "engines": {
1719− "node": ">= 0.8.0"
1720− }
1721− },
1722− "node_modules/setprototypeof": {
1723− "version": "1.1.1",
1724− "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1725− "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1726− },
1727− "node_modules/shebang-command": {
1728− "version": "2.0.0",
1729− "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1730− "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1731− "dev": true,
1732− "dependencies": {
1733− "shebang-regex": "^3.0.0"
1734− },
1735− "engines": {
1736− "node": ">=8"
1737− }
1738− },
1739− "node_modules/shebang-regex": {
1740− "version": "3.0.0",
1741− "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1742− "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1743− "dev": true,
1744− "engines": {
1745− "node": ">=8"
1746− }
1747− },
1748− "node_modules/signal-exit": {
1749− "version": "3.0.3",
1750− "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
1751− "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
1752− "dev": true
1753− },
1754− "node_modules/spago": {
1755− "version": "0.19.1",
1756− "resolved": "https://registry.npmjs.org/spago/-/spago-0.19.1.tgz",
1757− "integrity": "sha512-OD/yopJZ9Ub+XsFtayDeLAWLT4kLdMxosJEyyp8W5OkyJVVSbCrvYacsO7iq3lSuHJmmNny/TEZdyb7uSyupng==",
1758− "dev": true,
1759− "hasInstallScript": true,
1760− "dependencies": {
1761− "request": "^2.88.0",
1762− "tar": "^4.4.8"
1763− },
1764− "bin": {
1765− "spago": "spago"
1766− }
1767− },
1768− "node_modules/sshpk": {
1769− "version": "1.16.1",
1770− "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
1771− "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
1772− "dev": true,
1773− "dependencies": {
1774− "asn1": "~0.2.3",
1775− "assert-plus": "^1.0.0",
1776− "bcrypt-pbkdf": "^1.0.0",
1777− "dashdash": "^1.12.0",
1778− "ecc-jsbn": "~0.1.1",
1779− "getpass": "^0.1.1",
1780− "jsbn": "~0.1.0",
1781− "safer-buffer": "^2.0.2",
1782− "tweetnacl": "~0.14.0"
1783− },
1784− "bin": {
1785− "sshpk-conv": "bin/sshpk-conv",
1786− "sshpk-sign": "bin/sshpk-sign",
1787− "sshpk-verify": "bin/sshpk-verify"
1788− },
1789− "engines": {
1790− "node": ">=0.10.0"
1791− }
1792− },
1793− "node_modules/ssri": {
1794− "version": "6.0.1",
1795− "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
1796− "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
1797− "dev": true,
1798− "dependencies": {
1799− "figgy-pudding": "^3.5.1"
1800− }
1801− },
1802− "node_modules/statuses": {
1803− "version": "1.5.0",
1804− "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1805− "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
1806− "engines": {
1807− "node": ">= 0.6"
1808− }
1809− },
1810− "node_modules/stream-each": {
1811− "version": "1.2.3",
1812− "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
1813− "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
1814− "dev": true,
1815− "dependencies": {
1816− "end-of-stream": "^1.1.0",
1817− "stream-shift": "^1.0.0"
1818− }
1819− },
1820− "node_modules/stream-shift": {
1821− "version": "1.0.1",
1822− "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
1823− "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
1824− "dev": true
1825− },
1826− "node_modules/string_decoder": {
1827− "version": "1.1.1",
1828− "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1829− "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1830− "dev": true,
1831− "dependencies": {
1832− "safe-buffer": "~5.1.0"
1833− }
1834− },
1835− "node_modules/string-width": {
1836− "version": "3.1.0",
1837− "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1838− "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1839− "dev": true,
1840− "dependencies": {
1841− "emoji-regex": "^7.0.1",
1842− "is-fullwidth-code-point": "^2.0.0",
1843− "strip-ansi": "^5.1.0"
1844− },
1845− "engines": {
1846− "node": ">=6"
1847− }
1848− },
1849− "node_modules/strip-ansi": {
1850− "version": "5.2.0",
1851− "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1852− "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1853− "dev": true,
1854− "dependencies": {
1855− "ansi-regex": "^4.1.0"
1856− },
1857− "engines": {
1858− "node": ">=6"
1859− }
1860− },
1861− "node_modules/strip-final-newline": {
1862− "version": "2.0.0",
1863− "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
1864− "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
1865− "dev": true,
1866− "engines": {
1867− "node": ">=6"
1868− }
1869− },
1870− "node_modules/supports-color": {
1871− "version": "5.5.0",
1872− "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1873− "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1874− "dev": true,
1875− "dependencies": {
1876− "has-flag": "^3.0.0"
1877− },
1878− "engines": {
1879− "node": ">=4"
1880− }
1881− },
1882− "node_modules/tar": {
1883− "version": "4.4.13",
1884− "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
1885− "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
1886− "dev": true,
1887− "dependencies": {
1888− "chownr": "^1.1.1",
1889− "fs-minipass": "^1.2.5",
1890− "minipass": "^2.8.6",
1891− "minizlib": "^1.2.1",
1892− "mkdirp": "^0.5.0",
1893− "safe-buffer": "^5.1.2",
1894− "yallist": "^3.0.3"
1895− },
1896− "engines": {
1897− "node": ">=4.5"
1898− }
1899− },
1900− "node_modules/through2": {
1901− "version": "2.0.5",
1902− "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
1903− "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
1904− "dev": true,
1905− "dependencies": {
1906− "readable-stream": "~2.3.6",
1907− "xtend": "~4.0.1"
1908− }
1909− },
1910− "node_modules/toidentifier": {
1911− "version": "1.0.0",
1912− "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1913− "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
1914− "engines": {
1915− "node": ">=0.6"
1916− }
1917− },
1918− "node_modules/tough-cookie": {
1919− "version": "2.5.0",
1920− "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
1921− "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
1922− "dev": true,
1923− "dependencies": {
1924− "psl": "^1.1.28",
1925− "punycode": "^2.1.1"
1926− },
1927− "engines": {
1928− "node": ">=0.8"
1929− }
1930− },
1931− "node_modules/tunnel-agent": {
1932− "version": "0.6.0",
1933− "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
1934− "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
1935− "dev": true,
1936− "dependencies": {
1937− "safe-buffer": "^5.0.1"
1938− },
1939− "engines": {
1940− "node": "*"
1941− }
1942− },
1943− "node_modules/tweetnacl": {
1944− "version": "0.14.5",
1945− "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
1946− "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
1947− "dev": true
1948− },
1949− "node_modules/type-is": {
1950− "version": "1.6.18",
1951− "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1952− "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1953− "dependencies": {
1954− "media-typer": "0.3.0",
1955− "mime-types": "~2.1.24"
1956− },
1957− "engines": {
1958− "node": ">= 0.6"
1959− }
1960− },
1961− "node_modules/typedarray": {
1962− "version": "0.0.6",
1963− "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
1964− "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
1965− "dev": true
1966− },
1967− "node_modules/unique-filename": {
1968− "version": "1.1.1",
1969− "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
1970− "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
1971− "dev": true,
1972− "dependencies": {
1973− "unique-slug": "^2.0.0"
1974− }
1975− },
1976− "node_modules/unique-slug": {
1977− "version": "2.0.2",
1978− "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
1979− "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
1980− "dev": true,
1981− "dependencies": {
1982− "imurmurhash": "^0.1.4"
1983− }
1984− },
1985− "node_modules/universalify": {
1986− "version": "2.0.0",
1987− "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
1988− "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
1989− "engines": {
1990− "node": ">= 10.0.0"
1991− }
1992− },
1993− "node_modules/unpipe": {
1994− "version": "1.0.0",
1995− "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1996− "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
1997− "engines": {
1998− "node": ">= 0.8"
1999− }
2000− },
2001− "node_modules/uri-js": {
2002− "version": "4.4.1",
2003− "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2004− "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2005− "dev": true,
2006− "dependencies": {
2007− "punycode": "^2.1.0"
2008− }
2009− },
2010− "node_modules/util-deprecate": {
2011− "version": "1.0.2",
2012− "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2013− "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
2014− "dev": true
2015− },
2016− "node_modules/utils-merge": {
2017− "version": "1.0.1",
2018− "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2019− "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
2020− "engines": {
2021− "node": ">= 0.4.0"
2022− }
2023− },
2024− "node_modules/uuid": {
2025− "version": "7.0.3",
2026− "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
2027− "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
2028− "bin": {
2029− "uuid": "dist/bin/uuid"
2030− }
2031− },
2032− "node_modules/vary": {
2033− "version": "1.1.2",
2034− "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2035− "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
2036− "engines": {
2037− "node": ">= 0.8"
2038− }
2039− },
2040− "node_modules/verror": {
2041− "version": "1.10.0",
2042− "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
2043− "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
2044− "dev": true,
2045− "engines": [
2046− "node >=0.6.0"
2047− ],
2048− "dependencies": {
2049− "assert-plus": "^1.0.0",
2050− "core-util-is": "1.0.2",
2051− "extsprintf": "^1.2.0"
2052− }
2053− },
2054− "node_modules/which": {
2055− "version": "1.3.1",
2056− "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2057− "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2058− "dev": true,
2059− "dependencies": {
2060− "isexe": "^2.0.0"
2061− },
2062− "bin": {
2063− "which": "bin/which"
2064− }
2065− },
2066− "node_modules/wrap-ansi": {
2067− "version": "5.1.0",
2068− "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
2069− "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
2070− "dev": true,
2071− "dependencies": {
2072− "ansi-styles": "^3.2.0",
2073− "string-width": "^3.0.0",
2074− "strip-ansi": "^5.0.0"
2075− },
2076− "engines": {
2077− "node": ">=6"
2078− }
2079− },
2080− "node_modules/wrappy": {
2081− "version": "1.0.2",
2082− "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2083− "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2084− "dev": true
2085− },
2086− "node_modules/xtend": {
2087− "version": "4.0.2",
2088− "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
2089− "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
2090− "dev": true,
2091− "engines": {
2092− "node": ">=0.4"
2093− }
2094− },
2095− "node_modules/y18n": {
2096− "version": "4.0.1",
2097− "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
2098− "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
2099− "dev": true
2100− },
2101− "node_modules/yallist": {
2102− "version": "3.1.1",
2103− "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
2104− "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
2105− "dev": true
2106− },
2107− "node_modules/zen-observable": {
2108− "version": "0.8.15",
2109− "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
2110− "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==",
2111− "dev": true
2112− }
2113− },
2114− "dependencies": {
2115− "accepts": {
2116− "version": "1.3.7",
2117− "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
2118− "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
2119− "requires": {
2120− "mime-types": "~2.1.24",
2121− "negotiator": "0.6.2"
2122− }
2123− },
2124− "ajv": {
2125− "version": "6.12.6",
2126− "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
2127− "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
2128− "dev": true,
2129− "requires": {
2130− "fast-deep-equal": "^3.1.1",
2131− "fast-json-stable-stringify": "^2.0.0",
2132− "json-schema-traverse": "^0.4.1",
2133− "uri-js": "^4.2.2"
2134− }
2135− },
2136− "ansi-escapes": {
2137− "version": "3.2.0",
2138− "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
2139− "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
2140− "dev": true
2141− },
2142− "ansi-regex": {
2143− "version": "4.1.0",
2144− "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
2145− "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
2146− "dev": true
2147− },
2148− "ansi-styles": {
2149− "version": "3.2.1",
2150− "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2151− "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2152− "dev": true,
2153− "requires": {
2154− "color-convert": "^1.9.0"
2155− }
2156− },
2157− "aproba": {
2158− "version": "1.2.0",
2159− "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
2160− "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
2161− "dev": true
2162− },
2163− "arch": {
2164− "version": "2.2.0",
2165− "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
2166− "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
2167− "dev": true
2168− },
2169− "array-flatten": {
2170− "version": "1.1.1",
2171− "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
2172− "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
2173− },
2174− "asn1": {
2175− "version": "0.2.4",
2176− "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
2177− "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
2178− "dev": true,
2179− "requires": {
2180− "safer-buffer": "~2.1.0"
2181− }
2182− },
2183− "assert-plus": {
2184− "version": "1.0.0",
2185− "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
2186− "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
2187− "dev": true
2188− },
2189− "asynckit": {
2190− "version": "0.4.0",
2191− "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
2192− "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
2193− "dev": true
2194− },
2195− "at-least-node": {
2196− "version": "1.0.0",
2197− "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
2198− "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
2199− },
2200− "aws-sign2": {
2201− "version": "0.7.0",
2202− "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
2203− "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
2204− "dev": true
2205− },
2206− "aws4": {
2207− "version": "1.11.0",
2208− "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
2209− "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
2210− "dev": true
2211− },
2212− "balanced-match": {
2213− "version": "1.0.0",
2214− "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
2215− "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
2216− "dev": true
2217− },
2218− "bcrypt-pbkdf": {
2219− "version": "1.0.2",
2220− "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
2221− "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
2222− "dev": true,
2223− "requires": {
2224− "tweetnacl": "^0.14.3"
2225− }
2226− },
2227− "bluebird": {
2228− "version": "3.7.2",
2229− "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
2230− "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
2231− "dev": true
2232− },
2233− "body-parser": {
2234− "version": "1.19.0",
2235− "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
2236− "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
2237− "requires": {
2238− "bytes": "3.1.0",
2239− "content-type": "~1.0.4",
2240− "debug": "2.6.9",
2241− "depd": "~1.1.2",
2242− "http-errors": "1.7.2",
2243− "iconv-lite": "0.4.24",
2244− "on-finished": "~2.3.0",
2245− "qs": "6.7.0",
2246− "raw-body": "2.4.0",
2247− "type-is": "~1.6.17"
2248− }
2249− },
2250− "brace-expansion": {
2251− "version": "1.1.11",
2252− "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
2253− "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
2254− "dev": true,
2255− "requires": {
2256− "balanced-match": "^1.0.0",
2257− "concat-map": "0.0.1"
2258− }
2259− },
2260− "buffer-from": {
2261− "version": "1.1.1",
2262− "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
2263− "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
2264− "dev": true
2265− },
2266− "byline": {
2267− "version": "5.0.0",
2268− "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
2269− "integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=",
2270− "dev": true
2271− },
2272− "bytes": {
2273− "version": "3.1.0",
2274− "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
2275− "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
2276− },
2277− "cacache": {
2278− "version": "11.3.3",
2279− "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz",
2280− "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==",
2281− "dev": true,
2282− "requires": {
2283− "bluebird": "^3.5.5",
2284− "chownr": "^1.1.1",
2285− "figgy-pudding": "^3.5.1",
2286− "glob": "^7.1.4",
2287− "graceful-fs": "^4.1.15",
2288− "lru-cache": "^5.1.1",
2289− "mississippi": "^3.0.0",
2290− "mkdirp": "^0.5.1",
2291− "move-concurrently": "^1.0.1",
2292− "promise-inflight": "^1.0.1",
2293− "rimraf": "^2.6.3",
2294− "ssri": "^6.0.1",
2295− "unique-filename": "^1.1.1",
2296− "y18n": "^4.0.0"
2297− }
2298− },
2299− "caseless": {
2300− "version": "0.12.0",
2301− "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
2302− "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
2303− "dev": true
2304− },
2305− "chalk": {
2306− "version": "2.4.2",
2307− "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
2308− "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
2309− "dev": true,
2310− "requires": {
2311− "ansi-styles": "^3.2.1",
2312− "escape-string-regexp": "^1.0.5",
2313− "supports-color": "^5.3.0"
2314− }
2315− },
2316− "chownr": {
2317− "version": "1.1.4",
2318− "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
2319− "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
2320− "dev": true
2321− },
2322− "cli-cursor": {
2323− "version": "2.1.0",
2324− "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
2325− "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
2326− "dev": true,
2327− "requires": {
2328− "restore-cursor": "^2.0.0"
2329− }
2330− },
2331− "color-convert": {
2332− "version": "1.9.3",
2333− "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2334− "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2335− "dev": true,
2336− "requires": {
2337− "color-name": "1.1.3"
2338− }
2339− },
2340− "color-name": {
2341− "version": "1.1.3",
2342− "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
2343− "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
2344− "dev": true
2345− },
2346− "combined-stream": {
2347− "version": "1.0.8",
2348− "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
2349− "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
2350− "dev": true,
2351− "requires": {
2352− "delayed-stream": "~1.0.0"
2353− }
2354− },
2355− "comment-json": {
2356− "version": "2.4.2",
2357− "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-2.4.2.tgz",
2358− "integrity": "sha512-T+iXox779qsqneMYx/x5BZyz4xjCeQRmuNVzz8tko7qZUs3MlzpA3RAs+O1XsgcKToNBMIvfVzafGOeiU7RggA==",
2359− "requires": {
2360− "core-util-is": "^1.0.2",
2361− "esprima": "^4.0.1",
2362− "has-own-prop": "^2.0.0",
2363− "repeat-string": "^1.6.1"
2364− }
2365− },
2366− "concat-map": {
2367− "version": "0.0.1",
2368− "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
2369− "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
2370− "dev": true
2371− },
2372− "concat-stream": {
2373− "version": "1.6.2",
2374− "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
2375− "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
2376− "dev": true,
2377− "requires": {
2378− "buffer-from": "^1.0.0",
2379− "inherits": "^2.0.3",
2380− "readable-stream": "^2.2.2",
2381− "typedarray": "^0.0.6"
2382− }
2383− },
2384− "content-disposition": {
2385− "version": "0.5.3",
2386− "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
2387− "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
2388− "requires": {
2389− "safe-buffer": "5.1.2"
2390− }
2391− },
2392− "content-type": {
2393− "version": "1.0.4",
2394− "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
2395− "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
2396− },
2397− "cookie": {
2398− "version": "0.4.0",
2399− "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
2400− "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
2401− },
2402− "cookie-signature": {
2403− "version": "1.0.6",
2404− "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
2405− "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
2406− },
2407− "copy-concurrently": {
2408− "version": "1.0.5",
2409− "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
2410− "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
2411− "dev": true,
2412− "requires": {
2413− "aproba": "^1.1.1",
2414− "fs-write-stream-atomic": "^1.0.8",
2415− "iferr": "^0.1.5",
2416− "mkdirp": "^0.5.1",
2417− "rimraf": "^2.5.4",
2418− "run-queue": "^1.0.0"
2419− }
2420− },
2421− "core-util-is": {
2422− "version": "1.0.2",
2423− "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
2424− "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
2425− },
2426− "cross-spawn": {
2427− "version": "7.0.3",
2428− "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
2429− "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
2430− "dev": true,
2431− "requires": {
2432− "path-key": "^3.1.0",
2433− "shebang-command": "^2.0.0",
2434− "which": "^2.0.1"
2435− },
2436− "dependencies": {
2437− "which": {
2438− "version": "2.0.2",
2439− "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2440− "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2441− "dev": true,
2442− "requires": {
2443− "isexe": "^2.0.0"
2444− }
2445− }
2446− }
2447− },
2448− "cyclist": {
2449− "version": "1.0.1",
2450− "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
2451− "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
2452− "dev": true
2453− },
2454− "dashdash": {
2455− "version": "1.14.1",
2456− "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
2457− "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
2458− "dev": true,
2459− "requires": {
2460− "assert-plus": "^1.0.0"
2461− }
2462− },
2463− "debug": {
2464− "version": "2.6.9",
2465− "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2466− "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2467− "requires": {
2468− "ms": "2.0.0"
2469− }
2470− },
2471− "delayed-stream": {
2472− "version": "1.0.0",
2473− "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
2474− "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
2475− "dev": true
2476− },
2477− "depd": {
2478− "version": "1.1.2",
2479− "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
2480− "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
2481− },
2482− "destroy": {
2483− "version": "1.0.4",
2484− "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
2485− "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
2486− },
2487− "duplexify": {
2488− "version": "3.7.1",
2489− "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
2490− "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
2491− "dev": true,
2492− "requires": {
2493− "end-of-stream": "^1.0.0",
2494− "inherits": "^2.0.1",
2495− "readable-stream": "^2.0.0",
2496− "stream-shift": "^1.0.0"
2497− }
2498− },
2499− "ecc-jsbn": {
2500− "version": "0.1.2",
2501− "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
2502− "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
2503− "dev": true,
2504− "requires": {
2505− "jsbn": "~0.1.0",
2506− "safer-buffer": "^2.1.0"
2507− }
2508− },
2509− "ee-first": {
2510− "version": "1.1.1",
2511− "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
2512− "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
2513− },
2514− "emoji-regex": {
2515− "version": "7.0.3",
2516− "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
2517− "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
2518− "dev": true
2519− },
2520− "encodeurl": {
2521− "version": "1.0.2",
2522− "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
2523− "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
2524− },
2525− "end-of-stream": {
2526− "version": "1.4.4",
2527− "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
2528− "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
2529− "dev": true,
2530− "requires": {
2531− "once": "^1.4.0"
2532− }
2533− },
2534− "env-paths": {
2535− "version": "2.2.1",
2536− "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
2537− "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
2538− "dev": true
2539− },
2540− "escape-html": {
2541− "version": "1.0.3",
2542− "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
2543− "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
2544− },
2545− "escape-string-regexp": {
2546− "version": "1.0.5",
2547− "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2548− "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
2549− "dev": true
2550− },
2551− "esprima": {
2552− "version": "4.0.1",
2553− "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
2554− "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
2555− },
2556− "etag": {
2557− "version": "1.8.1",
2558− "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
2559− "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
2560− },
2561− "execa": {
2562− "version": "2.1.0",
2563− "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz",
2564− "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==",
2565− "dev": true,
2566− "requires": {
2567− "cross-spawn": "^7.0.0",
2568− "get-stream": "^5.0.0",
2569− "is-stream": "^2.0.0",
2570− "merge-stream": "^2.0.0",
2571− "npm-run-path": "^3.0.0",
2572− "onetime": "^5.1.0",
2573− "p-finally": "^2.0.0",
2574− "signal-exit": "^3.0.2",
2575− "strip-final-newline": "^2.0.0"
2576− }
2577− },
2578− "express": {
2579− "version": "4.17.1",
2580− "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
2581− "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
2582− "requires": {
2583− "accepts": "~1.3.7",
2584− "array-flatten": "1.1.1",
2585− "body-parser": "1.19.0",
2586− "content-disposition": "0.5.3",
2587− "content-type": "~1.0.4",
2588− "cookie": "0.4.0",
2589− "cookie-signature": "1.0.6",
2590− "debug": "2.6.9",
2591− "depd": "~1.1.2",
2592− "encodeurl": "~1.0.2",
2593− "escape-html": "~1.0.3",
2594− "etag": "~1.8.1",
2595− "finalhandler": "~1.1.2",
2596− "fresh": "0.5.2",
2597− "merge-descriptors": "1.0.1",
2598− "methods": "~1.1.2",
2599− "on-finished": "~2.3.0",
2600− "parseurl": "~1.3.3",
2601− "path-to-regexp": "0.1.7",
2602− "proxy-addr": "~2.0.5",
2603− "qs": "6.7.0",
2604− "range-parser": "~1.2.1",
2605− "safe-buffer": "5.1.2",
2606− "send": "0.17.1",
2607− "serve-static": "1.14.1",
2608− "setprototypeof": "1.1.1",
2609− "statuses": "~1.5.0",
2610− "type-is": "~1.6.18",
2611− "utils-merge": "1.0.1",
2612− "vary": "~1.1.2"
2613− }
2614− },
2615− "extend": {
2616− "version": "3.0.2",
2617− "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
2618− "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
2619− "dev": true
2620− },
2621− "extsprintf": {
2622− "version": "1.3.0",
2623− "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
2624− "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
2625− "dev": true
2626− },
2627− "fast-deep-equal": {
2628− "version": "3.1.3",
2629− "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
2630− "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
2631− "dev": true
2632− },
2633− "fast-json-stable-stringify": {
2634− "version": "2.1.0",
2635− "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
2636− "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
2637− "dev": true
2638− },
2639− "figgy-pudding": {
2640− "version": "3.5.2",
2641− "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
2642− "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
2643− "dev": true
2644− },
2645− "filesize": {
2646− "version": "4.2.1",
2647− "resolved": "https://registry.npmjs.org/filesize/-/filesize-4.2.1.tgz",
2648− "integrity": "sha512-bP82Hi8VRZX/TUBKfE24iiUGsB/sfm2WUrwTQyAzQrhO3V9IhcBBNBXMyzLY5orACxRyYJ3d2HeRVX+eFv4lmA==",
2649− "dev": true
2650− },
2651− "finalhandler": {
2652− "version": "1.1.2",
2653− "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
2654− "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
2655− "requires": {
2656− "debug": "2.6.9",
2657− "encodeurl": "~1.0.2",
2658− "escape-html": "~1.0.3",
2659− "on-finished": "~2.3.0",
2660− "parseurl": "~1.3.3",
2661− "statuses": "~1.5.0",
2662− "unpipe": "~1.0.0"
2663− }
2664− },
2665− "flush-write-stream": {
2666− "version": "1.1.1",
2667− "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
2668− "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
2669− "dev": true,
2670− "requires": {
2671− "inherits": "^2.0.3",
2672− "readable-stream": "^2.3.6"
2673− }
2674− },
2675− "forever-agent": {
2676− "version": "0.6.1",
2677− "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
2678− "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
2679− "dev": true
2680− },
2681− "form-data": {
2682− "version": "2.3.3",
2683− "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
2684− "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
2685− "dev": true,
2686− "requires": {
2687− "asynckit": "^0.4.0",
2688− "combined-stream": "^1.0.6",
2689− "mime-types": "^2.1.12"
2690− }
2691− },
2692− "forwarded": {
2693− "version": "0.1.2",
2694− "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
2695− "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
2696− },
2697− "fresh": {
2698− "version": "0.5.2",
2699− "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
2700− "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
2701− },
2702− "from2": {
2703− "version": "2.3.0",
2704− "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
2705− "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
2706− "dev": true,
2707− "requires": {
2708− "inherits": "^2.0.1",
2709− "readable-stream": "^2.0.0"
2710− }
2711− },
2712− "fs-extra": {
2713− "version": "9.1.0",
2714− "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
2715− "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
2716− "requires": {
2717− "at-least-node": "^1.0.0",
2718− "graceful-fs": "^4.2.0",
2719− "jsonfile": "^6.0.1",
2720− "universalify": "^2.0.0"
2721− }
2722− },
2723− "fs-minipass": {
2724− "version": "1.2.7",
2725− "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
2726− "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
2727− "dev": true,
2728− "requires": {
2729− "minipass": "^2.6.0"
2730− }
2731− },
2732− "fs-write-stream-atomic": {
2733− "version": "1.0.10",
2734− "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
2735− "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
2736− "dev": true,
2737− "requires": {
2738− "graceful-fs": "^4.1.2",
2739− "iferr": "^0.1.5",
2740− "imurmurhash": "^0.1.4",
2741− "readable-stream": "1 || 2"
2742− }
2743− },
2744− "fs.realpath": {
2745− "version": "1.0.0",
2746− "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2747− "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2748− "dev": true
2749− },
2750− "get-stream": {
2751− "version": "5.2.0",
2752− "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
2753− "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
2754− "dev": true,
2755− "requires": {
2756− "pump": "^3.0.0"
2757− }
2758− },
2759− "getpass": {
2760− "version": "0.1.7",
2761− "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
2762− "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
2763− "dev": true,
2764− "requires": {
2765− "assert-plus": "^1.0.0"
2766− }
2767− },
2768− "glob": {
2769− "version": "7.1.6",
2770− "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
2771− "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
2772− "dev": true,
2773− "requires": {
2774− "fs.realpath": "^1.0.0",
2775− "inflight": "^1.0.4",
2776− "inherits": "2",
2777− "minimatch": "^3.0.4",
2778− "once": "^1.3.0",
2779− "path-is-absolute": "^1.0.0"
2780− }
2781− },
2782− "graceful-fs": {
2783− "version": "4.2.6",
2784− "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
2785− "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
2786− },
2787− "har-schema": {
2788− "version": "2.0.0",
2789− "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
2790− "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
2791− "dev": true
2792− },
2793− "har-validator": {
2794− "version": "5.1.5",
2795− "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
2796− "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
2797− "dev": true,
2798− "requires": {
2799− "ajv": "^6.12.3",
2800− "har-schema": "^2.0.0"
2801− }
2802− },
2803− "has-flag": {
2804− "version": "3.0.0",
2805− "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2806− "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
2807− "dev": true
2808− },
2809− "has-own-prop": {
2810− "version": "2.0.0",
2811− "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz",
2812− "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ=="
2813− },
2814− "http-errors": {
2815− "version": "1.7.2",
2816− "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
2817− "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
2818− "requires": {
2819− "depd": "~1.1.2",
2820− "inherits": "2.0.3",
2821− "setprototypeof": "1.1.1",
2822− "statuses": ">= 1.5.0 < 2",
2823− "toidentifier": "1.0.0"
2824− }
2825− },
2826− "http-signature": {
2827− "version": "1.2.0",
2828− "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
2829− "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
2830− "dev": true,
2831− "requires": {
2832− "assert-plus": "^1.0.0",
2833− "jsprim": "^1.2.2",
2834− "sshpk": "^1.7.0"
2835− }
2836− },
2837− "iconv-lite": {
2838− "version": "0.4.24",
2839− "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
2840− "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
2841− "requires": {
2842− "safer-buffer": ">= 2.1.2 < 3"
2843− }
2844− },
2845− "iferr": {
2846− "version": "0.1.5",
2847− "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
2848− "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
2849− "dev": true
2850− },
2851− "imurmurhash": {
2852− "version": "0.1.4",
2853− "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2854− "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
2855− "dev": true
2856− },
2857− "inflight": {
2858− "version": "1.0.6",
2859− "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2860− "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2861− "dev": true,
2862− "requires": {
2863− "once": "^1.3.0",
2864− "wrappy": "1"
2865− }
2866− },
2867− "inherits": {
2868− "version": "2.0.3",
2869− "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
2870− "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
2871− },
2872− "ipaddr.js": {
2873− "version": "1.9.1",
2874− "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
2875− "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
2876− },
2877− "is-fullwidth-code-point": {
2878− "version": "2.0.0",
2879− "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2880− "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2881− "dev": true
2882− },
2883− "is-plain-obj": {
2884− "version": "2.1.0",
2885− "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
2886− "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
2887− "dev": true
2888− },
2889− "is-stream": {
2890− "version": "2.0.0",
2891− "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
2892− "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
2893− "dev": true
2894− },
2895− "is-typedarray": {
2896− "version": "1.0.0",
2897− "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2898− "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
2899− "dev": true
2900− },
2901− "isarray": {
2902− "version": "1.0.0",
2903− "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
2904− "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
2905− "dev": true
2906− },
2907− "isexe": {
2908− "version": "2.0.0",
2909− "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2910− "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2911− "dev": true
2912− },
2913− "isstream": {
2914− "version": "0.1.2",
2915− "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
2916− "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
2917− "dev": true
2918− },
2919− "jsbn": {
2920− "version": "0.1.1",
2921− "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
2922− "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
2923− "dev": true
2924− },
2925− "json-parser": {
2926− "version": "3.1.2",
2927− "resolved": "https://registry.npmjs.org/json-parser/-/json-parser-3.1.2.tgz",
2928− "integrity": "sha512-FCy1zIx3KUtOcNlFw9/ZGfDFBAGAwE6qYeaYwXCYUXhMO4TzizoQaQN1/LpZn088O7cz8eLVCjd/9aeW9HN32w==",
2929− "requires": {
2930− "comment-json": "^2.1.0"
2931− }
2932− },
2933− "json-schema": {
2934− "version": "0.2.3",
2935− "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
2936− "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
2937− "dev": true
2938− },
2939− "json-schema-traverse": {
2940− "version": "0.4.1",
2941− "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2942− "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2943− "dev": true
2944− },
2945− "json-stringify-safe": {
2946− "version": "5.0.1",
2947− "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
2948− "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
2949− "dev": true
2950− },
2951− "jsonfile": {
2952− "version": "6.1.0",
2953− "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
2954− "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
2955− "requires": {
2956− "graceful-fs": "^4.1.6",
2957− "universalify": "^2.0.0"
2958− }
2959− },
2960− "jsprim": {
2961− "version": "1.4.1",
2962− "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
2963− "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
2964− "dev": true,
2965− "requires": {
2966− "assert-plus": "1.0.0",
2967− "extsprintf": "1.3.0",
2968− "json-schema": "0.2.3",
2969− "verror": "1.10.0"
2970− }
2971− },
2972− "log-symbols": {
2973− "version": "3.0.0",
2974− "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
2975− "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
2976− "dev": true,
2977− "requires": {
2978− "chalk": "^2.4.2"
2979− }
2980− },
2981− "log-update": {
2982− "version": "3.4.0",
2983− "resolved": "https://registry.npmjs.org/log-update/-/log-update-3.4.0.tgz",
2984− "integrity": "sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==",
2985− "dev": true,
2986− "requires": {
2987− "ansi-escapes": "^3.2.0",
2988− "cli-cursor": "^2.1.0",
2989− "wrap-ansi": "^5.0.0"
2990− }
2991− },
2992− "lru-cache": {
2993− "version": "5.1.1",
2994− "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
2995− "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
2996− "dev": true,
2997− "requires": {
2998− "yallist": "^3.0.2"
2999− }
3000− },
3001− "media-typer": {
3002− "version": "0.3.0",
3003− "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
3004− "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
3005− },
3006− "merge-descriptors": {
3007− "version": "1.0.1",
3008− "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
3009− "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
3010− },
3011− "merge-stream": {
3012− "version": "2.0.0",
3013− "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
3014− "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
3015− "dev": true
3016− },
3017− "methods": {
3018− "version": "1.1.2",
3019− "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
3020− "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
3021− },
3022− "mime": {
3023− "version": "1.6.0",
3024− "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
3025− "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
3026− },
3027− "mime-db": {
3028− "version": "1.46.0",
3029− "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz",
3030− "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ=="
3031− },
3032− "mime-types": {
3033− "version": "2.1.29",
3034− "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz",
3035− "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==",
3036− "requires": {
3037− "mime-db": "1.46.0"
3038− }
3039− },
3040− "mimic-fn": {
3041− "version": "2.1.0",
3042− "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
3043− "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
3044− "dev": true
3045− },
3046− "minimatch": {
3047− "version": "3.0.4",
3048− "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
3049− "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
3050− "dev": true,
3051− "requires": {
3052− "brace-expansion": "^1.1.7"
3053− }
3054− },
3055− "minimist": {
3056− "version": "1.2.5",
3057− "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
3058− "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
3059− },
3060− "minipass": {
3061− "version": "2.9.0",
3062− "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
3063− "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
3064− "dev": true,
3065− "requires": {
3066− "safe-buffer": "^5.1.2",
3067− "yallist": "^3.0.0"
3068− }
3069− },
3070− "minizlib": {
3071− "version": "1.3.3",
3072− "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
3073− "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
3074− "dev": true,
3075− "requires": {
3076− "minipass": "^2.9.0"
3077− }
3078− },
3079− "mississippi": {
3080− "version": "3.0.0",
3081− "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
3082− "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
3083− "dev": true,
3084− "requires": {
3085− "concat-stream": "^1.5.0",
3086− "duplexify": "^3.4.2",
3087− "end-of-stream": "^1.1.0",
3088− "flush-write-stream": "^1.0.0",
3089− "from2": "^2.1.0",
3090− "parallel-transform": "^1.1.0",
3091− "pump": "^3.0.0",
3092− "pumpify": "^1.3.3",
3093− "stream-each": "^1.1.0",
3094− "through2": "^2.0.0"
3095− }
3096− },
3097− "mkdirp": {
3098− "version": "0.5.5",
3099− "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
3100− "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
3101− "dev": true,
3102− "requires": {
3103− "minimist": "^1.2.5"
3104− }
3105− },
3106− "move-concurrently": {
3107− "version": "1.0.1",
3108− "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
3109− "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
3110− "dev": true,
3111− "requires": {
3112− "aproba": "^1.1.1",
3113− "copy-concurrently": "^1.0.0",
3114− "fs-write-stream-atomic": "^1.0.8",
3115− "mkdirp": "^0.5.1",
3116− "rimraf": "^2.5.4",
3117− "run-queue": "^1.0.3"
3118− }
3119− },
3120− "ms": {
3121− "version": "2.0.0",
3122− "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3123− "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
3124− },
3125− "negotiator": {
3126− "version": "0.6.2",
3127− "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
3128− "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
3129− },
3130− "npm-run-path": {
3131− "version": "3.1.0",
3132− "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz",
3133− "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==",
3134− "dev": true,
3135− "requires": {
3136− "path-key": "^3.0.0"
3137− }
3138− },
3139− "oauth-sign": {
3140− "version": "0.9.0",
3141− "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
3142− "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
3143− "dev": true
3144− },
3145− "on-finished": {
3146− "version": "2.3.0",
3147− "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
3148− "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
3149− "requires": {
3150− "ee-first": "1.1.1"
3151− }
3152− },
3153− "once": {
3154− "version": "1.4.0",
3155− "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3156− "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
3157− "dev": true,
3158− "requires": {
3159− "wrappy": "1"
3160− }
3161− },
3162− "onetime": {
3163− "version": "5.1.2",
3164− "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
3165− "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
3166− "dev": true,
3167− "requires": {
3168− "mimic-fn": "^2.1.0"
3169− }
3170− },
3171− "p-finally": {
3172− "version": "2.0.1",
3173− "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
3174− "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
3175− "dev": true
3176− },
3177− "parallel-transform": {
3178− "version": "1.2.0",
3179− "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
3180− "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
3181− "dev": true,
3182− "requires": {
3183− "cyclist": "^1.0.1",
3184− "inherits": "^2.0.3",
3185− "readable-stream": "^2.1.5"
3186− }
3187− },
3188− "parseurl": {
3189− "version": "1.3.3",
3190− "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
3191− "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
3192− },
3193− "path-is-absolute": {
3194− "version": "1.0.1",
3195− "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
3196− "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
3197− "dev": true
3198− },
3199− "path-key": {
3200− "version": "3.1.1",
3201− "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3202− "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
3203− "dev": true
3204− },
3205− "path-to-regexp": {
3206− "version": "0.1.7",
3207− "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
3208− "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
3209− },
3210− "performance-now": {
3211− "version": "2.1.0",
3212− "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
3213− "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
3214− "dev": true
3215− },
3216− "process-nextick-args": {
3217− "version": "2.0.1",
3218− "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
3219− "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
3220− "dev": true
3221− },
3222− "promise-inflight": {
3223− "version": "1.0.1",
3224− "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
3225− "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
3226− "dev": true
3227− },
3228− "proxy-addr": {
3229− "version": "2.0.6",
3230− "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
3231− "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
3232− "requires": {
3233− "forwarded": "~0.1.2",
3234− "ipaddr.js": "1.9.1"
3235− }
3236− },
3237− "psl": {
3238− "version": "1.8.0",
3239− "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
3240− "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
3241− "dev": true
3242− },
3243− "pump": {
3244− "version": "3.0.0",
3245− "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
3246− "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
3247− "dev": true,
3248− "requires": {
3249− "end-of-stream": "^1.1.0",
3250− "once": "^1.3.1"
3251− }
3252− },
3253− "pumpify": {
3254− "version": "1.5.1",
3255− "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
3256− "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
3257− "dev": true,
3258− "requires": {
3259− "duplexify": "^3.6.0",
3260− "inherits": "^2.0.3",
3261− "pump": "^2.0.0"
3262− },
3263− "dependencies": {
3264− "pump": {
3265− "version": "2.0.1",
3266− "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
3267− "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
3268− "dev": true,
3269− "requires": {
3270− "end-of-stream": "^1.1.0",
3271− "once": "^1.3.1"
3272− }
3273− }
3274− }
3275− },
3276− "punycode": {
3277− "version": "2.1.1",
3278− "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
3279− "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
3280− "dev": true
3281− },
3282− "purescript": {
3283− "version": "0.14.0",
3284− "resolved": "https://registry.npmjs.org/purescript/-/purescript-0.14.0.tgz",
3285− "integrity": "sha512-iTA1k8mwxHqrJp/K296g6omVfve5RCjnB5D6Up93PVtZdP66mCIqlOYC4hrLBHg2hgkk27xePDt5NUXKvH4ApQ==",
3286− "dev": true,
3287− "requires": {
3288− "purescript-installer": "^0.2.0"
3289− }
3290− },
3291− "purescript-installer": {
3292− "version": "0.2.5",
3293− "resolved": "https://registry.npmjs.org/purescript-installer/-/purescript-installer-0.2.5.tgz",
3294− "integrity": "sha512-fQAWWP5a7scuchXecjpU4r4KEgSPuS6bBnaP01k9f71qqD28HaJ2m4PXHFkhkR4oATAxTPIGCtmTwtVoiBOHog==",
3295− "dev": true,
3296− "requires": {
3297− "arch": "^2.1.1",
3298− "byline": "^5.0.0",
3299− "cacache": "^11.3.2",
3300− "chalk": "^2.4.2",
3301− "env-paths": "^2.2.0",
3302− "execa": "^2.0.3",
3303− "filesize": "^4.1.2",
3304− "is-plain-obj": "^2.0.0",
3305− "log-symbols": "^3.0.0",
3306− "log-update": "^3.2.0",
3307− "minimist": "^1.2.0",
3308− "mkdirp": "^0.5.1",
3309− "ms": "^2.1.2",
3310− "once": "^1.4.0",
3311− "pump": "^3.0.0",
3312− "request": "^2.88.0",
3313− "rimraf": "^2.6.3",
3314− "tar": "^4.4.6",
3315− "which": "^1.3.1",
3316− "zen-observable": "^0.8.14"
3317− },
3318− "dependencies": {
3319− "ms": {
3320− "version": "2.1.3",
3321− "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
3322− "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
3323− "dev": true
3324− }
3325− }
3326− },
3327− "qs": {
3328− "version": "6.7.0",
3329− "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
3330− "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
3331− },
3332− "range-parser": {
3333− "version": "1.2.1",
3334− "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
3335− "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
3336− },
3337− "raw-body": {
3338− "version": "2.4.0",
3339− "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
3340− "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
3341− "requires": {
3342− "bytes": "3.1.0",
3343− "http-errors": "1.7.2",
3344− "iconv-lite": "0.4.24",
3345− "unpipe": "1.0.0"
3346− }
3347− },
3348− "readable-stream": {
3349− "version": "2.3.7",
3350− "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
3351− "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
3352− "dev": true,
3353− "requires": {
3354− "core-util-is": "~1.0.0",
3355− "inherits": "~2.0.3",
3356− "isarray": "~1.0.0",
3357− "process-nextick-args": "~2.0.0",
3358− "safe-buffer": "~5.1.1",
3359− "string_decoder": "~1.1.1",
3360− "util-deprecate": "~1.0.1"
3361− }
3362− },
3363− "repeat-string": {
3364− "version": "1.6.1",
3365− "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
3366− "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
3367− },
3368− "request": {
3369− "version": "2.88.2",
3370− "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
3371− "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
3372− "dev": true,
3373− "requires": {
3374− "aws-sign2": "~0.7.0",
3375− "aws4": "^1.8.0",
3376− "caseless": "~0.12.0",
3377− "combined-stream": "~1.0.6",
3378− "extend": "~3.0.2",
3379− "forever-agent": "~0.6.1",
3380− "form-data": "~2.3.2",
3381− "har-validator": "~5.1.3",
3382− "http-signature": "~1.2.0",
3383− "is-typedarray": "~1.0.0",
3384− "isstream": "~0.1.2",
3385− "json-stringify-safe": "~5.0.1",
3386− "mime-types": "~2.1.19",
3387− "oauth-sign": "~0.9.0",
3388− "performance-now": "^2.1.0",
3389− "qs": "~6.5.2",
3390− "safe-buffer": "^5.1.2",
3391− "tough-cookie": "~2.5.0",
3392− "tunnel-agent": "^0.6.0",
3393− "uuid": "^3.3.2"
3394− },
3395− "dependencies": {
3396− "qs": {
3397− "version": "6.5.2",
3398− "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
3399− "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
3400− "dev": true
3401− },
3402− "uuid": {
3403− "version": "3.4.0",
3404− "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
3405− "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
3406− "dev": true
3407− }
3408− }
3409− },
3410− "restore-cursor": {
3411− "version": "2.0.0",
3412− "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
3413− "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
3414− "dev": true,
3415− "requires": {
3416− "onetime": "^2.0.0",
3417− "signal-exit": "^3.0.2"
3418− },
3419− "dependencies": {
3420− "mimic-fn": {
3421− "version": "1.2.0",
3422− "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
3423− "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
3424− "dev": true
3425− },
3426− "onetime": {
3427− "version": "2.0.1",
3428− "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
3429− "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
3430− "dev": true,
3431− "requires": {
3432− "mimic-fn": "^1.0.0"
3433− }
3434− }
3435− }
3436− },
3437− "rimraf": {
3438− "version": "2.7.1",
3439− "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
3440− "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
3441− "dev": true,
3442− "requires": {
3443− "glob": "^7.1.3"
3444− }
3445− },
3446− "run-queue": {
3447− "version": "1.0.3",
3448− "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
3449− "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
3450− "dev": true,
3451− "requires": {
3452− "aproba": "^1.1.1"
3453− }
3454− },
3455− "safe-buffer": {
3456− "version": "5.1.2",
3457− "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3458− "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
3459− },
3460− "safer-buffer": {
3461− "version": "2.1.2",
3462− "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3463− "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
3464− },
3465− "send": {
3466− "version": "0.17.1",
3467− "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
3468− "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
3469− "requires": {
3470− "debug": "2.6.9",
3471− "depd": "~1.1.2",
3472− "destroy": "~1.0.4",
3473− "encodeurl": "~1.0.2",
3474− "escape-html": "~1.0.3",
3475− "etag": "~1.8.1",
3476− "fresh": "0.5.2",
3477− "http-errors": "~1.7.2",
3478− "mime": "1.6.0",
3479− "ms": "2.1.1",
3480− "on-finished": "~2.3.0",
3481− "range-parser": "~1.2.1",
3482− "statuses": "~1.5.0"
3483− },
3484− "dependencies": {
3485− "ms": {
3486− "version": "2.1.1",
3487− "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
3488− "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
3489− }
3490− }
3491− },
3492− "serve-static": {
3493− "version": "1.14.1",
3494− "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
3495− "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
3496− "requires": {
3497− "encodeurl": "~1.0.2",
3498− "escape-html": "~1.0.3",
3499− "parseurl": "~1.3.3",
3500− "send": "0.17.1"
3501− }
3502− },
3503− "setprototypeof": {
3504− "version": "1.1.1",
3505− "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
3506− "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
3507− },
3508− "shebang-command": {
3509− "version": "2.0.0",
3510− "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3511− "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3512− "dev": true,
3513− "requires": {
3514− "shebang-regex": "^3.0.0"
3515− }
3516− },
3517− "shebang-regex": {
3518− "version": "3.0.0",
3519− "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3520− "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3521− "dev": true
3522− },
3523− "signal-exit": {
3524− "version": "3.0.3",
3525− "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
3526− "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
3527− "dev": true
3528− },
3529− "spago": {
3530− "version": "0.19.1",
3531− "resolved": "https://registry.npmjs.org/spago/-/spago-0.19.1.tgz",
3532− "integrity": "sha512-OD/yopJZ9Ub+XsFtayDeLAWLT4kLdMxosJEyyp8W5OkyJVVSbCrvYacsO7iq3lSuHJmmNny/TEZdyb7uSyupng==",
3533− "dev": true,
3534− "requires": {
3535− "request": "^2.88.0",
3536− "tar": "^4.4.8"
3537− }
3538− },
3539− "sshpk": {
3540− "version": "1.16.1",
3541− "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
3542− "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
3543− "dev": true,
3544− "requires": {
3545− "asn1": "~0.2.3",
3546− "assert-plus": "^1.0.0",
3547− "bcrypt-pbkdf": "^1.0.0",
3548− "dashdash": "^1.12.0",
3549− "ecc-jsbn": "~0.1.1",
3550− "getpass": "^0.1.1",
3551− "jsbn": "~0.1.0",
3552− "safer-buffer": "^2.0.2",
3553− "tweetnacl": "~0.14.0"
3554− }
3555− },
3556− "ssri": {
3557− "version": "6.0.1",
3558− "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz",
3559− "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
3560− "dev": true,
3561− "requires": {
3562− "figgy-pudding": "^3.5.1"
3563− }
3564− },
3565− "statuses": {
3566− "version": "1.5.0",
3567− "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
3568− "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
3569− },
3570− "stream-each": {
3571− "version": "1.2.3",
3572− "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
3573− "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
3574− "dev": true,
3575− "requires": {
3576− "end-of-stream": "^1.1.0",
3577− "stream-shift": "^1.0.0"
3578− }
3579− },
3580− "stream-shift": {
3581− "version": "1.0.1",
3582− "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
3583− "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
3584− "dev": true
3585− },
3586− "string_decoder": {
3587− "version": "1.1.1",
3588− "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
3589− "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
3590− "dev": true,
3591− "requires": {
3592− "safe-buffer": "~5.1.0"
3593− }
3594− },
3595− "string-width": {
3596− "version": "3.1.0",
3597− "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
3598− "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
3599− "dev": true,
3600− "requires": {
3601− "emoji-regex": "^7.0.1",
3602− "is-fullwidth-code-point": "^2.0.0",
3603− "strip-ansi": "^5.1.0"
3604− }
3605− },
3606− "strip-ansi": {
3607− "version": "5.2.0",
3608− "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
3609− "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
3610− "dev": true,
3611− "requires": {
3612− "ansi-regex": "^4.1.0"
3613− }
3614− },
3615− "strip-final-newline": {
3616− "version": "2.0.0",
3617− "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
3618− "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
3619− "dev": true
3620− },
3621− "supports-color": {
3622− "version": "5.5.0",
3623− "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3624− "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3625− "dev": true,
3626− "requires": {
3627− "has-flag": "^3.0.0"
3628− }
3629− },
3630− "tar": {
3631− "version": "4.4.13",
3632− "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
3633− "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
3634− "dev": true,
3635− "requires": {
3636− "chownr": "^1.1.1",
3637− "fs-minipass": "^1.2.5",
3638− "minipass": "^2.8.6",
3639− "minizlib": "^1.2.1",
3640− "mkdirp": "^0.5.0",
3641− "safe-buffer": "^5.1.2",
3642− "yallist": "^3.0.3"
3643− }
3644− },
3645− "through2": {
3646− "version": "2.0.5",
3647− "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
3648− "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
3649− "dev": true,
3650− "requires": {
3651− "readable-stream": "~2.3.6",
3652− "xtend": "~4.0.1"
3653− }
3654− },
3655− "toidentifier": {
3656− "version": "1.0.0",
3657− "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
3658− "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
3659− },
3660− "tough-cookie": {
3661− "version": "2.5.0",
3662− "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
3663− "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
3664− "dev": true,
3665− "requires": {
3666− "psl": "^1.1.28",
3667− "punycode": "^2.1.1"
3668− }
3669− },
3670− "tunnel-agent": {
3671− "version": "0.6.0",
3672− "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
3673− "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
3674− "dev": true,
3675− "requires": {
3676− "safe-buffer": "^5.0.1"
3677− }
3678− },
3679− "tweetnacl": {
3680− "version": "0.14.5",
3681− "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
3682− "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
3683− "dev": true
3684− },
3685− "type-is": {
3686− "version": "1.6.18",
3687− "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
3688− "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
3689− "requires": {
3690− "media-typer": "0.3.0",
3691− "mime-types": "~2.1.24"
3692− }
3693− },
3694− "typedarray": {
3695− "version": "0.0.6",
3696− "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
3697− "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
3698− "dev": true
3699− },
3700− "unique-filename": {
3701− "version": "1.1.1",
3702− "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
3703− "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
3704− "dev": true,
3705− "requires": {
3706− "unique-slug": "^2.0.0"
3707− }
3708− },
3709− "unique-slug": {
3710− "version": "2.0.2",
3711− "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
3712− "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
3713− "dev": true,
3714− "requires": {
3715− "imurmurhash": "^0.1.4"
3716− }
3717− },
3718− "universalify": {
3719 "version": "2.0.0",
128 "version": "2.0.0",
3720 "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
129 "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
3721 "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
130 "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
3722 },
131 },
3723− "unpipe": {
3724− "version": "1.0.0",
3725− "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
3726− "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
3727− },
3728− "uri-js": {
3729− "version": "4.4.1",
3730− "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
3731− "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
3732− "dev": true,
3733− "requires": {
3734− "punycode": "^2.1.0"
3735− }
3736− },
3737− "util-deprecate": {
3738− "version": "1.0.2",
3739− "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3740− "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
3741− "dev": true
3742− },
3743− "utils-merge": {
3744− "version": "1.0.1",
3745− "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
3746− "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
3747− },
3748 "uuid": {
132 "uuid": {
3749− "version": "7.0.3",
133+ "version": "8.3.2",
3750− "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
134+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
3751− "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg=="
135+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
3752− },
3753− "vary": {
3754− "version": "1.1.2",
3755− "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
3756− "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
3757− },
3758− "verror": {
3759− "version": "1.10.0",
3760− "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
3761− "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
3762− "dev": true,
3763− "requires": {
3764− "assert-plus": "^1.0.0",
3765− "core-util-is": "1.0.2",
3766− "extsprintf": "^1.2.0"
3767− }
3768− },
3769− "which": {
3770− "version": "1.3.1",
3771− "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
3772− "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
3773− "dev": true,
3774− "requires": {
3775− "isexe": "^2.0.0"
3776− }
3777− },
3778− "wrap-ansi": {
3779− "version": "5.1.0",
3780− "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
3781− "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
3782− "dev": true,
3783− "requires": {
3784− "ansi-styles": "^3.2.0",
3785− "string-width": "^3.0.0",
3786− "strip-ansi": "^5.0.0"
3787− }
3788− },
3789− "wrappy": {
3790− "version": "1.0.2",
3791− "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3792− "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
3793− "dev": true
3794− },
3795− "xtend": {
3796− "version": "4.0.2",
3797− "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
3798− "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
3799− "dev": true
3800− },
3801− "y18n": {
3802− "version": "4.0.1",
3803− "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
3804− "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
3805− "dev": true
3806− },
3807− "yallist": {
3808− "version": "3.1.1",
3809− "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
3810− "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
3811− "dev": true
3812− },
3813− "zen-observable": {
3814− "version": "0.8.15",
3815− "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
3816− "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==",
3817− "dev": true
3818 }
136 }
3819 }
137 }
3820}
138}
server/package.json+4−10
@@ -7,21 +7,15 @@
7 "test": "test"
7 "test": "test"
8 },
8 },
9 "scripts": {
9 "scripts": {
10− "start": "npx spago run",
10+ "start": "spago run",
11− "test": "npx spago test"
11+ "test": "spago test"
12 },
12 },
13 "author": "mark.eibes@gmail.com",
13 "author": "mark.eibes@gmail.com",
14 "license": "ISC",
14 "license": "ISC",
15 "dependencies": {
15 "dependencies": {
16− "body-parser": "^1.19.0",
16+ "big-integer": "^1.6.51",
17− "express": "^4.17.1",
18 "fs-extra": "^9.0.0",
17 "fs-extra": "^9.0.0",
19− "json-parser": "^3.1.2",
20 "minimist": "^1.2.2",
18 "minimist": "^1.2.2",
21− "uuid": "^7.0.2"
19+ "uuid": "^8.3.2"
22− },
23− "devDependencies": {
24− "purescript": "^0.14.0",
25− "spago": "^0.19.1"
26 }
20 }
27}
21}
server/packages.dhall+34−155
@@ -117,164 +117,43 @@ let additions =
117-------------------------------
117-------------------------------
118-}
118-}
119let upstream =
119let upstream =
120− -- https://github.com/purescript/package-sets/releases/download/psc-0.13.6-20200309/packages.dhall sha256:9221987b4e7ea99ccd0efbe056f7bebc872cd92e0058efe5baa181d73359e7b3
121− https://github.com/purescript/package-sets/releases/download/psc-0.14.0-20210317/packages.dhall sha256:e2e744972f9b60188dcf07f41418661b505c9ee2e9f91e57e67daefad3a5ae09
120+ https://github.com/purescript/package-sets/releases/download/psc-0.15.4-20220901/packages.dhall
122−
121+ sha256:f1531b29c21ac437ffe5666c1b6cc76f0a9c29d3c9d107ff047aa2567744994f
123−let overrides =
122+
124− { react-basic-hooks =
125− upstream.react-basic-hooks
123+in upstream
126− // { repo =
124+ with foreign-generic =
127− "https://github.com/i-am-the-slime/purescript-react-basic-hooks.git"
125+ { repo =
128− , version = "e04b106ab2dfda3f9a1407420c434a908ff72b90"
129− }
130− , css =
131− upstream.css
132− // { repo = "https://github.com/i-am-the-slime/purescript-css.git"
126+ "https://github.com/working-group-purescript-es/purescript-foreign-generic.git"
133− , version = "8ea0bab17c268d9c62a09892d7ba231dcbe6308b"
127+ , version = "v0.15.0-updates"
134− }
128+ , dependencies =
135−
129+ [ "effect"
136− , node-net = upstream.node-net
130+ , "exceptions"
137− // { repo = "https://github.com/i-am-the-slime/purescript-node-net.git"
138− , version = "b4efc12a6bc8df695f90e408290b3b82dcd8548b"
139− }
140− }
141−
142−let additions =
143− { react-testing-library =
144− { dependencies =
145− [ "aff-promise"
146− , "console"
147− , "debug"
148− , "effect"
149− , "foreign"
131+ , "foreign"
150− , "foreign-object"
132+ , "foreign-object"
151− , "psci-support"
133+ , "identity"
152− , "react-basic-hooks"
134+ , "ordered-collections"
153− , "remotedata"
135+ , "record"
154− , "run"
155− , "simple-json"
156− , "spec"
157− , "spec-discovery"
158− ]
136+ ]
159− , repo =
160− "https://github.com/i-am-the-slime/purescript-react-testing-library.git"
161− , version = "13a63056506a3ce32572e326130be325931ba7c0"
162− }
137+ }
163− , pseudo-random =
138+ with express =
164− { dependencies =
139+ {dependencies =
165− [ "prelude", "console", "effect", "lcg", "arrays", "st" ]
140+ [ "aff"
166− , repo = "https://github.com/opyapeus/purescript-pseudo-random.git"
141+ , "arrays"
167− , version = "7715e8a2c096c480a093a5e0a6df1ece4df5ed2a"
168− }
169− , oneof =
170− { dependencies =
171− [ "assert"
172− , "console"
173 , "effect"
142 , "effect"
143+ , "either"
144+ , "exceptions"
174 , "foreign"
145 , "foreign"
146+ , "foreign-generic"
175 , "foreign-object"
147 , "foreign-object"
176− , "literal"
148+ , "functions"
177 , "maybe"
149 , "maybe"
178− , "newtype"
150+ , "node-http"
179− , "proxy"
151+ , "prelude"
180− , "psci-support"
152+ , "strings"
181− , "tuples"
153+ , "test-unit"
182− , "unsafe-coerce"
154+ , "transformers"
183− ]
184− , repo = "https://github.com/jvliwanag/purescript-oneof.git"
185− , version = "0325fddf6ee8a181fac2128c9b542c2c01ddd361"
186− }
187− , literal =
188− { dependencies =
189− [ "assert"
190− , "effect"
191− , "console"
192− , "integers"
193− , "numbers"
194− , "partial"
195− , "psci-support"
196 , "unsafe-coerce"
155 , "unsafe-coerce"
197− , "typelevel-prelude"
198 ]
156 ]
199− , repo = "https://github.com/jvliwanag/purescript-literal.git"
157+ , repo = "https://github.com/purescript-express/purescript-express.git"
200− , version = "7b2ae20f77c67b7e419a92fdd0dc7a09b447b18e"
158+ , version = "86ec92f0adaa8b01ef49e01d27d1cb999b4cb4cb"
201− }
202− , justifill =
203− { dependencies = [ "record", "typelevel-prelude" ]
204− , repo = "https://github.com/i-am-the-slime/purescript-justifill.git"
205− , version = "2de06260ae8e37355678198180bbdd06c91457e3"
206− }
207− , matryoshka =
208− { dependencies =
209− [ "prelude", "fixed-points", "free", "transformers", "profunctor" ]
210− , repo = "https://github.com/slamdata/purescript-matryoshka.git"
211− , version = "caaca2d836d52159ba7963333996286a00428394"
212− }
213− , interpolate =
214− { dependencies = [ "prelude" ]
215− , repo = "https://github.com/jordanmartinez/purescript-interpolate.git"
216− , version = "v2.0.1"
217− }
218− , yoga-components = ../components/spago.dhall as Location
219− , foreign-generic = {
220− dependencies =
221− [ "effect"
222− , "foreign"
223− , "foreign-object"
224− , "ordered-collections"
225− , "exceptions"
226− , "record"
227− , "identity"
228− ]
229− , repo =
230− "https://github.com/fsoikin/purescript-foreign-generic.git"
231− , version =
232− "c9ceaa48d4a03ee3db55f1abfb45f830cae329e7"
233− }
234− , uuid = {
235− dependencies =
236− [ "console"
237− , "effect"
238− , "psci-support"
239− , "spec"
240− , "foreign-generic"
241− ]
242− , repo =
243− "https://github.com/spicydonuts/purescript-uuid.git"
244− , version =
245− "7c9b1a1261aadb4db4886b3123683ca29c2663a5"
246− }
247− , express = {
248− dependencies =
249− [ "aff"
250− , "console"
251− , "effect"
252− , "foreign"
253− , "foreign-generic"
254− , "node-http"
255− , "psci-support"
256− , "test-unit"
257− ]
258− , repo =
259− "https://github.com/i-am-the-slime/purescript-express.git"
260− , version =
261− "0.14"
262− }
263− , simple-json = {
264− dependencies =
265− [ "prelude"
266− , "typelevel-prelude"
267− , "record"
268− , "variant"
269− , "nullable"
270− , "foreign-object"
271− , "foreign"
272− , "exceptions"
273− , "arrays"
274− ]
275− , repo = "https://github.com/angelinatarapko/purescript-simple-json.git"
276− , version = "patch-1"
277− }
159+ }
278−}
279−
280−in upstream // overrides // additions
server/spago.dhall+30−1
@@ -4,26 +4,55 @@ You can edit this file as you like.
4-}
4-}
5{ name = "my-project"
5{ name = "my-project"
6, dependencies =
6, dependencies =
7+ [ "aff"
7− [ "aff-promise"
8+ , "aff-promise"
8 , "argonaut"
9 , "argonaut"
9 , "argonaut-codecs"
10 , "argonaut-codecs"
11+ , "argonaut-core"
12+ , "arrays"
10 , "avar"
13 , "avar"
14+ , "bifunctors"
11 , "console"
15 , "console"
16+ , "control"
17+ , "datetime"
12 , "debug"
18 , "debug"
13 , "effect"
19 , "effect"
20+ , "either"
21+ , "exceptions"
14 , "express"
22 , "express"
23+ , "foldable-traversable"
24+ , "foreign"
25+ , "foreign-object"
15 , "functions"
26 , "functions"
27+ , "httpurple"
28+ , "httpurple-yoga-json"
29+ , "integers"
30+ , "js-date"
16 , "maybe"
31 , "maybe"
32+ , "newtype"
33+ , "node-buffer"
17 , "node-child-process"
34 , "node-child-process"
18 , "node-fs"
35 , "node-fs"
19 , "node-fs-aff"
36 , "node-fs-aff"
37+ , "node-http"
20 , "node-net"
38 , "node-net"
21 , "node-process"
39 , "node-process"
40+ , "ordered-collections"
41+ , "parallel"
42+ , "posix-types"
43+ , "prelude"
22 , "psci-support"
44 , "psci-support"
45+ , "refs"
46+ , "routing-duplex"
23 , "spec"
47 , "spec"
24 , "spec-discovery"
48 , "spec-discovery"
49+ , "strings"
25 , "stringutils"
50 , "stringutils"
51+ , "transformers"
52+ , "tuples"
53+ , "unsafe-coerce"
26 , "uuid"
54 , "uuid"
55+ , "yoga-json"
27 ]
56 ]
28, packages = ./packages.dhall
57, packages = ./packages.dhall
29, sources = [ "src/**/*.purs", "test/**/*.purs" ]
58, sources = [ "src/**/*.purs", "test/**/*.purs" ]
server/src/Main.purs+119−69
@@ -1,9 +1,11 @@
1module Main where
1module Main where
2
2
3+import HTTPurple
3−import Prelude
4+import Prelude hiding ((/))
4
5
5import Auth.Handler (authHandler, readAllowedTokens)
6import Auth.Handler (authHandler, readAllowedTokens)
6import Auth.Types (Token(..))
7import Auth.Types (Token(..))
8+import Control.Monad.Cont (ContT(..), callCC, lift, runContT)
7import Control.Parallel (parOneOf, parTraverse)
9import Control.Parallel (parOneOf, parTraverse)
8import Data.Argonaut (jsonParser)
10import Data.Argonaut (jsonParser)
9import Data.Argonaut.Core (Json)
11import Data.Argonaut.Core (Json)
@@ -13,23 +15,27 @@ import Data.Argonaut.Decode (class DecodeJson, decodeJson, printJsonDecodeError)
13import Data.Argonaut.Decode.Class (class DecodeJson)
15import Data.Argonaut.Decode.Class (class DecodeJson)
14import Data.Argonaut.Decode.Decoders (decodeString)
16import Data.Argonaut.Decode.Decoders (decodeString)
15import Data.Argonaut.Encode (encodeJson)
17import Data.Argonaut.Encode (encodeJson)
16−import Data.Array (elem, (..))
18+import Data.Array (any, elem, (..))
17import Data.Bifunctor (lmap)
19import Data.Bifunctor (lmap)
18−import Data.Either (Either(..))
20+import Data.Either (Either(..), note)
19import Data.Either (hush)
21import Data.Either (hush)
20import Data.Int (fromString)
22import Data.Int (fromString)
21−import Data.Maybe (Maybe(..), fromMaybe)
23+import Data.Maybe (Maybe(..), fromMaybe, maybe)
22import Data.Newtype (un)
24import Data.Newtype (un)
23import Data.Time.Duration (class Duration, Seconds(..), fromDuration)
25import Data.Time.Duration (class Duration, Seconds(..), fromDuration)
24import Data.Traversable (traverse)
26import Data.Traversable (traverse)
27+import Debug (spy)
25import Effect (Effect)
28import Effect (Effect)
29+import Effect.AVar (AVar)
26−import Effect.Aff (Aff, attempt, delay, launchAff_, message)
30+import Effect.Aff (Aff, attempt, delay, error, launchAff_, message)
31+import Effect.Aff.AVar as AVar
27import Effect.Aff.Class (liftAff)
32import Effect.Aff.Class (liftAff)
28import Effect.Class (class MonadEffect, liftEffect)
33import Effect.Class (class MonadEffect, liftEffect)
29import Effect.Class.Console (info, log)
34import Effect.Class.Console (info, log)
30import Effect.Exception (Error)
35import Effect.Exception (Error)
31import Foreign (unsafeToForeign)
36import Foreign (unsafeToForeign)
37+import HTTPurple.Json.Yoga (jsonDecoder, jsonEncoder) as YogaJson
32−import JobQueue (EnqueueResult(..), NewJob(..), Queue, ResourcePool(..))
38+import JobQueue (EnqueueResult(..), Job, NewJob(..), Queue, ResourcePool(..))
33import JobQueue as Q
39import JobQueue as Q
34import Middleware.JsonBodyParser (jsonBodyParser)
40import Middleware.JsonBodyParser (jsonBodyParser)
35import Node.Buffer (Buffer)
41import Node.Buffer (Buffer)
@@ -43,9 +49,7 @@ import Node.Express.Middleware.Static (static)
43import Node.Express.Request (getBody', getRequestHeader)
49import Node.Express.Request (getBody', getRequestHeader)
44import Node.Express.Response (end, setStatus)
50import Node.Express.Response (end, setStatus)
45import Node.Express.Response as Response
51import Node.Express.Response as Response
46−import Node.Express.Types (Request, Response)
47import Node.FS.Aff (readTextFile)
52import Node.FS.Aff (readTextFile)
48−import Node.HTTP (Server)
49import Node.OS (numCpus)
53import Node.OS (numCpus)
50import Node.Process (lookupEnv)
54import Node.Process (lookupEnv)
51import Playground.Playground (Folder(..), copy)
55import Playground.Playground (Folder(..), copy)
@@ -54,6 +58,18 @@ import Shared.Json (readAff, readJsonAff)
54import Shared.Models.Body (CompileRequest, RunResult, CompileResult)
58import Shared.Models.Body (CompileRequest, RunResult, CompileResult)
55import Shared.Models.Body as Body
59import Shared.Models.Body as Body
56import Unsafe.Coerce (unsafeCoerce)
60import Unsafe.Coerce (unsafeCoerce)
61+import Foreign.Object (lookup) as Object
62+import Control.Alt ((<|>))
63+import Data.Array (elem) as Array
64+import HTTPurple.Response (notFound, unauthorized, unprocessableEntity')
65+import Control.Monad.Error.Class (throwError)
66+import Data.Monoid (guard)
67+import HTTPurple.Headers (RequestHeaders)
68+import Data.Map (lookup) as Mapl
69+import Data.String.CaseInsensitive (CaseInsensitiveString(CaseInsensitiveString))
70+import Data.Map (lookup) as Map
71+import HTTPurple.Validation (fromValidated, fromValidatedE)
72+import HTTPurple.Status (forbidden, unauthorized, unprocessableEntity) as Status
57
73
58toBody ∷ ∀ r m. MonadEffect m => { stdout ∷ Buffer, stderr ∷ Buffer | r } -> m RunResult
74toBody ∷ ∀ r m. MonadEffect m => { stdout ∷ Buffer, stderr ∷ Buffer | r } -> m RunResult
59toBody result =
75toBody result =
@@ -73,59 +89,10 @@ asErrorWithCode = unsafeCoerce >>> decodeJson >>> hush
73runCode ∷ ∀ d. Duration d => d -> Folder -> Aff (Maybe ExecResult)
89runCode ∷ ∀ d. Duration d => d -> Folder -> Aff (Maybe ExecResult)
74runCode timeout folder =
90runCode timeout folder =
75 parOneOf
91 parOneOf
76− [ Just <$> execCommand folder "exec node run.js"
92+ [ Just <$> execCommand folder "exec node run.mjs"
77 , Nothing <$ delay (timeout # fromDuration)
93 , Nothing <$ delay (timeout # fromDuration)
78 ]
94 ]
79
95
80−compileAndRunJob ∷ CompileRequest -> (Handler -> Aff Unit) -> NewJob PscIdeConnection
81−compileAndRunJob json handle =
82− NewJob \jobId conn -> do
83− stringOrErr ∷ Either Error String <- attempt $ compileCode json.code conn
84− jsonOrErr ∷ Either Error (Either Error CompileResult) <- attempt $ readJsonAff `traverse` stringOrErr
85− case jsonOrErr of
86− Left e -> do
87− handle $ setStatus 500
88− log $ "Aff failed with " <> message e
89− handle $ Response.send $ encodeJson {}
90− Right (Right res)
91− | res.resultType == "error" -> do
92− handle $ setStatus 422
93− handle $ Response.send $ encodeJson res
94− Right (Right res) -> do
95− runResult <- runCode timeout (getFolder conn)
96− case runResult of
97− Nothing -> do
98− handle $ setStatus 408
99− handle $ Response.send $ encodeJson { error: "Timed out after running for " <> show timeout }
100− Just rr -> do
101− resultBody <- toBody rr
102− handle $ Response.send $ encodeJson (resultBody ∷ Body.RunResult)
103− Right (Left errs) -> do
104− handle $ setStatus 500
105− log $ "Could not decode: " <> show (lmap (const "no way") stringOrErr) <> "\nErrors: " <> show errs
106− handle $ Response.send $ encodeJson {}
107− where
108− timeout = 1.0 # Seconds
109−
110−compileAndRunHandler ∷ Queue PscIdeConnection -> Handler
111−compileAndRunHandler queue = do
112− body <- getBody'
113− json <- readAff (unsafeCoerce body) # liftAff
114− HandlerM \req res next -> do
115− let
116− handle = unHandler req res next
117− runJob = compileAndRunJob json handle
118− queueRes <- Q.enqueue runJob queue # liftEffect
119− case queueRes of
120− Enqueued _ -> pure unit
121− QueueFull ->
122− handle do
123− setStatus 500
124− Response.send $ encodeJson { error: "Queue full" }
125−
126−unHandler ∷ ∀ a. Request -> Response -> Effect Unit -> HandlerM a -> Aff a
127−unHandler req res next (HandlerM h) = h req res next
128−
129srcFolder ∷ String
96srcFolder ∷ String
130srcFolder = "../playground"
97srcFolder = "../playground"
131
98
@@ -138,7 +105,8 @@ main = do
138 tokens <- readAllowedTokens
105 tokens <- readAllowedTokens
139 cpus <- numCpus # liftEffect
106 cpus <- numCpus # liftEffect
140 let
107 let
141− poolSize = max 2 (cpus / 2) -- use at least 2
108+ -- poolSize = max 2 (cpus / 2) -- use at least 2
109+ poolSize = 2
142 mkFolder = Folder <<< (destFolder <> _) <<< show
110 mkFolder = Folder <<< (destFolder <> _) <<< show
143 connections <-
111 connections <-
144 (1 .. poolSize)
112 (1 .. poolSize)
@@ -156,22 +124,104 @@ main = do
156 , timeout: 10.0 # Seconds # fromDuration
124 , timeout: 10.0 # Seconds # fromDuration
157 }
125 }
158 pool
126 pool
127+ void $ liftEffect (serverSetup tokens q)
128+
129+-- makeApp ∷ Array Token -> Queue PscIdeConnection -> App
159− serverSetup (makeApp tokens q)
130+-- makeApp tokens q = do
131+-- use $ static "assets"
132+-- useExternal jsonBodyParser
133+-- use (authHandler tokens)
134+-- E.post "/compileAndRun" (compileAndRunHandler q)
135+
136+-- serverSetup ∷ App -> Aff Server
137+-- serverSetup app = do
138+-- maybePortString <- lookupEnv "PORT" # liftEffect
139+-- let port = maybePortString >>= fromString # fromMaybe 14188
140+-- liftEffect $ (listenHttp app port) \_ -> info $ "psfp server started on port " <> show port
141+-- where
142+-- makeHttpsOptions = do
143+-- key <- readTextFile UTF8 "server.key"
144+-- cert <- readTextFile UTF8 "server.cert"
145+-- pure { key, cert }
146+
147+data Route = CompileAndRun
160
148
161−makeApp ∷ Array Token -> Queue PscIdeConnection -> App
149+derive instance Generic Route _
162−makeApp tokens q = do
163− use $ static "assets"
164− useExternal jsonBodyParser
165− use (authHandler tokens)
166− E.post "/compileAndRun" (compileAndRunHandler q)
167
150
168−serverSetup ∷ App -> Aff Server
151+route :: RouteDuplex' Route
152+route = mkRoute
153+ { "CompileAndRun": "compileAndRun" / noArgs
154+ }
155+
156+serverSetup :: Array Token -> Queue _ -> Effect Unit
169−serverSetup app = do
157+serverSetup tokens queue = do
170 maybePortString <- lookupEnv "PORT" # liftEffect
158 maybePortString <- lookupEnv "PORT" # liftEffect
171 let port = maybePortString >>= fromString # fromMaybe 14188
159 let port = maybePortString >>= fromString # fromMaybe 14188
160+ --liftEffect $ (listenHttp app port) \_ ->
172− liftEffect $ (listenHttp app port) \_ -> info $ "psfp server started on port " <> show port
161+ info $ "psfp server started on port " <> show port
162+
163+ void $ serve { port } { route, router }
173 where
164 where
165+ getToken' headers = do
166+ lookup headers "Token" # maybe
167+ (Left $ "Missing Token Header")
168+ (Right <<< Token)
169+
170+ validateToken' :: Token -> Either String Unit
171+ validateToken' token = do
172+ if Array.elem token tokens then Right unit else Left "Invalid Token"
173+
174+ router { route: CompileAndRun, headers, method: Post, body } = usingCont do
175+ token <- fromValidatedE getToken' (response' Status.forbidden empty) headers
176+ fromValidatedE validateToken' (response' Status.unauthorized empty) token
177+ { code } :: { code :: String } <- fromJson YogaJson.jsonDecoder body -- parse the json input
178+ -- jobId <- compileAndRunJob code
179+ compileAndRunJobCont queue { code } -- do your business logic
180+ --notFound
181+ router _ = notFound
174 makeHttpsOptions = do
182 makeHttpsOptions = do
175 key <- readTextFile UTF8 "server.key"
183 key <- readTextFile UTF8 "server.key"
176 cert <- readTextFile UTF8 "server.cert"
184 cert <- readTextFile UTF8 "server.cert"
177 pure { key, cert }
185 pure { key, cert }
186+
187+compileAndRunJobCont :: Queue _ -> CompileRequest -> ContT Response Aff Response
188+compileAndRunJobCont queue { code } = do
189+ resultVar <- lift AVar.empty
190+ let
191+ job :: NewJob _
192+ job = NewJob \jobId conn -> do
193+ stringOrErr ∷ Either Error String <- attempt $ compileCode code conn
194+ jsonOrErr ∷ Either Error (Either Error CompileResult) <- attempt $ readJsonAff `traverse` stringOrErr
195+ let folder = getFolder conn
196+ AVar.put { jsonOrErr, stringOrErr, folder } resultVar
197+ enqueueResult <- lift $ liftEffect $ Q.enqueue job queue
198+ case enqueueResult of
199+ QueueFull -> notFound
200+ _ -> do
201+ { jsonOrErr, stringOrErr, folder } <- AVar.take resultVar # lift
202+ case jsonOrErr ∷ Either Error (Either Error CompileResult) of
203+ Left e -> do
204+ lift $ log $ "Aff failed with " <> message e
205+ internalServerError' jsonHeaders $ toJson YogaJson.jsonEncoder { error: show e }
206+ Right (Right res)
207+ | res.resultType == "error" -> do
208+ let body = toJson YogaJson.jsonEncoder { result: res.result }
209+ response' Status.unprocessableEntity empty body
210+ Right (Right res) -> do
211+ runResult <- runCode timeout folder # lift
212+ case runResult of
213+ Nothing -> do
214+ requestTimeout' jsonHeaders -- $ toJson YogaJson.jsonEncoder { error: "Timed out after running for " <> show timeout }
215+ Just rr -> do
216+ resultBody <- toBody rr # lift
217+ ok' jsonHeaders $ toJson YogaJson.jsonEncoder { resultBody }
218+ Right (Left errs) -> do
219+ log $ "Could not decode: " <> show (lmap (const "no way") stringOrErr) <> "\nErrors: " <> show errs
220+ internalServerError' jsonHeaders $ toJson YogaJson.jsonEncoder { error: show errs }
221+ -- case r of
222+ -- Left err -> internalServerError' jsonHeaders $ toJson YogaJson.jsonEncoder { error: show err }
223+ -- Right result -> ok' jsonHeaders $ toJson YogaJson.jsonEncoder result
224+
225+ where
226+ jsonBody = toJson
227+ timeout = 1.0 # Seconds
server/src/Middleware/JsonBodyParser.js+3−1
@@ -1,3 +1,5 @@
1"use strict";
1"use strict";
2
2
3−exports.jsonBodyParser = require('body-parser').json()
3+import { json } from "body-parser";
4+
5+export const jsonBodyParser = json()
server/src/Node/OS.js+2−2
@@ -1,2 +1,2 @@
1−var os = require('os')
1+import { cpus } from 'os'
2−exports.numCpus = function() { return os.cpus().length }
2+export const numCpus = function() { return cpus().length }
server/src/Playground/Playground.js+4−4
@@ -1,5 +1,5 @@
1−var fs = require("fs-extra")
1+import {copy} from "fs-extra"
2
2
3−exports.copyImpl = function(src, target) {
3+export const copyImpl = function(src, target) {
4− return fs.copy(src, target, { overwrite: true, dereference: true })
4+ return copy(src, target, { overwrite: true, dereference: true })
5−}
5+}
server/src/PscIdeClient.purs+13−11
@@ -52,13 +52,13 @@ closeSocketCanceller s =
52
52
53startIdeServer ∷ Folder -> Int -> Aff ChildProcess
53startIdeServer ∷ Folder -> Int -> Aff ChildProcess
54startIdeServer folder port = do
54startIdeServer folder port = do
55− log $ "Spawning ide server" <> infoString
55+ log $ "Spawning ide server " <> infoString
56− cp <- spawnProcess folder "npx" [ "purs", "ide", "server", "-p", show port, "--editor-mode", "--no-watch" ]
56+ cp <- spawnProcess folder "purs" [ "ide", "server", "-p", show port, "--editor-mode", "--no-watch" ]
57− log $ "Spawned ide server" <> infoString
57+ log $ "Spawned ide server " <> infoString
58 -- building once
58 -- building once
59− { error, stderr, stdout } <- execCommand folder "npx spago build"
59+ { error, stderr, stdout } <- execCommand folder "spago build"
60 stderrStr <- liftEffect $ Buf.toString UTF8 stderr
60 stderrStr <- liftEffect $ Buf.toString UTF8 stderr
61− log $ "Built: " <> stderrStr
61+ log $ "Built: " <> infoString <> " " <> stderrStr
62 log $ "Loading modules: " <> infoString
62 log $ "Loading modules: " <> infoString
63 loadPscIde folder port
63 loadPscIde folder port
64 pure cp
64 pure cp
@@ -74,7 +74,9 @@ execCommand folder command =
74 makeAff \callback -> do
74 makeAff \callback -> do
75 let options = CP.defaultExecOptions { cwd = Just (un Folder folder) }
75 let options = CP.defaultExecOptions { cwd = Just (un Folder folder) }
76 childProcess <- CP.exec command options (callback <<< Right)
76 childProcess <- CP.exec command options (callback <<< Right)
77+ pure $ effectCanceler do
77− pure $ effectCanceler ((log $ "Killing " <> show (CP.pid childProcess)) *> CP.kill SIGKILL childProcess)
78+ log $ "Killing " <> show (CP.pid childProcess)
79+ CP.kill SIGKILL childProcess
78
80
79restartIdeServer ∷ Folder -> Int -> Ref ChildProcess -> Aff Unit
81restartIdeServer ∷ Folder -> Int -> Ref ChildProcess -> Aff Unit
80restartIdeServer folder port processRef = do
82restartIdeServer folder port processRef = do
@@ -89,9 +91,9 @@ spawnProcess folder command args =
89 let options = CP.defaultSpawnOptions { cwd = Just (un Folder folder), stdio = Just <$> [ Ignore, Ignore, Ignore ] }
91 let options = CP.defaultSpawnOptions { cwd = Just (un Folder folder), stdio = Just <$> [ Ignore, Ignore, Ignore ] }
90 childProcess <- CP.spawn command args options
92 childProcess <- CP.spawn command args options
91 callback (Right childProcess)
93 callback (Right childProcess)
92− pure $ effectCanceler
94+ pure $ effectCanceler do
93− $ (log $ "Killing " <> show (CP.pid childProcess))
95+ log $ "Killing " <> show (CP.pid childProcess)
94− *> CP.kill SIGKILL childProcess
96+ CP.kill SIGKILL childProcess
95
97
96newtype PscIdeConnection = PscIdeConnection
98newtype PscIdeConnection = PscIdeConnection
97 { serverProcessRef ∷ Ref ChildProcess
99 { serverProcessRef ∷ Ref ChildProcess
@@ -113,7 +115,7 @@ getFolder (PscIdeConnection { folder }) = folder
113loadPscIde ∷ Folder -> Int -> Aff Unit
115loadPscIde ∷ Folder -> Int -> Aff Unit
114loadPscIde folder port = do
116loadPscIde folder port = do
115 makeAff \affCb -> do
117 makeAff \affCb -> do
116− socket <- Socket.createConnectionTCP port "localhost" mempty
118+ socket <- Socket.createConnectionTCP port "127.0.0.1" mempty
117 -- maybe timeout?
119 -- maybe timeout?
118 Socket.onError socket (affCb <<< Left)
120 Socket.onError socket (affCb <<< Left)
119 void
121 void
@@ -133,7 +135,7 @@ compileCode code (PscIdeConnection { port, folder, serverProcessRef }) = do
133 saveMainFile folder code
135 saveMainFile folder code
134 makeAff \affCb -> do
136 makeAff \affCb -> do
135 log $ "Compiling on " <> show port
137 log $ "Compiling on " <> show port
136− socket <- Socket.createConnectionTCP port "localhost" mempty
138+ socket <- Socket.createConnectionTCP port "127.0.0.1" mempty
137 -- Socket.onError socket (affCb <<< Left)
139 -- Socket.onError socket (affCb <<< Left)
138 resultRef <- Ref.new ""
140 resultRef <- Ref.new ""
139 Socket.onData socket \dataFromServer -> do
141 Socket.onData socket \dataFromServer -> do