├── .eslintignore ├── .eslintrc ├── .gitignore ├── .jest.json ├── .prettierignore ├── .prettierrc.yaml ├── banner.png ├── fuse.ts ├── package.json ├── pnpm-lock.yaml ├── readme.md ├── src ├── DynamicApp.tsx ├── StaticApp.tsx ├── index.tsx ├── react │ ├── constants.ts │ ├── element.ts │ ├── fiber.ts │ ├── index.ts │ ├── react_class_component.ts │ ├── react_dom.ts │ ├── types.d.ts │ └── vdom.ts ├── style.css └── tsconfig.json └── ss.png /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | .cache/ 4 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "parserOptions": { 5 | "ecmaVersion": 6, 6 | "sourceType": "module", 7 | "ecmaFeatures": { 8 | "jsx": true 9 | } 10 | }, 11 | "plugins": ["@typescript-eslint"], 12 | "extends": [ 13 | "eslint:recommended", 14 | "plugin:@typescript-eslint/eslint-recommended", 15 | "plugin:@typescript-eslint/recommended" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .cache 4 | .DS_Store 5 | -------------------------------------------------------------------------------- /.jest.json: -------------------------------------------------------------------------------- 1 | { 2 | "preset": "ts-jest", 3 | "testEnvironment": "jsdom", 4 | "bail": 1, 5 | "testMatch": [ "**/tests/**/*.[jt]s?(x)"] 6 | } 7 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *.yaml 2 | *.json 3 | dist 4 | -------------------------------------------------------------------------------- /.prettierrc.yaml: -------------------------------------------------------------------------------- 1 | trailingComma: "es5" 2 | tabWidth: 2 3 | semi: false 4 | singleQuote: false 5 | -------------------------------------------------------------------------------- /banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vutran1710/WriteYourOwnReact/f420b72743f95ddf0d1a34f86ed72e9b16584d08/banner.png -------------------------------------------------------------------------------- /fuse.ts: -------------------------------------------------------------------------------- 1 | import { fusebox } from "fuse-box" 2 | 3 | const fuse = fusebox({ 4 | entry: "src/index.tsx", 5 | target: "browser", 6 | devServer: true, 7 | webIndex: true, 8 | stylesheet: { 9 | paths: ["src/"], 10 | }, 11 | compilerOptions: { 12 | tsConfig: "src/tsconfig.json", 13 | }, 14 | }) 15 | 16 | fuse.runDev() 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dom-experiment", 3 | "version": "1.0.0", 4 | "description": "trying stuffs with dom", 5 | "scripts": { 6 | "start": "ts-node fuse.ts", 7 | "pretty": "prettier --write .", 8 | "lint": "eslint . --fix", 9 | "test": "jest --config .jest.json --watchAll" 10 | }, 11 | "author": "vutr", 12 | "license": "MIT", 13 | "devDependencies": { 14 | "@types/jest": "^26.0.23", 15 | "@typescript-eslint/eslint-plugin": "^4.23.0", 16 | "@typescript-eslint/parser": "^4.23.0", 17 | "eslint": "^7.26.0", 18 | "fuse-box": "^4.0.1-next.4", 19 | "jest": "^26.6.3", 20 | "prettier": "^2.3.0", 21 | "ts-jest": "^26.5.6", 22 | "ts-node": "^9.1.1", 23 | "typescript": "^4.2.4" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | '@types/jest': ^26.0.23 5 | '@typescript-eslint/eslint-plugin': ^4.23.0 6 | '@typescript-eslint/parser': ^4.23.0 7 | eslint: ^7.26.0 8 | fuse-box: ^4.0.1-next.4 9 | jest: ^26.6.3 10 | prettier: ^2.3.0 11 | ts-jest: ^26.5.6 12 | ts-node: ^9.1.1 13 | typescript: ^4.2.4 14 | 15 | devDependencies: 16 | '@types/jest': 26.0.23 17 | '@typescript-eslint/eslint-plugin': 4.23.0_7cfaee78cda985ff9bc3d8b5cb92a136 18 | '@typescript-eslint/parser': 4.23.0_eslint@7.26.0+typescript@4.2.4 19 | eslint: 7.26.0 20 | fuse-box: 4.0.1-next.4 21 | jest: 26.6.3_ts-node@9.1.1 22 | prettier: 2.3.0 23 | ts-jest: 26.5.6_jest@26.6.3+typescript@4.2.4 24 | ts-node: 9.1.1_typescript@4.2.4 25 | typescript: 4.2.4 26 | 27 | packages: 28 | 29 | /@babel/code-frame/7.12.11: 30 | resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} 31 | dependencies: 32 | '@babel/highlight': 7.14.0 33 | dev: true 34 | 35 | /@babel/code-frame/7.12.13: 36 | resolution: {integrity: sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==} 37 | dependencies: 38 | '@babel/highlight': 7.14.0 39 | dev: true 40 | 41 | /@babel/compat-data/7.14.0: 42 | resolution: {integrity: sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==} 43 | dev: true 44 | 45 | /@babel/core/7.14.3: 46 | resolution: {integrity: sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==} 47 | engines: {node: '>=6.9.0'} 48 | dependencies: 49 | '@babel/code-frame': 7.12.13 50 | '@babel/generator': 7.14.3 51 | '@babel/helper-compilation-targets': 7.13.16_@babel+core@7.14.3 52 | '@babel/helper-module-transforms': 7.14.2 53 | '@babel/helpers': 7.14.0 54 | '@babel/parser': 7.14.3 55 | '@babel/template': 7.12.13 56 | '@babel/traverse': 7.14.2 57 | '@babel/types': 7.14.2 58 | convert-source-map: 1.7.0 59 | debug: 4.3.1 60 | gensync: 1.0.0-beta.2 61 | json5: 2.2.0 62 | semver: 6.3.0 63 | source-map: 0.5.7 64 | transitivePeerDependencies: 65 | - supports-color 66 | dev: true 67 | 68 | /@babel/generator/7.14.3: 69 | resolution: {integrity: sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==} 70 | dependencies: 71 | '@babel/types': 7.14.2 72 | jsesc: 2.5.2 73 | source-map: 0.5.7 74 | dev: true 75 | 76 | /@babel/helper-compilation-targets/7.13.16_@babel+core@7.14.3: 77 | resolution: {integrity: sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==} 78 | peerDependencies: 79 | '@babel/core': ^7.0.0 80 | dependencies: 81 | '@babel/compat-data': 7.14.0 82 | '@babel/core': 7.14.3 83 | '@babel/helper-validator-option': 7.12.17 84 | browserslist: 4.16.6 85 | semver: 6.3.0 86 | dev: true 87 | 88 | /@babel/helper-function-name/7.14.2: 89 | resolution: {integrity: sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==} 90 | dependencies: 91 | '@babel/helper-get-function-arity': 7.12.13 92 | '@babel/template': 7.12.13 93 | '@babel/types': 7.14.2 94 | dev: true 95 | 96 | /@babel/helper-get-function-arity/7.12.13: 97 | resolution: {integrity: sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==} 98 | dependencies: 99 | '@babel/types': 7.14.2 100 | dev: true 101 | 102 | /@babel/helper-member-expression-to-functions/7.13.12: 103 | resolution: {integrity: sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==} 104 | dependencies: 105 | '@babel/types': 7.14.2 106 | dev: true 107 | 108 | /@babel/helper-module-imports/7.13.12: 109 | resolution: {integrity: sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==} 110 | dependencies: 111 | '@babel/types': 7.14.2 112 | dev: true 113 | 114 | /@babel/helper-module-transforms/7.14.2: 115 | resolution: {integrity: sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==} 116 | dependencies: 117 | '@babel/helper-module-imports': 7.13.12 118 | '@babel/helper-replace-supers': 7.14.3 119 | '@babel/helper-simple-access': 7.13.12 120 | '@babel/helper-split-export-declaration': 7.12.13 121 | '@babel/helper-validator-identifier': 7.14.0 122 | '@babel/template': 7.12.13 123 | '@babel/traverse': 7.14.2 124 | '@babel/types': 7.14.2 125 | transitivePeerDependencies: 126 | - supports-color 127 | dev: true 128 | 129 | /@babel/helper-optimise-call-expression/7.12.13: 130 | resolution: {integrity: sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==} 131 | dependencies: 132 | '@babel/types': 7.14.2 133 | dev: true 134 | 135 | /@babel/helper-plugin-utils/7.13.0: 136 | resolution: {integrity: sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==} 137 | dev: true 138 | 139 | /@babel/helper-replace-supers/7.14.3: 140 | resolution: {integrity: sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA==} 141 | dependencies: 142 | '@babel/helper-member-expression-to-functions': 7.13.12 143 | '@babel/helper-optimise-call-expression': 7.12.13 144 | '@babel/traverse': 7.14.2 145 | '@babel/types': 7.14.2 146 | transitivePeerDependencies: 147 | - supports-color 148 | dev: true 149 | 150 | /@babel/helper-simple-access/7.13.12: 151 | resolution: {integrity: sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==} 152 | dependencies: 153 | '@babel/types': 7.14.2 154 | dev: true 155 | 156 | /@babel/helper-split-export-declaration/7.12.13: 157 | resolution: {integrity: sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==} 158 | dependencies: 159 | '@babel/types': 7.14.2 160 | dev: true 161 | 162 | /@babel/helper-validator-identifier/7.14.0: 163 | resolution: {integrity: sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==} 164 | dev: true 165 | 166 | /@babel/helper-validator-option/7.12.17: 167 | resolution: {integrity: sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==} 168 | dev: true 169 | 170 | /@babel/helpers/7.14.0: 171 | resolution: {integrity: sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==} 172 | dependencies: 173 | '@babel/template': 7.12.13 174 | '@babel/traverse': 7.14.2 175 | '@babel/types': 7.14.2 176 | transitivePeerDependencies: 177 | - supports-color 178 | dev: true 179 | 180 | /@babel/highlight/7.14.0: 181 | resolution: {integrity: sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==} 182 | dependencies: 183 | '@babel/helper-validator-identifier': 7.14.0 184 | chalk: 2.4.2 185 | js-tokens: 4.0.0 186 | dev: true 187 | 188 | /@babel/parser/7.14.3: 189 | resolution: {integrity: sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ==} 190 | engines: {node: '>=6.0.0'} 191 | hasBin: true 192 | dev: true 193 | 194 | /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.14.3: 195 | resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} 196 | peerDependencies: 197 | '@babel/core': ^7.0.0-0 198 | dependencies: 199 | '@babel/core': 7.14.3 200 | '@babel/helper-plugin-utils': 7.13.0 201 | dev: true 202 | 203 | /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.14.3: 204 | resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} 205 | peerDependencies: 206 | '@babel/core': ^7.0.0-0 207 | dependencies: 208 | '@babel/core': 7.14.3 209 | '@babel/helper-plugin-utils': 7.13.0 210 | dev: true 211 | 212 | /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.14.3: 213 | resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} 214 | peerDependencies: 215 | '@babel/core': ^7.0.0-0 216 | dependencies: 217 | '@babel/core': 7.14.3 218 | '@babel/helper-plugin-utils': 7.13.0 219 | dev: true 220 | 221 | /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.14.3: 222 | resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} 223 | peerDependencies: 224 | '@babel/core': ^7.0.0-0 225 | dependencies: 226 | '@babel/core': 7.14.3 227 | '@babel/helper-plugin-utils': 7.13.0 228 | dev: true 229 | 230 | /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.14.3: 231 | resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} 232 | peerDependencies: 233 | '@babel/core': ^7.0.0-0 234 | dependencies: 235 | '@babel/core': 7.14.3 236 | '@babel/helper-plugin-utils': 7.13.0 237 | dev: true 238 | 239 | /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.14.3: 240 | resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} 241 | peerDependencies: 242 | '@babel/core': ^7.0.0-0 243 | dependencies: 244 | '@babel/core': 7.14.3 245 | '@babel/helper-plugin-utils': 7.13.0 246 | dev: true 247 | 248 | /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.14.3: 249 | resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} 250 | peerDependencies: 251 | '@babel/core': ^7.0.0-0 252 | dependencies: 253 | '@babel/core': 7.14.3 254 | '@babel/helper-plugin-utils': 7.13.0 255 | dev: true 256 | 257 | /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.14.3: 258 | resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} 259 | peerDependencies: 260 | '@babel/core': ^7.0.0-0 261 | dependencies: 262 | '@babel/core': 7.14.3 263 | '@babel/helper-plugin-utils': 7.13.0 264 | dev: true 265 | 266 | /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.14.3: 267 | resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} 268 | peerDependencies: 269 | '@babel/core': ^7.0.0-0 270 | dependencies: 271 | '@babel/core': 7.14.3 272 | '@babel/helper-plugin-utils': 7.13.0 273 | dev: true 274 | 275 | /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.14.3: 276 | resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} 277 | peerDependencies: 278 | '@babel/core': ^7.0.0-0 279 | dependencies: 280 | '@babel/core': 7.14.3 281 | '@babel/helper-plugin-utils': 7.13.0 282 | dev: true 283 | 284 | /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.14.3: 285 | resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} 286 | peerDependencies: 287 | '@babel/core': ^7.0.0-0 288 | dependencies: 289 | '@babel/core': 7.14.3 290 | '@babel/helper-plugin-utils': 7.13.0 291 | dev: true 292 | 293 | /@babel/plugin-syntax-top-level-await/7.12.13_@babel+core@7.14.3: 294 | resolution: {integrity: sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==} 295 | peerDependencies: 296 | '@babel/core': ^7.0.0-0 297 | dependencies: 298 | '@babel/core': 7.14.3 299 | '@babel/helper-plugin-utils': 7.13.0 300 | dev: true 301 | 302 | /@babel/template/7.12.13: 303 | resolution: {integrity: sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==} 304 | dependencies: 305 | '@babel/code-frame': 7.12.13 306 | '@babel/parser': 7.14.3 307 | '@babel/types': 7.14.2 308 | dev: true 309 | 310 | /@babel/traverse/7.14.2: 311 | resolution: {integrity: sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==} 312 | dependencies: 313 | '@babel/code-frame': 7.12.13 314 | '@babel/generator': 7.14.3 315 | '@babel/helper-function-name': 7.14.2 316 | '@babel/helper-split-export-declaration': 7.12.13 317 | '@babel/parser': 7.14.3 318 | '@babel/types': 7.14.2 319 | debug: 4.3.1 320 | globals: 11.12.0 321 | transitivePeerDependencies: 322 | - supports-color 323 | dev: true 324 | 325 | /@babel/types/7.14.2: 326 | resolution: {integrity: sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw==} 327 | dependencies: 328 | '@babel/helper-validator-identifier': 7.14.0 329 | to-fast-properties: 2.0.0 330 | dev: true 331 | 332 | /@bcoe/v8-coverage/0.2.3: 333 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 334 | dev: true 335 | 336 | /@cnakazawa/watch/1.0.4: 337 | resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} 338 | engines: {node: '>=0.1.95'} 339 | hasBin: true 340 | dependencies: 341 | exec-sh: 0.3.6 342 | minimist: 1.2.5 343 | dev: true 344 | 345 | /@eslint/eslintrc/0.4.1: 346 | resolution: {integrity: sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==} 347 | engines: {node: ^10.12.0 || >=12.0.0} 348 | dependencies: 349 | ajv: 6.12.6 350 | debug: 4.3.1 351 | espree: 7.3.1 352 | globals: 12.4.0 353 | ignore: 4.0.6 354 | import-fresh: 3.3.0 355 | js-yaml: 3.14.1 356 | minimatch: 3.0.4 357 | strip-json-comments: 3.1.1 358 | transitivePeerDependencies: 359 | - supports-color 360 | dev: true 361 | 362 | /@istanbuljs/load-nyc-config/1.1.0: 363 | resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} 364 | engines: {node: '>=8'} 365 | dependencies: 366 | camelcase: 5.3.1 367 | find-up: 4.1.0 368 | get-package-type: 0.1.0 369 | js-yaml: 3.14.1 370 | resolve-from: 5.0.0 371 | dev: true 372 | 373 | /@istanbuljs/schema/0.1.3: 374 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 375 | engines: {node: '>=8'} 376 | dev: true 377 | 378 | /@jest/console/26.6.2: 379 | resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==} 380 | engines: {node: '>= 10.14.2'} 381 | dependencies: 382 | '@jest/types': 26.6.2 383 | '@types/node': 15.3.0 384 | chalk: 4.1.1 385 | jest-message-util: 26.6.2 386 | jest-util: 26.6.2 387 | slash: 3.0.0 388 | dev: true 389 | 390 | /@jest/core/26.6.3_ts-node@9.1.1: 391 | resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} 392 | engines: {node: '>= 10.14.2'} 393 | dependencies: 394 | '@jest/console': 26.6.2 395 | '@jest/reporters': 26.6.2 396 | '@jest/test-result': 26.6.2 397 | '@jest/transform': 26.6.2 398 | '@jest/types': 26.6.2 399 | '@types/node': 15.3.0 400 | ansi-escapes: 4.3.2 401 | chalk: 4.1.1 402 | exit: 0.1.2 403 | graceful-fs: 4.2.6 404 | jest-changed-files: 26.6.2 405 | jest-config: 26.6.3_ts-node@9.1.1 406 | jest-haste-map: 26.6.2 407 | jest-message-util: 26.6.2 408 | jest-regex-util: 26.0.0 409 | jest-resolve: 26.6.2 410 | jest-resolve-dependencies: 26.6.3 411 | jest-runner: 26.6.3_ts-node@9.1.1 412 | jest-runtime: 26.6.3_ts-node@9.1.1 413 | jest-snapshot: 26.6.2 414 | jest-util: 26.6.2 415 | jest-validate: 26.6.2 416 | jest-watcher: 26.6.2 417 | micromatch: 4.0.4 418 | p-each-series: 2.2.0 419 | rimraf: 3.0.2 420 | slash: 3.0.0 421 | strip-ansi: 6.0.0 422 | transitivePeerDependencies: 423 | - bufferutil 424 | - canvas 425 | - supports-color 426 | - ts-node 427 | - utf-8-validate 428 | dev: true 429 | 430 | /@jest/environment/26.6.2: 431 | resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==} 432 | engines: {node: '>= 10.14.2'} 433 | dependencies: 434 | '@jest/fake-timers': 26.6.2 435 | '@jest/types': 26.6.2 436 | '@types/node': 15.3.0 437 | jest-mock: 26.6.2 438 | dev: true 439 | 440 | /@jest/fake-timers/26.6.2: 441 | resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==} 442 | engines: {node: '>= 10.14.2'} 443 | dependencies: 444 | '@jest/types': 26.6.2 445 | '@sinonjs/fake-timers': 6.0.1 446 | '@types/node': 15.3.0 447 | jest-message-util: 26.6.2 448 | jest-mock: 26.6.2 449 | jest-util: 26.6.2 450 | dev: true 451 | 452 | /@jest/globals/26.6.2: 453 | resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} 454 | engines: {node: '>= 10.14.2'} 455 | dependencies: 456 | '@jest/environment': 26.6.2 457 | '@jest/types': 26.6.2 458 | expect: 26.6.2 459 | dev: true 460 | 461 | /@jest/reporters/26.6.2: 462 | resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} 463 | engines: {node: '>= 10.14.2'} 464 | dependencies: 465 | '@bcoe/v8-coverage': 0.2.3 466 | '@jest/console': 26.6.2 467 | '@jest/test-result': 26.6.2 468 | '@jest/transform': 26.6.2 469 | '@jest/types': 26.6.2 470 | chalk: 4.1.1 471 | collect-v8-coverage: 1.0.1 472 | exit: 0.1.2 473 | glob: 7.1.7 474 | graceful-fs: 4.2.6 475 | istanbul-lib-coverage: 3.0.0 476 | istanbul-lib-instrument: 4.0.3 477 | istanbul-lib-report: 3.0.0 478 | istanbul-lib-source-maps: 4.0.0 479 | istanbul-reports: 3.0.2 480 | jest-haste-map: 26.6.2 481 | jest-resolve: 26.6.2 482 | jest-util: 26.6.2 483 | jest-worker: 26.6.2 484 | slash: 3.0.0 485 | source-map: 0.6.1 486 | string-length: 4.0.2 487 | terminal-link: 2.1.1 488 | v8-to-istanbul: 7.1.2 489 | optionalDependencies: 490 | node-notifier: 8.0.2 491 | transitivePeerDependencies: 492 | - supports-color 493 | dev: true 494 | 495 | /@jest/source-map/26.6.2: 496 | resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==} 497 | engines: {node: '>= 10.14.2'} 498 | dependencies: 499 | callsites: 3.1.0 500 | graceful-fs: 4.2.6 501 | source-map: 0.6.1 502 | dev: true 503 | 504 | /@jest/test-result/26.6.2: 505 | resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==} 506 | engines: {node: '>= 10.14.2'} 507 | dependencies: 508 | '@jest/console': 26.6.2 509 | '@jest/types': 26.6.2 510 | '@types/istanbul-lib-coverage': 2.0.3 511 | collect-v8-coverage: 1.0.1 512 | dev: true 513 | 514 | /@jest/test-sequencer/26.6.3_ts-node@9.1.1: 515 | resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} 516 | engines: {node: '>= 10.14.2'} 517 | dependencies: 518 | '@jest/test-result': 26.6.2 519 | graceful-fs: 4.2.6 520 | jest-haste-map: 26.6.2 521 | jest-runner: 26.6.3_ts-node@9.1.1 522 | jest-runtime: 26.6.3_ts-node@9.1.1 523 | transitivePeerDependencies: 524 | - bufferutil 525 | - canvas 526 | - supports-color 527 | - ts-node 528 | - utf-8-validate 529 | dev: true 530 | 531 | /@jest/transform/26.6.2: 532 | resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} 533 | engines: {node: '>= 10.14.2'} 534 | dependencies: 535 | '@babel/core': 7.14.3 536 | '@jest/types': 26.6.2 537 | babel-plugin-istanbul: 6.0.0 538 | chalk: 4.1.1 539 | convert-source-map: 1.7.0 540 | fast-json-stable-stringify: 2.1.0 541 | graceful-fs: 4.2.6 542 | jest-haste-map: 26.6.2 543 | jest-regex-util: 26.0.0 544 | jest-util: 26.6.2 545 | micromatch: 4.0.4 546 | pirates: 4.0.1 547 | slash: 3.0.0 548 | source-map: 0.6.1 549 | write-file-atomic: 3.0.3 550 | transitivePeerDependencies: 551 | - supports-color 552 | dev: true 553 | 554 | /@jest/types/26.6.2: 555 | resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} 556 | engines: {node: '>= 10.14.2'} 557 | dependencies: 558 | '@types/istanbul-lib-coverage': 2.0.3 559 | '@types/istanbul-reports': 3.0.0 560 | '@types/node': 15.3.0 561 | '@types/yargs': 15.0.13 562 | chalk: 4.1.1 563 | dev: true 564 | 565 | /@nodelib/fs.scandir/2.1.4: 566 | resolution: {integrity: sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==} 567 | engines: {node: '>= 8'} 568 | dependencies: 569 | '@nodelib/fs.stat': 2.0.4 570 | run-parallel: 1.2.0 571 | dev: true 572 | 573 | /@nodelib/fs.stat/2.0.4: 574 | resolution: {integrity: sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==} 575 | engines: {node: '>= 8'} 576 | dev: true 577 | 578 | /@nodelib/fs.walk/1.2.6: 579 | resolution: {integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==} 580 | engines: {node: '>= 8'} 581 | dependencies: 582 | '@nodelib/fs.scandir': 2.1.4 583 | fastq: 1.11.0 584 | dev: true 585 | 586 | /@sinonjs/commons/1.8.3: 587 | resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} 588 | dependencies: 589 | type-detect: 4.0.8 590 | dev: true 591 | 592 | /@sinonjs/fake-timers/6.0.1: 593 | resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} 594 | dependencies: 595 | '@sinonjs/commons': 1.8.3 596 | dev: true 597 | 598 | /@types/babel__core/7.1.14: 599 | resolution: {integrity: sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==} 600 | dependencies: 601 | '@babel/parser': 7.14.3 602 | '@babel/types': 7.14.2 603 | '@types/babel__generator': 7.6.2 604 | '@types/babel__template': 7.4.0 605 | '@types/babel__traverse': 7.11.1 606 | dev: true 607 | 608 | /@types/babel__generator/7.6.2: 609 | resolution: {integrity: sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==} 610 | dependencies: 611 | '@babel/types': 7.14.2 612 | dev: true 613 | 614 | /@types/babel__template/7.4.0: 615 | resolution: {integrity: sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==} 616 | dependencies: 617 | '@babel/parser': 7.14.3 618 | '@babel/types': 7.14.2 619 | dev: true 620 | 621 | /@types/babel__traverse/7.11.1: 622 | resolution: {integrity: sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==} 623 | dependencies: 624 | '@babel/types': 7.14.2 625 | dev: true 626 | 627 | /@types/graceful-fs/4.1.5: 628 | resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} 629 | dependencies: 630 | '@types/node': 15.3.0 631 | dev: true 632 | 633 | /@types/http-proxy/1.17.5: 634 | resolution: {integrity: sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==} 635 | dependencies: 636 | '@types/node': 15.0.3 637 | dev: true 638 | 639 | /@types/istanbul-lib-coverage/2.0.3: 640 | resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} 641 | dev: true 642 | 643 | /@types/istanbul-lib-report/3.0.0: 644 | resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} 645 | dependencies: 646 | '@types/istanbul-lib-coverage': 2.0.3 647 | dev: true 648 | 649 | /@types/istanbul-reports/3.0.0: 650 | resolution: {integrity: sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==} 651 | dependencies: 652 | '@types/istanbul-lib-report': 3.0.0 653 | dev: true 654 | 655 | /@types/jest/26.0.23: 656 | resolution: {integrity: sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==} 657 | dependencies: 658 | jest-diff: 26.6.2 659 | pretty-format: 26.6.2 660 | dev: true 661 | 662 | /@types/json-schema/7.0.7: 663 | resolution: {integrity: sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==} 664 | dev: true 665 | 666 | /@types/node/15.0.3: 667 | resolution: {integrity: sha512-/WbxFeBU+0F79z9RdEOXH4CsDga+ibi5M8uEYr91u3CkT/pdWcV8MCook+4wDPnZBexRdwWS+PiVZ2xJviAzcQ==} 668 | dev: true 669 | 670 | /@types/node/15.3.0: 671 | resolution: {integrity: sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ==} 672 | dev: true 673 | 674 | /@types/normalize-package-data/2.4.0: 675 | resolution: {integrity: sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==} 676 | dev: true 677 | 678 | /@types/prettier/2.2.3: 679 | resolution: {integrity: sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==} 680 | dev: true 681 | 682 | /@types/stack-utils/2.0.0: 683 | resolution: {integrity: sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==} 684 | dev: true 685 | 686 | /@types/yargs-parser/20.2.0: 687 | resolution: {integrity: sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==} 688 | dev: true 689 | 690 | /@types/yargs/15.0.13: 691 | resolution: {integrity: sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==} 692 | dependencies: 693 | '@types/yargs-parser': 20.2.0 694 | dev: true 695 | 696 | /@typescript-eslint/eslint-plugin/4.23.0_7cfaee78cda985ff9bc3d8b5cb92a136: 697 | resolution: {integrity: sha512-tGK1y3KIvdsQEEgq6xNn1DjiFJtl+wn8JJQiETtCbdQxw1vzjXyAaIkEmO2l6Nq24iy3uZBMFQjZ6ECf1QdgGw==} 698 | engines: {node: ^10.12.0 || >=12.0.0} 699 | peerDependencies: 700 | '@typescript-eslint/parser': ^4.0.0 701 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 702 | typescript: '*' 703 | peerDependenciesMeta: 704 | typescript: 705 | optional: true 706 | dependencies: 707 | '@typescript-eslint/experimental-utils': 4.23.0_eslint@7.26.0+typescript@4.2.4 708 | '@typescript-eslint/parser': 4.23.0_eslint@7.26.0+typescript@4.2.4 709 | '@typescript-eslint/scope-manager': 4.23.0 710 | debug: 4.3.1 711 | eslint: 7.26.0 712 | functional-red-black-tree: 1.0.1 713 | lodash: 4.17.21 714 | regexpp: 3.1.0 715 | semver: 7.3.5 716 | tsutils: 3.21.0_typescript@4.2.4 717 | typescript: 4.2.4 718 | transitivePeerDependencies: 719 | - supports-color 720 | dev: true 721 | 722 | /@typescript-eslint/experimental-utils/4.23.0_eslint@7.26.0+typescript@4.2.4: 723 | resolution: {integrity: sha512-WAFNiTDnQfrF3Z2fQ05nmCgPsO5o790vOhmWKXbbYQTO9erE1/YsFot5/LnOUizLzU2eeuz6+U/81KV5/hFTGA==} 724 | engines: {node: ^10.12.0 || >=12.0.0} 725 | peerDependencies: 726 | eslint: '*' 727 | dependencies: 728 | '@types/json-schema': 7.0.7 729 | '@typescript-eslint/scope-manager': 4.23.0 730 | '@typescript-eslint/types': 4.23.0 731 | '@typescript-eslint/typescript-estree': 4.23.0_typescript@4.2.4 732 | eslint: 7.26.0 733 | eslint-scope: 5.1.1 734 | eslint-utils: 2.1.0 735 | transitivePeerDependencies: 736 | - supports-color 737 | - typescript 738 | dev: true 739 | 740 | /@typescript-eslint/parser/4.23.0_eslint@7.26.0+typescript@4.2.4: 741 | resolution: {integrity: sha512-wsvjksHBMOqySy/Pi2Q6UuIuHYbgAMwLczRl4YanEPKW5KVxI9ZzDYh3B5DtcZPQTGRWFJrfcbJ6L01Leybwug==} 742 | engines: {node: ^10.12.0 || >=12.0.0} 743 | peerDependencies: 744 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 745 | typescript: '*' 746 | peerDependenciesMeta: 747 | typescript: 748 | optional: true 749 | dependencies: 750 | '@typescript-eslint/scope-manager': 4.23.0 751 | '@typescript-eslint/types': 4.23.0 752 | '@typescript-eslint/typescript-estree': 4.23.0_typescript@4.2.4 753 | debug: 4.3.1 754 | eslint: 7.26.0 755 | typescript: 4.2.4 756 | transitivePeerDependencies: 757 | - supports-color 758 | dev: true 759 | 760 | /@typescript-eslint/scope-manager/4.23.0: 761 | resolution: {integrity: sha512-ZZ21PCFxPhI3n0wuqEJK9omkw51wi2bmeKJvlRZPH5YFkcawKOuRMQMnI8mH6Vo0/DoHSeZJnHiIx84LmVQY+w==} 762 | engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} 763 | dependencies: 764 | '@typescript-eslint/types': 4.23.0 765 | '@typescript-eslint/visitor-keys': 4.23.0 766 | dev: true 767 | 768 | /@typescript-eslint/types/4.23.0: 769 | resolution: {integrity: sha512-oqkNWyG2SLS7uTWLZf6Sr7Dm02gA5yxiz1RP87tvsmDsguVATdpVguHr4HoGOcFOpCvx9vtCSCyQUGfzq28YCw==} 770 | engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} 771 | dev: true 772 | 773 | /@typescript-eslint/typescript-estree/4.23.0_typescript@4.2.4: 774 | resolution: {integrity: sha512-5Sty6zPEVZF5fbvrZczfmLCOcby3sfrSPu30qKoY1U3mca5/jvU5cwsPb/CO6Q3ByRjixTMIVsDkqwIxCf/dMw==} 775 | engines: {node: ^10.12.0 || >=12.0.0} 776 | peerDependencies: 777 | typescript: '*' 778 | peerDependenciesMeta: 779 | typescript: 780 | optional: true 781 | dependencies: 782 | '@typescript-eslint/types': 4.23.0 783 | '@typescript-eslint/visitor-keys': 4.23.0 784 | debug: 4.3.1 785 | globby: 11.0.3 786 | is-glob: 4.0.1 787 | semver: 7.3.5 788 | tsutils: 3.21.0_typescript@4.2.4 789 | typescript: 4.2.4 790 | transitivePeerDependencies: 791 | - supports-color 792 | dev: true 793 | 794 | /@typescript-eslint/visitor-keys/4.23.0: 795 | resolution: {integrity: sha512-5PNe5cmX9pSifit0H+nPoQBXdbNzi5tOEec+3riK+ku4e3er37pKxMKDH5Ct5Y4fhWxcD4spnlYjxi9vXbSpwg==} 796 | engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} 797 | dependencies: 798 | '@typescript-eslint/types': 4.23.0 799 | eslint-visitor-keys: 2.1.0 800 | dev: true 801 | 802 | /abab/2.0.5: 803 | resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==} 804 | dev: true 805 | 806 | /accepts/1.3.7: 807 | resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==} 808 | engines: {node: '>= 0.6'} 809 | dependencies: 810 | mime-types: 2.1.30 811 | negotiator: 0.6.2 812 | dev: true 813 | 814 | /acorn-globals/6.0.0: 815 | resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} 816 | dependencies: 817 | acorn: 7.4.1 818 | acorn-walk: 7.2.0 819 | dev: true 820 | 821 | /acorn-jsx/5.3.1_acorn@7.4.1: 822 | resolution: {integrity: sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==} 823 | peerDependencies: 824 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 825 | dependencies: 826 | acorn: 7.4.1 827 | dev: true 828 | 829 | /acorn-walk/7.2.0: 830 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} 831 | engines: {node: '>=0.4.0'} 832 | dev: true 833 | 834 | /acorn/7.4.1: 835 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 836 | engines: {node: '>=0.4.0'} 837 | hasBin: true 838 | dev: true 839 | 840 | /acorn/8.2.4: 841 | resolution: {integrity: sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==} 842 | engines: {node: '>=0.4.0'} 843 | hasBin: true 844 | dev: true 845 | 846 | /ajv/6.12.6: 847 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 848 | dependencies: 849 | fast-deep-equal: 3.1.3 850 | fast-json-stable-stringify: 2.1.0 851 | json-schema-traverse: 0.4.1 852 | uri-js: 4.4.1 853 | dev: true 854 | 855 | /ajv/8.4.0: 856 | resolution: {integrity: sha512-7QD2l6+KBSLwf+7MuYocbWvRPdOu63/trReTLu2KFwkgctnub1auoF+Y1WYcm09CTM7quuscrzqmASaLHC/K4Q==} 857 | dependencies: 858 | fast-deep-equal: 3.1.3 859 | json-schema-traverse: 1.0.0 860 | require-from-string: 2.0.2 861 | uri-js: 4.4.1 862 | dev: true 863 | 864 | /ansi-colors/4.1.1: 865 | resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} 866 | engines: {node: '>=6'} 867 | dev: true 868 | 869 | /ansi-escapes/4.3.2: 870 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 871 | engines: {node: '>=8'} 872 | dependencies: 873 | type-fest: 0.21.3 874 | dev: true 875 | 876 | /ansi-regex/5.0.0: 877 | resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} 878 | engines: {node: '>=8'} 879 | dev: true 880 | 881 | /ansi-styles/3.2.1: 882 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 883 | engines: {node: '>=4'} 884 | dependencies: 885 | color-convert: 1.9.3 886 | dev: true 887 | 888 | /ansi-styles/4.3.0: 889 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 890 | engines: {node: '>=8'} 891 | dependencies: 892 | color-convert: 2.0.1 893 | dev: true 894 | 895 | /anymatch/2.0.0: 896 | resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} 897 | dependencies: 898 | micromatch: 3.1.10 899 | normalize-path: 2.1.1 900 | dev: true 901 | 902 | /anymatch/3.1.2: 903 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 904 | engines: {node: '>= 8'} 905 | dependencies: 906 | normalize-path: 3.0.0 907 | picomatch: 2.2.3 908 | dev: true 909 | 910 | /app-root-path/3.0.0: 911 | resolution: {integrity: sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==} 912 | engines: {node: '>= 6.0.0'} 913 | dev: true 914 | 915 | /arg/4.1.3: 916 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 917 | dev: true 918 | 919 | /argparse/1.0.10: 920 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 921 | dependencies: 922 | sprintf-js: 1.0.3 923 | dev: true 924 | 925 | /arr-diff/4.0.0: 926 | resolution: {integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=} 927 | engines: {node: '>=0.10.0'} 928 | dev: true 929 | 930 | /arr-flatten/1.1.0: 931 | resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} 932 | engines: {node: '>=0.10.0'} 933 | dev: true 934 | 935 | /arr-union/3.1.0: 936 | resolution: {integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=} 937 | engines: {node: '>=0.10.0'} 938 | dev: true 939 | 940 | /array-flatten/1.1.1: 941 | resolution: {integrity: sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=} 942 | dev: true 943 | 944 | /array-timsort/1.0.3: 945 | resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==} 946 | dev: true 947 | 948 | /array-union/2.1.0: 949 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 950 | engines: {node: '>=8'} 951 | dev: true 952 | 953 | /array-unique/0.3.2: 954 | resolution: {integrity: sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=} 955 | engines: {node: '>=0.10.0'} 956 | dev: true 957 | 958 | /asn1/0.2.4: 959 | resolution: {integrity: sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==} 960 | dependencies: 961 | safer-buffer: 2.1.2 962 | dev: true 963 | 964 | /assert-plus/1.0.0: 965 | resolution: {integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=} 966 | engines: {node: '>=0.8'} 967 | dev: true 968 | 969 | /assign-symbols/1.0.0: 970 | resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=} 971 | engines: {node: '>=0.10.0'} 972 | dev: true 973 | 974 | /astral-regex/2.0.0: 975 | resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} 976 | engines: {node: '>=8'} 977 | dev: true 978 | 979 | /astring/1.7.4: 980 | resolution: {integrity: sha512-WiVqDJV0AayUUH65FfUrbnBO4KD10854cyU49lK30+2n/lEkJDRqBKj/2fYGhZSD3uIt1H1VfW/pQtO07kR2Xg==} 981 | hasBin: true 982 | dev: true 983 | 984 | /asynckit/0.4.0: 985 | resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} 986 | dev: true 987 | 988 | /at-least-node/1.0.0: 989 | resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} 990 | engines: {node: '>= 4.0.0'} 991 | dev: true 992 | 993 | /atob/2.1.2: 994 | resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} 995 | engines: {node: '>= 4.5.0'} 996 | hasBin: true 997 | dev: true 998 | 999 | /aws-sign2/0.7.0: 1000 | resolution: {integrity: sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=} 1001 | dev: true 1002 | 1003 | /aws4/1.11.0: 1004 | resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==} 1005 | dev: true 1006 | 1007 | /babel-jest/26.6.3_@babel+core@7.14.3: 1008 | resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} 1009 | engines: {node: '>= 10.14.2'} 1010 | peerDependencies: 1011 | '@babel/core': ^7.0.0 1012 | dependencies: 1013 | '@babel/core': 7.14.3 1014 | '@jest/transform': 26.6.2 1015 | '@jest/types': 26.6.2 1016 | '@types/babel__core': 7.1.14 1017 | babel-plugin-istanbul: 6.0.0 1018 | babel-preset-jest: 26.6.2_@babel+core@7.14.3 1019 | chalk: 4.1.1 1020 | graceful-fs: 4.2.6 1021 | slash: 3.0.0 1022 | transitivePeerDependencies: 1023 | - supports-color 1024 | dev: true 1025 | 1026 | /babel-plugin-istanbul/6.0.0: 1027 | resolution: {integrity: sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==} 1028 | engines: {node: '>=8'} 1029 | dependencies: 1030 | '@babel/helper-plugin-utils': 7.13.0 1031 | '@istanbuljs/load-nyc-config': 1.1.0 1032 | '@istanbuljs/schema': 0.1.3 1033 | istanbul-lib-instrument: 4.0.3 1034 | test-exclude: 6.0.0 1035 | transitivePeerDependencies: 1036 | - supports-color 1037 | dev: true 1038 | 1039 | /babel-plugin-jest-hoist/26.6.2: 1040 | resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} 1041 | engines: {node: '>= 10.14.2'} 1042 | dependencies: 1043 | '@babel/template': 7.12.13 1044 | '@babel/types': 7.14.2 1045 | '@types/babel__core': 7.1.14 1046 | '@types/babel__traverse': 7.11.1 1047 | dev: true 1048 | 1049 | /babel-preset-current-node-syntax/1.0.1_@babel+core@7.14.3: 1050 | resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} 1051 | peerDependencies: 1052 | '@babel/core': ^7.0.0 1053 | dependencies: 1054 | '@babel/core': 7.14.3 1055 | '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.14.3 1056 | '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.14.3 1057 | '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.14.3 1058 | '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.14.3 1059 | '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.14.3 1060 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.14.3 1061 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.14.3 1062 | '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.14.3 1063 | '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.14.3 1064 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.14.3 1065 | '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.14.3 1066 | '@babel/plugin-syntax-top-level-await': 7.12.13_@babel+core@7.14.3 1067 | dev: true 1068 | 1069 | /babel-preset-jest/26.6.2_@babel+core@7.14.3: 1070 | resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} 1071 | engines: {node: '>= 10.14.2'} 1072 | peerDependencies: 1073 | '@babel/core': ^7.0.0 1074 | dependencies: 1075 | '@babel/core': 7.14.3 1076 | babel-plugin-jest-hoist: 26.6.2 1077 | babel-preset-current-node-syntax: 1.0.1_@babel+core@7.14.3 1078 | dev: true 1079 | 1080 | /balanced-match/1.0.2: 1081 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1082 | dev: true 1083 | 1084 | /base/0.11.2: 1085 | resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} 1086 | engines: {node: '>=0.10.0'} 1087 | dependencies: 1088 | cache-base: 1.0.1 1089 | class-utils: 0.3.6 1090 | component-emitter: 1.3.0 1091 | define-property: 1.0.0 1092 | isobject: 3.0.1 1093 | mixin-deep: 1.3.2 1094 | pascalcase: 0.1.1 1095 | dev: true 1096 | 1097 | /base64-js/1.5.1: 1098 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 1099 | dev: true 1100 | 1101 | /bcrypt-pbkdf/1.0.2: 1102 | resolution: {integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=} 1103 | dependencies: 1104 | tweetnacl: 0.14.5 1105 | dev: true 1106 | 1107 | /binary-extensions/2.2.0: 1108 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 1109 | engines: {node: '>=8'} 1110 | dev: true 1111 | 1112 | /body-parser/1.19.0: 1113 | resolution: {integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==} 1114 | engines: {node: '>= 0.8'} 1115 | dependencies: 1116 | bytes: 3.1.0 1117 | content-type: 1.0.4 1118 | debug: 2.6.9 1119 | depd: 1.1.2 1120 | http-errors: 1.7.2 1121 | iconv-lite: 0.4.24 1122 | on-finished: 2.3.0 1123 | qs: 6.7.0 1124 | raw-body: 2.4.0 1125 | type-is: 1.6.18 1126 | dev: true 1127 | 1128 | /brace-expansion/1.1.11: 1129 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1130 | dependencies: 1131 | balanced-match: 1.0.2 1132 | concat-map: 0.0.1 1133 | dev: true 1134 | 1135 | /braces/2.3.2: 1136 | resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} 1137 | engines: {node: '>=0.10.0'} 1138 | dependencies: 1139 | arr-flatten: 1.1.0 1140 | array-unique: 0.3.2 1141 | extend-shallow: 2.0.1 1142 | fill-range: 4.0.0 1143 | isobject: 3.0.1 1144 | repeat-element: 1.1.4 1145 | snapdragon: 0.8.2 1146 | snapdragon-node: 2.1.1 1147 | split-string: 3.1.0 1148 | to-regex: 3.0.2 1149 | dev: true 1150 | 1151 | /braces/3.0.2: 1152 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1153 | engines: {node: '>=8'} 1154 | dependencies: 1155 | fill-range: 7.0.1 1156 | dev: true 1157 | 1158 | /browser-process-hrtime/1.0.0: 1159 | resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} 1160 | dev: true 1161 | 1162 | /browserslist/4.16.6: 1163 | resolution: {integrity: sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==} 1164 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1165 | hasBin: true 1166 | dependencies: 1167 | caniuse-lite: 1.0.30001228 1168 | colorette: 1.2.2 1169 | electron-to-chromium: 1.3.730 1170 | escalade: 3.1.1 1171 | node-releases: 1.1.72 1172 | dev: true 1173 | 1174 | /bs-logger/0.2.6: 1175 | resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} 1176 | engines: {node: '>= 6'} 1177 | dependencies: 1178 | fast-json-stable-stringify: 2.1.0 1179 | dev: true 1180 | 1181 | /bser/2.1.1: 1182 | resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} 1183 | dependencies: 1184 | node-int64: 0.4.0 1185 | dev: true 1186 | 1187 | /buffer-from/1.1.1: 1188 | resolution: {integrity: sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==} 1189 | dev: true 1190 | 1191 | /bytes/3.1.0: 1192 | resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==} 1193 | engines: {node: '>= 0.8'} 1194 | dev: true 1195 | 1196 | /cache-base/1.0.1: 1197 | resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} 1198 | engines: {node: '>=0.10.0'} 1199 | dependencies: 1200 | collection-visit: 1.0.0 1201 | component-emitter: 1.3.0 1202 | get-value: 2.0.6 1203 | has-value: 1.0.0 1204 | isobject: 3.0.1 1205 | set-value: 2.0.1 1206 | to-object-path: 0.3.0 1207 | union-value: 1.0.1 1208 | unset-value: 1.0.0 1209 | dev: true 1210 | 1211 | /callsites/3.1.0: 1212 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1213 | engines: {node: '>=6'} 1214 | dev: true 1215 | 1216 | /camelcase/5.3.1: 1217 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 1218 | engines: {node: '>=6'} 1219 | dev: true 1220 | 1221 | /camelcase/6.2.0: 1222 | resolution: {integrity: sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==} 1223 | engines: {node: '>=10'} 1224 | dev: true 1225 | 1226 | /caniuse-lite/1.0.30001228: 1227 | resolution: {integrity: sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==} 1228 | dev: true 1229 | 1230 | /capture-exit/2.0.0: 1231 | resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} 1232 | engines: {node: 6.* || 8.* || >= 10.*} 1233 | dependencies: 1234 | rsvp: 4.8.5 1235 | dev: true 1236 | 1237 | /caseless/0.12.0: 1238 | resolution: {integrity: sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=} 1239 | dev: true 1240 | 1241 | /chain-able/3.0.0: 1242 | resolution: {integrity: sha512-26MoELhta86n7gCsE2T1hGRyncZvPjFXTkB/DEp4+i/EJVSxXQNwXMDZZb2+SWcbPuow18wQtztaW7GXOel9DA==} 1243 | dev: true 1244 | 1245 | /chalk/2.4.2: 1246 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1247 | engines: {node: '>=4'} 1248 | dependencies: 1249 | ansi-styles: 3.2.1 1250 | escape-string-regexp: 1.0.5 1251 | supports-color: 5.5.0 1252 | dev: true 1253 | 1254 | /chalk/4.1.1: 1255 | resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} 1256 | engines: {node: '>=10'} 1257 | dependencies: 1258 | ansi-styles: 4.3.0 1259 | supports-color: 7.2.0 1260 | dev: true 1261 | 1262 | /char-regex/1.0.2: 1263 | resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} 1264 | engines: {node: '>=10'} 1265 | dev: true 1266 | 1267 | /chokidar/3.5.1: 1268 | resolution: {integrity: sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==} 1269 | engines: {node: '>= 8.10.0'} 1270 | dependencies: 1271 | anymatch: 3.1.2 1272 | braces: 3.0.2 1273 | glob-parent: 5.1.2 1274 | is-binary-path: 2.1.0 1275 | is-glob: 4.0.1 1276 | normalize-path: 3.0.0 1277 | readdirp: 3.5.0 1278 | optionalDependencies: 1279 | fsevents: 2.3.2 1280 | dev: true 1281 | 1282 | /ci-info/2.0.0: 1283 | resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} 1284 | dev: true 1285 | 1286 | /cjs-module-lexer/0.6.0: 1287 | resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} 1288 | dev: true 1289 | 1290 | /class-utils/0.3.6: 1291 | resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} 1292 | engines: {node: '>=0.10.0'} 1293 | dependencies: 1294 | arr-union: 3.1.0 1295 | define-property: 0.2.5 1296 | isobject: 3.0.1 1297 | static-extend: 0.1.2 1298 | dev: true 1299 | 1300 | /clean-css/4.2.3: 1301 | resolution: {integrity: sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==} 1302 | engines: {node: '>= 4.0'} 1303 | dependencies: 1304 | source-map: 0.6.1 1305 | dev: true 1306 | 1307 | /cliui/6.0.0: 1308 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 1309 | dependencies: 1310 | string-width: 4.2.2 1311 | strip-ansi: 6.0.0 1312 | wrap-ansi: 6.2.0 1313 | dev: true 1314 | 1315 | /co/4.6.0: 1316 | resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} 1317 | engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} 1318 | dev: true 1319 | 1320 | /collect-v8-coverage/1.0.1: 1321 | resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} 1322 | dev: true 1323 | 1324 | /collection-visit/1.0.0: 1325 | resolution: {integrity: sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=} 1326 | engines: {node: '>=0.10.0'} 1327 | dependencies: 1328 | map-visit: 1.0.0 1329 | object-visit: 1.0.1 1330 | dev: true 1331 | 1332 | /color-convert/1.9.3: 1333 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1334 | dependencies: 1335 | color-name: 1.1.3 1336 | dev: true 1337 | 1338 | /color-convert/2.0.1: 1339 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1340 | engines: {node: '>=7.0.0'} 1341 | dependencies: 1342 | color-name: 1.1.4 1343 | dev: true 1344 | 1345 | /color-name/1.1.3: 1346 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 1347 | dev: true 1348 | 1349 | /color-name/1.1.4: 1350 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1351 | dev: true 1352 | 1353 | /colorette/1.2.2: 1354 | resolution: {integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==} 1355 | dev: true 1356 | 1357 | /combined-stream/1.0.8: 1358 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 1359 | engines: {node: '>= 0.8'} 1360 | dependencies: 1361 | delayed-stream: 1.0.0 1362 | dev: true 1363 | 1364 | /commander/2.20.3: 1365 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 1366 | dev: true 1367 | 1368 | /comment-json/4.1.0: 1369 | resolution: {integrity: sha512-WEghmVYaNq9NlWbrkzQTSsya9ycLyxJxpTQfZEan6a5Jomnjw18zS3Podf8q1Zf9BvonvQd/+Z7Z39L7KKzzdQ==} 1370 | engines: {node: '>= 6'} 1371 | dependencies: 1372 | array-timsort: 1.0.3 1373 | core-util-is: 1.0.2 1374 | esprima: 4.0.1 1375 | has-own-prop: 2.0.0 1376 | repeat-string: 1.6.1 1377 | dev: true 1378 | 1379 | /component-emitter/1.3.0: 1380 | resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==} 1381 | dev: true 1382 | 1383 | /concat-map/0.0.1: 1384 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 1385 | dev: true 1386 | 1387 | /content-disposition/0.5.3: 1388 | resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==} 1389 | engines: {node: '>= 0.6'} 1390 | dependencies: 1391 | safe-buffer: 5.1.2 1392 | dev: true 1393 | 1394 | /content-type/1.0.4: 1395 | resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} 1396 | engines: {node: '>= 0.6'} 1397 | dev: true 1398 | 1399 | /convert-source-map/1.7.0: 1400 | resolution: {integrity: sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==} 1401 | dependencies: 1402 | safe-buffer: 5.1.2 1403 | dev: true 1404 | 1405 | /cookie-signature/1.0.6: 1406 | resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=} 1407 | dev: true 1408 | 1409 | /cookie/0.4.0: 1410 | resolution: {integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==} 1411 | engines: {node: '>= 0.6'} 1412 | dev: true 1413 | 1414 | /copy-descriptor/0.1.1: 1415 | resolution: {integrity: sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=} 1416 | engines: {node: '>=0.10.0'} 1417 | dev: true 1418 | 1419 | /core-util-is/1.0.2: 1420 | resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=} 1421 | dev: true 1422 | 1423 | /create-require/1.1.1: 1424 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 1425 | dev: true 1426 | 1427 | /cross-spawn/6.0.5: 1428 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 1429 | engines: {node: '>=4.8'} 1430 | dependencies: 1431 | nice-try: 1.0.5 1432 | path-key: 2.0.1 1433 | semver: 5.7.1 1434 | shebang-command: 1.2.0 1435 | which: 1.3.1 1436 | dev: true 1437 | 1438 | /cross-spawn/7.0.3: 1439 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1440 | engines: {node: '>= 8'} 1441 | dependencies: 1442 | path-key: 3.1.1 1443 | shebang-command: 2.0.0 1444 | which: 2.0.2 1445 | dev: true 1446 | 1447 | /cssom/0.3.8: 1448 | resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} 1449 | dev: true 1450 | 1451 | /cssom/0.4.4: 1452 | resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} 1453 | dev: true 1454 | 1455 | /cssstyle/2.3.0: 1456 | resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} 1457 | engines: {node: '>=8'} 1458 | dependencies: 1459 | cssom: 0.3.8 1460 | dev: true 1461 | 1462 | /dashdash/1.14.1: 1463 | resolution: {integrity: sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=} 1464 | engines: {node: '>=0.10'} 1465 | dependencies: 1466 | assert-plus: 1.0.0 1467 | dev: true 1468 | 1469 | /data-urls/2.0.0: 1470 | resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} 1471 | engines: {node: '>=10'} 1472 | dependencies: 1473 | abab: 2.0.5 1474 | whatwg-mimetype: 2.3.0 1475 | whatwg-url: 8.5.0 1476 | dev: true 1477 | 1478 | /debug/2.6.9: 1479 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 1480 | dependencies: 1481 | ms: 2.0.0 1482 | dev: true 1483 | 1484 | /debug/4.3.1: 1485 | resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} 1486 | engines: {node: '>=6.0'} 1487 | peerDependencies: 1488 | supports-color: '*' 1489 | peerDependenciesMeta: 1490 | supports-color: 1491 | optional: true 1492 | dependencies: 1493 | ms: 2.1.2 1494 | dev: true 1495 | 1496 | /decamelize/1.2.0: 1497 | resolution: {integrity: sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=} 1498 | engines: {node: '>=0.10.0'} 1499 | dev: true 1500 | 1501 | /decimal.js/10.2.1: 1502 | resolution: {integrity: sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==} 1503 | dev: true 1504 | 1505 | /decode-uri-component/0.2.0: 1506 | resolution: {integrity: sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=} 1507 | engines: {node: '>=0.10'} 1508 | dev: true 1509 | 1510 | /deep-is/0.1.3: 1511 | resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=} 1512 | dev: true 1513 | 1514 | /deepmerge/4.2.2: 1515 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 1516 | engines: {node: '>=0.10.0'} 1517 | dev: true 1518 | 1519 | /define-property/0.2.5: 1520 | resolution: {integrity: sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=} 1521 | engines: {node: '>=0.10.0'} 1522 | dependencies: 1523 | is-descriptor: 0.1.6 1524 | dev: true 1525 | 1526 | /define-property/1.0.0: 1527 | resolution: {integrity: sha1-dp66rz9KY6rTr56NMEybvnm/sOY=} 1528 | engines: {node: '>=0.10.0'} 1529 | dependencies: 1530 | is-descriptor: 1.0.2 1531 | dev: true 1532 | 1533 | /define-property/2.0.2: 1534 | resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} 1535 | engines: {node: '>=0.10.0'} 1536 | dependencies: 1537 | is-descriptor: 1.0.2 1538 | isobject: 3.0.1 1539 | dev: true 1540 | 1541 | /delayed-stream/1.0.0: 1542 | resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} 1543 | engines: {node: '>=0.4.0'} 1544 | dev: true 1545 | 1546 | /depd/1.1.2: 1547 | resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=} 1548 | engines: {node: '>= 0.6'} 1549 | dev: true 1550 | 1551 | /destroy/1.0.4: 1552 | resolution: {integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=} 1553 | dev: true 1554 | 1555 | /detect-newline/3.1.0: 1556 | resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} 1557 | engines: {node: '>=8'} 1558 | dev: true 1559 | 1560 | /diff-sequences/26.6.2: 1561 | resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} 1562 | engines: {node: '>= 10.14.2'} 1563 | dev: true 1564 | 1565 | /diff/4.0.2: 1566 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 1567 | engines: {node: '>=0.3.1'} 1568 | dev: true 1569 | 1570 | /dir-glob/3.0.1: 1571 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1572 | engines: {node: '>=8'} 1573 | dependencies: 1574 | path-type: 4.0.0 1575 | dev: true 1576 | 1577 | /doctrine/3.0.0: 1578 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1579 | engines: {node: '>=6.0.0'} 1580 | dependencies: 1581 | esutils: 2.0.3 1582 | dev: true 1583 | 1584 | /domexception/2.0.1: 1585 | resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} 1586 | engines: {node: '>=8'} 1587 | dependencies: 1588 | webidl-conversions: 5.0.0 1589 | dev: true 1590 | 1591 | /ecc-jsbn/0.1.2: 1592 | resolution: {integrity: sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=} 1593 | dependencies: 1594 | jsbn: 0.1.1 1595 | safer-buffer: 2.1.2 1596 | dev: true 1597 | 1598 | /ee-first/1.1.1: 1599 | resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=} 1600 | dev: true 1601 | 1602 | /electron-to-chromium/1.3.730: 1603 | resolution: {integrity: sha512-1Tr3h09wXhmqXnvDyrRe6MFgTeU0ZXy3+rMJWTrOHh/HNesWwBBrKnMxRJWZ86dzs8qQdw2c7ZE1/qeGHygImA==} 1604 | dev: true 1605 | 1606 | /emittery/0.7.2: 1607 | resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} 1608 | engines: {node: '>=10'} 1609 | dev: true 1610 | 1611 | /emoji-regex/8.0.0: 1612 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1613 | dev: true 1614 | 1615 | /encodeurl/1.0.2: 1616 | resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} 1617 | engines: {node: '>= 0.8'} 1618 | dev: true 1619 | 1620 | /end-of-stream/1.4.4: 1621 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1622 | dependencies: 1623 | once: 1.4.0 1624 | dev: true 1625 | 1626 | /enquirer/2.3.6: 1627 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} 1628 | engines: {node: '>=8.6'} 1629 | dependencies: 1630 | ansi-colors: 4.1.1 1631 | dev: true 1632 | 1633 | /error-ex/1.3.2: 1634 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1635 | dependencies: 1636 | is-arrayish: 0.2.1 1637 | dev: true 1638 | 1639 | /escalade/3.1.1: 1640 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1641 | engines: {node: '>=6'} 1642 | dev: true 1643 | 1644 | /escape-html/1.0.3: 1645 | resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} 1646 | dev: true 1647 | 1648 | /escape-string-regexp/1.0.5: 1649 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 1650 | engines: {node: '>=0.8.0'} 1651 | dev: true 1652 | 1653 | /escape-string-regexp/2.0.0: 1654 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} 1655 | engines: {node: '>=8'} 1656 | dev: true 1657 | 1658 | /escodegen/2.0.0: 1659 | resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} 1660 | engines: {node: '>=6.0'} 1661 | hasBin: true 1662 | dependencies: 1663 | esprima: 4.0.1 1664 | estraverse: 5.2.0 1665 | esutils: 2.0.3 1666 | optionator: 0.8.3 1667 | optionalDependencies: 1668 | source-map: 0.6.1 1669 | dev: true 1670 | 1671 | /eslint-scope/5.1.1: 1672 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1673 | engines: {node: '>=8.0.0'} 1674 | dependencies: 1675 | esrecurse: 4.3.0 1676 | estraverse: 4.3.0 1677 | dev: true 1678 | 1679 | /eslint-utils/2.1.0: 1680 | resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} 1681 | engines: {node: '>=6'} 1682 | dependencies: 1683 | eslint-visitor-keys: 1.3.0 1684 | dev: true 1685 | 1686 | /eslint-visitor-keys/1.3.0: 1687 | resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} 1688 | engines: {node: '>=4'} 1689 | dev: true 1690 | 1691 | /eslint-visitor-keys/2.1.0: 1692 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1693 | engines: {node: '>=10'} 1694 | dev: true 1695 | 1696 | /eslint/7.26.0: 1697 | resolution: {integrity: sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg==} 1698 | engines: {node: ^10.12.0 || >=12.0.0} 1699 | hasBin: true 1700 | dependencies: 1701 | '@babel/code-frame': 7.12.11 1702 | '@eslint/eslintrc': 0.4.1 1703 | ajv: 6.12.6 1704 | chalk: 4.1.1 1705 | cross-spawn: 7.0.3 1706 | debug: 4.3.1 1707 | doctrine: 3.0.0 1708 | enquirer: 2.3.6 1709 | eslint-scope: 5.1.1 1710 | eslint-utils: 2.1.0 1711 | eslint-visitor-keys: 2.1.0 1712 | espree: 7.3.1 1713 | esquery: 1.4.0 1714 | esutils: 2.0.3 1715 | file-entry-cache: 6.0.1 1716 | functional-red-black-tree: 1.0.1 1717 | glob-parent: 5.1.2 1718 | globals: 13.8.0 1719 | ignore: 4.0.6 1720 | import-fresh: 3.3.0 1721 | imurmurhash: 0.1.4 1722 | is-glob: 4.0.1 1723 | js-yaml: 3.14.1 1724 | json-stable-stringify-without-jsonify: 1.0.1 1725 | levn: 0.4.1 1726 | lodash: 4.17.21 1727 | minimatch: 3.0.4 1728 | natural-compare: 1.4.0 1729 | optionator: 0.9.1 1730 | progress: 2.0.3 1731 | regexpp: 3.1.0 1732 | semver: 7.3.5 1733 | strip-ansi: 6.0.0 1734 | strip-json-comments: 3.1.1 1735 | table: 6.7.1 1736 | text-table: 0.2.0 1737 | v8-compile-cache: 2.3.0 1738 | transitivePeerDependencies: 1739 | - supports-color 1740 | dev: true 1741 | 1742 | /espree/7.3.1: 1743 | resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} 1744 | engines: {node: ^10.12.0 || >=12.0.0} 1745 | dependencies: 1746 | acorn: 7.4.1 1747 | acorn-jsx: 5.3.1_acorn@7.4.1 1748 | eslint-visitor-keys: 1.3.0 1749 | dev: true 1750 | 1751 | /esprima/4.0.1: 1752 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1753 | engines: {node: '>=4'} 1754 | hasBin: true 1755 | dev: true 1756 | 1757 | /esquery/1.4.0: 1758 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 1759 | engines: {node: '>=0.10'} 1760 | dependencies: 1761 | estraverse: 5.2.0 1762 | dev: true 1763 | 1764 | /esrecurse/4.3.0: 1765 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1766 | engines: {node: '>=4.0'} 1767 | dependencies: 1768 | estraverse: 5.2.0 1769 | dev: true 1770 | 1771 | /estraverse/4.3.0: 1772 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1773 | engines: {node: '>=4.0'} 1774 | dev: true 1775 | 1776 | /estraverse/5.2.0: 1777 | resolution: {integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==} 1778 | engines: {node: '>=4.0'} 1779 | dev: true 1780 | 1781 | /esutils/2.0.3: 1782 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1783 | engines: {node: '>=0.10.0'} 1784 | dev: true 1785 | 1786 | /etag/1.8.1: 1787 | resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=} 1788 | engines: {node: '>= 0.6'} 1789 | dev: true 1790 | 1791 | /eventemitter3/4.0.7: 1792 | resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 1793 | dev: true 1794 | 1795 | /exec-sh/0.3.6: 1796 | resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} 1797 | dev: true 1798 | 1799 | /execa/1.0.0: 1800 | resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} 1801 | engines: {node: '>=6'} 1802 | dependencies: 1803 | cross-spawn: 6.0.5 1804 | get-stream: 4.1.0 1805 | is-stream: 1.1.0 1806 | npm-run-path: 2.0.2 1807 | p-finally: 1.0.0 1808 | signal-exit: 3.0.3 1809 | strip-eof: 1.0.0 1810 | dev: true 1811 | 1812 | /execa/4.1.0: 1813 | resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} 1814 | engines: {node: '>=10'} 1815 | dependencies: 1816 | cross-spawn: 7.0.3 1817 | get-stream: 5.2.0 1818 | human-signals: 1.1.1 1819 | is-stream: 2.0.0 1820 | merge-stream: 2.0.0 1821 | npm-run-path: 4.0.1 1822 | onetime: 5.1.2 1823 | signal-exit: 3.0.3 1824 | strip-final-newline: 2.0.0 1825 | dev: true 1826 | 1827 | /exit/0.1.2: 1828 | resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} 1829 | engines: {node: '>= 0.8.0'} 1830 | dev: true 1831 | 1832 | /expand-brackets/2.1.4: 1833 | resolution: {integrity: sha1-t3c14xXOMPa27/D4OwQVGiJEliI=} 1834 | engines: {node: '>=0.10.0'} 1835 | dependencies: 1836 | debug: 2.6.9 1837 | define-property: 0.2.5 1838 | extend-shallow: 2.0.1 1839 | posix-character-classes: 0.1.1 1840 | regex-not: 1.0.2 1841 | snapdragon: 0.8.2 1842 | to-regex: 3.0.2 1843 | dev: true 1844 | 1845 | /expect/26.6.2: 1846 | resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==} 1847 | engines: {node: '>= 10.14.2'} 1848 | dependencies: 1849 | '@jest/types': 26.6.2 1850 | ansi-styles: 4.3.0 1851 | jest-get-type: 26.3.0 1852 | jest-matcher-utils: 26.6.2 1853 | jest-message-util: 26.6.2 1854 | jest-regex-util: 26.0.0 1855 | dev: true 1856 | 1857 | /express/4.17.1: 1858 | resolution: {integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==} 1859 | engines: {node: '>= 0.10.0'} 1860 | dependencies: 1861 | accepts: 1.3.7 1862 | array-flatten: 1.1.1 1863 | body-parser: 1.19.0 1864 | content-disposition: 0.5.3 1865 | content-type: 1.0.4 1866 | cookie: 0.4.0 1867 | cookie-signature: 1.0.6 1868 | debug: 2.6.9 1869 | depd: 1.1.2 1870 | encodeurl: 1.0.2 1871 | escape-html: 1.0.3 1872 | etag: 1.8.1 1873 | finalhandler: 1.1.2 1874 | fresh: 0.5.2 1875 | merge-descriptors: 1.0.1 1876 | methods: 1.1.2 1877 | on-finished: 2.3.0 1878 | parseurl: 1.3.3 1879 | path-to-regexp: 0.1.7 1880 | proxy-addr: 2.0.6 1881 | qs: 6.7.0 1882 | range-parser: 1.2.1 1883 | safe-buffer: 5.1.2 1884 | send: 0.17.1 1885 | serve-static: 1.14.1 1886 | setprototypeof: 1.1.1 1887 | statuses: 1.5.0 1888 | type-is: 1.6.18 1889 | utils-merge: 1.0.1 1890 | vary: 1.1.2 1891 | dev: true 1892 | 1893 | /extend-shallow/2.0.1: 1894 | resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=} 1895 | engines: {node: '>=0.10.0'} 1896 | dependencies: 1897 | is-extendable: 0.1.1 1898 | dev: true 1899 | 1900 | /extend-shallow/3.0.2: 1901 | resolution: {integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=} 1902 | engines: {node: '>=0.10.0'} 1903 | dependencies: 1904 | assign-symbols: 1.0.0 1905 | is-extendable: 1.0.1 1906 | dev: true 1907 | 1908 | /extend/3.0.2: 1909 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 1910 | dev: true 1911 | 1912 | /extglob/2.0.4: 1913 | resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} 1914 | engines: {node: '>=0.10.0'} 1915 | dependencies: 1916 | array-unique: 0.3.2 1917 | define-property: 1.0.0 1918 | expand-brackets: 2.1.4 1919 | extend-shallow: 2.0.1 1920 | fragment-cache: 0.2.1 1921 | regex-not: 1.0.2 1922 | snapdragon: 0.8.2 1923 | to-regex: 3.0.2 1924 | dev: true 1925 | 1926 | /extsprintf/1.3.0: 1927 | resolution: {integrity: sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=} 1928 | engines: {'0': node >=0.6.0} 1929 | dev: true 1930 | 1931 | /fast-deep-equal/3.1.3: 1932 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1933 | dev: true 1934 | 1935 | /fast-glob/3.2.5: 1936 | resolution: {integrity: sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==} 1937 | engines: {node: '>=8'} 1938 | dependencies: 1939 | '@nodelib/fs.stat': 2.0.4 1940 | '@nodelib/fs.walk': 1.2.6 1941 | glob-parent: 5.1.2 1942 | merge2: 1.4.1 1943 | micromatch: 4.0.4 1944 | picomatch: 2.2.3 1945 | dev: true 1946 | 1947 | /fast-json-stable-stringify/2.1.0: 1948 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1949 | dev: true 1950 | 1951 | /fast-levenshtein/2.0.6: 1952 | resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} 1953 | dev: true 1954 | 1955 | /fastq/1.11.0: 1956 | resolution: {integrity: sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==} 1957 | dependencies: 1958 | reusify: 1.0.4 1959 | dev: true 1960 | 1961 | /fb-watchman/2.0.1: 1962 | resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==} 1963 | dependencies: 1964 | bser: 2.1.1 1965 | dev: true 1966 | 1967 | /file-entry-cache/6.0.1: 1968 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1969 | engines: {node: ^10.12.0 || >=12.0.0} 1970 | dependencies: 1971 | flat-cache: 3.0.4 1972 | dev: true 1973 | 1974 | /fill-range/4.0.0: 1975 | resolution: {integrity: sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=} 1976 | engines: {node: '>=0.10.0'} 1977 | dependencies: 1978 | extend-shallow: 2.0.1 1979 | is-number: 3.0.0 1980 | repeat-string: 1.6.1 1981 | to-regex-range: 2.1.1 1982 | dev: true 1983 | 1984 | /fill-range/7.0.1: 1985 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1986 | engines: {node: '>=8'} 1987 | dependencies: 1988 | to-regex-range: 5.0.1 1989 | dev: true 1990 | 1991 | /finalhandler/1.1.2: 1992 | resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} 1993 | engines: {node: '>= 0.8'} 1994 | dependencies: 1995 | debug: 2.6.9 1996 | encodeurl: 1.0.2 1997 | escape-html: 1.0.3 1998 | on-finished: 2.3.0 1999 | parseurl: 1.3.3 2000 | statuses: 1.5.0 2001 | unpipe: 1.0.0 2002 | dev: true 2003 | 2004 | /find-up/4.1.0: 2005 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 2006 | engines: {node: '>=8'} 2007 | dependencies: 2008 | locate-path: 5.0.0 2009 | path-exists: 4.0.0 2010 | dev: true 2011 | 2012 | /flat-cache/3.0.4: 2013 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 2014 | engines: {node: ^10.12.0 || >=12.0.0} 2015 | dependencies: 2016 | flatted: 3.1.1 2017 | rimraf: 3.0.2 2018 | dev: true 2019 | 2020 | /flatted/3.1.1: 2021 | resolution: {integrity: sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==} 2022 | dev: true 2023 | 2024 | /follow-redirects/1.14.1: 2025 | resolution: {integrity: sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==} 2026 | engines: {node: '>=4.0'} 2027 | peerDependencies: 2028 | debug: '*' 2029 | peerDependenciesMeta: 2030 | debug: 2031 | optional: true 2032 | dev: true 2033 | 2034 | /for-in/1.0.2: 2035 | resolution: {integrity: sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=} 2036 | engines: {node: '>=0.10.0'} 2037 | dev: true 2038 | 2039 | /forever-agent/0.6.1: 2040 | resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=} 2041 | dev: true 2042 | 2043 | /form-data/2.3.3: 2044 | resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} 2045 | engines: {node: '>= 0.12'} 2046 | dependencies: 2047 | asynckit: 0.4.0 2048 | combined-stream: 1.0.8 2049 | mime-types: 2.1.30 2050 | dev: true 2051 | 2052 | /forwarded/0.1.2: 2053 | resolution: {integrity: sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=} 2054 | engines: {node: '>= 0.6'} 2055 | dev: true 2056 | 2057 | /fragment-cache/0.2.1: 2058 | resolution: {integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=} 2059 | engines: {node: '>=0.10.0'} 2060 | dependencies: 2061 | map-cache: 0.2.2 2062 | dev: true 2063 | 2064 | /fresh/0.5.2: 2065 | resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=} 2066 | engines: {node: '>= 0.6'} 2067 | dev: true 2068 | 2069 | /fs-extra/9.1.0: 2070 | resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} 2071 | engines: {node: '>=10'} 2072 | dependencies: 2073 | at-least-node: 1.0.0 2074 | graceful-fs: 4.2.6 2075 | jsonfile: 6.1.0 2076 | universalify: 2.0.0 2077 | dev: true 2078 | 2079 | /fs.realpath/1.0.0: 2080 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 2081 | dev: true 2082 | 2083 | /fsevents/2.3.2: 2084 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 2085 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2086 | os: [darwin] 2087 | dev: true 2088 | optional: true 2089 | 2090 | /function-bind/1.1.1: 2091 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 2092 | dev: true 2093 | 2094 | /functional-red-black-tree/1.0.1: 2095 | resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} 2096 | dev: true 2097 | 2098 | /fuse-box/4.0.1-next.4: 2099 | resolution: {integrity: sha512-qtZA3mIyVmb4iRytfq8WsEK84btKfminG/9hdrbSjdC2wDeFbkLisb1Tj3pJZjwP3SBGeRCfp3/bnR73kx3+Ew==} 2100 | engines: {node: '>= 8', npm: '>= 3.10.10'} 2101 | dependencies: 2102 | '@typescript-eslint/typescript-estree': 4.23.0_typescript@4.2.4 2103 | app-root-path: 3.0.0 2104 | astring: 1.7.4 2105 | base64-js: 1.5.1 2106 | chokidar: 3.5.1 2107 | clean-css: 4.2.3 2108 | comment-json: 4.1.0 2109 | convert-source-map: 1.7.0 2110 | express: 4.17.1 2111 | fs-extra: 9.1.0 2112 | fuse-concat-with-sourcemaps: 1.0.5 2113 | get-port: 5.1.1 2114 | glob: 7.1.7 2115 | http-proxy-middleware: 1.3.1 2116 | ieee754: 1.2.1 2117 | lego-api: 1.0.8 2118 | lodash.merge: 4.6.2 2119 | meriyah: 4.1.5 2120 | offset-sourcemap-lines: 1.0.1 2121 | open: 7.4.2 2122 | postcss: 8.2.15 2123 | postcss-import: 13.0.0_postcss@8.2.15 2124 | pretty-time: 1.1.0 2125 | source-map: 0.7.3 2126 | source-map-support: 0.5.19 2127 | stream-browserify: 3.0.0 2128 | terser: 5.7.0 2129 | typescript: 4.2.4 2130 | ws: 7.4.5 2131 | transitivePeerDependencies: 2132 | - bufferutil 2133 | - debug 2134 | - supports-color 2135 | - utf-8-validate 2136 | dev: true 2137 | 2138 | /fuse-concat-with-sourcemaps/1.0.5: 2139 | resolution: {integrity: sha512-tKsRJIxn9tU3IH8JHMwFhGbObqkDKXhNKOvcM+QyflAlYb2EgOvIQe8D6WB/cocA3puldHatsp9SN5SKryasrw==} 2140 | dependencies: 2141 | source-map: 0.6.1 2142 | dev: true 2143 | 2144 | /gensync/1.0.0-beta.2: 2145 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 2146 | engines: {node: '>=6.9.0'} 2147 | dev: true 2148 | 2149 | /get-caller-file/2.0.5: 2150 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 2151 | engines: {node: 6.* || 8.* || >= 10.*} 2152 | dev: true 2153 | 2154 | /get-package-type/0.1.0: 2155 | resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} 2156 | engines: {node: '>=8.0.0'} 2157 | dev: true 2158 | 2159 | /get-port/5.1.1: 2160 | resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} 2161 | engines: {node: '>=8'} 2162 | dev: true 2163 | 2164 | /get-stream/4.1.0: 2165 | resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} 2166 | engines: {node: '>=6'} 2167 | dependencies: 2168 | pump: 3.0.0 2169 | dev: true 2170 | 2171 | /get-stream/5.2.0: 2172 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} 2173 | engines: {node: '>=8'} 2174 | dependencies: 2175 | pump: 3.0.0 2176 | dev: true 2177 | 2178 | /get-value/2.0.6: 2179 | resolution: {integrity: sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=} 2180 | engines: {node: '>=0.10.0'} 2181 | dev: true 2182 | 2183 | /getpass/0.1.7: 2184 | resolution: {integrity: sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=} 2185 | dependencies: 2186 | assert-plus: 1.0.0 2187 | dev: true 2188 | 2189 | /glob-parent/5.1.2: 2190 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2191 | engines: {node: '>= 6'} 2192 | dependencies: 2193 | is-glob: 4.0.1 2194 | dev: true 2195 | 2196 | /glob/7.1.7: 2197 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 2198 | dependencies: 2199 | fs.realpath: 1.0.0 2200 | inflight: 1.0.6 2201 | inherits: 2.0.4 2202 | minimatch: 3.0.4 2203 | once: 1.4.0 2204 | path-is-absolute: 1.0.1 2205 | dev: true 2206 | 2207 | /globals/11.12.0: 2208 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 2209 | engines: {node: '>=4'} 2210 | dev: true 2211 | 2212 | /globals/12.4.0: 2213 | resolution: {integrity: sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==} 2214 | engines: {node: '>=8'} 2215 | dependencies: 2216 | type-fest: 0.8.1 2217 | dev: true 2218 | 2219 | /globals/13.8.0: 2220 | resolution: {integrity: sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==} 2221 | engines: {node: '>=8'} 2222 | dependencies: 2223 | type-fest: 0.20.2 2224 | dev: true 2225 | 2226 | /globby/11.0.3: 2227 | resolution: {integrity: sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==} 2228 | engines: {node: '>=10'} 2229 | dependencies: 2230 | array-union: 2.1.0 2231 | dir-glob: 3.0.1 2232 | fast-glob: 3.2.5 2233 | ignore: 5.1.8 2234 | merge2: 1.4.1 2235 | slash: 3.0.0 2236 | dev: true 2237 | 2238 | /graceful-fs/4.2.6: 2239 | resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} 2240 | dev: true 2241 | 2242 | /growly/1.3.0: 2243 | resolution: {integrity: sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=} 2244 | dev: true 2245 | optional: true 2246 | 2247 | /har-schema/2.0.0: 2248 | resolution: {integrity: sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=} 2249 | engines: {node: '>=4'} 2250 | dev: true 2251 | 2252 | /har-validator/5.1.5: 2253 | resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} 2254 | engines: {node: '>=6'} 2255 | deprecated: this library is no longer supported 2256 | dependencies: 2257 | ajv: 6.12.6 2258 | har-schema: 2.0.0 2259 | dev: true 2260 | 2261 | /has-flag/3.0.0: 2262 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 2263 | engines: {node: '>=4'} 2264 | dev: true 2265 | 2266 | /has-flag/4.0.0: 2267 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2268 | engines: {node: '>=8'} 2269 | dev: true 2270 | 2271 | /has-own-prop/2.0.0: 2272 | resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} 2273 | engines: {node: '>=8'} 2274 | dev: true 2275 | 2276 | /has-value/0.3.1: 2277 | resolution: {integrity: sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=} 2278 | engines: {node: '>=0.10.0'} 2279 | dependencies: 2280 | get-value: 2.0.6 2281 | has-values: 0.1.4 2282 | isobject: 2.1.0 2283 | dev: true 2284 | 2285 | /has-value/1.0.0: 2286 | resolution: {integrity: sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=} 2287 | engines: {node: '>=0.10.0'} 2288 | dependencies: 2289 | get-value: 2.0.6 2290 | has-values: 1.0.0 2291 | isobject: 3.0.1 2292 | dev: true 2293 | 2294 | /has-values/0.1.4: 2295 | resolution: {integrity: sha1-bWHeldkd/Km5oCCJrThL/49it3E=} 2296 | engines: {node: '>=0.10.0'} 2297 | dev: true 2298 | 2299 | /has-values/1.0.0: 2300 | resolution: {integrity: sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=} 2301 | engines: {node: '>=0.10.0'} 2302 | dependencies: 2303 | is-number: 3.0.0 2304 | kind-of: 4.0.0 2305 | dev: true 2306 | 2307 | /has/1.0.3: 2308 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 2309 | engines: {node: '>= 0.4.0'} 2310 | dependencies: 2311 | function-bind: 1.1.1 2312 | dev: true 2313 | 2314 | /hosted-git-info/2.8.9: 2315 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 2316 | dev: true 2317 | 2318 | /html-encoding-sniffer/2.0.1: 2319 | resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} 2320 | engines: {node: '>=10'} 2321 | dependencies: 2322 | whatwg-encoding: 1.0.5 2323 | dev: true 2324 | 2325 | /html-escaper/2.0.2: 2326 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 2327 | dev: true 2328 | 2329 | /http-errors/1.7.2: 2330 | resolution: {integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==} 2331 | engines: {node: '>= 0.6'} 2332 | dependencies: 2333 | depd: 1.1.2 2334 | inherits: 2.0.3 2335 | setprototypeof: 1.1.1 2336 | statuses: 1.5.0 2337 | toidentifier: 1.0.0 2338 | dev: true 2339 | 2340 | /http-errors/1.7.3: 2341 | resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==} 2342 | engines: {node: '>= 0.6'} 2343 | dependencies: 2344 | depd: 1.1.2 2345 | inherits: 2.0.4 2346 | setprototypeof: 1.1.1 2347 | statuses: 1.5.0 2348 | toidentifier: 1.0.0 2349 | dev: true 2350 | 2351 | /http-proxy-middleware/1.3.1: 2352 | resolution: {integrity: sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==} 2353 | engines: {node: '>=8.0.0'} 2354 | dependencies: 2355 | '@types/http-proxy': 1.17.5 2356 | http-proxy: 1.18.1 2357 | is-glob: 4.0.1 2358 | is-plain-obj: 3.0.0 2359 | micromatch: 4.0.4 2360 | transitivePeerDependencies: 2361 | - debug 2362 | dev: true 2363 | 2364 | /http-proxy/1.18.1: 2365 | resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} 2366 | engines: {node: '>=8.0.0'} 2367 | dependencies: 2368 | eventemitter3: 4.0.7 2369 | follow-redirects: 1.14.1 2370 | requires-port: 1.0.0 2371 | transitivePeerDependencies: 2372 | - debug 2373 | dev: true 2374 | 2375 | /http-signature/1.2.0: 2376 | resolution: {integrity: sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=} 2377 | engines: {node: '>=0.8', npm: '>=1.3.7'} 2378 | dependencies: 2379 | assert-plus: 1.0.0 2380 | jsprim: 1.4.1 2381 | sshpk: 1.16.1 2382 | dev: true 2383 | 2384 | /human-signals/1.1.1: 2385 | resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} 2386 | engines: {node: '>=8.12.0'} 2387 | dev: true 2388 | 2389 | /iconv-lite/0.4.24: 2390 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 2391 | engines: {node: '>=0.10.0'} 2392 | dependencies: 2393 | safer-buffer: 2.1.2 2394 | dev: true 2395 | 2396 | /ieee754/1.2.1: 2397 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 2398 | dev: true 2399 | 2400 | /ignore/4.0.6: 2401 | resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} 2402 | engines: {node: '>= 4'} 2403 | dev: true 2404 | 2405 | /ignore/5.1.8: 2406 | resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} 2407 | engines: {node: '>= 4'} 2408 | dev: true 2409 | 2410 | /import-fresh/3.3.0: 2411 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2412 | engines: {node: '>=6'} 2413 | dependencies: 2414 | parent-module: 1.0.1 2415 | resolve-from: 4.0.0 2416 | dev: true 2417 | 2418 | /import-local/3.0.2: 2419 | resolution: {integrity: sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==} 2420 | engines: {node: '>=8'} 2421 | hasBin: true 2422 | dependencies: 2423 | pkg-dir: 4.2.0 2424 | resolve-cwd: 3.0.0 2425 | dev: true 2426 | 2427 | /imurmurhash/0.1.4: 2428 | resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} 2429 | engines: {node: '>=0.8.19'} 2430 | dev: true 2431 | 2432 | /inflight/1.0.6: 2433 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 2434 | dependencies: 2435 | once: 1.4.0 2436 | wrappy: 1.0.2 2437 | dev: true 2438 | 2439 | /inherits/2.0.3: 2440 | resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=} 2441 | dev: true 2442 | 2443 | /inherits/2.0.4: 2444 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2445 | dev: true 2446 | 2447 | /ipaddr.js/1.9.1: 2448 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 2449 | engines: {node: '>= 0.10'} 2450 | dev: true 2451 | 2452 | /is-accessor-descriptor/0.1.6: 2453 | resolution: {integrity: sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=} 2454 | engines: {node: '>=0.10.0'} 2455 | dependencies: 2456 | kind-of: 3.2.2 2457 | dev: true 2458 | 2459 | /is-accessor-descriptor/1.0.0: 2460 | resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==} 2461 | engines: {node: '>=0.10.0'} 2462 | dependencies: 2463 | kind-of: 6.0.3 2464 | dev: true 2465 | 2466 | /is-arrayish/0.2.1: 2467 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} 2468 | dev: true 2469 | 2470 | /is-binary-path/2.1.0: 2471 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2472 | engines: {node: '>=8'} 2473 | dependencies: 2474 | binary-extensions: 2.2.0 2475 | dev: true 2476 | 2477 | /is-buffer/1.1.6: 2478 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} 2479 | dev: true 2480 | 2481 | /is-ci/2.0.0: 2482 | resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} 2483 | hasBin: true 2484 | dependencies: 2485 | ci-info: 2.0.0 2486 | dev: true 2487 | 2488 | /is-core-module/2.4.0: 2489 | resolution: {integrity: sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==} 2490 | dependencies: 2491 | has: 1.0.3 2492 | dev: true 2493 | 2494 | /is-data-descriptor/0.1.4: 2495 | resolution: {integrity: sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=} 2496 | engines: {node: '>=0.10.0'} 2497 | dependencies: 2498 | kind-of: 3.2.2 2499 | dev: true 2500 | 2501 | /is-data-descriptor/1.0.0: 2502 | resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==} 2503 | engines: {node: '>=0.10.0'} 2504 | dependencies: 2505 | kind-of: 6.0.3 2506 | dev: true 2507 | 2508 | /is-descriptor/0.1.6: 2509 | resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==} 2510 | engines: {node: '>=0.10.0'} 2511 | dependencies: 2512 | is-accessor-descriptor: 0.1.6 2513 | is-data-descriptor: 0.1.4 2514 | kind-of: 5.1.0 2515 | dev: true 2516 | 2517 | /is-descriptor/1.0.2: 2518 | resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==} 2519 | engines: {node: '>=0.10.0'} 2520 | dependencies: 2521 | is-accessor-descriptor: 1.0.0 2522 | is-data-descriptor: 1.0.0 2523 | kind-of: 6.0.3 2524 | dev: true 2525 | 2526 | /is-docker/2.2.1: 2527 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 2528 | engines: {node: '>=8'} 2529 | hasBin: true 2530 | dev: true 2531 | 2532 | /is-extendable/0.1.1: 2533 | resolution: {integrity: sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=} 2534 | engines: {node: '>=0.10.0'} 2535 | dev: true 2536 | 2537 | /is-extendable/1.0.1: 2538 | resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} 2539 | engines: {node: '>=0.10.0'} 2540 | dependencies: 2541 | is-plain-object: 2.0.4 2542 | dev: true 2543 | 2544 | /is-extglob/2.1.1: 2545 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 2546 | engines: {node: '>=0.10.0'} 2547 | dev: true 2548 | 2549 | /is-fullwidth-code-point/3.0.0: 2550 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2551 | engines: {node: '>=8'} 2552 | dev: true 2553 | 2554 | /is-generator-fn/2.1.0: 2555 | resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} 2556 | engines: {node: '>=6'} 2557 | dev: true 2558 | 2559 | /is-glob/4.0.1: 2560 | resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} 2561 | engines: {node: '>=0.10.0'} 2562 | dependencies: 2563 | is-extglob: 2.1.1 2564 | dev: true 2565 | 2566 | /is-number/3.0.0: 2567 | resolution: {integrity: sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=} 2568 | engines: {node: '>=0.10.0'} 2569 | dependencies: 2570 | kind-of: 3.2.2 2571 | dev: true 2572 | 2573 | /is-number/7.0.0: 2574 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2575 | engines: {node: '>=0.12.0'} 2576 | dev: true 2577 | 2578 | /is-plain-obj/3.0.0: 2579 | resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} 2580 | engines: {node: '>=10'} 2581 | dev: true 2582 | 2583 | /is-plain-object/2.0.4: 2584 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 2585 | engines: {node: '>=0.10.0'} 2586 | dependencies: 2587 | isobject: 3.0.1 2588 | dev: true 2589 | 2590 | /is-potential-custom-element-name/1.0.1: 2591 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 2592 | dev: true 2593 | 2594 | /is-stream/1.1.0: 2595 | resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=} 2596 | engines: {node: '>=0.10.0'} 2597 | dev: true 2598 | 2599 | /is-stream/2.0.0: 2600 | resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} 2601 | engines: {node: '>=8'} 2602 | dev: true 2603 | 2604 | /is-typedarray/1.0.0: 2605 | resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} 2606 | dev: true 2607 | 2608 | /is-windows/1.0.2: 2609 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 2610 | engines: {node: '>=0.10.0'} 2611 | dev: true 2612 | 2613 | /is-wsl/2.2.0: 2614 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 2615 | engines: {node: '>=8'} 2616 | dependencies: 2617 | is-docker: 2.2.1 2618 | dev: true 2619 | 2620 | /isarray/1.0.0: 2621 | resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} 2622 | dev: true 2623 | 2624 | /isexe/2.0.0: 2625 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} 2626 | dev: true 2627 | 2628 | /isobject/2.1.0: 2629 | resolution: {integrity: sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=} 2630 | engines: {node: '>=0.10.0'} 2631 | dependencies: 2632 | isarray: 1.0.0 2633 | dev: true 2634 | 2635 | /isobject/3.0.1: 2636 | resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} 2637 | engines: {node: '>=0.10.0'} 2638 | dev: true 2639 | 2640 | /isstream/0.1.2: 2641 | resolution: {integrity: sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=} 2642 | dev: true 2643 | 2644 | /istanbul-lib-coverage/3.0.0: 2645 | resolution: {integrity: sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==} 2646 | engines: {node: '>=8'} 2647 | dev: true 2648 | 2649 | /istanbul-lib-instrument/4.0.3: 2650 | resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} 2651 | engines: {node: '>=8'} 2652 | dependencies: 2653 | '@babel/core': 7.14.3 2654 | '@istanbuljs/schema': 0.1.3 2655 | istanbul-lib-coverage: 3.0.0 2656 | semver: 6.3.0 2657 | transitivePeerDependencies: 2658 | - supports-color 2659 | dev: true 2660 | 2661 | /istanbul-lib-report/3.0.0: 2662 | resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} 2663 | engines: {node: '>=8'} 2664 | dependencies: 2665 | istanbul-lib-coverage: 3.0.0 2666 | make-dir: 3.1.0 2667 | supports-color: 7.2.0 2668 | dev: true 2669 | 2670 | /istanbul-lib-source-maps/4.0.0: 2671 | resolution: {integrity: sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==} 2672 | engines: {node: '>=8'} 2673 | dependencies: 2674 | debug: 4.3.1 2675 | istanbul-lib-coverage: 3.0.0 2676 | source-map: 0.6.1 2677 | transitivePeerDependencies: 2678 | - supports-color 2679 | dev: true 2680 | 2681 | /istanbul-reports/3.0.2: 2682 | resolution: {integrity: sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==} 2683 | engines: {node: '>=8'} 2684 | dependencies: 2685 | html-escaper: 2.0.2 2686 | istanbul-lib-report: 3.0.0 2687 | dev: true 2688 | 2689 | /jest-changed-files/26.6.2: 2690 | resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} 2691 | engines: {node: '>= 10.14.2'} 2692 | dependencies: 2693 | '@jest/types': 26.6.2 2694 | execa: 4.1.0 2695 | throat: 5.0.0 2696 | dev: true 2697 | 2698 | /jest-cli/26.6.3_ts-node@9.1.1: 2699 | resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} 2700 | engines: {node: '>= 10.14.2'} 2701 | hasBin: true 2702 | dependencies: 2703 | '@jest/core': 26.6.3_ts-node@9.1.1 2704 | '@jest/test-result': 26.6.2 2705 | '@jest/types': 26.6.2 2706 | chalk: 4.1.1 2707 | exit: 0.1.2 2708 | graceful-fs: 4.2.6 2709 | import-local: 3.0.2 2710 | is-ci: 2.0.0 2711 | jest-config: 26.6.3_ts-node@9.1.1 2712 | jest-util: 26.6.2 2713 | jest-validate: 26.6.2 2714 | prompts: 2.4.1 2715 | yargs: 15.4.1 2716 | transitivePeerDependencies: 2717 | - bufferutil 2718 | - canvas 2719 | - supports-color 2720 | - ts-node 2721 | - utf-8-validate 2722 | dev: true 2723 | 2724 | /jest-config/26.6.3_ts-node@9.1.1: 2725 | resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} 2726 | engines: {node: '>= 10.14.2'} 2727 | peerDependencies: 2728 | ts-node: '>=9.0.0' 2729 | peerDependenciesMeta: 2730 | ts-node: 2731 | optional: true 2732 | dependencies: 2733 | '@babel/core': 7.14.3 2734 | '@jest/test-sequencer': 26.6.3_ts-node@9.1.1 2735 | '@jest/types': 26.6.2 2736 | babel-jest: 26.6.3_@babel+core@7.14.3 2737 | chalk: 4.1.1 2738 | deepmerge: 4.2.2 2739 | glob: 7.1.7 2740 | graceful-fs: 4.2.6 2741 | jest-environment-jsdom: 26.6.2 2742 | jest-environment-node: 26.6.2 2743 | jest-get-type: 26.3.0 2744 | jest-jasmine2: 26.6.3_ts-node@9.1.1 2745 | jest-regex-util: 26.0.0 2746 | jest-resolve: 26.6.2 2747 | jest-util: 26.6.2 2748 | jest-validate: 26.6.2 2749 | micromatch: 4.0.4 2750 | pretty-format: 26.6.2 2751 | ts-node: 9.1.1_typescript@4.2.4 2752 | transitivePeerDependencies: 2753 | - bufferutil 2754 | - canvas 2755 | - supports-color 2756 | - utf-8-validate 2757 | dev: true 2758 | 2759 | /jest-diff/26.6.2: 2760 | resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} 2761 | engines: {node: '>= 10.14.2'} 2762 | dependencies: 2763 | chalk: 4.1.1 2764 | diff-sequences: 26.6.2 2765 | jest-get-type: 26.3.0 2766 | pretty-format: 26.6.2 2767 | dev: true 2768 | 2769 | /jest-docblock/26.0.0: 2770 | resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==} 2771 | engines: {node: '>= 10.14.2'} 2772 | dependencies: 2773 | detect-newline: 3.1.0 2774 | dev: true 2775 | 2776 | /jest-each/26.6.2: 2777 | resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==} 2778 | engines: {node: '>= 10.14.2'} 2779 | dependencies: 2780 | '@jest/types': 26.6.2 2781 | chalk: 4.1.1 2782 | jest-get-type: 26.3.0 2783 | jest-util: 26.6.2 2784 | pretty-format: 26.6.2 2785 | dev: true 2786 | 2787 | /jest-environment-jsdom/26.6.2: 2788 | resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==} 2789 | engines: {node: '>= 10.14.2'} 2790 | dependencies: 2791 | '@jest/environment': 26.6.2 2792 | '@jest/fake-timers': 26.6.2 2793 | '@jest/types': 26.6.2 2794 | '@types/node': 15.3.0 2795 | jest-mock: 26.6.2 2796 | jest-util: 26.6.2 2797 | jsdom: 16.5.3 2798 | transitivePeerDependencies: 2799 | - bufferutil 2800 | - canvas 2801 | - utf-8-validate 2802 | dev: true 2803 | 2804 | /jest-environment-node/26.6.2: 2805 | resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} 2806 | engines: {node: '>= 10.14.2'} 2807 | dependencies: 2808 | '@jest/environment': 26.6.2 2809 | '@jest/fake-timers': 26.6.2 2810 | '@jest/types': 26.6.2 2811 | '@types/node': 15.3.0 2812 | jest-mock: 26.6.2 2813 | jest-util: 26.6.2 2814 | dev: true 2815 | 2816 | /jest-get-type/26.3.0: 2817 | resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} 2818 | engines: {node: '>= 10.14.2'} 2819 | dev: true 2820 | 2821 | /jest-haste-map/26.6.2: 2822 | resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} 2823 | engines: {node: '>= 10.14.2'} 2824 | dependencies: 2825 | '@jest/types': 26.6.2 2826 | '@types/graceful-fs': 4.1.5 2827 | '@types/node': 15.3.0 2828 | anymatch: 3.1.2 2829 | fb-watchman: 2.0.1 2830 | graceful-fs: 4.2.6 2831 | jest-regex-util: 26.0.0 2832 | jest-serializer: 26.6.2 2833 | jest-util: 26.6.2 2834 | jest-worker: 26.6.2 2835 | micromatch: 4.0.4 2836 | sane: 4.1.0 2837 | walker: 1.0.7 2838 | optionalDependencies: 2839 | fsevents: 2.3.2 2840 | dev: true 2841 | 2842 | /jest-jasmine2/26.6.3_ts-node@9.1.1: 2843 | resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} 2844 | engines: {node: '>= 10.14.2'} 2845 | dependencies: 2846 | '@babel/traverse': 7.14.2 2847 | '@jest/environment': 26.6.2 2848 | '@jest/source-map': 26.6.2 2849 | '@jest/test-result': 26.6.2 2850 | '@jest/types': 26.6.2 2851 | '@types/node': 15.3.0 2852 | chalk: 4.1.1 2853 | co: 4.6.0 2854 | expect: 26.6.2 2855 | is-generator-fn: 2.1.0 2856 | jest-each: 26.6.2 2857 | jest-matcher-utils: 26.6.2 2858 | jest-message-util: 26.6.2 2859 | jest-runtime: 26.6.3_ts-node@9.1.1 2860 | jest-snapshot: 26.6.2 2861 | jest-util: 26.6.2 2862 | pretty-format: 26.6.2 2863 | throat: 5.0.0 2864 | transitivePeerDependencies: 2865 | - bufferutil 2866 | - canvas 2867 | - supports-color 2868 | - ts-node 2869 | - utf-8-validate 2870 | dev: true 2871 | 2872 | /jest-leak-detector/26.6.2: 2873 | resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==} 2874 | engines: {node: '>= 10.14.2'} 2875 | dependencies: 2876 | jest-get-type: 26.3.0 2877 | pretty-format: 26.6.2 2878 | dev: true 2879 | 2880 | /jest-matcher-utils/26.6.2: 2881 | resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} 2882 | engines: {node: '>= 10.14.2'} 2883 | dependencies: 2884 | chalk: 4.1.1 2885 | jest-diff: 26.6.2 2886 | jest-get-type: 26.3.0 2887 | pretty-format: 26.6.2 2888 | dev: true 2889 | 2890 | /jest-message-util/26.6.2: 2891 | resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} 2892 | engines: {node: '>= 10.14.2'} 2893 | dependencies: 2894 | '@babel/code-frame': 7.12.13 2895 | '@jest/types': 26.6.2 2896 | '@types/stack-utils': 2.0.0 2897 | chalk: 4.1.1 2898 | graceful-fs: 4.2.6 2899 | micromatch: 4.0.4 2900 | pretty-format: 26.6.2 2901 | slash: 3.0.0 2902 | stack-utils: 2.0.3 2903 | dev: true 2904 | 2905 | /jest-mock/26.6.2: 2906 | resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==} 2907 | engines: {node: '>= 10.14.2'} 2908 | dependencies: 2909 | '@jest/types': 26.6.2 2910 | '@types/node': 15.3.0 2911 | dev: true 2912 | 2913 | /jest-pnp-resolver/1.2.2_jest-resolve@26.6.2: 2914 | resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} 2915 | engines: {node: '>=6'} 2916 | peerDependencies: 2917 | jest-resolve: '*' 2918 | peerDependenciesMeta: 2919 | jest-resolve: 2920 | optional: true 2921 | dependencies: 2922 | jest-resolve: 26.6.2 2923 | dev: true 2924 | 2925 | /jest-regex-util/26.0.0: 2926 | resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} 2927 | engines: {node: '>= 10.14.2'} 2928 | dev: true 2929 | 2930 | /jest-resolve-dependencies/26.6.3: 2931 | resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==} 2932 | engines: {node: '>= 10.14.2'} 2933 | dependencies: 2934 | '@jest/types': 26.6.2 2935 | jest-regex-util: 26.0.0 2936 | jest-snapshot: 26.6.2 2937 | dev: true 2938 | 2939 | /jest-resolve/26.6.2: 2940 | resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==} 2941 | engines: {node: '>= 10.14.2'} 2942 | dependencies: 2943 | '@jest/types': 26.6.2 2944 | chalk: 4.1.1 2945 | graceful-fs: 4.2.6 2946 | jest-pnp-resolver: 1.2.2_jest-resolve@26.6.2 2947 | jest-util: 26.6.2 2948 | read-pkg-up: 7.0.1 2949 | resolve: 1.20.0 2950 | slash: 3.0.0 2951 | dev: true 2952 | 2953 | /jest-runner/26.6.3_ts-node@9.1.1: 2954 | resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} 2955 | engines: {node: '>= 10.14.2'} 2956 | dependencies: 2957 | '@jest/console': 26.6.2 2958 | '@jest/environment': 26.6.2 2959 | '@jest/test-result': 26.6.2 2960 | '@jest/types': 26.6.2 2961 | '@types/node': 15.3.0 2962 | chalk: 4.1.1 2963 | emittery: 0.7.2 2964 | exit: 0.1.2 2965 | graceful-fs: 4.2.6 2966 | jest-config: 26.6.3_ts-node@9.1.1 2967 | jest-docblock: 26.0.0 2968 | jest-haste-map: 26.6.2 2969 | jest-leak-detector: 26.6.2 2970 | jest-message-util: 26.6.2 2971 | jest-resolve: 26.6.2 2972 | jest-runtime: 26.6.3_ts-node@9.1.1 2973 | jest-util: 26.6.2 2974 | jest-worker: 26.6.2 2975 | source-map-support: 0.5.19 2976 | throat: 5.0.0 2977 | transitivePeerDependencies: 2978 | - bufferutil 2979 | - canvas 2980 | - supports-color 2981 | - ts-node 2982 | - utf-8-validate 2983 | dev: true 2984 | 2985 | /jest-runtime/26.6.3_ts-node@9.1.1: 2986 | resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} 2987 | engines: {node: '>= 10.14.2'} 2988 | hasBin: true 2989 | dependencies: 2990 | '@jest/console': 26.6.2 2991 | '@jest/environment': 26.6.2 2992 | '@jest/fake-timers': 26.6.2 2993 | '@jest/globals': 26.6.2 2994 | '@jest/source-map': 26.6.2 2995 | '@jest/test-result': 26.6.2 2996 | '@jest/transform': 26.6.2 2997 | '@jest/types': 26.6.2 2998 | '@types/yargs': 15.0.13 2999 | chalk: 4.1.1 3000 | cjs-module-lexer: 0.6.0 3001 | collect-v8-coverage: 1.0.1 3002 | exit: 0.1.2 3003 | glob: 7.1.7 3004 | graceful-fs: 4.2.6 3005 | jest-config: 26.6.3_ts-node@9.1.1 3006 | jest-haste-map: 26.6.2 3007 | jest-message-util: 26.6.2 3008 | jest-mock: 26.6.2 3009 | jest-regex-util: 26.0.0 3010 | jest-resolve: 26.6.2 3011 | jest-snapshot: 26.6.2 3012 | jest-util: 26.6.2 3013 | jest-validate: 26.6.2 3014 | slash: 3.0.0 3015 | strip-bom: 4.0.0 3016 | yargs: 15.4.1 3017 | transitivePeerDependencies: 3018 | - bufferutil 3019 | - canvas 3020 | - supports-color 3021 | - ts-node 3022 | - utf-8-validate 3023 | dev: true 3024 | 3025 | /jest-serializer/26.6.2: 3026 | resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} 3027 | engines: {node: '>= 10.14.2'} 3028 | dependencies: 3029 | '@types/node': 15.3.0 3030 | graceful-fs: 4.2.6 3031 | dev: true 3032 | 3033 | /jest-snapshot/26.6.2: 3034 | resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} 3035 | engines: {node: '>= 10.14.2'} 3036 | dependencies: 3037 | '@babel/types': 7.14.2 3038 | '@jest/types': 26.6.2 3039 | '@types/babel__traverse': 7.11.1 3040 | '@types/prettier': 2.2.3 3041 | chalk: 4.1.1 3042 | expect: 26.6.2 3043 | graceful-fs: 4.2.6 3044 | jest-diff: 26.6.2 3045 | jest-get-type: 26.3.0 3046 | jest-haste-map: 26.6.2 3047 | jest-matcher-utils: 26.6.2 3048 | jest-message-util: 26.6.2 3049 | jest-resolve: 26.6.2 3050 | natural-compare: 1.4.0 3051 | pretty-format: 26.6.2 3052 | semver: 7.3.5 3053 | dev: true 3054 | 3055 | /jest-util/26.6.2: 3056 | resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} 3057 | engines: {node: '>= 10.14.2'} 3058 | dependencies: 3059 | '@jest/types': 26.6.2 3060 | '@types/node': 15.3.0 3061 | chalk: 4.1.1 3062 | graceful-fs: 4.2.6 3063 | is-ci: 2.0.0 3064 | micromatch: 4.0.4 3065 | dev: true 3066 | 3067 | /jest-validate/26.6.2: 3068 | resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} 3069 | engines: {node: '>= 10.14.2'} 3070 | dependencies: 3071 | '@jest/types': 26.6.2 3072 | camelcase: 6.2.0 3073 | chalk: 4.1.1 3074 | jest-get-type: 26.3.0 3075 | leven: 3.1.0 3076 | pretty-format: 26.6.2 3077 | dev: true 3078 | 3079 | /jest-watcher/26.6.2: 3080 | resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} 3081 | engines: {node: '>= 10.14.2'} 3082 | dependencies: 3083 | '@jest/test-result': 26.6.2 3084 | '@jest/types': 26.6.2 3085 | '@types/node': 15.3.0 3086 | ansi-escapes: 4.3.2 3087 | chalk: 4.1.1 3088 | jest-util: 26.6.2 3089 | string-length: 4.0.2 3090 | dev: true 3091 | 3092 | /jest-worker/26.6.2: 3093 | resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} 3094 | engines: {node: '>= 10.13.0'} 3095 | dependencies: 3096 | '@types/node': 15.3.0 3097 | merge-stream: 2.0.0 3098 | supports-color: 7.2.0 3099 | dev: true 3100 | 3101 | /jest/26.6.3_ts-node@9.1.1: 3102 | resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==} 3103 | engines: {node: '>= 10.14.2'} 3104 | hasBin: true 3105 | dependencies: 3106 | '@jest/core': 26.6.3_ts-node@9.1.1 3107 | import-local: 3.0.2 3108 | jest-cli: 26.6.3_ts-node@9.1.1 3109 | transitivePeerDependencies: 3110 | - bufferutil 3111 | - canvas 3112 | - supports-color 3113 | - ts-node 3114 | - utf-8-validate 3115 | dev: true 3116 | 3117 | /js-tokens/4.0.0: 3118 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 3119 | dev: true 3120 | 3121 | /js-yaml/3.14.1: 3122 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 3123 | hasBin: true 3124 | dependencies: 3125 | argparse: 1.0.10 3126 | esprima: 4.0.1 3127 | dev: true 3128 | 3129 | /jsbn/0.1.1: 3130 | resolution: {integrity: sha1-peZUwuWi3rXyAdls77yoDA7y9RM=} 3131 | dev: true 3132 | 3133 | /jsdom/16.5.3: 3134 | resolution: {integrity: sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==} 3135 | engines: {node: '>=10'} 3136 | peerDependencies: 3137 | canvas: ^2.5.0 3138 | peerDependenciesMeta: 3139 | canvas: 3140 | optional: true 3141 | dependencies: 3142 | abab: 2.0.5 3143 | acorn: 8.2.4 3144 | acorn-globals: 6.0.0 3145 | cssom: 0.4.4 3146 | cssstyle: 2.3.0 3147 | data-urls: 2.0.0 3148 | decimal.js: 10.2.1 3149 | domexception: 2.0.1 3150 | escodegen: 2.0.0 3151 | html-encoding-sniffer: 2.0.1 3152 | is-potential-custom-element-name: 1.0.1 3153 | nwsapi: 2.2.0 3154 | parse5: 6.0.1 3155 | request: 2.88.2 3156 | request-promise-native: 1.0.9_request@2.88.2 3157 | saxes: 5.0.1 3158 | symbol-tree: 3.2.4 3159 | tough-cookie: 4.0.0 3160 | w3c-hr-time: 1.0.2 3161 | w3c-xmlserializer: 2.0.0 3162 | webidl-conversions: 6.1.0 3163 | whatwg-encoding: 1.0.5 3164 | whatwg-mimetype: 2.3.0 3165 | whatwg-url: 8.5.0 3166 | ws: 7.4.5 3167 | xml-name-validator: 3.0.0 3168 | transitivePeerDependencies: 3169 | - bufferutil 3170 | - utf-8-validate 3171 | dev: true 3172 | 3173 | /jsesc/2.5.2: 3174 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 3175 | engines: {node: '>=4'} 3176 | hasBin: true 3177 | dev: true 3178 | 3179 | /json-parse-even-better-errors/2.3.1: 3180 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 3181 | dev: true 3182 | 3183 | /json-schema-traverse/0.4.1: 3184 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 3185 | dev: true 3186 | 3187 | /json-schema-traverse/1.0.0: 3188 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 3189 | dev: true 3190 | 3191 | /json-schema/0.2.3: 3192 | resolution: {integrity: sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=} 3193 | dev: true 3194 | 3195 | /json-stable-stringify-without-jsonify/1.0.1: 3196 | resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} 3197 | dev: true 3198 | 3199 | /json-stringify-safe/5.0.1: 3200 | resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} 3201 | dev: true 3202 | 3203 | /json5/2.2.0: 3204 | resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} 3205 | engines: {node: '>=6'} 3206 | hasBin: true 3207 | dependencies: 3208 | minimist: 1.2.5 3209 | dev: true 3210 | 3211 | /jsonfile/6.1.0: 3212 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 3213 | dependencies: 3214 | universalify: 2.0.0 3215 | optionalDependencies: 3216 | graceful-fs: 4.2.6 3217 | dev: true 3218 | 3219 | /jsprim/1.4.1: 3220 | resolution: {integrity: sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=} 3221 | engines: {'0': node >=0.6.0} 3222 | dependencies: 3223 | assert-plus: 1.0.0 3224 | extsprintf: 1.3.0 3225 | json-schema: 0.2.3 3226 | verror: 1.10.0 3227 | dev: true 3228 | 3229 | /kind-of/3.2.2: 3230 | resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=} 3231 | engines: {node: '>=0.10.0'} 3232 | dependencies: 3233 | is-buffer: 1.1.6 3234 | dev: true 3235 | 3236 | /kind-of/4.0.0: 3237 | resolution: {integrity: sha1-IIE989cSkosgc3hpGkUGb65y3Vc=} 3238 | engines: {node: '>=0.10.0'} 3239 | dependencies: 3240 | is-buffer: 1.1.6 3241 | dev: true 3242 | 3243 | /kind-of/5.1.0: 3244 | resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} 3245 | engines: {node: '>=0.10.0'} 3246 | dev: true 3247 | 3248 | /kind-of/6.0.3: 3249 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 3250 | engines: {node: '>=0.10.0'} 3251 | dev: true 3252 | 3253 | /kleur/3.0.3: 3254 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 3255 | engines: {node: '>=6'} 3256 | dev: true 3257 | 3258 | /lego-api/1.0.8: 3259 | resolution: {integrity: sha512-pZD0mf32+RL1bUMJztRcXiNBB1gE8gd/h4MDLWdZp7vaMZyjPiYK/zNpNNGoJvmoa7D/wf9dll+5z7pDObdLFg==} 3260 | dependencies: 3261 | chain-able: 3.0.0 3262 | dev: true 3263 | 3264 | /leven/3.1.0: 3265 | resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} 3266 | engines: {node: '>=6'} 3267 | dev: true 3268 | 3269 | /levn/0.3.0: 3270 | resolution: {integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=} 3271 | engines: {node: '>= 0.8.0'} 3272 | dependencies: 3273 | prelude-ls: 1.1.2 3274 | type-check: 0.3.2 3275 | dev: true 3276 | 3277 | /levn/0.4.1: 3278 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 3279 | engines: {node: '>= 0.8.0'} 3280 | dependencies: 3281 | prelude-ls: 1.2.1 3282 | type-check: 0.4.0 3283 | dev: true 3284 | 3285 | /lines-and-columns/1.1.6: 3286 | resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} 3287 | dev: true 3288 | 3289 | /locate-path/5.0.0: 3290 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 3291 | engines: {node: '>=8'} 3292 | dependencies: 3293 | p-locate: 4.1.0 3294 | dev: true 3295 | 3296 | /lodash.clonedeep/4.5.0: 3297 | resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} 3298 | dev: true 3299 | 3300 | /lodash.merge/4.6.2: 3301 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 3302 | dev: true 3303 | 3304 | /lodash.truncate/4.4.2: 3305 | resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} 3306 | dev: true 3307 | 3308 | /lodash/4.17.21: 3309 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 3310 | dev: true 3311 | 3312 | /lru-cache/6.0.0: 3313 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 3314 | engines: {node: '>=10'} 3315 | dependencies: 3316 | yallist: 4.0.0 3317 | dev: true 3318 | 3319 | /make-dir/3.1.0: 3320 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 3321 | engines: {node: '>=8'} 3322 | dependencies: 3323 | semver: 6.3.0 3324 | dev: true 3325 | 3326 | /make-error/1.3.6: 3327 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 3328 | dev: true 3329 | 3330 | /makeerror/1.0.11: 3331 | resolution: {integrity: sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=} 3332 | dependencies: 3333 | tmpl: 1.0.4 3334 | dev: true 3335 | 3336 | /map-cache/0.2.2: 3337 | resolution: {integrity: sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=} 3338 | engines: {node: '>=0.10.0'} 3339 | dev: true 3340 | 3341 | /map-visit/1.0.0: 3342 | resolution: {integrity: sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=} 3343 | engines: {node: '>=0.10.0'} 3344 | dependencies: 3345 | object-visit: 1.0.1 3346 | dev: true 3347 | 3348 | /media-typer/0.3.0: 3349 | resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=} 3350 | engines: {node: '>= 0.6'} 3351 | dev: true 3352 | 3353 | /merge-descriptors/1.0.1: 3354 | resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=} 3355 | dev: true 3356 | 3357 | /merge-stream/2.0.0: 3358 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 3359 | dev: true 3360 | 3361 | /merge2/1.4.1: 3362 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 3363 | engines: {node: '>= 8'} 3364 | dev: true 3365 | 3366 | /meriyah/4.1.5: 3367 | resolution: {integrity: sha512-ptw5umwiQILhfIGKO99NIY3Y2/jhEyEPIwSFwKLBQdXnN/6606rQoHyF4WK+2WiUmvFbBbTVMo4Q+po30xVjtg==} 3368 | engines: {node: '>=10.4.0'} 3369 | dev: true 3370 | 3371 | /methods/1.1.2: 3372 | resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=} 3373 | engines: {node: '>= 0.6'} 3374 | dev: true 3375 | 3376 | /micromatch/3.1.10: 3377 | resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} 3378 | engines: {node: '>=0.10.0'} 3379 | dependencies: 3380 | arr-diff: 4.0.0 3381 | array-unique: 0.3.2 3382 | braces: 2.3.2 3383 | define-property: 2.0.2 3384 | extend-shallow: 3.0.2 3385 | extglob: 2.0.4 3386 | fragment-cache: 0.2.1 3387 | kind-of: 6.0.3 3388 | nanomatch: 1.2.13 3389 | object.pick: 1.3.0 3390 | regex-not: 1.0.2 3391 | snapdragon: 0.8.2 3392 | to-regex: 3.0.2 3393 | dev: true 3394 | 3395 | /micromatch/4.0.4: 3396 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} 3397 | engines: {node: '>=8.6'} 3398 | dependencies: 3399 | braces: 3.0.2 3400 | picomatch: 2.2.3 3401 | dev: true 3402 | 3403 | /mime-db/1.47.0: 3404 | resolution: {integrity: sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==} 3405 | engines: {node: '>= 0.6'} 3406 | dev: true 3407 | 3408 | /mime-types/2.1.30: 3409 | resolution: {integrity: sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==} 3410 | engines: {node: '>= 0.6'} 3411 | dependencies: 3412 | mime-db: 1.47.0 3413 | dev: true 3414 | 3415 | /mime/1.6.0: 3416 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 3417 | engines: {node: '>=4'} 3418 | hasBin: true 3419 | dev: true 3420 | 3421 | /mimic-fn/2.1.0: 3422 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 3423 | engines: {node: '>=6'} 3424 | dev: true 3425 | 3426 | /minimatch/3.0.4: 3427 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} 3428 | dependencies: 3429 | brace-expansion: 1.1.11 3430 | dev: true 3431 | 3432 | /minimist/1.2.5: 3433 | resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} 3434 | dev: true 3435 | 3436 | /mixin-deep/1.3.2: 3437 | resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} 3438 | engines: {node: '>=0.10.0'} 3439 | dependencies: 3440 | for-in: 1.0.2 3441 | is-extendable: 1.0.1 3442 | dev: true 3443 | 3444 | /mkdirp/1.0.4: 3445 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 3446 | engines: {node: '>=10'} 3447 | hasBin: true 3448 | dev: true 3449 | 3450 | /ms/2.0.0: 3451 | resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} 3452 | dev: true 3453 | 3454 | /ms/2.1.1: 3455 | resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==} 3456 | dev: true 3457 | 3458 | /ms/2.1.2: 3459 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 3460 | dev: true 3461 | 3462 | /nanoid/3.1.23: 3463 | resolution: {integrity: sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==} 3464 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 3465 | hasBin: true 3466 | dev: true 3467 | 3468 | /nanomatch/1.2.13: 3469 | resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} 3470 | engines: {node: '>=0.10.0'} 3471 | dependencies: 3472 | arr-diff: 4.0.0 3473 | array-unique: 0.3.2 3474 | define-property: 2.0.2 3475 | extend-shallow: 3.0.2 3476 | fragment-cache: 0.2.1 3477 | is-windows: 1.0.2 3478 | kind-of: 6.0.3 3479 | object.pick: 1.3.0 3480 | regex-not: 1.0.2 3481 | snapdragon: 0.8.2 3482 | to-regex: 3.0.2 3483 | dev: true 3484 | 3485 | /natural-compare/1.4.0: 3486 | resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} 3487 | dev: true 3488 | 3489 | /negotiator/0.6.2: 3490 | resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==} 3491 | engines: {node: '>= 0.6'} 3492 | dev: true 3493 | 3494 | /nice-try/1.0.5: 3495 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 3496 | dev: true 3497 | 3498 | /node-int64/0.4.0: 3499 | resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} 3500 | dev: true 3501 | 3502 | /node-modules-regexp/1.0.0: 3503 | resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} 3504 | engines: {node: '>=0.10.0'} 3505 | dev: true 3506 | 3507 | /node-notifier/8.0.2: 3508 | resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} 3509 | dependencies: 3510 | growly: 1.3.0 3511 | is-wsl: 2.2.0 3512 | semver: 7.3.5 3513 | shellwords: 0.1.1 3514 | uuid: 8.3.2 3515 | which: 2.0.2 3516 | dev: true 3517 | optional: true 3518 | 3519 | /node-releases/1.1.72: 3520 | resolution: {integrity: sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==} 3521 | dev: true 3522 | 3523 | /normalize-package-data/2.5.0: 3524 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 3525 | dependencies: 3526 | hosted-git-info: 2.8.9 3527 | resolve: 1.20.0 3528 | semver: 5.7.1 3529 | validate-npm-package-license: 3.0.4 3530 | dev: true 3531 | 3532 | /normalize-path/2.1.1: 3533 | resolution: {integrity: sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=} 3534 | engines: {node: '>=0.10.0'} 3535 | dependencies: 3536 | remove-trailing-separator: 1.1.0 3537 | dev: true 3538 | 3539 | /normalize-path/3.0.0: 3540 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 3541 | engines: {node: '>=0.10.0'} 3542 | dev: true 3543 | 3544 | /npm-run-path/2.0.2: 3545 | resolution: {integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=} 3546 | engines: {node: '>=4'} 3547 | dependencies: 3548 | path-key: 2.0.1 3549 | dev: true 3550 | 3551 | /npm-run-path/4.0.1: 3552 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 3553 | engines: {node: '>=8'} 3554 | dependencies: 3555 | path-key: 3.1.1 3556 | dev: true 3557 | 3558 | /nwsapi/2.2.0: 3559 | resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} 3560 | dev: true 3561 | 3562 | /oauth-sign/0.9.0: 3563 | resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} 3564 | dev: true 3565 | 3566 | /object-copy/0.1.0: 3567 | resolution: {integrity: sha1-fn2Fi3gb18mRpBupde04EnVOmYw=} 3568 | engines: {node: '>=0.10.0'} 3569 | dependencies: 3570 | copy-descriptor: 0.1.1 3571 | define-property: 0.2.5 3572 | kind-of: 3.2.2 3573 | dev: true 3574 | 3575 | /object-visit/1.0.1: 3576 | resolution: {integrity: sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=} 3577 | engines: {node: '>=0.10.0'} 3578 | dependencies: 3579 | isobject: 3.0.1 3580 | dev: true 3581 | 3582 | /object.pick/1.3.0: 3583 | resolution: {integrity: sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=} 3584 | engines: {node: '>=0.10.0'} 3585 | dependencies: 3586 | isobject: 3.0.1 3587 | dev: true 3588 | 3589 | /offset-sourcemap-lines/1.0.1: 3590 | resolution: {integrity: sha1-WFTf90tz/Abvy2HXtyGoET2ZvpI=} 3591 | dependencies: 3592 | source-map: 0.5.7 3593 | dev: true 3594 | 3595 | /on-finished/2.3.0: 3596 | resolution: {integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=} 3597 | engines: {node: '>= 0.8'} 3598 | dependencies: 3599 | ee-first: 1.1.1 3600 | dev: true 3601 | 3602 | /once/1.4.0: 3603 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 3604 | dependencies: 3605 | wrappy: 1.0.2 3606 | dev: true 3607 | 3608 | /onetime/5.1.2: 3609 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 3610 | engines: {node: '>=6'} 3611 | dependencies: 3612 | mimic-fn: 2.1.0 3613 | dev: true 3614 | 3615 | /open/7.4.2: 3616 | resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} 3617 | engines: {node: '>=8'} 3618 | dependencies: 3619 | is-docker: 2.2.1 3620 | is-wsl: 2.2.0 3621 | dev: true 3622 | 3623 | /optionator/0.8.3: 3624 | resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} 3625 | engines: {node: '>= 0.8.0'} 3626 | dependencies: 3627 | deep-is: 0.1.3 3628 | fast-levenshtein: 2.0.6 3629 | levn: 0.3.0 3630 | prelude-ls: 1.1.2 3631 | type-check: 0.3.2 3632 | word-wrap: 1.2.3 3633 | dev: true 3634 | 3635 | /optionator/0.9.1: 3636 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 3637 | engines: {node: '>= 0.8.0'} 3638 | dependencies: 3639 | deep-is: 0.1.3 3640 | fast-levenshtein: 2.0.6 3641 | levn: 0.4.1 3642 | prelude-ls: 1.2.1 3643 | type-check: 0.4.0 3644 | word-wrap: 1.2.3 3645 | dev: true 3646 | 3647 | /p-each-series/2.2.0: 3648 | resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} 3649 | engines: {node: '>=8'} 3650 | dev: true 3651 | 3652 | /p-finally/1.0.0: 3653 | resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} 3654 | engines: {node: '>=4'} 3655 | dev: true 3656 | 3657 | /p-limit/2.3.0: 3658 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 3659 | engines: {node: '>=6'} 3660 | dependencies: 3661 | p-try: 2.2.0 3662 | dev: true 3663 | 3664 | /p-locate/4.1.0: 3665 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 3666 | engines: {node: '>=8'} 3667 | dependencies: 3668 | p-limit: 2.3.0 3669 | dev: true 3670 | 3671 | /p-try/2.2.0: 3672 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 3673 | engines: {node: '>=6'} 3674 | dev: true 3675 | 3676 | /parent-module/1.0.1: 3677 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 3678 | engines: {node: '>=6'} 3679 | dependencies: 3680 | callsites: 3.1.0 3681 | dev: true 3682 | 3683 | /parse-json/5.2.0: 3684 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 3685 | engines: {node: '>=8'} 3686 | dependencies: 3687 | '@babel/code-frame': 7.12.13 3688 | error-ex: 1.3.2 3689 | json-parse-even-better-errors: 2.3.1 3690 | lines-and-columns: 1.1.6 3691 | dev: true 3692 | 3693 | /parse5/6.0.1: 3694 | resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} 3695 | dev: true 3696 | 3697 | /parseurl/1.3.3: 3698 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 3699 | engines: {node: '>= 0.8'} 3700 | dev: true 3701 | 3702 | /pascalcase/0.1.1: 3703 | resolution: {integrity: sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=} 3704 | engines: {node: '>=0.10.0'} 3705 | dev: true 3706 | 3707 | /path-exists/4.0.0: 3708 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 3709 | engines: {node: '>=8'} 3710 | dev: true 3711 | 3712 | /path-is-absolute/1.0.1: 3713 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 3714 | engines: {node: '>=0.10.0'} 3715 | dev: true 3716 | 3717 | /path-key/2.0.1: 3718 | resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} 3719 | engines: {node: '>=4'} 3720 | dev: true 3721 | 3722 | /path-key/3.1.1: 3723 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 3724 | engines: {node: '>=8'} 3725 | dev: true 3726 | 3727 | /path-parse/1.0.6: 3728 | resolution: {integrity: sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==} 3729 | dev: true 3730 | 3731 | /path-to-regexp/0.1.7: 3732 | resolution: {integrity: sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=} 3733 | dev: true 3734 | 3735 | /path-type/4.0.0: 3736 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 3737 | engines: {node: '>=8'} 3738 | dev: true 3739 | 3740 | /performance-now/2.1.0: 3741 | resolution: {integrity: sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=} 3742 | dev: true 3743 | 3744 | /picomatch/2.2.3: 3745 | resolution: {integrity: sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==} 3746 | engines: {node: '>=8.6'} 3747 | dev: true 3748 | 3749 | /pify/2.3.0: 3750 | resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=} 3751 | engines: {node: '>=0.10.0'} 3752 | dev: true 3753 | 3754 | /pirates/4.0.1: 3755 | resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} 3756 | engines: {node: '>= 6'} 3757 | dependencies: 3758 | node-modules-regexp: 1.0.0 3759 | dev: true 3760 | 3761 | /pkg-dir/4.2.0: 3762 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 3763 | engines: {node: '>=8'} 3764 | dependencies: 3765 | find-up: 4.1.0 3766 | dev: true 3767 | 3768 | /posix-character-classes/0.1.1: 3769 | resolution: {integrity: sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=} 3770 | engines: {node: '>=0.10.0'} 3771 | dev: true 3772 | 3773 | /postcss-import/13.0.0_postcss@8.2.15: 3774 | resolution: {integrity: sha512-LPUbm3ytpYopwQQjqgUH4S3EM/Gb9QsaSPP/5vnoi+oKVy3/mIk2sc0Paqw7RL57GpScm9MdIMUypw2znWiBpg==} 3775 | engines: {node: '>=10.0.0'} 3776 | peerDependencies: 3777 | postcss: ^8.0.0 3778 | dependencies: 3779 | postcss: 8.2.15 3780 | postcss-value-parser: 4.1.0 3781 | read-cache: 1.0.0 3782 | resolve: 1.20.0 3783 | dev: true 3784 | 3785 | /postcss-value-parser/4.1.0: 3786 | resolution: {integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==} 3787 | dev: true 3788 | 3789 | /postcss/8.2.15: 3790 | resolution: {integrity: sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==} 3791 | engines: {node: ^10 || ^12 || >=14} 3792 | dependencies: 3793 | colorette: 1.2.2 3794 | nanoid: 3.1.23 3795 | source-map: 0.6.1 3796 | dev: true 3797 | 3798 | /prelude-ls/1.1.2: 3799 | resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=} 3800 | engines: {node: '>= 0.8.0'} 3801 | dev: true 3802 | 3803 | /prelude-ls/1.2.1: 3804 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 3805 | engines: {node: '>= 0.8.0'} 3806 | dev: true 3807 | 3808 | /prettier/2.3.0: 3809 | resolution: {integrity: sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==} 3810 | engines: {node: '>=10.13.0'} 3811 | hasBin: true 3812 | dev: true 3813 | 3814 | /pretty-format/26.6.2: 3815 | resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} 3816 | engines: {node: '>= 10'} 3817 | dependencies: 3818 | '@jest/types': 26.6.2 3819 | ansi-regex: 5.0.0 3820 | ansi-styles: 4.3.0 3821 | react-is: 17.0.2 3822 | dev: true 3823 | 3824 | /pretty-time/1.1.0: 3825 | resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} 3826 | engines: {node: '>=4'} 3827 | dev: true 3828 | 3829 | /progress/2.0.3: 3830 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 3831 | engines: {node: '>=0.4.0'} 3832 | dev: true 3833 | 3834 | /prompts/2.4.1: 3835 | resolution: {integrity: sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==} 3836 | engines: {node: '>= 6'} 3837 | dependencies: 3838 | kleur: 3.0.3 3839 | sisteransi: 1.0.5 3840 | dev: true 3841 | 3842 | /proxy-addr/2.0.6: 3843 | resolution: {integrity: sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==} 3844 | engines: {node: '>= 0.10'} 3845 | dependencies: 3846 | forwarded: 0.1.2 3847 | ipaddr.js: 1.9.1 3848 | dev: true 3849 | 3850 | /psl/1.8.0: 3851 | resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} 3852 | dev: true 3853 | 3854 | /pump/3.0.0: 3855 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 3856 | dependencies: 3857 | end-of-stream: 1.4.4 3858 | once: 1.4.0 3859 | dev: true 3860 | 3861 | /punycode/2.1.1: 3862 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 3863 | engines: {node: '>=6'} 3864 | dev: true 3865 | 3866 | /qs/6.5.2: 3867 | resolution: {integrity: sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==} 3868 | engines: {node: '>=0.6'} 3869 | dev: true 3870 | 3871 | /qs/6.7.0: 3872 | resolution: {integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==} 3873 | engines: {node: '>=0.6'} 3874 | dev: true 3875 | 3876 | /queue-microtask/1.2.3: 3877 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 3878 | dev: true 3879 | 3880 | /range-parser/1.2.1: 3881 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 3882 | engines: {node: '>= 0.6'} 3883 | dev: true 3884 | 3885 | /raw-body/2.4.0: 3886 | resolution: {integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==} 3887 | engines: {node: '>= 0.8'} 3888 | dependencies: 3889 | bytes: 3.1.0 3890 | http-errors: 1.7.2 3891 | iconv-lite: 0.4.24 3892 | unpipe: 1.0.0 3893 | dev: true 3894 | 3895 | /react-is/17.0.2: 3896 | resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 3897 | dev: true 3898 | 3899 | /read-cache/1.0.0: 3900 | resolution: {integrity: sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=} 3901 | dependencies: 3902 | pify: 2.3.0 3903 | dev: true 3904 | 3905 | /read-pkg-up/7.0.1: 3906 | resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} 3907 | engines: {node: '>=8'} 3908 | dependencies: 3909 | find-up: 4.1.0 3910 | read-pkg: 5.2.0 3911 | type-fest: 0.8.1 3912 | dev: true 3913 | 3914 | /read-pkg/5.2.0: 3915 | resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} 3916 | engines: {node: '>=8'} 3917 | dependencies: 3918 | '@types/normalize-package-data': 2.4.0 3919 | normalize-package-data: 2.5.0 3920 | parse-json: 5.2.0 3921 | type-fest: 0.6.0 3922 | dev: true 3923 | 3924 | /readable-stream/3.6.0: 3925 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} 3926 | engines: {node: '>= 6'} 3927 | dependencies: 3928 | inherits: 2.0.4 3929 | string_decoder: 1.3.0 3930 | util-deprecate: 1.0.2 3931 | dev: true 3932 | 3933 | /readdirp/3.5.0: 3934 | resolution: {integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==} 3935 | engines: {node: '>=8.10.0'} 3936 | dependencies: 3937 | picomatch: 2.2.3 3938 | dev: true 3939 | 3940 | /regex-not/1.0.2: 3941 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} 3942 | engines: {node: '>=0.10.0'} 3943 | dependencies: 3944 | extend-shallow: 3.0.2 3945 | safe-regex: 1.1.0 3946 | dev: true 3947 | 3948 | /regexpp/3.1.0: 3949 | resolution: {integrity: sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==} 3950 | engines: {node: '>=8'} 3951 | dev: true 3952 | 3953 | /remove-trailing-separator/1.1.0: 3954 | resolution: {integrity: sha1-wkvOKig62tW8P1jg1IJJuSN52O8=} 3955 | dev: true 3956 | 3957 | /repeat-element/1.1.4: 3958 | resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} 3959 | engines: {node: '>=0.10.0'} 3960 | dev: true 3961 | 3962 | /repeat-string/1.6.1: 3963 | resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=} 3964 | engines: {node: '>=0.10'} 3965 | dev: true 3966 | 3967 | /request-promise-core/1.1.4_request@2.88.2: 3968 | resolution: {integrity: sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==} 3969 | engines: {node: '>=0.10.0'} 3970 | peerDependencies: 3971 | request: ^2.34 3972 | dependencies: 3973 | lodash: 4.17.21 3974 | request: 2.88.2 3975 | dev: true 3976 | 3977 | /request-promise-native/1.0.9_request@2.88.2: 3978 | resolution: {integrity: sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==} 3979 | engines: {node: '>=0.12.0'} 3980 | deprecated: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 3981 | peerDependencies: 3982 | request: ^2.34 3983 | dependencies: 3984 | request: 2.88.2 3985 | request-promise-core: 1.1.4_request@2.88.2 3986 | stealthy-require: 1.1.1 3987 | tough-cookie: 2.5.0 3988 | dev: true 3989 | 3990 | /request/2.88.2: 3991 | resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} 3992 | engines: {node: '>= 6'} 3993 | deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 3994 | dependencies: 3995 | aws-sign2: 0.7.0 3996 | aws4: 1.11.0 3997 | caseless: 0.12.0 3998 | combined-stream: 1.0.8 3999 | extend: 3.0.2 4000 | forever-agent: 0.6.1 4001 | form-data: 2.3.3 4002 | har-validator: 5.1.5 4003 | http-signature: 1.2.0 4004 | is-typedarray: 1.0.0 4005 | isstream: 0.1.2 4006 | json-stringify-safe: 5.0.1 4007 | mime-types: 2.1.30 4008 | oauth-sign: 0.9.0 4009 | performance-now: 2.1.0 4010 | qs: 6.5.2 4011 | safe-buffer: 5.2.1 4012 | tough-cookie: 2.5.0 4013 | tunnel-agent: 0.6.0 4014 | uuid: 3.4.0 4015 | dev: true 4016 | 4017 | /require-directory/2.1.1: 4018 | resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} 4019 | engines: {node: '>=0.10.0'} 4020 | dev: true 4021 | 4022 | /require-from-string/2.0.2: 4023 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 4024 | engines: {node: '>=0.10.0'} 4025 | dev: true 4026 | 4027 | /require-main-filename/2.0.0: 4028 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 4029 | dev: true 4030 | 4031 | /requires-port/1.0.0: 4032 | resolution: {integrity: sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=} 4033 | dev: true 4034 | 4035 | /resolve-cwd/3.0.0: 4036 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} 4037 | engines: {node: '>=8'} 4038 | dependencies: 4039 | resolve-from: 5.0.0 4040 | dev: true 4041 | 4042 | /resolve-from/4.0.0: 4043 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 4044 | engines: {node: '>=4'} 4045 | dev: true 4046 | 4047 | /resolve-from/5.0.0: 4048 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 4049 | engines: {node: '>=8'} 4050 | dev: true 4051 | 4052 | /resolve-url/0.2.1: 4053 | resolution: {integrity: sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=} 4054 | deprecated: https://github.com/lydell/resolve-url#deprecated 4055 | dev: true 4056 | 4057 | /resolve/1.20.0: 4058 | resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} 4059 | dependencies: 4060 | is-core-module: 2.4.0 4061 | path-parse: 1.0.6 4062 | dev: true 4063 | 4064 | /ret/0.1.15: 4065 | resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} 4066 | engines: {node: '>=0.12'} 4067 | dev: true 4068 | 4069 | /reusify/1.0.4: 4070 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 4071 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 4072 | dev: true 4073 | 4074 | /rimraf/3.0.2: 4075 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 4076 | hasBin: true 4077 | dependencies: 4078 | glob: 7.1.7 4079 | dev: true 4080 | 4081 | /rsvp/4.8.5: 4082 | resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} 4083 | engines: {node: 6.* || >= 7.*} 4084 | dev: true 4085 | 4086 | /run-parallel/1.2.0: 4087 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 4088 | dependencies: 4089 | queue-microtask: 1.2.3 4090 | dev: true 4091 | 4092 | /safe-buffer/5.1.2: 4093 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 4094 | dev: true 4095 | 4096 | /safe-buffer/5.2.1: 4097 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 4098 | dev: true 4099 | 4100 | /safe-regex/1.1.0: 4101 | resolution: {integrity: sha1-QKNmnzsHfR6UPURinhV91IAjvy4=} 4102 | dependencies: 4103 | ret: 0.1.15 4104 | dev: true 4105 | 4106 | /safer-buffer/2.1.2: 4107 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 4108 | dev: true 4109 | 4110 | /sane/4.1.0: 4111 | resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} 4112 | engines: {node: 6.* || 8.* || >= 10.*} 4113 | hasBin: true 4114 | dependencies: 4115 | '@cnakazawa/watch': 1.0.4 4116 | anymatch: 2.0.0 4117 | capture-exit: 2.0.0 4118 | exec-sh: 0.3.6 4119 | execa: 1.0.0 4120 | fb-watchman: 2.0.1 4121 | micromatch: 3.1.10 4122 | minimist: 1.2.5 4123 | walker: 1.0.7 4124 | dev: true 4125 | 4126 | /saxes/5.0.1: 4127 | resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} 4128 | engines: {node: '>=10'} 4129 | dependencies: 4130 | xmlchars: 2.2.0 4131 | dev: true 4132 | 4133 | /semver/5.7.1: 4134 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 4135 | hasBin: true 4136 | dev: true 4137 | 4138 | /semver/6.3.0: 4139 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 4140 | hasBin: true 4141 | dev: true 4142 | 4143 | /semver/7.3.5: 4144 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} 4145 | engines: {node: '>=10'} 4146 | hasBin: true 4147 | dependencies: 4148 | lru-cache: 6.0.0 4149 | dev: true 4150 | 4151 | /send/0.17.1: 4152 | resolution: {integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==} 4153 | engines: {node: '>= 0.8.0'} 4154 | dependencies: 4155 | debug: 2.6.9 4156 | depd: 1.1.2 4157 | destroy: 1.0.4 4158 | encodeurl: 1.0.2 4159 | escape-html: 1.0.3 4160 | etag: 1.8.1 4161 | fresh: 0.5.2 4162 | http-errors: 1.7.3 4163 | mime: 1.6.0 4164 | ms: 2.1.1 4165 | on-finished: 2.3.0 4166 | range-parser: 1.2.1 4167 | statuses: 1.5.0 4168 | dev: true 4169 | 4170 | /serve-static/1.14.1: 4171 | resolution: {integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==} 4172 | engines: {node: '>= 0.8.0'} 4173 | dependencies: 4174 | encodeurl: 1.0.2 4175 | escape-html: 1.0.3 4176 | parseurl: 1.3.3 4177 | send: 0.17.1 4178 | dev: true 4179 | 4180 | /set-blocking/2.0.0: 4181 | resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=} 4182 | dev: true 4183 | 4184 | /set-value/2.0.1: 4185 | resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} 4186 | engines: {node: '>=0.10.0'} 4187 | dependencies: 4188 | extend-shallow: 2.0.1 4189 | is-extendable: 0.1.1 4190 | is-plain-object: 2.0.4 4191 | split-string: 3.1.0 4192 | dev: true 4193 | 4194 | /setprototypeof/1.1.1: 4195 | resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==} 4196 | dev: true 4197 | 4198 | /shebang-command/1.2.0: 4199 | resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} 4200 | engines: {node: '>=0.10.0'} 4201 | dependencies: 4202 | shebang-regex: 1.0.0 4203 | dev: true 4204 | 4205 | /shebang-command/2.0.0: 4206 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 4207 | engines: {node: '>=8'} 4208 | dependencies: 4209 | shebang-regex: 3.0.0 4210 | dev: true 4211 | 4212 | /shebang-regex/1.0.0: 4213 | resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} 4214 | engines: {node: '>=0.10.0'} 4215 | dev: true 4216 | 4217 | /shebang-regex/3.0.0: 4218 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 4219 | engines: {node: '>=8'} 4220 | dev: true 4221 | 4222 | /shellwords/0.1.1: 4223 | resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} 4224 | dev: true 4225 | optional: true 4226 | 4227 | /signal-exit/3.0.3: 4228 | resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} 4229 | dev: true 4230 | 4231 | /sisteransi/1.0.5: 4232 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 4233 | dev: true 4234 | 4235 | /slash/3.0.0: 4236 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 4237 | engines: {node: '>=8'} 4238 | dev: true 4239 | 4240 | /slice-ansi/4.0.0: 4241 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} 4242 | engines: {node: '>=10'} 4243 | dependencies: 4244 | ansi-styles: 4.3.0 4245 | astral-regex: 2.0.0 4246 | is-fullwidth-code-point: 3.0.0 4247 | dev: true 4248 | 4249 | /snapdragon-node/2.1.1: 4250 | resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} 4251 | engines: {node: '>=0.10.0'} 4252 | dependencies: 4253 | define-property: 1.0.0 4254 | isobject: 3.0.1 4255 | snapdragon-util: 3.0.1 4256 | dev: true 4257 | 4258 | /snapdragon-util/3.0.1: 4259 | resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} 4260 | engines: {node: '>=0.10.0'} 4261 | dependencies: 4262 | kind-of: 3.2.2 4263 | dev: true 4264 | 4265 | /snapdragon/0.8.2: 4266 | resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} 4267 | engines: {node: '>=0.10.0'} 4268 | dependencies: 4269 | base: 0.11.2 4270 | debug: 2.6.9 4271 | define-property: 0.2.5 4272 | extend-shallow: 2.0.1 4273 | map-cache: 0.2.2 4274 | source-map: 0.5.7 4275 | source-map-resolve: 0.5.3 4276 | use: 3.1.1 4277 | dev: true 4278 | 4279 | /source-map-resolve/0.5.3: 4280 | resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} 4281 | dependencies: 4282 | atob: 2.1.2 4283 | decode-uri-component: 0.2.0 4284 | resolve-url: 0.2.1 4285 | source-map-url: 0.4.1 4286 | urix: 0.1.0 4287 | dev: true 4288 | 4289 | /source-map-support/0.5.19: 4290 | resolution: {integrity: sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==} 4291 | dependencies: 4292 | buffer-from: 1.1.1 4293 | source-map: 0.6.1 4294 | dev: true 4295 | 4296 | /source-map-url/0.4.1: 4297 | resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} 4298 | dev: true 4299 | 4300 | /source-map/0.5.7: 4301 | resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} 4302 | engines: {node: '>=0.10.0'} 4303 | dev: true 4304 | 4305 | /source-map/0.6.1: 4306 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 4307 | engines: {node: '>=0.10.0'} 4308 | dev: true 4309 | 4310 | /source-map/0.7.3: 4311 | resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} 4312 | engines: {node: '>= 8'} 4313 | dev: true 4314 | 4315 | /spdx-correct/3.1.1: 4316 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 4317 | dependencies: 4318 | spdx-expression-parse: 3.0.1 4319 | spdx-license-ids: 3.0.8 4320 | dev: true 4321 | 4322 | /spdx-exceptions/2.3.0: 4323 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 4324 | dev: true 4325 | 4326 | /spdx-expression-parse/3.0.1: 4327 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 4328 | dependencies: 4329 | spdx-exceptions: 2.3.0 4330 | spdx-license-ids: 3.0.8 4331 | dev: true 4332 | 4333 | /spdx-license-ids/3.0.8: 4334 | resolution: {integrity: sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g==} 4335 | dev: true 4336 | 4337 | /split-string/3.1.0: 4338 | resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} 4339 | engines: {node: '>=0.10.0'} 4340 | dependencies: 4341 | extend-shallow: 3.0.2 4342 | dev: true 4343 | 4344 | /sprintf-js/1.0.3: 4345 | resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} 4346 | dev: true 4347 | 4348 | /sshpk/1.16.1: 4349 | resolution: {integrity: sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==} 4350 | engines: {node: '>=0.10.0'} 4351 | hasBin: true 4352 | dependencies: 4353 | asn1: 0.2.4 4354 | assert-plus: 1.0.0 4355 | bcrypt-pbkdf: 1.0.2 4356 | dashdash: 1.14.1 4357 | ecc-jsbn: 0.1.2 4358 | getpass: 0.1.7 4359 | jsbn: 0.1.1 4360 | safer-buffer: 2.1.2 4361 | tweetnacl: 0.14.5 4362 | dev: true 4363 | 4364 | /stack-utils/2.0.3: 4365 | resolution: {integrity: sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==} 4366 | engines: {node: '>=10'} 4367 | dependencies: 4368 | escape-string-regexp: 2.0.0 4369 | dev: true 4370 | 4371 | /static-extend/0.1.2: 4372 | resolution: {integrity: sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=} 4373 | engines: {node: '>=0.10.0'} 4374 | dependencies: 4375 | define-property: 0.2.5 4376 | object-copy: 0.1.0 4377 | dev: true 4378 | 4379 | /statuses/1.5.0: 4380 | resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=} 4381 | engines: {node: '>= 0.6'} 4382 | dev: true 4383 | 4384 | /stealthy-require/1.1.1: 4385 | resolution: {integrity: sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=} 4386 | engines: {node: '>=0.10.0'} 4387 | dev: true 4388 | 4389 | /stream-browserify/3.0.0: 4390 | resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} 4391 | dependencies: 4392 | inherits: 2.0.4 4393 | readable-stream: 3.6.0 4394 | dev: true 4395 | 4396 | /string-length/4.0.2: 4397 | resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} 4398 | engines: {node: '>=10'} 4399 | dependencies: 4400 | char-regex: 1.0.2 4401 | strip-ansi: 6.0.0 4402 | dev: true 4403 | 4404 | /string-width/4.2.2: 4405 | resolution: {integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==} 4406 | engines: {node: '>=8'} 4407 | dependencies: 4408 | emoji-regex: 8.0.0 4409 | is-fullwidth-code-point: 3.0.0 4410 | strip-ansi: 6.0.0 4411 | dev: true 4412 | 4413 | /string_decoder/1.3.0: 4414 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 4415 | dependencies: 4416 | safe-buffer: 5.2.1 4417 | dev: true 4418 | 4419 | /strip-ansi/6.0.0: 4420 | resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==} 4421 | engines: {node: '>=8'} 4422 | dependencies: 4423 | ansi-regex: 5.0.0 4424 | dev: true 4425 | 4426 | /strip-bom/4.0.0: 4427 | resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} 4428 | engines: {node: '>=8'} 4429 | dev: true 4430 | 4431 | /strip-eof/1.0.0: 4432 | resolution: {integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=} 4433 | engines: {node: '>=0.10.0'} 4434 | dev: true 4435 | 4436 | /strip-final-newline/2.0.0: 4437 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 4438 | engines: {node: '>=6'} 4439 | dev: true 4440 | 4441 | /strip-json-comments/3.1.1: 4442 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 4443 | engines: {node: '>=8'} 4444 | dev: true 4445 | 4446 | /supports-color/5.5.0: 4447 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 4448 | engines: {node: '>=4'} 4449 | dependencies: 4450 | has-flag: 3.0.0 4451 | dev: true 4452 | 4453 | /supports-color/7.2.0: 4454 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 4455 | engines: {node: '>=8'} 4456 | dependencies: 4457 | has-flag: 4.0.0 4458 | dev: true 4459 | 4460 | /supports-hyperlinks/2.2.0: 4461 | resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} 4462 | engines: {node: '>=8'} 4463 | dependencies: 4464 | has-flag: 4.0.0 4465 | supports-color: 7.2.0 4466 | dev: true 4467 | 4468 | /symbol-tree/3.2.4: 4469 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 4470 | dev: true 4471 | 4472 | /table/6.7.1: 4473 | resolution: {integrity: sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==} 4474 | engines: {node: '>=10.0.0'} 4475 | dependencies: 4476 | ajv: 8.4.0 4477 | lodash.clonedeep: 4.5.0 4478 | lodash.truncate: 4.4.2 4479 | slice-ansi: 4.0.0 4480 | string-width: 4.2.2 4481 | strip-ansi: 6.0.0 4482 | dev: true 4483 | 4484 | /terminal-link/2.1.1: 4485 | resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} 4486 | engines: {node: '>=8'} 4487 | dependencies: 4488 | ansi-escapes: 4.3.2 4489 | supports-hyperlinks: 2.2.0 4490 | dev: true 4491 | 4492 | /terser/5.7.0: 4493 | resolution: {integrity: sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==} 4494 | engines: {node: '>=10'} 4495 | hasBin: true 4496 | dependencies: 4497 | commander: 2.20.3 4498 | source-map: 0.7.3 4499 | source-map-support: 0.5.19 4500 | dev: true 4501 | 4502 | /test-exclude/6.0.0: 4503 | resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} 4504 | engines: {node: '>=8'} 4505 | dependencies: 4506 | '@istanbuljs/schema': 0.1.3 4507 | glob: 7.1.7 4508 | minimatch: 3.0.4 4509 | dev: true 4510 | 4511 | /text-table/0.2.0: 4512 | resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} 4513 | dev: true 4514 | 4515 | /throat/5.0.0: 4516 | resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} 4517 | dev: true 4518 | 4519 | /tmpl/1.0.4: 4520 | resolution: {integrity: sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=} 4521 | dev: true 4522 | 4523 | /to-fast-properties/2.0.0: 4524 | resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} 4525 | engines: {node: '>=4'} 4526 | dev: true 4527 | 4528 | /to-object-path/0.3.0: 4529 | resolution: {integrity: sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=} 4530 | engines: {node: '>=0.10.0'} 4531 | dependencies: 4532 | kind-of: 3.2.2 4533 | dev: true 4534 | 4535 | /to-regex-range/2.1.1: 4536 | resolution: {integrity: sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=} 4537 | engines: {node: '>=0.10.0'} 4538 | dependencies: 4539 | is-number: 3.0.0 4540 | repeat-string: 1.6.1 4541 | dev: true 4542 | 4543 | /to-regex-range/5.0.1: 4544 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 4545 | engines: {node: '>=8.0'} 4546 | dependencies: 4547 | is-number: 7.0.0 4548 | dev: true 4549 | 4550 | /to-regex/3.0.2: 4551 | resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} 4552 | engines: {node: '>=0.10.0'} 4553 | dependencies: 4554 | define-property: 2.0.2 4555 | extend-shallow: 3.0.2 4556 | regex-not: 1.0.2 4557 | safe-regex: 1.1.0 4558 | dev: true 4559 | 4560 | /toidentifier/1.0.0: 4561 | resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==} 4562 | engines: {node: '>=0.6'} 4563 | dev: true 4564 | 4565 | /tough-cookie/2.5.0: 4566 | resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} 4567 | engines: {node: '>=0.8'} 4568 | dependencies: 4569 | psl: 1.8.0 4570 | punycode: 2.1.1 4571 | dev: true 4572 | 4573 | /tough-cookie/4.0.0: 4574 | resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} 4575 | engines: {node: '>=6'} 4576 | dependencies: 4577 | psl: 1.8.0 4578 | punycode: 2.1.1 4579 | universalify: 0.1.2 4580 | dev: true 4581 | 4582 | /tr46/2.0.2: 4583 | resolution: {integrity: sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==} 4584 | engines: {node: '>=8'} 4585 | dependencies: 4586 | punycode: 2.1.1 4587 | dev: true 4588 | 4589 | /ts-jest/26.5.6_jest@26.6.3+typescript@4.2.4: 4590 | resolution: {integrity: sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA==} 4591 | engines: {node: '>= 10'} 4592 | hasBin: true 4593 | peerDependencies: 4594 | jest: '>=26 <27' 4595 | typescript: '>=3.8 <5.0' 4596 | dependencies: 4597 | bs-logger: 0.2.6 4598 | buffer-from: 1.1.1 4599 | fast-json-stable-stringify: 2.1.0 4600 | jest: 26.6.3_ts-node@9.1.1 4601 | jest-util: 26.6.2 4602 | json5: 2.2.0 4603 | lodash: 4.17.21 4604 | make-error: 1.3.6 4605 | mkdirp: 1.0.4 4606 | semver: 7.3.5 4607 | typescript: 4.2.4 4608 | yargs-parser: 20.2.7 4609 | dev: true 4610 | 4611 | /ts-node/9.1.1_typescript@4.2.4: 4612 | resolution: {integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==} 4613 | engines: {node: '>=10.0.0'} 4614 | hasBin: true 4615 | peerDependencies: 4616 | typescript: '>=2.7' 4617 | dependencies: 4618 | arg: 4.1.3 4619 | create-require: 1.1.1 4620 | diff: 4.0.2 4621 | make-error: 1.3.6 4622 | source-map-support: 0.5.19 4623 | typescript: 4.2.4 4624 | yn: 3.1.1 4625 | dev: true 4626 | 4627 | /tslib/1.14.1: 4628 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 4629 | dev: true 4630 | 4631 | /tsutils/3.21.0_typescript@4.2.4: 4632 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 4633 | engines: {node: '>= 6'} 4634 | peerDependencies: 4635 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 4636 | dependencies: 4637 | tslib: 1.14.1 4638 | typescript: 4.2.4 4639 | dev: true 4640 | 4641 | /tunnel-agent/0.6.0: 4642 | resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} 4643 | dependencies: 4644 | safe-buffer: 5.2.1 4645 | dev: true 4646 | 4647 | /tweetnacl/0.14.5: 4648 | resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=} 4649 | dev: true 4650 | 4651 | /type-check/0.3.2: 4652 | resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} 4653 | engines: {node: '>= 0.8.0'} 4654 | dependencies: 4655 | prelude-ls: 1.1.2 4656 | dev: true 4657 | 4658 | /type-check/0.4.0: 4659 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 4660 | engines: {node: '>= 0.8.0'} 4661 | dependencies: 4662 | prelude-ls: 1.2.1 4663 | dev: true 4664 | 4665 | /type-detect/4.0.8: 4666 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 4667 | engines: {node: '>=4'} 4668 | dev: true 4669 | 4670 | /type-fest/0.20.2: 4671 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 4672 | engines: {node: '>=10'} 4673 | dev: true 4674 | 4675 | /type-fest/0.21.3: 4676 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 4677 | engines: {node: '>=10'} 4678 | dev: true 4679 | 4680 | /type-fest/0.6.0: 4681 | resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} 4682 | engines: {node: '>=8'} 4683 | dev: true 4684 | 4685 | /type-fest/0.8.1: 4686 | resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} 4687 | engines: {node: '>=8'} 4688 | dev: true 4689 | 4690 | /type-is/1.6.18: 4691 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 4692 | engines: {node: '>= 0.6'} 4693 | dependencies: 4694 | media-typer: 0.3.0 4695 | mime-types: 2.1.30 4696 | dev: true 4697 | 4698 | /typedarray-to-buffer/3.1.5: 4699 | resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} 4700 | dependencies: 4701 | is-typedarray: 1.0.0 4702 | dev: true 4703 | 4704 | /typescript/4.2.4: 4705 | resolution: {integrity: sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==} 4706 | engines: {node: '>=4.2.0'} 4707 | hasBin: true 4708 | dev: true 4709 | 4710 | /union-value/1.0.1: 4711 | resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} 4712 | engines: {node: '>=0.10.0'} 4713 | dependencies: 4714 | arr-union: 3.1.0 4715 | get-value: 2.0.6 4716 | is-extendable: 0.1.1 4717 | set-value: 2.0.1 4718 | dev: true 4719 | 4720 | /universalify/0.1.2: 4721 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 4722 | engines: {node: '>= 4.0.0'} 4723 | dev: true 4724 | 4725 | /universalify/2.0.0: 4726 | resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} 4727 | engines: {node: '>= 10.0.0'} 4728 | dev: true 4729 | 4730 | /unpipe/1.0.0: 4731 | resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=} 4732 | engines: {node: '>= 0.8'} 4733 | dev: true 4734 | 4735 | /unset-value/1.0.0: 4736 | resolution: {integrity: sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=} 4737 | engines: {node: '>=0.10.0'} 4738 | dependencies: 4739 | has-value: 0.3.1 4740 | isobject: 3.0.1 4741 | dev: true 4742 | 4743 | /uri-js/4.4.1: 4744 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 4745 | dependencies: 4746 | punycode: 2.1.1 4747 | dev: true 4748 | 4749 | /urix/0.1.0: 4750 | resolution: {integrity: sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=} 4751 | deprecated: Please see https://github.com/lydell/urix#deprecated 4752 | dev: true 4753 | 4754 | /use/3.1.1: 4755 | resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} 4756 | engines: {node: '>=0.10.0'} 4757 | dev: true 4758 | 4759 | /util-deprecate/1.0.2: 4760 | resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} 4761 | dev: true 4762 | 4763 | /utils-merge/1.0.1: 4764 | resolution: {integrity: sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=} 4765 | engines: {node: '>= 0.4.0'} 4766 | dev: true 4767 | 4768 | /uuid/3.4.0: 4769 | resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} 4770 | hasBin: true 4771 | dev: true 4772 | 4773 | /uuid/8.3.2: 4774 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 4775 | hasBin: true 4776 | dev: true 4777 | optional: true 4778 | 4779 | /v8-compile-cache/2.3.0: 4780 | resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} 4781 | dev: true 4782 | 4783 | /v8-to-istanbul/7.1.2: 4784 | resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} 4785 | engines: {node: '>=10.10.0'} 4786 | dependencies: 4787 | '@types/istanbul-lib-coverage': 2.0.3 4788 | convert-source-map: 1.7.0 4789 | source-map: 0.7.3 4790 | dev: true 4791 | 4792 | /validate-npm-package-license/3.0.4: 4793 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 4794 | dependencies: 4795 | spdx-correct: 3.1.1 4796 | spdx-expression-parse: 3.0.1 4797 | dev: true 4798 | 4799 | /vary/1.1.2: 4800 | resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=} 4801 | engines: {node: '>= 0.8'} 4802 | dev: true 4803 | 4804 | /verror/1.10.0: 4805 | resolution: {integrity: sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=} 4806 | engines: {'0': node >=0.6.0} 4807 | dependencies: 4808 | assert-plus: 1.0.0 4809 | core-util-is: 1.0.2 4810 | extsprintf: 1.3.0 4811 | dev: true 4812 | 4813 | /w3c-hr-time/1.0.2: 4814 | resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} 4815 | dependencies: 4816 | browser-process-hrtime: 1.0.0 4817 | dev: true 4818 | 4819 | /w3c-xmlserializer/2.0.0: 4820 | resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} 4821 | engines: {node: '>=10'} 4822 | dependencies: 4823 | xml-name-validator: 3.0.0 4824 | dev: true 4825 | 4826 | /walker/1.0.7: 4827 | resolution: {integrity: sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=} 4828 | dependencies: 4829 | makeerror: 1.0.11 4830 | dev: true 4831 | 4832 | /webidl-conversions/5.0.0: 4833 | resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} 4834 | engines: {node: '>=8'} 4835 | dev: true 4836 | 4837 | /webidl-conversions/6.1.0: 4838 | resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} 4839 | engines: {node: '>=10.4'} 4840 | dev: true 4841 | 4842 | /whatwg-encoding/1.0.5: 4843 | resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} 4844 | dependencies: 4845 | iconv-lite: 0.4.24 4846 | dev: true 4847 | 4848 | /whatwg-mimetype/2.3.0: 4849 | resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} 4850 | dev: true 4851 | 4852 | /whatwg-url/8.5.0: 4853 | resolution: {integrity: sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==} 4854 | engines: {node: '>=10'} 4855 | dependencies: 4856 | lodash: 4.17.21 4857 | tr46: 2.0.2 4858 | webidl-conversions: 6.1.0 4859 | dev: true 4860 | 4861 | /which-module/2.0.0: 4862 | resolution: {integrity: sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=} 4863 | dev: true 4864 | 4865 | /which/1.3.1: 4866 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 4867 | hasBin: true 4868 | dependencies: 4869 | isexe: 2.0.0 4870 | dev: true 4871 | 4872 | /which/2.0.2: 4873 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 4874 | engines: {node: '>= 8'} 4875 | hasBin: true 4876 | dependencies: 4877 | isexe: 2.0.0 4878 | dev: true 4879 | 4880 | /word-wrap/1.2.3: 4881 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 4882 | engines: {node: '>=0.10.0'} 4883 | dev: true 4884 | 4885 | /wrap-ansi/6.2.0: 4886 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 4887 | engines: {node: '>=8'} 4888 | dependencies: 4889 | ansi-styles: 4.3.0 4890 | string-width: 4.2.2 4891 | strip-ansi: 6.0.0 4892 | dev: true 4893 | 4894 | /wrappy/1.0.2: 4895 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 4896 | dev: true 4897 | 4898 | /write-file-atomic/3.0.3: 4899 | resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} 4900 | dependencies: 4901 | imurmurhash: 0.1.4 4902 | is-typedarray: 1.0.0 4903 | signal-exit: 3.0.3 4904 | typedarray-to-buffer: 3.1.5 4905 | dev: true 4906 | 4907 | /ws/7.4.5: 4908 | resolution: {integrity: sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==} 4909 | engines: {node: '>=8.3.0'} 4910 | peerDependencies: 4911 | bufferutil: ^4.0.1 4912 | utf-8-validate: ^5.0.2 4913 | peerDependenciesMeta: 4914 | bufferutil: 4915 | optional: true 4916 | utf-8-validate: 4917 | optional: true 4918 | dev: true 4919 | 4920 | /xml-name-validator/3.0.0: 4921 | resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} 4922 | dev: true 4923 | 4924 | /xmlchars/2.2.0: 4925 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 4926 | dev: true 4927 | 4928 | /y18n/4.0.3: 4929 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 4930 | dev: true 4931 | 4932 | /yallist/4.0.0: 4933 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 4934 | dev: true 4935 | 4936 | /yargs-parser/18.1.3: 4937 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 4938 | engines: {node: '>=6'} 4939 | dependencies: 4940 | camelcase: 5.3.1 4941 | decamelize: 1.2.0 4942 | dev: true 4943 | 4944 | /yargs-parser/20.2.7: 4945 | resolution: {integrity: sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==} 4946 | engines: {node: '>=10'} 4947 | dev: true 4948 | 4949 | /yargs/15.4.1: 4950 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} 4951 | engines: {node: '>=8'} 4952 | dependencies: 4953 | cliui: 6.0.0 4954 | decamelize: 1.2.0 4955 | find-up: 4.1.0 4956 | get-caller-file: 2.0.5 4957 | require-directory: 2.1.1 4958 | require-main-filename: 2.0.0 4959 | set-blocking: 2.0.0 4960 | string-width: 4.2.2 4961 | which-module: 2.0.0 4962 | y18n: 4.0.3 4963 | yargs-parser: 18.1.3 4964 | dev: true 4965 | 4966 | /yn/3.1.1: 4967 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 4968 | engines: {node: '>=6'} 4969 | dev: true 4970 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 |

2 | banner 3 |

4 | 5 | ## Why? 6 | 7 | 1. You will always learn much better when you Do-It-Yourself! 8 | 2. Fun 9 | 3. Provide a statement: **You Know React** 10 | 11 | ## What? 12 | What you are having is... 13 | 14 | - A tiny _React_, with 2 basic API: **createElement** & **RenderDOM** 15 | - Create 2 **Apps**, one _static_ and one _dynamic_ (meaning it can update/delete) 16 | - Using **RenderDOM** mount the 2 apps to two different nodes on the DOM 17 | - The DOM tree after rendering would look like this: 18 | 19 | ```html 20 | 21 | 22 |

23 |
24 | This is my Static App 25 |

This is a heading

26 |
27 |

Lorem ipsum dolor sit amet

28 | 29 |
30 |
31 |
32 | 33 | 34 |
35 |
36 | This is my Dynamic App 37 |

This is a dynamic counter: 1

38 | 39 | 40 | 41 | 42 | 43 |
44 |
45 | 46 | ``` 47 | 48 | ## Architecture brief 49 | To achieve the target mention above, the generall architecture of your React would consists of 50 | - A VDOM is a tree of fiber-nodes 51 | - Text-Node should be a fiber-node as well 52 | - createElement should return a fiber-node 53 | - after `setState`, render a new sub-tree of fiber-nodes and process to `diffing` 54 | - `diffing` algorithm is a recursive run down both trees from the stateful root-node 55 | - during `diffing`, *Tree-Swap* happen when a component's tag has changed, or when a component's children-structure changed 56 | - when structure remains the same, but attributes change then only update the corresponding nodes 57 | 58 | ## Project status 59 | 60 | - [x] Rendering works! 61 | - [x] Updating works! (replacing tree or updating individual nodes) 62 | - [x] Fiber reconciliation - not perfect, but generally it works. 63 | - [x] JSX ready! 64 | - [ ] Class Component Life-cycle Methods (reserved for studying) 65 | - [ ] Better optimized `diffing` algorithm (reserved for studying) 66 | - [ ] Hooks (reserved for studying) 67 | 68 | 69 | ## Learning instruction 70 | - You can search in project for all `TODO` notes to know what needs to do to further enhance your **React** 71 | - You can learn and try to implement `hooks` and `component-life-cycle method` (before-mount, did-update, memoize etc) 72 | - Try to optimize `diffing` algorithm (ref to [official doc of React about `reconciliation`](https://reactjs.org/docs/reconciliation.html)) 73 | - Add more supported-events for your React 74 | 75 | 76 | ## Running 77 | 78 | - clone the repo & cd into it 79 | - `npm i` and `npm start` 80 | - [local-hosted-App at :4444](http://localhost:4444) 81 | 82 | ## Screenshot 83 | 84 |

85 | Screenshot 86 |

87 | 88 | Using this home-made React, you can write your app something like... 89 | 90 | ```javascript 91 | const Button = (props: { onClick: EventHandler, text: string }) => { 92 | return 93 | } 94 | 95 | const Heading = (props: { count: number }) => { 96 | const text = `This is a dynamic counter: ${props.count}` 97 | return

{text}

98 | } 99 | 100 | const SubHeading = (props: { currentCount: number }) => { 101 | const { currentCount: cnt } = props 102 | 103 | if (cnt > 7 && cnt < 10) { 104 | return

counter is more than 7 but less than 10, it's a H4

105 | } 106 | if (cnt >= 10) { 107 | return
counter is more than 10, it's a H5
108 | } 109 | } 110 | 111 | class App extends React.Component { 112 | constructor(props: any) { 113 | super(props) 114 | this.state = { 115 | count: 1, 116 | } 117 | } 118 | 119 | handleOnClick = () => { 120 | this.setState({ count: this.state.count + 1 }) 121 | } 122 | 123 | reset = () => { 124 | this.setState({ count: 0 }) 125 | } 126 | 127 | render() { 128 | return ( 129 |
130 | 131 |
135 | ) 136 | } 137 | } 138 | ``` 139 | 140 | And finally render it to a DOM node. 141 | 142 | ```typescript 143 | React.RenderDOM(App, "#container-id") 144 | ``` 145 | -------------------------------------------------------------------------------- /src/DynamicApp.tsx: -------------------------------------------------------------------------------- 1 | import "./style.css" 2 | import * as React from "./react" 3 | 4 | // DYNAMIC-APP that updates & remove ============================= 5 | const Button = (props: { onClick: React.EventHandler; text: string }) => { 6 | /* return React.createElement( 7 | * 'button', 8 | * { onClick: props.onClick }, 9 | * props.text, 10 | * ) */ 11 | return 12 | } 13 | 14 | const Heading = (props: { count: number }) => { 15 | /* React.createElement( 16 | * 'h1', 17 | * {}, 18 | * `This is a dynamic counter: ${props.count}`, 19 | * ) */ 20 | const text = `This is a dynamic counter: ${props.count}` 21 | return

{text}

22 | } 23 | 24 | const SubHeading = (props: { currentCount: number }) => { 25 | const { currentCount: cnt } = props 26 | 27 | /* let tag = 'h4' 28 | * let txt = '' 29 | * const cnt = props.currentCount 30 | 31 | * if (cnt > 7 && cnt < 10) { 32 | * txt = "counter is more than 7 but less than 10, it's a H4" 33 | * } 34 | 35 | * if (cnt >= 10) { 36 | * txt = "counter is more than 10, it's a H5" 37 | * tag = 'h5' 38 | * } 39 | 40 | * return React.createElement(tag, {}, txt) */ 41 | if (cnt > 7 && cnt < 10) { 42 | return

counter is more than 7 but less than 10, it's a H4

43 | } 44 | if (cnt >= 10) { 45 | return
counter is more than 10, it's a H5
46 | } 47 | } 48 | 49 | class DynamicApp extends React.Component { 50 | state: { count: number } 51 | 52 | constructor() { 53 | super() 54 | this.state = { 55 | count: 1, 56 | } 57 | } 58 | 59 | handleOnClick = (): void => { 60 | this.setState({ count: this.state.count + 1 }) 61 | } 62 | 63 | reset = (): void => { 64 | this.setState({ count: 0 }) 65 | } 66 | 67 | render(): React.Fiber { 68 | /* return React.createElement( 69 | * 'div', 70 | * { className: 'example-dynamic-app' }, 71 | * 'This is my Dynamic App', 72 | * React.createElement(Heading, { count: this.state.count }), 73 | * React.createElement(Button, { onClick: this.handleOnClick, text: 'Incr!' }), 74 | * React.createElement(Button, { onClick: this.reset, text: 'Reset' }), 75 | * this.state.count > 7 && React.createElement(SubHeading, { currentCount: this.state.count }) 76 | * ) */ 77 | return ( 78 |
79 | 80 |
84 | ) 85 | } 86 | } 87 | 88 | export default DynamicApp 89 | -------------------------------------------------------------------------------- /src/StaticApp.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "./react" 2 | 3 | // STATIC-APP that does not update ================================ 4 | const StaticApp: React.FC = () => { 5 | /* return React.createElement( 6 | * 'div', { className: 'example-static-app' }, 7 | * 'This is my Static App', 8 | * React.createElement('h1', { className: 'title' }, 'This is a heading'), 9 | * React.createElement('div', { className: 'inner-body' }, 10 | * React.createElement('p', { className: 'text' }, 'Lorem ipsum dolor sit amet'), 11 | * React.createElement('button', { onClick: () => alert('Hello Clicker!') }, 'Say Hello') 12 | * ) 13 | * ) */ 14 | return ( 15 |
16 |

This is my Static App

17 |
18 |

Lorem ipsum dolor sit amet

19 | 20 |
21 |
22 | ) 23 | } 24 | 25 | export default StaticApp 26 | -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | import "./style.css" 2 | import * as React from "./react" 3 | import DynamicApp from "./DynamicApp" 4 | import StaticApp from "./StaticApp" 5 | 6 | const DOMcreateElement = (tag: string, attrs = {}): Node => { 7 | const elm = document.createElement(tag) 8 | Object.assign(elm, attrs) 9 | return elm 10 | } 11 | 12 | /* 13 | * Usage 14 | */ 15 | const body = document.querySelector("body") 16 | body.appendChild(DOMcreateElement("div", { id: "static-app" })) 17 | body.appendChild(DOMcreateElement("div", { id: "dynamic-app" })) 18 | 19 | /* 20 | * Mounting Apps 21 | */ 22 | React.RenderDOM(StaticApp, "#static-app") 23 | React.RenderDOM(DynamicApp, "#dynamic-app") 24 | -------------------------------------------------------------------------------- /src/react/constants.ts: -------------------------------------------------------------------------------- 1 | // TODO: support more events 2 | export const SupportedSyntheticEvents = new Set(["onClick"]) 3 | -------------------------------------------------------------------------------- /src/react/element.ts: -------------------------------------------------------------------------------- 1 | import { FiberNode } from "./fiber" 2 | 3 | /* 4 | * APIs 5 | */ 6 | 7 | // NOTE: define Functional Component Type (FC) 8 | export const createElement = ( 9 | tag: string | FC, 10 | props: Props = {}, 11 | ...children: Array 12 | ): FiberNode => { 13 | let fiber: FiberNode 14 | 15 | if (typeof tag === "string") { 16 | const el = document.createElement(tag) 17 | fiber = new FiberNode(el, props) 18 | } 19 | 20 | if (typeof tag === "function") { 21 | fiber = tag(props) 22 | } 23 | 24 | if (children) { 25 | const convertChild = (child: FiberNode | string): FiberNode => { 26 | if (typeof child === "string") { 27 | const textNode = document.createTextNode(child) 28 | const childFiberNode = new FiberNode(textNode) 29 | return childFiberNode 30 | } 31 | return child 32 | } 33 | 34 | children.filter(Boolean).forEach((c) => { 35 | const child = convertChild(c) 36 | fiber.appendFiberChild(child) 37 | }) 38 | } 39 | 40 | return fiber 41 | } 42 | -------------------------------------------------------------------------------- /src/react/fiber.ts: -------------------------------------------------------------------------------- 1 | import { SupportedSyntheticEvents } from "./constants" 2 | 3 | export class FiberNode implements FiberNode { 4 | el: HTMLElement | Node 5 | 6 | tag: string 7 | parent: FiberNode 8 | props: Props 9 | 10 | children: FiberNode[] = [] 11 | 12 | constructor(el: Node | HTMLElement, props?: Props) { 13 | this.el = el 14 | this.setProps(props || {}) 15 | this.tag = el.nodeName 16 | } 17 | 18 | setProps(newProps: Props): void { 19 | this.props = { ...newProps } 20 | Object.assign(this.el, this.props) 21 | Object.keys(this.props) 22 | .filter((propName) => SupportedSyntheticEvents.has(propName)) 23 | .forEach((prop) => { 24 | const eventName = prop.slice(2).toLowerCase() 25 | this.el.addEventListener(eventName, this.props[prop] as EventHandler) 26 | }) 27 | } 28 | 29 | appendFiberChild(child: FiberNode): void { 30 | this.children.push(child) 31 | this.el.appendChild(child.el) 32 | child.parent = this 33 | } 34 | 35 | remove(): void { 36 | this.el["remove"]() 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/react/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./react_class_component" 2 | export * from "./element" 3 | export * from "./react_dom" 4 | -------------------------------------------------------------------------------- /src/react/react_class_component.ts: -------------------------------------------------------------------------------- 1 | import { FiberNode } from "./fiber" 2 | import { reconcile } from "./vdom" 3 | 4 | export abstract class Component { 5 | // TODO: add more life-cycle hooks for class-componennts 6 | static _is_class = true 7 | state: State = {} 8 | props: Props = {} 9 | node: FiberNode 10 | 11 | constructor(props: Props = {}) { 12 | this.props = props 13 | } 14 | 15 | setState(newState: State = {}): void { 16 | this.state = { ...this.state, ...newState } 17 | const node = reconcile(this) 18 | this.node = node 19 | } 20 | 21 | initialRender(): FiberNode { 22 | const node = this.render() 23 | this.node = node 24 | return this.node 25 | } 26 | 27 | abstract render(): FiberNode 28 | } 29 | -------------------------------------------------------------------------------- /src/react/react_dom.ts: -------------------------------------------------------------------------------- 1 | import { FiberNode } from "./fiber" 2 | import { Component } from "./react_class_component" 3 | 4 | type IsFC = FC & { _is_class: false } 5 | type IsReactClass = Constructor & { _is_class: true } 6 | 7 | export const RenderDOM = ( 8 | app: IsFC | IsReactClass, 9 | container: string 10 | ): void => { 11 | const appContainerNode = document.querySelector(container) 12 | const FiberRoot = new FiberNode(appContainerNode) 13 | 14 | if (app._is_class) { 15 | const initialized = new app() 16 | const renderer = initialized.initialRender.bind(initialized) 17 | const node = renderer() as FiberNode 18 | FiberRoot.appendFiberChild(node) 19 | } else { 20 | const node = (app as FC)() 21 | FiberRoot.appendFiberChild(node) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/react/types.d.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Type definitions 3 | */ 4 | declare type Props = Record 5 | declare type State = Record 6 | 7 | declare interface FiberNode { 8 | el: HTMLElement | Node 9 | tag: string 10 | parent: FiberNode 11 | props: Props 12 | children: FiberNode[] 13 | 14 | setProps: (p: Props) => void 15 | appendFiberChild: (c: FiberNode) => void 16 | remove: () => void 17 | } 18 | 19 | declare type EventHandler = (e: Event) => void 20 | 21 | declare type Optional = T | undefined | null 22 | 23 | declare type FC = (props?: Props) => FiberNode 24 | 25 | declare type Constructor = { 26 | new (...args: unknown[]): T 27 | } 28 | -------------------------------------------------------------------------------- /src/react/vdom.ts: -------------------------------------------------------------------------------- 1 | import { FiberNode } from "./fiber" 2 | import { Component } from "./react_class_component" 3 | 4 | export const shallowCompare = (p: Props, q: Props): boolean => { 5 | const pkeys = Object.keys(p) 6 | const qkeys = Object.keys(q) 7 | return ( 8 | pkeys.length === qkeys.length && 9 | pkeys.every((k) => p[k] === q[k] && typeof p[k] !== "function") 10 | ) 11 | } 12 | 13 | export const reconcile = (comp: Component): FiberNode => { 14 | // TODO: updating tree should be a batch-update 15 | // to avoid blocking when rendering heavy tree or 16 | // grouping multiple diffing into one update 17 | const newTree = comp.render() 18 | const currentTree = comp.node 19 | const node = diffing(newTree, currentTree, currentTree) 20 | return node 21 | } 22 | 23 | export const diffing = ( 24 | newNode: FiberNode, 25 | currentNode: FiberNode, 26 | root: FiberNode 27 | ): FiberNode => { 28 | // TODO: Diffing should be tail-calling 29 | // so the memory is utilized efficiently 30 | const swapTree = () => { 31 | const { parent } = currentNode 32 | currentNode.remove() 33 | parent.appendFiberChild(newNode) 34 | return currentNode === root ? newNode : root 35 | } 36 | 37 | const tagChanged = newNode.tag !== currentNode.tag 38 | const childrenStructureChanged = 39 | currentNode.children.length !== newNode.children.length || 40 | currentNode.children.some((c, idx) => c.tag !== newNode.children[idx].tag) 41 | 42 | const shouldSwap = [tagChanged, childrenStructureChanged].some(Boolean) 43 | 44 | if (shouldSwap) { 45 | return swapTree() 46 | } 47 | 48 | const textNodeChanged = 49 | newNode.tag === "#text" && 50 | newNode.el.textContent !== currentNode.el.textContent 51 | 52 | if (textNodeChanged) { 53 | currentNode.el.textContent = newNode.el.textContent 54 | } 55 | 56 | if (!shallowCompare(newNode.props, currentNode.props)) { 57 | currentNode.setProps(newNode.props) 58 | } 59 | 60 | newNode.children.forEach((n, i) => diffing(n, currentNode.children[i], root)) 61 | 62 | return root 63 | } 64 | -------------------------------------------------------------------------------- /src/style.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap"); 2 | 3 | body { 4 | background: #f7fcfd; 5 | margin: 0 auto; 6 | max-width: 500px; 7 | font-family: "Roboto Mono", monospace; 8 | } 9 | 10 | * { 11 | color: white; 12 | } 13 | 14 | #static-app { 15 | padding: 15px; 16 | margin: 50px 10px; 17 | background: #4f74e4; 18 | border-radius: 4px; 19 | box-shadow: rgba(100, 100, 111, 0.4) 0px 7px 29px 0px; 20 | } 21 | 22 | #dynamic-app { 23 | padding: 15px; 24 | margin: 10px; 25 | background: #d24598; 26 | border-radius: 4px; 27 | box-shadow: rgba(100, 100, 111, 0.4) 0px 7px 29px 0px; 28 | } 29 | 30 | button { 31 | padding: 8px 15px; 32 | font-size: 14pt; 33 | background: white; 34 | border-radius: 3px; 35 | border: none; 36 | color: #555; 37 | cursor: pointer; 38 | transition: opacity 0.3s; 39 | opacity: 0.8; 40 | margin-right: 20px; 41 | } 42 | 43 | button:hover { 44 | opacity: 1; 45 | } 46 | -------------------------------------------------------------------------------- /src/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "baseDir": ".", 3 | "compilerOptions": { 4 | "target": "ES6", 5 | "jsx": "react", 6 | "moduleResolution": "node" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vutran1710/WriteYourOwnReact/f420b72743f95ddf0d1a34f86ed72e9b16584d08/ss.png --------------------------------------------------------------------------------