##// END OF EJS Templates
Слияние
cin -
r92:43e5b8181346 merge default
parent child
Show More
@@ -0,0 +1,25
1 {
2 "env": {
3 "browser": true,
4 "amd": true
5 },
6 "parserOptions": {
7 "ecmaFeatures": {
8 "jsx": true
9 },
10 "sourceType": "script"
11 },
12 "extends": "eslint:recommended",
13 "rules": {
14 "no-const-assign": "warn",
15 "no-this-before-super": "warn",
16 "no-undef": "error",
17 "no-unreachable": "warn",
18 "no-unused-vars": "warn",
19 "constructor-super": "warn",
20 "valid-typeof": "warn",
21 "semi" : "warn",
22 "no-invalid-this" : "error",
23 "no-console": "off"
24 }
25 } No newline at end of file
@@ -0,0 +1,48
1 {
2 "extends": "tslint:recommended",
3 "defaultSeverity": "warn",
4 "rules": {
5 "align": [
6 true,
7 "parameters",
8 "statements"
9 ],
10 "interface-name": [
11 false
12 ],
13 "max-line-length": [
14 true,
15 185
16 ],
17 "quotemark": [true, "double", "avoid-escape"],
18 "member-access": false,
19 "semicolon": [true, "always", "ignore-bound-class-methods"],
20 "no-bitwise": false,
21 "no-empty": false,
22 "no-namespace": false,
23 "ordered-imports": false,
24 "no-return-await": true,
25 "no-floating-promises": true,
26 "one-line": [
27 true,
28 "check-open-brace",
29 "check-catch",
30 "check-whitespace"
31 ],
32 "object-literal-sort-keys": false,
33 "trailing-comma": [
34 true,
35 {
36 "singleline": "never",
37 "multiline": "never"
38 }
39 ],
40 "variable-name": false,
41 "curly": false,
42 "array-type": false,
43 "arrow-parens": [
44 true,
45 "ban-single-arg-parens"
46 ]
47 }
48 } No newline at end of file
@@ -1,27 +1,36
1 1 fc9f82c082ef432137da086a1fe9c37a12ba16a2 v1.0.0-rc2
2 2 6d80d7901b4c8ffe8728e4a7bf5f4b7e7a669bb5 v1.0.0-rc3
3 3 5a2c44d8e1f34dd30c2b50f92b7dc2e8f3247c43 v1.0.0-rc5
4 4 6c01fabe9ea9fb5e753fbeae8b0d2664e7072a66 v1.0.0-rc6
5 5 9e546fe36fdddc8324f1098ee950fa1a7ba19b93 v1.0.0-rc7
6 6 8f4d5e2c719a20ae6d65f1f4b5e2141ed765e975 v1.0.0-rc8
7 7 a1ab2b5975ad4b19599fb61538e7aaf329fb528c v1.0.0-rc10
8 8 9b77ac3bf8f200876450ad50c308a9441a7f39c7 v1.0.0-rc11
9 9 32b72f33756d3d10553b743f0b9f4504148cf97d v1.0.0-rc12
10 10 b88fac0e76c0e61e397e2995f468f7cf342afbc9 v1.0.0-rc13
11 11 a46488b209e8aac583c1634043147d87740c63b4 v1.0.0-rc14
12 12 1174538197f6796384e643f62100292f1377b137 v1.0.0-rc15
13 13 e8012fdf09ae442094f3831abe70649f8520659e 1.0.0-rc16
14 14 a1a1ef050ecc9d2a780e308cbffc2ad915a5c13d 1.0.0-rc17
15 15 5c6c7e16919cff4019a55661725789d287439b75 v1.0.0-rc18
16 16 3b6c4159c66cecf6c5957d33ad474919608489c6 v1.0.0
17 17 18383b2dcc1ae97fe3673242c84fe8d4b50a55f0 v1.0.1
18 18 ed3c20c09b000386b5204b483955eb61ee662eff v1.0.2
19 19 030ea350f98bb7a06e636251ea5cad403217e868 v1.0.3
20 20 346ba910a5425ed95f7a67ef4db1dbbf599e2cab v1.0.5
21 21 deb0ed6fb68015d89ba1287f6b766d1f80b6e4ff v1.0.7
22 22 dd0d589acfbbe938a5630547e83ad934ab597b64 v1.0.8
23 23 f2499237b5bf0ac2d73a8e437b8f15fa8a6306a5 v1.0.9
24 24 d4f0cdae9577caa605d9317d0ceb93f7b67895f3 v1.0.10
25 25 1a0018655d1c3dafc16ae50971cb535b8555e246 v1.1.0
26 26 ff3695b0a48f00155ad6c3d7e000fe185ee6f95a v1.1.1
27 27 c276b9b7fa833242d1bf75eeeaae9924feee51e8 v1.1.2
28 fdde09e66c009f4950ec69a393a8e789725da758 v1.2.0
29 16678c6055f20ce1a49bdca5e6dabce88ee8deed v1.2.1
30 bc7556143fe536e3df374bc0070146311884284e v1.2.2
31 e5bb5e80ce96fc4ca0fbbf0b5390443a616e99fa v1.2.3
32 cc5be30e84f8a0d9a8e25447651576d9e46ab154 v1.2.4
33 2807ab11174c7446830d91d5f1b652a18c6ecae5 v1.2.5
34 35a7b6319ebe24973fe10b8d82c19d3d86857b4e v1.2.6
35 70058deb750dc18fcd9be83c28cb8371530fffd8 v1.2.7
36 367f8caa5bf8fd2d4a56a6cff40be31ab82a2727 v1.2.8
@@ -1,77 +1,78
1 1 plugins {
2 2 id "org.implab.gradle-typescript" version "1.3.3"
3 3 id "ivy-publish"
4 4 }
5 5
6 6 typescript {
7 7 compilerOptions {
8 8 lib = ["es5", "dom", "scripthost", "es2015.promise", "es2015.symbol", "es2015.iterable"]
9 9 //listFiles = true
10 10 declaration = true
11 11 strict = true
12 12 types = []
13 13 module = "amd"
14 14 it.target = "es5"
15 15 experimentalDecorators = true
16 noUnusedLocals = true
16 17 jsx = "react"
17 18 jsxFactory = "createElement"
18 19 moduleResolution = "node"
19 20 // dojo-typings are sick
20 21 skipLibCheck = true
21 22 // traceResolution = true
22 23 // baseUrl = "./"
23 24 // paths = [ "*": [ "$projectDir/src/typings/*" ] ]
24 25 // baseUrl = "$projectDir/src/typings"
25 26 // typeRoots = ["$projectDir/src/typings"]
26 27 }
27 28
28 29 tscCmd = "$projectDir/node_modules/.bin/tsc"
29 30 tsLintCmd = "$projectDir/node_modules/.bin/tslint"
30 31 esLintCmd = "$projectDir/node_modules/.bin/eslint"
31 32 }
32 33
33 34 configureTsMain {
34 35 sourceFiles {
35 36 from sources.main.typings
36 37 }
37 38 compilerOptions {
38 39 // baseUrl = "$projectDir/src"
39 40 /*paths = [
40 41 "dojo/*" : [ "typings/dojo/*" ],
41 42 "dijit/*" : [ "typings/dijit/*" ]
42 43 ]*/
43 types = ["requirejs", "dojo-typings"]
44 types = ["requirejs", "@implab/dojo-typings"]
44 45 }
45 46 }
46 47
47 48 configureTsTest {
48 49 compilerOptions {
49 50 typeRoots = []
50 51 types = ["requirejs", sources.main.output.typingsDir.get().toString() ]
51 52 }
52 53 }
53 54
54 55 npmPackMeta {
55 56 meta {
56 57 name = "@$npmScope/$project.name"
57 58 }
58 59 }
59 60
60 61 task npmPackTypings(type: Copy) {
61 62 dependsOn typings
62 63
63 64 npmPackContents.dependsOn it
64 65
65 66 from typescript.typingsDir
66 67 into npm.packageDir
67 68 }
68 69
69 70 task printVersion {
70 71 doLast {
71 72 println "packageName: ${npmPackMeta.metadata.get().name}";
72 73 println "version: $version";
73 74 println "target: $typescript.compilerOptions.target";
74 75 println "module: $typescript.compilerOptions.module";
75 76 println "symbols: $symbols";
76 77 }
77 78 } No newline at end of file
@@ -1,2744 +1,2610
1 1 {
2 2 "name": "@implab/djx",
3 3 "version": "0.0.1-dev",
4 4 "lockfileVersion": 2,
5 5 "requires": true,
6 6 "packages": {
7 7 "": {
8 8 "name": "@implab/djx",
9 9 "version": "0.0.1-dev",
10 10 "license": "BSD-2-Clause",
11 11 "devDependencies": {
12 12 "@implab/core-amd": "^1.4.0",
13 "@implab/dojo-typings": "1.0.0",
13 14 "@types/chai": "4.1.3",
14 15 "@types/requirejs": "2.1.31",
15 16 "@types/yaml": "1.2.0",
16 "chai": "4.2.0",
17 17 "dojo": "1.16.0",
18 "dojo-typings": "~1.11.9",
19 18 "eslint": "6.8.0",
20 19 "requirejs": "2.3.6",
21 20 "tslint": "^6.1.3",
22 21 "typescript": "4.2.4",
23 22 "yaml": "~1.7.2"
24 23 },
25 24 "peerDependencies": {
26 25 "@implab/core-amd": "^1.4.0",
27 26 "dojo": "^1.10.0"
28 27 }
29 28 },
30 29 "node_modules/@babel/code-frame": {
31 30 "version": "7.8.3",
32 31 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
33 32 "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
34 33 "dev": true,
35 34 "dependencies": {
36 35 "@babel/highlight": "^7.8.3"
37 36 }
38 37 },
39 38 "node_modules/@babel/highlight": {
40 39 "version": "7.8.3",
41 40 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
42 41 "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
43 42 "dev": true,
44 43 "dependencies": {
45 44 "chalk": "^2.0.0",
46 45 "esutils": "^2.0.2",
47 46 "js-tokens": "^4.0.0"
48 47 }
49 48 },
50 49 "node_modules/@babel/runtime": {
51 50 "version": "7.8.3",
52 51 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
53 52 "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
54 53 "dev": true,
55 54 "dependencies": {
56 55 "regenerator-runtime": "^0.13.2"
57 56 }
58 57 },
59 58 "node_modules/@implab/core-amd": {
60 59 "version": "1.4.0",
61 60 "resolved": "https://registry.npmjs.org/@implab/core-amd/-/core-amd-1.4.0.tgz",
62 61 "integrity": "sha512-gaJX1mhri7YpmXDTAYELZnmTznzXYpk2AI7Decsttdi6xY+bqGgH24q0AFcKrx8RY2jfsFXxDdf0fITz2HpBbw==",
63 62 "dev": true
64 63 },
64 "node_modules/@implab/dojo-typings": {
65 "version": "1.0.0",
66 "resolved": "https://registry.npmjs.org/@implab/dojo-typings/-/dojo-typings-1.0.0.tgz",
67 "integrity": "sha512-B2kvlKJgvyIQAl/k1pVyNmtp4ADvBDCs4Lw/qfBC+Sz/ft4c7EuRXmN/+2dhWrd6A5SMjEgex5oeq6Ja2ntrig==",
68 "dev": true
69 },
65 70 "node_modules/@types/chai": {
66 71 "version": "4.1.3",
67 72 "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.3.tgz",
68 73 "integrity": "sha512-f5dXGzOJycyzSMdaXVhiBhauL4dYydXwVpavfQ1mVCaGjR56a9QfklXObUxlIY9bGTmCPHEEZ04I16BZ/8w5ww==",
69 74 "dev": true
70 75 },
71 76 "node_modules/@types/requirejs": {
72 77 "version": "2.1.31",
73 78 "resolved": "https://registry.npmjs.org/@types/requirejs/-/requirejs-2.1.31.tgz",
74 79 "integrity": "sha512-b2soeyuU76rMbcRJ4e0hEl0tbMhFwZeTC0VZnfuWlfGlk6BwWNsev6kFu/twKABPX29wkX84wU2o+cEJoXsiTw==",
75 80 "dev": true
76 81 },
77 82 "node_modules/@types/yaml": {
78 83 "version": "1.2.0",
79 84 "resolved": "https://registry.npmjs.org/@types/yaml/-/yaml-1.2.0.tgz",
80 85 "integrity": "sha512-GW8b9qM+ebgW3/zjzPm0I1NxMvLaz/YKT9Ph6tTb+Fkeyzd9yLTvQ6ciQ2MorTRmb/qXmfjMerRpG4LviixaqQ==",
81 86 "dev": true
82 87 },
83 88 "node_modules/acorn": {
84 89 "version": "7.4.0",
85 90 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
86 91 "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
87 92 "dev": true,
88 93 "bin": {
89 94 "acorn": "bin/acorn"
90 95 },
91 96 "engines": {
92 97 "node": ">=0.4.0"
93 98 }
94 99 },
95 100 "node_modules/acorn-jsx": {
96 101 "version": "5.1.0",
97 102 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
98 103 "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
99 104 "dev": true
100 105 },
101 106 "node_modules/ajv": {
102 107 "version": "6.11.0",
103 108 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
104 109 "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
105 110 "dev": true,
106 111 "dependencies": {
107 112 "fast-deep-equal": "^3.1.1",
108 113 "fast-json-stable-stringify": "^2.0.0",
109 114 "json-schema-traverse": "^0.4.1",
110 115 "uri-js": "^4.2.2"
111 116 }
112 117 },
113 118 "node_modules/ansi-escapes": {
114 119 "version": "4.3.0",
115 120 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
116 121 "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==",
117 122 "dev": true,
118 123 "dependencies": {
119 124 "type-fest": "^0.8.1"
120 125 },
121 126 "engines": {
122 127 "node": ">=8"
123 128 }
124 129 },
125 130 "node_modules/ansi-regex": {
126 131 "version": "5.0.0",
127 132 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
128 133 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
129 134 "dev": true,
130 135 "engines": {
131 136 "node": ">=8"
132 137 }
133 138 },
134 139 "node_modules/ansi-styles": {
135 140 "version": "3.2.1",
136 141 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
137 142 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
138 143 "dev": true,
139 144 "dependencies": {
140 145 "color-convert": "^1.9.0"
141 146 },
142 147 "engines": {
143 148 "node": ">=4"
144 149 }
145 150 },
146 151 "node_modules/argparse": {
147 152 "version": "1.0.10",
148 153 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
149 154 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
150 155 "dev": true,
151 156 "dependencies": {
152 157 "sprintf-js": "~1.0.2"
153 158 }
154 159 },
155 "node_modules/assertion-error": {
156 "version": "1.1.0",
157 "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
158 "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
159 "dev": true,
160 "engines": {
161 "node": "*"
162 }
163 },
164 160 "node_modules/astral-regex": {
165 161 "version": "1.0.0",
166 162 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
167 163 "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
168 164 "dev": true,
169 165 "engines": {
170 166 "node": ">=4"
171 167 }
172 168 },
173 169 "node_modules/balanced-match": {
174 170 "version": "1.0.0",
175 171 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
176 172 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
177 173 "dev": true
178 174 },
179 175 "node_modules/brace-expansion": {
180 176 "version": "1.1.11",
181 177 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
182 178 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
183 179 "dev": true,
184 180 "dependencies": {
185 181 "balanced-match": "^1.0.0",
186 182 "concat-map": "0.0.1"
187 183 }
188 184 },
189 185 "node_modules/builtin-modules": {
190 186 "version": "1.1.1",
191 187 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
192 188 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
193 189 "dev": true,
194 190 "engines": {
195 191 "node": ">=0.10.0"
196 192 }
197 193 },
198 194 "node_modules/callsites": {
199 195 "version": "3.1.0",
200 196 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
201 197 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
202 198 "dev": true,
203 199 "engines": {
204 200 "node": ">=6"
205 201 }
206 202 },
207 "node_modules/chai": {
208 "version": "4.2.0",
209 "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
210 "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
211 "dev": true,
212 "dependencies": {
213 "assertion-error": "^1.1.0",
214 "check-error": "^1.0.2",
215 "deep-eql": "^3.0.1",
216 "get-func-name": "^2.0.0",
217 "pathval": "^1.1.0",
218 "type-detect": "^4.0.5"
219 },
220 "engines": {
221 "node": ">=4"
222 }
223 },
224 203 "node_modules/chalk": {
225 204 "version": "2.4.2",
226 205 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
227 206 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
228 207 "dev": true,
229 208 "dependencies": {
230 209 "ansi-styles": "^3.2.1",
231 210 "escape-string-regexp": "^1.0.5",
232 211 "supports-color": "^5.3.0"
233 212 },
234 213 "engines": {
235 214 "node": ">=4"
236 215 }
237 216 },
238 217 "node_modules/chardet": {
239 218 "version": "0.7.0",
240 219 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
241 220 "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
242 221 "dev": true
243 222 },
244 "node_modules/check-error": {
245 "version": "1.0.2",
246 "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
247 "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
248 "dev": true,
249 "engines": {
250 "node": "*"
251 }
252 },
253 223 "node_modules/cli-cursor": {
254 224 "version": "3.1.0",
255 225 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
256 226 "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
257 227 "dev": true,
258 228 "dependencies": {
259 229 "restore-cursor": "^3.1.0"
260 230 },
261 231 "engines": {
262 232 "node": ">=8"
263 233 }
264 234 },
265 235 "node_modules/cli-width": {
266 236 "version": "2.2.0",
267 237 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
268 238 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
269 239 "dev": true
270 240 },
271 241 "node_modules/color-convert": {
272 242 "version": "1.9.3",
273 243 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
274 244 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
275 245 "dev": true,
276 246 "dependencies": {
277 247 "color-name": "1.1.3"
278 248 }
279 249 },
280 250 "node_modules/color-name": {
281 251 "version": "1.1.3",
282 252 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
283 253 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
284 254 "dev": true
285 255 },
286 256 "node_modules/commander": {
287 257 "version": "2.20.3",
288 258 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
289 259 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
290 260 "dev": true
291 261 },
292 262 "node_modules/concat-map": {
293 263 "version": "0.0.1",
294 264 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
295 265 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
296 266 "dev": true
297 267 },
298 268 "node_modules/cross-spawn": {
299 269 "version": "6.0.5",
300 270 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
301 271 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
302 272 "dev": true,
303 273 "dependencies": {
304 274 "nice-try": "^1.0.4",
305 275 "path-key": "^2.0.1",
306 276 "semver": "^5.5.0",
307 277 "shebang-command": "^1.2.0",
308 278 "which": "^1.2.9"
309 279 },
310 280 "engines": {
311 281 "node": ">=4.8"
312 282 }
313 283 },
314 284 "node_modules/cross-spawn/node_modules/semver": {
315 285 "version": "5.7.1",
316 286 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
317 287 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
318 288 "dev": true,
319 289 "bin": {
320 290 "semver": "bin/semver"
321 291 }
322 292 },
323 293 "node_modules/debug": {
324 294 "version": "4.1.1",
325 295 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
326 296 "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
327 297 "dev": true,
328 298 "dependencies": {
329 299 "ms": "^2.1.1"
330 300 }
331 301 },
332 "node_modules/deep-eql": {
333 "version": "3.0.1",
334 "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
335 "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
336 "dev": true,
337 "dependencies": {
338 "type-detect": "^4.0.0"
339 },
340 "engines": {
341 "node": ">=0.12"
342 }
343 },
344 302 "node_modules/deep-is": {
345 303 "version": "0.1.3",
346 304 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
347 305 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
348 306 "dev": true
349 307 },
350 308 "node_modules/diff": {
351 309 "version": "4.0.2",
352 310 "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
353 311 "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
354 312 "dev": true,
355 313 "engines": {
356 314 "node": ">=0.3.1"
357 315 }
358 316 },
359 317 "node_modules/doctrine": {
360 318 "version": "3.0.0",
361 319 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
362 320 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
363 321 "dev": true,
364 322 "dependencies": {
365 323 "esutils": "^2.0.2"
366 324 },
367 325 "engines": {
368 326 "node": ">=6.0.0"
369 327 }
370 328 },
371 329 "node_modules/dojo": {
372 330 "version": "1.16.0",
373 331 "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.16.0.tgz",
374 332 "integrity": "sha512-DUiXyoLK6vMF5BPr/qiMLTxDMfiM9qlzN1jxfDsVfuvB/CwhYpNxA/M4mbqKN8PCVGLmccXBJbfmFJPP5+zmzw==",
375 333 "dev": true
376 334 },
377 "node_modules/dojo-typings": {
378 "version": "1.11.9",
379 "resolved": "https://registry.npmjs.org/dojo-typings/-/dojo-typings-1.11.9.tgz",
380 "integrity": "sha512-mh8w+Mau2Y1QfTEszEAdO7j6ycNhYxF/Ing6nAk1eUg6NxjeT0viVHjICMd9sU3U463vM2G+KfBBK5grk3/Mlw==",
381 "dev": true,
382 "dependencies": {
383 "@types/chai": "^4.0.4"
384 }
385 },
386 335 "node_modules/emoji-regex": {
387 336 "version": "8.0.0",
388 337 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
389 338 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
390 339 "dev": true
391 340 },
392 341 "node_modules/escape-string-regexp": {
393 342 "version": "1.0.5",
394 343 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
395 344 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
396 345 "dev": true,
397 346 "engines": {
398 347 "node": ">=0.8.0"
399 348 }
400 349 },
401 350 "node_modules/eslint": {
402 351 "version": "6.8.0",
403 352 "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
404 353 "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
405 354 "dev": true,
406 355 "dependencies": {
407 356 "@babel/code-frame": "^7.0.0",
408 357 "ajv": "^6.10.0",
409 358 "chalk": "^2.1.0",
410 359 "cross-spawn": "^6.0.5",
411 360 "debug": "^4.0.1",
412 361 "doctrine": "^3.0.0",
413 362 "eslint-scope": "^5.0.0",
414 363 "eslint-utils": "^1.4.3",
415 364 "eslint-visitor-keys": "^1.1.0",
416 365 "espree": "^6.1.2",
417 366 "esquery": "^1.0.1",
418 367 "esutils": "^2.0.2",
419 368 "file-entry-cache": "^5.0.1",
420 369 "functional-red-black-tree": "^1.0.1",
421 370 "glob-parent": "^5.0.0",
422 371 "globals": "^12.1.0",
423 372 "ignore": "^4.0.6",
424 373 "import-fresh": "^3.0.0",
425 374 "imurmurhash": "^0.1.4",
426 375 "inquirer": "^7.0.0",
427 376 "is-glob": "^4.0.0",
428 377 "js-yaml": "^3.13.1",
429 378 "json-stable-stringify-without-jsonify": "^1.0.1",
430 379 "levn": "^0.3.0",
431 380 "lodash": "^4.17.14",
432 381 "minimatch": "^3.0.4",
433 382 "mkdirp": "^0.5.1",
434 383 "natural-compare": "^1.4.0",
435 384 "optionator": "^0.8.3",
436 385 "progress": "^2.0.0",
437 386 "regexpp": "^2.0.1",
438 387 "semver": "^6.1.2",
439 388 "strip-ansi": "^5.2.0",
440 389 "strip-json-comments": "^3.0.1",
441 390 "table": "^5.2.3",
442 391 "text-table": "^0.2.0",
443 392 "v8-compile-cache": "^2.0.3"
444 393 },
445 394 "bin": {
446 395 "eslint": "bin/eslint.js"
447 396 },
448 397 "engines": {
449 398 "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
450 399 }
451 400 },
452 401 "node_modules/eslint-scope": {
453 402 "version": "5.0.0",
454 403 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
455 404 "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
456 405 "dev": true,
457 406 "dependencies": {
458 407 "esrecurse": "^4.1.0",
459 408 "estraverse": "^4.1.1"
460 409 },
461 410 "engines": {
462 411 "node": ">=8.0.0"
463 412 }
464 413 },
465 414 "node_modules/eslint-utils": {
466 415 "version": "1.4.3",
467 416 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
468 417 "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
469 418 "dev": true,
470 419 "dependencies": {
471 420 "eslint-visitor-keys": "^1.1.0"
472 421 },
473 422 "engines": {
474 423 "node": ">=6"
475 424 }
476 425 },
477 426 "node_modules/eslint-visitor-keys": {
478 427 "version": "1.1.0",
479 428 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
480 429 "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
481 430 "dev": true,
482 431 "engines": {
483 432 "node": ">=4"
484 433 }
485 434 },
486 435 "node_modules/espree": {
487 436 "version": "6.1.2",
488 437 "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz",
489 438 "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==",
490 439 "dev": true,
491 440 "dependencies": {
492 441 "acorn": "^7.1.0",
493 442 "acorn-jsx": "^5.1.0",
494 443 "eslint-visitor-keys": "^1.1.0"
495 444 },
496 445 "engines": {
497 446 "node": ">=6.0.0"
498 447 }
499 448 },
500 449 "node_modules/esprima": {
501 450 "version": "4.0.1",
502 451 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
503 452 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
504 453 "dev": true,
505 454 "bin": {
506 455 "esparse": "bin/esparse.js",
507 456 "esvalidate": "bin/esvalidate.js"
508 457 },
509 458 "engines": {
510 459 "node": ">=4"
511 460 }
512 461 },
513 462 "node_modules/esquery": {
514 463 "version": "1.0.1",
515 464 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
516 465 "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
517 466 "dev": true,
518 467 "dependencies": {
519 468 "estraverse": "^4.0.0"
520 469 },
521 470 "engines": {
522 471 "node": ">=0.6"
523 472 }
524 473 },
525 474 "node_modules/esrecurse": {
526 475 "version": "4.2.1",
527 476 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
528 477 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
529 478 "dev": true,
530 479 "dependencies": {
531 480 "estraverse": "^4.1.0"
532 481 },
533 482 "engines": {
534 483 "node": ">=4.0"
535 484 }
536 485 },
537 486 "node_modules/estraverse": {
538 487 "version": "4.3.0",
539 488 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
540 489 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
541 490 "dev": true,
542 491 "engines": {
543 492 "node": ">=4.0"
544 493 }
545 494 },
546 495 "node_modules/esutils": {
547 496 "version": "2.0.3",
548 497 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
549 498 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
550 499 "dev": true,
551 500 "engines": {
552 501 "node": ">=0.10.0"
553 502 }
554 503 },
555 504 "node_modules/external-editor": {
556 505 "version": "3.1.0",
557 506 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
558 507 "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
559 508 "dev": true,
560 509 "dependencies": {
561 510 "chardet": "^0.7.0",
562 511 "iconv-lite": "^0.4.24",
563 512 "tmp": "^0.0.33"
564 513 },
565 514 "engines": {
566 515 "node": ">=4"
567 516 }
568 517 },
569 518 "node_modules/fast-deep-equal": {
570 519 "version": "3.1.1",
571 520 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
572 521 "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
573 522 "dev": true
574 523 },
575 524 "node_modules/fast-json-stable-stringify": {
576 525 "version": "2.1.0",
577 526 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
578 527 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
579 528 "dev": true
580 529 },
581 530 "node_modules/fast-levenshtein": {
582 531 "version": "2.0.6",
583 532 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
584 533 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
585 534 "dev": true
586 535 },
587 536 "node_modules/figures": {
588 537 "version": "3.1.0",
589 538 "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
590 539 "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
591 540 "dev": true,
592 541 "dependencies": {
593 542 "escape-string-regexp": "^1.0.5"
594 543 },
595 544 "engines": {
596 545 "node": ">=8"
597 546 }
598 547 },
599 548 "node_modules/file-entry-cache": {
600 549 "version": "5.0.1",
601 550 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
602 551 "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
603 552 "dev": true,
604 553 "dependencies": {
605 554 "flat-cache": "^2.0.1"
606 555 },
607 556 "engines": {
608 557 "node": ">=4"
609 558 }
610 559 },
611 560 "node_modules/flat-cache": {
612 561 "version": "2.0.1",
613 562 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
614 563 "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
615 564 "dev": true,
616 565 "dependencies": {
617 566 "flatted": "^2.0.0",
618 567 "rimraf": "2.6.3",
619 568 "write": "1.0.3"
620 569 },
621 570 "engines": {
622 571 "node": ">=4"
623 572 }
624 573 },
625 574 "node_modules/flatted": {
626 575 "version": "2.0.1",
627 576 "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
628 577 "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
629 578 "dev": true
630 579 },
631 580 "node_modules/fs.realpath": {
632 581 "version": "1.0.0",
633 582 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
634 583 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
635 584 "dev": true
636 585 },
637 586 "node_modules/functional-red-black-tree": {
638 587 "version": "1.0.1",
639 588 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
640 589 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
641 590 "dev": true
642 591 },
643 "node_modules/get-func-name": {
644 "version": "2.0.0",
645 "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
646 "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
647 "dev": true,
648 "engines": {
649 "node": "*"
650 }
651 },
652 592 "node_modules/glob": {
653 593 "version": "7.1.6",
654 594 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
655 595 "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
656 596 "dev": true,
657 597 "dependencies": {
658 598 "fs.realpath": "^1.0.0",
659 599 "inflight": "^1.0.4",
660 600 "inherits": "2",
661 601 "minimatch": "^3.0.4",
662 602 "once": "^1.3.0",
663 603 "path-is-absolute": "^1.0.0"
664 604 },
665 605 "engines": {
666 606 "node": "*"
667 607 }
668 608 },
669 609 "node_modules/glob-parent": {
670 610 "version": "5.1.0",
671 611 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
672 612 "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
673 613 "dev": true,
674 614 "dependencies": {
675 615 "is-glob": "^4.0.1"
676 616 },
677 617 "engines": {
678 618 "node": ">= 6"
679 619 }
680 620 },
681 621 "node_modules/globals": {
682 622 "version": "12.3.0",
683 623 "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz",
684 624 "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==",
685 625 "dev": true,
686 626 "dependencies": {
687 627 "type-fest": "^0.8.1"
688 628 },
689 629 "engines": {
690 630 "node": ">=8"
691 631 }
692 632 },
693 633 "node_modules/has-flag": {
694 634 "version": "3.0.0",
695 635 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
696 636 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
697 637 "dev": true,
698 638 "engines": {
699 639 "node": ">=4"
700 640 }
701 641 },
702 642 "node_modules/iconv-lite": {
703 643 "version": "0.4.24",
704 644 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
705 645 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
706 646 "dev": true,
707 647 "dependencies": {
708 648 "safer-buffer": ">= 2.1.2 < 3"
709 649 },
710 650 "engines": {
711 651 "node": ">=0.10.0"
712 652 }
713 653 },
714 654 "node_modules/ignore": {
715 655 "version": "4.0.6",
716 656 "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
717 657 "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
718 658 "dev": true,
719 659 "engines": {
720 660 "node": ">= 4"
721 661 }
722 662 },
723 663 "node_modules/import-fresh": {
724 664 "version": "3.2.1",
725 665 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
726 666 "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
727 667 "dev": true,
728 668 "dependencies": {
729 669 "parent-module": "^1.0.0",
730 670 "resolve-from": "^4.0.0"
731 671 },
732 672 "engines": {
733 673 "node": ">=6"
734 674 }
735 675 },
736 676 "node_modules/imurmurhash": {
737 677 "version": "0.1.4",
738 678 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
739 679 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
740 680 "dev": true,
741 681 "engines": {
742 682 "node": ">=0.8.19"
743 683 }
744 684 },
745 685 "node_modules/inflight": {
746 686 "version": "1.0.6",
747 687 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
748 688 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
749 689 "dev": true,
750 690 "dependencies": {
751 691 "once": "^1.3.0",
752 692 "wrappy": "1"
753 693 }
754 694 },
755 695 "node_modules/inherits": {
756 696 "version": "2.0.4",
757 697 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
758 698 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
759 699 "dev": true
760 700 },
761 701 "node_modules/inquirer": {
762 702 "version": "7.0.3",
763 703 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.3.tgz",
764 704 "integrity": "sha512-+OiOVeVydu4hnCGLCSX+wedovR/Yzskv9BFqUNNKq9uU2qg7LCcCo3R86S2E7WLo0y/x2pnEZfZe1CoYnORUAw==",
765 705 "dev": true,
766 706 "dependencies": {
767 707 "ansi-escapes": "^4.2.1",
768 708 "chalk": "^2.4.2",
769 709 "cli-cursor": "^3.1.0",
770 710 "cli-width": "^2.0.0",
771 711 "external-editor": "^3.0.3",
772 712 "figures": "^3.0.0",
773 713 "lodash": "^4.17.15",
774 714 "mute-stream": "0.0.8",
775 715 "run-async": "^2.2.0",
776 716 "rxjs": "^6.5.3",
777 717 "string-width": "^4.1.0",
778 718 "strip-ansi": "^5.1.0",
779 719 "through": "^2.3.6"
780 720 },
781 721 "engines": {
782 722 "node": ">=6.0.0"
783 723 }
784 724 },
785 725 "node_modules/is-extglob": {
786 726 "version": "2.1.1",
787 727 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
788 728 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
789 729 "dev": true,
790 730 "engines": {
791 731 "node": ">=0.10.0"
792 732 }
793 733 },
794 734 "node_modules/is-fullwidth-code-point": {
795 735 "version": "3.0.0",
796 736 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
797 737 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
798 738 "dev": true,
799 739 "engines": {
800 740 "node": ">=8"
801 741 }
802 742 },
803 743 "node_modules/is-glob": {
804 744 "version": "4.0.1",
805 745 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
806 746 "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
807 747 "dev": true,
808 748 "dependencies": {
809 749 "is-extglob": "^2.1.1"
810 750 },
811 751 "engines": {
812 752 "node": ">=0.10.0"
813 753 }
814 754 },
815 755 "node_modules/is-promise": {
816 756 "version": "2.1.0",
817 757 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
818 758 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
819 759 "dev": true
820 760 },
821 761 "node_modules/isexe": {
822 762 "version": "2.0.0",
823 763 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
824 764 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
825 765 "dev": true
826 766 },
827 767 "node_modules/js-tokens": {
828 768 "version": "4.0.0",
829 769 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
830 770 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
831 771 "dev": true
832 772 },
833 773 "node_modules/js-yaml": {
834 774 "version": "3.13.1",
835 775 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
836 776 "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
837 777 "dev": true,
838 778 "dependencies": {
839 779 "argparse": "^1.0.7",
840 780 "esprima": "^4.0.0"
841 781 },
842 782 "bin": {
843 783 "js-yaml": "bin/js-yaml.js"
844 784 }
845 785 },
846 786 "node_modules/json-schema-traverse": {
847 787 "version": "0.4.1",
848 788 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
849 789 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
850 790 "dev": true
851 791 },
852 792 "node_modules/json-stable-stringify-without-jsonify": {
853 793 "version": "1.0.1",
854 794 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
855 795 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
856 796 "dev": true
857 797 },
858 798 "node_modules/levn": {
859 799 "version": "0.3.0",
860 800 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
861 801 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
862 802 "dev": true,
863 803 "dependencies": {
864 804 "prelude-ls": "~1.1.2",
865 805 "type-check": "~0.3.2"
866 806 },
867 807 "engines": {
868 808 "node": ">= 0.8.0"
869 809 }
870 810 },
871 811 "node_modules/lodash": {
872 812 "version": "4.17.20",
873 813 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
874 814 "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
875 815 "dev": true
876 816 },
877 817 "node_modules/mimic-fn": {
878 818 "version": "2.1.0",
879 819 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
880 820 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
881 821 "dev": true,
882 822 "engines": {
883 823 "node": ">=6"
884 824 }
885 825 },
886 826 "node_modules/minimatch": {
887 827 "version": "3.0.4",
888 828 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
889 829 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
890 830 "dev": true,
891 831 "dependencies": {
892 832 "brace-expansion": "^1.1.7"
893 833 },
894 834 "engines": {
895 835 "node": "*"
896 836 }
897 837 },
898 838 "node_modules/mkdirp": {
899 839 "version": "0.5.5",
900 840 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
901 841 "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
902 842 "dev": true,
903 843 "dependencies": {
904 844 "minimist": "^1.2.5"
905 845 },
906 846 "bin": {
907 847 "mkdirp": "bin/cmd.js"
908 848 }
909 849 },
910 850 "node_modules/mkdirp/node_modules/minimist": {
911 851 "version": "1.2.5",
912 852 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
913 853 "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
914 854 "dev": true
915 855 },
916 856 "node_modules/ms": {
917 857 "version": "2.1.2",
918 858 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
919 859 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
920 860 "dev": true
921 861 },
922 862 "node_modules/mute-stream": {
923 863 "version": "0.0.8",
924 864 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
925 865 "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
926 866 "dev": true
927 867 },
928 868 "node_modules/natural-compare": {
929 869 "version": "1.4.0",
930 870 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
931 871 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
932 872 "dev": true
933 873 },
934 874 "node_modules/nice-try": {
935 875 "version": "1.0.5",
936 876 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
937 877 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
938 878 "dev": true
939 879 },
940 880 "node_modules/once": {
941 881 "version": "1.4.0",
942 882 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
943 883 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
944 884 "dev": true,
945 885 "dependencies": {
946 886 "wrappy": "1"
947 887 }
948 888 },
949 889 "node_modules/onetime": {
950 890 "version": "5.1.0",
951 891 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
952 892 "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
953 893 "dev": true,
954 894 "dependencies": {
955 895 "mimic-fn": "^2.1.0"
956 896 },
957 897 "engines": {
958 898 "node": ">=6"
959 899 }
960 900 },
961 901 "node_modules/optionator": {
962 902 "version": "0.8.3",
963 903 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
964 904 "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
965 905 "dev": true,
966 906 "dependencies": {
967 907 "deep-is": "~0.1.3",
968 908 "fast-levenshtein": "~2.0.6",
969 909 "levn": "~0.3.0",
970 910 "prelude-ls": "~1.1.2",
971 911 "type-check": "~0.3.2",
972 912 "word-wrap": "~1.2.3"
973 913 },
974 914 "engines": {
975 915 "node": ">= 0.8.0"
976 916 }
977 917 },
978 918 "node_modules/os-tmpdir": {
979 919 "version": "1.0.2",
980 920 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
981 921 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
982 922 "dev": true,
983 923 "engines": {
984 924 "node": ">=0.10.0"
985 925 }
986 926 },
987 927 "node_modules/parent-module": {
988 928 "version": "1.0.1",
989 929 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
990 930 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
991 931 "dev": true,
992 932 "dependencies": {
993 933 "callsites": "^3.0.0"
994 934 },
995 935 "engines": {
996 936 "node": ">=6"
997 937 }
998 938 },
999 939 "node_modules/path-is-absolute": {
1000 940 "version": "1.0.1",
1001 941 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1002 942 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1003 943 "dev": true,
1004 944 "engines": {
1005 945 "node": ">=0.10.0"
1006 946 }
1007 947 },
1008 948 "node_modules/path-key": {
1009 949 "version": "2.0.1",
1010 950 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1011 951 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1012 952 "dev": true,
1013 953 "engines": {
1014 954 "node": ">=4"
1015 955 }
1016 956 },
1017 957 "node_modules/path-parse": {
1018 958 "version": "1.0.6",
1019 959 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
1020 960 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
1021 961 "dev": true
1022 962 },
1023 "node_modules/pathval": {
1024 "version": "1.1.0",
1025 "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
1026 "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
1027 "dev": true,
1028 "engines": {
1029 "node": "*"
1030 }
1031 },
1032 963 "node_modules/prelude-ls": {
1033 964 "version": "1.1.2",
1034 965 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1035 966 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
1036 967 "dev": true,
1037 968 "engines": {
1038 969 "node": ">= 0.8.0"
1039 970 }
1040 971 },
1041 972 "node_modules/progress": {
1042 973 "version": "2.0.3",
1043 974 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1044 975 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1045 976 "dev": true,
1046 977 "engines": {
1047 978 "node": ">=0.4.0"
1048 979 }
1049 980 },
1050 981 "node_modules/punycode": {
1051 982 "version": "2.1.1",
1052 983 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
1053 984 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1054 985 "dev": true,
1055 986 "engines": {
1056 987 "node": ">=6"
1057 988 }
1058 989 },
1059 990 "node_modules/regenerator-runtime": {
1060 991 "version": "0.13.3",
1061 992 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
1062 993 "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
1063 994 "dev": true
1064 995 },
1065 996 "node_modules/regexpp": {
1066 997 "version": "2.0.1",
1067 998 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
1068 999 "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
1069 1000 "dev": true,
1070 1001 "engines": {
1071 1002 "node": ">=6.5.0"
1072 1003 }
1073 1004 },
1074 1005 "node_modules/requirejs": {
1075 1006 "version": "2.3.6",
1076 1007 "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz",
1077 1008 "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
1078 1009 "dev": true,
1079 1010 "bin": {
1080 1011 "r_js": "bin/r.js",
1081 1012 "r.js": "bin/r.js"
1082 1013 },
1083 1014 "engines": {
1084 1015 "node": ">=0.4.0"
1085 1016 }
1086 1017 },
1087 1018 "node_modules/resolve": {
1088 1019 "version": "1.17.0",
1089 1020 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
1090 1021 "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
1091 1022 "dev": true,
1092 1023 "dependencies": {
1093 1024 "path-parse": "^1.0.6"
1094 1025 }
1095 1026 },
1096 1027 "node_modules/resolve-from": {
1097 1028 "version": "4.0.0",
1098 1029 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1099 1030 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1100 1031 "dev": true,
1101 1032 "engines": {
1102 1033 "node": ">=4"
1103 1034 }
1104 1035 },
1105 1036 "node_modules/restore-cursor": {
1106 1037 "version": "3.1.0",
1107 1038 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
1108 1039 "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
1109 1040 "dev": true,
1110 1041 "dependencies": {
1111 1042 "onetime": "^5.1.0",
1112 1043 "signal-exit": "^3.0.2"
1113 1044 },
1114 1045 "engines": {
1115 1046 "node": ">=8"
1116 1047 }
1117 1048 },
1118 1049 "node_modules/rimraf": {
1119 1050 "version": "2.6.3",
1120 1051 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
1121 1052 "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
1122 1053 "dev": true,
1123 1054 "dependencies": {
1124 1055 "glob": "^7.1.3"
1125 1056 },
1126 1057 "bin": {
1127 1058 "rimraf": "bin.js"
1128 1059 }
1129 1060 },
1130 1061 "node_modules/run-async": {
1131 1062 "version": "2.3.0",
1132 1063 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
1133 1064 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
1134 1065 "dev": true,
1135 1066 "dependencies": {
1136 1067 "is-promise": "^2.1.0"
1137 1068 },
1138 1069 "engines": {
1139 1070 "node": ">=0.12.0"
1140 1071 }
1141 1072 },
1142 1073 "node_modules/rxjs": {
1143 1074 "version": "6.5.4",
1144 1075 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
1145 1076 "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
1146 1077 "dev": true,
1147 1078 "dependencies": {
1148 1079 "tslib": "^1.9.0"
1149 1080 },
1150 1081 "engines": {
1151 1082 "npm": ">=2.0.0"
1152 1083 }
1153 1084 },
1154 1085 "node_modules/safer-buffer": {
1155 1086 "version": "2.1.2",
1156 1087 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1157 1088 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1158 1089 "dev": true
1159 1090 },
1160 1091 "node_modules/semver": {
1161 1092 "version": "6.3.0",
1162 1093 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1163 1094 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1164 1095 "dev": true,
1165 1096 "bin": {
1166 1097 "semver": "bin/semver.js"
1167 1098 }
1168 1099 },
1169 1100 "node_modules/shebang-command": {
1170 1101 "version": "1.2.0",
1171 1102 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1172 1103 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1173 1104 "dev": true,
1174 1105 "dependencies": {
1175 1106 "shebang-regex": "^1.0.0"
1176 1107 },
1177 1108 "engines": {
1178 1109 "node": ">=0.10.0"
1179 1110 }
1180 1111 },
1181 1112 "node_modules/shebang-regex": {
1182 1113 "version": "1.0.0",
1183 1114 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1184 1115 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1185 1116 "dev": true,
1186 1117 "engines": {
1187 1118 "node": ">=0.10.0"
1188 1119 }
1189 1120 },
1190 1121 "node_modules/signal-exit": {
1191 1122 "version": "3.0.2",
1192 1123 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
1193 1124 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
1194 1125 "dev": true
1195 1126 },
1196 1127 "node_modules/slice-ansi": {
1197 1128 "version": "2.1.0",
1198 1129 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
1199 1130 "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
1200 1131 "dev": true,
1201 1132 "dependencies": {
1202 1133 "ansi-styles": "^3.2.0",
1203 1134 "astral-regex": "^1.0.0",
1204 1135 "is-fullwidth-code-point": "^2.0.0"
1205 1136 },
1206 1137 "engines": {
1207 1138 "node": ">=6"
1208 1139 }
1209 1140 },
1210 1141 "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
1211 1142 "version": "2.0.0",
1212 1143 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1213 1144 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1214 1145 "dev": true,
1215 1146 "engines": {
1216 1147 "node": ">=4"
1217 1148 }
1218 1149 },
1219 1150 "node_modules/sprintf-js": {
1220 1151 "version": "1.0.3",
1221 1152 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1222 1153 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1223 1154 "dev": true
1224 1155 },
1225 1156 "node_modules/string-width": {
1226 1157 "version": "4.2.0",
1227 1158 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
1228 1159 "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
1229 1160 "dev": true,
1230 1161 "dependencies": {
1231 1162 "emoji-regex": "^8.0.0",
1232 1163 "is-fullwidth-code-point": "^3.0.0",
1233 1164 "strip-ansi": "^6.0.0"
1234 1165 },
1235 1166 "engines": {
1236 1167 "node": ">=8"
1237 1168 }
1238 1169 },
1239 1170 "node_modules/string-width/node_modules/strip-ansi": {
1240 1171 "version": "6.0.0",
1241 1172 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1242 1173 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1243 1174 "dev": true,
1244 1175 "dependencies": {
1245 1176 "ansi-regex": "^5.0.0"
1246 1177 },
1247 1178 "engines": {
1248 1179 "node": ">=8"
1249 1180 }
1250 1181 },
1251 1182 "node_modules/strip-ansi": {
1252 1183 "version": "5.2.0",
1253 1184 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1254 1185 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1255 1186 "dev": true,
1256 1187 "dependencies": {
1257 1188 "ansi-regex": "^4.1.0"
1258 1189 },
1259 1190 "engines": {
1260 1191 "node": ">=6"
1261 1192 }
1262 1193 },
1263 1194 "node_modules/strip-ansi/node_modules/ansi-regex": {
1264 1195 "version": "4.1.0",
1265 1196 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1266 1197 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1267 1198 "dev": true,
1268 1199 "engines": {
1269 1200 "node": ">=6"
1270 1201 }
1271 1202 },
1272 1203 "node_modules/strip-json-comments": {
1273 1204 "version": "3.0.1",
1274 1205 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
1275 1206 "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
1276 1207 "dev": true,
1277 1208 "engines": {
1278 1209 "node": ">=8"
1279 1210 }
1280 1211 },
1281 1212 "node_modules/supports-color": {
1282 1213 "version": "5.5.0",
1283 1214 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1284 1215 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1285 1216 "dev": true,
1286 1217 "dependencies": {
1287 1218 "has-flag": "^3.0.0"
1288 1219 },
1289 1220 "engines": {
1290 1221 "node": ">=4"
1291 1222 }
1292 1223 },
1293 1224 "node_modules/table": {
1294 1225 "version": "5.4.6",
1295 1226 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
1296 1227 "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
1297 1228 "dev": true,
1298 1229 "dependencies": {
1299 1230 "ajv": "^6.10.2",
1300 1231 "lodash": "^4.17.14",
1301 1232 "slice-ansi": "^2.1.0",
1302 1233 "string-width": "^3.0.0"
1303 1234 },
1304 1235 "engines": {
1305 1236 "node": ">=6.0.0"
1306 1237 }
1307 1238 },
1308 1239 "node_modules/table/node_modules/emoji-regex": {
1309 1240 "version": "7.0.3",
1310 1241 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
1311 1242 "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
1312 1243 "dev": true
1313 1244 },
1314 1245 "node_modules/table/node_modules/is-fullwidth-code-point": {
1315 1246 "version": "2.0.0",
1316 1247 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1317 1248 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
1318 1249 "dev": true,
1319 1250 "engines": {
1320 1251 "node": ">=4"
1321 1252 }
1322 1253 },
1323 1254 "node_modules/table/node_modules/string-width": {
1324 1255 "version": "3.1.0",
1325 1256 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1326 1257 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1327 1258 "dev": true,
1328 1259 "dependencies": {
1329 1260 "emoji-regex": "^7.0.1",
1330 1261 "is-fullwidth-code-point": "^2.0.0",
1331 1262 "strip-ansi": "^5.1.0"
1332 1263 },
1333 1264 "engines": {
1334 1265 "node": ">=6"
1335 1266 }
1336 1267 },
1337 1268 "node_modules/text-table": {
1338 1269 "version": "0.2.0",
1339 1270 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1340 1271 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
1341 1272 "dev": true
1342 1273 },
1343 1274 "node_modules/through": {
1344 1275 "version": "2.3.8",
1345 1276 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1346 1277 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
1347 1278 "dev": true
1348 1279 },
1349 1280 "node_modules/tmp": {
1350 1281 "version": "0.0.33",
1351 1282 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
1352 1283 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
1353 1284 "dev": true,
1354 1285 "dependencies": {
1355 1286 "os-tmpdir": "~1.0.2"
1356 1287 },
1357 1288 "engines": {
1358 1289 "node": ">=0.6.0"
1359 1290 }
1360 1291 },
1361 1292 "node_modules/tslib": {
1362 1293 "version": "1.10.0",
1363 1294 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
1364 1295 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
1365 1296 "dev": true
1366 1297 },
1367 1298 "node_modules/tslint": {
1368 1299 "version": "6.1.3",
1369 1300 "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
1370 1301 "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
1371 1302 "dev": true,
1372 1303 "dependencies": {
1373 1304 "@babel/code-frame": "^7.0.0",
1374 1305 "builtin-modules": "^1.1.1",
1375 1306 "chalk": "^2.3.0",
1376 1307 "commander": "^2.12.1",
1377 1308 "diff": "^4.0.1",
1378 1309 "glob": "^7.1.1",
1379 1310 "js-yaml": "^3.13.1",
1380 1311 "minimatch": "^3.0.4",
1381 1312 "mkdirp": "^0.5.3",
1382 1313 "resolve": "^1.3.2",
1383 1314 "semver": "^5.3.0",
1384 1315 "tslib": "^1.13.0",
1385 1316 "tsutils": "^2.29.0"
1386 1317 },
1387 1318 "bin": {
1388 1319 "tslint": "bin/tslint"
1389 1320 },
1390 1321 "engines": {
1391 1322 "node": ">=4.8.0"
1392 1323 }
1393 1324 },
1394 1325 "node_modules/tslint/node_modules/semver": {
1395 1326 "version": "5.7.1",
1396 1327 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1397 1328 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1398 1329 "dev": true,
1399 1330 "bin": {
1400 1331 "semver": "bin/semver"
1401 1332 }
1402 1333 },
1403 1334 "node_modules/tslint/node_modules/tslib": {
1404 1335 "version": "1.13.0",
1405 1336 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
1406 1337 "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
1407 1338 "dev": true
1408 1339 },
1409 1340 "node_modules/tsutils": {
1410 1341 "version": "2.29.0",
1411 1342 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
1412 1343 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
1413 1344 "dev": true,
1414 1345 "dependencies": {
1415 1346 "tslib": "^1.8.1"
1416 1347 }
1417 1348 },
1418 1349 "node_modules/type-check": {
1419 1350 "version": "0.3.2",
1420 1351 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1421 1352 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
1422 1353 "dev": true,
1423 1354 "dependencies": {
1424 1355 "prelude-ls": "~1.1.2"
1425 1356 },
1426 1357 "engines": {
1427 1358 "node": ">= 0.8.0"
1428 1359 }
1429 1360 },
1430 "node_modules/type-detect": {
1431 "version": "4.0.8",
1432 "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
1433 "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
1434 "dev": true,
1435 "engines": {
1436 "node": ">=4"
1437 }
1438 },
1439 1361 "node_modules/type-fest": {
1440 1362 "version": "0.8.1",
1441 1363 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
1442 1364 "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
1443 1365 "dev": true,
1444 1366 "engines": {
1445 1367 "node": ">=8"
1446 1368 }
1447 1369 },
1448 1370 "node_modules/typescript": {
1449 1371 "version": "4.2.4",
1450 1372 "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz",
1451 1373 "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==",
1452 1374 "dev": true,
1453 1375 "bin": {
1454 1376 "tsc": "bin/tsc",
1455 1377 "tsserver": "bin/tsserver"
1456 1378 },
1457 1379 "engines": {
1458 1380 "node": ">=4.2.0"
1459 1381 }
1460 1382 },
1461 1383 "node_modules/uri-js": {
1462 1384 "version": "4.2.2",
1463 1385 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
1464 1386 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
1465 1387 "dev": true,
1466 1388 "dependencies": {
1467 1389 "punycode": "^2.1.0"
1468 1390 }
1469 1391 },
1470 1392 "node_modules/v8-compile-cache": {
1471 1393 "version": "2.1.0",
1472 1394 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
1473 1395 "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
1474 1396 "dev": true
1475 1397 },
1476 1398 "node_modules/which": {
1477 1399 "version": "1.3.1",
1478 1400 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1479 1401 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1480 1402 "dev": true,
1481 1403 "dependencies": {
1482 1404 "isexe": "^2.0.0"
1483 1405 },
1484 1406 "bin": {
1485 1407 "which": "bin/which"
1486 1408 }
1487 1409 },
1488 1410 "node_modules/word-wrap": {
1489 1411 "version": "1.2.3",
1490 1412 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
1491 1413 "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
1492 1414 "dev": true,
1493 1415 "engines": {
1494 1416 "node": ">=0.10.0"
1495 1417 }
1496 1418 },
1497 1419 "node_modules/wrappy": {
1498 1420 "version": "1.0.2",
1499 1421 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1500 1422 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1501 1423 "dev": true
1502 1424 },
1503 1425 "node_modules/write": {
1504 1426 "version": "1.0.3",
1505 1427 "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
1506 1428 "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
1507 1429 "dev": true,
1508 1430 "dependencies": {
1509 1431 "mkdirp": "^0.5.1"
1510 1432 },
1511 1433 "engines": {
1512 1434 "node": ">=4"
1513 1435 }
1514 1436 },
1515 1437 "node_modules/yaml": {
1516 1438 "version": "1.7.2",
1517 1439 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz",
1518 1440 "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==",
1519 1441 "dev": true,
1520 1442 "dependencies": {
1521 1443 "@babel/runtime": "^7.6.3"
1522 1444 },
1523 1445 "engines": {
1524 1446 "node": ">= 6"
1525 1447 }
1526 1448 }
1527 1449 },
1528 1450 "dependencies": {
1529 1451 "@babel/code-frame": {
1530 1452 "version": "7.8.3",
1531 1453 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
1532 1454 "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
1533 1455 "dev": true,
1534 1456 "requires": {
1535 1457 "@babel/highlight": "^7.8.3"
1536 1458 }
1537 1459 },
1538 1460 "@babel/highlight": {
1539 1461 "version": "7.8.3",
1540 1462 "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
1541 1463 "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
1542 1464 "dev": true,
1543 1465 "requires": {
1544 1466 "chalk": "^2.0.0",
1545 1467 "esutils": "^2.0.2",
1546 1468 "js-tokens": "^4.0.0"
1547 1469 }
1548 1470 },
1549 1471 "@babel/runtime": {
1550 1472 "version": "7.8.3",
1551 1473 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz",
1552 1474 "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==",
1553 1475 "dev": true,
1554 1476 "requires": {
1555 1477 "regenerator-runtime": "^0.13.2"
1556 1478 }
1557 1479 },
1558 1480 "@implab/core-amd": {
1559 1481 "version": "1.4.0",
1560 1482 "resolved": "https://registry.npmjs.org/@implab/core-amd/-/core-amd-1.4.0.tgz",
1561 1483 "integrity": "sha512-gaJX1mhri7YpmXDTAYELZnmTznzXYpk2AI7Decsttdi6xY+bqGgH24q0AFcKrx8RY2jfsFXxDdf0fITz2HpBbw==",
1562 1484 "dev": true
1563 1485 },
1486 "@implab/dojo-typings": {
1487 "version": "1.0.0",
1488 "resolved": "https://registry.npmjs.org/@implab/dojo-typings/-/dojo-typings-1.0.0.tgz",
1489 "integrity": "sha512-B2kvlKJgvyIQAl/k1pVyNmtp4ADvBDCs4Lw/qfBC+Sz/ft4c7EuRXmN/+2dhWrd6A5SMjEgex5oeq6Ja2ntrig==",
1490 "dev": true
1491 },
1564 1492 "@types/chai": {
1565 1493 "version": "4.1.3",
1566 1494 "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.3.tgz",
1567 1495 "integrity": "sha512-f5dXGzOJycyzSMdaXVhiBhauL4dYydXwVpavfQ1mVCaGjR56a9QfklXObUxlIY9bGTmCPHEEZ04I16BZ/8w5ww==",
1568 1496 "dev": true
1569 1497 },
1570 1498 "@types/requirejs": {
1571 1499 "version": "2.1.31",
1572 1500 "resolved": "https://registry.npmjs.org/@types/requirejs/-/requirejs-2.1.31.tgz",
1573 1501 "integrity": "sha512-b2soeyuU76rMbcRJ4e0hEl0tbMhFwZeTC0VZnfuWlfGlk6BwWNsev6kFu/twKABPX29wkX84wU2o+cEJoXsiTw==",
1574 1502 "dev": true
1575 1503 },
1576 1504 "@types/yaml": {
1577 1505 "version": "1.2.0",
1578 1506 "resolved": "https://registry.npmjs.org/@types/yaml/-/yaml-1.2.0.tgz",
1579 1507 "integrity": "sha512-GW8b9qM+ebgW3/zjzPm0I1NxMvLaz/YKT9Ph6tTb+Fkeyzd9yLTvQ6ciQ2MorTRmb/qXmfjMerRpG4LviixaqQ==",
1580 1508 "dev": true
1581 1509 },
1582 1510 "acorn": {
1583 1511 "version": "7.4.0",
1584 1512 "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
1585 1513 "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
1586 1514 "dev": true
1587 1515 },
1588 1516 "acorn-jsx": {
1589 1517 "version": "5.1.0",
1590 1518 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz",
1591 1519 "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==",
1592 1520 "dev": true
1593 1521 },
1594 1522 "ajv": {
1595 1523 "version": "6.11.0",
1596 1524 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz",
1597 1525 "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==",
1598 1526 "dev": true,
1599 1527 "requires": {
1600 1528 "fast-deep-equal": "^3.1.1",
1601 1529 "fast-json-stable-stringify": "^2.0.0",
1602 1530 "json-schema-traverse": "^0.4.1",
1603 1531 "uri-js": "^4.2.2"
1604 1532 }
1605 1533 },
1606 1534 "ansi-escapes": {
1607 1535 "version": "4.3.0",
1608 1536 "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz",
1609 1537 "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==",
1610 1538 "dev": true,
1611 1539 "requires": {
1612 1540 "type-fest": "^0.8.1"
1613 1541 }
1614 1542 },
1615 1543 "ansi-regex": {
1616 1544 "version": "5.0.0",
1617 1545 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
1618 1546 "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
1619 1547 "dev": true
1620 1548 },
1621 1549 "ansi-styles": {
1622 1550 "version": "3.2.1",
1623 1551 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1624 1552 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1625 1553 "dev": true,
1626 1554 "requires": {
1627 1555 "color-convert": "^1.9.0"
1628 1556 }
1629 1557 },
1630 1558 "argparse": {
1631 1559 "version": "1.0.10",
1632 1560 "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
1633 1561 "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
1634 1562 "dev": true,
1635 1563 "requires": {
1636 1564 "sprintf-js": "~1.0.2"
1637 1565 }
1638 1566 },
1639 "assertion-error": {
1640 "version": "1.1.0",
1641 "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
1642 "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
1643 "dev": true
1644 },
1645 1567 "astral-regex": {
1646 1568 "version": "1.0.0",
1647 1569 "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
1648 1570 "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
1649 1571 "dev": true
1650 1572 },
1651 1573 "balanced-match": {
1652 1574 "version": "1.0.0",
1653 1575 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1654 1576 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
1655 1577 "dev": true
1656 1578 },
1657 1579 "brace-expansion": {
1658 1580 "version": "1.1.11",
1659 1581 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
1660 1582 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
1661 1583 "dev": true,
1662 1584 "requires": {
1663 1585 "balanced-match": "^1.0.0",
1664 1586 "concat-map": "0.0.1"
1665 1587 }
1666 1588 },
1667 1589 "builtin-modules": {
1668 1590 "version": "1.1.1",
1669 1591 "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
1670 1592 "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
1671 1593 "dev": true
1672 1594 },
1673 1595 "callsites": {
1674 1596 "version": "3.1.0",
1675 1597 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
1676 1598 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
1677 1599 "dev": true
1678 1600 },
1679 "chai": {
1680 "version": "4.2.0",
1681 "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
1682 "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
1683 "dev": true,
1684 "requires": {
1685 "assertion-error": "^1.1.0",
1686 "check-error": "^1.0.2",
1687 "deep-eql": "^3.0.1",
1688 "get-func-name": "^2.0.0",
1689 "pathval": "^1.1.0",
1690 "type-detect": "^4.0.5"
1691 }
1692 },
1693 1601 "chalk": {
1694 1602 "version": "2.4.2",
1695 1603 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1696 1604 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1697 1605 "dev": true,
1698 1606 "requires": {
1699 1607 "ansi-styles": "^3.2.1",
1700 1608 "escape-string-regexp": "^1.0.5",
1701 1609 "supports-color": "^5.3.0"
1702 1610 }
1703 1611 },
1704 1612 "chardet": {
1705 1613 "version": "0.7.0",
1706 1614 "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
1707 1615 "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
1708 1616 "dev": true
1709 1617 },
1710 "check-error": {
1711 "version": "1.0.2",
1712 "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
1713 "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
1714 "dev": true
1715 },
1716 1618 "cli-cursor": {
1717 1619 "version": "3.1.0",
1718 1620 "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
1719 1621 "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
1720 1622 "dev": true,
1721 1623 "requires": {
1722 1624 "restore-cursor": "^3.1.0"
1723 1625 }
1724 1626 },
1725 1627 "cli-width": {
1726 1628 "version": "2.2.0",
1727 1629 "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
1728 1630 "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
1729 1631 "dev": true
1730 1632 },
1731 1633 "color-convert": {
1732 1634 "version": "1.9.3",
1733 1635 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1734 1636 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1735 1637 "dev": true,
1736 1638 "requires": {
1737 1639 "color-name": "1.1.3"
1738 1640 }
1739 1641 },
1740 1642 "color-name": {
1741 1643 "version": "1.1.3",
1742 1644 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1743 1645 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1744 1646 "dev": true
1745 1647 },
1746 1648 "commander": {
1747 1649 "version": "2.20.3",
1748 1650 "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
1749 1651 "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
1750 1652 "dev": true
1751 1653 },
1752 1654 "concat-map": {
1753 1655 "version": "0.0.1",
1754 1656 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
1755 1657 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
1756 1658 "dev": true
1757 1659 },
1758 1660 "cross-spawn": {
1759 1661 "version": "6.0.5",
1760 1662 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
1761 1663 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
1762 1664 "dev": true,
1763 1665 "requires": {
1764 1666 "nice-try": "^1.0.4",
1765 1667 "path-key": "^2.0.1",
1766 1668 "semver": "^5.5.0",
1767 1669 "shebang-command": "^1.2.0",
1768 1670 "which": "^1.2.9"
1769 1671 },
1770 1672 "dependencies": {
1771 1673 "semver": {
1772 1674 "version": "5.7.1",
1773 1675 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1774 1676 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
1775 1677 "dev": true
1776 1678 }
1777 1679 }
1778 1680 },
1779 1681 "debug": {
1780 1682 "version": "4.1.1",
1781 1683 "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
1782 1684 "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
1783 1685 "dev": true,
1784 1686 "requires": {
1785 1687 "ms": "^2.1.1"
1786 1688 }
1787 1689 },
1788 "deep-eql": {
1789 "version": "3.0.1",
1790 "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
1791 "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
1792 "dev": true,
1793 "requires": {
1794 "type-detect": "^4.0.0"
1795 }
1796 },
1797 1690 "deep-is": {
1798 1691 "version": "0.1.3",
1799 1692 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
1800 1693 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
1801 1694 "dev": true
1802 1695 },
1803 1696 "diff": {
1804 1697 "version": "4.0.2",
1805 1698 "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
1806 1699 "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
1807 1700 "dev": true
1808 1701 },
1809 1702 "doctrine": {
1810 1703 "version": "3.0.0",
1811 1704 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
1812 1705 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
1813 1706 "dev": true,
1814 1707 "requires": {
1815 1708 "esutils": "^2.0.2"
1816 1709 }
1817 1710 },
1818 1711 "dojo": {
1819 1712 "version": "1.16.0",
1820 1713 "resolved": "https://registry.npmjs.org/dojo/-/dojo-1.16.0.tgz",
1821 1714 "integrity": "sha512-DUiXyoLK6vMF5BPr/qiMLTxDMfiM9qlzN1jxfDsVfuvB/CwhYpNxA/M4mbqKN8PCVGLmccXBJbfmFJPP5+zmzw==",
1822 1715 "dev": true
1823 1716 },
1824 "dojo-typings": {
1825 "version": "1.11.9",
1826 "resolved": "https://registry.npmjs.org/dojo-typings/-/dojo-typings-1.11.9.tgz",
1827 "integrity": "sha512-mh8w+Mau2Y1QfTEszEAdO7j6ycNhYxF/Ing6nAk1eUg6NxjeT0viVHjICMd9sU3U463vM2G+KfBBK5grk3/Mlw==",
1828 "dev": true,
1829 "requires": {
1830 "@types/chai": "^4.0.4"
1831 }
1832 },
1833 1717 "emoji-regex": {
1834 1718 "version": "8.0.0",
1835 1719 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1836 1720 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1837 1721 "dev": true
1838 1722 },
1839 1723 "escape-string-regexp": {
1840 1724 "version": "1.0.5",
1841 1725 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1842 1726 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
1843 1727 "dev": true
1844 1728 },
1845 1729 "eslint": {
1846 1730 "version": "6.8.0",
1847 1731 "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
1848 1732 "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
1849 1733 "dev": true,
1850 1734 "requires": {
1851 1735 "@babel/code-frame": "^7.0.0",
1852 1736 "ajv": "^6.10.0",
1853 1737 "chalk": "^2.1.0",
1854 1738 "cross-spawn": "^6.0.5",
1855 1739 "debug": "^4.0.1",
1856 1740 "doctrine": "^3.0.0",
1857 1741 "eslint-scope": "^5.0.0",
1858 1742 "eslint-utils": "^1.4.3",
1859 1743 "eslint-visitor-keys": "^1.1.0",
1860 1744 "espree": "^6.1.2",
1861 1745 "esquery": "^1.0.1",
1862 1746 "esutils": "^2.0.2",
1863 1747 "file-entry-cache": "^5.0.1",
1864 1748 "functional-red-black-tree": "^1.0.1",
1865 1749 "glob-parent": "^5.0.0",
1866 1750 "globals": "^12.1.0",
1867 1751 "ignore": "^4.0.6",
1868 1752 "import-fresh": "^3.0.0",
1869 1753 "imurmurhash": "^0.1.4",
1870 1754 "inquirer": "^7.0.0",
1871 1755 "is-glob": "^4.0.0",
1872 1756 "js-yaml": "^3.13.1",
1873 1757 "json-stable-stringify-without-jsonify": "^1.0.1",
1874 1758 "levn": "^0.3.0",
1875 1759 "lodash": "^4.17.14",
1876 1760 "minimatch": "^3.0.4",
1877 1761 "mkdirp": "^0.5.1",
1878 1762 "natural-compare": "^1.4.0",
1879 1763 "optionator": "^0.8.3",
1880 1764 "progress": "^2.0.0",
1881 1765 "regexpp": "^2.0.1",
1882 1766 "semver": "^6.1.2",
1883 1767 "strip-ansi": "^5.2.0",
1884 1768 "strip-json-comments": "^3.0.1",
1885 1769 "table": "^5.2.3",
1886 1770 "text-table": "^0.2.0",
1887 1771 "v8-compile-cache": "^2.0.3"
1888 1772 }
1889 1773 },
1890 1774 "eslint-scope": {
1891 1775 "version": "5.0.0",
1892 1776 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz",
1893 1777 "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==",
1894 1778 "dev": true,
1895 1779 "requires": {
1896 1780 "esrecurse": "^4.1.0",
1897 1781 "estraverse": "^4.1.1"
1898 1782 }
1899 1783 },
1900 1784 "eslint-utils": {
1901 1785 "version": "1.4.3",
1902 1786 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
1903 1787 "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
1904 1788 "dev": true,
1905 1789 "requires": {
1906 1790 "eslint-visitor-keys": "^1.1.0"
1907 1791 }
1908 1792 },
1909 1793 "eslint-visitor-keys": {
1910 1794 "version": "1.1.0",
1911 1795 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz",
1912 1796 "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==",
1913 1797 "dev": true
1914 1798 },
1915 1799 "espree": {
1916 1800 "version": "6.1.2",
1917 1801 "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz",
1918 1802 "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==",
1919 1803 "dev": true,
1920 1804 "requires": {
1921 1805 "acorn": "^7.1.0",
1922 1806 "acorn-jsx": "^5.1.0",
1923 1807 "eslint-visitor-keys": "^1.1.0"
1924 1808 }
1925 1809 },
1926 1810 "esprima": {
1927 1811 "version": "4.0.1",
1928 1812 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1929 1813 "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
1930 1814 "dev": true
1931 1815 },
1932 1816 "esquery": {
1933 1817 "version": "1.0.1",
1934 1818 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
1935 1819 "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
1936 1820 "dev": true,
1937 1821 "requires": {
1938 1822 "estraverse": "^4.0.0"
1939 1823 }
1940 1824 },
1941 1825 "esrecurse": {
1942 1826 "version": "4.2.1",
1943 1827 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
1944 1828 "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
1945 1829 "dev": true,
1946 1830 "requires": {
1947 1831 "estraverse": "^4.1.0"
1948 1832 }
1949 1833 },
1950 1834 "estraverse": {
1951 1835 "version": "4.3.0",
1952 1836 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
1953 1837 "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
1954 1838 "dev": true
1955 1839 },
1956 1840 "esutils": {
1957 1841 "version": "2.0.3",
1958 1842 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
1959 1843 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
1960 1844 "dev": true
1961 1845 },
1962 1846 "external-editor": {
1963 1847 "version": "3.1.0",
1964 1848 "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
1965 1849 "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
1966 1850 "dev": true,
1967 1851 "requires": {
1968 1852 "chardet": "^0.7.0",
1969 1853 "iconv-lite": "^0.4.24",
1970 1854 "tmp": "^0.0.33"
1971 1855 }
1972 1856 },
1973 1857 "fast-deep-equal": {
1974 1858 "version": "3.1.1",
1975 1859 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
1976 1860 "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==",
1977 1861 "dev": true
1978 1862 },
1979 1863 "fast-json-stable-stringify": {
1980 1864 "version": "2.1.0",
1981 1865 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
1982 1866 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
1983 1867 "dev": true
1984 1868 },
1985 1869 "fast-levenshtein": {
1986 1870 "version": "2.0.6",
1987 1871 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
1988 1872 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
1989 1873 "dev": true
1990 1874 },
1991 1875 "figures": {
1992 1876 "version": "3.1.0",
1993 1877 "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
1994 1878 "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
1995 1879 "dev": true,
1996 1880 "requires": {
1997 1881 "escape-string-regexp": "^1.0.5"
1998 1882 }
1999 1883 },
2000 1884 "file-entry-cache": {
2001 1885 "version": "5.0.1",
2002 1886 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
2003 1887 "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
2004 1888 "dev": true,
2005 1889 "requires": {
2006 1890 "flat-cache": "^2.0.1"
2007 1891 }
2008 1892 },
2009 1893 "flat-cache": {
2010 1894 "version": "2.0.1",
2011 1895 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
2012 1896 "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
2013 1897 "dev": true,
2014 1898 "requires": {
2015 1899 "flatted": "^2.0.0",
2016 1900 "rimraf": "2.6.3",
2017 1901 "write": "1.0.3"
2018 1902 }
2019 1903 },
2020 1904 "flatted": {
2021 1905 "version": "2.0.1",
2022 1906 "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
2023 1907 "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
2024 1908 "dev": true
2025 1909 },
2026 1910 "fs.realpath": {
2027 1911 "version": "1.0.0",
2028 1912 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
2029 1913 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
2030 1914 "dev": true
2031 1915 },
2032 1916 "functional-red-black-tree": {
2033 1917 "version": "1.0.1",
2034 1918 "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
2035 1919 "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
2036 1920 "dev": true
2037 1921 },
2038 "get-func-name": {
2039 "version": "2.0.0",
2040 "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
2041 "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
2042 "dev": true
2043 },
2044 1922 "glob": {
2045 1923 "version": "7.1.6",
2046 1924 "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
2047 1925 "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
2048 1926 "dev": true,
2049 1927 "requires": {
2050 1928 "fs.realpath": "^1.0.0",
2051 1929 "inflight": "^1.0.4",
2052 1930 "inherits": "2",
2053 1931 "minimatch": "^3.0.4",
2054 1932 "once": "^1.3.0",
2055 1933 "path-is-absolute": "^1.0.0"
2056 1934 }
2057 1935 },
2058 1936 "glob-parent": {
2059 1937 "version": "5.1.0",
2060 1938 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
2061 1939 "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
2062 1940 "dev": true,
2063 1941 "requires": {
2064 1942 "is-glob": "^4.0.1"
2065 1943 }
2066 1944 },
2067 1945 "globals": {
2068 1946 "version": "12.3.0",
2069 1947 "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz",
2070 1948 "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==",
2071 1949 "dev": true,
2072 1950 "requires": {
2073 1951 "type-fest": "^0.8.1"
2074 1952 }
2075 1953 },
2076 1954 "has-flag": {
2077 1955 "version": "3.0.0",
2078 1956 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2079 1957 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
2080 1958 "dev": true
2081 1959 },
2082 1960 "iconv-lite": {
2083 1961 "version": "0.4.24",
2084 1962 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
2085 1963 "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
2086 1964 "dev": true,
2087 1965 "requires": {
2088 1966 "safer-buffer": ">= 2.1.2 < 3"
2089 1967 }
2090 1968 },
2091 1969 "ignore": {
2092 1970 "version": "4.0.6",
2093 1971 "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
2094 1972 "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
2095 1973 "dev": true
2096 1974 },
2097 1975 "import-fresh": {
2098 1976 "version": "3.2.1",
2099 1977 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz",
2100 1978 "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==",
2101 1979 "dev": true,
2102 1980 "requires": {
2103 1981 "parent-module": "^1.0.0",
2104 1982 "resolve-from": "^4.0.0"
2105 1983 }
2106 1984 },
2107 1985 "imurmurhash": {
2108 1986 "version": "0.1.4",
2109 1987 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
2110 1988 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
2111 1989 "dev": true
2112 1990 },
2113 1991 "inflight": {
2114 1992 "version": "1.0.6",
2115 1993 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
2116 1994 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
2117 1995 "dev": true,
2118 1996 "requires": {
2119 1997 "once": "^1.3.0",
2120 1998 "wrappy": "1"
2121 1999 }
2122 2000 },
2123 2001 "inherits": {
2124 2002 "version": "2.0.4",
2125 2003 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2126 2004 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
2127 2005 "dev": true
2128 2006 },
2129 2007 "inquirer": {
2130 2008 "version": "7.0.3",
2131 2009 "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.3.tgz",
2132 2010 "integrity": "sha512-+OiOVeVydu4hnCGLCSX+wedovR/Yzskv9BFqUNNKq9uU2qg7LCcCo3R86S2E7WLo0y/x2pnEZfZe1CoYnORUAw==",
2133 2011 "dev": true,
2134 2012 "requires": {
2135 2013 "ansi-escapes": "^4.2.1",
2136 2014 "chalk": "^2.4.2",
2137 2015 "cli-cursor": "^3.1.0",
2138 2016 "cli-width": "^2.0.0",
2139 2017 "external-editor": "^3.0.3",
2140 2018 "figures": "^3.0.0",
2141 2019 "lodash": "^4.17.15",
2142 2020 "mute-stream": "0.0.8",
2143 2021 "run-async": "^2.2.0",
2144 2022 "rxjs": "^6.5.3",
2145 2023 "string-width": "^4.1.0",
2146 2024 "strip-ansi": "^5.1.0",
2147 2025 "through": "^2.3.6"
2148 2026 }
2149 2027 },
2150 2028 "is-extglob": {
2151 2029 "version": "2.1.1",
2152 2030 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2153 2031 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
2154 2032 "dev": true
2155 2033 },
2156 2034 "is-fullwidth-code-point": {
2157 2035 "version": "3.0.0",
2158 2036 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2159 2037 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2160 2038 "dev": true
2161 2039 },
2162 2040 "is-glob": {
2163 2041 "version": "4.0.1",
2164 2042 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
2165 2043 "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
2166 2044 "dev": true,
2167 2045 "requires": {
2168 2046 "is-extglob": "^2.1.1"
2169 2047 }
2170 2048 },
2171 2049 "is-promise": {
2172 2050 "version": "2.1.0",
2173 2051 "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
2174 2052 "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
2175 2053 "dev": true
2176 2054 },
2177 2055 "isexe": {
2178 2056 "version": "2.0.0",
2179 2057 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
2180 2058 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
2181 2059 "dev": true
2182 2060 },
2183 2061 "js-tokens": {
2184 2062 "version": "4.0.0",
2185 2063 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2186 2064 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
2187 2065 "dev": true
2188 2066 },
2189 2067 "js-yaml": {
2190 2068 "version": "3.13.1",
2191 2069 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
2192 2070 "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
2193 2071 "dev": true,
2194 2072 "requires": {
2195 2073 "argparse": "^1.0.7",
2196 2074 "esprima": "^4.0.0"
2197 2075 }
2198 2076 },
2199 2077 "json-schema-traverse": {
2200 2078 "version": "0.4.1",
2201 2079 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
2202 2080 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
2203 2081 "dev": true
2204 2082 },
2205 2083 "json-stable-stringify-without-jsonify": {
2206 2084 "version": "1.0.1",
2207 2085 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
2208 2086 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
2209 2087 "dev": true
2210 2088 },
2211 2089 "levn": {
2212 2090 "version": "0.3.0",
2213 2091 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
2214 2092 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
2215 2093 "dev": true,
2216 2094 "requires": {
2217 2095 "prelude-ls": "~1.1.2",
2218 2096 "type-check": "~0.3.2"
2219 2097 }
2220 2098 },
2221 2099 "lodash": {
2222 2100 "version": "4.17.20",
2223 2101 "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
2224 2102 "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
2225 2103 "dev": true
2226 2104 },
2227 2105 "mimic-fn": {
2228 2106 "version": "2.1.0",
2229 2107 "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
2230 2108 "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
2231 2109 "dev": true
2232 2110 },
2233 2111 "minimatch": {
2234 2112 "version": "3.0.4",
2235 2113 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2236 2114 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2237 2115 "dev": true,
2238 2116 "requires": {
2239 2117 "brace-expansion": "^1.1.7"
2240 2118 }
2241 2119 },
2242 2120 "mkdirp": {
2243 2121 "version": "0.5.5",
2244 2122 "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
2245 2123 "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
2246 2124 "dev": true,
2247 2125 "requires": {
2248 2126 "minimist": "^1.2.5"
2249 2127 },
2250 2128 "dependencies": {
2251 2129 "minimist": {
2252 2130 "version": "1.2.5",
2253 2131 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
2254 2132 "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
2255 2133 "dev": true
2256 2134 }
2257 2135 }
2258 2136 },
2259 2137 "ms": {
2260 2138 "version": "2.1.2",
2261 2139 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2262 2140 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2263 2141 "dev": true
2264 2142 },
2265 2143 "mute-stream": {
2266 2144 "version": "0.0.8",
2267 2145 "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
2268 2146 "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
2269 2147 "dev": true
2270 2148 },
2271 2149 "natural-compare": {
2272 2150 "version": "1.4.0",
2273 2151 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2274 2152 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
2275 2153 "dev": true
2276 2154 },
2277 2155 "nice-try": {
2278 2156 "version": "1.0.5",
2279 2157 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
2280 2158 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
2281 2159 "dev": true
2282 2160 },
2283 2161 "once": {
2284 2162 "version": "1.4.0",
2285 2163 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2286 2164 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2287 2165 "dev": true,
2288 2166 "requires": {
2289 2167 "wrappy": "1"
2290 2168 }
2291 2169 },
2292 2170 "onetime": {
2293 2171 "version": "5.1.0",
2294 2172 "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
2295 2173 "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
2296 2174 "dev": true,
2297 2175 "requires": {
2298 2176 "mimic-fn": "^2.1.0"
2299 2177 }
2300 2178 },
2301 2179 "optionator": {
2302 2180 "version": "0.8.3",
2303 2181 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
2304 2182 "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
2305 2183 "dev": true,
2306 2184 "requires": {
2307 2185 "deep-is": "~0.1.3",
2308 2186 "fast-levenshtein": "~2.0.6",
2309 2187 "levn": "~0.3.0",
2310 2188 "prelude-ls": "~1.1.2",
2311 2189 "type-check": "~0.3.2",
2312 2190 "word-wrap": "~1.2.3"
2313 2191 }
2314 2192 },
2315 2193 "os-tmpdir": {
2316 2194 "version": "1.0.2",
2317 2195 "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
2318 2196 "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
2319 2197 "dev": true
2320 2198 },
2321 2199 "parent-module": {
2322 2200 "version": "1.0.1",
2323 2201 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2324 2202 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2325 2203 "dev": true,
2326 2204 "requires": {
2327 2205 "callsites": "^3.0.0"
2328 2206 }
2329 2207 },
2330 2208 "path-is-absolute": {
2331 2209 "version": "1.0.1",
2332 2210 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2333 2211 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2334 2212 "dev": true
2335 2213 },
2336 2214 "path-key": {
2337 2215 "version": "2.0.1",
2338 2216 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
2339 2217 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
2340 2218 "dev": true
2341 2219 },
2342 2220 "path-parse": {
2343 2221 "version": "1.0.6",
2344 2222 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
2345 2223 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
2346 2224 "dev": true
2347 2225 },
2348 "pathval": {
2349 "version": "1.1.0",
2350 "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
2351 "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
2352 "dev": true
2353 },
2354 2226 "prelude-ls": {
2355 2227 "version": "1.1.2",
2356 2228 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
2357 2229 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
2358 2230 "dev": true
2359 2231 },
2360 2232 "progress": {
2361 2233 "version": "2.0.3",
2362 2234 "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
2363 2235 "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
2364 2236 "dev": true
2365 2237 },
2366 2238 "punycode": {
2367 2239 "version": "2.1.1",
2368 2240 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2369 2241 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
2370 2242 "dev": true
2371 2243 },
2372 2244 "regenerator-runtime": {
2373 2245 "version": "0.13.3",
2374 2246 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
2375 2247 "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
2376 2248 "dev": true
2377 2249 },
2378 2250 "regexpp": {
2379 2251 "version": "2.0.1",
2380 2252 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
2381 2253 "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
2382 2254 "dev": true
2383 2255 },
2384 2256 "requirejs": {
2385 2257 "version": "2.3.6",
2386 2258 "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz",
2387 2259 "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==",
2388 2260 "dev": true
2389 2261 },
2390 2262 "resolve": {
2391 2263 "version": "1.17.0",
2392 2264 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
2393 2265 "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
2394 2266 "dev": true,
2395 2267 "requires": {
2396 2268 "path-parse": "^1.0.6"
2397 2269 }
2398 2270 },
2399 2271 "resolve-from": {
2400 2272 "version": "4.0.0",
2401 2273 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
2402 2274 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
2403 2275 "dev": true
2404 2276 },
2405 2277 "restore-cursor": {
2406 2278 "version": "3.1.0",
2407 2279 "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
2408 2280 "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
2409 2281 "dev": true,
2410 2282 "requires": {
2411 2283 "onetime": "^5.1.0",
2412 2284 "signal-exit": "^3.0.2"
2413 2285 }
2414 2286 },
2415 2287 "rimraf": {
2416 2288 "version": "2.6.3",
2417 2289 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
2418 2290 "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
2419 2291 "dev": true,
2420 2292 "requires": {
2421 2293 "glob": "^7.1.3"
2422 2294 }
2423 2295 },
2424 2296 "run-async": {
2425 2297 "version": "2.3.0",
2426 2298 "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
2427 2299 "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
2428 2300 "dev": true,
2429 2301 "requires": {
2430 2302 "is-promise": "^2.1.0"
2431 2303 }
2432 2304 },
2433 2305 "rxjs": {
2434 2306 "version": "6.5.4",
2435 2307 "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz",
2436 2308 "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==",
2437 2309 "dev": true,
2438 2310 "requires": {
2439 2311 "tslib": "^1.9.0"
2440 2312 }
2441 2313 },
2442 2314 "safer-buffer": {
2443 2315 "version": "2.1.2",
2444 2316 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2445 2317 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2446 2318 "dev": true
2447 2319 },
2448 2320 "semver": {
2449 2321 "version": "6.3.0",
2450 2322 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
2451 2323 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
2452 2324 "dev": true
2453 2325 },
2454 2326 "shebang-command": {
2455 2327 "version": "1.2.0",
2456 2328 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
2457 2329 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
2458 2330 "dev": true,
2459 2331 "requires": {
2460 2332 "shebang-regex": "^1.0.0"
2461 2333 }
2462 2334 },
2463 2335 "shebang-regex": {
2464 2336 "version": "1.0.0",
2465 2337 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
2466 2338 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
2467 2339 "dev": true
2468 2340 },
2469 2341 "signal-exit": {
2470 2342 "version": "3.0.2",
2471 2343 "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
2472 2344 "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
2473 2345 "dev": true
2474 2346 },
2475 2347 "slice-ansi": {
2476 2348 "version": "2.1.0",
2477 2349 "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
2478 2350 "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
2479 2351 "dev": true,
2480 2352 "requires": {
2481 2353 "ansi-styles": "^3.2.0",
2482 2354 "astral-regex": "^1.0.0",
2483 2355 "is-fullwidth-code-point": "^2.0.0"
2484 2356 },
2485 2357 "dependencies": {
2486 2358 "is-fullwidth-code-point": {
2487 2359 "version": "2.0.0",
2488 2360 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2489 2361 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2490 2362 "dev": true
2491 2363 }
2492 2364 }
2493 2365 },
2494 2366 "sprintf-js": {
2495 2367 "version": "1.0.3",
2496 2368 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2497 2369 "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
2498 2370 "dev": true
2499 2371 },
2500 2372 "string-width": {
2501 2373 "version": "4.2.0",
2502 2374 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
2503 2375 "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
2504 2376 "dev": true,
2505 2377 "requires": {
2506 2378 "emoji-regex": "^8.0.0",
2507 2379 "is-fullwidth-code-point": "^3.0.0",
2508 2380 "strip-ansi": "^6.0.0"
2509 2381 },
2510 2382 "dependencies": {
2511 2383 "strip-ansi": {
2512 2384 "version": "6.0.0",
2513 2385 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
2514 2386 "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
2515 2387 "dev": true,
2516 2388 "requires": {
2517 2389 "ansi-regex": "^5.0.0"
2518 2390 }
2519 2391 }
2520 2392 }
2521 2393 },
2522 2394 "strip-ansi": {
2523 2395 "version": "5.2.0",
2524 2396 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
2525 2397 "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
2526 2398 "dev": true,
2527 2399 "requires": {
2528 2400 "ansi-regex": "^4.1.0"
2529 2401 },
2530 2402 "dependencies": {
2531 2403 "ansi-regex": {
2532 2404 "version": "4.1.0",
2533 2405 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
2534 2406 "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
2535 2407 "dev": true
2536 2408 }
2537 2409 }
2538 2410 },
2539 2411 "strip-json-comments": {
2540 2412 "version": "3.0.1",
2541 2413 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
2542 2414 "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
2543 2415 "dev": true
2544 2416 },
2545 2417 "supports-color": {
2546 2418 "version": "5.5.0",
2547 2419 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2548 2420 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2549 2421 "dev": true,
2550 2422 "requires": {
2551 2423 "has-flag": "^3.0.0"
2552 2424 }
2553 2425 },
2554 2426 "table": {
2555 2427 "version": "5.4.6",
2556 2428 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
2557 2429 "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
2558 2430 "dev": true,
2559 2431 "requires": {
2560 2432 "ajv": "^6.10.2",
2561 2433 "lodash": "^4.17.14",
2562 2434 "slice-ansi": "^2.1.0",
2563 2435 "string-width": "^3.0.0"
2564 2436 },
2565 2437 "dependencies": {
2566 2438 "emoji-regex": {
2567 2439 "version": "7.0.3",
2568 2440 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
2569 2441 "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
2570 2442 "dev": true
2571 2443 },
2572 2444 "is-fullwidth-code-point": {
2573 2445 "version": "2.0.0",
2574 2446 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2575 2447 "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2576 2448 "dev": true
2577 2449 },
2578 2450 "string-width": {
2579 2451 "version": "3.1.0",
2580 2452 "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
2581 2453 "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
2582 2454 "dev": true,
2583 2455 "requires": {
2584 2456 "emoji-regex": "^7.0.1",
2585 2457 "is-fullwidth-code-point": "^2.0.0",
2586 2458 "strip-ansi": "^5.1.0"
2587 2459 }
2588 2460 }
2589 2461 }
2590 2462 },
2591 2463 "text-table": {
2592 2464 "version": "0.2.0",
2593 2465 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
2594 2466 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
2595 2467 "dev": true
2596 2468 },
2597 2469 "through": {
2598 2470 "version": "2.3.8",
2599 2471 "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
2600 2472 "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2601 2473 "dev": true
2602 2474 },
2603 2475 "tmp": {
2604 2476 "version": "0.0.33",
2605 2477 "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
2606 2478 "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
2607 2479 "dev": true,
2608 2480 "requires": {
2609 2481 "os-tmpdir": "~1.0.2"
2610 2482 }
2611 2483 },
2612 2484 "tslib": {
2613 2485 "version": "1.10.0",
2614 2486 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
2615 2487 "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
2616 2488 "dev": true
2617 2489 },
2618 2490 "tslint": {
2619 2491 "version": "6.1.3",
2620 2492 "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
2621 2493 "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
2622 2494 "dev": true,
2623 2495 "requires": {
2624 2496 "@babel/code-frame": "^7.0.0",
2625 2497 "builtin-modules": "^1.1.1",
2626 2498 "chalk": "^2.3.0",
2627 2499 "commander": "^2.12.1",
2628 2500 "diff": "^4.0.1",
2629 2501 "glob": "^7.1.1",
2630 2502 "js-yaml": "^3.13.1",
2631 2503 "minimatch": "^3.0.4",
2632 2504 "mkdirp": "^0.5.3",
2633 2505 "resolve": "^1.3.2",
2634 2506 "semver": "^5.3.0",
2635 2507 "tslib": "^1.13.0",
2636 2508 "tsutils": "^2.29.0"
2637 2509 },
2638 2510 "dependencies": {
2639 2511 "semver": {
2640 2512 "version": "5.7.1",
2641 2513 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
2642 2514 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
2643 2515 "dev": true
2644 2516 },
2645 2517 "tslib": {
2646 2518 "version": "1.13.0",
2647 2519 "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
2648 2520 "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
2649 2521 "dev": true
2650 2522 }
2651 2523 }
2652 2524 },
2653 2525 "tsutils": {
2654 2526 "version": "2.29.0",
2655 2527 "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
2656 2528 "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
2657 2529 "dev": true,
2658 2530 "requires": {
2659 2531 "tslib": "^1.8.1"
2660 2532 }
2661 2533 },
2662 2534 "type-check": {
2663 2535 "version": "0.3.2",
2664 2536 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
2665 2537 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
2666 2538 "dev": true,
2667 2539 "requires": {
2668 2540 "prelude-ls": "~1.1.2"
2669 2541 }
2670 2542 },
2671 "type-detect": {
2672 "version": "4.0.8",
2673 "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
2674 "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
2675 "dev": true
2676 },
2677 2543 "type-fest": {
2678 2544 "version": "0.8.1",
2679 2545 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
2680 2546 "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
2681 2547 "dev": true
2682 2548 },
2683 2549 "typescript": {
2684 2550 "version": "4.2.4",
2685 2551 "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz",
2686 2552 "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==",
2687 2553 "dev": true
2688 2554 },
2689 2555 "uri-js": {
2690 2556 "version": "4.2.2",
2691 2557 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
2692 2558 "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
2693 2559 "dev": true,
2694 2560 "requires": {
2695 2561 "punycode": "^2.1.0"
2696 2562 }
2697 2563 },
2698 2564 "v8-compile-cache": {
2699 2565 "version": "2.1.0",
2700 2566 "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz",
2701 2567 "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==",
2702 2568 "dev": true
2703 2569 },
2704 2570 "which": {
2705 2571 "version": "1.3.1",
2706 2572 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2707 2573 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2708 2574 "dev": true,
2709 2575 "requires": {
2710 2576 "isexe": "^2.0.0"
2711 2577 }
2712 2578 },
2713 2579 "word-wrap": {
2714 2580 "version": "1.2.3",
2715 2581 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
2716 2582 "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
2717 2583 "dev": true
2718 2584 },
2719 2585 "wrappy": {
2720 2586 "version": "1.0.2",
2721 2587 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2722 2588 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2723 2589 "dev": true
2724 2590 },
2725 2591 "write": {
2726 2592 "version": "1.0.3",
2727 2593 "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
2728 2594 "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
2729 2595 "dev": true,
2730 2596 "requires": {
2731 2597 "mkdirp": "^0.5.1"
2732 2598 }
2733 2599 },
2734 2600 "yaml": {
2735 2601 "version": "1.7.2",
2736 2602 "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz",
2737 2603 "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==",
2738 2604 "dev": true,
2739 2605 "requires": {
2740 2606 "@babel/runtime": "^7.6.3"
2741 2607 }
2742 2608 }
2743 2609 }
2744 2610 }
@@ -1,35 +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://code.implab.org/implab/implabjs-djx",
14 14 "publishConfig": {
15 15 "access": "public"
16 16 },
17 17 "peerDependencies": {
18 18 "@implab/core-amd": "^1.4.0",
19 19 "dojo": "^1.10.0"
20 20 },
21 21 "devDependencies": {
22 22 "@implab/core-amd": "^1.4.0",
23 23 "@types/chai": "4.1.3",
24 24 "@types/requirejs": "2.1.31",
25 25 "@types/yaml": "1.2.0",
26 "chai": "4.2.0",
27 26 "dojo": "1.16.0",
28 "dojo-typings": "~1.11.9",
27 "@implab/dojo-typings": "1.0.0",
29 28 "eslint": "6.8.0",
30 29 "requirejs": "2.3.6",
31 30 "tslint": "^6.1.3",
32 31 "typescript": "4.2.4",
33 32 "yaml": "~1.7.2"
34 33 }
35 34 }
@@ -1,81 +1,73
1 1 import { MapOf, PromiseOrValue } from "@implab/core-amd/interfaces";
2 2 import { argumentNotEmptyString, isPromise, mixin } from "@implab/core-amd/safe";
3 import { id as mid } from "module";
4 import { TraceSource } from "@implab/core-amd/log/TraceSource";
5
6 const trace = TraceSource.get(mid);
7 3
8 4 export type LocaleProvider<T> = () => PromiseOrValue<T | { default: T }>;
9 5
10 6 type ResolveCallback<T> = () => PromiseOrValue<T>;
11 7
12 8 function when<T, T2>(value: PromiseOrValue<T>, cb: (v: T) => PromiseOrValue<T2>): PromiseOrValue<T2> {
13 9 return isPromise(value) ?
14 10 value.then(cb) :
15 11 cb(value);
16 12 }
17 13
18 14 function isCallback<T>(v: ResolveCallback<T> | PromiseOrValue<T>): v is ResolveCallback<T> {
19 15 return typeof v === "function";
20 16 }
21 17
22 function defaultResolver(module: string) {
23 return import(module).then(x => x && x.default ? x.default : x);
24 }
25
26 18 function chainObjects<T extends object>(o1: T, o2: T) {
27 19 if (!o1)
28 20 return o2;
29 21 if (!o2)
30 22 return o1;
31 23
32 24 return mixin(Object.create(o1) as T, o2);
33 25 }
34 26
35 27 export class NlsBundle<T extends object> {
36 28 private _locales: MapOf<LocaleProvider<Partial<T>>>;
37 29
38 30 private _default: T;
39 31
40 32 private _cache: MapOf<PromiseOrValue<T>>;
41 33
42 34 constructor(defNls: T, locales?: MapOf<LocaleProvider<Partial<T>>>) {
43 35 this._default = defNls;
44 36 this._locales = locales || {};
45 37 this._cache = {};
46 38 }
47 39
48 40 getLocale(locale: string) {
49 41 argumentNotEmptyString(locale, "locale");
50 42 const _loc = locale;
51 43
52 44 // en-US => ["en", "en-US"]
53 45 const locales = _loc.split(/-|_/).map((x, i, a) => a.slice(0, i + 1).join("-"));
54 46 return this._resolveLocale(locales);
55 47 }
56 48
57 49 _resolveLocale(locales: string[]): PromiseOrValue<T> {
58 50 if (!locales.length)
59 51 return this._default;
60 52
61 53 const locale = locales.pop();
62 54 if (!locale)
63 55 throw new Error("The locale can't be empty");
64 56
65 57 if (this._cache[locale])
66 58 return this._cache[locale];
67 59
68 60 const data = this._loadPackage(this._locales[locale]);
69 61 const parent = this._resolveLocale(locales);
70 62
71 63 return this._cache[locale] = when(data, x => {
72 64 return when(parent, y => this._cache[locale] = chainObjects(y, x));
73 65 });
74 66 }
75 67
76 68 _loadPackage(localeData: any) {
77 69 if (isCallback(localeData))
78 70 return when(localeData(), data => data && "default" in data ? data.default : data);
79 71 return localeData;
80 72 }
81 73 }
@@ -1,256 +1,253
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 import dojo = require("dojo/_base/kernel");
5 4
6 5 // declare const declare: any;
7 6
8 7 type DeclareConstructor<T> = dojo._base.DeclareConstructor<T>;
9 8
10 9 export interface AbstractConstructor<T = {}> {
11 10 prototype: T;
12 11 }
13 12
14 13 interface DjMockConstructor<T = {}> {
15 14 new(...args: any[]): T;
16 15 mock: boolean;
17 16 bases: AbstractConstructor[];
18 17 }
19 18
20 19 export function djbase<T>(
21 20 b0?: AbstractConstructor<T>
22 21 ): DeclareConstructor<T>;
23 22
24 23 export function djbase<T0, T1>(
25 24 b0: AbstractConstructor<T0>,
26 25 b1: AbstractConstructor<T1>
27 26 ): DeclareConstructor<T0 & T1>;
28 27
29 28 export function djbase<T0, T1, T2>(
30 29 b0: AbstractConstructor<T0>,
31 30 b1: AbstractConstructor<T1>,
32 31 b2: AbstractConstructor<T2>
33 32 ): DeclareConstructor<T0 & T1 & T2>;
34 33
35 34 export function djbase<T0, T1, T2, T3>(
36 35 b0: AbstractConstructor<T0>,
37 36 b1: AbstractConstructor<T1>,
38 37 b2: AbstractConstructor<T2>,
39 38 b3: AbstractConstructor<T3>
40 39 ): DeclareConstructor<T0 & T1 & T2 & T3>;
41 40
42 41 export function djbase<T0, T1, T2, T3, T4>(
43 42 b0: AbstractConstructor<T0>,
44 43 b1: AbstractConstructor<T1>,
45 44 b2: AbstractConstructor<T2>,
46 45 b3: AbstractConstructor<T3>,
47 46 b4: AbstractConstructor<T4>
48 47 ): DeclareConstructor<T0 & T1 & T2 & T3 & T4>;
49 48
50 49 export function djbase<T0, T1, T2, T3, T4, T5>(
51 50 b0: AbstractConstructor<T0>,
52 51 b1: AbstractConstructor<T1>,
53 52 b2: AbstractConstructor<T2>,
54 53 b3: AbstractConstructor<T3>,
55 54 b4: AbstractConstructor<T4>,
56 55 b5: AbstractConstructor<T5>
57 56 ): DeclareConstructor<T0 & T1 & T2 & T3 & T4 & T5>;
58 57
59 58 export function djbase<T0, T1, T2, T3, T4, T5, T6>(
60 59 b0: AbstractConstructor<T0>,
61 60 b1: AbstractConstructor<T1>,
62 61 b2: AbstractConstructor<T2>,
63 62 b3: AbstractConstructor<T3>,
64 63 b4: AbstractConstructor<T4>,
65 64 b5: AbstractConstructor<T5>,
66 65 b6: AbstractConstructor<T6>
67 66 ): DeclareConstructor<T0 & T1 & T2 & T3 & T4 & T5 & T6>;
68 67
69 68 export function djbase<T0, T1, T2, T3, T4, T5, T6, T7>(
70 69 b0: AbstractConstructor<T0>,
71 70 b1: AbstractConstructor<T1>,
72 71 b2: AbstractConstructor<T2>,
73 72 b3: AbstractConstructor<T3>,
74 73 b4: AbstractConstructor<T4>,
75 74 b5: AbstractConstructor<T5>,
76 75 b6: AbstractConstructor<T6>,
77 76 b7: AbstractConstructor<T7>
78 77 ): DeclareConstructor<T0 & T1 & T2 & T3 & T4 & T5 & T6 & T7>;
79 78
80 79 /** Создает конструктор-заглушку из списка базовых классов, используется
81 80 * для объявления классов при помощи `dojo/_base/declare`.
82 81 *
83 82 * Создает пустой конструктор, с пустым стандартным прототипом, это нужно,
84 83 * поскольку в унаследованном классе конструктор обязательно должен вызвать
85 84 * `super(...)`, таким образом он вызовет пустую функцию.
86 85 *
87 86 * Созданный конструктор хранит в себе список базовых классов, который будет
88 87 * использован декоратором `djclass`, который вернет класс, объявленный при
89 88 * помощи `dojo/_base/declare`.
90 89 *
91 90 * @param bases список базовых классов, от которых требуется унаследовать
92 91 * новый класс.
93 92 *
94 93 */
95 94 export function djbase(...bases: any[]): Constructor {
96 95
97 96 const t = class {
98 97 static mock: boolean;
99 98 static bases: AbstractConstructor[];
100 99 };
101 100
102 101 t.mock = true;
103 102 t.bases = bases;
104 103
105 104 return t as any;
106 105 }
107 106
108 107 function isMockConstructor<T extends {}>(v: AbstractConstructor<T>): v is DjMockConstructor<T> {
109 108 return v && "mock" in v;
110 109 }
111 110
112 111 /** Создает класс при помощи `dojo/_base/declare`. Для этого исходный класс
113 112 * должен быть унаследован от `djbase(...)`.
114 113 *
115 114 * @param target Класс, который нужно объявить при помощи `dojo/_base/declare`
116 115 */
117 116 export function djclass<T extends AbstractConstructor>(target: T): T {
118 117 // получаем базовый конструктор и его прототип
119 118 let bp = target && target.prototype && Object.getPrototypeOf(target.prototype);
120 119 const bc = bp && bp.constructor;
121 120
122 121 // проверка того, что класс унаследован от специальной заглушки
123 122 if (isMockConstructor(bc)) {
124 // t - базовый класс, объявленный при помощи dojo/_base/declare
125 const t = bc.bases;
126
127 const cls = declare(bc.bases, target.prototype);
123 // bc.bases - базовый класс, объявленный при помощи dojo/_base/declare
124 const cls = declare<any>(bc.bases, target.prototype);
128 125
129 126 // bc - базовый класс, bc.prototype используется как super
130 127 // при вызове базовых методов. Нужно создать bc.prototype
131 128 // таким образом, чтобы он вызывал this.inherited().
132 129
133 130 // создаем новый порототип, он не в цепочке прототипов у текущего
134 131 // класса, но super.some_method будет использовать именно его.
135 132 // в этом объекте будут размещены прокси для переопределенных
136 133 // методов.
137 134 bp = bc.prototype = Object.create(cls.prototype);
138 135 bp.constructor = bc;
139 136
140 137 // proxy - фабрика для создания прокси-методов, которые внутри
141 138 // себя вызовут this.inherited с правильными параметрами.
142 139 const proxy = (m: (...args: any[]) => any) => function (this: any) {
143 140 const f = this.getInherited({ callee: m });
144 141 return f && f.apply(this, arguments);
145 142
146 143 // так сделать можно только dojo 1.15+
147 144 // return this.inherited(m, arguments);
148 145 };
149 146
150 147 // у текущего класса прототип содержит методы, объявленные в этом
151 148 // классе и его конструктор. Нужно пройти по всем методам и
152 149 // создать для них прокси.
153 150 // При этом только те, методы, которые есть в базовых классах
154 151 // могут быть переопределены.
155 152 each(target.prototype, (m: any, p: string | number | symbol) => {
156 153 if (typeof m === "function" &&
157 154 p !== "constructor" &&
158 155 target.prototype.hasOwnProperty(p)
159 156 ) {
160 157 bp[p] = proxy(m);
161 158 }
162 159 });
163 160
164 161 // TODO mixin static members
165 162 return cls as any;
166 163 } else {
167 164 return target as any;
168 165 }
169 166 }
170 167
171 168 function makeSetterName(prop: string) {
172 169 return [
173 170 "_set",
174 171 prop.replace(/^./, x => x.toUpperCase()),
175 172 "Attr"
176 173 ].join("");
177 174 }
178 175
179 176 function makeGetterName(prop: string) {
180 177 return [
181 178 "_get",
182 179 prop.replace(/^./, x => x.toUpperCase()),
183 180 "Attr"
184 181 ].join("");
185 182 }
186 183
187 184 interface NodeBindSpec {
188 185 node: string;
189 186 type: "attribute" | "innerText" | "textContent" | "innerHTML" | "class" | "toggleClass";
190 187 attribute?: string;
191 188
192 189 className?: string;
193 190 }
194 191
195 192 /**
196 193 * Описание привязки свойства виджета к свойству внутреннего объекта.
197 194 */
198 195 interface MemberBindSpec {
199 196 /**
200 197 * Имя свойства со ссылкой на объект, к которому .
201 198 */
202 199 member: string;
203 200 /**
204 201 * Свойство объекта к которому нужно осуществить привязку.
205 202 */
206 203 property: string;
207 204
208 205 /**
209 206 * Привязка осуществляется не только на запись но и на чтение свойства.
210 207 */
211 208 getter?: boolean;
212 209 }
213 210
214 211 function isNodeBindSpec(v: any): v is NodeBindSpec {
215 212 return "node" in v;
216 213 }
217 214
218 215 /** Декорирует свойства виджета для привязки их к внутренним членам, либо DOM
219 216 * элементам, либо свойству внутреннего объекта.
220 217 *
221 218 * @param {NodeBindSpec | MemberBindSpec} params Параметры связывания.
222 219 */
223 220 export function bind(params: NodeBindSpec | MemberBindSpec) {
224 221 if (isNodeBindSpec(params)) {
225 222 return (target: any, name: string) => {
226 223 target[makeSetterName(name)] = params;
227 224 };
228 225 } else {
229 226 return (target: any, name: string) => {
230 227 target[name] = null;
231 228 target[makeSetterName(name)] = function (v: any) {
232 229 this._set(name, v);
233 230 this[params.member].set(params.property, v);
234 231 };
235 232 if (params.getter)
236 233 target[makeGetterName(name)] = function () {
237 234 return this[params.member].get(params.property);
238 235 };
239 236 };
240 237 }
241 238 }
242 239
243 240 /** Создает в прототипе указанное свойство со значение `undefined`, данный
244 241 * декоратор следует использовать для свойств, у которых нет значения по-умолчанию
245 242 * и они не могут быть `null | undefined`
246 243 */
247 244 export function prototype(): (p: any, name: string) => void;
248 245 /** Создает в прототипе свойство с указанным значением.
249 246 * @param value Значение, которое будет указано в прототипе
250 247 */
251 248 export function prototype<T>(value: T): <P extends { [m in K]: T }, K extends keyof P>(p: P, name: K) => void;
252 249 export function prototype<T>(value?: T) {
253 250 return <P extends { [m in K]: T }, K extends keyof P>(p: P, name: K) => {
254 251 p[name] = value as any;
255 252 };
256 253 }
@@ -1,100 +1,100
1 1 import { id as mid } from "module";
2 2 import { TraceSource } from "@implab/core-amd/log/TraceSource";
3 3 import { MapOf } from "@implab/core-amd/interfaces";
4 4 import { mixin } from "@implab/core-amd/safe";
5 5
6 6 const trace = TraceSource.get(mid);
7 7
8 8
9 9 function on<T extends keyof HTMLElementEventMap>(node: HTMLElement, eventName: T, handler: (this: HTMLElement, ev: HTMLElementEventMap[T]) => any): () => void {
10 10 // Add an event listener to a DOM node
11 11 node.addEventListener(eventName, handler, false);
12 12
13 13 return () => node.removeEventListener(eventName, handler, false);
14 14 }
15 15
16 16 interface NodeLoadResult {
17 17 node: HTMLElement;
18 18 }
19 19
20 20 class DomInject {
21 21 injectionPoint?: HTMLElement;
22 22 injectAfter?: HTMLElement;
23 23
24 24 _map: MapOf<Promise<NodeLoadResult>> = {};
25 25
26 26 _inject<T extends keyof HTMLElementTagNameMap>(name: T, attr: Partial<HTMLElementTagNameMap[T]>) {
27 27 const node = document.createElement(name);
28 28
29 29 return new Promise<NodeLoadResult>((ok, fail) => {
30 30
31 31 const cleanup = () => {
32 32 noerr();
33 33 noload();
34 34 };
35 35
36 36 const noload = on(node, "load", () => {
37 37 ok({ node });
38 38 cleanup();
39 39 });
40 40
41 41 const noerr = on(node, "error", e => {
42 42 fail({
43 43 error: e,
44 44 node
45 45 });
46 46 cleanup();
47 47 });
48 48
49 49 mixin(node, attr);
50 50
51 51 const _injectionPoint = this.injectionPoint || document.head;
52 52 const _injectBefore = this.injectAfter ? this.injectAfter.nextSibling : null;
53 53
54 54 _injectionPoint.insertBefore(node, _injectBefore);
55 55 });
56 56 }
57 57
58 58 async injectScript(url: string) {
59 59 let d = this._map[url];
60 60 if (!d) {
61 61 trace.log("js {0}", url);
62 62 d = this._inject("script", {
63 63 type: "text/javascript",
64 64 charset: "utf-8",
65 65 src: url
66 66 });
67 67 this._map[url] = d;
68 68 }
69 69 try {
70 70 await d;
71 71 trace.log("done {0}", url);
72 72 } catch (e) {
73 73 trace.error("failed {0}: {1}", url, e);
74 74 throw e;
75 75 }
76 76 }
77 77
78 78 async injectStylesheet(url: string) {
79 79 let d = this._map[url];
80 80 if (!d) {
81 81 trace.log("js {0}", url);
82 82 d = this._inject("link", {
83 83 type: "text/css",
84 84 rel: "stylesheet",
85 85 href: url
86 86 });
87 87 this._map[url] = d;
88 88 }
89 89 try {
90 90 await d;
91 91 trace.log("done {0}", url);
92 92 } catch (e) {
93 93 trace.error("failed {0}: {1}", url, e);
94 94 throw e;
95 95 }
96 96 }
97 };
97 }
98 98
99 99 const instance = new DomInject();
100 100 export default instance;
@@ -1,40 +1,119
1 import { Constructor } from "@implab/core-amd/interfaces";
1 import { Constructor, IDestroyable, IRemovable } from "@implab/core-amd/interfaces";
2 2 import { HtmlRendition } from "./tsx/HtmlRendition";
3 3 import { WidgetRendition } from "./tsx/WidgetRendition";
4 import { isWidgetConstructor, Rendition } from "./tsx/traits";
4 import { destroy, isWidgetConstructor, Rendition } from "./tsx/traits";
5 5 import { FunctionRendition } from "./tsx/FunctionRendition";
6 import Stateful = require("dojo/Stateful");
7 import _WidgetBase = require("dijit/_WidgetBase");
8 import { DjxWidgetBase } from "./tsx/DjxWidgetBase";
6 9
7 10 export function createElement<T extends Constructor | string | ((props: any) => Element)>(elementType: T, ...args: any[]): Rendition {
8 11 if (typeof elementType === "string") {
9 12 const ctx = new HtmlRendition(elementType);
10 13 if (args)
11 14 args.forEach(x => ctx.visitNext(x));
12 15
13 16 return ctx;
14 17 } else if (isWidgetConstructor(elementType)) {
15 18 const ctx = new WidgetRendition(elementType);
16 19 if (args)
17 20 args.forEach(x => ctx.visitNext(x));
18 21
19 22 return ctx;
20 23 } else if (typeof elementType === "function") {
21 24 const ctx = new FunctionRendition(elementType as (props: any) => Element);
22 25 if (args)
23 26 args.forEach(x => ctx.visitNext(x));
24 27
25 28 return ctx;
26 29 } else {
27 30 throw new Error(`The element type '${elementType}' is unsupported`);
28 31 }
29 32 }
30 33
31 34 export interface EventDetails<T = any> {
32 35 detail: T;
33 36 }
34 37
35 38 export interface EventSelector {
36 39 selectorTarget: HTMLElement;
37 40 target: HTMLElement;
38 41 }
39 42
40 43 export type DojoMouseEvent<T = any> = MouseEvent & EventSelector & EventDetails<T>;
44
45 type StatefulProps<T> = T extends Stateful<infer A> ? A : never;
46
47 type CleanFn = (instance: IRemovable | IDestroyable) => void;
48
49 /**
50 * Observers the property and calls render callback each change.
51 *
52 * @param target The target object which property will be observed.
53 * @param prop The name of the property.
54 * @param render The callback which will be called every time the value is changed
55 * @param cleanupOrOwner The object with method `own` or an callback to register lifecycle for the observer.
56 * @returns Rendition which is created instantly
57 */
58 export function watch<W extends _WidgetBase, K extends keyof W>(
59 target: W,
60 prop: K,
61 render: (model: W[K]) => any,
62 cleanupOrOwner?: { own: CleanFn } | CleanFn
63 ): Rendition;
64 /**
65 * Observers the property and calls render callback each change.
66 *
67 * @param target The target object which property will be observed.
68 * @param prop The name of the property.
69 * @param render The callback which will be called every time the value is changed
70 * @param cleanupOrOwner The object with method `own` or an callback to register lifecycle for the observer.
71 * @returns Rendition which is created instantly
72 */
73 export function watch<T extends Stateful, K extends keyof StatefulProps<T>>(
74 target: T,
75 prop: K,
76 render: (model: StatefulProps<T>[K]) => any,
77 cleanupOrOwner?: { own: CleanFn } | CleanFn
78 ): Rendition;
79 export function watch<T extends Stateful, K extends keyof StatefulProps<T> & string>(
80 target: T,
81 prop: K,
82 render: (model: StatefulProps<T>[K]) => any,
83 cleanupOrOwner: { own: CleanFn } | CleanFn = () => { }
84 ) {
85 let rendition = new FunctionRendition(() => render(target.get(prop)));
86 const _own = cleanupOrOwner instanceof Function ? cleanupOrOwner : (x: IRemovable) => cleanupOrOwner.own(x);
87 _own(target.watch(prop, (_name, oldValue, newValue) => {
88 if (oldValue !== newValue) {
89 const newRendition = new FunctionRendition(() => render(newValue));
90 newRendition.placeAt(rendition.getDomNode(), "replace");
91 destroy(rendition.getDomNode());
92 rendition = newRendition;
93 }
94 }));
95 return rendition;
96 }
97
98 /** Decorates the method which will be registered as the handle for the specified event.
99 * This decorator can be applied to DjxWidgetBase subclass methods.
100 *
101 * ```
102 * @on("click")
103 * _onClick(eventObj: MouseEvent) {
104 * // ...
105 * }
106 * ```
107 */
108 export const on = <E extends string>(...eventNames: E[]) =>
109 <K extends string,
110 T extends DjxWidgetBase<any, { [p in E]: EV }>,
111 EV extends Event
112 >(
113 target: T,
114 key: K,
115 _descriptor: TypedPropertyDescriptor<(eventObj: EV) => void> | TypedPropertyDescriptor<() => void>
116 ): any => {
117 const handlers = eventNames.map(eventName => ({ eventName, handlerMethod: key }))
118 target._eventHandlers = target._eventHandlers ? target._eventHandlers.concat(handlers) : handlers;
119 };
@@ -1,88 +1,114
1 1 import { djbase, djclass } from "../declare";
2 2 import _WidgetBase = require("dijit/_WidgetBase");
3 3 import _AttachMixin = require("dijit/_AttachMixin");
4 import { Rendition, isNode, startupWidgets } from "./traits";
4 import { Rendition, isNode } from "./traits";
5 5 import registry = require("dijit/registry");
6 import on = require("dojo/on");
6 7
7 8 // type Handle = dojo.Handle;
8 9
9 10 export interface EventArgs {
10 11 bubbles?: boolean;
11 12
12 13 cancelable?: boolean;
13 14
14 15 composed?: boolean;
15 16 }
16 17
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];
18 export interface DjxWidgetBase<Attrs = {}, Events extends { [name in keyof Events]: Event } = {}> extends
19 _WidgetBase<Events> {
20
21 /** This property is declared only for type inference to work, it is never assigned
22 * and should not be used.
23 */
24 readonly _eventMap: Events & GlobalEventHandlersEventMap;
21 25
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;
26 /** The list of pairs of event and method names. When the widget is created all methods from
27 * this list will be connected to corresponding events.
28 *
29 * This property is maintained in the prototype
30 */
31 _eventHandlers: Array<{
32 eventName: string,
33 handlerMethod: keyof any;
34 }>;
25 35 }
26 36
37 type _super = {
38 startup(): void;
39 };
40
27 41 @djclass
28 export abstract class DjxWidgetBase<Attrs = any, Events = any> extends djbase(_WidgetBase, _AttachMixin) {
42 export abstract class DjxWidgetBase<Attrs = {}, Events = {}> extends djbase<_super, _AttachMixin>(_WidgetBase, _AttachMixin) {
29 43
30 44 buildRendering() {
31 45 this.domNode = this.render().getDomNode();
32 46 super.buildRendering();
33 47
34 48 // now we should get assigned data-dojo-attach-points
35 49 // place the contents of the original srcNode to the containerNode
36 50 const src = this.srcNodeRef;
37 51 const dest = this.containerNode;
38 52
53 // the donNode is constructed now we need to connect event handlers
54 this._connectEventHandlers();
55
39 56 if (src && dest) {
40 57 while (src.firstChild)
41 58 dest.appendChild(src.firstChild);
42 59 }
43 60 }
44 61
45 62 abstract render(): Rendition<HTMLElement>;
46 63
64 private _connectEventHandlers() {
65 if (this._eventHandlers)
66 this._eventHandlers.forEach(({ eventName, handlerMethod }) => {
67 const handler = this[handlerMethod as keyof this];
68 if (typeof handler === "function")
69 on(this.domNode, eventName, handler.bind(this));
70 });
71 }
72
47 73 _processTemplateNode<T extends (Element | Node | _WidgetBase)>(
48 74 baseNode: T,
49 getAttrFunc: (baseNode: T, attr: string) => string,
75 getAttrFunc: (baseNode: T, attr: string) => any,
50 76 // tslint:disable-next-line: ban-types
51 77 attachFunc: (node: T, type: string, func?: Function) => dojo.Handle
52 78 ): boolean {
53 79 if (isNode(baseNode)) {
54 80 const w = registry.byNode(baseNode);
55 81 if (w) {
56 82 // from dijit/_WidgetsInTemplateMixin
57 83 this._processTemplateNode(w,
58 (n, p) => n.get(p), // callback to get a property of a widget
84 (n, p) => n.get(p as any), // callback to get a property of a widget
59 85 (widget, type, callback) => {
60 86 if (!callback)
61 87 throw new Error("The callback must be specified");
62 88
63 89 // callback to do data-dojo-attach-event to a widget
64 90 if (type in widget) {
65 91 // back-compat, remove for 2.0
66 92 return widget.connect(widget, type, callback as EventListener);
67 93 } else {
68 94 // 1.x may never hit this branch, but it's the default for 2.0
69 95 return widget.on(type, callback);
70 96 }
71 97
72 98 });
73 99 // don't process widgets internals
74 100 return false;
75 101 }
76 102 }
77 103 return super._processTemplateNode(baseNode, getAttrFunc, attachFunc);
78 104 }
79 105
80 106 /** Starts current widget and all its supporting widgets (placed outside
81 107 * `containerNode`) and child widgets (placed inside `containerNode`)
82 108 */
83 109 startup() {
84 110 // startup supporting widgets
85 111 registry.findWidgets(this.domNode, this.containerNode).forEach(w => w.startup());
86 112 super.startup();
87 113 }
88 114 }
@@ -1,116 +1,116
1 1 import { isNull, mixin } from "@implab/core-amd/safe";
2 2 import { isPlainObject, isNode, isRendition, DojoNodePosition, Rendition, isInPage, isWidget, isDocumentFragmentNode, startupWidgets } from "./traits";
3 3
4 4 import dom = require("dojo/dom-construct");
5 5 import registry = require("dijit/registry");
6 6
7 7
8 8 export abstract class RenditionBase<TNode extends Node> implements Rendition<TNode> {
9 9 private _attrs = {};
10 10
11 11 private _children = new Array();
12 12
13 13 private _created: boolean = false;
14 14
15 15 visitNext(v: any) {
16 16 if (this._created)
17 17 throw new Error("The Element is already created");
18 18
19 19 if (isNull(v) || typeof v === "boolean")
20 20 // skip null, undefined, booleans ( this will work: {value && <span>{value}</span>} )
21 21 return;
22 22
23 23 if (isPlainObject(v)) {
24 24 mixin(this._attrs, v);
25 25 } else if (v instanceof Array) {
26 26 v.forEach(x => this.visitNext(x));
27 27 } else {
28 28 this._children.push(v);
29 29 }
30 30 }
31 31
32 32 protected getItemDom(v: any) {
33 33 const tv = typeof v;
34 34
35 35 if (tv === "string" || tv === "number" || v instanceof RegExp || v instanceof Date) {
36 36 // primitive types converted to the text nodes
37 37 return document.createTextNode(v.toString());
38 38 } else if (isNode(v)) {
39 39 // nodes are kept as is
40 40 return v;
41 41 } else if (isRendition(v)) {
42 42 // renditions as instantinated
43 43 return v.getDomNode();
44 44 } else if (isWidget(v)) {
45 45 // widgets are converted to it's markup
46 46 return v.domNode;
47 47 } else if (tv === "boolean" || v === null || v === undefined) {
48 48 // null | undefined | boolean are removed, converted to comments
49 49 return document.createComment(`[${tv} ${String(v)}]`);
50 50 } else {
51 51 // bug: explicit error otherwise
52 52 throw new Error("Invalid parameter: " + v);
53 53 }
54 54 }
55 55
56 56 ensureCreated() {
57 57 if (!this._created) {
58 58 this._create(this._attrs, this._children);
59 59 this._children = [];
60 60 this._attrs = {};
61 61 this._created = true;
62 62 }
63 63 }
64 64
65 65 /** @deprecated will be removed in 1.0.0, use getDomNode() */
66 66 getDomElement() {
67 67 return this.getDomNode();
68 68 }
69 69
70 70 /** Creates DOM node if not created. No additional actions are taken. */
71 71 getDomNode() {
72 72 this.ensureCreated();
73 73 return this._getDomNode();
74 74 }
75 75
76 76 /** Creates DOM node if not created, places it to the specified position
77 77 * and calls startup() method for all widgets contained by this node.
78 78 *
79 79 * @param {string | Node} refNode The reference node where the created
80 80 * DOM should be placed.
81 81 * @param {DojoNodePosition} position Optional parameter, specifies the
82 82 * position relative to refNode. Default is "last" (i.e. last child).
83 83 */
84 84 placeAt(refNode: string | Node, position?: DojoNodePosition) {
85 85 const domNode = this.getDomNode();
86 86
87 87 const collect = (collection: HTMLCollection) => {
88 88 const items = [];
89 89 for (let i = 0, n = collection.length; i < n; i++) {
90 90 items.push(collection[i]);
91 91 }
92 92 return items;
93 }
93 };
94 94
95 95 const startup = (node: Node) => {
96 96 if (node.parentNode) {
97 97 const parentWidget = registry.getEnclosingWidget(node.parentNode);
98 98 if (parentWidget && parentWidget._started)
99 99 return startupWidgets(node);
100 100 }
101 101 if (isInPage(node))
102 102 startupWidgets(node);
103 }
103 };
104 104
105 const startupPending = isDocumentFragmentNode(domNode) ? collect(domNode.children) : [domNode]
105 const startupPending = isDocumentFragmentNode(domNode) ? collect(domNode.children) : [domNode];
106 106
107 107 dom.place(domNode, refNode, position);
108 108
109 109 startupPending.forEach(startup);
110 110
111 111 }
112 112
113 113 protected abstract _create(attrs: object, children: any[]): void;
114 114
115 115 protected abstract _getDomNode(): TNode;
116 116 }
@@ -1,128 +1,128
1 1 import dom = require("dojo/dom-construct");
2 2 import { argumentNotNull } from "@implab/core-amd/safe";
3 3 import { RenditionBase } from "./RenditionBase";
4 4 import { DojoNodePosition, isElementNode, isInPage, isWidget } from "./traits";
5 5 import registry = require("dijit/registry");
6 6 import ContentPane = require("dijit/layout/ContentPane");
7 7
8 8 // tslint:disable-next-line: class-name
9 9 export interface _Widget {
10 10 domNode: Node;
11 11
12 12 containerNode?: Node;
13 13
14 14 placeAt?(refNode: string | Node, position?: DojoNodePosition): void;
15 15 startup?(): void;
16 16
17 17 addChild?(widget: any, index?: number): void;
18 18 }
19 19
20 20 export type _WidgetCtor = new (attrs: any, srcNode?: string | Node) => _Widget;
21 21
22 22 export class WidgetRendition extends RenditionBase<Node> {
23 23 readonly widgetClass: _WidgetCtor;
24 24
25 25 _instance: _Widget | undefined;
26 26
27 27 constructor(widgetClass: _WidgetCtor) {
28 28 super();
29 29 argumentNotNull(widgetClass, "widgetClass");
30 30
31 31 this.widgetClass = widgetClass;
32 32 }
33 33
34 34 _addChild(child: any): void {
35 35 const instance = this._getInstance();
36 36
37 37 if (instance.addChild) {
38 38 if (child instanceof WidgetRendition) {
39 39 // layout containers add custom logic to addChild methods
40 40 instance.addChild(child.getWidgetInstance());
41 41 } else if (isWidget(child)) {
42 42 instance.addChild(child);
43 43 } else {
44 44 const childDom = this.getItemDom(child);
45 45 const w = isElementNode(childDom) ? registry.byNode(childDom) : undefined;
46 46
47 47 if (w) {
48 48 instance.addChild(w);
49 49 } else {
50 50 if (!instance.containerNode)
51 51 throw new Error("Failed to add DOM content. The widget doesn't have a containerNode");
52 52
53 53 // the current widget isn't started, it's children shouldn't start too
54 54 dom.place(this.getItemDom(child), instance.containerNode);
55 55 }
56 56 }
57 57 } else {
58 58 if (!instance.containerNode)
59 59 throw new Error("The widget doesn't have neither addChild nor containerNode");
60 60
61 61 // the current widget isn't started, it's children shouldn't start too
62 62 dom.place(this.getItemDom(child), instance.containerNode);
63 63 }
64 64 }
65 65
66 66 protected _create(attrs: any, children: any[]) {
67 67 if (this.widgetClass.prototype instanceof ContentPane) {
68 68 // a special case for the ContentPane this is for
69 69 // the compatibility with this heavy widget, all
70 70 // regular containers could be easily manipulated
71 71 // through `containerNode` property or `addChild` method.
72 72
73 73 // render children to the DocumentFragment
74 74 const content = document.createDocumentFragment();
75 75 children.forEach(child => content.appendChild(this.getItemDom(child)));
76 76
77 77 // set the content property to the parameters of the widget
78 78 const _attrs = { ...attrs, content };
79 79 this._instance = new this.widgetClass(_attrs);
80 80 } else {
81 81 this._instance = new this.widgetClass(attrs);
82 82 children.forEach(x => this._addChild(x));
83 83 }
84 84
85 85 }
86 86
87 87 private _getInstance() {
88 88 if (!this._instance)
89 89 throw new Error("The instance of the widget isn't created");
90 90 return this._instance;
91 91 }
92 92
93 93 protected _getDomNode() {
94 94 if (!this._instance)
95 95 throw new Error("The instance of the widget isn't created");
96 96 return this._instance.domNode;
97 97 }
98 98
99 99 /** Overrides default placeAt implementation. Calls placeAt of the
100 100 * widget and then starts it.
101 101 *
102 102 * @param refNode A node or id of the node where the widget should be placed.
103 103 * @param position A position relative to refNode.
104 104 */
105 105 placeAt(refNode: string | Node, position?: DojoNodePosition) {
106 106 this.ensureCreated();
107 107 const instance = this._getInstance();
108 108 if (typeof instance.placeAt === "function") {
109 109 instance.placeAt(refNode, position);
110 110
111 111 // fix the dojo startup behavior when the widget is placed
112 112 // directly to the document and doesn't have any enclosing widgets
113 113 const parentWidget = instance.domNode.parentNode ?
114 registry.getEnclosingWidget(instance.domNode.parentNode) : null
114 registry.getEnclosingWidget(instance.domNode.parentNode) : null;
115 115 if (!parentWidget && isInPage(instance.domNode) && typeof instance.startup === "function")
116 116 instance.startup();
117 117 } else {
118 118 // the widget doesn't have a placeAt method, strange but whatever
119 119 super.placeAt(refNode, position);
120 120 }
121 121 }
122 122
123 123 getWidgetInstance() {
124 124 this.ensureCreated();
125 125 return this._getInstance();
126 126 }
127 127
128 128 }
@@ -1,148 +1,148
1 1 import { IDestroyable } from "@implab/core-amd/interfaces";
2 2 import { isDestroyable } from "@implab/core-amd/safe";
3 3 import _WidgetBase = require("dijit/_WidgetBase");
4 4 import registry = require("dijit/registry");
5 5 import dom = require("dojo/dom-construct");
6 6
7 7 type _WidgetBaseConstructor = typeof _WidgetBase;
8 8
9 9 export type DojoNodePosition = "first" | "after" | "before" | "last" | "replace" | "only" | number;
10 10
11 11 export interface Rendition<TNode extends Node = Node> {
12 12 getDomNode(): TNode;
13 13
14 14 placeAt(refNode: string | Node, position?: DojoNodePosition): void;
15 15 }
16 16
17 17 /**
18 18 * @deprecated use Rendition
19 19 */
20 20 export type BuildContext<TNode extends Node = Node> = Rendition<TNode>;
21 21
22 22 export interface IRecursivelyDestroyable {
23 23 destroyRecursive(): void;
24 24 }
25 25
26 26 export function isNode(el: any): el is Node {
27 27 return el && el.nodeName && el.nodeType;
28 28 }
29 29
30 30 export function isElementNode(el: any): el is Element {
31 31 return isNode(el) && el.nodeType === 1;
32 32 }
33 33
34 34 export function isTextNode(el: any): el is Text {
35 35 return isNode(el) && el.nodeType === 3;
36 36 }
37 37
38 38 export function isProcessingInstructionNode(el: any): el is ProcessingInstruction {
39 39 return isNode(el) && el.nodeType === 7;
40 40 }
41 41
42 42 export function isCommentNode(el: any): el is Comment {
43 43 return isNode(el) && el.nodeType === 8;
44 44 }
45 45
46 46 export function isDocumentNode(el: any): el is Document {
47 47 return isNode(el) && el.nodeType === 9;
48 48 }
49 49
50 50 export function isDocumentTypeNode(el: any): el is DocumentType {
51 51 return isNode(el) && el.nodeType === 10;
52 52 }
53 53
54 54 export function isDocumentFragmentNode(el: any): el is DocumentFragment {
55 55 return isNode(el) && el.nodeType === 11;
56 56 }
57 57
58 58 export function isWidget(v: any): v is _WidgetBase {
59 59 return v && "domNode" in v;
60 60 }
61 61
62 62 export function isRendition(v: any): v is Rendition {
63 return typeof v === "object" && typeof v.getDomElement === "function";
63 return v && typeof v.getDomElement === "function";
64 64 }
65 65
66 66 /**
67 67 * @deprecated use isRendition
68 68 */
69 69 export const isBuildContext = isRendition;
70 70
71 71 export function isPlainObject(v: object) {
72 72 if (typeof v !== "object")
73 73 return false;
74 74
75 75 const vp = Object.getPrototypeOf(v);
76 76 return !vp || vp === Object.prototype;
77 77 }
78 78
79 79 export function isWidgetConstructor(v: any): v is _WidgetBaseConstructor {
80 80 return typeof v === "function" && v.prototype && (
81 81 "domNode" in v.prototype ||
82 82 "buildRendering" in v.prototype
83 83 );
84 84 }
85 85
86 86 /** Tests whether the specified node is placed in visible dom.
87 87 * @param {Node} node The node to test
88 88 */
89 89 export function isInPage(node: Node) {
90 90 return (node === document.body) ? false : document.body.contains(node);
91 91 }
92 92
93 93 export function isRecursivelyDestroyable(target: any): target is IRecursivelyDestroyable {
94 94 return target && typeof target.destroyRecursive === "function";
95 95 }
96 96
97 97
98 98 /** Destroys DOM Node with all contained widgets.
99 99 * If the specified node is the root node of a widget, then the
100 100 * widget will be destroyed.
101 101 *
102 102 * @param target DOM Node or widget to destroy
103 103 */
104 104 export function destroy(target: Node | IDestroyable | IRecursivelyDestroyable) {
105 105 if (isRecursivelyDestroyable(target)) {
106 106 target.destroyRecursive();
107 107 } else if (isDestroyable(target)) {
108 108 target.destroy();
109 109 } else if (isNode(target)) {
110 const self = registry.byNode(target);
111 if (self) {
112 self.destroyRecursive();
110 const w = isElementNode(target) ? registry.byNode(target) : undefined;
111 if (w) {
112 w.destroyRecursive();
113 113 } else {
114 114 registry.findWidgets(target).forEach(destroy);
115 115 dom.destroy(target);
116 116 }
117 117 }
118 118 }
119 119
120 120 /** Empties a content of the specified node and destroys all contained widgets.
121 121 *
122 122 * @param target DOM node to .
123 123 */
124 124 export function emptyNode(target: Node) {
125 125 registry.findWidgets(target).forEach(destroy);
126 126 dom.empty(target);
127 127 }
128 128
129 129 /** This function starts all widgets inside the DOM node if the target is a node
130 130 * or starts widget itself if the target is the widget. If the specified node
131 131 * associated with the widget that widget will be started.
132 132 *
133 133 * @param target DOM node to find and start widgets or the widget itself.
134 134 */
135 135 export function startupWidgets(target: Node | _WidgetBase, skipNode?: Node) {
136 136 if (isNode(target)) {
137 137 const w = isElementNode(target) ? registry.byNode(target) : undefined;
138 138 if (w) {
139 139 if (w.startup)
140 140 w.startup();
141 141 } else {
142 142 registry.findWidgets(target, skipNode).forEach(x => x.startup());
143 143 }
144 144 } else {
145 145 if(target.startup)
146 146 target.startup();
147 147 }
148 } No newline at end of file
148 }
@@ -1,13 +1,13
1 1 {
2 2 "extends": "../tsconfig",
3 3 "compilerOptions": {
4 4 "rootDir": "ts",
5 5 "rootDirs": [
6 6 "ts",
7 7 "typings"
8 8 ],
9 9 "types": [
10 "requirejs", "./typings", "dojo-typings"
10 "requirejs", "./typings", "@implab/dojo-typings"
11 11 ]
12 12 }
13 13 }
@@ -1,69 +1,68
1 1 /// <reference path="./css.d.ts"/>
2 /// <reference path="./dijit.d.ts"/>
3 2
4 3 declare namespace JSX {
5 4
6 5 interface DjxIntrinsicAttributes {
7 6 /** alias for className */
8 7 class: string;
9 8
10 9 /** specifies the name of the property in the widget where the the
11 10 * reference to the current object will be stored
12 11 */
13 12 "data-dojo-attach-point": string;
14 13
15 14 /** specifies handlers map for the events */
16 15 "data-dojo-attach-event": string;
17 16
18 17 /** @deprecated */
19 18 [attr: string]: any;
20 19 }
21 20
22 21 interface DjxIntrinsicElements {
23 22 }
24 23
25 24 type RecursivePartial<T> = T extends string | number | boolean | null | undefined | Function ?
26 25 T :
27 26 { [k in keyof T]?: RecursivePartial<T[k]> };
28 27
29 28 type MatchingMemberKeys<T, U> = {
30 29 [K in keyof T]: T[K] extends U ? K : never;
31 30 }[keyof T];
32 31 type NotMatchingMemberKeys<T, U> = {
33 32 [K in keyof T]: T[K] extends U ? never : K;
34 33 }[keyof T];
35 34
36 35 type ExtractMembers<T, U> = Pick<T, MatchingMemberKeys<T, U>>;
37 36
38 37 type ExcludeMembers<T, U> = Pick<T, NotMatchingMemberKeys<T, U>>;
39 38
40 39 type ElementAttrNames<E> = NotMatchingMemberKeys<E, (...args: any[]) => any>;
41 40
42 41 type ElementAttrType<E, K extends keyof any> = K extends keyof E ? RecursivePartial<E[K]> : string;
43 42
44 43
45 44 type ElementAttrNamesBlacklist = "children" | "getRootNode" | keyof EventTarget;
46 45
47 46 /** This type extracts keys of the specified parameter E by the following rule:
48 47 * 1. skips all ElementAttrNamesBlacklist
49 48 * 2. skips all methods except with the signature of event handlers
50 49 */
51 50 type AssignableElementAttrNames<E> = {
52 51 [K in keyof E]: K extends ElementAttrNamesBlacklist ? never :
53 52 ((evt: Event) => any) extends E[K] ? K :
54 53 E[K] extends ((...args: any[]) => any) ? never :
55 54 K;
56 55 }[keyof E];
57 56
58 57 type LaxElement<E extends object> =
59 58 Pick<E, AssignableElementAttrNames<E>> &
60 59 DjxIntrinsicAttributes;
61 60
62 61 type LaxIntrinsicElementsMap = {
63 62 [tag in keyof HTMLElementTagNameMap]: LaxElement<HTMLElementTagNameMap[tag]>
64 63 } & DjxIntrinsicElements;
65 64
66 65 type IntrinsicElements = {
67 66 [tag in keyof LaxIntrinsicElementsMap]: RecursivePartial<LaxIntrinsicElementsMap[tag]>;
68 67 }
69 68 }
@@ -1,10 +1,12
1 1 import { Baz } from "./mock/Baz";
2 2
3 // tslint:disable-next-line: no-console
3 4 console.log("Declare tests");
4 5
5 6 const baz = new Baz();
6 7
7 8 const data: string[] = [];
8 9 baz.writeHello(data);
9 10
11 // tslint:disable-next-line: no-console
10 12 console.log(data.join("\n"));
@@ -1,17 +1,16
1 1 import { test } from "./TestTraits";
2 2 import { delay } from "@implab/core-amd/safe";
3 3 import { assert } from "chai";
4 import css = require("@implab/djx/css!my.css");
5 4
6 5 test("simple", (ok, fail, log) => {
7 6 setTimeout(() => {
8 7 // end should be called after the last assertion
9 8 ok("async assert");
10 9 }, 100);
11 10 });
12 11
13 12 test("simple", async (log, fail) => {
14 13 await delay(0);
15 14
16 15 assert.ok(true); // everything is fine
17 16 });
@@ -1,50 +1,70
1 1 import { djbase, djclass, bind, prototype, AbstractConstructor } from "../declare";
2 2
3 3 import { DjxWidgetBase } from "../tsx/DjxWidgetBase";
4 import { createElement } from "../tsx";
4 import { createElement, on } from "../tsx";
5 5
6 6 interface MyWidgetAttrs {
7 7 title: string;
8 8
9 9 counter: number;
10 10 }
11 11
12 12 interface MyWidgetEvents {
13 "count-inc": Event;
13 "count-inc": Event & {
14 detail: number;
15 };
14 16
15 "count-dec": Event;
17 "count-dec": Event & {
18 detail: number;
19 };
16 20 }
17 21
18 22
19 23 @djclass
20 24 export class MyWidget extends djbase(DjxWidgetBase as AbstractConstructor<DjxWidgetBase<MyWidgetAttrs, MyWidgetEvents>>) {
21 25
22 26 @bind({ node: "titleNode", type: "innerHTML" })
23 27 title = "";
24 28
25 29 @prototype()
26 30 counter = 0;
27 31
28 32 render() {
29 33 const Frame = (props: any) => <div>{props.children}</div>;
30 34 return <div className="myWidget" onsubmit={e => this._onSubmit(e)} tabIndex={3} style={{ alignContent: "center", border: "1px solid" }} >
31 35 <h1 data-dojo-attach-point="titleNode"></h1>
32 36 <Frame>
33 37 <span class="up-button" onclick={e => this._onIncClick(e)}>[+]</span>
34 38 <span class="down-button" onclick={() => this._onDecClick()}>[-]</span>
35 39 </Frame>
36 40 </div>;
37 41 }
38 42
43 postCreate() {
44 super.postCreate();
45
46 this.on("click", () => {});
47 }
48
39 49 _onSubmit(e: Event) {
40
41 50 }
42 51
43 52 _onIncClick(e: MouseEvent) {
53 this.set("counter", this.counter + 1);
54
44 55 this.emit("count-inc", { bubbles: false });
45 56 }
46 57
47 58 _onDecClick() {
48 this.emit("count-dec", { bubbles: false });
59 this.emit("count-dec", { bubbles: false, detail: this.counter });
60 }
61
62 @on("count-inc")
63 _onCounterInc(evt: Event & { detail: number; x?: number; }) {
49 64 }
65
66 @on("click", "keydown")
67 protected _onClick(event: MouseEvent | KeyboardEvent) {
68
50 69 }
70 } No newline at end of file
@@ -1,13 +1,13
1 1 {
2 2 "extends": "../tsconfig",
3 3 "compilerOptions": {
4 4 //"rootDir": "ts",
5 5 "rootDirs": [
6 6 "ts",
7 7 "typings",
8 8 "../main/ts",
9 9 "../main/typings"
10 10 ],
11 "types": ["requirejs", "../main/typings", "dojo-typings"]
11 "types": ["requirejs", "../main/typings", "@implab/dojo-typings"]
12 12 }
13 13 } No newline at end of file
@@ -1,13 +1,15
1 1 {
2 2 "compilerOptions": {
3 3 "moduleResolution": "node",
4 4 "noEmitOnError": true,
5 5 "strict": true,
6 6 "types": [],
7 7 "experimentalDecorators": true,
8 8 "jsxFactory": "createElement",
9 "target": "ES5",
9 10 //"skipLibCheck": true,
10 11 "jsx": "react",
11 "lib": ["es5", "es2015.promise", "es2015.symbol", "es2015.iterable", "dom", "scripthost"]
12 "lib": ["es5", "es2015.promise", "es2015.symbol", "es2015.iterable", "dom", "scripthost"],
13 "noUnusedLocals": true
12 14 }
13 15 } No newline at end of file
@@ -1,18 +1,17
1 1 /*
2 2 * This settings file was generated by the Gradle 'init' task.
3 3 *
4 4 * The settings file is used to specify which projects to include in your build.
5 5 * In a single project build this file can be empty or even removed.
6 6 *
7 7 * Detailed information about configuring a multi-project build in Gradle can be found
8 8 * in the user guide at https://docs.gradle.org/3.5/userguide/multi_project_builds.html
9 9 */
10 10
11 11 // To declare projects as part of a multi-project build use the 'include' method
12 12
13 13 //include 'sub-project-name'
14 14
15 15 rootProject.name = 'implabjs-djx'
16 16
17 include 'djx'
18 include 'playground' No newline at end of file
17 include 'djx' No newline at end of file
1 NO CONTENT: file was removed
1 NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now