| @@ -1,1314 +1,1314 | |||
|
|
1 | 1 | { |
|
|
2 | 2 | "name": "@implab/core", |
|
|
3 | 3 | "version": "0.0.1-dev", |
|
|
4 | 4 | "lockfileVersion": 1, |
|
|
5 | 5 | "requires": true, |
|
|
6 | 6 | "dependencies": { |
|
|
7 | 7 | "@babel/code-frame": { |
|
|
8 | 8 | "version": "7.5.5", |
|
|
9 | 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", |
|
|
10 | 10 | "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", |
|
|
11 | 11 | "dev": true, |
|
|
12 | 12 | "requires": { |
|
|
13 | 13 | "@babel/highlight": "^7.0.0" |
|
|
14 | 14 | } |
|
|
15 | 15 | }, |
|
|
16 | 16 | "@babel/highlight": { |
|
|
17 | 17 | "version": "7.5.0", |
|
|
18 | 18 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", |
|
|
19 | 19 | "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", |
|
|
20 | 20 | "dev": true, |
|
|
21 | 21 | "requires": { |
|
|
22 | 22 | "chalk": "^2.0.0", |
|
|
23 | 23 | "esutils": "^2.0.2", |
|
|
24 | 24 | "js-tokens": "^4.0.0" |
|
|
25 | 25 | } |
|
|
26 | 26 | }, |
|
|
27 | 27 | "@types/chai": { |
|
|
28 | 28 | "version": "4.2.3", |
|
|
29 | 29 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.3.tgz", |
|
|
30 | 30 | "integrity": "sha512-VRw2xEGbll3ZiTQ4J02/hUjNqZoue1bMhoo2dgM2LXjDdyaq4q80HgBDHwpI0/VKlo4Eg+BavyQMv/NYgTetzA==", |
|
|
31 | 31 | "dev": true |
|
|
32 | 32 | }, |
|
|
33 | 33 | "@types/node": { |
|
|
34 | 34 | "version": "8.10.55", |
|
|
35 | 35 | "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.55.tgz", |
|
|
36 | 36 | "integrity": "sha512-iZeh1EgupfmAAOASk580R1SL5lWF3CsBVgVH0395qyNF8fhO16xy1UwAav2PdGxIIsYRn7RzJgMGjdsvam6YYg==", |
|
|
37 | 37 | "dev": true |
|
|
38 | 38 | }, |
|
|
39 | 39 | "@types/requirejs": { |
|
|
40 | 40 | "version": "2.1.31", |
|
|
41 | 41 | "resolved": "https://registry.npmjs.org/@types/requirejs/-/requirejs-2.1.31.tgz", |
|
|
42 | 42 | "integrity": "sha512-b2soeyuU76rMbcRJ4e0hEl0tbMhFwZeTC0VZnfuWlfGlk6BwWNsev6kFu/twKABPX29wkX84wU2o+cEJoXsiTw==", |
|
|
43 | 43 | "dev": true |
|
|
44 | 44 | }, |
|
|
45 | 45 | "@types/tape": { |
|
|
46 | 46 | "version": "4.2.33", |
|
|
47 | 47 | "resolved": "https://registry.npmjs.org/@types/tape/-/tape-4.2.33.tgz", |
|
|
48 | 48 | "integrity": "sha512-ltfyuY5BIkYlGuQfwqzTDT8f0q8Z5DGppvUnWGs39oqDmMd6/UWhNpX3ZMh/VYvfxs3rFGHMrLC/eGRdLiDGuw==", |
|
|
49 | 49 | "dev": true, |
|
|
50 | 50 | "requires": { |
|
|
51 | 51 | "@types/node": "*" |
|
|
52 | 52 | } |
|
|
53 | 53 | }, |
|
|
54 | 54 | "acorn": { |
|
|
55 | 55 | "version": "7.1.0", |
|
|
56 | 56 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz", |
|
|
57 | 57 | "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==", |
|
|
58 | 58 | "dev": true |
|
|
59 | 59 | }, |
|
|
60 | 60 | "acorn-jsx": { |
|
|
61 | 61 | "version": "5.1.0", |
|
|
62 | 62 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", |
|
|
63 | 63 | "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", |
|
|
64 | 64 | "dev": true |
|
|
65 | 65 | }, |
|
|
66 | 66 | "ajv": { |
|
|
67 | 67 | "version": "6.10.2", |
|
|
68 | 68 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", |
|
|
69 | 69 | "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", |
|
|
70 | 70 | "dev": true, |
|
|
71 | 71 | "requires": { |
|
|
72 | 72 | "fast-deep-equal": "^2.0.1", |
|
|
73 | 73 | "fast-json-stable-stringify": "^2.0.0", |
|
|
74 | 74 | "json-schema-traverse": "^0.4.1", |
|
|
75 | 75 | "uri-js": "^4.2.2" |
|
|
76 | 76 | } |
|
|
77 | 77 | }, |
|
|
78 | 78 | "ansi-escapes": { |
|
|
79 | 79 | "version": "3.2.0", |
|
|
80 | 80 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", |
|
|
81 | 81 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", |
|
|
82 | 82 | "dev": true |
|
|
83 | 83 | }, |
|
|
84 | 84 | "ansi-regex": { |
|
|
85 | 85 | "version": "3.0.0", |
|
|
86 | 86 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", |
|
|
87 | 87 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", |
|
|
88 | 88 | "dev": true |
|
|
89 | 89 | }, |
|
|
90 | 90 | "ansi-styles": { |
|
|
91 | 91 | "version": "3.2.1", |
|
|
92 | 92 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", |
|
|
93 | 93 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", |
|
|
94 | 94 | "dev": true, |
|
|
95 | 95 | "requires": { |
|
|
96 | 96 | "color-convert": "^1.9.0" |
|
|
97 | 97 | } |
|
|
98 | 98 | }, |
|
|
99 | 99 | "argparse": { |
|
|
100 | 100 | "version": "1.0.10", |
|
|
101 | 101 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", |
|
|
102 | 102 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", |
|
|
103 | 103 | "dev": true, |
|
|
104 | 104 | "requires": { |
|
|
105 | 105 | "sprintf-js": "~1.0.2" |
|
|
106 | 106 | } |
|
|
107 | 107 | }, |
|
|
108 | 108 | "astral-regex": { |
|
|
109 | 109 | "version": "1.0.0", |
|
|
110 | 110 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", |
|
|
111 | 111 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", |
|
|
112 | 112 | "dev": true |
|
|
113 | 113 | }, |
|
|
114 | 114 | "balanced-match": { |
|
|
115 | 115 | "version": "1.0.0", |
|
|
116 | 116 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", |
|
|
117 | 117 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", |
|
|
118 | 118 | "dev": true |
|
|
119 | 119 | }, |
|
|
120 | 120 | "brace-expansion": { |
|
|
121 | 121 | "version": "1.1.11", |
|
|
122 | 122 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", |
|
|
123 | 123 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", |
|
|
124 | 124 | "dev": true, |
|
|
125 | 125 | "requires": { |
|
|
126 | 126 | "balanced-match": "^1.0.0", |
|
|
127 | 127 | "concat-map": "0.0.1" |
|
|
128 | 128 | } |
|
|
129 | 129 | }, |
|
|
130 | 130 | "builtin-modules": { |
|
|
131 | 131 | "version": "1.1.1", |
|
|
132 | 132 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", |
|
|
133 | 133 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", |
|
|
134 | 134 | "dev": true |
|
|
135 | 135 | }, |
|
|
136 | 136 | "callsites": { |
|
|
137 | 137 | "version": "3.1.0", |
|
|
138 | 138 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", |
|
|
139 | 139 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", |
|
|
140 | 140 | "dev": true |
|
|
141 | 141 | }, |
|
|
142 | 142 | "chalk": { |
|
|
143 | 143 | "version": "2.4.2", |
|
|
144 | 144 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
|
|
145 | 145 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", |
|
|
146 | 146 | "dev": true, |
|
|
147 | 147 | "requires": { |
|
|
148 | 148 | "ansi-styles": "^3.2.1", |
|
|
149 | 149 | "escape-string-regexp": "^1.0.5", |
|
|
150 | 150 | "supports-color": "^5.3.0" |
|
|
151 | 151 | } |
|
|
152 | 152 | }, |
|
|
153 | 153 | "chardet": { |
|
|
154 | 154 | "version": "0.7.0", |
|
|
155 | 155 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", |
|
|
156 | 156 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", |
|
|
157 | 157 | "dev": true |
|
|
158 | 158 | }, |
|
|
159 | 159 | "cli-cursor": { |
|
|
160 | 160 | "version": "2.1.0", |
|
|
161 | 161 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", |
|
|
162 | 162 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", |
|
|
163 | 163 | "dev": true, |
|
|
164 | 164 | "requires": { |
|
|
165 | 165 | "restore-cursor": "^2.0.0" |
|
|
166 | 166 | } |
|
|
167 | 167 | }, |
|
|
168 | 168 | "cli-width": { |
|
|
169 | 169 | "version": "2.2.0", |
|
|
170 | 170 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", |
|
|
171 | 171 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", |
|
|
172 | 172 | "dev": true |
|
|
173 | 173 | }, |
|
|
174 | 174 | "color-convert": { |
|
|
175 | 175 | "version": "1.9.3", |
|
|
176 | 176 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", |
|
|
177 | 177 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", |
|
|
178 | 178 | "dev": true, |
|
|
179 | 179 | "requires": { |
|
|
180 | 180 | "color-name": "1.1.3" |
|
|
181 | 181 | } |
|
|
182 | 182 | }, |
|
|
183 | 183 | "color-name": { |
|
|
184 | 184 | "version": "1.1.3", |
|
|
185 | 185 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", |
|
|
186 | 186 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", |
|
|
187 | 187 | "dev": true |
|
|
188 | 188 | }, |
|
|
189 | 189 | "commander": { |
|
|
190 | 190 | "version": "2.20.3", |
|
|
191 | 191 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", |
|
|
192 | 192 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", |
|
|
193 | 193 | "dev": true |
|
|
194 | 194 | }, |
|
|
195 | 195 | "concat-map": { |
|
|
196 | 196 | "version": "0.0.1", |
|
|
197 | 197 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", |
|
|
198 | 198 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", |
|
|
199 | 199 | "dev": true |
|
|
200 | 200 | }, |
|
|
201 | 201 | "cross-spawn": { |
|
|
202 | 202 | "version": "6.0.5", |
|
|
203 | 203 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", |
|
|
204 | 204 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", |
|
|
205 | 205 | "dev": true, |
|
|
206 | 206 | "requires": { |
|
|
207 | 207 | "nice-try": "^1.0.4", |
|
|
208 | 208 | "path-key": "^2.0.1", |
|
|
209 | 209 | "semver": "^5.5.0", |
|
|
210 | 210 | "shebang-command": "^1.2.0", |
|
|
211 | 211 | "which": "^1.2.9" |
|
|
212 | 212 | }, |
|
|
213 | 213 | "dependencies": { |
|
|
214 | 214 | "semver": { |
|
|
215 | 215 | "version": "5.7.1", |
|
|
216 | 216 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", |
|
|
217 | 217 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", |
|
|
218 | 218 | "dev": true |
|
|
219 | 219 | } |
|
|
220 | 220 | } |
|
|
221 | 221 | }, |
|
|
222 | 222 | "debug": { |
|
|
223 | 223 | "version": "4.1.1", |
|
|
224 | 224 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", |
|
|
225 | 225 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", |
|
|
226 | 226 | "dev": true, |
|
|
227 | 227 | "requires": { |
|
|
228 | 228 | "ms": "^2.1.1" |
|
|
229 | 229 | } |
|
|
230 | 230 | }, |
|
|
231 | 231 | "deep-is": { |
|
|
232 | 232 | "version": "0.1.3", |
|
|
233 | 233 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", |
|
|
234 | 234 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", |
|
|
235 | 235 | "dev": true |
|
|
236 | 236 | }, |
|
|
237 | 237 | "define-properties": { |
|
|
238 | 238 | "version": "1.1.3", |
|
|
239 | 239 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", |
|
|
240 | 240 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", |
|
|
241 | 241 | "dev": true, |
|
|
242 | 242 | "requires": { |
|
|
243 | 243 | "object-keys": "^1.0.12" |
|
|
244 | 244 | }, |
|
|
245 | 245 | "dependencies": { |
|
|
246 | 246 | "object-keys": { |
|
|
247 | 247 | "version": "1.1.1", |
|
|
248 | 248 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", |
|
|
249 | 249 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", |
|
|
250 | 250 | "dev": true |
|
|
251 | 251 | } |
|
|
252 | 252 | } |
|
|
253 | 253 | }, |
|
|
254 | 254 | "diff": { |
|
|
255 | 255 | "version": "3.5.0", |
|
|
256 | 256 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", |
|
|
257 | 257 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", |
|
|
258 | 258 | "dev": true |
|
|
259 | 259 | }, |
|
|
260 | 260 | "doctrine": { |
|
|
261 | 261 | "version": "3.0.0", |
|
|
262 | 262 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", |
|
|
263 | 263 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", |
|
|
264 | 264 | "dev": true, |
|
|
265 | 265 | "requires": { |
|
|
266 | 266 | "esutils": "^2.0.2" |
|
|
267 | 267 | } |
|
|
268 | 268 | }, |
|
|
269 | 269 | "dojo": { |
|
|
270 | 270 | "version": "1.10.10", |
|
|
271 | 271 | "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.10.10.tgz", |
|
|
272 | 272 | "integrity": "sha512-kg79C8Yyd317cG3MgXGMH4AeQ8TgNr8H/PpA3BRms7DTfl0CJCRAgGE/C6d9Nw55s1ID/fEsfS+P3bj1s7dWgA==", |
|
|
273 | 273 | "dev": true |
|
|
274 | 274 | }, |
|
|
275 | 275 | "dojo-typings": { |
|
|
276 | 276 | "version": "1.11.9", |
|
|
277 | 277 | "resolved": "https://registry.npmjs.org/dojo-typings/-/dojo-typings-1.11.9.tgz", |
|
|
278 | 278 | "integrity": "sha512-mh8w+Mau2Y1QfTEszEAdO7j6ycNhYxF/Ing6nAk1eUg6NxjeT0viVHjICMd9sU3U463vM2G+KfBBK5grk3/Mlw==", |
|
|
279 | 279 | "dev": true, |
|
|
280 | 280 | "requires": { |
|
|
281 | 281 | "@types/chai": "^4.0.4" |
|
|
282 | 282 | } |
|
|
283 | 283 | }, |
|
|
284 | 284 | "emoji-regex": { |
|
|
285 | 285 | "version": "7.0.3", |
|
|
286 | 286 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", |
|
|
287 | 287 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", |
|
|
288 | 288 | "dev": true |
|
|
289 | 289 | }, |
|
|
290 | 290 | "es-abstract": { |
|
|
291 | 291 | "version": "1.15.0", |
|
|
292 | 292 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz", |
|
|
293 | 293 | "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==", |
|
|
294 | 294 | "dev": true, |
|
|
295 | 295 | "requires": { |
|
|
296 | 296 | "es-to-primitive": "^1.2.0", |
|
|
297 | 297 | "function-bind": "^1.1.1", |
|
|
298 | 298 | "has": "^1.0.3", |
|
|
299 | 299 | "has-symbols": "^1.0.0", |
|
|
300 | 300 | "is-callable": "^1.1.4", |
|
|
301 | 301 | "is-regex": "^1.0.4", |
|
|
302 | 302 | "object-inspect": "^1.6.0", |
|
|
303 | 303 | "object-keys": "^1.1.1", |
|
|
304 | 304 | "string.prototype.trimleft": "^2.1.0", |
|
|
305 | 305 | "string.prototype.trimright": "^2.1.0" |
|
|
306 | 306 | }, |
|
|
307 | 307 | "dependencies": { |
|
|
308 | 308 | "object-keys": { |
|
|
309 | 309 | "version": "1.1.1", |
|
|
310 | 310 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", |
|
|
311 | 311 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", |
|
|
312 | 312 | "dev": true |
|
|
313 | 313 | } |
|
|
314 | 314 | } |
|
|
315 | 315 | }, |
|
|
316 | 316 | "es-to-primitive": { |
|
|
317 | 317 | "version": "1.2.0", |
|
|
318 | 318 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", |
|
|
319 | 319 | "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", |
|
|
320 | 320 | "dev": true, |
|
|
321 | 321 | "requires": { |
|
|
322 | 322 | "is-callable": "^1.1.4", |
|
|
323 | 323 | "is-date-object": "^1.0.1", |
|
|
324 | 324 | "is-symbol": "^1.0.2" |
|
|
325 | 325 | } |
|
|
326 | 326 | }, |
|
|
327 | 327 | "escape-string-regexp": { |
|
|
328 | 328 | "version": "1.0.5", |
|
|
329 | 329 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", |
|
|
330 | 330 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", |
|
|
331 | 331 | "dev": true |
|
|
332 | 332 | }, |
|
|
333 | 333 | "eslint": { |
|
|
334 | 334 | "version": "6.1.0", |
|
|
335 | 335 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz", |
|
|
336 | 336 | "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==", |
|
|
337 | 337 | "dev": true, |
|
|
338 | 338 | "requires": { |
|
|
339 | 339 | "@babel/code-frame": "^7.0.0", |
|
|
340 | 340 | "ajv": "^6.10.0", |
|
|
341 | 341 | "chalk": "^2.1.0", |
|
|
342 | 342 | "cross-spawn": "^6.0.5", |
|
|
343 | 343 | "debug": "^4.0.1", |
|
|
344 | 344 | "doctrine": "^3.0.0", |
|
|
345 | 345 | "eslint-scope": "^5.0.0", |
|
|
346 | 346 | "eslint-utils": "^1.3.1", |
|
|
347 | 347 | "eslint-visitor-keys": "^1.0.0", |
|
|
348 | 348 | "espree": "^6.0.0", |
|
|
349 | 349 | "esquery": "^1.0.1", |
|
|
350 | 350 | "esutils": "^2.0.2", |
|
|
351 | 351 | "file-entry-cache": "^5.0.1", |
|
|
352 | 352 | "functional-red-black-tree": "^1.0.1", |
|
|
353 | 353 | "glob-parent": "^5.0.0", |
|
|
354 | 354 | "globals": "^11.7.0", |
|
|
355 | 355 | "ignore": "^4.0.6", |
|
|
356 | 356 | "import-fresh": "^3.0.0", |
|
|
357 | 357 | "imurmurhash": "^0.1.4", |
|
|
358 | 358 | "inquirer": "^6.4.1", |
|
|
359 | 359 | "is-glob": "^4.0.0", |
|
|
360 | 360 | "js-yaml": "^3.13.1", |
|
|
361 | 361 | "json-stable-stringify-without-jsonify": "^1.0.1", |
|
|
362 | 362 | "levn": "^0.3.0", |
|
|
363 | 363 | "lodash": "^4.17.14", |
|
|
364 | 364 | "minimatch": "^3.0.4", |
|
|
365 | 365 | "mkdirp": "^0.5.1", |
|
|
366 | 366 | "natural-compare": "^1.4.0", |
|
|
367 | 367 | "optionator": "^0.8.2", |
|
|
368 | 368 | "progress": "^2.0.0", |
|
|
369 | 369 | "regexpp": "^2.0.1", |
|
|
370 | 370 | "semver": "^6.1.2", |
|
|
371 | 371 | "strip-ansi": "^5.2.0", |
|
|
372 | 372 | "strip-json-comments": "^3.0.1", |
|
|
373 | 373 | "table": "^5.2.3", |
|
|
374 | 374 | "text-table": "^0.2.0", |
|
|
375 | 375 | "v8-compile-cache": "^2.0.3" |
|
|
376 | 376 | } |
|
|
377 | 377 | }, |
|
|
378 | 378 | "eslint-scope": { |
|
|
379 | 379 | "version": "5.0.0", |
|
|
380 | 380 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", |
|
|
381 | 381 | "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", |
|
|
382 | 382 | "dev": true, |
|
|
383 | 383 | "requires": { |
|
|
384 | 384 | "esrecurse": "^4.1.0", |
|
|
385 | 385 | "estraverse": "^4.1.1" |
|
|
386 | 386 | } |
|
|
387 | 387 | }, |
|
|
388 | 388 | "eslint-utils": { |
|
|
389 | 389 | "version": "1.4.2", |
|
|
390 | 390 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", |
|
|
391 | 391 | "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", |
|
|
392 | 392 | "dev": true, |
|
|
393 | 393 | "requires": { |
|
|
394 | 394 | "eslint-visitor-keys": "^1.0.0" |
|
|
395 | 395 | } |
|
|
396 | 396 | }, |
|
|
397 | 397 | "eslint-visitor-keys": { |
|
|
398 | 398 | "version": "1.1.0", |
|
|
399 | 399 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", |
|
|
400 | 400 | "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", |
|
|
401 | 401 | "dev": true |
|
|
402 | 402 | }, |
|
|
403 | 403 | "espree": { |
|
|
404 | 404 | "version": "6.1.1", |
|
|
405 | 405 | "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.1.tgz", |
|
|
406 | 406 | "integrity": "sha512-EYbr8XZUhWbYCqQRW0duU5LxzL5bETN6AjKBGy1302qqzPaCH10QbRg3Wvco79Z8x9WbiE8HYB4e75xl6qUYvQ==", |
|
|
407 | 407 | "dev": true, |
|
|
408 | 408 | "requires": { |
|
|
409 | 409 | "acorn": "^7.0.0", |
|
|
410 | 410 | "acorn-jsx": "^5.0.2", |
|
|
411 | 411 | "eslint-visitor-keys": "^1.1.0" |
|
|
412 | 412 | } |
|
|
413 | 413 | }, |
|
|
414 | 414 | "esprima": { |
|
|
415 | 415 | "version": "4.0.1", |
|
|
416 | 416 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", |
|
|
417 | 417 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", |
|
|
418 | 418 | "dev": true |
|
|
419 | 419 | }, |
|
|
420 | 420 | "esquery": { |
|
|
421 | 421 | "version": "1.0.1", |
|
|
422 | 422 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", |
|
|
423 | 423 | "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", |
|
|
424 | 424 | "dev": true, |
|
|
425 | 425 | "requires": { |
|
|
426 | 426 | "estraverse": "^4.0.0" |
|
|
427 | 427 | } |
|
|
428 | 428 | }, |
|
|
429 | 429 | "esrecurse": { |
|
|
430 | 430 | "version": "4.2.1", |
|
|
431 | 431 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", |
|
|
432 | 432 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", |
|
|
433 | 433 | "dev": true, |
|
|
434 | 434 | "requires": { |
|
|
435 | 435 | "estraverse": "^4.1.0" |
|
|
436 | 436 | } |
|
|
437 | 437 | }, |
|
|
438 | 438 | "estraverse": { |
|
|
439 | 439 | "version": "4.3.0", |
|
|
440 | 440 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", |
|
|
441 | 441 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", |
|
|
442 | 442 | "dev": true |
|
|
443 | 443 | }, |
|
|
444 | 444 | "esutils": { |
|
|
445 | 445 | "version": "2.0.3", |
|
|
446 | 446 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", |
|
|
447 | 447 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", |
|
|
448 | 448 | "dev": true |
|
|
449 | 449 | }, |
|
|
450 | 450 | "external-editor": { |
|
|
451 | 451 | "version": "3.1.0", |
|
|
452 | 452 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", |
|
|
453 | 453 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", |
|
|
454 | 454 | "dev": true, |
|
|
455 | 455 | "requires": { |
|
|
456 | 456 | "chardet": "^0.7.0", |
|
|
457 | 457 | "iconv-lite": "^0.4.24", |
|
|
458 | 458 | "tmp": "^0.0.33" |
|
|
459 | 459 | } |
|
|
460 | 460 | }, |
|
|
461 | 461 | "fast-deep-equal": { |
|
|
462 | 462 | "version": "2.0.1", |
|
|
463 | 463 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", |
|
|
464 | 464 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", |
|
|
465 | 465 | "dev": true |
|
|
466 | 466 | }, |
|
|
467 | 467 | "fast-json-stable-stringify": { |
|
|
468 | 468 | "version": "2.0.0", |
|
|
469 | 469 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", |
|
|
470 | 470 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", |
|
|
471 | 471 | "dev": true |
|
|
472 | 472 | }, |
|
|
473 | 473 | "fast-levenshtein": { |
|
|
474 | 474 | "version": "2.0.6", |
|
|
475 | 475 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", |
|
|
476 | 476 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", |
|
|
477 | 477 | "dev": true |
|
|
478 | 478 | }, |
|
|
479 | 479 | "figures": { |
|
|
480 | 480 | "version": "2.0.0", |
|
|
481 | 481 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", |
|
|
482 | 482 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", |
|
|
483 | 483 | "dev": true, |
|
|
484 | 484 | "requires": { |
|
|
485 | 485 | "escape-string-regexp": "^1.0.5" |
|
|
486 | 486 | } |
|
|
487 | 487 | }, |
|
|
488 | 488 | "file-entry-cache": { |
|
|
489 | 489 | "version": "5.0.1", |
|
|
490 | 490 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", |
|
|
491 | 491 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", |
|
|
492 | 492 | "dev": true, |
|
|
493 | 493 | "requires": { |
|
|
494 | 494 | "flat-cache": "^2.0.1" |
|
|
495 | 495 | } |
|
|
496 | 496 | }, |
|
|
497 | 497 | "flat-cache": { |
|
|
498 | 498 | "version": "2.0.1", |
|
|
499 | 499 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", |
|
|
500 | 500 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", |
|
|
501 | 501 | "dev": true, |
|
|
502 | 502 | "requires": { |
|
|
503 | 503 | "flatted": "^2.0.0", |
|
|
504 | 504 | "rimraf": "2.6.3", |
|
|
505 | 505 | "write": "1.0.3" |
|
|
506 | 506 | } |
|
|
507 | 507 | }, |
|
|
508 | 508 | "flatted": { |
|
|
509 | 509 | "version": "2.0.1", |
|
|
510 | 510 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", |
|
|
511 | 511 | "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", |
|
|
512 | 512 | "dev": true |
|
|
513 | 513 | }, |
|
|
514 | 514 | "for-each": { |
|
|
515 | 515 | "version": "0.3.3", |
|
|
516 | 516 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", |
|
|
517 | 517 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", |
|
|
518 | 518 | "dev": true, |
|
|
519 | 519 | "requires": { |
|
|
520 | 520 | "is-callable": "^1.1.3" |
|
|
521 | 521 | } |
|
|
522 | 522 | }, |
|
|
523 | 523 | "fs.realpath": { |
|
|
524 | 524 | "version": "1.0.0", |
|
|
525 | 525 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", |
|
|
526 | 526 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", |
|
|
527 | 527 | "dev": true |
|
|
528 | 528 | }, |
|
|
529 | 529 | "function-bind": { |
|
|
530 | 530 | "version": "1.1.1", |
|
|
531 | 531 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", |
|
|
532 | 532 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", |
|
|
533 | 533 | "dev": true |
|
|
534 | 534 | }, |
|
|
535 | 535 | "functional-red-black-tree": { |
|
|
536 | 536 | "version": "1.0.1", |
|
|
537 | 537 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", |
|
|
538 | 538 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", |
|
|
539 | 539 | "dev": true |
|
|
540 | 540 | }, |
|
|
541 | 541 | "glob": { |
|
|
542 | 542 | "version": "7.1.4", |
|
|
543 | 543 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", |
|
|
544 | 544 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", |
|
|
545 | 545 | "dev": true, |
|
|
546 | 546 | "requires": { |
|
|
547 | 547 | "fs.realpath": "^1.0.0", |
|
|
548 | 548 | "inflight": "^1.0.4", |
|
|
549 | 549 | "inherits": "2", |
|
|
550 | 550 | "minimatch": "^3.0.4", |
|
|
551 | 551 | "once": "^1.3.0", |
|
|
552 | 552 | "path-is-absolute": "^1.0.0" |
|
|
553 | 553 | } |
|
|
554 | 554 | }, |
|
|
555 | 555 | "glob-parent": { |
|
|
556 | 556 | "version": "5.1.0", |
|
|
557 | 557 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", |
|
|
558 | 558 | "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", |
|
|
559 | 559 | "dev": true, |
|
|
560 | 560 | "requires": { |
|
|
561 | 561 | "is-glob": "^4.0.1" |
|
|
562 | 562 | } |
|
|
563 | 563 | }, |
|
|
564 | 564 | "globals": { |
|
|
565 | 565 | "version": "11.12.0", |
|
|
566 | 566 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", |
|
|
567 | 567 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", |
|
|
568 | 568 | "dev": true |
|
|
569 | 569 | }, |
|
|
570 | 570 | "has": { |
|
|
571 | 571 | "version": "1.0.3", |
|
|
572 | 572 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", |
|
|
573 | 573 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", |
|
|
574 | 574 | "dev": true, |
|
|
575 | 575 | "requires": { |
|
|
576 | 576 | "function-bind": "^1.1.1" |
|
|
577 | 577 | } |
|
|
578 | 578 | }, |
|
|
579 | 579 | "has-flag": { |
|
|
580 | 580 | "version": "3.0.0", |
|
|
581 | 581 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", |
|
|
582 | 582 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", |
|
|
583 | 583 | "dev": true |
|
|
584 | 584 | }, |
|
|
585 | 585 | "has-symbols": { |
|
|
586 | 586 | "version": "1.0.0", |
|
|
587 | 587 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", |
|
|
588 | 588 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", |
|
|
589 | 589 | "dev": true |
|
|
590 | 590 | }, |
|
|
591 | 591 | "iconv-lite": { |
|
|
592 | 592 | "version": "0.4.24", |
|
|
593 | 593 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", |
|
|
594 | 594 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", |
|
|
595 | 595 | "dev": true, |
|
|
596 | 596 | "requires": { |
|
|
597 | 597 | "safer-buffer": ">= 2.1.2 < 3" |
|
|
598 | 598 | } |
|
|
599 | 599 | }, |
|
|
600 | 600 | "ignore": { |
|
|
601 | 601 | "version": "4.0.6", |
|
|
602 | 602 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", |
|
|
603 | 603 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", |
|
|
604 | 604 | "dev": true |
|
|
605 | 605 | }, |
|
|
606 | 606 | "import-fresh": { |
|
|
607 | 607 | "version": "3.1.0", |
|
|
608 | 608 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", |
|
|
609 | 609 | "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", |
|
|
610 | 610 | "dev": true, |
|
|
611 | 611 | "requires": { |
|
|
612 | 612 | "parent-module": "^1.0.0", |
|
|
613 | 613 | "resolve-from": "^4.0.0" |
|
|
614 | 614 | } |
|
|
615 | 615 | }, |
|
|
616 | 616 | "imurmurhash": { |
|
|
617 | 617 | "version": "0.1.4", |
|
|
618 | 618 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", |
|
|
619 | 619 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", |
|
|
620 | 620 | "dev": true |
|
|
621 | 621 | }, |
|
|
622 | 622 | "inflight": { |
|
|
623 | 623 | "version": "1.0.6", |
|
|
624 | 624 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", |
|
|
625 | 625 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", |
|
|
626 | 626 | "dev": true, |
|
|
627 | 627 | "requires": { |
|
|
628 | 628 | "once": "^1.3.0", |
|
|
629 | 629 | "wrappy": "1" |
|
|
630 | 630 | } |
|
|
631 | 631 | }, |
|
|
632 | 632 | "inherits": { |
|
|
633 | 633 | "version": "2.0.3", |
|
|
634 | 634 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", |
|
|
635 | 635 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", |
|
|
636 | 636 | "dev": true |
|
|
637 | 637 | }, |
|
|
638 | 638 | "inquirer": { |
|
|
639 | 639 | "version": "6.5.2", |
|
|
640 | 640 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", |
|
|
641 | 641 | "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", |
|
|
642 | 642 | "dev": true, |
|
|
643 | 643 | "requires": { |
|
|
644 | 644 | "ansi-escapes": "^3.2.0", |
|
|
645 | 645 | "chalk": "^2.4.2", |
|
|
646 | 646 | "cli-cursor": "^2.1.0", |
|
|
647 | 647 | "cli-width": "^2.0.0", |
|
|
648 | 648 | "external-editor": "^3.0.3", |
|
|
649 | 649 | "figures": "^2.0.0", |
|
|
650 | 650 | "lodash": "^4.17.12", |
|
|
651 | 651 | "mute-stream": "0.0.7", |
|
|
652 | 652 | "run-async": "^2.2.0", |
|
|
653 | 653 | "rxjs": "^6.4.0", |
|
|
654 | 654 | "string-width": "^2.1.0", |
|
|
655 | 655 | "strip-ansi": "^5.1.0", |
|
|
656 | 656 | "through": "^2.3.6" |
|
|
657 | 657 | } |
|
|
658 | 658 | }, |
|
|
659 | 659 | "is-callable": { |
|
|
660 | 660 | "version": "1.1.4", |
|
|
661 | 661 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", |
|
|
662 | 662 | "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", |
|
|
663 | 663 | "dev": true |
|
|
664 | 664 | }, |
|
|
665 | 665 | "is-date-object": { |
|
|
666 | 666 | "version": "1.0.1", |
|
|
667 | 667 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", |
|
|
668 | 668 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", |
|
|
669 | 669 | "dev": true |
|
|
670 | 670 | }, |
|
|
671 | 671 | "is-extglob": { |
|
|
672 | 672 | "version": "2.1.1", |
|
|
673 | 673 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", |
|
|
674 | 674 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", |
|
|
675 | 675 | "dev": true |
|
|
676 | 676 | }, |
|
|
677 | 677 | "is-fullwidth-code-point": { |
|
|
678 | 678 | "version": "2.0.0", |
|
|
679 | 679 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", |
|
|
680 | 680 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", |
|
|
681 | 681 | "dev": true |
|
|
682 | 682 | }, |
|
|
683 | 683 | "is-glob": { |
|
|
684 | 684 | "version": "4.0.1", |
|
|
685 | 685 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", |
|
|
686 | 686 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", |
|
|
687 | 687 | "dev": true, |
|
|
688 | 688 | "requires": { |
|
|
689 | 689 | "is-extglob": "^2.1.1" |
|
|
690 | 690 | } |
|
|
691 | 691 | }, |
|
|
692 | 692 | "is-promise": { |
|
|
693 | 693 | "version": "2.1.0", |
|
|
694 | 694 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", |
|
|
695 | 695 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", |
|
|
696 | 696 | "dev": true |
|
|
697 | 697 | }, |
|
|
698 | 698 | "is-regex": { |
|
|
699 | 699 | "version": "1.0.4", |
|
|
700 | 700 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", |
|
|
701 | 701 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", |
|
|
702 | 702 | "dev": true, |
|
|
703 | 703 | "requires": { |
|
|
704 | 704 | "has": "^1.0.1" |
|
|
705 | 705 | } |
|
|
706 | 706 | }, |
|
|
707 | 707 | "is-symbol": { |
|
|
708 | 708 | "version": "1.0.2", |
|
|
709 | 709 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", |
|
|
710 | 710 | "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", |
|
|
711 | 711 | "dev": true, |
|
|
712 | 712 | "requires": { |
|
|
713 | 713 | "has-symbols": "^1.0.0" |
|
|
714 | 714 | } |
|
|
715 | 715 | }, |
|
|
716 | 716 | "isexe": { |
|
|
717 | 717 | "version": "2.0.0", |
|
|
718 | 718 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", |
|
|
719 | 719 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", |
|
|
720 | 720 | "dev": true |
|
|
721 | 721 | }, |
|
|
722 | 722 | "js-tokens": { |
|
|
723 | 723 | "version": "4.0.0", |
|
|
724 | 724 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", |
|
|
725 | 725 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", |
|
|
726 | 726 | "dev": true |
|
|
727 | 727 | }, |
|
|
728 | 728 | "js-yaml": { |
|
|
729 | 729 | "version": "3.13.1", |
|
|
730 | 730 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", |
|
|
731 | 731 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", |
|
|
732 | 732 | "dev": true, |
|
|
733 | 733 | "requires": { |
|
|
734 | 734 | "argparse": "^1.0.7", |
|
|
735 | 735 | "esprima": "^4.0.0" |
|
|
736 | 736 | } |
|
|
737 | 737 | }, |
|
|
738 | 738 | "json-schema-traverse": { |
|
|
739 | 739 | "version": "0.4.1", |
|
|
740 | 740 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", |
|
|
741 | 741 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", |
|
|
742 | 742 | "dev": true |
|
|
743 | 743 | }, |
|
|
744 | 744 | "json-stable-stringify-without-jsonify": { |
|
|
745 | 745 | "version": "1.0.1", |
|
|
746 | 746 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", |
|
|
747 | 747 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", |
|
|
748 | 748 | "dev": true |
|
|
749 | 749 | }, |
|
|
750 | 750 | "levn": { |
|
|
751 | 751 | "version": "0.3.0", |
|
|
752 | 752 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", |
|
|
753 | 753 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", |
|
|
754 | 754 | "dev": true, |
|
|
755 | 755 | "requires": { |
|
|
756 | 756 | "prelude-ls": "~1.1.2", |
|
|
757 | 757 | "type-check": "~0.3.2" |
|
|
758 | 758 | } |
|
|
759 | 759 | }, |
|
|
760 | 760 | "lodash": { |
|
|
761 | 761 | "version": "4.17.15", |
|
|
762 | 762 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", |
|
|
763 | 763 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", |
|
|
764 | 764 | "dev": true |
|
|
765 | 765 | }, |
|
|
766 | 766 | "mimic-fn": { |
|
|
767 | 767 | "version": "1.2.0", |
|
|
768 | 768 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", |
|
|
769 | 769 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", |
|
|
770 | 770 | "dev": true |
|
|
771 | 771 | }, |
|
|
772 | 772 | "minimatch": { |
|
|
773 | 773 | "version": "3.0.4", |
|
|
774 | 774 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", |
|
|
775 | 775 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", |
|
|
776 | 776 | "dev": true, |
|
|
777 | 777 | "requires": { |
|
|
778 | 778 | "brace-expansion": "^1.1.7" |
|
|
779 | 779 | } |
|
|
780 | 780 | }, |
|
|
781 | 781 | "minimist": { |
|
|
782 | 782 | "version": "0.0.8", |
|
|
783 | 783 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", |
|
|
784 | 784 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", |
|
|
785 | 785 | "dev": true |
|
|
786 | 786 | }, |
|
|
787 | 787 | "mkdirp": { |
|
|
788 | 788 | "version": "0.5.1", |
|
|
789 | 789 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", |
|
|
790 | 790 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", |
|
|
791 | 791 | "dev": true, |
|
|
792 | 792 | "requires": { |
|
|
793 | 793 | "minimist": "0.0.8" |
|
|
794 | 794 | } |
|
|
795 | 795 | }, |
|
|
796 | 796 | "ms": { |
|
|
797 | 797 | "version": "2.1.2", |
|
|
798 | 798 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", |
|
|
799 | 799 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", |
|
|
800 | 800 | "dev": true |
|
|
801 | 801 | }, |
|
|
802 | 802 | "mute-stream": { |
|
|
803 | 803 | "version": "0.0.7", |
|
|
804 | 804 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", |
|
|
805 | 805 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", |
|
|
806 | 806 | "dev": true |
|
|
807 | 807 | }, |
|
|
808 | 808 | "natural-compare": { |
|
|
809 | 809 | "version": "1.4.0", |
|
|
810 | 810 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", |
|
|
811 | 811 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", |
|
|
812 | 812 | "dev": true |
|
|
813 | 813 | }, |
|
|
814 | 814 | "nice-try": { |
|
|
815 | 815 | "version": "1.0.5", |
|
|
816 | 816 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", |
|
|
817 | 817 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", |
|
|
818 | 818 | "dev": true |
|
|
819 | 819 | }, |
|
|
820 | 820 | "object-inspect": { |
|
|
821 | 821 | "version": "1.6.0", |
|
|
822 | 822 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", |
|
|
823 | 823 | "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", |
|
|
824 | 824 | "dev": true |
|
|
825 | 825 | }, |
|
|
826 | 826 | "once": { |
|
|
827 | 827 | "version": "1.4.0", |
|
|
828 | 828 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |
|
|
829 | 829 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", |
|
|
830 | 830 | "dev": true, |
|
|
831 | 831 | "requires": { |
|
|
832 | 832 | "wrappy": "1" |
|
|
833 | 833 | } |
|
|
834 | 834 | }, |
|
|
835 | 835 | "onetime": { |
|
|
836 | 836 | "version": "2.0.1", |
|
|
837 | 837 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", |
|
|
838 | 838 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", |
|
|
839 | 839 | "dev": true, |
|
|
840 | 840 | "requires": { |
|
|
841 | 841 | "mimic-fn": "^1.0.0" |
|
|
842 | 842 | } |
|
|
843 | 843 | }, |
|
|
844 | 844 | "optionator": { |
|
|
845 | 845 | "version": "0.8.2", |
|
|
846 | 846 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", |
|
|
847 | 847 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", |
|
|
848 | 848 | "dev": true, |
|
|
849 | 849 | "requires": { |
|
|
850 | 850 | "deep-is": "~0.1.3", |
|
|
851 | 851 | "fast-levenshtein": "~2.0.4", |
|
|
852 | 852 | "levn": "~0.3.0", |
|
|
853 | 853 | "prelude-ls": "~1.1.2", |
|
|
854 | 854 | "type-check": "~0.3.2", |
|
|
855 | 855 | "wordwrap": "~1.0.0" |
|
|
856 | 856 | } |
|
|
857 | 857 | }, |
|
|
858 | 858 | "os-tmpdir": { |
|
|
859 | 859 | "version": "1.0.2", |
|
|
860 | 860 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", |
|
|
861 | 861 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", |
|
|
862 | 862 | "dev": true |
|
|
863 | 863 | }, |
|
|
864 | 864 | "parent-module": { |
|
|
865 | 865 | "version": "1.0.1", |
|
|
866 | 866 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", |
|
|
867 | 867 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", |
|
|
868 | 868 | "dev": true, |
|
|
869 | 869 | "requires": { |
|
|
870 | 870 | "callsites": "^3.0.0" |
|
|
871 | 871 | } |
|
|
872 | 872 | }, |
|
|
873 | 873 | "path-is-absolute": { |
|
|
874 | 874 | "version": "1.0.1", |
|
|
875 | 875 | "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", |
|
|
876 | 876 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", |
|
|
877 | 877 | "dev": true |
|
|
878 | 878 | }, |
|
|
879 | 879 | "path-key": { |
|
|
880 | 880 | "version": "2.0.1", |
|
|
881 | 881 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", |
|
|
882 | 882 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", |
|
|
883 | 883 | "dev": true |
|
|
884 | 884 | }, |
|
|
885 | 885 | "path-parse": { |
|
|
886 | 886 | "version": "1.0.6", |
|
|
887 | 887 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", |
|
|
888 | 888 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", |
|
|
889 | 889 | "dev": true |
|
|
890 | 890 | }, |
|
|
891 | 891 | "prelude-ls": { |
|
|
892 | 892 | "version": "1.1.2", |
|
|
893 | 893 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", |
|
|
894 | 894 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", |
|
|
895 | 895 | "dev": true |
|
|
896 | 896 | }, |
|
|
897 | 897 | "progress": { |
|
|
898 | 898 | "version": "2.0.3", |
|
|
899 | 899 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", |
|
|
900 | 900 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", |
|
|
901 | 901 | "dev": true |
|
|
902 | 902 | }, |
|
|
903 | 903 | "punycode": { |
|
|
904 | 904 | "version": "2.1.1", |
|
|
905 | 905 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", |
|
|
906 | 906 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", |
|
|
907 | 907 | "dev": true |
|
|
908 | 908 | }, |
|
|
909 | 909 | "regexpp": { |
|
|
910 | 910 | "version": "2.0.1", |
|
|
911 | 911 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", |
|
|
912 | 912 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", |
|
|
913 | 913 | "dev": true |
|
|
914 | 914 | }, |
|
|
915 | 915 | "requirejs": { |
|
|
916 | 916 | "version": "2.3.6", |
|
|
917 | 917 | "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz", |
|
|
918 | 918 | "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", |
|
|
919 | 919 | "dev": true |
|
|
920 | 920 | }, |
|
|
921 | 921 | "resolve": { |
|
|
922 | 922 | "version": "1.11.1", |
|
|
923 | 923 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", |
|
|
924 | 924 | "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", |
|
|
925 | 925 | "dev": true, |
|
|
926 | 926 | "requires": { |
|
|
927 | 927 | "path-parse": "^1.0.6" |
|
|
928 | 928 | } |
|
|
929 | 929 | }, |
|
|
930 | 930 | "resolve-from": { |
|
|
931 | 931 | "version": "4.0.0", |
|
|
932 | 932 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", |
|
|
933 | 933 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", |
|
|
934 | 934 | "dev": true |
|
|
935 | 935 | }, |
|
|
936 | 936 | "restore-cursor": { |
|
|
937 | 937 | "version": "2.0.0", |
|
|
938 | 938 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", |
|
|
939 | 939 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", |
|
|
940 | 940 | "dev": true, |
|
|
941 | 941 | "requires": { |
|
|
942 | 942 | "onetime": "^2.0.0", |
|
|
943 | 943 | "signal-exit": "^3.0.2" |
|
|
944 | 944 | } |
|
|
945 | 945 | }, |
|
|
946 | 946 | "resumer": { |
|
|
947 | 947 | "version": "0.0.0", |
|
|
948 | 948 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", |
|
|
949 | 949 | "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", |
|
|
950 | 950 | "dev": true, |
|
|
951 | 951 | "requires": { |
|
|
952 | 952 | "through": "~2.3.4" |
|
|
953 | 953 | } |
|
|
954 | 954 | }, |
|
|
955 | 955 | "rimraf": { |
|
|
956 | 956 | "version": "2.6.3", |
|
|
957 | 957 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", |
|
|
958 | 958 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", |
|
|
959 | 959 | "dev": true, |
|
|
960 | 960 | "requires": { |
|
|
961 | 961 | "glob": "^7.1.3" |
|
|
962 | 962 | } |
|
|
963 | 963 | }, |
|
|
964 | 964 | "run-async": { |
|
|
965 | 965 | "version": "2.3.0", |
|
|
966 | 966 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", |
|
|
967 | 967 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", |
|
|
968 | 968 | "dev": true, |
|
|
969 | 969 | "requires": { |
|
|
970 | 970 | "is-promise": "^2.1.0" |
|
|
971 | 971 | } |
|
|
972 | 972 | }, |
|
|
973 | 973 | "rxjs": { |
|
|
974 | 974 | "version": "6.5.3", |
|
|
975 | 975 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", |
|
|
976 | 976 | "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", |
|
|
977 | 977 | "dev": true, |
|
|
978 | 978 | "requires": { |
|
|
979 | 979 | "tslib": "^1.9.0" |
|
|
980 | 980 | } |
|
|
981 | 981 | }, |
|
|
982 | 982 | "safer-buffer": { |
|
|
983 | 983 | "version": "2.1.2", |
|
|
984 | 984 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", |
|
|
985 | 985 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", |
|
|
986 | 986 | "dev": true |
|
|
987 | 987 | }, |
|
|
988 | 988 | "semver": { |
|
|
989 | 989 | "version": "6.3.0", |
|
|
990 | 990 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", |
|
|
991 | 991 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", |
|
|
992 | 992 | "dev": true |
|
|
993 | 993 | }, |
|
|
994 | 994 | "shebang-command": { |
|
|
995 | 995 | "version": "1.2.0", |
|
|
996 | 996 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", |
|
|
997 | 997 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", |
|
|
998 | 998 | "dev": true, |
|
|
999 | 999 | "requires": { |
|
|
1000 | 1000 | "shebang-regex": "^1.0.0" |
|
|
1001 | 1001 | } |
|
|
1002 | 1002 | }, |
|
|
1003 | 1003 | "shebang-regex": { |
|
|
1004 | 1004 | "version": "1.0.0", |
|
|
1005 | 1005 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", |
|
|
1006 | 1006 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", |
|
|
1007 | 1007 | "dev": true |
|
|
1008 | 1008 | }, |
|
|
1009 | 1009 | "signal-exit": { |
|
|
1010 | 1010 | "version": "3.0.2", |
|
|
1011 | 1011 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", |
|
|
1012 | 1012 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", |
|
|
1013 | 1013 | "dev": true |
|
|
1014 | 1014 | }, |
|
|
1015 | 1015 | "slice-ansi": { |
|
|
1016 | 1016 | "version": "2.1.0", |
|
|
1017 | 1017 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", |
|
|
1018 | 1018 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", |
|
|
1019 | 1019 | "dev": true, |
|
|
1020 | 1020 | "requires": { |
|
|
1021 | 1021 | "ansi-styles": "^3.2.0", |
|
|
1022 | 1022 | "astral-regex": "^1.0.0", |
|
|
1023 | 1023 | "is-fullwidth-code-point": "^2.0.0" |
|
|
1024 | 1024 | } |
|
|
1025 | 1025 | }, |
|
|
1026 | 1026 | "sprintf-js": { |
|
|
1027 | 1027 | "version": "1.0.3", |
|
|
1028 | 1028 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", |
|
|
1029 | 1029 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", |
|
|
1030 | 1030 | "dev": true |
|
|
1031 | 1031 | }, |
|
|
1032 | 1032 | "string-width": { |
|
|
1033 | 1033 | "version": "2.1.1", |
|
|
1034 | 1034 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", |
|
|
1035 | 1035 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", |
|
|
1036 | 1036 | "dev": true, |
|
|
1037 | 1037 | "requires": { |
|
|
1038 | 1038 | "is-fullwidth-code-point": "^2.0.0", |
|
|
1039 | 1039 | "strip-ansi": "^4.0.0" |
|
|
1040 | 1040 | }, |
|
|
1041 | 1041 | "dependencies": { |
|
|
1042 | 1042 | "strip-ansi": { |
|
|
1043 | 1043 | "version": "4.0.0", |
|
|
1044 | 1044 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", |
|
|
1045 | 1045 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", |
|
|
1046 | 1046 | "dev": true, |
|
|
1047 | 1047 | "requires": { |
|
|
1048 | 1048 | "ansi-regex": "^3.0.0" |
|
|
1049 | 1049 | } |
|
|
1050 | 1050 | } |
|
|
1051 | 1051 | } |
|
|
1052 | 1052 | }, |
|
|
1053 | 1053 | "string.prototype.trim": { |
|
|
1054 | 1054 | "version": "1.1.2", |
|
|
1055 | 1055 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", |
|
|
1056 | 1056 | "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", |
|
|
1057 | 1057 | "dev": true, |
|
|
1058 | 1058 | "requires": { |
|
|
1059 | 1059 | "define-properties": "^1.1.2", |
|
|
1060 | 1060 | "es-abstract": "^1.5.0", |
|
|
1061 | 1061 | "function-bind": "^1.0.2" |
|
|
1062 | 1062 | } |
|
|
1063 | 1063 | }, |
|
|
1064 | 1064 | "string.prototype.trimleft": { |
|
|
1065 | 1065 | "version": "2.1.0", |
|
|
1066 | 1066 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", |
|
|
1067 | 1067 | "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", |
|
|
1068 | 1068 | "dev": true, |
|
|
1069 | 1069 | "requires": { |
|
|
1070 | 1070 | "define-properties": "^1.1.3", |
|
|
1071 | 1071 | "function-bind": "^1.1.1" |
|
|
1072 | 1072 | } |
|
|
1073 | 1073 | }, |
|
|
1074 | 1074 | "string.prototype.trimright": { |
|
|
1075 | 1075 | "version": "2.1.0", |
|
|
1076 | 1076 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", |
|
|
1077 | 1077 | "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", |
|
|
1078 | 1078 | "dev": true, |
|
|
1079 | 1079 | "requires": { |
|
|
1080 | 1080 | "define-properties": "^1.1.3", |
|
|
1081 | 1081 | "function-bind": "^1.1.1" |
|
|
1082 | 1082 | } |
|
|
1083 | 1083 | }, |
|
|
1084 | 1084 | "strip-ansi": { |
|
|
1085 | 1085 | "version": "5.2.0", |
|
|
1086 | 1086 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", |
|
|
1087 | 1087 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", |
|
|
1088 | 1088 | "dev": true, |
|
|
1089 | 1089 | "requires": { |
|
|
1090 | 1090 | "ansi-regex": "^4.1.0" |
|
|
1091 | 1091 | }, |
|
|
1092 | 1092 | "dependencies": { |
|
|
1093 | 1093 | "ansi-regex": { |
|
|
1094 | 1094 | "version": "4.1.0", |
|
|
1095 | 1095 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", |
|
|
1096 | 1096 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", |
|
|
1097 | 1097 | "dev": true |
|
|
1098 | 1098 | } |
|
|
1099 | 1099 | } |
|
|
1100 | 1100 | }, |
|
|
1101 | 1101 | "strip-json-comments": { |
|
|
1102 | 1102 | "version": "3.0.1", |
|
|
1103 | 1103 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", |
|
|
1104 | 1104 | "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", |
|
|
1105 | 1105 | "dev": true |
|
|
1106 | 1106 | }, |
|
|
1107 | 1107 | "supports-color": { |
|
|
1108 | 1108 | "version": "5.5.0", |
|
|
1109 | 1109 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", |
|
|
1110 | 1110 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", |
|
|
1111 | 1111 | "dev": true, |
|
|
1112 | 1112 | "requires": { |
|
|
1113 | 1113 | "has-flag": "^3.0.0" |
|
|
1114 | 1114 | } |
|
|
1115 | 1115 | }, |
|
|
1116 | 1116 | "table": { |
|
|
1117 | 1117 | "version": "5.4.6", |
|
|
1118 | 1118 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", |
|
|
1119 | 1119 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", |
|
|
1120 | 1120 | "dev": true, |
|
|
1121 | 1121 | "requires": { |
|
|
1122 | 1122 | "ajv": "^6.10.2", |
|
|
1123 | 1123 | "lodash": "^4.17.14", |
|
|
1124 | 1124 | "slice-ansi": "^2.1.0", |
|
|
1125 | 1125 | "string-width": "^3.0.0" |
|
|
1126 | 1126 | }, |
|
|
1127 | 1127 | "dependencies": { |
|
|
1128 | 1128 | "string-width": { |
|
|
1129 | 1129 | "version": "3.1.0", |
|
|
1130 | 1130 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", |
|
|
1131 | 1131 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", |
|
|
1132 | 1132 | "dev": true, |
|
|
1133 | 1133 | "requires": { |
|
|
1134 | 1134 | "emoji-regex": "^7.0.1", |
|
|
1135 | 1135 | "is-fullwidth-code-point": "^2.0.0", |
|
|
1136 | 1136 | "strip-ansi": "^5.1.0" |
|
|
1137 | 1137 | } |
|
|
1138 | 1138 | } |
|
|
1139 | 1139 | } |
|
|
1140 | 1140 | }, |
|
|
1141 | 1141 | "tape": { |
|
|
1142 | 1142 | "version": "4.11.0", |
|
|
1143 | 1143 | "resolved": "https://registry.npmjs.org/tape/-/tape-4.11.0.tgz", |
|
|
1144 | 1144 | "integrity": "sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA==", |
|
|
1145 | 1145 | "dev": true, |
|
|
1146 | 1146 | "requires": { |
|
|
1147 | 1147 | "deep-equal": "~1.0.1", |
|
|
1148 | 1148 | "defined": "~1.0.0", |
|
|
1149 | 1149 | "for-each": "~0.3.3", |
|
|
1150 | 1150 | "function-bind": "~1.1.1", |
|
|
1151 | 1151 | "glob": "~7.1.4", |
|
|
1152 | 1152 | "has": "~1.0.3", |
|
|
1153 | 1153 | "inherits": "~2.0.4", |
|
|
1154 | 1154 | "minimist": "~1.2.0", |
|
|
1155 | 1155 | "object-inspect": "~1.6.0", |
|
|
1156 | 1156 | "resolve": "~1.11.1", |
|
|
1157 | 1157 | "resumer": "~0.0.0", |
|
|
1158 | 1158 | "string.prototype.trim": "~1.1.2", |
|
|
1159 | 1159 | "through": "~2.3.8" |
|
|
1160 | 1160 | }, |
|
|
1161 | 1161 | "dependencies": { |
|
|
1162 | 1162 | "deep-equal": { |
|
|
1163 | 1163 | "version": "1.0.1", |
|
|
1164 | 1164 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", |
|
|
1165 | 1165 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", |
|
|
1166 | 1166 | "dev": true |
|
|
1167 | 1167 | }, |
|
|
1168 | 1168 | "defined": { |
|
|
1169 | 1169 | "version": "1.0.0", |
|
|
1170 | 1170 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", |
|
|
1171 | 1171 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", |
|
|
1172 | 1172 | "dev": true |
|
|
1173 | 1173 | }, |
|
|
1174 | 1174 | "inherits": { |
|
|
1175 | 1175 | "version": "2.0.4", |
|
|
1176 | 1176 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", |
|
|
1177 | 1177 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", |
|
|
1178 | 1178 | "dev": true |
|
|
1179 | 1179 | }, |
|
|
1180 | 1180 | "minimist": { |
|
|
1181 | 1181 | "version": "1.2.0", |
|
|
1182 | 1182 | "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", |
|
|
1183 | 1183 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", |
|
|
1184 | 1184 | "dev": true |
|
|
1185 | 1185 | } |
|
|
1186 | 1186 | } |
|
|
1187 | 1187 | }, |
|
|
1188 | 1188 | "text-table": { |
|
|
1189 | 1189 | "version": "0.2.0", |
|
|
1190 | 1190 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", |
|
|
1191 | 1191 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", |
|
|
1192 | 1192 | "dev": true |
|
|
1193 | 1193 | }, |
|
|
1194 | 1194 | "through": { |
|
|
1195 | 1195 | "version": "2.3.8", |
|
|
1196 | 1196 | "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", |
|
|
1197 | 1197 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", |
|
|
1198 | 1198 | "dev": true |
|
|
1199 | 1199 | }, |
|
|
1200 | 1200 | "tmp": { |
|
|
1201 | 1201 | "version": "0.0.33", |
|
|
1202 | 1202 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", |
|
|
1203 | 1203 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", |
|
|
1204 | 1204 | "dev": true, |
|
|
1205 | 1205 | "requires": { |
|
|
1206 | 1206 | "os-tmpdir": "~1.0.2" |
|
|
1207 | 1207 | } |
|
|
1208 | 1208 | }, |
|
|
1209 | 1209 | "tslib": { |
|
|
1210 | 1210 | "version": "1.10.0", |
|
|
1211 | 1211 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", |
|
|
1212 | 1212 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", |
|
|
1213 | 1213 | "dev": true |
|
|
1214 | 1214 | }, |
|
|
1215 | 1215 | "tslint": { |
|
|
1216 | 1216 | "version": "5.18.0", |
|
|
1217 | 1217 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz", |
|
|
1218 | 1218 | "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==", |
|
|
1219 | 1219 | "dev": true, |
|
|
1220 | 1220 | "requires": { |
|
|
1221 | 1221 | "@babel/code-frame": "^7.0.0", |
|
|
1222 | 1222 | "builtin-modules": "^1.1.1", |
|
|
1223 | 1223 | "chalk": "^2.3.0", |
|
|
1224 | 1224 | "commander": "^2.12.1", |
|
|
1225 | 1225 | "diff": "^3.2.0", |
|
|
1226 | 1226 | "glob": "^7.1.1", |
|
|
1227 | 1227 | "js-yaml": "^3.13.1", |
|
|
1228 | 1228 | "minimatch": "^3.0.4", |
|
|
1229 | 1229 | "mkdirp": "^0.5.1", |
|
|
1230 | 1230 | "resolve": "^1.3.2", |
|
|
1231 | 1231 | "semver": "^5.3.0", |
|
|
1232 | 1232 | "tslib": "^1.8.0", |
|
|
1233 | 1233 | "tsutils": "^2.29.0" |
|
|
1234 | 1234 | }, |
|
|
1235 | 1235 | "dependencies": { |
|
|
1236 | 1236 | "semver": { |
|
|
1237 | 1237 | "version": "5.7.1", |
|
|
1238 | 1238 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", |
|
|
1239 | 1239 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", |
|
|
1240 | 1240 | "dev": true |
|
|
1241 | 1241 | } |
|
|
1242 | 1242 | } |
|
|
1243 | 1243 | }, |
|
|
1244 | 1244 | "tsutils": { |
|
|
1245 | 1245 | "version": "2.29.0", |
|
|
1246 | 1246 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", |
|
|
1247 | 1247 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", |
|
|
1248 | 1248 | "dev": true, |
|
|
1249 | 1249 | "requires": { |
|
|
1250 | 1250 | "tslib": "^1.8.1" |
|
|
1251 | 1251 | } |
|
|
1252 | 1252 | }, |
|
|
1253 | 1253 | "type-check": { |
|
|
1254 | 1254 | "version": "0.3.2", |
|
|
1255 | 1255 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", |
|
|
1256 | 1256 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", |
|
|
1257 | 1257 | "dev": true, |
|
|
1258 | 1258 | "requires": { |
|
|
1259 | 1259 | "prelude-ls": "~1.1.2" |
|
|
1260 | 1260 | } |
|
|
1261 | 1261 | }, |
|
|
1262 | 1262 | "typescript": { |
|
|
1263 |
"version": " |
|
|
|
1264 |
"resolved": "https://registry.npmjs.org/typescript/-/typescript- |
|
|
|
1265 | "integrity": "sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==", | |
|
|
1263 | "version": "4.1.5", | |
|
|
1264 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", | |
|
|
1265 | "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", | |
|
|
1266 | 1266 | "dev": true |
|
|
1267 | 1267 | }, |
|
|
1268 | 1268 | "uri-js": { |
|
|
1269 | 1269 | "version": "4.2.2", |
|
|
1270 | 1270 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", |
|
|
1271 | 1271 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", |
|
|
1272 | 1272 | "dev": true, |
|
|
1273 | 1273 | "requires": { |
|
|
1274 | 1274 | "punycode": "^2.1.0" |
|
|
1275 | 1275 | } |
|
|
1276 | 1276 | }, |
|
|
1277 | 1277 | "v8-compile-cache": { |
|
|
1278 | 1278 | "version": "2.1.0", |
|
|
1279 | 1279 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", |
|
|
1280 | 1280 | "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", |
|
|
1281 | 1281 | "dev": true |
|
|
1282 | 1282 | }, |
|
|
1283 | 1283 | "which": { |
|
|
1284 | 1284 | "version": "1.3.1", |
|
|
1285 | 1285 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", |
|
|
1286 | 1286 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", |
|
|
1287 | 1287 | "dev": true, |
|
|
1288 | 1288 | "requires": { |
|
|
1289 | 1289 | "isexe": "^2.0.0" |
|
|
1290 | 1290 | } |
|
|
1291 | 1291 | }, |
|
|
1292 | 1292 | "wordwrap": { |
|
|
1293 | 1293 | "version": "1.0.0", |
|
|
1294 | 1294 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", |
|
|
1295 | 1295 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", |
|
|
1296 | 1296 | "dev": true |
|
|
1297 | 1297 | }, |
|
|
1298 | 1298 | "wrappy": { |
|
|
1299 | 1299 | "version": "1.0.2", |
|
|
1300 | 1300 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", |
|
|
1301 | 1301 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", |
|
|
1302 | 1302 | "dev": true |
|
|
1303 | 1303 | }, |
|
|
1304 | 1304 | "write": { |
|
|
1305 | 1305 | "version": "1.0.3", |
|
|
1306 | 1306 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", |
|
|
1307 | 1307 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", |
|
|
1308 | 1308 | "dev": true, |
|
|
1309 | 1309 | "requires": { |
|
|
1310 | 1310 | "mkdirp": "^0.5.1" |
|
|
1311 | 1311 | } |
|
|
1312 | 1312 | } |
|
|
1313 | 1313 | } |
|
|
1314 | 1314 | } |
| @@ -1,34 +1,34 | |||
|
|
1 | 1 | { |
|
|
2 | 2 | "name": "@implab/core", |
|
|
3 | 3 | "version": "0.0.1-dev", |
|
|
4 | 4 | "description": "Dependency injection, logging, simple and fast text template engine", |
|
|
5 | 5 | "main": "main.js", |
|
|
6 | 6 | "keywords": [ |
|
|
7 | 7 | "di", |
|
|
8 | 8 | "ioc", |
|
|
9 | 9 | "logging", |
|
|
10 | 10 | "template engine", |
|
|
11 | 11 | "dependency injection" |
|
|
12 | 12 | ], |
|
|
13 | 13 | "author": "Implab team", |
|
|
14 | 14 | "license": "BSD-2-Clause", |
|
|
15 | 15 | "repository": "https://bitbucket.org/implab/implabjs", |
|
|
16 | 16 | "publishConfig": { |
|
|
17 | 17 | "access": "public" |
|
|
18 | 18 | }, |
|
|
19 | 19 | "peerDependencies": { |
|
|
20 | 20 | "dojo": "^1.10.0" |
|
|
21 | 21 | }, |
|
|
22 | 22 | "devDependencies": { |
|
|
23 | 23 | "@types/node": "^8.0.0", |
|
|
24 | 24 | "@types/requirejs": "~2.1.31", |
|
|
25 | 25 | "@types/tape": "~4.2.33", |
|
|
26 | 26 | "dojo": "~1.10.0", |
|
|
27 | 27 | "dojo-typings": "^1.11.9", |
|
|
28 | 28 | "requirejs": "latest", |
|
|
29 | 29 | "tape": "~4.11.0", |
|
|
30 |
"typescript": "~ |
|
|
|
30 | "typescript": "~4.1.5", | |
|
|
31 | 31 | "eslint": "6.1.0", |
|
|
32 | 32 | "tslint": "5.18.0" |
|
|
33 | 33 | } |
|
|
34 | 34 | } |
| @@ -1,520 +1,574 | |||
|
|
1 | 1 | import { ICancellable, Constructor, IDestroyable, ICancellation, IRemovable } from "./interfaces"; |
|
|
2 | 2 | |
|
|
3 | 3 | let _nextOid = 0; |
|
|
4 | 4 | const _oid = typeof Symbol === "function" ? |
|
|
5 | 5 | Symbol("__implab__oid__") : |
|
|
6 | 6 | "__implab__oid__"; |
|
|
7 | 7 | |
|
|
8 | function _noop() { } | |
|
|
9 | ||
|
|
8 | 10 | export function oid(instance: null | undefined): undefined; |
|
|
9 | 11 | export function oid(instance: NonNullable<any>): string; |
|
|
10 | 12 | export function oid(instance: any): string | undefined { |
|
|
11 | 13 | if (isNull(instance)) |
|
|
12 | 14 | return undefined; |
|
|
13 | 15 | |
|
|
14 | 16 | if (_oid in instance) |
|
|
15 | 17 | return instance[_oid]; |
|
|
16 | 18 | else |
|
|
17 | 19 | return (instance[_oid] = "oid_" + (++_nextOid)); |
|
|
18 | 20 | } |
|
|
19 | 21 | |
|
|
20 | 22 | const cancellationNone: ICancellation = { |
|
|
21 | 23 | isSupported(): boolean { |
|
|
22 | 24 | return false; |
|
|
23 | 25 | }, |
|
|
24 | 26 | |
|
|
25 | 27 | throwIfRequested(): void { |
|
|
26 | 28 | }, |
|
|
27 | 29 | |
|
|
28 | 30 | isRequested(): boolean { |
|
|
29 | 31 | return false; |
|
|
30 | 32 | }, |
|
|
31 | 33 | |
|
|
32 | 34 | register(_cb: (e: any) => void): IDestroyable { |
|
|
33 | 35 | return destroyed; |
|
|
34 | 36 | } |
|
|
35 | 37 | }; |
|
|
36 | 38 | |
|
|
37 | 39 | export function keys<T>(arg: T): (Extract<keyof T, string>)[] { |
|
|
38 | 40 | return isObject(arg) && arg ? Object.keys(arg) as (Extract<keyof T, string>)[] : []; |
|
|
39 | 41 | } |
|
|
40 | 42 | |
|
|
41 | 43 | export function isKeyof<T>(k: string, target: T): k is Extract<keyof T, string> { |
|
|
42 | 44 | return target && typeof target === "object" && k in target; |
|
|
43 | 45 | } |
|
|
44 | 46 | |
|
|
45 | 47 | export function argumentNotNull(arg: any, name: string) { |
|
|
46 | 48 | if (arg === null || arg === undefined) |
|
|
47 | 49 | throw new Error("The argument " + name + " can't be null or undefined"); |
|
|
48 | 50 | } |
|
|
49 | 51 | |
|
|
50 | 52 | export function argumentNotEmptyString(arg: any, name: string) { |
|
|
51 | 53 | if (typeof (arg) !== "string" || !arg.length) |
|
|
52 | 54 | throw new Error("The argument '" + name + "' must be a not empty string"); |
|
|
53 | 55 | } |
|
|
54 | 56 | |
|
|
55 | 57 | export function argumentNotEmptyArray(arg: any, name: string) { |
|
|
56 | 58 | if (!(arg instanceof Array) || !arg.length) |
|
|
57 | 59 | throw new Error("The argument '" + name + "' must be a not empty array"); |
|
|
58 | 60 | } |
|
|
59 | 61 | |
|
|
60 | 62 | export function argumentOfType(arg: any, type: Constructor<{}>, name: string) { |
|
|
61 | 63 | if (!(arg instanceof type)) |
|
|
62 | 64 | throw new Error("The argument '" + name + "' type doesn't match"); |
|
|
63 | 65 | } |
|
|
64 | 66 | |
|
|
65 | 67 | export function isNull(val: any): val is null | undefined { |
|
|
66 | 68 | return (val === null || val === undefined); |
|
|
67 | 69 | } |
|
|
68 | 70 | |
|
|
69 | 71 | export type primitive = symbol | string | number | boolean | undefined | null; |
|
|
70 | 72 | |
|
|
71 | 73 | export function isPrimitive(val: any): val is primitive { |
|
|
72 | 74 | return (val === null || val === undefined || typeof (val) === "string" || |
|
|
73 | 75 | typeof (val) === "number" || typeof (val) === "boolean"); |
|
|
74 | 76 | } |
|
|
75 | 77 | |
|
|
76 | 78 | export function isObject<T>(value: T): value is Exclude<T & object, primitive> { |
|
|
77 | 79 | return !!(value && typeof value === "object"); |
|
|
78 | 80 | } |
|
|
79 | 81 | |
|
|
80 | 82 | export function isInteger(val: any): val is number { |
|
|
81 | 83 | return parseInt(val, 10) === val; |
|
|
82 | 84 | } |
|
|
83 | 85 | |
|
|
84 | 86 | export function isNumber(val: any): val is number { |
|
|
85 | 87 | return parseFloat(val) === val; |
|
|
86 | 88 | } |
|
|
87 | 89 | |
|
|
88 | 90 | export function isString(val: any): val is string { |
|
|
89 | 91 | return typeof (val) === "string"; |
|
|
90 | 92 | } |
|
|
91 | 93 | |
|
|
92 | 94 | export function isPromise<T = any>(val: any): val is PromiseLike<T> { |
|
|
93 | 95 | return !!(val && typeof val.then === "function"); |
|
|
94 | 96 | } |
|
|
95 | 97 | |
|
|
96 | 98 | export function isCancellable(val: any): val is ICancellable { |
|
|
97 | 99 | return !!(val && typeof val.cancel === "function"); |
|
|
98 | 100 | } |
|
|
99 | 101 | |
|
|
100 | 102 | export function isNullOrEmptyString(val: any): val is ("" | null | undefined) { |
|
|
101 | 103 | return (val === null || val === undefined || |
|
|
102 | 104 | ((typeof (val) === "string" || val instanceof String) && val.length === 0)); |
|
|
103 | 105 | } |
|
|
104 | 106 | |
|
|
105 | 107 | export function isNotEmptyArray<T = any>(arg: any): arg is T[] { |
|
|
106 | 108 | return (arg instanceof Array && arg.length > 0); |
|
|
107 | 109 | } |
|
|
108 | 110 | |
|
|
109 | 111 | function _isStrictMode(this: any) { |
|
|
110 | 112 | return !this; |
|
|
111 | 113 | } |
|
|
112 | 114 | |
|
|
113 | 115 | function _getNonStrictGlobal(this: any) { |
|
|
114 | 116 | return this; |
|
|
115 | 117 | } |
|
|
116 | 118 | |
|
|
117 | 119 | export function getGlobal() { |
|
|
118 | 120 | // in es3 we can't use indirect call to eval, since it will |
|
|
119 | 121 | // be executed in the current call context. |
|
|
120 | 122 | if (!_isStrictMode()) { |
|
|
121 | 123 | return _getNonStrictGlobal(); |
|
|
122 | 124 | } else { |
|
|
123 | 125 | // tslint:disable-next-line:no-eval |
|
|
124 | 126 | return eval.call(null, "this"); |
|
|
125 | 127 | } |
|
|
126 | 128 | } |
|
|
127 | 129 | |
|
|
128 | 130 | export function get(member: string, context?: object) { |
|
|
129 | 131 | argumentNotEmptyString(member, "member"); |
|
|
130 | 132 | let that = context || getGlobal(); |
|
|
131 | 133 | const parts = member.split("."); |
|
|
132 | 134 | for (const m of parts) { |
|
|
133 | 135 | if (!m) |
|
|
134 | 136 | continue; |
|
|
135 | 137 | if (isNull(that = that[m])) |
|
|
136 | 138 | break; |
|
|
137 | 139 | } |
|
|
138 | 140 | return that; |
|
|
139 | 141 | } |
|
|
140 | 142 | |
|
|
141 | 143 | /** |
|
|
142 | 144 | * ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° |
|
|
143 | 145 | * Π»ΠΈΠ±ΠΎ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΠΊΠΎΠ½Π΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Π»ΠΈΠ±ΠΎ ΡΡΠ½ΠΊΡΠΈΡ <c>cb</c> Π²Π΅ΡΠ½ΡΠ»Π° |
|
|
144 | 146 | * Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. |
|
|
145 | 147 | * |
|
|
146 | 148 | * @param {Array | Object} obj ΠΌΠ°ΡΡΠΈΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° |
|
|
147 | 149 | * @param {Function} cb ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° |
|
|
148 | 150 | * @param {Object} thisArg Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ |
|
|
149 | 151 | * <c>this</c> Π² <c>cb</c>. |
|
|
150 | 152 | * @returns {void} |
|
|
151 | 153 | */ |
|
|
152 | 154 | export function each<T>(obj: T, cb: <X extends Extract<keyof T, string>>(v: NonNullable<T[X]>, k: X) => void): void; |
|
|
153 | 155 | export function each<T>(array: T[], cb: (v: T, i: number) => void): void; |
|
|
154 | 156 | export function each(obj: any, cb: any, thisArg?: any): any; |
|
|
155 | 157 | export function each(obj: any, cb: any, thisArg?: any) { |
|
|
156 | 158 | argumentNotNull(cb, "cb"); |
|
|
157 | 159 | if (obj instanceof Array) { |
|
|
158 | 160 | let v: any; |
|
|
159 | 161 | for (let i = 0; i < obj.length; i++) { |
|
|
160 | 162 | v = obj[i]; |
|
|
161 | 163 | if (v !== undefined) |
|
|
162 | 164 | cb.call(thisArg, v, i); |
|
|
163 | 165 | } |
|
|
164 | 166 | } else { |
|
|
165 | 167 | Object.keys(obj).forEach(k => obj[k] !== undefined && cb.call(thisArg, obj[k], k)); |
|
|
166 | 168 | } |
|
|
167 | 169 | } |
|
|
168 | 170 | |
|
|
169 | 171 | /** Copies property values from a source object to the destination and returns |
|
|
170 | 172 | * the destination object. |
|
|
171 | 173 | * |
|
|
172 | 174 | * @param dest The destination object into which properties from the source |
|
|
173 | 175 | * object will be copied. |
|
|
174 | 176 | * @param source The source of values which will be copied to the destination |
|
|
175 | 177 | * object. |
|
|
176 | 178 | * @param template An optional parameter specifies which properties should be |
|
|
177 | 179 | * copied from the source and how to map them to the destination. If the |
|
|
178 | 180 | * template is an array it contains the list of property names to copy from the |
|
|
179 | 181 | * source to the destination. In case of object the templates contains the map |
|
|
180 | 182 | * where keys are property names in the source and the values are property |
|
|
181 | 183 | * names in the destination object. If the template isn't specified then the |
|
|
182 | 184 | * own properties of the source are entirely copied to the destination. |
|
|
183 | 185 | * |
|
|
184 | 186 | */ |
|
|
185 | 187 | export function mixin<T extends object, S extends object>(dest: T, source: S, template?: (keyof S)[]): T & S; |
|
|
186 | 188 | export function mixin<T extends object, S extends object, R extends object = T>(dest: T, source: S, template: { [p in keyof S]?: keyof R; }): T & R; |
|
|
187 | 189 | export function mixin<T extends object, S extends object>(dest: T, source: S, template?: any): any { |
|
|
188 | 190 | argumentNotNull(dest, "dest"); |
|
|
189 | 191 | const _res: any = dest as any; |
|
|
190 | 192 | |
|
|
191 | 193 | if (isPrimitive(source)) |
|
|
192 | 194 | return _res; |
|
|
193 | 195 | |
|
|
194 | 196 | if (template instanceof Array) { |
|
|
195 | 197 | template.forEach(p => { |
|
|
196 | 198 | if (isKeyof(p, source)) |
|
|
197 | 199 | _res[p] = source[p]; |
|
|
198 | 200 | }); |
|
|
199 | 201 | } else if (template) { |
|
|
200 | 202 | keys(source).forEach(p => { |
|
|
201 | 203 | if (isKeyof(p, template)) |
|
|
202 | 204 | _res[template[p]] = source[p]; |
|
|
203 | 205 | }); |
|
|
204 | 206 | } else { |
|
|
205 | 207 | keys(source).forEach(p => _res[p] = source[p]); |
|
|
206 | 208 | } |
|
|
207 | 209 | |
|
|
208 | 210 | return _res; |
|
|
209 | 211 | } |
|
|
210 | 212 | |
|
|
211 | 213 | /** Wraps the specified function to emulate an asynchronous execution. |
|
|
212 | 214 | * @param{Object} thisArg [Optional] Object which will be passed as 'this' to the function. |
|
|
213 | 215 | * @param{Function|String} fn [Required] Function wich will be wrapped. |
|
|
214 | 216 | */ |
|
|
215 | 217 | export function async<T, F extends (...args: any[]) => T | PromiseLike<T>>( |
|
|
216 | 218 | fn: F, |
|
|
217 | 219 | thisArg?: ThisParameterType<F> |
|
|
218 | 220 | ): (...args: Parameters<F>) => PromiseLike<T>; |
|
|
219 | 221 | export function async<T, M extends string, O extends { [m in M]?: (...args: any[]) => T | PromiseLike<T> }>( |
|
|
220 | 222 | fn: M, |
|
|
221 | 223 | thisArg: O |
|
|
222 | 224 | ): (...args: Parameters<NonNullable<O[M]>>) => PromiseLike<T>; |
|
|
223 | 225 | export function async(_fn: any, thisArg: any): (...args: any[]) => PromiseLike<any> { |
|
|
224 | 226 | let fn = _fn; |
|
|
225 | 227 | |
|
|
226 | 228 | if (arguments.length === 2 && !(fn instanceof Function)) |
|
|
227 | 229 | fn = thisArg[fn]; |
|
|
228 | 230 | |
|
|
229 | 231 | if (fn == null) |
|
|
230 | 232 | throw new Error("The function must be specified"); |
|
|
231 | 233 | |
|
|
232 | 234 | function wrapresult(x: any, e?: any): PromiseLike<any> { |
|
|
233 | 235 | if (e) { |
|
|
234 | 236 | return { |
|
|
235 | 237 | then(cb, eb) { |
|
|
236 | 238 | try { |
|
|
237 | 239 | return eb ? wrapresult(eb(e)) : this; |
|
|
238 | 240 | } catch (e2) { |
|
|
239 | 241 | return wrapresult(null, e2); |
|
|
240 | 242 | } |
|
|
241 | 243 | } |
|
|
242 | 244 | }; |
|
|
243 | 245 | } else { |
|
|
244 | 246 | if (x && x.then) |
|
|
245 | 247 | return x; |
|
|
246 | 248 | return { |
|
|
247 | 249 | then(cb) { |
|
|
248 | 250 | try { |
|
|
249 | 251 | return cb ? wrapresult(cb(x)) : this; |
|
|
250 | 252 | } catch (e2) { |
|
|
251 | 253 | return wrapresult(e2); |
|
|
252 | 254 | } |
|
|
253 | 255 | } |
|
|
254 | 256 | }; |
|
|
255 | 257 | } |
|
|
256 | 258 | } |
|
|
257 | 259 | |
|
|
258 | 260 | return (...args) => { |
|
|
259 | 261 | try { |
|
|
260 | 262 | return wrapresult(fn.apply(thisArg, args)); |
|
|
261 | 263 | } catch (e) { |
|
|
262 | 264 | return wrapresult(null, e); |
|
|
263 | 265 | } |
|
|
264 | 266 | }; |
|
|
265 | 267 | } |
|
|
266 | 268 | |
|
|
267 | 269 | export function delegate<T extends object, F extends (this: T, ...args: any[]) => any>( |
|
|
268 | 270 | target: T, |
|
|
269 | 271 | method: F |
|
|
270 | 272 | ): OmitThisParameter<F>; |
|
|
271 | 273 | export function delegate<M extends string, T extends { [m in M]?: (...args: any[]) => any; }>( |
|
|
272 | 274 | target: T, |
|
|
273 | 275 | method: M |
|
|
274 | 276 | ): OmitThisParameter<T[M]>; |
|
|
275 | 277 | export function delegate(target: any, _method: any): (...args: any[]) => any { |
|
|
276 | 278 | let method: any; |
|
|
277 | 279 | if (!(_method instanceof Function)) { |
|
|
278 | 280 | argumentNotNull(target, "target"); |
|
|
279 | 281 | method = target[_method]; |
|
|
280 | 282 | if (!(method instanceof Function)) |
|
|
281 | 283 | throw new Error("'method' argument must be a Function or a method name"); |
|
|
282 | 284 | } else { |
|
|
283 | 285 | method = _method; |
|
|
284 | 286 | } |
|
|
285 | 287 | |
|
|
286 | 288 | return (...args) => { |
|
|
287 | 289 | return method.apply(target, args); |
|
|
288 | 290 | }; |
|
|
289 | 291 | } |
|
|
290 | 292 | |
|
|
293 | /** Returns promise which will be resolved after the specified amount of time. | |
|
|
294 | * | |
|
|
295 | * @param timeMs The delay before the promise will be resolved in milliseconds. | |
|
|
296 | * @param ct Optional. A cancellation token for the operation. | |
|
|
297 | */ | |
|
|
291 | 298 | export function delay(timeMs: number, ct = cancellationNone) { |
|
|
292 | 299 | ct.throwIfRequested(); |
|
|
293 | return new Promise((resolve, reject) => { | |
|
|
300 | return new Promise<void>((resolve, reject) => { | |
|
|
294 | 301 | const h = ct.register(e => { |
|
|
295 | 302 | clearTimeout(id); |
|
|
296 | 303 | reject(e); |
|
|
297 | 304 | // we don't nedd to unregister h, since ct is already disposed |
|
|
298 | 305 | }); |
|
|
299 | 306 | const id = setTimeout(() => { |
|
|
300 | 307 | h.destroy(); |
|
|
301 | 308 | resolve(); |
|
|
302 | 309 | }, timeMs); |
|
|
303 | 310 | |
|
|
304 | 311 | }); |
|
|
305 | 312 | } |
|
|
306 | 313 | |
|
|
314 | export function debounce<T extends any[], R, This>(func: (this: This, ...args: T) => R | PromiseLike<R>, wait: number) { | |
|
|
315 | let cancel: (e?: any) => void = _noop; | |
|
|
316 | ||
|
|
317 | const fn = function executedFunction(this: This, ...args: T) { | |
|
|
318 | return new Promise<R>((resolve, reject) => { | |
|
|
319 | ||
|
|
320 | // used to cleanup currently allocated resources | |
|
|
321 | const _cleanup = () => { | |
|
|
322 | cancel = _noop; | |
|
|
323 | clearTimeout(handle); | |
|
|
324 | }; | |
|
|
325 | ||
|
|
326 | // used in case of cancellation of the current operation | |
|
|
327 | const _cancel = (e: any) => { | |
|
|
328 | _cleanup(); | |
|
|
329 | reject(e); | |
|
|
330 | }; | |
|
|
331 | ||
|
|
332 | // performs actual work | |
|
|
333 | const _later = () => { | |
|
|
334 | _cleanup(); | |
|
|
335 | resolve(func.apply(this, args)); | |
|
|
336 | }; | |
|
|
337 | ||
|
|
338 | // cancel previously queued operation | |
|
|
339 | if (cancel !== _noop) | |
|
|
340 | cancel(new Error("Operation cancelled due to debouncing")); | |
|
|
341 | cancel = _cancel; | |
|
|
342 | ||
|
|
343 | const handle = setTimeout(_later, wait); | |
|
|
344 | }); | |
|
|
345 | }; | |
|
|
346 | ||
|
|
347 | fn.cancel = (e?: any) => cancel(e); | |
|
|
348 | ||
|
|
349 | fn.applyAsync = async (thisArg: This, args: T, ct: ICancellation) => { | |
|
|
350 | const h = ct.register(cancel); | |
|
|
351 | try { | |
|
|
352 | await fn.apply(thisArg, args); | |
|
|
353 | } finally { | |
|
|
354 | h.destroy(); | |
|
|
355 | } | |
|
|
356 | }; | |
|
|
357 | ||
|
|
358 | return fn; | |
|
|
359 | } | |
|
|
360 | ||
|
|
307 | 361 | /** Returns resolved promise, awaiting this method will cause the asynchronous |
|
|
308 | 362 | * completion of the rest of the code. |
|
|
309 | 363 | */ |
|
|
310 | 364 | export function fork() { |
|
|
311 | 365 | return Promise.resolve(); |
|
|
312 | 366 | } |
|
|
313 | 367 | |
|
|
314 | 368 | /** Always throws Error, can be used as a stub for the methods which should be |
|
|
315 | 369 | * assigned later and are required to be not null. |
|
|
316 | 370 | */ |
|
|
317 | 371 | export function notImplemented(): never { |
|
|
318 | 372 | throw new Error("Not implemented"); |
|
|
319 | 373 | } |
|
|
320 | 374 | /** |
|
|
321 | 375 | * Iterates over the specified array of items and calls the callback `cb`, if |
|
|
322 | 376 | * the result of the callback is a promise the next item from the array will be |
|
|
323 | 377 | * proceeded after the promise is resolved. |
|
|
324 | 378 | * |
|
|
325 | 379 | */ |
|
|
326 | 380 | export function pmap<T, T2>( |
|
|
327 | 381 | items: ArrayLike<T> | PromiseLike<ArrayLike<T>>, |
|
|
328 | 382 | cb: (item: T, i: number) => T2 | PromiseLike<T2> |
|
|
329 | 383 | ): T2[] | PromiseLike<T2[]> { |
|
|
330 | 384 | argumentNotNull(cb, "cb"); |
|
|
331 | 385 | |
|
|
332 | 386 | if (isPromise(items)) { |
|
|
333 | 387 | return items.then(data => pmap(data, cb)); |
|
|
334 | 388 | } else { |
|
|
335 | 389 | |
|
|
336 | 390 | if (isNull(items) || !items.length) |
|
|
337 | 391 | return []; |
|
|
338 | 392 | |
|
|
339 | 393 | let i = 0; |
|
|
340 | 394 | const result = new Array<T2>(); |
|
|
341 | 395 | |
|
|
342 | 396 | const next = (): any => { |
|
|
343 | 397 | while (i < items.length) { |
|
|
344 | 398 | const r = cb(items[i], i); |
|
|
345 | 399 | const ri = i; |
|
|
346 | 400 | i++; |
|
|
347 | 401 | if (isPromise(r)) { |
|
|
348 | 402 | return r.then(x => { |
|
|
349 | 403 | result[ri] = x; |
|
|
350 | 404 | return next(); |
|
|
351 | 405 | }); |
|
|
352 | 406 | } else { |
|
|
353 | 407 | result[ri] = r; |
|
|
354 | 408 | } |
|
|
355 | 409 | } |
|
|
356 | 410 | return result; |
|
|
357 | 411 | }; |
|
|
358 | 412 | |
|
|
359 | 413 | return next(); |
|
|
360 | 414 | } |
|
|
361 | 415 | } |
|
|
362 | 416 | |
|
|
363 | 417 | export function pfor<T>( |
|
|
364 | 418 | items: ArrayLike<T> | PromiseLike<ArrayLike<T>>, |
|
|
365 | 419 | cb: (item: T, i: number) => any |
|
|
366 | 420 | ): void | PromiseLike<void> { |
|
|
367 | 421 | argumentNotNull(cb, "cb"); |
|
|
368 | 422 | |
|
|
369 | 423 | if (isPromise(items)) { |
|
|
370 | 424 | return items.then(data => pfor(data, cb)); |
|
|
371 | 425 | } else { |
|
|
372 | 426 | if (isNull(items) || !items.length) |
|
|
373 | 427 | return; |
|
|
374 | 428 | |
|
|
375 | 429 | let i = 0; |
|
|
376 | 430 | |
|
|
377 | 431 | const next = (): any => { |
|
|
378 | 432 | while (i < items.length) { |
|
|
379 | 433 | const r = cb(items[i], i); |
|
|
380 | 434 | i++; |
|
|
381 | 435 | if (isPromise(r)) |
|
|
382 | 436 | return r.then(next); |
|
|
383 | 437 | } |
|
|
384 | 438 | }; |
|
|
385 | 439 | |
|
|
386 | 440 | return next(); |
|
|
387 | 441 | } |
|
|
388 | 442 | } |
|
|
389 | 443 | |
|
|
390 | 444 | export function first<T>(sequence: ArrayLike<T>): T; |
|
|
391 | 445 | export function first<T>(sequence: PromiseLike<ArrayLike<T>>): PromiseLike<T>; |
|
|
392 | 446 | export function first<T>( |
|
|
393 | 447 | sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>, |
|
|
394 | 448 | cb?: (x: T) => void, |
|
|
395 | 449 | err?: (x: Error) => void |
|
|
396 | 450 | ): void; |
|
|
397 | 451 | /** |
|
|
398 | 452 | * ΠΡΠ±ΠΈΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΈΠ»ΠΈ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π² |
|
|
399 | 453 | * ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅, ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΠΌΠ°ΡΡΠΈΠ². |
|
|
400 | 454 | * |
|
|
401 | 455 | * @param {Function} cb ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΏΠ΅ΡΠ²ΡΠΉ |
|
|
402 | 456 | * ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅Ρ Π° |
|
|
403 | 457 | * @param {Function} err ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΡΡΠΎΠΉ, Π»ΠΈΠ±ΠΎ |
|
|
404 | 458 | * Π½Π΅ ΠΌΠ°ΡΡΠΈΠ² |
|
|
405 | 459 | * |
|
|
406 | 460 | * @remarks ΠΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Ρ Π½ΠΈ cb Π½ΠΈ err, ΡΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ½Π΅Ρ Π»ΠΈΠ±ΠΎ |
|
|
407 | 461 | * ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅, Π»ΠΈΠ±ΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. |
|
|
408 | 462 | * @async |
|
|
409 | 463 | */ |
|
|
410 | 464 | export function first<T>( |
|
|
411 | 465 | sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>, |
|
|
412 | 466 | cb?: (x: T) => void, |
|
|
413 | 467 | err?: (x: Error) => void |
|
|
414 | 468 | ) { |
|
|
415 | 469 | if (isPromise(sequence)) { |
|
|
416 | 470 | return sequence.then(res => first(res, cb as any /* force to pass undefined cb */, err)); |
|
|
417 | 471 | } else if (sequence && "length" in sequence) { |
|
|
418 | 472 | if (sequence.length === 0) { |
|
|
419 | 473 | if (err) |
|
|
420 | 474 | return err(new Error("The sequence is empty")); |
|
|
421 | 475 | else |
|
|
422 | 476 | throw new Error("The sequence is empty"); |
|
|
423 | 477 | } else if (cb) { |
|
|
424 | 478 | return cb(sequence[0]); |
|
|
425 | 479 | } else { |
|
|
426 | 480 | return sequence[0]; |
|
|
427 | 481 | } |
|
|
428 | 482 | } else { |
|
|
429 | 483 | if (err) |
|
|
430 | 484 | return err(new Error("The sequence is required")); |
|
|
431 | 485 | else |
|
|
432 | 486 | throw new Error("The sequence is required"); |
|
|
433 | 487 | } |
|
|
434 | 488 | } |
|
|
435 | 489 | |
|
|
436 | 490 | export function firstWhere<T>( |
|
|
437 | 491 | sequence: ArrayLike<T>, |
|
|
438 | 492 | predicate: (x: T) => boolean |
|
|
439 | 493 | ): T; |
|
|
440 | 494 | export function firstWhere<T>( |
|
|
441 | 495 | sequence: PromiseLike<ArrayLike<T>>, |
|
|
442 | 496 | predicate: (x: T) => boolean |
|
|
443 | 497 | ): PromiseLike<T>; |
|
|
444 | 498 | export function firstWhere<T>( |
|
|
445 | 499 | sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>, |
|
|
446 | 500 | predicate: (x: T) => boolean, |
|
|
447 | 501 | cb: (x: T) => void, |
|
|
448 | 502 | err?: (x: Error) => void |
|
|
449 | 503 | ): void; |
|
|
450 | 504 | |
|
|
451 | 505 | export function firstWhere<T>( |
|
|
452 | 506 | sequence: ArrayLike<T> | PromiseLike<ArrayLike<T>>, |
|
|
453 | 507 | predicate?: (x: T) => boolean, |
|
|
454 | 508 | cb?: (x: T) => any, |
|
|
455 | 509 | err?: (x: Error) => any |
|
|
456 | 510 | ) { |
|
|
457 | 511 | if (isPromise(sequence)) { |
|
|
458 | 512 | return sequence.then(res => firstWhere( |
|
|
459 | 513 | res, |
|
|
460 | 514 | predicate as any /* force to pass undefined predicate */, |
|
|
461 | 515 | cb as any /* force to pass undefined cb */, |
|
|
462 | 516 | err) |
|
|
463 | 517 | ); |
|
|
464 | 518 | } else if (sequence && "length" in sequence) { |
|
|
465 | 519 | if (sequence.length === 0) { |
|
|
466 | 520 | if (err) |
|
|
467 | 521 | err(new Error("The sequence is empty")); |
|
|
468 | 522 | else |
|
|
469 | 523 | throw new Error("The sequence is empty"); |
|
|
470 | 524 | } else { |
|
|
471 | 525 | if (!predicate) { |
|
|
472 | 526 | return cb ? cb(sequence[0]) && void (0) : sequence[0]; |
|
|
473 | 527 | } else { |
|
|
474 | 528 | for (let i = 0; i < sequence.length; i++) { |
|
|
475 | 529 | const v = sequence[i]; |
|
|
476 | 530 | if (predicate(v)) |
|
|
477 | 531 | return cb ? cb(v) : v; |
|
|
478 | 532 | } |
|
|
479 | 533 | if (err) |
|
|
480 | 534 | err(new Error("The sequence doesn't contain matching items")); |
|
|
481 | 535 | else |
|
|
482 | 536 | throw new Error("The sequence doesn't contain matching items"); |
|
|
483 | 537 | } |
|
|
484 | 538 | } |
|
|
485 | 539 | } else { |
|
|
486 | 540 | if (err) |
|
|
487 | 541 | err(new Error("The sequence is required")); |
|
|
488 | 542 | else |
|
|
489 | 543 | throw new Error("The sequence is required"); |
|
|
490 | 544 | } |
|
|
491 | 545 | } |
|
|
492 | 546 | |
|
|
493 | 547 | export function isDestroyable(d: any): d is IDestroyable { |
|
|
494 | 548 | return !!(d && typeof d.destroy === "function"); |
|
|
495 | 549 | } |
|
|
496 | 550 | |
|
|
497 | 551 | export function isRemovable(value: any): value is IRemovable { |
|
|
498 | 552 | return !!(value && typeof value.remove === "function"); |
|
|
499 | 553 | } |
|
|
500 | 554 | |
|
|
501 | 555 | export function destroy(d: any) { |
|
|
502 | 556 | if (isDestroyable(d)) |
|
|
503 | 557 | d.destroy(); |
|
|
504 | 558 | } |
|
|
505 | 559 | |
|
|
506 | 560 | /** |
|
|
507 | 561 | * Used to mark that the async operation isn't awaited intentionally. |
|
|
508 | 562 | * @param p The promise which represents the async operation. |
|
|
509 | 563 | */ |
|
|
510 | 564 | export function nowait(p: Promise<any>) { |
|
|
511 | 565 | } |
|
|
512 | 566 | |
|
|
513 | 567 | /** represents already destroyed object. |
|
|
514 | 568 | */ |
|
|
515 | 569 | export const destroyed = { |
|
|
516 | 570 | /** Calling to this method doesn't affect anything, noop. |
|
|
517 | 571 | */ |
|
|
518 | 572 | destroy() { |
|
|
519 | 573 | } |
|
|
520 | 574 | }; |
| @@ -1,95 +1,156 | |||
|
|
1 | 1 | import { Cancellation } from "../Cancellation"; |
|
|
2 | import { first, isPromise, firstWhere, delay, nowait, notImplemented } from "../safe"; | |
|
|
2 | import { ICancellation } from "../interfaces"; | |
|
|
3 | import { first, isPromise, firstWhere, delay, nowait, notImplemented, debounce, fork } from "../safe"; | |
|
|
3 | 4 | import { test } from "./TestTraits"; |
|
|
4 | 5 | |
|
|
5 | 6 | test("await delay test", async t => { |
|
|
6 | 7 | // schedule delay |
|
|
7 | 8 | let resolved = false; |
|
|
8 | 9 | let res = delay(0).then(() => resolved = true); |
|
|
9 | 10 | |
|
|
10 | 11 | t.false(resolved, "the delay should be async"); |
|
|
11 | 12 | |
|
|
12 | 13 | await res; |
|
|
13 | 14 | t.pass("await delay"); |
|
|
14 | 15 | |
|
|
15 | 16 | // create cancellation token |
|
|
16 | 17 | let cancel: (e?: any) => void = notImplemented; |
|
|
17 | 18 | const ct = new Cancellation(c => cancel = c); |
|
|
18 | 19 | |
|
|
19 | 20 | // schedule delay |
|
|
20 | 21 | resolved = false; |
|
|
21 | 22 | res = delay(0, ct).then(() => resolved = true); |
|
|
22 | 23 | |
|
|
23 | 24 | t.false(resolved, "created delay with ct"); |
|
|
24 | 25 | |
|
|
25 | 26 | // cancel |
|
|
26 | 27 | cancel(); |
|
|
27 | 28 | |
|
|
28 | 29 | try { |
|
|
29 | 30 | await res; |
|
|
30 | 31 | t.fail("the delay should fail when it is cancelled"); |
|
|
31 | 32 | } catch { |
|
|
32 | 33 | t.pass("the delay is cancelled"); |
|
|
33 | 34 | } |
|
|
34 | 35 | |
|
|
35 | 36 | t.throws(() => { |
|
|
36 | 37 | // try schedule delay after the cancellation is requested |
|
|
37 | 38 | nowait(delay(0, ct)); |
|
|
38 | 39 | }, "Should throw if cancelled before start"); |
|
|
39 | 40 | }); |
|
|
40 | 41 | |
|
|
41 | 42 | test("sequemce test", async t => { |
|
|
42 | 43 | const sequence = ["a", "b", "c"]; |
|
|
43 | 44 | const empty: string[] = []; |
|
|
44 | 45 | |
|
|
45 | 46 | // synchronous tests |
|
|
46 | 47 | t.equals(first(sequence), "a", "Should return the first element"); |
|
|
47 | 48 | t.equals(firstWhere(sequence, x => x === "b"), "b", "Should get the second element"); |
|
|
48 | 49 | |
|
|
49 | 50 | let v: string | undefined; |
|
|
50 | 51 | let e: Error | undefined; |
|
|
51 | 52 | first(sequence, x => v = x); |
|
|
52 | 53 | t.equal(v, "a", "The callback should be called for the first element"); |
|
|
53 | 54 | firstWhere(sequence, x => x === "b", x => v = x); |
|
|
54 | 55 | t.equal(v, "b", "The callback should be called for the second element"); |
|
|
55 | 56 | |
|
|
56 | 57 | t.throws(() => { |
|
|
57 | 58 | first(empty); |
|
|
58 | 59 | }, "Should throw when the sequence is empty"); |
|
|
59 | 60 | |
|
|
60 | 61 | t.throws(() => { |
|
|
61 | 62 | firstWhere(empty, x => x === "b"); |
|
|
62 | 63 | }, "Should throw when the sequence is empty"); |
|
|
63 | 64 | |
|
|
64 | 65 | t.throws(() => { |
|
|
65 | 66 | first(empty, x => v = x); |
|
|
66 | 67 | }, "Should throw when the sequence is empty"); |
|
|
67 | 68 | |
|
|
68 | 69 | t.throws(() => { |
|
|
69 | 70 | firstWhere(empty, x => x === "b", x => v = x); |
|
|
70 | 71 | }, "Should throw when the sequence is empty"); |
|
|
71 | 72 | |
|
|
72 | 73 | t.throws(() => { |
|
|
73 | 74 | firstWhere(sequence, x => x === "z"); |
|
|
74 | 75 | }, "Should throw when the element isn't found"); |
|
|
75 | 76 | |
|
|
76 | 77 | t.throws(() => { |
|
|
77 | 78 | firstWhere(sequence, x => x === "z", x => v = x); |
|
|
78 | 79 | }, "Should throw when the element isn't found"); |
|
|
79 | 80 | |
|
|
80 | 81 | first(empty, undefined, x => e = x); |
|
|
81 | 82 | t.true(e, "The errorback should be called for the empty sequence"); |
|
|
82 | 83 | |
|
|
83 | 84 | // async tests |
|
|
84 | 85 | const asyncSequence = Promise.resolve(sequence); |
|
|
85 | 86 | const asyncEmptySequence = Promise.resolve(empty); |
|
|
86 | 87 | |
|
|
87 | 88 | const promise = first(asyncSequence); |
|
|
88 | 89 | t.true(isPromise(promise), "Should return promise"); |
|
|
89 | 90 | |
|
|
90 | 91 | v = await promise; |
|
|
91 | 92 | t.equal(v, "a", "Should return the first element"); |
|
|
92 | 93 | |
|
|
93 | 94 | v = await new Promise(resolve => first(asyncSequence, resolve)); |
|
|
94 | 95 | t.equal(v, "a", "The callback should be called for the first element"); |
|
|
95 | 96 | }); |
|
|
97 | ||
|
|
98 | test("debounce tests", async (t, trace) => { | |
|
|
99 | let count = 0; | |
|
|
100 | let rejected = 0; | |
|
|
101 | function increment(step: number = 1) { | |
|
|
102 | count += step; | |
|
|
103 | return count; | |
|
|
104 | } | |
|
|
105 | ||
|
|
106 | const f = debounce(increment, 100); | |
|
|
107 | f().then(undefined, () => rejected++); | |
|
|
108 | f().then(undefined, () => rejected++); | |
|
|
109 | ||
|
|
110 | await f(1); | |
|
|
111 | ||
|
|
112 | t.equal(rejected, 2, "Previous operations should be rejected"); | |
|
|
113 | t.equal(count, 1, "The operation should run once"); | |
|
|
114 | ||
|
|
115 | const acc = debounce( | |
|
|
116 | (...values: number[]) => count = values.reduce((a, v) => v + a, count), | |
|
|
117 | 100 | |
|
|
118 | ); | |
|
|
119 | ||
|
|
120 | acc(1, 2, 3).catch(() => { }); | |
|
|
121 | const result = acc(1, 2, 3); | |
|
|
122 | acc.cancel(); | |
|
|
123 | ||
|
|
124 | try { | |
|
|
125 | await result; | |
|
|
126 | t.notOk("fn.cancel() should make current operation to throw an exception"); | |
|
|
127 | } catch { | |
|
|
128 | t.ok("fn.cancel() should make current operation to throw an exception"); | |
|
|
129 | } | |
|
|
130 | ||
|
|
131 | t.equal(count, 1, "fn.cancel() The operation should not run"); | |
|
|
132 | ||
|
|
133 | acc.cancel(); | |
|
|
134 | await acc(1, 2); | |
|
|
135 | t.equal(count, 4, "The variable arguments list shoud be handled correctly"); | |
|
|
136 | ||
|
|
137 | // create cancellation token | |
|
|
138 | let cancel: (e?: any) => void = notImplemented; | |
|
|
139 | const ct = new Cancellation(c => cancel = c); | |
|
|
140 | ||
|
|
141 | const d = debounce(async (ct2: ICancellation = Cancellation.none) => { | |
|
|
142 | ct2.throwIfRequested(); | |
|
|
143 | trace.debug("do async increment"); | |
|
|
144 | await fork(); | |
|
|
145 | count++; | |
|
|
146 | return count; | |
|
|
147 | }, 0); | |
|
|
148 | ||
|
|
149 | const p = d.applyAsync(null, [ct], ct).then(undefined, () => rejected++); | |
|
|
150 | cancel(); | |
|
|
151 | await p; | |
|
|
152 | ||
|
|
153 | t.equal(count, 4, "Cancellation token should prevent the function execution"); | |
|
|
154 | t.equal(rejected, 3, "Cancellation token should reject operation"); | |
|
|
155 | ||
|
|
156 | }); | |
General Comments 0
You need to be logged in to leave comments.
Login now
