##// END OF EJS Templates
Added 'Attrs', 'Events' type parameters to DjxWidgetBase, typed 'on' and 'emit' methods
cin -
r30:a46488b209e8 v1.0.0-rc14 default
parent child
Show More
@@ -1,1208 +1,1216
1 1 {
2 2 "name": "@implab/djx",
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.8.3",
9 9 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
10 10 "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
11 11 "dev": true,
12 12 "requires": {
13 13 "@babel/highlight": "^7.8.3"
14 14 }
15 15 },
16 16 "@babel/highlight": {
17 17 "version": "7.8.3",
18 18 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
19 19 "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
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 "@babel/runtime": {
28 28 "version": "7.8.3",
29 29 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
30 30 "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
31 31 "dev": true,
32 32 "requires": {
33 33 "regenerator-runtime": "^0.13.2"
34 34 }
35 35 },
36 36 "@implab/core-amd": {
37 37 "version": "1.3.2",
38 38 "resolved": "https://registry.npmjs.org/@implab/core-amd/-/core-amd-1.3.2.tgz",
39 39 "integrity": "sha512-OPx02obqz60FiOzDqEFuPfag/0ugl1tuQouI+52Op0k+fcmuBK4QACJy7o3fzOYvejdjF1DG4aRXuCm6+vgMYQ==",
40 40 "dev": true
41 41 },
42 42 "@types/chai": {
43 43 "version": "4.1.3",
44 44 "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.3.tgz",
45 45 "integrity": "sha512-f5dXGzOJycyzSMdaXVhiBhauL4dYydXwVpavfQ1mVCaGjR56a9QfklXObUxlIY9bGTmCPHEEZ04I16BZ/8w5ww==",
46 46 "dev": true
47 47 },
48 48 "@types/requirejs": {
49 49 "version": "2.1.31",
50 50 "resolved": "https://registry.npmjs.org/@types/requirejs/-/requirejs-2.1.31.tgz",
51 51 "integrity": "sha512-b2soeyuU76rMbcRJ4e0hEl0tbMhFwZeTC0VZnfuWlfGlk6BwWNsev6kFu/twKABPX29wkX84wU2o+cEJoXsiTw==",
52 52 "dev": true
53 53 },
54 54 "@types/yaml": {
55 55 "version": "1.2.0",
56 56 "resolved": "https://registry.npmjs.org/@types/yaml/-/yaml-1.2.0.tgz",
57 57 "integrity": "sha512-GW8b9qM+ebgW3/zjzPm0I1NxMvLaz/YKT9Ph6tTb+Fkeyzd9yLTvQ6ciQ2MorTRmb/qXmfjMerRpG4LviixaqQ==",
58 58 "dev": true
59 59 },
60 60 "acorn": {
61 "version": "7.1.0",
62 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
63 "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
61 "version": "7.4.0",
62 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
63 "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
64 64 "dev": true
65 65 },
66 66 "acorn-jsx": {
67 67 "version": "5.1.0",
68 68 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
69 69 "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
70 70 "dev": true
71 71 },
72 72 "ajv": {
73 73 "version": "6.11.0",
74 74 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
75 75 "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
76 76 "dev": true,
77 77 "requires": {
78 78 "fast-deep-equal": "^3.1.1",
79 79 "fast-json-stable-stringify": "^2.0.0",
80 80 "json-schema-traverse": "^0.4.1",
81 81 "uri-js": "^4.2.2"
82 82 }
83 83 },
84 84 "ansi-escapes": {
85 85 "version": "4.3.0",
86 86 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
87 87 "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==",
88 88 "dev": true,
89 89 "requires": {
90 90 "type-fest": "^0.8.1"
91 91 }
92 92 },
93 93 "ansi-regex": {
94 94 "version": "5.0.0",
95 95 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
96 96 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
97 97 "dev": true
98 98 },
99 99 "ansi-styles": {
100 100 "version": "3.2.1",
101 101 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
102 102 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
103 103 "dev": true,
104 104 "requires": {
105 105 "color-convert": "^1.9.0"
106 106 }
107 107 },
108 108 "argparse": {
109 109 "version": "1.0.10",
110 110 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
111 111 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
112 112 "dev": true,
113 113 "requires": {
114 114 "sprintf-js": "~1.0.2"
115 115 }
116 116 },
117 117 "assertion-error": {
118 118 "version": "1.1.0",
119 119 "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
120 120 "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
121 121 "dev": true
122 122 },
123 123 "astral-regex": {
124 124 "version": "1.0.0",
125 125 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
126 126 "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
127 127 "dev": true
128 128 },
129 129 "balanced-match": {
130 130 "version": "1.0.0",
131 131 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
132 132 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
133 133 "dev": true
134 134 },
135 135 "brace-expansion": {
136 136 "version": "1.1.11",
137 137 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
138 138 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
139 139 "dev": true,
140 140 "requires": {
141 141 "balanced-match": "^1.0.0",
142 142 "concat-map": "0.0.1"
143 143 }
144 144 },
145 145 "builtin-modules": {
146 146 "version": "1.1.1",
147 147 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
148 148 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
149 149 "dev": true
150 150 },
151 151 "callsites": {
152 152 "version": "3.1.0",
153 153 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
154 154 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
155 155 "dev": true
156 156 },
157 157 "chai": {
158 158 "version": "4.2.0",
159 159 "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
160 160 "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
161 161 "dev": true,
162 162 "requires": {
163 163 "assertion-error": "^1.1.0",
164 164 "check-error": "^1.0.2",
165 165 "deep-eql": "^3.0.1",
166 166 "get-func-name": "^2.0.0",
167 167 "pathval": "^1.1.0",
168 168 "type-detect": "^4.0.5"
169 169 }
170 170 },
171 171 "chalk": {
172 172 "version": "2.4.2",
173 173 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
174 174 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
175 175 "dev": true,
176 176 "requires": {
177 177 "ansi-styles": "^3.2.1",
178 178 "escape-string-regexp": "^1.0.5",
179 179 "supports-color": "^5.3.0"
180 180 }
181 181 },
182 182 "chardet": {
183 183 "version": "0.7.0",
184 184 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
185 185 "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
186 186 "dev": true
187 187 },
188 188 "check-error": {
189 189 "version": "1.0.2",
190 190 "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
191 191 "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
192 192 "dev": true
193 193 },
194 194 "cli-cursor": {
195 195 "version": "3.1.0",
196 196 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
197 197 "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
198 198 "dev": true,
199 199 "requires": {
200 200 "restore-cursor": "^3.1.0"
201 201 }
202 202 },
203 203 "cli-width": {
204 204 "version": "2.2.0",
205 205 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
206 206 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
207 207 "dev": true
208 208 },
209 209 "color-convert": {
210 210 "version": "1.9.3",
211 211 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
212 212 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
213 213 "dev": true,
214 214 "requires": {
215 215 "color-name": "1.1.3"
216 216 }
217 217 },
218 218 "color-name": {
219 219 "version": "1.1.3",
220 220 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
221 221 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
222 222 "dev": true
223 223 },
224 224 "commander": {
225 225 "version": "2.20.3",
226 226 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
227 227 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
228 228 "dev": true
229 229 },
230 230 "concat-map": {
231 231 "version": "0.0.1",
232 232 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
233 233 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
234 234 "dev": true
235 235 },
236 236 "cross-spawn": {
237 237 "version": "6.0.5",
238 238 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
239 239 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
240 240 "dev": true,
241 241 "requires": {
242 242 "nice-try": "^1.0.4",
243 243 "path-key": "^2.0.1",
244 244 "semver": "^5.5.0",
245 245 "shebang-command": "^1.2.0",
246 246 "which": "^1.2.9"
247 247 },
248 248 "dependencies": {
249 249 "semver": {
250 250 "version": "5.7.1",
251 251 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
252 252 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
253 253 "dev": true
254 254 }
255 255 }
256 256 },
257 257 "debug": {
258 258 "version": "4.1.1",
259 259 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
260 260 "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
261 261 "dev": true,
262 262 "requires": {
263 263 "ms": "^2.1.1"
264 264 }
265 265 },
266 266 "deep-eql": {
267 267 "version": "3.0.1",
268 268 "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
269 269 "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
270 270 "dev": true,
271 271 "requires": {
272 272 "type-detect": "^4.0.0"
273 273 }
274 274 },
275 275 "deep-is": {
276 276 "version": "0.1.3",
277 277 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
278 278 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
279 279 "dev": true
280 280 },
281 281 "diff": {
282 282 "version": "4.0.2",
283 283 "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
284 284 "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
285 285 "dev": true
286 286 },
287 287 "doctrine": {
288 288 "version": "3.0.0",
289 289 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
290 290 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
291 291 "dev": true,
292 292 "requires": {
293 293 "esutils": "^2.0.2"
294 294 }
295 295 },
296 296 "dojo": {
297 297 "version": "1.16.0",
298 298 "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.16.0.tgz",
299 299 "integrity": "sha512-DUiXyoLK6vMF5BPr/qiMLTxDMfiM9qlzN1jxfDsVfuvB/CwhYpNxA/M4mbqKN8PCVGLmccXBJbfmFJPP5+zmzw==",
300 300 "dev": true
301 301 },
302 302 "dojo-typings": {
303 303 "version": "1.11.9",
304 304 "resolved": "https://registry.npmjs.org/dojo-typings/-/dojo-typings-1.11.9.tgz",
305 305 "integrity": "sha512-mh8w+Mau2Y1QfTEszEAdO7j6ycNhYxF/Ing6nAk1eUg6NxjeT0viVHjICMd9sU3U463vM2G+KfBBK5grk3/Mlw==",
306 306 "dev": true,
307 307 "requires": {
308 308 "@types/chai": "^4.0.4"
309 309 }
310 310 },
311 311 "emoji-regex": {
312 312 "version": "8.0.0",
313 313 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
314 314 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
315 315 "dev": true
316 316 },
317 317 "escape-string-regexp": {
318 318 "version": "1.0.5",
319 319 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
320 320 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
321 321 "dev": true
322 322 },
323 323 "eslint": {
324 324 "version": "6.8.0",
325 325 "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
326 326 "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
327 327 "dev": true,
328 328 "requires": {
329 329 "@babel/code-frame": "^7.0.0",
330 330 "ajv": "^6.10.0",
331 331 "chalk": "^2.1.0",
332 332 "cross-spawn": "^6.0.5",
333 333 "debug": "^4.0.1",
334 334 "doctrine": "^3.0.0",
335 335 "eslint-scope": "^5.0.0",
336 336 "eslint-utils": "^1.4.3",
337 337 "eslint-visitor-keys": "^1.1.0",
338 338 "espree": "^6.1.2",
339 339 "esquery": "^1.0.1",
340 340 "esutils": "^2.0.2",
341 341 "file-entry-cache": "^5.0.1",
342 342 "functional-red-black-tree": "^1.0.1",
343 343 "glob-parent": "^5.0.0",
344 344 "globals": "^12.1.0",
345 345 "ignore": "^4.0.6",
346 346 "import-fresh": "^3.0.0",
347 347 "imurmurhash": "^0.1.4",
348 348 "inquirer": "^7.0.0",
349 349 "is-glob": "^4.0.0",
350 350 "js-yaml": "^3.13.1",
351 351 "json-stable-stringify-without-jsonify": "^1.0.1",
352 352 "levn": "^0.3.0",
353 353 "lodash": "^4.17.14",
354 354 "minimatch": "^3.0.4",
355 355 "mkdirp": "^0.5.1",
356 356 "natural-compare": "^1.4.0",
357 357 "optionator": "^0.8.3",
358 358 "progress": "^2.0.0",
359 359 "regexpp": "^2.0.1",
360 360 "semver": "^6.1.2",
361 361 "strip-ansi": "^5.2.0",
362 362 "strip-json-comments": "^3.0.1",
363 363 "table": "^5.2.3",
364 364 "text-table": "^0.2.0",
365 365 "v8-compile-cache": "^2.0.3"
366 366 }
367 367 },
368 368 "eslint-scope": {
369 369 "version": "5.0.0",
370 370 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
371 371 "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
372 372 "dev": true,
373 373 "requires": {
374 374 "esrecurse": "^4.1.0",
375 375 "estraverse": "^4.1.1"
376 376 }
377 377 },
378 378 "eslint-utils": {
379 379 "version": "1.4.3",
380 380 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
381 381 "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
382 382 "dev": true,
383 383 "requires": {
384 384 "eslint-visitor-keys": "^1.1.0"
385 385 }
386 386 },
387 387 "eslint-visitor-keys": {
388 388 "version": "1.1.0",
389 389 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
390 390 "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
391 391 "dev": true
392 392 },
393 393 "espree": {
394 394 "version": "6.1.2",
395 395 "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz",
396 396 "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==",
397 397 "dev": true,
398 398 "requires": {
399 399 "acorn": "^7.1.0",
400 400 "acorn-jsx": "^5.1.0",
401 401 "eslint-visitor-keys": "^1.1.0"
402 402 }
403 403 },
404 404 "esprima": {
405 405 "version": "4.0.1",
406 406 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
407 407 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
408 408 "dev": true
409 409 },
410 410 "esquery": {
411 411 "version": "1.0.1",
412 412 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
413 413 "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
414 414 "dev": true,
415 415 "requires": {
416 416 "estraverse": "^4.0.0"
417 417 }
418 418 },
419 419 "esrecurse": {
420 420 "version": "4.2.1",
421 421 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
422 422 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
423 423 "dev": true,
424 424 "requires": {
425 425 "estraverse": "^4.1.0"
426 426 }
427 427 },
428 428 "estraverse": {
429 429 "version": "4.3.0",
430 430 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
431 431 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
432 432 "dev": true
433 433 },
434 434 "esutils": {
435 435 "version": "2.0.3",
436 436 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
437 437 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
438 438 "dev": true
439 439 },
440 440 "external-editor": {
441 441 "version": "3.1.0",
442 442 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
443 443 "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
444 444 "dev": true,
445 445 "requires": {
446 446 "chardet": "^0.7.0",
447 447 "iconv-lite": "^0.4.24",
448 448 "tmp": "^0.0.33"
449 449 }
450 450 },
451 451 "fast-deep-equal": {
452 452 "version": "3.1.1",
453 453 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
454 454 "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
455 455 "dev": true
456 456 },
457 457 "fast-json-stable-stringify": {
458 458 "version": "2.1.0",
459 459 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
460 460 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
461 461 "dev": true
462 462 },
463 463 "fast-levenshtein": {
464 464 "version": "2.0.6",
465 465 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
466 466 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
467 467 "dev": true
468 468 },
469 469 "figures": {
470 470 "version": "3.1.0",
471 471 "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
472 472 "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
473 473 "dev": true,
474 474 "requires": {
475 475 "escape-string-regexp": "^1.0.5"
476 476 }
477 477 },
478 478 "file-entry-cache": {
479 479 "version": "5.0.1",
480 480 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
481 481 "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
482 482 "dev": true,
483 483 "requires": {
484 484 "flat-cache": "^2.0.1"
485 485 }
486 486 },
487 487 "flat-cache": {
488 488 "version": "2.0.1",
489 489 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
490 490 "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
491 491 "dev": true,
492 492 "requires": {
493 493 "flatted": "^2.0.0",
494 494 "rimraf": "2.6.3",
495 495 "write": "1.0.3"
496 496 }
497 497 },
498 498 "flatted": {
499 499 "version": "2.0.1",
500 500 "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
501 501 "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
502 502 "dev": true
503 503 },
504 504 "fs.realpath": {
505 505 "version": "1.0.0",
506 506 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
507 507 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
508 508 "dev": true
509 509 },
510 510 "functional-red-black-tree": {
511 511 "version": "1.0.1",
512 512 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
513 513 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
514 514 "dev": true
515 515 },
516 516 "get-func-name": {
517 517 "version": "2.0.0",
518 518 "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
519 519 "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
520 520 "dev": true
521 521 },
522 522 "glob": {
523 523 "version": "7.1.6",
524 524 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
525 525 "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
526 526 "dev": true,
527 527 "requires": {
528 528 "fs.realpath": "^1.0.0",
529 529 "inflight": "^1.0.4",
530 530 "inherits": "2",
531 531 "minimatch": "^3.0.4",
532 532 "once": "^1.3.0",
533 533 "path-is-absolute": "^1.0.0"
534 534 }
535 535 },
536 536 "glob-parent": {
537 537 "version": "5.1.0",
538 538 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
539 539 "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
540 540 "dev": true,
541 541 "requires": {
542 542 "is-glob": "^4.0.1"
543 543 }
544 544 },
545 545 "globals": {
546 546 "version": "12.3.0",
547 547 "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz",
548 548 "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==",
549 549 "dev": true,
550 550 "requires": {
551 551 "type-fest": "^0.8.1"
552 552 }
553 553 },
554 554 "has-flag": {
555 555 "version": "3.0.0",
556 556 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
557 557 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
558 558 "dev": true
559 559 },
560 560 "iconv-lite": {
561 561 "version": "0.4.24",
562 562 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
563 563 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
564 564 "dev": true,
565 565 "requires": {
566 566 "safer-buffer": ">= 2.1.2 < 3"
567 567 }
568 568 },
569 569 "ignore": {
570 570 "version": "4.0.6",
571 571 "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
572 572 "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
573 573 "dev": true
574 574 },
575 575 "import-fresh": {
576 576 "version": "3.2.1",
577 577 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
578 578 "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
579 579 "dev": true,
580 580 "requires": {
581 581 "parent-module": "^1.0.0",
582 582 "resolve-from": "^4.0.0"
583 583 }
584 584 },
585 585 "imurmurhash": {
586 586 "version": "0.1.4",
587 587 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
588 588 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
589 589 "dev": true
590 590 },
591 591 "inflight": {
592 592 "version": "1.0.6",
593 593 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
594 594 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
595 595 "dev": true,
596 596 "requires": {
597 597 "once": "^1.3.0",
598 598 "wrappy": "1"
599 599 }
600 600 },
601 601 "inherits": {
602 602 "version": "2.0.4",
603 603 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
604 604 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
605 605 "dev": true
606 606 },
607 607 "inquirer": {
608 608 "version": "7.0.3",
609 609 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.3.tgz",
610 610 "integrity": "sha512-+OiOVeVydu4hnCGLCSX+wedovR/Yzskv9BFqUNNKq9uU2qg7LCcCo3R86S2E7WLo0y/x2pnEZfZe1CoYnORUAw==",
611 611 "dev": true,
612 612 "requires": {
613 613 "ansi-escapes": "^4.2.1",
614 614 "chalk": "^2.4.2",
615 615 "cli-cursor": "^3.1.0",
616 616 "cli-width": "^2.0.0",
617 617 "external-editor": "^3.0.3",
618 618 "figures": "^3.0.0",
619 619 "lodash": "^4.17.15",
620 620 "mute-stream": "0.0.8",
621 621 "run-async": "^2.2.0",
622 622 "rxjs": "^6.5.3",
623 623 "string-width": "^4.1.0",
624 624 "strip-ansi": "^5.1.0",
625 625 "through": "^2.3.6"
626 626 }
627 627 },
628 628 "is-extglob": {
629 629 "version": "2.1.1",
630 630 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
631 631 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
632 632 "dev": true
633 633 },
634 634 "is-fullwidth-code-point": {
635 635 "version": "3.0.0",
636 636 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
637 637 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
638 638 "dev": true
639 639 },
640 640 "is-glob": {
641 641 "version": "4.0.1",
642 642 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
643 643 "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
644 644 "dev": true,
645 645 "requires": {
646 646 "is-extglob": "^2.1.1"
647 647 }
648 648 },
649 649 "is-promise": {
650 650 "version": "2.1.0",
651 651 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
652 652 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
653 653 "dev": true
654 654 },
655 655 "isexe": {
656 656 "version": "2.0.0",
657 657 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
658 658 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
659 659 "dev": true
660 660 },
661 661 "js-tokens": {
662 662 "version": "4.0.0",
663 663 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
664 664 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
665 665 "dev": true
666 666 },
667 667 "js-yaml": {
668 668 "version": "3.13.1",
669 669 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
670 670 "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
671 671 "dev": true,
672 672 "requires": {
673 673 "argparse": "^1.0.7",
674 674 "esprima": "^4.0.0"
675 675 }
676 676 },
677 677 "json-schema-traverse": {
678 678 "version": "0.4.1",
679 679 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
680 680 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
681 681 "dev": true
682 682 },
683 683 "json-stable-stringify-without-jsonify": {
684 684 "version": "1.0.1",
685 685 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
686 686 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
687 687 "dev": true
688 688 },
689 689 "levn": {
690 690 "version": "0.3.0",
691 691 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
692 692 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
693 693 "dev": true,
694 694 "requires": {
695 695 "prelude-ls": "~1.1.2",
696 696 "type-check": "~0.3.2"
697 697 }
698 698 },
699 699 "lodash": {
700 "version": "4.17.15",
701 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
702 "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
700 "version": "4.17.20",
701 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
702 "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
703 703 "dev": true
704 704 },
705 705 "mimic-fn": {
706 706 "version": "2.1.0",
707 707 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
708 708 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
709 709 "dev": true
710 710 },
711 711 "minimatch": {
712 712 "version": "3.0.4",
713 713 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
714 714 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
715 715 "dev": true,
716 716 "requires": {
717 717 "brace-expansion": "^1.1.7"
718 718 }
719 719 },
720 "minimist": {
721 "version": "0.0.8",
722 "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
723 "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
724 "dev": true
725 },
726 720 "mkdirp": {
727 "version": "0.5.1",
728 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
729 "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
721 "version": "0.5.5",
722 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
723 "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
730 724 "dev": true,
731 725 "requires": {
732 "minimist": "0.0.8"
726 "minimist": "^1.2.5"
727 },
728 "dependencies": {
729 "minimist": {
730 "version": "1.2.5",
731 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
732 "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
733 "dev": true
734 }
733 735 }
734 736 },
735 737 "ms": {
736 738 "version": "2.1.2",
737 739 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
738 740 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
739 741 "dev": true
740 742 },
741 743 "mute-stream": {
742 744 "version": "0.0.8",
743 745 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
744 746 "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
745 747 "dev": true
746 748 },
747 749 "natural-compare": {
748 750 "version": "1.4.0",
749 751 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
750 752 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
751 753 "dev": true
752 754 },
753 755 "nice-try": {
754 756 "version": "1.0.5",
755 757 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
756 758 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
757 759 "dev": true
758 760 },
759 761 "once": {
760 762 "version": "1.4.0",
761 763 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
762 764 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
763 765 "dev": true,
764 766 "requires": {
765 767 "wrappy": "1"
766 768 }
767 769 },
768 770 "onetime": {
769 771 "version": "5.1.0",
770 772 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
771 773 "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
772 774 "dev": true,
773 775 "requires": {
774 776 "mimic-fn": "^2.1.0"
775 777 }
776 778 },
777 779 "optionator": {
778 780 "version": "0.8.3",
779 781 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
780 782 "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
781 783 "dev": true,
782 784 "requires": {
783 785 "deep-is": "~0.1.3",
784 786 "fast-levenshtein": "~2.0.6",
785 787 "levn": "~0.3.0",
786 788 "prelude-ls": "~1.1.2",
787 789 "type-check": "~0.3.2",
788 790 "word-wrap": "~1.2.3"
789 791 }
790 792 },
791 793 "os-tmpdir": {
792 794 "version": "1.0.2",
793 795 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
794 796 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
795 797 "dev": true
796 798 },
797 799 "parent-module": {
798 800 "version": "1.0.1",
799 801 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
800 802 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
801 803 "dev": true,
802 804 "requires": {
803 805 "callsites": "^3.0.0"
804 806 }
805 807 },
806 808 "path-is-absolute": {
807 809 "version": "1.0.1",
808 810 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
809 811 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
810 812 "dev": true
811 813 },
812 814 "path-key": {
813 815 "version": "2.0.1",
814 816 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
815 817 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
816 818 "dev": true
817 819 },
818 820 "path-parse": {
819 821 "version": "1.0.6",
820 822 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
821 823 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
822 824 "dev": true
823 825 },
824 826 "pathval": {
825 827 "version": "1.1.0",
826 828 "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
827 829 "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
828 830 "dev": true
829 831 },
830 832 "prelude-ls": {
831 833 "version": "1.1.2",
832 834 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
833 835 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
834 836 "dev": true
835 837 },
836 838 "progress": {
837 839 "version": "2.0.3",
838 840 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
839 841 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
840 842 "dev": true
841 843 },
842 844 "punycode": {
843 845 "version": "2.1.1",
844 846 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
845 847 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
846 848 "dev": true
847 849 },
848 850 "regenerator-runtime": {
849 851 "version": "0.13.3",
850 852 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
851 853 "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
852 854 "dev": true
853 855 },
854 856 "regexpp": {
855 857 "version": "2.0.1",
856 858 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
857 859 "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
858 860 "dev": true
859 861 },
860 862 "resolve": {
861 "version": "1.15.0",
862 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz",
863 "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==",
863 "version": "1.17.0",
864 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
865 "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
864 866 "dev": true,
865 867 "requires": {
866 868 "path-parse": "^1.0.6"
867 869 }
868 870 },
869 871 "resolve-from": {
870 872 "version": "4.0.0",
871 873 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
872 874 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
873 875 "dev": true
874 876 },
875 877 "restore-cursor": {
876 878 "version": "3.1.0",
877 879 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
878 880 "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
879 881 "dev": true,
880 882 "requires": {
881 883 "onetime": "^5.1.0",
882 884 "signal-exit": "^3.0.2"
883 885 }
884 886 },
885 887 "rimraf": {
886 888 "version": "2.6.3",
887 889 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
888 890 "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
889 891 "dev": true,
890 892 "requires": {
891 893 "glob": "^7.1.3"
892 894 }
893 895 },
894 896 "run-async": {
895 897 "version": "2.3.0",
896 898 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
897 899 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
898 900 "dev": true,
899 901 "requires": {
900 902 "is-promise": "^2.1.0"
901 903 }
902 904 },
903 905 "rxjs": {
904 906 "version": "6.5.4",
905 907 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
906 908 "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
907 909 "dev": true,
908 910 "requires": {
909 911 "tslib": "^1.9.0"
910 912 }
911 913 },
912 914 "safer-buffer": {
913 915 "version": "2.1.2",
914 916 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
915 917 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
916 918 "dev": true
917 919 },
918 920 "semver": {
919 921 "version": "6.3.0",
920 922 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
921 923 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
922 924 "dev": true
923 925 },
924 926 "shebang-command": {
925 927 "version": "1.2.0",
926 928 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
927 929 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
928 930 "dev": true,
929 931 "requires": {
930 932 "shebang-regex": "^1.0.0"
931 933 }
932 934 },
933 935 "shebang-regex": {
934 936 "version": "1.0.0",
935 937 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
936 938 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
937 939 "dev": true
938 940 },
939 941 "signal-exit": {
940 942 "version": "3.0.2",
941 943 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
942 944 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
943 945 "dev": true
944 946 },
945 947 "slice-ansi": {
946 948 "version": "2.1.0",
947 949 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
948 950 "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
949 951 "dev": true,
950 952 "requires": {
951 953 "ansi-styles": "^3.2.0",
952 954 "astral-regex": "^1.0.0",
953 955 "is-fullwidth-code-point": "^2.0.0"
954 956 },
955 957 "dependencies": {
956 958 "is-fullwidth-code-point": {
957 959 "version": "2.0.0",
958 960 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
959 961 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
960 962 "dev": true
961 963 }
962 964 }
963 965 },
964 966 "sprintf-js": {
965 967 "version": "1.0.3",
966 968 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
967 969 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
968 970 "dev": true
969 971 },
970 972 "string-width": {
971 973 "version": "4.2.0",
972 974 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
973 975 "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
974 976 "dev": true,
975 977 "requires": {
976 978 "emoji-regex": "^8.0.0",
977 979 "is-fullwidth-code-point": "^3.0.0",
978 980 "strip-ansi": "^6.0.0"
979 981 },
980 982 "dependencies": {
981 983 "strip-ansi": {
982 984 "version": "6.0.0",
983 985 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
984 986 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
985 987 "dev": true,
986 988 "requires": {
987 989 "ansi-regex": "^5.0.0"
988 990 }
989 991 }
990 992 }
991 993 },
992 994 "strip-ansi": {
993 995 "version": "5.2.0",
994 996 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
995 997 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
996 998 "dev": true,
997 999 "requires": {
998 1000 "ansi-regex": "^4.1.0"
999 1001 },
1000 1002 "dependencies": {
1001 1003 "ansi-regex": {
1002 1004 "version": "4.1.0",
1003 1005 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1004 1006 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1005 1007 "dev": true
1006 1008 }
1007 1009 }
1008 1010 },
1009 1011 "strip-json-comments": {
1010 1012 "version": "3.0.1",
1011 1013 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
1012 1014 "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
1013 1015 "dev": true
1014 1016 },
1015 1017 "supports-color": {
1016 1018 "version": "5.5.0",
1017 1019 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1018 1020 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1019 1021 "dev": true,
1020 1022 "requires": {
1021 1023 "has-flag": "^3.0.0"
1022 1024 }
1023 1025 },
1024 1026 "table": {
1025 1027 "version": "5.4.6",
1026 1028 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
1027 1029 "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
1028 1030 "dev": true,
1029 1031 "requires": {
1030 1032 "ajv": "^6.10.2",
1031 1033 "lodash": "^4.17.14",
1032 1034 "slice-ansi": "^2.1.0",
1033 1035 "string-width": "^3.0.0"
1034 1036 },
1035 1037 "dependencies": {
1036 1038 "emoji-regex": {
1037 1039 "version": "7.0.3",
1038 1040 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
1039 1041 "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
1040 1042 "dev": true
1041 1043 },
1042 1044 "is-fullwidth-code-point": {
1043 1045 "version": "2.0.0",
1044 1046 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1045 1047 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1046 1048 "dev": true
1047 1049 },
1048 1050 "string-width": {
1049 1051 "version": "3.1.0",
1050 1052 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1051 1053 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1052 1054 "dev": true,
1053 1055 "requires": {
1054 1056 "emoji-regex": "^7.0.1",
1055 1057 "is-fullwidth-code-point": "^2.0.0",
1056 1058 "strip-ansi": "^5.1.0"
1057 1059 }
1058 1060 }
1059 1061 }
1060 1062 },
1061 1063 "text-table": {
1062 1064 "version": "0.2.0",
1063 1065 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1064 1066 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1065 1067 "dev": true
1066 1068 },
1067 1069 "through": {
1068 1070 "version": "2.3.8",
1069 1071 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1070 1072 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
1071 1073 "dev": true
1072 1074 },
1073 1075 "tmp": {
1074 1076 "version": "0.0.33",
1075 1077 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
1076 1078 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
1077 1079 "dev": true,
1078 1080 "requires": {
1079 1081 "os-tmpdir": "~1.0.2"
1080 1082 }
1081 1083 },
1082 1084 "tslib": {
1083 1085 "version": "1.10.0",
1084 1086 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
1085 1087 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
1086 1088 "dev": true
1087 1089 },
1088 1090 "tslint": {
1089 "version": "6.0.0",
1090 "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.0.0.tgz",
1091 "integrity": "sha512-9nLya8GBtlFmmFMW7oXXwoXS1NkrccqTqAtwXzdPV9e2mqSEvCki6iHL/Fbzi5oqbugshzgGPk7KBb2qNP1DSA==",
1091 "version": "6.1.3",
1092 "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
1093 "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
1092 1094 "dev": true,
1093 1095 "requires": {
1094 1096 "@babel/code-frame": "^7.0.0",
1095 1097 "builtin-modules": "^1.1.1",
1096 1098 "chalk": "^2.3.0",
1097 1099 "commander": "^2.12.1",
1098 1100 "diff": "^4.0.1",
1099 1101 "glob": "^7.1.1",
1100 1102 "js-yaml": "^3.13.1",
1101 1103 "minimatch": "^3.0.4",
1102 "mkdirp": "^0.5.1",
1104 "mkdirp": "^0.5.3",
1103 1105 "resolve": "^1.3.2",
1104 1106 "semver": "^5.3.0",
1105 "tslib": "^1.10.0",
1107 "tslib": "^1.13.0",
1106 1108 "tsutils": "^2.29.0"
1107 1109 },
1108 1110 "dependencies": {
1109 1111 "semver": {
1110 1112 "version": "5.7.1",
1111 1113 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1112 1114 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1113 1115 "dev": true
1116 },
1117 "tslib": {
1118 "version": "1.13.0",
1119 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
1120 "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
1121 "dev": true
1114 1122 }
1115 1123 }
1116 1124 },
1117 1125 "tsutils": {
1118 1126 "version": "2.29.0",
1119 1127 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
1120 1128 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
1121 1129 "dev": true,
1122 1130 "requires": {
1123 1131 "tslib": "^1.8.1"
1124 1132 }
1125 1133 },
1126 1134 "type-check": {
1127 1135 "version": "0.3.2",
1128 1136 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1129 1137 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
1130 1138 "dev": true,
1131 1139 "requires": {
1132 1140 "prelude-ls": "~1.1.2"
1133 1141 }
1134 1142 },
1135 1143 "type-detect": {
1136 1144 "version": "4.0.8",
1137 1145 "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
1138 1146 "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
1139 1147 "dev": true
1140 1148 },
1141 1149 "type-fest": {
1142 1150 "version": "0.8.1",
1143 1151 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1144 1152 "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
1145 1153 "dev": true
1146 1154 },
1147 1155 "typescript": {
1148 "version": "3.8.3",
1149 "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz",
1150 "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==",
1156 "version": "4.0.2",
1157 "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz",
1158 "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==",
1151 1159 "dev": true
1152 1160 },
1153 1161 "uri-js": {
1154 1162 "version": "4.2.2",
1155 1163 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1156 1164 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1157 1165 "dev": true,
1158 1166 "requires": {
1159 1167 "punycode": "^2.1.0"
1160 1168 }
1161 1169 },
1162 1170 "v8-compile-cache": {
1163 1171 "version": "2.1.0",
1164 1172 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
1165 1173 "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
1166 1174 "dev": true
1167 1175 },
1168 1176 "which": {
1169 1177 "version": "1.3.1",
1170 1178 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1171 1179 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1172 1180 "dev": true,
1173 1181 "requires": {
1174 1182 "isexe": "^2.0.0"
1175 1183 }
1176 1184 },
1177 1185 "word-wrap": {
1178 1186 "version": "1.2.3",
1179 1187 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
1180 1188 "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
1181 1189 "dev": true
1182 1190 },
1183 1191 "wrappy": {
1184 1192 "version": "1.0.2",
1185 1193 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1186 1194 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1187 1195 "dev": true
1188 1196 },
1189 1197 "write": {
1190 1198 "version": "1.0.3",
1191 1199 "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
1192 1200 "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
1193 1201 "dev": true,
1194 1202 "requires": {
1195 1203 "mkdirp": "^0.5.1"
1196 1204 }
1197 1205 },
1198 1206 "yaml": {
1199 1207 "version": "1.7.2",
1200 1208 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz",
1201 1209 "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==",
1202 1210 "dev": true,
1203 1211 "requires": {
1204 1212 "@babel/runtime": "^7.6.3"
1205 1213 }
1206 1214 }
1207 1215 }
1208 1216 }
@@ -1,34 +1,34
1 1 {
2 2 "name": "@implab/djx",
3 3 "version": "0.0.1-dev",
4 4 "description": "Supports using dojo version 1 with typescript and .tsx files",
5 5 "keywords": [
6 6 "dojo",
7 7 "tsx",
8 8 "typescript",
9 9 "widgets"
10 10 ],
11 11 "author": "Implab team",
12 12 "license": "BSD-2-Clause",
13 13 "repository": "https://hg.code.sf.net/p/implabjs/djx",
14 14 "publishConfig": {
15 15 "access": "public"
16 16 },
17 17 "peerDependencies": {
18 18 "dojo": "1.16.0",
19 19 "@implab/core-amd": "^1.3.2"
20 20 },
21 21 "devDependencies": {
22 "@implab/core-amd": "^1.3.2",
23 "@types/chai": "4.1.3",
22 24 "@types/requirejs": "2.1.31",
23 "dojo": "1.16.0",
24 "typescript": "~3.8.3",
25 "eslint": "6.8.0",
26 "tslint": "6.0.0",
27 "@implab/core-amd": "^1.3.2",
28 "yaml": "~1.7.2",
29 25 "@types/yaml": "1.2.0",
30 26 "chai": "4.2.0",
31 "@types/chai": "4.1.3",
32 "dojo-typings": "~1.11.9"
27 "dojo": "1.16.0",
28 "dojo-typings": "~1.11.9",
29 "eslint": "6.8.0",
30 "tslint": "^6.1.3",
31 "typescript": "4.0.2",
32 "yaml": "~1.7.2"
33 33 }
34 34 }
@@ -1,256 +1,256
1 1 import declare = require("dojo/_base/declare");
2 2 import { each } from "@implab/core-amd/safe";
3 3 import { Constructor } from "@implab/core-amd/interfaces";
4 4 import dojo = require("dojo/_base/kernel");
5 5
6 6 // declare const declare: any;
7 7
8 8 type DeclareConstructor<T> = dojo._base.DeclareConstructor<T>;
9 9
10 10 export interface AbstractConstructor<T = {}> {
11 11 prototype: T;
12 12 }
13 13
14 14 interface DjMockConstructor<T = {}> {
15 15 new(...args: any[]): T;
16 16 mock: boolean;
17 17 base: AbstractConstructor;
18 18 }
19 19
20 20 export function djbase<T>(
21 21 b0: AbstractConstructor<T>
22 22 ): DeclareConstructor<T>;
23 23
24 24 export function djbase<T0, T1>(
25 25 b0: AbstractConstructor<T0>,
26 26 b1: AbstractConstructor<T1>
27 27 ): DeclareConstructor<T0 & T1>;
28 28
29 29 export function djbase<T0, T1, T2>(
30 30 b0: AbstractConstructor<T0>,
31 31 b1: AbstractConstructor<T1>,
32 32 b2: AbstractConstructor<T2>
33 33 ): DeclareConstructor<T0 & T1 & T2>;
34 34
35 35 export function djbase<T0, T1, T2, T3>(
36 36 b0: AbstractConstructor<T0>,
37 37 b1: AbstractConstructor<T1>,
38 38 b2: AbstractConstructor<T2>,
39 39 b3: AbstractConstructor<T3>
40 40 ): DeclareConstructor<T0 & T1 & T2 & T3>;
41 41
42 42 export function djbase<T0, T1, T2, T3, T4>(
43 43 b0: AbstractConstructor<T0>,
44 44 b1: AbstractConstructor<T1>,
45 45 b2: AbstractConstructor<T2>,
46 46 b3: AbstractConstructor<T3>,
47 47 b4: AbstractConstructor<T4>
48 48 ): DeclareConstructor<T0 & T1 & T2 & T3 & T4>;
49 49
50 50 export function djbase<T0, T1, T2, T3, T4, T5>(
51 51 b0: AbstractConstructor<T0>,
52 52 b1: AbstractConstructor<T1>,
53 53 b2: AbstractConstructor<T2>,
54 54 b3: AbstractConstructor<T3>,
55 55 b4: AbstractConstructor<T4>,
56 56 b5: AbstractConstructor<T5>
57 57 ): DeclareConstructor<T0 & T1 & T2 & T3 & T4 & T5>;
58 58
59 59 export function djbase<T0, T1, T2, T3, T4, T5, T6>(
60 60 b0: AbstractConstructor<T0>,
61 61 b1: AbstractConstructor<T1>,
62 62 b2: AbstractConstructor<T2>,
63 63 b3: AbstractConstructor<T3>,
64 64 b4: AbstractConstructor<T4>,
65 65 b5: AbstractConstructor<T5>,
66 66 b6: AbstractConstructor<T6>
67 67 ): DeclareConstructor<T0 & T1 & T2 & T3 & T4 & T5 & T6>;
68 68
69 69 export function djbase<T0, T1, T2, T3, T4, T5, T6, T7>(
70 70 b0: AbstractConstructor<T0>,
71 71 b1: AbstractConstructor<T1>,
72 72 b2: AbstractConstructor<T2>,
73 73 b3: AbstractConstructor<T3>,
74 74 b4: AbstractConstructor<T4>,
75 75 b5: AbstractConstructor<T5>,
76 76 b6: AbstractConstructor<T6>,
77 77 b7: AbstractConstructor<T7>
78 78 ): DeclareConstructor<T0 & T1 & T2 & T3 & T4 & T5 & T6 & T7>;
79 79
80 80 /** Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ конструктор-Π·Π°Π³Π»ΡƒΡˆΠΊΡƒ ΠΈΠ· списка Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ
81 81 * для объявлСния классов ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ `dojo/_base/declare`.
82 82 *
83 83 * Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ пустой конструктор, с пустым стандартным ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠΌ, это Π½ΡƒΠΆΠ½ΠΎ,
84 84 * ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² унаслСдованном классС конструктор ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ
85 85 * `super(...)`, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.
86 86 *
87 87 * Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ конструктор Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² сСбС список Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚
88 88 * использован Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ `djclass`, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Ρ€Π½Π΅Ρ‚ класс, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ
89 89 * ΠΏΠΎΠΌΠΎΡ‰ΠΈ `dojo/_base/declare`.
90 90 *
91 91 * @param bases список Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… трСбуСтся ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ
92 92 * Π½ΠΎΠ²Ρ‹ΠΉ класс.
93 93 *
94 94 */
95 95 export function djbase(...bases: any[]): Constructor {
96 96
97 97 const t = class {
98 98 static mock: boolean;
99 99 static base: AbstractConstructor;
100 100 };
101 101
102 102 t.mock = true;
103 103 t.base = declare(bases);
104 104
105 105 return t as any;
106 106 }
107 107
108 108 function isMockConstructor<T extends {}>(v: AbstractConstructor<T>): v is DjMockConstructor<T> {
109 109 return v && "mock" in v;
110 110 }
111 111
112 112 /** Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ класс ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ `dojo/_base/declare`. Для этого исходный класс
113 113 * Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ унаслСдован ΠΎΡ‚ `djbase(...)`.
114 114 *
115 115 * @param target Класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ `dojo/_base/declare`
116 116 */
117 117 export function djclass<T extends AbstractConstructor>(target: T): T {
118 118 // ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ конструктор ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ
119 119 let bp = target && target.prototype && Object.getPrototypeOf(target.prototype);
120 120 const bc = bp && bp.constructor;
121 121
122 122 // ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ класс унаслСдован ΠΎΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ
123 123 if (isMockConstructor(bc)) {
124 124 // t - Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ dojo/_base/declare
125 125 const t = bc.base;
126 126
127 127 // bc - Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс, bc.prototype ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ super
128 128 // ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². НуТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ bc.prototype
129 129 // Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π²Ρ‹Π·Ρ‹Π²Π°Π» this.inherited().
130 130
131 131 // создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ, ΠΎΠ½ Π½Π΅ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ
132 132 // класса, Π½ΠΎ super.some_method Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ.
133 133 // Π² этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ прокси для ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ…
134 134 // ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².
135 135 bp = bc.prototype = Object.create(t.prototype);
136 136 bp.constructor = bc;
137 137
138 138 // proxy - Ρ„Π°Π±Ρ€ΠΈΠΊΠ° для создания прокси-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ
139 139 // сСбя Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ this.inherited с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.
140 140 const proxy = (m: (...args: any[]) => any) => function (this: any) {
141 141 const f = this.getInherited({ callee: m });
142 142 return f && f.apply(this, arguments);
143 143
144 144 // Ρ‚Π°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ dojo 1.15+
145 145 // return this.inherited(m, arguments);
146 146 };
147 147
148 148 // Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ класса ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ содСрТит ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² этом
149 149 // классС ΠΈ Π΅Π³ΠΎ конструктор. НуТно ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΏΠΎ всСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈ
150 150 // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ для Π½ΠΈΡ… прокси.
151 151 // ΠŸΡ€ΠΈ этом Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классах
152 152 // ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹.
153 153 each(target.prototype, (m: any, p: string | number | symbol) => {
154 154 if (typeof m === "function" &&
155 155 p !== "constructor" &&
156 156 target.prototype.hasOwnProperty(p) &&
157 157 p in t.prototype
158 158 ) {
159 159 bp[p] = proxy(m);
160 160 }
161 161 });
162 162
163 163 const cls = declare(t, target.prototype);
164 164 // TODO mixin static members
165 165 return cls as any;
166 166 } else {
167 167 return target as any;
168 168 }
169 169 }
170 170
171 171 function makeSetterName(prop: string) {
172 172 return [
173 173 "_set",
174 174 prop.replace(/^./, x => x.toUpperCase()),
175 175 "Attr"
176 176 ].join("");
177 177 }
178 178
179 179 function makeGetterName(prop: string) {
180 180 return [
181 181 "_get",
182 182 prop.replace(/^./, x => x.toUpperCase()),
183 183 "Attr"
184 184 ].join("");
185 185 }
186 186
187 187 interface NodeBindSpec {
188 188 node: string;
189 189 type: "attribute" | "innerText" | "textContent" | "innerHTML" | "class" | "toggleClass";
190 190 attribute?: string;
191 191
192 192 className?: string;
193 193 }
194 194
195 195 /**
196 196 * ОписаниС привязки свойства Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΊ свойству Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
197 197 */
198 198 interface MemberBindSpec {
199 199 /**
200 200 * Имя свойства со ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ .
201 201 */
202 202 member: string;
203 203 /**
204 204 * Бвойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ привязку.
205 205 */
206 206 property: string;
207 207
208 208 /**
209 209 * ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° осущСствляСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° запись Π½ΠΎ ΠΈ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ свойства.
210 210 */
211 211 getter?: boolean;
212 212 }
213 213
214 214 function isNodeBindSpec(v: any): v is NodeBindSpec {
215 215 return "node" in v;
216 216 }
217 217
218 218 /** Π”Π΅ΠΊΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ свойства Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° для привязки ΠΈΡ… ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ, Π»ΠΈΠ±ΠΎ DOM
219 219 * элСмСнтам, Π»ΠΈΠ±ΠΎ свойству Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.
220 220 *
221 221 * @param {NodeBindSpec | MemberBindSpec} params ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ связывания.
222 222 */
223 223 export function bind(params: NodeBindSpec | MemberBindSpec) {
224 224 if (isNodeBindSpec(params)) {
225 225 return (target: any, name: string) => {
226 226 target[makeSetterName(name)] = params;
227 227 };
228 228 } else {
229 229 return (target: any, name: string) => {
230 230 target[name] = null;
231 231 target[makeSetterName(name)] = function (v: any) {
232 232 this._set(name, v);
233 233 this[params.member].set(params.property, v);
234 234 };
235 235 if (params.getter)
236 236 target[makeGetterName(name)] = function () {
237 237 return this[params.member].get(params.property);
238 238 };
239 239 };
240 240 }
241 241 }
242 242
243 /** Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π² ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ свойство со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `undefined`, Π΄Π°Π½Π½Ρ‹ΠΉ
243 /** Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π² ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ свойство со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `undefined`, Π΄Π°Π½Π½Ρ‹ΠΉ
244 244 * Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для свойств, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ значСния ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
245 245 * ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ `null | undefined`
246 246 */
247 247 export function prototype(): (p: any, name: string) => void;
248 248 /** Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ Π² ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ΅ свойство с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.
249 249 * @param value Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ΅
250 250 */
251 251 export function prototype<T>(value: T): <P extends { [m in K]: T }, K extends keyof P>(p: P, name: K) => void;
252 252 export function prototype<T>(value?: T) {
253 253 return <P extends { [m in K]: T }, K extends keyof P>(p: P, name: K) => {
254 254 p[name] = value as any;
255 255 };
256 256 }
@@ -1,51 +1,69
1 1 import { djbase, djclass } from "../declare";
2 2 import _WidgetBase = require("dijit/_WidgetBase");
3 3 import _AttachMixin = require("dijit/_AttachMixin");
4 4 import { BuildContext, isNode } from "./traits";
5 5 import registry = require("dijit/registry");
6 6
7 7 // type Handle = dojo.Handle;
8 8
9 export interface EventArgs {
10 bubbles?: boolean;
11
12 cancelable?: boolean;
13
14 composed?: boolean;
15 }
16
17 export interface DjxWidgetBase<Attrs = any, Events extends { [name in keyof Events]: Event } = any> {
18 set<K extends keyof Attrs & string>(key: K, value: Attrs[K]): this;
19 set(props: Partial<Attrs>): this;
20 get<K extends keyof Attrs & string>(key: K): Attrs[K];
21
22 on<K extends keyof Events & string>(eventName: K, cb: (evt: Events[K]) => void): dojo.WatchHandle;
23
24 emit<K extends keyof Events & string>(eventName: K, evt: Omit<Events[K], keyof Event> & EventArgs ): void;
25 }
26
9 27 @djclass
10 export abstract class DjxWidgetBase extends djbase(_WidgetBase, _AttachMixin) {
28 export abstract class DjxWidgetBase<Attrs = any, Events = any> extends djbase(_WidgetBase, _AttachMixin) {
11 29
12 30 buildRendering() {
13 31 this.domNode = this.render().getDomNode();
14 32 super.buildRendering();
15 33 }
16 34
17 35 abstract render(): BuildContext<HTMLElement>;
18 36
19 37 _processTemplateNode<T extends (Element | Node | _WidgetBase)>(
20 38 baseNode: T,
21 39 getAttrFunc: (baseNode: T, attr: string) => string,
22 40 // tslint:disable-next-line: ban-types
23 41 attachFunc: (node: T, type: string, func?: Function) => dojo.Handle
24 42 ): boolean {
25 43 if (isNode(baseNode)) {
26 44 const w = registry.byNode(baseNode);
27 45 if (w) {
28 46 // from dijit/_WidgetsInTemplateMixin
29 47 this._processTemplateNode(w,
30 48 (n, p) => n.get(p), // callback to get a property of a widget
31 49 (widget, type, callback) => {
32 50 if (!callback)
33 51 throw new Error("The callback must be specified");
34 52
35 53 // callback to do data-dojo-attach-event to a widget
36 54 if (type in widget) {
37 55 // back-compat, remove for 2.0
38 56 return widget.connect(widget, type, callback as EventListener);
39 57 } else {
40 58 // 1.x may never hit this branch, but it's the default for 2.0
41 59 return widget.on(type, callback);
42 60 }
43 61
44 62 });
45 63 // don't process widgets internals
46 64 return false;
47 65 }
48 66 }
49 67 return super._processTemplateNode(baseNode, getAttrFunc, attachFunc);
50 68 }
51 69 }
@@ -1,10 +1,25
1 1 declare module "@implab/djx/css!*" {
2 2 const result: { url: string };
3 3 export = result;
4 4 }
5 5
6 6 declare namespace JSX {
7 7 interface IntrinsicElements {
8 8 [name: string]: any;
9 9 }
10 10 }
11
12 declare namespace dijit {
13 interface _WidgetBase {
14
15 _started?: boolean;
16
17 _set<K extends keyof this>(key: K, value: this[K]): void;
18 }
19
20 interface TooltipDialog {
21
22 content: any;
23
24 }
25 } No newline at end of file
@@ -1,22 +1,43
1 import { djbase, djclass, bind, prototype } from "../declare";
1 import { djbase, djclass, bind, prototype, AbstractConstructor } from "../declare";
2 2
3 3 import { DjxWidgetBase } from "../tsx/DjxWidgetBase";
4 4 import { createElement } from "../tsx";
5 5
6 interface MyWidgetAttrs {
7 title: string;
8
9 counter: number;
10 }
11
12 interface MyWidgetEvents {
13 "count-inc": Event;
14
15 "count-dec": Event;
16 }
17
6 18
7 19 @djclass
8 export class MyWidget extends djbase(DjxWidgetBase) {
20 export class MyWidget extends djbase(DjxWidgetBase as AbstractConstructor<DjxWidgetBase<MyWidgetAttrs, MyWidgetEvents>>) {
9 21
10 22 @bind({node: "titleNode", type:"innerHTML"})
11 23 title = "";
12 24
13 25 @prototype()
14 26 counter = 0;
15 27
16 28 render() {
17 29 return <div>
18 30 <h1 data-dojo-attach-point="titleNode"></h1>
31 <span onclick={() => this._onIncClick()}>[+]</span>
32 <span onclick={() => this._onDecClick()}>[-]</span>
19 33 </div>;
20 34 }
21 35
36 _onIncClick() {
37 this.emit("count-inc", { bubbles: false } );
38 }
39
40 _onDecClick() {
41 this.emit("count-dec", { bubbles: false } );
42 }
22 43 }
General Comments 0
You need to be logged in to leave comments. Login now