refactor: generalize JSON patching

This commit is contained in:
cha0s 2021-01-25 17:04:04 -06:00
parent cbb2f35e7f
commit 36558f4fb4
5 changed files with 302 additions and 17 deletions

View File

@ -1,14 +1,15 @@
import './existent.scss';
import {PropTypes, React} from '@latus/react';
import {join} from 'path';
import useTraitPatcher from '../hooks/use-trait-patcher';
import {PropTypes, React} from '@latus/react';
import {useJsonPatcher} from '@persea/json';
const Existent = ({
json,
path,
}) => {
const patchTrait = useTraitPatcher(json, path);
const patchState = useJsonPatcher(json.state, join(path, 'state'));
return (
<div className="existent">
<label>
@ -17,7 +18,7 @@ const Existent = ({
type="checkbox"
checked={json.state.isTicking}
onChange={(event) => {
patchTrait('state', 'isTicking', event.target.checked);
patchState('isTicking', event.target.checked);
}}
/>
</label>
@ -27,7 +28,7 @@ const Existent = ({
type="text"
value={json.state.name}
onChange={(event) => {
patchTrait('state', 'name', event.target.value);
patchState('name', event.target.value);
}}
/>
</label>

View File

@ -20,6 +20,7 @@
"dependencies": {
"@avocado/resource": "^2.0.0",
"@latus/react": "^2.0.0",
"@persea/core": "^1.0.0",
"autoprefixer": "^9.8.6",
"debug": "4.3.1",
"fast-json-patch": "^3.0.0-1",

View File

@ -1,21 +1,19 @@
import {join} from 'path';
import {useDispatch} from '@latus/redux';
import {useProject, useUri} from '@persea/core';
import {patchJsonResource} from '@persea/json';
import {patchJsonResource} from '../state/json';
export default (json, path) => {
const dispatch = useDispatch();
const project = useProject();
const uri = useUri();
return (type, key, value) => {
return (key, value) => {
dispatch(patchJsonResource({
patch: [
{
op: 'replace',
path: join(path, type),
path,
value: {
...json[type],
...json,
[key]: value,
},
},

View File

@ -5,6 +5,7 @@ import {applyPatch} from 'fast-json-patch';
import JsonResourceComponent from './json';
import {patchJsonResource} from './state';
export {default as useJsonPatcher} from './hooks/use-json-patcher';
export * from './state';
export default {

View File

@ -2,7 +2,7 @@
# yarn lockfile v1
"@avocado/core@2.0.0":
"@avocado/core@2.0.0", "@avocado/core@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@avocado%2fcore/-/core-2.0.0.tgz#c18b0f64e4503c1a9dec67586f7ebf9bda5d129e"
integrity sha512-XVFaKJ89ajw+Sw9uwFgYblRduOiZ0un5gXu7eSbN2LAA+KjyrvfCcLNnYVKJZ67njkMGLq9nE2GSzZEeEmbkfA==
@ -10,7 +10,53 @@
autoprefixer "^9.8.6"
debug "4.3.1"
"@avocado/resource@^2.0.0":
"@avocado/graphics@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@avocado%2fgraphics/-/graphics-2.0.0.tgz#c881ce2e1d4ace9763d367fa81ac2487ea9931b3"
integrity sha512-zLPglQ5J4rE7zN1qPyfecWtkov/LkW7J0abkb6YUk2fsB6ccMZ23737VyjW6N4/xL+ZtXAqaElMZ9khFSUEPpg==
dependencies:
"@avocado/core" "2.0.0"
"@avocado/input" "2.0.0"
"@avocado/math" "2.0.0"
"@avocado/resource" "2.0.0"
"@avocado/traits" "^2.0.0"
"@latus/core" "^2.0.0"
"@latus/socket" "2.0.0"
"@pixi/constants" "^5.3.6"
"@pixi/core" "^5.3.6"
"@pixi/display" "^5.3.6"
"@pixi/filter-advanced-bloom" "^3.2.0"
"@pixi/filter-color-matrix" "^5.3.6"
"@pixi/graphics" "^5.3.6"
"@pixi/settings" "^5.3.6"
"@pixi/sprite" "^5.3.6"
"@pixi/text" "^5.3.6"
autoprefixer "^9.8.6"
debug "4.3.1"
image-size "^0.9.3"
"@avocado/input@2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@avocado%2finput/-/input-2.0.0.tgz#0a4cc8e933af72480a900c592a5025d117deea4f"
integrity sha512-aTbLXYM8JdFaD8CrMb4747BmRpxPucECoQcznlAW/ulndIRGhGBaSkDa6OwHa9oH7KfaL5Dcnu4EWaOAKkTcXA==
dependencies:
"@latus/core" "2.0.0"
"@latus/socket" "2.0.0"
autoprefixer "^9.8.6"
debug "4.3.1"
"@avocado/math@2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@avocado%2fmath/-/math-2.0.0.tgz#0c2c0b2665b6ab65696824f49382b294fd0cb30d"
integrity sha512-5Bfd85WFgXqnKtW7cEsLynHyx0uhgvmKKvOhC8fnf25nOXOx46RG5cw05PVUKAEYd6VBzbLUF4P8oo7n7hVfpQ==
dependencies:
"@avocado/core" "2.0.0"
"@latus/core" "^2.0.0"
autoprefixer "^9.8.6"
d3-quadtree "^2.0.0"
debug "4.3.1"
"@avocado/resource@2.0.0", "@avocado/resource@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@avocado%2fresource/-/resource-2.0.0.tgz#3ec04329d6e1357f67a956fca48062dcbb7107e1"
integrity sha512-V7PZsouL6rpAhTcSoyVIxZBiijFN++BDHfxwbDxiA1IaZ8ur2Af77IlsRoZhgihY2PDp3p1hypL24HJUJ2WQ9Q==
@ -22,6 +68,30 @@
deepmerge "^4.2.2"
uuid "^8.3.2"
"@avocado/s13n@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@avocado%2fs13n/-/s13n-2.0.0.tgz#2849a8dd3f2ec91821ee18ffa51f6d6ccc3ac957"
integrity sha512-I26AuKZQj7g82RzqCYxtUPNX9ZedNWoPaNJnenJbMCDjznklNIFW0ZVpgbOb5Rqoa99YFDpafkEsaMKBGZTW6g==
dependencies:
"@avocado/resource" "^2.0.0"
"@latus/core" "2.0.0"
"@latus/socket" "2.0.0"
autoprefixer "^9.8.6"
debug "4.3.1"
msgpack-lite "^0.1.26"
"@avocado/traits@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@avocado%2ftraits/-/traits-2.0.0.tgz#f31b45d27491a5e502f0ad119672cc7b0b4a627b"
integrity sha512-zL7iGUeFb4odHDuk/2wK3O/ntGWw7OMYHGmJROT5sOTyjE4+G42AvUlKfaAeza109yH8gDL7IQxhWX7r1zG60g==
dependencies:
"@avocado/core" "^2.0.0"
"@avocado/resource" "^2.0.0"
"@avocado/s13n" "^2.0.0"
"@latus/core" "^2.0.0"
autoprefixer "^9.8.6"
debug "4.3.1"
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11":
version "7.12.11"
resolved "http://npm.cha0sdev/@babel%2fcode-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
@ -864,7 +934,7 @@
core-js-pure "^3.0.0"
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.8.4":
"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.3.1", "@babel/runtime@^7.8.4":
version "7.12.5"
resolved "http://npm.cha0sdev/@babel%2fruntime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e"
integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==
@ -929,7 +999,7 @@
object-assign "^4.1.1"
scheduler "^0.20.1"
"@latus/core@2.0.0":
"@latus/core@2.0.0", "@latus/core@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fcore/-/core-2.0.0.tgz#12a0f3c11c9832a60e6726ea74ce0ae9b45e9faf"
integrity sha512-JMxgl8Qsvby2OKtzXEs7cjamvsgVxEbJXbjebsmDl+J9Cq5513/4Xpq37EYYvT6FEZpoHFoIkQsaG+89JQzTwg==
@ -1002,7 +1072,7 @@
reduce-reducers "^1.0.4"
redux "^4.0.5"
"@latus/socket@^2.0.0":
"@latus/socket@2.0.0", "@latus/socket@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fsocket/-/socket-2.0.0.tgz#72f743b2cfbfb5e0d57a9dd0ab062691c7224fff"
integrity sha512-bjFJEhqv5XF2vSujelCcyHpMwFiQ2ZNbalpwrX4GhsfNUD8dDo1WdKd2WkqC7fWVZLhLulxodY0cqt2vYAIYKQ==
@ -1152,6 +1222,137 @@
babel-merge "^3.0.0"
deepmerge "^1.5.2"
"@persea/core@^1.0.0":
version "1.0.0"
resolved "http://npm.cha0sdev/@persea%2fcore/-/core-1.0.0.tgz#bb62501578724a6f12f02a5acebf4f3a53a89767"
integrity sha512-eoeqLMaCGD7MIJDi5fGoQl0oSZ5aoPH9kfHm1kYmrUtWI2JxXxz3KLHXkoIIobwys8xCPVWqKKWpeuLEdMF5TA==
dependencies:
"@avocado/graphics" "^2.0.0"
"@latus/core" "^2.0.0"
"@latus/react" "^2.0.0"
autoprefixer "^9.8.6"
debug "4.3.1"
express "^4.17.1"
glob "^7.1.6"
lodash.flatten "^4.4.0"
natsort "^2.0.2"
react-hex-editor "^0.3.0"
"@pixi/constants@5.3.7", "@pixi/constants@^5.3.6":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2fconstants/-/constants-5.3.7.tgz#a2e1789a98deb3713cfcb3eba3db84588bc9161e"
integrity sha512-MBcgIM/mSqonFezkCI9080IqNlc0wb8S9QJ5otBdseOWUQa/ua2jF7Jd1sCBGmi0IzS9/NOHFXzZVTdS7AC7Ow==
"@pixi/core@5.3.7", "@pixi/core@^5.3.6":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2fcore/-/core-5.3.7.tgz#a8d65ca17f0c4ef8c0c5a22d31b9e02a4ab73b93"
integrity sha512-WBhU2f5aJSVVaFP55FFBFKjKlRf5fYGxgA/U3kD4yD4Y3d3d6V3MIZv+o0VX+kBs1Eq7ePZqEv2smDrlzzMEjQ==
dependencies:
"@pixi/constants" "5.3.7"
"@pixi/math" "5.3.7"
"@pixi/runner" "5.3.7"
"@pixi/settings" "5.3.7"
"@pixi/ticker" "5.3.7"
"@pixi/utils" "5.3.7"
"@pixi/display@5.3.7", "@pixi/display@^5.3.6":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2fdisplay/-/display-5.3.7.tgz#b661d2ecfd2a67f213665a0698acd29e17eee8fe"
integrity sha512-ma1JyLe5vaEgmaOR+anvj5YOKqT9OEWnboIe7NVmwGF1CZ7JFnB12rsRulHUsSaFG9bP5xjvroAZjFg/WvyGLw==
dependencies:
"@pixi/math" "5.3.7"
"@pixi/settings" "5.3.7"
"@pixi/utils" "5.3.7"
"@pixi/filter-advanced-bloom@^3.2.0":
version "3.2.0"
resolved "http://npm.cha0sdev/@pixi%2ffilter-advanced-bloom/-/filter-advanced-bloom-3.2.0.tgz#c345adebf6605d814fb7ff8fda2292ed3d04ec01"
integrity sha512-t5WlbFGewxYQ8biRsgQCW/j7vNwQxYVDv3DpHJ7PghNdYlD2OKQ7b6bgcUzFQcsbJ2fm/8e+dSKI17zCK5idMg==
dependencies:
"@pixi/filter-kawase-blur" "3.2.0"
"@pixi/filter-color-matrix@^5.3.6":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2ffilter-color-matrix/-/filter-color-matrix-5.3.7.tgz#230cafe46bde36e25441b13f3ac5dd8e8fee4311"
integrity sha512-Z12cxoHx9uMh3CZ0PLVRzsaFHHF/CfU3J83KI9k+Bg/DFOh/J/5EToCd44jYJbMKp3nvXcO1EJyZ3wwC/IsyfQ==
dependencies:
"@pixi/core" "5.3.7"
"@pixi/filter-kawase-blur@3.2.0":
version "3.2.0"
resolved "http://npm.cha0sdev/@pixi%2ffilter-kawase-blur/-/filter-kawase-blur-3.2.0.tgz#f3fe6e3c17d191ae353959768c1170e85b2ad1dc"
integrity sha512-IO1UKn/XLvnV+ya4r1UOC9fTfXZjWvH9m6eQ/U+moBsQN5I5FihQfXCu586X4jb9VHNu3gFl7SUzirobhBfgtA==
"@pixi/graphics@^5.3.6":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2fgraphics/-/graphics-5.3.7.tgz#36ae80e2508e0a9c61ce454807d517d370d90a74"
integrity sha512-+6+bT/AC29a1Hw5XDxsH1UqBsXSqcna7wNTTrBQ02owotIJtyRc6w48f5qxzhxycumyVCR87IV5tAtdwX3xhag==
dependencies:
"@pixi/constants" "5.3.7"
"@pixi/core" "5.3.7"
"@pixi/display" "5.3.7"
"@pixi/math" "5.3.7"
"@pixi/sprite" "5.3.7"
"@pixi/utils" "5.3.7"
"@pixi/math@5.3.7":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2fmath/-/math-5.3.7.tgz#066e7ea149fd38db8d8a9584aac5f41d02b36bdd"
integrity sha512-WnjUwX7rkxR36F0xknpsNd9BsfQosV0BbyFE0Il88IURBM3Tu9X4tC7RGJDgWU+aXw23HgHu0j+MWJrCVCM2fA==
"@pixi/runner@5.3.7":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2frunner/-/runner-5.3.7.tgz#78ed2c92b392b8c099d2e4557dded7faa921446b"
integrity sha512-kt5apNb21HAvpBaDaPRs33k2O0VzrKe13w4we8iftCpXX8w68ErAY1lH68vmtDNrxnlHg4M9nRgEoMeiHlo2RA==
"@pixi/settings@5.3.7", "@pixi/settings@^5.3.6":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2fsettings/-/settings-5.3.7.tgz#b661883231bf2a1ff5260c214bd0c4b438759841"
integrity sha512-g6AoRSGWxU34gtKSQwX2AMQoLUv86L/5iIXRsqo+X4bfUSCenTci1X7ueVrSIbo39dxh6IOpriZF2Yk3TeHG5w==
dependencies:
ismobilejs "^1.1.0"
"@pixi/sprite@5.3.7", "@pixi/sprite@^5.3.6":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2fsprite/-/sprite-5.3.7.tgz#c6edf3d4a9928868696b62e35a60ded27d167058"
integrity sha512-Bjl+NOOvigEzUsm1cDr1KmBUpPSWO8pDXpUPTi+v2N75gwRfTycmj5f2TU0QmMW3Gc6sv0CB0AkL7dkMPwPb8g==
dependencies:
"@pixi/constants" "5.3.7"
"@pixi/core" "5.3.7"
"@pixi/display" "5.3.7"
"@pixi/math" "5.3.7"
"@pixi/settings" "5.3.7"
"@pixi/utils" "5.3.7"
"@pixi/text@^5.3.6":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2ftext/-/text-5.3.7.tgz#cb71b2576bdc1f66fb79977d281f9575dd06d3d5"
integrity sha512-WVAc31MDgHTvP0dJNWsvLVJhjeVGZ3NrLpHcH9iIAd6HVO5Z+i+fk4zvodD+Y7jWU0psx8ZD8xe1wy8ECfbCBA==
dependencies:
"@pixi/core" "5.3.7"
"@pixi/math" "5.3.7"
"@pixi/settings" "5.3.7"
"@pixi/sprite" "5.3.7"
"@pixi/utils" "5.3.7"
"@pixi/ticker@5.3.7":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2fticker/-/ticker-5.3.7.tgz#c331b270042d507fe18543ae435a9a857a8fd5ae"
integrity sha512-ZEXiJwPtuPeWa0QmRODF5qK0+ugZu/xeq7QxCvFOCc3NFVBeGms4g92HPucOju9R7jcODIoJxtICALsuwLAr9w==
dependencies:
"@pixi/settings" "5.3.7"
"@pixi/utils@5.3.7":
version "5.3.7"
resolved "http://npm.cha0sdev/@pixi%2futils/-/utils-5.3.7.tgz#55fe2a2fbf0fba842da5a602576ce68c498e7e16"
integrity sha512-f8zAeHHURxfwBr8MZiXEIwY2h9wbS6vN0ypvapGvKFOexZ1EInTs35FhEiRWzLEPLHyn1RgCdKzR2zl++E4tIw==
dependencies:
"@pixi/constants" "5.3.7"
"@pixi/settings" "5.3.7"
earcut "^2.1.5"
eventemitter3 "^3.1.0"
url "^0.11.0"
"@reduxjs/toolkit@^1.5.0":
version "1.5.0"
resolved "http://npm.cha0sdev/@reduxjs%2ftoolkit/-/toolkit-1.5.0.tgz#1025c1ccb224d1fc06d8d98a61f6717d57e6d477"
@ -2376,6 +2577,11 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
classnames@^2.2.6:
version "2.2.6"
resolved "http://npm.cha0sdev/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce"
integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==
clean-css@4.2.x, clean-css@^4.2.3:
version "4.2.3"
resolved "http://npm.cha0sdev/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
@ -2782,6 +2988,11 @@ cyclist@^1.0.1:
resolved "http://npm.cha0sdev/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=
d3-quadtree@^2.0.0:
version "2.0.0"
resolved "http://npm.cha0sdev/d3-quadtree/-/d3-quadtree-2.0.0.tgz#edbad045cef88701f6fee3aee8e93fb332d30f9d"
integrity sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==
damerau-levenshtein@^1.0.6:
version "1.0.6"
resolved "http://npm.cha0sdev/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791"
@ -3100,6 +3311,11 @@ duplexify@^3.4.2, duplexify@^3.6.0:
readable-stream "^2.0.0"
stream-shift "^1.0.0"
earcut@^2.1.5:
version "2.2.2"
resolved "http://npm.cha0sdev/earcut/-/earcut-2.2.2.tgz#41b0bc35f63e0fe80da7cddff28511e7e2e80d11"
integrity sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "http://npm.cha0sdev/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
@ -3592,6 +3808,11 @@ event-lite@^0.1.1:
resolved "http://npm.cha0sdev/event-lite/-/event-lite-0.1.2.tgz#838a3e0fdddef8cc90f128006c8e55a4e4e4c11b"
integrity sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==
eventemitter3@^3.1.0:
version "3.1.2"
resolved "http://npm.cha0sdev/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
eventemitter3@^4.0.0:
version "4.0.7"
resolved "http://npm.cha0sdev/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
@ -4123,7 +4344,7 @@ glob-parent@^5.0.0, glob-parent@~5.1.0:
dependencies:
is-glob "^4.0.1"
glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.1:
glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1:
version "7.1.6"
resolved "http://npm.cha0sdev/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@ -4594,6 +4815,13 @@ ignore@^4.0.6:
resolved "http://npm.cha0sdev/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
image-size@^0.9.3:
version "0.9.3"
resolved "http://npm.cha0sdev/image-size/-/image-size-0.9.3.tgz#f7efce6b0a1649b44b9bc43b9d9a5acf272264b6"
integrity sha512-5SakFa79uhUVSjKeQE30GVzzLJ0QNzB53+I+/VD1vIesD6GP6uatWIlgU0uisFNLt1u0d6kBydp7yfk+lLJhLQ==
dependencies:
queue "6.0.1"
immer@^8.0.0:
version "8.0.1"
resolved "http://npm.cha0sdev/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656"
@ -5016,6 +5244,11 @@ isexe@^2.0.0:
resolved "http://npm.cha0sdev/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
ismobilejs@^1.1.0:
version "1.1.1"
resolved "http://npm.cha0sdev/ismobilejs/-/ismobilejs-1.1.1.tgz#c56ca0ae8e52b24ca0f22ba5ef3215a2ddbbaa0e"
integrity sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==
isobject@^2.0.0:
version "2.1.0"
resolved "http://npm.cha0sdev/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
@ -5153,6 +5386,16 @@ jsprim@^1.2.2:
array-includes "^3.1.2"
object.assign "^4.1.2"
keycode-js@^2.0.3:
version "2.0.3"
resolved "http://npm.cha0sdev/keycode-js/-/keycode-js-2.0.3.tgz#0ef559be057847aae6c520ce03577f4a12f7e257"
integrity sha512-nGuOQ0zvYQFr0OOBOZS47e/ifsiuNz1pleQIFS+LX+udj3St6AvHpv55MI8DCre6Yg9D2CG/qqWbuAx7iQt9FQ==
keycoder@^1.1.1:
version "1.1.1"
resolved "http://npm.cha0sdev/keycoder/-/keycoder-1.1.1.tgz#09d7abee7e52b0171722f5bb238e8af885d2b16a"
integrity sha1-Cder7n5SsBcXIvW7I46K+IXSsWo=
killable@^1.0.1:
version "1.0.1"
resolved "http://npm.cha0sdev/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
@ -5450,6 +5693,11 @@ memfs@3.2.0, memfs@^3.2.0:
dependencies:
fs-monkey "1.0.1"
"memoize-one@>=3.1.1 <6":
version "5.1.1"
resolved "http://npm.cha0sdev/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0"
integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==
memory-fs@^0.2.0:
version "0.2.0"
resolved "http://npm.cha0sdev/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290"
@ -5754,6 +6002,11 @@ nanomatch@^1.2.9:
snapdragon "^0.8.1"
to-regex "^3.0.1"
natsort@^2.0.2:
version "2.0.2"
resolved "http://npm.cha0sdev/natsort/-/natsort-2.0.2.tgz#3358b7af00f155c8ce181289ede79e18d81e6c52"
integrity sha512-McY0uA4rDU7GkkoQ1oU8bH9P13onCIrPWxpOjlt792ccFZFkenFm29AHyRCdhbbbfhPfTsjTDagBqjpphD3R7Q==
natural-compare@^1.4.0:
version "1.4.0"
resolved "http://npm.cha0sdev/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@ -6743,6 +6996,13 @@ querystringify@^2.1.1:
resolved "http://npm.cha0sdev/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
queue@6.0.1:
version "6.0.1"
resolved "http://npm.cha0sdev/queue/-/queue-6.0.1.tgz#abd5a5b0376912f070a25729e0b6a7d565683791"
integrity sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==
dependencies:
inherits "~2.0.3"
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
version "2.1.0"
resolved "http://npm.cha0sdev/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@ -6782,6 +7042,17 @@ react-dom@^17.0.1:
object-assign "^4.1.1"
scheduler "^0.20.1"
react-hex-editor@^0.3.0:
version "0.3.0"
resolved "http://npm.cha0sdev/react-hex-editor/-/react-hex-editor-0.3.0.tgz#4133715faa9eb46ea3f373ec0c81a2e379fe6575"
integrity sha512-LnmNYK4OKDb4tgPGkC4j4ASwN1PRPvXy6cxlDawJnggAjp9eohtR728ohVkWolr/U67XgPH3657zmzoRg2WUFQ==
dependencies:
classnames "^2.2.6"
keycode-js "^2.0.3"
keycoder "^1.1.1"
react-virtualized-auto-sizer "^1.0.2"
react-window "^1.8.5"
react-hot-loader@^4.13.0:
version "4.13.0"
resolved "http://npm.cha0sdev/react-hot-loader/-/react-hot-loader-4.13.0.tgz#c27e9408581c2a678f5316e69c061b226dc6a202"
@ -6828,6 +7099,19 @@ react-syntax-highlighter@^15.4.3:
prismjs "^1.22.0"
refractor "^3.2.0"
react-virtualized-auto-sizer@^1.0.2:
version "1.0.4"
resolved "http://npm.cha0sdev/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.4.tgz#2b83adb5ecdee8dcb33784e96ee0074eb5369665"
integrity sha512-fdrY0ZX4Ywv0IIYPY/grQXcVQ44OLOsftl2u81coKe2Ga1wT3ps4JXaeu1JdlfjQxDI5BVsWjZQbpzmjmtI7Qw==
react-window@^1.8.5:
version "1.8.6"
resolved "http://npm.cha0sdev/react-window/-/react-window-1.8.6.tgz#d011950ac643a994118632665aad0c6382e2a112"
integrity sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==
dependencies:
"@babel/runtime" "^7.0.0"
memoize-one ">=3.1.1 <6"
react@^17.0.1:
version "17.0.1"
resolved "http://npm.cha0sdev/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"