Chore: update useObject

This commit is contained in:
Dreamacro 2019-07-12 10:34:22 +08:00
parent 934208efe8
commit e52541847f
6 changed files with 272 additions and 176 deletions

362
package-lock.json generated
View File

@ -5,9 +5,9 @@
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@babel/cli": { "@babel/cli": {
"version": "7.4.4", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.4.4.tgz", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.5.0.tgz",
"integrity": "sha512-XGr5YjQSjgTa6OzQZY57FAJsdeVSAKR/u/KA5exWIz66IKtv/zXtHy+fIZcMry/EgYegwuHE7vzGnrFhjdIAsQ==", "integrity": "sha512-qNH55fWbKrEsCwID+Qc/3JDPnsSGpIIiMDbppnR8Z6PxLAqMQCFNqBctkIkBrMH49Nx+qqVTrHRWUR+ho2k+qQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"chokidar": "^2.0.4", "chokidar": "^2.0.4",
@ -32,18 +32,18 @@
} }
}, },
"@babel/core": { "@babel/core": {
"version": "7.4.5", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.4.tgz",
"integrity": "sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==", "integrity": "sha512-+DaeBEpYq6b2+ZmHx3tHspC+ZRflrvLqwfv8E3hNr5LVQoyBnL8RPKSBCg+rK2W2My9PWlujBiqd0ZPsR9Q6zQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.0.0", "@babel/code-frame": "^7.0.0",
"@babel/generator": "^7.4.4", "@babel/generator": "^7.5.0",
"@babel/helpers": "^7.4.4", "@babel/helpers": "^7.5.4",
"@babel/parser": "^7.4.5", "@babel/parser": "^7.5.0",
"@babel/template": "^7.4.4", "@babel/template": "^7.4.4",
"@babel/traverse": "^7.4.5", "@babel/traverse": "^7.5.0",
"@babel/types": "^7.4.4", "@babel/types": "^7.5.0",
"convert-source-map": "^1.1.0", "convert-source-map": "^1.1.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"json5": "^2.1.0", "json5": "^2.1.0",
@ -53,6 +53,17 @@
"source-map": "^0.5.0" "source-map": "^0.5.0"
}, },
"dependencies": { "dependencies": {
"@babel/types": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz",
"integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
"lodash": "^4.17.11",
"to-fast-properties": "^2.0.0"
}
},
"debug": { "debug": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@ -71,16 +82,29 @@
} }
}, },
"@babel/generator": { "@babel/generator": {
"version": "7.4.4", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.0.tgz",
"integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", "integrity": "sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/types": "^7.4.4", "@babel/types": "^7.5.0",
"jsesc": "^2.5.1", "jsesc": "^2.5.1",
"lodash": "^4.17.11", "lodash": "^4.17.11",
"source-map": "^0.5.0", "source-map": "^0.5.0",
"trim-right": "^1.0.1" "trim-right": "^1.0.1"
},
"dependencies": {
"@babel/types": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz",
"integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
"lodash": "^4.17.11",
"to-fast-properties": "^2.0.0"
}
}
} }
}, },
"@babel/helper-annotate-as-pure": { "@babel/helper-annotate-as-pure": {
@ -286,14 +310,27 @@
} }
}, },
"@babel/helpers": { "@babel/helpers": {
"version": "7.4.4", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.4.tgz",
"integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", "integrity": "sha512-6LJ6xwUEJP51w0sIgKyfvFMJvIb9mWAfohJp0+m6eHJigkFdcH8duZ1sfhn0ltJRzwUIT/yqqhdSfRpCpL7oow==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/template": "^7.4.4", "@babel/template": "^7.4.4",
"@babel/traverse": "^7.4.4", "@babel/traverse": "^7.5.0",
"@babel/types": "^7.4.4" "@babel/types": "^7.5.0"
},
"dependencies": {
"@babel/types": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz",
"integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
"lodash": "^4.17.11",
"to-fast-properties": "^2.0.0"
}
}
} }
}, },
"@babel/highlight": { "@babel/highlight": {
@ -308,9 +345,9 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.4.5", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.0.tgz",
"integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", "integrity": "sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA==",
"dev": true "dev": true
}, },
"@babel/plugin-proposal-async-generator-functions": { "@babel/plugin-proposal-async-generator-functions": {
@ -324,6 +361,16 @@
"@babel/plugin-syntax-async-generators": "^7.2.0" "@babel/plugin-syntax-async-generators": "^7.2.0"
} }
}, },
"@babel/plugin-proposal-dynamic-import": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz",
"integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0"
}
},
"@babel/plugin-proposal-json-strings": { "@babel/plugin-proposal-json-strings": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz",
@ -335,9 +382,9 @@
} }
}, },
"@babel/plugin-proposal-object-rest-spread": { "@babel/plugin-proposal-object-rest-spread": {
"version": "7.4.4", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.4.tgz",
"integrity": "sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==", "integrity": "sha512-KCx0z3y7y8ipZUMAEEJOyNi11lMb/FOPUjjB113tfowgw0c16EGYos7worCKBcUAh2oG+OBnoUhsnTSoLpV9uA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0",
@ -374,6 +421,15 @@
"@babel/helper-plugin-utils": "^7.0.0" "@babel/helper-plugin-utils": "^7.0.0"
} }
}, },
"@babel/plugin-syntax-dynamic-import": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz",
"integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0"
}
},
"@babel/plugin-syntax-json-strings": { "@babel/plugin-syntax-json-strings": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz",
@ -420,9 +476,9 @@
} }
}, },
"@babel/plugin-transform-async-to-generator": { "@babel/plugin-transform-async-to-generator": {
"version": "7.4.4", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz",
"integrity": "sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==", "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-module-imports": "^7.0.0", "@babel/helper-module-imports": "^7.0.0",
@ -475,9 +531,9 @@
} }
}, },
"@babel/plugin-transform-destructuring": { "@babel/plugin-transform-destructuring": {
"version": "7.4.4", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz",
"integrity": "sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==", "integrity": "sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-plugin-utils": "^7.0.0" "@babel/helper-plugin-utils": "^7.0.0"
@ -495,9 +551,9 @@
} }
}, },
"@babel/plugin-transform-duplicate-keys": { "@babel/plugin-transform-duplicate-keys": {
"version": "7.2.0", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz",
"integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-plugin-utils": "^7.0.0" "@babel/helper-plugin-utils": "^7.0.0"
@ -551,34 +607,37 @@
} }
}, },
"@babel/plugin-transform-modules-amd": { "@babel/plugin-transform-modules-amd": {
"version": "7.2.0", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz",
"integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-module-transforms": "^7.1.0", "@babel/helper-module-transforms": "^7.1.0",
"@babel/helper-plugin-utils": "^7.0.0" "@babel/helper-plugin-utils": "^7.0.0",
"babel-plugin-dynamic-import-node": "^2.3.0"
} }
}, },
"@babel/plugin-transform-modules-commonjs": { "@babel/plugin-transform-modules-commonjs": {
"version": "7.4.4", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz",
"integrity": "sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==", "integrity": "sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-module-transforms": "^7.4.4", "@babel/helper-module-transforms": "^7.4.4",
"@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0",
"@babel/helper-simple-access": "^7.1.0" "@babel/helper-simple-access": "^7.1.0",
"babel-plugin-dynamic-import-node": "^2.3.0"
} }
}, },
"@babel/plugin-transform-modules-systemjs": { "@babel/plugin-transform-modules-systemjs": {
"version": "7.4.4", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz",
"integrity": "sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==", "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-hoist-variables": "^7.4.4", "@babel/helper-hoist-variables": "^7.4.4",
"@babel/helper-plugin-utils": "^7.0.0" "@babel/helper-plugin-utils": "^7.0.0",
"babel-plugin-dynamic-import-node": "^2.3.0"
} }
}, },
"@babel/plugin-transform-modules-umd": { "@babel/plugin-transform-modules-umd": {
@ -756,39 +815,41 @@
} }
}, },
"@babel/preset-env": { "@babel/preset-env": {
"version": "7.4.5", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.4.5.tgz", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.4.tgz",
"integrity": "sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w==", "integrity": "sha512-hFnFnouyRNiH1rL8YkX1ANCNAUVC8Djwdqfev8i1415tnAG+7hlA5zhZ0Q/3Q5gkop4HioIPbCEWAalqcbxRoQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-module-imports": "^7.0.0", "@babel/helper-module-imports": "^7.0.0",
"@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-proposal-async-generator-functions": "^7.2.0", "@babel/plugin-proposal-async-generator-functions": "^7.2.0",
"@babel/plugin-proposal-dynamic-import": "^7.5.0",
"@babel/plugin-proposal-json-strings": "^7.2.0", "@babel/plugin-proposal-json-strings": "^7.2.0",
"@babel/plugin-proposal-object-rest-spread": "^7.4.4", "@babel/plugin-proposal-object-rest-spread": "^7.5.4",
"@babel/plugin-proposal-optional-catch-binding": "^7.2.0", "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
"@babel/plugin-syntax-async-generators": "^7.2.0", "@babel/plugin-syntax-async-generators": "^7.2.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-syntax-json-strings": "^7.2.0", "@babel/plugin-syntax-json-strings": "^7.2.0",
"@babel/plugin-syntax-object-rest-spread": "^7.2.0", "@babel/plugin-syntax-object-rest-spread": "^7.2.0",
"@babel/plugin-syntax-optional-catch-binding": "^7.2.0", "@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
"@babel/plugin-transform-arrow-functions": "^7.2.0", "@babel/plugin-transform-arrow-functions": "^7.2.0",
"@babel/plugin-transform-async-to-generator": "^7.4.4", "@babel/plugin-transform-async-to-generator": "^7.5.0",
"@babel/plugin-transform-block-scoped-functions": "^7.2.0", "@babel/plugin-transform-block-scoped-functions": "^7.2.0",
"@babel/plugin-transform-block-scoping": "^7.4.4", "@babel/plugin-transform-block-scoping": "^7.4.4",
"@babel/plugin-transform-classes": "^7.4.4", "@babel/plugin-transform-classes": "^7.4.4",
"@babel/plugin-transform-computed-properties": "^7.2.0", "@babel/plugin-transform-computed-properties": "^7.2.0",
"@babel/plugin-transform-destructuring": "^7.4.4", "@babel/plugin-transform-destructuring": "^7.5.0",
"@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/plugin-transform-dotall-regex": "^7.4.4",
"@babel/plugin-transform-duplicate-keys": "^7.2.0", "@babel/plugin-transform-duplicate-keys": "^7.5.0",
"@babel/plugin-transform-exponentiation-operator": "^7.2.0", "@babel/plugin-transform-exponentiation-operator": "^7.2.0",
"@babel/plugin-transform-for-of": "^7.4.4", "@babel/plugin-transform-for-of": "^7.4.4",
"@babel/plugin-transform-function-name": "^7.4.4", "@babel/plugin-transform-function-name": "^7.4.4",
"@babel/plugin-transform-literals": "^7.2.0", "@babel/plugin-transform-literals": "^7.2.0",
"@babel/plugin-transform-member-expression-literals": "^7.2.0", "@babel/plugin-transform-member-expression-literals": "^7.2.0",
"@babel/plugin-transform-modules-amd": "^7.2.0", "@babel/plugin-transform-modules-amd": "^7.5.0",
"@babel/plugin-transform-modules-commonjs": "^7.4.4", "@babel/plugin-transform-modules-commonjs": "^7.5.0",
"@babel/plugin-transform-modules-systemjs": "^7.4.4", "@babel/plugin-transform-modules-systemjs": "^7.5.0",
"@babel/plugin-transform-modules-umd": "^7.2.0", "@babel/plugin-transform-modules-umd": "^7.2.0",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5",
"@babel/plugin-transform-new-target": "^7.4.4", "@babel/plugin-transform-new-target": "^7.4.4",
@ -803,12 +864,25 @@
"@babel/plugin-transform-template-literals": "^7.4.4", "@babel/plugin-transform-template-literals": "^7.4.4",
"@babel/plugin-transform-typeof-symbol": "^7.2.0", "@babel/plugin-transform-typeof-symbol": "^7.2.0",
"@babel/plugin-transform-unicode-regex": "^7.4.4", "@babel/plugin-transform-unicode-regex": "^7.4.4",
"@babel/types": "^7.4.4", "@babel/types": "^7.5.0",
"browserslist": "^4.6.0", "browserslist": "^4.6.0",
"core-js-compat": "^3.1.1", "core-js-compat": "^3.1.1",
"invariant": "^2.2.2", "invariant": "^2.2.2",
"js-levenshtein": "^1.1.3", "js-levenshtein": "^1.1.3",
"semver": "^5.5.0" "semver": "^5.5.0"
},
"dependencies": {
"@babel/types": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz",
"integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
"lodash": "^4.17.11",
"to-fast-properties": "^2.0.0"
}
}
} }
}, },
"@babel/preset-react": { "@babel/preset-react": {
@ -844,22 +918,33 @@
} }
}, },
"@babel/traverse": { "@babel/traverse": {
"version": "7.4.5", "version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.0.tgz",
"integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", "integrity": "sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.0.0", "@babel/code-frame": "^7.0.0",
"@babel/generator": "^7.4.4", "@babel/generator": "^7.5.0",
"@babel/helper-function-name": "^7.1.0", "@babel/helper-function-name": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.4.4", "@babel/helper-split-export-declaration": "^7.4.4",
"@babel/parser": "^7.4.5", "@babel/parser": "^7.5.0",
"@babel/types": "^7.4.4", "@babel/types": "^7.5.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"globals": "^11.1.0", "globals": "^11.1.0",
"lodash": "^4.17.11" "lodash": "^4.17.11"
}, },
"dependencies": { "dependencies": {
"@babel/types": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz",
"integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
"lodash": "^4.17.11",
"to-fast-properties": "^2.0.0"
}
},
"debug": { "debug": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@ -974,9 +1059,9 @@
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "12.0.10", "version": "12.6.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.2.tgz",
"integrity": "sha512-LcsGbPomWsad6wmMNv7nBLw7YYYyfdYcz6xryKYQhx89c3XXan+8Q6AJ43G5XDIaklaVkK3mE4fCb0SBvMiPSQ==", "integrity": "sha512-gojym4tX0FWeV2gsW4Xmzo5wxGjXGm550oVUII7f7G5o4BV6c7DBdiG1RRQd+y1bvqRyYtPfMK85UM95vsapqQ==",
"dev": true "dev": true
}, },
"@types/prop-types": { "@types/prop-types": {
@ -993,9 +1078,9 @@
"optional": true "optional": true
}, },
"@types/react": { "@types/react": {
"version": "16.8.22", "version": "16.8.23",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.22.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.23.tgz",
"integrity": "sha512-C3O1yVqk4sUXqWyx0wlys76eQfhrQhiDhDlHBrjER76lR2S2Agiid/KpOU9oCqj1dISStscz7xXz1Cg8+sCQeA==", "integrity": "sha512-abkEOIeljniUN9qB5onp++g0EY38h7atnDHxwKUFz1r3VH1+yG1OKi2sNPTyObL40goBmfKFpdii2lEzwLX1cA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/prop-types": "*", "@types/prop-types": "*",
@ -1276,15 +1361,9 @@
} }
}, },
"acorn": { "acorn": {
"version": "6.1.1", "version": "6.2.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz",
"integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==",
"dev": true
},
"acorn-dynamic-import": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz",
"integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==",
"dev": true "dev": true
}, },
"ajv": { "ajv": {
@ -1547,18 +1626,26 @@
"dev": true "dev": true
}, },
"autoprefixer": { "autoprefixer": {
"version": "9.6.0", "version": "9.6.1",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.0.tgz", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz",
"integrity": "sha512-kuip9YilBqhirhHEGHaBTZKXL//xxGnzvsD0FtBQa6z+A69qZD6s/BAX9VzDF1i9VKDquTJDQaPLSEhOnL6FvQ==", "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==",
"dev": true, "dev": true,
"requires": { "requires": {
"browserslist": "^4.6.1", "browserslist": "^4.6.3",
"caniuse-lite": "^1.0.30000971", "caniuse-lite": "^1.0.30000980",
"chalk": "^2.4.2", "chalk": "^2.4.2",
"normalize-range": "^0.1.2", "normalize-range": "^0.1.2",
"num2fraction": "^1.2.2", "num2fraction": "^1.2.2",
"postcss": "^7.0.16", "postcss": "^7.0.17",
"postcss-value-parser": "^3.3.1" "postcss-value-parser": "^4.0.0"
},
"dependencies": {
"postcss-value-parser": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz",
"integrity": "sha512-ESPktioptiSUchCKgggAkzdmkgzKfmp0EU8jXH+5kbIUB+unr0Y4CY9SRMvibuvYUBjNh1ACLbxqYNpdTQOteQ==",
"dev": true
}
} }
}, },
"awesome-typescript-loader": { "awesome-typescript-loader": {
@ -1652,6 +1739,15 @@
"pify": "^4.0.1" "pify": "^4.0.1"
} }
}, },
"babel-plugin-dynamic-import-node": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
"integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
"dev": true,
"requires": {
"object.assign": "^4.1.0"
}
},
"babel-plugin-minify-builtins": { "babel-plugin-minify-builtins": {
"version": "0.5.0", "version": "0.5.0",
"resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz", "resolved": "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz",
@ -2396,14 +2492,14 @@
} }
}, },
"browserslist": { "browserslist": {
"version": "4.6.3", "version": "4.6.4",
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.3.tgz", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz",
"integrity": "sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ==", "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==",
"dev": true, "dev": true,
"requires": { "requires": {
"caniuse-lite": "^1.0.30000975", "caniuse-lite": "^1.0.30000981",
"electron-to-chromium": "^1.3.164", "electron-to-chromium": "^1.3.188",
"node-releases": "^1.1.23" "node-releases": "^1.1.25"
} }
}, },
"buffer": { "buffer": {
@ -2639,9 +2735,9 @@
} }
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30000979", "version": "1.0.30000983",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000979.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000983.tgz",
"integrity": "sha512-gcu45yfq3B7Y+WB05fOMfr0EiSlq+1u+m6rPHyJli/Wy3PVQNGaU7VA4bZE5qw+AU2UVOBR/N5g1bzADUqdvFw==", "integrity": "sha512-/llD1bZ6qwNkt41AsvjsmwNOoA4ZB+8iqmf5LVyeSXuBODT/hAMFNVOh84NdUzoiYiSKqo5vQ3ZzeYHSi/olDQ==",
"dev": true "dev": true
}, },
"caseless": { "caseless": {
@ -3330,9 +3426,9 @@
} }
}, },
"csstype": { "csstype": {
"version": "2.6.5", "version": "2.6.6",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.5.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.6.tgz",
"integrity": "sha512-JsTaiksRsel5n7XwqPAfB0l3TFKdpjW/kgAELf9vrb5adGA7UCPLajKK5s3nFrcFm3Rkyp/Qkgl73ENc1UY3cA==", "integrity": "sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg==",
"dev": true "dev": true
}, },
"currently-unhandled": { "currently-unhandled": {
@ -3388,9 +3484,9 @@
"dev": true "dev": true
}, },
"dayjs": { "dayjs": {
"version": "1.8.14", "version": "1.8.15",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.14.tgz", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.15.tgz",
"integrity": "sha512-AVhDmRTe541iWirnoeFSSDDGvCT6HWaNQ4z2WmmzXMGZj6ph6ydao2teKq/eUtR43GPJXlYFD+C/SotG1P9wUQ==" "integrity": "sha512-HYHCI1nohG52B45vCQg8Re3hNDZbMroWPkhz50yaX7Lu0ATyjGsTdoYZBpjED9ar6chqTx2dmSmM8A51mojnAg=="
}, },
"debug": { "debug": {
"version": "3.1.0", "version": "3.1.0",
@ -3994,9 +4090,9 @@
"dev": true "dev": true
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.185", "version": "1.3.190",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.185.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.190.tgz",
"integrity": "sha512-h2iW0AHIwix8ifNJg/RkXhQjUDqBME8TvX8qQQMvvF2Tb6F2KnO6febvI+JqI9CdZOWnl90CPxdBRWGDrdk9UA==", "integrity": "sha512-cs9WnTnGBGnYYVFMCtLmr9jXNTOkdp95RLz5VhwzDn7dErg1Lnt9o4d01gEH69XlmRKWUr91Yu1hA+Hi8qW0PA==",
"dev": true "dev": true
}, },
"elliptic": { "elliptic": {
@ -7198,9 +7294,9 @@
"dev": true "dev": true
}, },
"lodash-es": { "lodash-es": {
"version": "4.17.11", "version": "4.17.14",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.14.tgz",
"integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==" "integrity": "sha512-7zchRrGa8UZXjD/4ivUWP1867jDkhzTG2c/uj739utSd7O/pFFdxspCemIFKEEjErbcqRzn8nKnGsi7mvTgRPA=="
}, },
"lodash.isplainobject": { "lodash.isplainobject": {
"version": "4.0.6", "version": "4.0.6",
@ -7441,9 +7537,9 @@
} }
}, },
"memoize-one": { "memoize-one": {
"version": "5.0.4", "version": "5.0.5",
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.0.4.tgz", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.0.5.tgz",
"integrity": "sha512-P0z5IeAH6qHHGkJIXWw0xC2HNEgkx/9uWWBQw64FJj3/ol14VYdfVGWWr0fXfjhhv3TKVIqUq65os6O4GUNksA==" "integrity": "sha512-ey6EpYv0tEaIbM/nTDOpHciXUvd+ackQrJgEzBwemhZZIWZjcyodqEcrmqDy2BKRTM3a65kKBV4WtLXJDt26SQ=="
}, },
"memory-fs": { "memory-fs": {
"version": "0.4.1", "version": "0.4.1",
@ -7893,9 +7989,9 @@
} }
}, },
"node-releases": { "node-releases": {
"version": "1.1.24", "version": "1.1.25",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.24.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.25.tgz",
"integrity": "sha512-wym2jptfuKowMmkZsfCSTsn8qAVo8zm+UiQA6l5dNqUcpfChZSnS/vbbpOeXczf+VdPhutxh+99lWHhdd6xKzg==", "integrity": "sha512-fI5BXuk83lKEoZDdH3gRhtsNgh05/wZacuXkgbiYkceE7+QIMXOg98n9ZV7mz27B+kFHnqHcUpscZZlGRSmTpQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"semver": "^5.3.0" "semver": "^5.3.0"
@ -9219,16 +9315,15 @@
} }
}, },
"react-hot-loader": { "react-hot-loader": {
"version": "4.12.1", "version": "4.12.6",
"resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.1.tgz", "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.6.tgz",
"integrity": "sha512-/DxbaR1/PYaCu8HHjD2U8Wxvy//MeHMppsa63UPFzkSoUSuDJ/SfZdff2IMz0JbIhkKFvalA98nPiBppNLIP8g==", "integrity": "sha512-tRXWgF5MhQSEXX3EHIplCOWCzSg+ye7ddHeQLt7Z+CaZMeEfeCL2/uSGITIzWXOQYhefnLX8IZtr2cff4xIrww==",
"dev": true, "dev": true,
"requires": { "requires": {
"fast-levenshtein": "^2.0.6", "fast-levenshtein": "^2.0.6",
"global": "^4.3.0", "global": "^4.3.0",
"hoist-non-react-statics": "^3.3.0", "hoist-non-react-statics": "^3.3.0",
"loader-utils": "^1.1.0", "loader-utils": "^1.1.0",
"lodash": "^4.17.11",
"prop-types": "^15.6.1", "prop-types": "^15.6.1",
"react-lifecycles-compat": "^3.0.4", "react-lifecycles-compat": "^3.0.4",
"shallowequal": "^1.0.2", "shallowequal": "^1.0.2",
@ -9291,9 +9386,9 @@
"integrity": "sha512-MYXhTY1BZpdJFjUovvYHVBmkq79szK/k7V3MO+36gJkWGkrXKtyr4vCPtpphaTLRAdDNoYEYFZWE8LjN+PIHNg==" "integrity": "sha512-MYXhTY1BZpdJFjUovvYHVBmkq79szK/k7V3MO+36gJkWGkrXKtyr4vCPtpphaTLRAdDNoYEYFZWE8LjN+PIHNg=="
}, },
"react-window": { "react-window": {
"version": "1.8.4", "version": "1.8.5",
"resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.4.tgz", "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.5.tgz",
"integrity": "sha512-vOWwy6gOLT/Ug5aUQt0KflxDOZppKloW1CC1oUFDEFe6TXZ02VvOV2C0gYWbCNN8MXFctSxJULoyU01zno0lyg==", "integrity": "sha512-HeTwlNa37AFa8MDZFZOKcNEkuF2YflA0hpGPiTT9vR7OawEt+GZbfM6wqkBahD3D3pUjIabQYzsnY/BSJbgq6Q==",
"requires": { "requires": {
"@babel/runtime": "^7.0.0", "@babel/runtime": "^7.0.0",
"memoize-one": ">=3.1.1 <6" "memoize-one": ">=3.1.1 <6"
@ -9457,9 +9552,9 @@
} }
}, },
"regexp-tree": { "regexp-tree": {
"version": "0.1.10", "version": "0.1.11",
"resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.10.tgz", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz",
"integrity": "sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ==", "integrity": "sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg==",
"dev": true "dev": true
}, },
"regexpu-core": { "regexpu-core": {
@ -9805,9 +9900,9 @@
"dev": true "dev": true
}, },
"sass": { "sass": {
"version": "1.22.2", "version": "1.22.4",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.22.2.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.4.tgz",
"integrity": "sha512-enuQuy/CbfrZLA2vOy9tB7CK7pP5bZllnMbr5nPGWCFelwt0EMUVGC11gsv9rybkWc8pp/NKVY/c5+AKyjbnXg==", "integrity": "sha512-gQFNzYKlAn9ee6Qy1UhTxy0G24QR5BWP61AN61jAEqwauzVCP5qjUveO/WkIj72po0ljncdVXo96EQR+ig2lRw==",
"dev": true, "dev": true,
"requires": { "requires": {
"chokidar": ">=2.0.0 <4.0.0" "chokidar": ">=2.0.0 <4.0.0"
@ -11775,9 +11870,9 @@
"dev": true "dev": true
}, },
"typescript": { "typescript": {
"version": "3.5.2", "version": "3.5.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
"integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==", "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==",
"dev": true "dev": true
}, },
"uglify-js": { "uglify-js": {
@ -12260,17 +12355,16 @@
} }
}, },
"webpack": { "webpack": {
"version": "4.35.2", "version": "4.35.3",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.3.tgz",
"integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==", "integrity": "sha512-xggQPwr9ILlXzz61lHzjvgoqGU08v5+Wnut19Uv3GaTtzN4xBTcwnobodrXE142EL1tOiS5WVEButooGzcQzTA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@webassemblyjs/ast": "1.8.5", "@webassemblyjs/ast": "1.8.5",
"@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5",
"@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5",
"@webassemblyjs/wasm-parser": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5",
"acorn": "^6.0.5", "acorn": "^6.2.0",
"acorn-dynamic-import": "^4.0.0",
"ajv": "^6.1.0", "ajv": "^6.1.0",
"ajv-keywords": "^3.1.0", "ajv-keywords": "^3.1.0",
"chrome-trace-event": "^1.0.0", "chrome-trace-event": "^1.0.0",

View File

@ -28,20 +28,20 @@
"contributors:generate": "all-contributors generate" "contributors:generate": "all-contributors generate"
}, },
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.4.4", "@babel/cli": "^7.5.0",
"@babel/core": "^7.4.5", "@babel/core": "^7.5.4",
"@babel/preset-env": "^7.4.5", "@babel/preset-env": "^7.5.4",
"@babel/preset-react": "^7.0.0", "@babel/preset-react": "^7.0.0",
"@hot-loader/react-dom": "^16.8.6", "@hot-loader/react-dom": "^16.8.6",
"@types/classnames": "^2.2.8", "@types/classnames": "^2.2.8",
"@types/lodash-es": "^4.17.3", "@types/lodash-es": "^4.17.3",
"@types/node": "^12.0.10", "@types/node": "^12.6.2",
"@types/react": "^16.8.22", "@types/react": "^16.8.23",
"@types/react-dom": "^16.8.4", "@types/react-dom": "^16.8.4",
"@types/react-router-dom": "^4.3.4", "@types/react-router-dom": "^4.3.4",
"@types/react-virtualized-auto-sizer": "^1.0.0", "@types/react-virtualized-auto-sizer": "^1.0.0",
"@types/react-window": "^1.8.0", "@types/react-window": "^1.8.0",
"autoprefixer": "^9.6.0", "autoprefixer": "^9.6.1",
"awesome-typescript-loader": "^5.2.1", "awesome-typescript-loader": "^5.2.1",
"babel-loader": "^8.0.6", "babel-loader": "^8.0.6",
"babel-preset-minify": "^0.5.0", "babel-preset-minify": "^0.5.0",
@ -52,8 +52,8 @@
"mini-css-extract-plugin": "^0.7.0", "mini-css-extract-plugin": "^0.7.0",
"offline-plugin": "^5.0.7", "offline-plugin": "^5.0.7",
"postcss-loader": "^3.0.0", "postcss-loader": "^3.0.0",
"react-hot-loader": "^4.12.1", "react-hot-loader": "^4.12.6",
"sass": "^1.22.2", "sass": "^1.22.4",
"sass-loader": "^7.1.0", "sass-loader": "^7.1.0",
"style-loader": "^0.23.1", "style-loader": "^0.23.1",
"stylelint": "^10.1.0", "stylelint": "^10.1.0",
@ -63,8 +63,8 @@
"tslint": "^5.18.0", "tslint": "^5.18.0",
"tslint-config-standard": "^8.0.1", "tslint-config-standard": "^8.0.1",
"tslint-loader": "^3.6.0", "tslint-loader": "^3.6.0",
"typescript": "^3.5.2", "typescript": "^3.5.3",
"webpack": "^4.35.2", "webpack": "^4.35.3",
"webpack-cli": "^3.3.5", "webpack-cli": "^3.3.5",
"webpack-dev-middleware": "^3.7.0", "webpack-dev-middleware": "^3.7.0",
"webpack-dev-server": "^3.7.2", "webpack-dev-server": "^3.7.2",
@ -74,15 +74,15 @@
"dependencies": { "dependencies": {
"axios": "^0.19.0", "axios": "^0.19.0",
"classnames": "^2.2.6", "classnames": "^2.2.6",
"dayjs": "^1.8.14", "dayjs": "^1.8.15",
"eventemitter3": "^4.0.0", "eventemitter3": "^4.0.0",
"immer": "^3.1.3", "immer": "^3.1.3",
"lodash-es": "^4.17.11", "lodash-es": "^4.17.14",
"react": "^16.8.6", "react": "^16.8.6",
"react-dom": "^16.8.6", "react-dom": "^16.8.6",
"react-router-dom": "^5.0.1", "react-router-dom": "^5.0.1",
"react-virtualized-auto-sizer": "^1.0.2", "react-virtualized-auto-sizer": "^1.0.2",
"react-window": "^1.8.4", "react-window": "^1.8.5",
"unstated-next": "^1.1.0", "unstated-next": "^1.1.0",
"use-immer": "^0.3.2" "use-immer": "^0.3.2"
} }

View File

@ -9,7 +9,7 @@ export default function ExternalController () {
const { t } = useTranslation('Settings') const { t } = useTranslation('Settings')
const { data: info, update, fetch } = containers.useAPIInfo() const { data: info, update, fetch } = containers.useAPIInfo()
const { unauthorized: { hidden, visible } } = containers.useData() const { unauthorized: { hidden, visible } } = containers.useData()
const { value, set, change } = useObject({ const { value, setMulti, setSingle } = useObject({
hostname: '', hostname: '',
port: '', port: '',
secret: '' secret: ''
@ -20,7 +20,7 @@ export default function ExternalController () {
}, []) }, [])
useEffect(() => { useEffect(() => {
set({ hostname: info.hostname, port: info.port, secret: info.secret }) setMulti({ hostname: info.hostname, port: info.port, secret: info.secret })
}, [info]) }, [info])
function handleOk () { function handleOk () {
@ -46,7 +46,7 @@ export default function ExternalController () {
align="left" align="left"
inside={true} inside={true}
value={value.hostname} value={value.hostname}
onChange={hostname => change('hostname', hostname)} onChange={hostname => setSingle('hostname', hostname)}
/> />
</Col> </Col>
</Row> </Row>
@ -57,7 +57,7 @@ export default function ExternalController () {
align="left" align="left"
inside={true} inside={true}
value={value.port} value={value.port}
onChange={port => change('port', port)} onChange={port => setSingle('port', port)}
/> />
</Col> </Col>
</Row> </Row>
@ -68,7 +68,7 @@ export default function ExternalController () {
align="left" align="left"
inside={true} inside={true}
value={value.secret} value={value.secret}
onChange={secret => change('secret', secret)} onChange={secret => setSingle('secret', secret)}
/> />
</Col> </Col>
</Row> </Row>

View File

@ -23,7 +23,7 @@ export default function Settings () {
const { data: apiInfo } = containers.useAPIInfo() const { data: apiInfo } = containers.useAPIInfo()
const { useTranslation, setLang, lang } = containers.useI18n() const { useTranslation, setLang, lang } = containers.useI18n()
const { t } = useTranslation('Settings') const { t } = useTranslation('Settings')
const { value: info, change } = useObject({ const { value: info, setSingle } = useObject({
socks5ProxyPort: 7891, socks5ProxyPort: 7891,
httpProxyPort: 7890, httpProxyPort: 7890,
isClashX: false isClashX: false
@ -32,13 +32,13 @@ export default function Settings () {
useEffect(() => { useEffect(() => {
fetch() fetch()
if (isClashX()) { if (isClashX()) {
fetchClashXData().then(() => change('isClashX', true)) fetchClashXData().then(() => setSingle('isClashX', true))
} }
}, []) }, [])
useEffect(() => { useEffect(() => {
change('socks5ProxyPort', data.general.socksPort) setSingle('socks5ProxyPort', data.general.socksPort)
change('httpProxyPort', data.general.port) setSingle('httpProxyPort', data.general.port)
}, [data]) }, [data])
async function handleProxyModeChange (mode: string) { async function handleProxyModeChange (mode: string) {
@ -56,7 +56,7 @@ export default function Settings () {
const [, err] = await to(updateConfig({ 'port': info.httpProxyPort })) const [, err] = await to(updateConfig({ 'port': info.httpProxyPort }))
if (!err) { if (!err) {
await fetch() await fetch()
change('httpProxyPort', data.general.port) setSingle('httpProxyPort', data.general.port)
} }
} }
@ -64,7 +64,7 @@ export default function Settings () {
const [, err] = await to(updateConfig({ 'socks-port': info.socks5ProxyPort })) const [, err] = await to(updateConfig({ 'socks-port': info.socks5ProxyPort }))
if (!err) { if (!err) {
await fetch() await fetch()
change('socks5ProxyPort', data.general.socksPort) setSingle('socks5ProxyPort', data.general.socksPort)
} }
} }
@ -162,7 +162,7 @@ export default function Settings () {
<Col span={8}> <Col span={8}>
<Input <Input
value={info.socks5ProxyPort} value={info.socks5ProxyPort}
onChange={socks5ProxyPort => change('socks5ProxyPort', parseInt(socks5ProxyPort, 10))} onChange={socks5ProxyPort => setSingle('socks5ProxyPort', parseInt(socks5ProxyPort, 10))}
onBlur={handleSocksPortSave} onBlur={handleSocksPortSave}
/> />
</Col> </Col>
@ -176,7 +176,7 @@ export default function Settings () {
<Col span={8}> <Col span={8}>
<Input <Input
value={info.httpProxyPort} value={info.httpProxyPort}
onChange={httpProxyPort => change('httpProxyPort', parseInt(httpProxyPort, 10))} onChange={httpProxyPort => setSingle('httpProxyPort', parseInt(httpProxyPort, 10))}
onBlur={handleHttpPortSave} onBlur={handleHttpPortSave}
/> />
</Col> </Col>

View File

@ -3,23 +3,23 @@ import { useImmer } from 'use-immer'
import { createContainer } from 'unstated-next' import { createContainer } from 'unstated-next'
export function useObject<T extends object> (initialValue: T) { export function useObject<T extends object> (initialValue: T) {
let [copy, setCopy] = useImmer(initialValue) let [copy, set] = useImmer(initialValue)
function change<K extends keyof Draft<T>> (key: K, value: Draft<T>[K]) { function setSingle<K extends keyof Draft<T>> (key: K, value: Draft<T>[K]) {
setCopy(draft => { set(draft => {
draft[key] = value draft[key] = value
}) })
} }
function set<K extends keyof Draft<T>, U extends keyof T> (newValue: T) { function setMulti<K extends keyof Draft<T>, U extends keyof T> (newValue: Partial<T>) {
setCopy((draft: Draft<T>) => { set((draft: Draft<T>) => {
(draft as any).isTemplate = true
for (const key of Object.keys(newValue)) { for (const key of Object.keys(newValue)) {
draft[key as K] = newValue[key as U] as any draft[key as K] = newValue[key as U] as any
} }
}) })
} }
return { value: copy, change, set }
return { value: copy, setSingle, setMulti, set }
} }
type containerFn<Value, State = void> = (initialState?: State) => Value type containerFn<Value, State = void> = (initialState?: State) => Value

View File

@ -7,7 +7,7 @@ import { setLocalStorageItem, partition, to } from '@lib/helper'
import { useI18n } from '@i18n' import { useI18n } from '@i18n'
function useData () { function useData () {
const { value: data, change } = useObject<Models.Data>({ const { value: data, setSingle, setMulti } = useObject<Models.Data>({
general: {}, general: {},
proxy: [], proxy: [],
proxyGroup: [], proxyGroup: [],
@ -32,7 +32,7 @@ function useData () {
const [{ data: general }, rawProxies, rules] = resp const [{ data: general }, rawProxies, rules] = resp
change('general', { setSingle('general', {
port: general.port, port: general.port,
socksPort: general['socks-port'], socksPort: general['socks-port'],
redirPort: general['redir-port'], redirPort: general['redir-port'],
@ -49,16 +49,18 @@ function useData () {
.map(key => ({ ...rawProxies.data.proxies[key], name: key })) .map(key => ({ ...rawProxies.data.proxies[key], name: key }))
const [proxy, groups] = partition(proxies, proxy => !policyGroup.has(proxy.type)) const [proxy, groups] = partition(proxies, proxy => !policyGroup.has(proxy.type))
change('proxy', proxy as API.Proxy[]) setMulti({
change('proxyGroup', groups as API.Group[]) proxy: proxy as API.Proxy[],
change('rules', rules.data.rules) proxyGroup: groups as API.Group[],
rules: rules.data.rules
})
} }
return { data, fetch, unauthorized: { visible, show, hidden } } return { data, fetch, unauthorized: { visible, show, hidden } }
} }
function useAPIInfo () { function useAPIInfo () {
const { value: data, set } = useObject<Models.APIInfo>({ const { value: data, setMulti } = useObject<Models.APIInfo>({
hostname: '127.0.0.1', hostname: '127.0.0.1',
port: '9090', port: '9090',
secret: '' secret: ''
@ -66,7 +68,7 @@ function useAPIInfo () {
async function fetch () { async function fetch () {
const info = await API.getExternalControllerConfig() const info = await API.getExternalControllerConfig()
set({ ...info }) setMulti({ ...info })
} }
async function update (info: Models.APIInfo) { async function update (info: Models.APIInfo) {
@ -81,7 +83,7 @@ function useAPIInfo () {
} }
function useClashXData () { function useClashXData () {
const { value: data, set } = useObject<Models.ClashXData>({ const { value: data, setMulti } = useObject<Models.ClashXData>({
startAtLogin: false, startAtLogin: false,
systemProxy: false systemProxy: false
}) })
@ -90,7 +92,7 @@ function useClashXData () {
const startAtLogin = await jsBridge.getStartAtLogin() const startAtLogin = await jsBridge.getStartAtLogin()
const systemProxy = await jsBridge.isSystemProxySet() const systemProxy = await jsBridge.isSystemProxySet()
set({ startAtLogin, systemProxy }) setMulti({ startAtLogin, systemProxy })
} }
return { data, fetch } return { data, fetch }