refactor: react-sortable-tree made me have a sad

This commit is contained in:
cha0s 2021-01-23 22:34:18 -06:00
parent 8b8f461411
commit ad771329d2
12 changed files with 230 additions and 669 deletions

View File

@ -2,19 +2,28 @@ import './index.scss';
import {PropTypes, React} from '@latus/react';
const Project = React.memo(({project: {label}}) => (
const Project = ({project: {label, resourcePaths}}) => (
<div className="project">
<h2 className="project__title">{label}</h2>
<ul>
{resourcePaths.map(([isFile, resourcePath]) => (
<li key={resourcePath}>
{isFile ? 'File: ' : 'Directory: '}
{resourcePath}
</li>
))}
</ul>
</div>
));
);
export const propTypes = PropTypes.shape({
label: PropTypes.string.isRequired,
resourcePaths: PropTypes.arrayOf(PropTypes.string).isRequired,
resourcePaths: PropTypes.arrayOf(PropTypes.any).isRequired,
});
Project.propTypes = {
project: propTypes.isRequired,
uuid: PropTypes.string.isRequired,
};
export default Project;

View File

@ -862,7 +862,7 @@
core-js-pure "^3.0.0"
regenerator-runtime "^0.13.4"
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.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==
@ -903,29 +903,31 @@
to-fast-properties "^2.0.0"
"@electron/get@^1.0.1":
version "1.12.2"
resolved "http://npm.cha0sdev/@electron%2fget/-/get-1.12.2.tgz#6442066afb99be08cefb9a281e4b4692b33764f3"
integrity sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==
version "1.12.3"
resolved "http://npm.cha0sdev/@electron%2fget/-/get-1.12.3.tgz#fa2723385c4b565a34c4c82f46087aa2a5fbf6d0"
integrity sha512-NFwSnVZQK7dhOYF1NQCt+HGqgL1aNdj0LUSx75uCqnZJqyiWCVdAMFV4b4/kC8HjUJAnsvdSEmjEt4G2qNQ9+Q==
dependencies:
debug "^4.1.1"
env-paths "^2.2.0"
filenamify "^4.1.0"
fs-extra "^8.1.0"
got "^9.6.0"
progress "^2.0.3"
sanitize-filename "^1.6.2"
semver "^6.2.0"
sumchecker "^3.0.1"
optionalDependencies:
global-agent "^2.0.2"
global-tunnel-ng "^2.7.1"
"@hot-loader/react-dom@^17.0.1":
version "17.0.1"
resolved "http://npm.cha0sdev/@hot-loader%2freact-dom/-/react-dom-17.0.1.tgz#0c75b4dd068f819435dafb3e8809ca1749695656"
integrity sha512-QttzEibkIFkl/WV1dsLXg73YIweNo9ySbB0/26068RqFGWyv7pKyictWsaQXqSj1y66/BDn3kglCHgroGrv3vA==
"@hot-loader/react-dom@^16.14.0":
version "16.14.0"
resolved "http://npm.cha0sdev/@hot-loader%2freact-dom/-/react-dom-16.14.0.tgz#3cfc64e40bb78fa623e59b582b8f09dcdaad648a"
integrity sha512-EN9czvcLsMYmSDo5yRKZOAq3ZGRlDpad1gPtX0NdMMomJXcPE3yFSeFzE94X/NjOaiSVimB7LuqPYpkWVaIi4Q==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler "^0.20.1"
prop-types "^15.6.2"
scheduler "^0.19.1"
"@latus/core@2.0.0", "@latus/core@^2.0.0":
version "2.0.0"
@ -986,16 +988,17 @@
"@latus/react@2.0.0", "@latus/react@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2freact/-/react-2.0.0.tgz#9ff3d93dc7a52b60274313a9c0d6d4de17f1488c"
integrity sha512-8KCEAuTFwbWCfrhwhdmminfxW6ZvMux5Lkb6eyjVs7ZrTFOxUNXAeYMt+8w/q92ph66ys2/o5DGugo7ckFCWQg==
resolved "http://npm.cha0sdev/@latus%2freact/-/react-2.0.0.tgz#08914f1a2630c64306ac5d67c116269b21b906ea"
integrity sha512-zzW87W727d/lh5PZrR7e9L2b5w9WqkAZfzXXnC62mISEo4+9L/x0473wmZt9w4ASV/FcrK2RWb8ZUnNIKEg6gQ==
dependencies:
"@hot-loader/react-dom" "^17.0.1"
"@hot-loader/react-dom" "^16.14.0"
"@neutrinojs/react" "^9.4.0"
debug "4.3.1"
node-sass "^5.0.0"
postcss-loader "3.0.0"
react "^17.0.1"
react-dom "^17.0.1"
prop-types "^15.7.2"
react "^16.14.0"
react-dom "^16.14.0"
react-hot-loader "^4.13.0"
sass-loader "^10.1.0"
@ -1233,13 +1236,13 @@
"@persea/core@^1.0.0":
version "1.0.0"
resolved "http://npm.cha0sdev/@persea%2fcore/-/core-1.0.0.tgz#31d8f5b7d7b1842ee5a65c3ab9d93d3ab89cec66"
integrity sha512-n1isOu3bpePzdwwKnYf7wXvvu+PDvsU6yv+I8YB5+b2yVOXvDLRySYaKQ7WDUXhPdoA4Ha5OgM7zcxBAqUwzbw==
resolved "http://npm.cha0sdev/@persea%2fcore/-/core-1.0.0.tgz#0d6f851924081891a85b21d5f30a880ae25c0a6d"
integrity sha512-WuWn3DnnfopbmDB81yb+GRrDlpJW7Rn1UXJaVGbCa4W0Z4EwkNCe13tZh0tR+ZKDKfhmIq1gzUsy5YRH7bCO/A==
dependencies:
"@latus/core" "^2.0.0"
debug "4.3.1"
glob "^7.1.6"
natsort "^2.0.2"
react-sortable-tree "^2.8.0"
"@persea/json@^1.0.0":
version "1.0.0"
@ -1250,21 +1253,6 @@
debug "4.3.1"
fast-json-patch "^3.0.0-1"
"@react-dnd/asap@^4.0.0":
version "4.0.0"
resolved "http://npm.cha0sdev/@react-dnd%2fasap/-/asap-4.0.0.tgz#b300eeed83e9801f51bd66b0337c9a6f04548651"
integrity sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==
"@react-dnd/invariant@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@react-dnd%2finvariant/-/invariant-2.0.0.tgz#09d2e81cd39e0e767d7da62df9325860f24e517e"
integrity sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==
"@react-dnd/shallowequal@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@react-dnd%2fshallowequal/-/shallowequal-2.0.0.tgz#a3031eb54129f2c66b2753f8404266ec7bf67f0a"
integrity sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==
"@reduxjs/toolkit@^1.5.0":
version "1.5.0"
resolved "http://npm.cha0sdev/@reduxjs%2ftoolkit/-/toolkit-1.5.0.tgz#1025c1ccb224d1fc06d8d98a61f6717d57e6d477"
@ -1315,14 +1303,6 @@
"@types/minimatch" "*"
"@types/node" "*"
"@types/hoist-non-react-statics@^3.3.1":
version "3.3.1"
resolved "http://npm.cha0sdev/@types%2fhoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f"
integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
dependencies:
"@types/react" "*"
hoist-non-react-statics "^3.3.0"
"@types/html-minifier-terser@^5.0.0":
version "5.1.1"
resolved "http://npm.cha0sdev/@types%2fhtml-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50"
@ -1353,19 +1333,6 @@
resolved "http://npm.cha0sdev/@types%2fnode/-/node-12.19.15.tgz#0de7e978fb43db62da369db18ea088a63673c182"
integrity sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==
"@types/prop-types@*":
version "15.7.3"
resolved "http://npm.cha0sdev/@types%2fprop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
"@types/react@*":
version "17.0.0"
resolved "http://npm.cha0sdev/@types%2freact/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8"
integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==
dependencies:
"@types/prop-types" "*"
csstype "^3.0.2"
"@types/source-list-map@*":
version "0.1.2"
resolved "http://npm.cha0sdev/@types%2fsource-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
@ -2587,11 +2554,6 @@ clone-response@^1.0.2:
dependencies:
mimic-response "^1.0.0"
clsx@^1.0.4:
version "1.1.1"
resolved "http://npm.cha0sdev/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==
code-point-at@^1.0.0:
version "1.1.0"
resolved "http://npm.cha0sdev/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
@ -2834,9 +2796,9 @@ core-js-compat@^3.8.0:
semver "7.0.0"
core-js-pure@^3.0.0:
version "3.8.2"
resolved "http://npm.cha0sdev/core-js-pure/-/core-js-pure-3.8.2.tgz#286f885c0dac1cdcd6d78397392abc25ddeca225"
integrity sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw==
version "3.8.3"
resolved "http://npm.cha0sdev/core-js-pure/-/core-js-pure-3.8.3.tgz#10e9e3b2592ecaede4283e8f3ad7020811587c02"
integrity sha512-V5qQZVAr9K0xu7jXg1M7qTEwuxUgqr7dUOezGaNa7i+Xn9oXAU/d1fzqD9ObuwpVQOaorO5s70ckyi1woP9lVA==
core-js@^2.4.0:
version "2.6.12"
@ -2844,9 +2806,9 @@ core-js@^2.4.0:
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^3.6.5:
version "3.8.2"
resolved "http://npm.cha0sdev/core-js/-/core-js-3.8.2.tgz#0a1fd6709246da9ca8eff5bb0cbd15fba9ac7044"
integrity sha512-FfApuSRgrR6G5s58casCBd9M2k+4ikuu4wbW6pJyYU7bd9zvFc9qf7vr5xmrZOhT9nn+8uwlH1oRR9jTnFoA3A==
version "3.8.3"
resolved "http://npm.cha0sdev/core-js/-/core-js-3.8.3.tgz#c21906e1f14f3689f93abcc6e26883550dd92dd0"
integrity sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
@ -2978,11 +2940,6 @@ cssesc@^3.0.0:
resolved "http://npm.cha0sdev/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
csstype@^3.0.2:
version "3.0.6"
resolved "http://npm.cha0sdev/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef"
integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "http://npm.cha0sdev/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@ -3230,15 +3187,6 @@ dir-glob@^2.0.0:
dependencies:
path-type "^3.0.0"
dnd-core@^11.1.3:
version "11.1.3"
resolved "http://npm.cha0sdev/dnd-core/-/dnd-core-11.1.3.tgz#f92099ba7245e49729d2433157031a6267afcc98"
integrity sha512-QugF55dNW+h+vzxVJ/LSJeTeUw9MCJ2cllhmVThVPEtF16ooBkxj0WBE5RB+AceFxMFo1rO6bJKXtqKl+JNnyA==
dependencies:
"@react-dnd/asap" "^4.0.0"
"@react-dnd/invariant" "^2.0.0"
redux "^4.0.4"
dns-equal@^1.0.0:
version "1.0.0"
resolved "http://npm.cha0sdev/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
@ -3288,14 +3236,6 @@ dom-converter@^0.2:
dependencies:
utila "~0.4"
dom-helpers@^5.1.3:
version "5.2.0"
resolved "http://npm.cha0sdev/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b"
integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==
dependencies:
"@babel/runtime" "^7.8.7"
csstype "^3.0.2"
dom-serializer@0:
version "0.2.2"
resolved "http://npm.cha0sdev/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
@ -3391,14 +3331,14 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.634:
version "1.3.643"
resolved "http://npm.cha0sdev/electron-to-chromium/-/electron-to-chromium-1.3.643.tgz#fc196e17d01f4d874ef2307b009c0cd993ebe1c7"
integrity sha512-TGomM4gj8adt/uqRgPbu9F0yhUVAR1deww5X0fvbQgpGr9suSMjLgc4IwQ9YKGkp1t03cDbZum20OfAkiTYjAg==
version "1.3.644"
resolved "http://npm.cha0sdev/electron-to-chromium/-/electron-to-chromium-1.3.644.tgz#c89721733ec26b8d117275fb6b2acbeb3d45a6b6"
integrity sha512-N7FLvjDPADxad+OXXBuYfcvDvCBG0aW8ZZGr7G91sZMviYbnQJFxdSvUus4SJ0K7Q8dzMxE+Wx1d/CrJIIJ0sw==
electron@^11.2.0:
version "11.2.0"
resolved "http://npm.cha0sdev/electron/-/electron-11.2.0.tgz#f8577ea4c9ba94068850256145be26b0b89a5dd7"
integrity sha512-weszOPAJPoPu6ozL7vR9enXmaDSqH+KE9iZODfbGdnFgtVfVdfyedjlvEGIUJkLMPXM1y/QWwCl2dINzr0Jq5Q==
version "11.2.1"
resolved "http://npm.cha0sdev/electron/-/electron-11.2.1.tgz#8641dd1a62911a1144e0c73c34fd9f37ccc65c2b"
integrity sha512-Im1y29Bnil+Nzs+FCTq01J1OtLbs+2ZGLLllaqX/9n5GgpdtDmZhS/++JHBsYZ+4+0n7asO+JKQgJD+CqPClzg==
dependencies:
"@electron/get" "^1.0.1"
"@types/node" "^12.0.12"
@ -4113,6 +4053,20 @@ file-uri-to-path@1.0.0:
resolved "http://npm.cha0sdev/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
filename-reserved-regex@^2.0.0:
version "2.0.0"
resolved "http://npm.cha0sdev/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229"
integrity sha1-q/c9+rc10EVECr/qLZHzieu/oik=
filenamify@^4.1.0:
version "4.2.0"
resolved "http://npm.cha0sdev/filenamify/-/filenamify-4.2.0.tgz#c99716d676869585b3b5d328b3f06590d032e89f"
integrity sha512-pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==
dependencies:
filename-reserved-regex "^2.0.0"
strip-outer "^1.0.1"
trim-repeated "^1.0.0"
fill-range@^4.0.0:
version "4.0.0"
resolved "http://npm.cha0sdev/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@ -4290,19 +4244,6 @@ from2@^2.1.0:
inherits "^2.0.1"
readable-stream "^2.0.0"
frontend-collective-react-dnd-scrollzone@^1.0.2:
version "1.0.2"
resolved "http://npm.cha0sdev/frontend-collective-react-dnd-scrollzone/-/frontend-collective-react-dnd-scrollzone-1.0.2.tgz#cf5ed6165335f7d26504a40126f8e972ee644698"
integrity sha512-me/D9PZJq9j/sjEjs/OPmm6V6nbaHbhgeQiwrWu0t35lhwAOKWc+QBzzKKcZQeboYTkgE8UvCD9el+5ANp+g5Q==
dependencies:
hoist-non-react-statics "^3.1.0"
lodash.throttle "^4.0.1"
prop-types "^15.5.9"
raf "^3.2.0"
react "^16.3.0"
react-display-name "^0.2.0"
react-dom "^16.3.0"
fs-extra@^8.1.0:
version "8.1.0"
resolved "http://npm.cha0sdev/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@ -5706,11 +5647,6 @@ lodash.get@^4.4.2:
resolved "http://npm.cha0sdev/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "http://npm.cha0sdev/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
lodash.omit@^4.5.0:
version "4.5.0"
resolved "http://npm.cha0sdev/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
@ -5741,7 +5677,7 @@ lodash.templatesettings@^4.0.0:
dependencies:
lodash._reinterpolate "^3.0.0"
lodash.throttle@^4.0.1, lodash.throttle@^4.1.1:
lodash.throttle@^4.1.1:
version "4.1.1"
resolved "http://npm.cha0sdev/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
@ -7282,7 +7218,7 @@ promise-inflight@^1.0.1:
resolved "http://npm.cha0sdev/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
prop-types@^15.5.9, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "http://npm.cha0sdev/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@ -7404,13 +7340,6 @@ querystringify@^2.1.1:
resolved "http://npm.cha0sdev/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
raf@^3.2.0:
version "3.4.1"
resolved "http://npm.cha0sdev/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
dependencies:
performance-now "^2.1.0"
random-bytes@~1.0.0:
version "1.0.0"
resolved "http://npm.cha0sdev/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b"
@ -7461,29 +7390,7 @@ rc@^1.2.7:
minimist "^1.2.0"
strip-json-comments "~2.0.1"
react-display-name@^0.2.0:
version "0.2.5"
resolved "http://npm.cha0sdev/react-display-name/-/react-display-name-0.2.5.tgz#304c7cbfb59ee40389d436e1a822c17fe27936c6"
integrity sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg==
react-dnd-html5-backend@^11.1.3:
version "11.1.3"
resolved "http://npm.cha0sdev/react-dnd-html5-backend/-/react-dnd-html5-backend-11.1.3.tgz#2749f04f416ec230ea193f5c1fbea2de7dffb8f7"
integrity sha512-/1FjNlJbW/ivkUxlxQd7o3trA5DE33QiRZgxent3zKme8DwF4Nbw3OFVhTRFGaYhHFNL1rZt6Rdj1D78BjnNLw==
dependencies:
dnd-core "^11.1.3"
react-dnd@^11.1.3:
version "11.1.3"
resolved "http://npm.cha0sdev/react-dnd/-/react-dnd-11.1.3.tgz#f9844f5699ccc55dfc81462c2c19f726e670c1af"
integrity sha512-8rtzzT8iwHgdSC89VktwhqdKKtfXaAyC4wiqp0SywpHG12TTLvfOoL6xNEIUWXwIEWu+CFfDn4GZJyynCEuHIQ==
dependencies:
"@react-dnd/shallowequal" "^2.0.0"
"@types/hoist-non-react-statics" "^3.3.1"
dnd-core "^11.1.3"
hoist-non-react-statics "^3.3.0"
react-dom@^16.3.0:
react-dom@^16.14.0:
version "16.14.0"
resolved "http://npm.cha0sdev/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89"
integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==
@ -7493,15 +7400,6 @@ react-dom@^16.3.0:
prop-types "^15.6.2"
scheduler "^0.19.1"
react-dom@^17.0.1:
version "17.0.1"
resolved "http://npm.cha0sdev/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6"
integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler "^0.20.1"
react-hot-loader@4.13.0, 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"
@ -7566,32 +7464,7 @@ react-router@5.2.0, react-router@^5.2.0:
tiny-invariant "^1.0.2"
tiny-warning "^1.0.0"
react-sortable-tree@^2.8.0:
version "2.8.0"
resolved "http://npm.cha0sdev/react-sortable-tree/-/react-sortable-tree-2.8.0.tgz#9901711778628d0546c045f845216480507c366a"
integrity sha512-gTjwxRNt7z0FC76KeNTnGqx1qUSlV3N78mMPRushBpSUXzZYhiFNsWHUIruyPnaAbw4SA7LgpItV7VieAuwDpw==
dependencies:
frontend-collective-react-dnd-scrollzone "^1.0.2"
lodash.isequal "^4.5.0"
prop-types "^15.6.1"
react-dnd "^11.1.3"
react-dnd-html5-backend "^11.1.3"
react-lifecycles-compat "^3.0.4"
react-virtualized "^9.21.2"
react-virtualized@^9.21.2:
version "9.22.3"
resolved "http://npm.cha0sdev/react-virtualized/-/react-virtualized-9.22.3.tgz#f430f16beb0a42db420dbd4d340403c0de334421"
integrity sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==
dependencies:
"@babel/runtime" "^7.7.2"
clsx "^1.0.4"
dom-helpers "^5.1.3"
loose-envify "^1.4.0"
prop-types "^15.7.2"
react-lifecycles-compat "^3.0.4"
react@^16.3.0:
react@^16.14.0:
version "16.14.0"
resolved "http://npm.cha0sdev/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
@ -7600,14 +7473,6 @@ react@^16.3.0:
object-assign "^4.1.1"
prop-types "^15.6.2"
react@^17.0.1:
version "17.0.1"
resolved "http://npm.cha0sdev/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"
integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "http://npm.cha0sdev/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
@ -7749,7 +7614,7 @@ redux-thunk@^2.3.0:
resolved "http://npm.cha0sdev/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622"
integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==
redux@^4.0.0, redux@^4.0.4, redux@^4.0.5:
redux@^4.0.0, redux@^4.0.5:
version "4.0.5"
resolved "http://npm.cha0sdev/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f"
integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==
@ -8077,13 +7942,6 @@ safe-regex@^1.1.0:
resolved "http://npm.cha0sdev/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sanitize-filename@^1.6.2:
version "1.6.3"
resolved "http://npm.cha0sdev/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378"
integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==
dependencies:
truncate-utf8-bytes "^1.0.0"
sass-graph@2.2.5:
version "2.2.5"
resolved "http://npm.cha0sdev/sass-graph/-/sass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8"
@ -8118,14 +7976,6 @@ scheduler@^0.19.1:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler@^0.20.1:
version "0.20.1"
resolved "http://npm.cha0sdev/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c"
integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
schema-utils@^1.0.0:
version "1.0.0"
resolved "http://npm.cha0sdev/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
@ -8193,7 +8043,7 @@ semver@7.0.0:
resolved "http://npm.cha0sdev/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
semver@^6.0.0, semver@^6.1.2, semver@^6.3.0:
semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
version "6.3.0"
resolved "http://npm.cha0sdev/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@ -8866,6 +8716,13 @@ strip-json-comments@~2.0.1:
resolved "http://npm.cha0sdev/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
strip-outer@^1.0.1:
version "1.0.1"
resolved "http://npm.cha0sdev/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631"
integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==
dependencies:
escape-string-regexp "^1.0.2"
style-loader@^1.3.0:
version "1.3.0"
resolved "http://npm.cha0sdev/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e"
@ -9103,6 +8960,13 @@ trim-newlines@^1.0.0:
resolved "http://npm.cha0sdev/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
trim-repeated@^1.0.0:
version "1.0.0"
resolved "http://npm.cha0sdev/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
integrity sha1-42RqLqTokTEr9+rObPsFOAvAHCE=
dependencies:
escape-string-regexp "^1.0.2"
"true-case-path@^1.0.2":
version "1.0.3"
resolved "http://npm.cha0sdev/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d"
@ -9110,13 +8974,6 @@ trim-newlines@^1.0.0:
dependencies:
glob "^7.1.2"
truncate-utf8-bytes@^1.0.0:
version "1.0.2"
resolved "http://npm.cha0sdev/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys=
dependencies:
utf8-byte-length "^1.0.1"
tsconfig-paths@^3.9.0:
version "3.9.0"
resolved "http://npm.cha0sdev/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b"
@ -9343,11 +9200,6 @@ use@^3.1.0:
resolved "http://npm.cha0sdev/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
utf8-byte-length@^1.0.1:
version "1.0.4"
resolved "http://npm.cha0sdev/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=
util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
version "1.0.2"
resolved "http://npm.cha0sdev/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"

View File

@ -23,8 +23,7 @@
"@latus/core": "^2.0.0",
"debug": "4.3.1",
"glob": "^7.1.6",
"natsort": "^2.0.2",
"react-sortable-tree": "^2.8.0"
"natsort": "^2.0.2"
},
"devDependencies": {
"@latus/db": "^2.0.0",

View File

@ -1,7 +1,6 @@
import {projects, user} from './state';
export * from './state';
export * from './tree';
export default {
hooks: {

View File

@ -1,8 +1,11 @@
export default (latus, User) => class ProjectUser extends User {
async projects() {
async projectsResourcePaths() {
return (await this.getProjects())
.reduce(async (r, project) => ({...await r, [project.uuid]: await project.structure()}), {});
.reduce(async (r, project) => ({
...await r,
[project.uuid]: await project.resourcePaths(),
}), {});
}
};

View File

@ -1,10 +1,15 @@
import fs from 'fs';
import {join} from 'path';
import {promisify} from 'util';
import {Model, Sequelize, Types} from '@latus/db/server';
import glob from 'glob';
import natsort from 'natsort';
import G from 'glob';
import {pathsToTree} from '../tree';
const glob = promisify(G);
const stat = promisify(fs.stat);
const sorter = natsort({insensitive: true});
export default () => class Project extends Model {
@ -22,14 +27,25 @@ export default () => class Project extends Model {
this.belongsTo(User);
}
async structure() {
async resourcePaths() {
const skipCount = process.cwd().split('/').length + 2;
const paths = (await promisify(glob)(join(process.cwd(), 'projects', this.uuid, '**')))
const paths = (await glob(join(process.cwd(), 'projects', this.uuid, '**')))
.map((path) => path.split('/').slice(skipCount).join('/'))
.map((path) => `/${path}`)
.filter((path) => !!path);
paths.shift();
return pathsToTree(paths);
return (await Promise.all(
paths
.map(async (path) => {
try {
return [(await stat(join(process.cwd(), 'projects', this.uuid, path))).isFile(), path];
}
catch (error) {
return [false];
}
}),
))
.sort((l, r) => sorter(l[1], r[1]));
}
};

View File

@ -4,8 +4,6 @@ import {promisify} from 'util';
import {decorateWithLatus, gatherWithLatus} from '@latus/core';
import {treeToPaths, treeToResourcePaths} from '../tree';
const readFile = promisify(fs.readFile).bind(fs);
const stat = promisify(fs.stat).bind(fs);
@ -18,27 +16,27 @@ export default {
require.context('../models/decorators', false, /\.js$/),
),
'@latus/redux/defaultState': async (req) => {
const projects = req
? await req.user.projects()
const projectsResourcePaths = req
? await req.user.projectsResourcePaths()
: {};
const resources = await Object.entries(projects)
.reduce(async (r, [uuid, structure]) => ({
const resources = await Object.entries(projectsResourcePaths)
.reduce(async (r, [uuid, resourcePaths]) => ({
...(await r),
...(
await (await Promise.all(treeToPaths(structure)
.map(async (path) => {
await (await Promise.all(resourcePaths
.map(async ([, path]) => {
try {
return [
path,
(await stat(join(process.cwd(), 'projects', uuid, path))).isFile(),
path,
];
}
catch (error) {
return [path, false];
return [false];
}
})))
.filter(([, stat]) => stat)
.map(([path]) => path)
.filter(([stat]) => stat)
.map(([, path]) => path)
.reduce(async (r, path) => ({
...(await r),
[join(uuid, path)]: (
@ -51,8 +49,8 @@ export default {
projects: {
projects: Object.fromEntries(
await Promise.all(
Object.entries(projects)
.map(async ([uuid, tree]) => {
Object.entries(projectsResourcePaths)
.map(async ([uuid, resourcePaths]) => {
let label;
try {
const buffer = await readFile(join(process.cwd(), 'projects', `${uuid}.json`));
@ -66,8 +64,7 @@ export default {
uuid,
{
label,
tree,
resourcePaths: treeToResourcePaths(tree),
resourcePaths,
},
];
}),

View File

@ -3,12 +3,6 @@ import {
createSlice,
} from '@latus/redux';
import {
addPathToTree,
removePathFromTree,
treeToResourcePaths,
} from '../tree';
export const projectsSelector = (state) => state.projects;
export const projectSelector = createSelector(
@ -26,38 +20,37 @@ const slice = createSlice({
extraReducers: {
},
reducers: {
createProject: ({projects}, {payload: {label, tree, uuid}}) => {
projects[uuid] = {
label,
tree,
resourcePaths: treeToResourcePaths(tree),
};
},
createResource: ({projects, resources}, {payload: {data, project, uri}}) => {
projects[project] = addPathToTree(projects[project], uri);
resources[`${project}${uri}`] = data.toString('base64');
},
deleteResource: ({projects, resources}, {payload: {project, uri}}) => {
projects[project] = removePathFromTree(projects[project], uri);
delete resources[`${project}${uri}`];
},
renameResource: ({projects, resources}, {payload: {project, from, to}}) => {
const tree = removePathFromTree(projects[project], from);
projects[project] = addPathToTree(tree, to);
resources[`${project}${to}`] = resources[`${project}${from}`];
delete resources[`${project}${from}`];
},
// createProject: ({projects}, {payload: {label, resourcePaths, uuid}}) => {
// projects[uuid] = {
// label,
// resourcePaths,
// };
// },
// createResource: ({projects, resources}, {payload: {data, project, uri}}) => {
// projects[project] = addPathToTree(projects[project], uri);
// resources[`${project}${uri}`] = data.toString('base64');
// },
// deleteResource: ({projects, resources}, {payload: {project, uri}}) => {
// projects[project] = removePathFromTree(projects[project], uri);
// delete resources[`${project}${uri}`];
// },
// renameResource: ({projects, resources}, {payload: {project, from, to}}) => {
// const tree = removePathFromTree(projects[project], from);
// projects[project] = addPathToTree(tree, to);
// resources[`${project}${to}`] = resources[`${project}${from}`];
// delete resources[`${project}${from}`];
// },
},
/* eslint-enable no-param-reassign */
});
slice.reducer.subscription = slice.reducer;
export const {
createProject,
createResource,
deleteResource,
renameResource,
} = slice.actions;
// export const {
// createProject,
// createResource,
// deleteResource,
// renameResource,
// } = slice.actions;
export default slice.reducer;

View File

@ -1,77 +0,0 @@
import {basename} from 'path';
import natsort from 'natsort';
import {
getFlatDataFromTree,
getTreeFromFlatData,
walk,
} from 'react-sortable-tree';
const getKey = ({path}) => path;
const getParentKey = ({path}) => {
const parts = path.split('/');
return parts.length > 2 ? (parts.pop(), parts.join('/')) : '/';
};
export const pathToNode = (path) => ({path, label: basename(path)});
export const pathsToTree = (paths) => (
getTreeFromFlatData({
flatData: paths
.sort(natsort({insensitive: true}))
.map(pathToNode),
getKey,
getParentKey,
rootKey: '/',
})
);
export const treeToResourcePaths = (tree) => {
const files = [];
walk({
callback: ({node: {children, path}}) => {
if (!children) {
files.push(path);
}
},
getNodeKey: ({node: {path}}) => path,
ignoreCollapsed: false,
treeData: tree,
});
return files
.sort(natsort({insensitive: true}));
};
export const treeToPaths = (tree) => (
getFlatDataFromTree({
getNodeKey: ({node: {path}}) => path,
ignoreCollapsed: false,
treeData: tree,
})
.map(({path}) => path.pop())
.sort(natsort({insensitive: true}))
);
export const addPathToTree = (tree, path) => {
const paths = treeToPaths(tree);
const parts = path.split('/');
if (parts.length > 2) {
parts.shift();
parts.forEach((part, i) => {
paths.push([''].concat(parts.slice(0, i).concat(part)).join('/'));
});
paths.pop();
}
return pathsToTree(paths.concat(path));
};
export const removePathFromTree = (tree, path) => {
const paths = treeToPaths(tree);
const index = paths.findIndex((tpath) => path === tpath);
if (-1 === index) {
return tree;
}
paths.splice(index, 1);
return pathsToTree(paths);
};

View File

@ -1,88 +0,0 @@
import {expect} from 'chai';
import {
addPathToTree,
pathsToTree,
removePathFromTree,
treeToResourcePaths,
treeToPaths,
} from '../src/tree';
it('can get a tree from paths', () => {
expect(pathsToTree(['/foo', '/bar', '/bar/baz.txt', '/boo']))
.to.deep.equal([
{path: '/bar', label: 'bar', children: [
{path: '/bar/baz.txt', label: 'baz.txt'},
]},
{path: '/boo', label: 'boo'},
{path: '/foo', label: 'foo'},
]);
});
it('can get resource paths from a tree', () => {
expect(treeToResourcePaths([
{path: '/foo', label: 'foo'},
{path: '/bar', label: 'bar', children: [
{path: '/bar/baz.txt', label: 'baz.txt'},
]},
{path: '/boo', label: 'boo'},
]))
.to.deep.equal(['/bar/baz.txt', '/boo', '/foo']);
});
it('can get paths from a tree', () => {
expect(treeToPaths([
{path: '/foo', label: 'foo'},
{path: '/bar', label: 'bar', children: [
{path: '/bar/baz.txt', label: 'baz.txt'},
]},
{path: '/boo', label: 'boo'},
]))
.to.deep.equal(['/bar', '/bar/baz.txt', '/boo', '/foo']);
});
it('can add path to a tree', () => {
const tree = pathsToTree(['/foo', '/bar', '/bar/baz.txt']);
expect(addPathToTree(tree, '/abc'))
.to.deep.equal([
{path: '/abc', label: 'abc'},
{path: '/bar', label: 'bar', children: [
{path: '/bar/baz.txt', label: 'baz.txt'},
]},
{path: '/foo', label: 'foo'},
]);
expect(addPathToTree(tree, '/bbc'))
.to.deep.equal([
{path: '/bar', label: 'bar', children: [
{path: '/bar/baz.txt', label: 'baz.txt'},
]},
{path: '/bbc', label: 'bbc'},
{path: '/foo', label: 'foo'},
]);
expect(addPathToTree(tree, '/one/two/three.txt'))
.to.deep.equal([
{path: '/bar', label: 'bar', children: [
{path: '/bar/baz.txt', label: 'baz.txt'},
]},
{path: '/foo', label: 'foo'},
{path: '/one', label: 'one', children: [
{path: '/one/two', label: 'two', children: [
{path: '/one/two/three.txt', label: 'three.txt'},
]},
]},
]);
});
it('can remove path from a tree', () => {
const tree = pathsToTree(['/foo', '/bar', '/bar/baz.txt']);
expect(removePathFromTree(tree, '/bar'))
.to.deep.equal([
{path: '/foo', label: 'foo'},
]);
expect(removePathFromTree(tree, '/foo'))
.to.deep.equal([
{path: '/bar', label: 'bar', children: [
{path: '/bar/baz.txt', label: 'baz.txt'},
]},
]);
});

View File

@ -836,7 +836,7 @@
pirates "^4.0.0"
source-map-support "^0.5.16"
"@babel/runtime@^7.12.1", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
"@babel/runtime@^7.12.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==
@ -892,19 +892,20 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
"@hot-loader/react-dom@^17.0.1":
version "17.0.1"
resolved "http://npm.cha0sdev/@hot-loader%2freact-dom/-/react-dom-17.0.1.tgz#0c75b4dd068f819435dafb3e8809ca1749695656"
integrity sha512-QttzEibkIFkl/WV1dsLXg73YIweNo9ySbB0/26068RqFGWyv7pKyictWsaQXqSj1y66/BDn3kglCHgroGrv3vA==
"@hot-loader/react-dom@^16.14.0":
version "16.14.0"
resolved "http://npm.cha0sdev/@hot-loader%2freact-dom/-/react-dom-16.14.0.tgz#3cfc64e40bb78fa623e59b582b8f09dcdaad648a"
integrity sha512-EN9czvcLsMYmSDo5yRKZOAq3ZGRlDpad1gPtX0NdMMomJXcPE3yFSeFzE94X/NjOaiSVimB7LuqPYpkWVaIi4Q==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler "^0.20.1"
prop-types "^15.6.2"
scheduler "^0.19.1"
"@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#2ca04903351edc14f29fcec2ad6ab5e19c72e072"
integrity sha512-Sq4nPpQzRektLgsXRFQqhZWpUWY1bFTrVbm5X0vGTyTTlfQPmMbHyddmtdVTB8NbANvleuw4PvfuNVqKU4le6w==
resolved "http://npm.cha0sdev/@latus%2fcore/-/core-2.0.0.tgz#40c834cffe07bed850a95d6fc44f4b467d096e03"
integrity sha512-N43j7dAHxFwvLzOzQReu9iMD9DT2Um76jm9RPJvDlgJj0wD/RKe9N7HTuyeExw+XQf/T35bHC35aXUv8Wp5O4g==
dependencies:
debug "4.3.1"
js-yaml "3.14.0"
@ -912,11 +913,12 @@
lodash.get "^4.4.2"
lodash.set "^4.3.2"
mkdirp "^1.0.4"
webpack-virtual-modules "^0.4.1"
"@latus/db@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fdb/-/db-2.0.0.tgz#2a05e0f000e55f5210ed4faebffc77a7645c1133"
integrity sha512-HkOxJ50nFJ9SyJddf3ADc7jMmzl099owCzBp4SrGBJX9EI1coKM9uEEHVaJ0vdWCCqaRwd2S60zrYI78rjYBWg==
resolved "http://npm.cha0sdev/@latus%2fdb/-/db-2.0.0.tgz#23182685d03a68738b8718286523d2276f763b4b"
integrity sha512-S4ImLANkhOV8Acp1cWWWGFOPDsD4bNTbftl1pG4YNNR2Len+9pfl/ed40+aP1DjIlW/XiYRXEm3SvGuRj4cjwg==
dependencies:
"@latus/core" "2.0.0"
debug "4.3.1"
@ -926,14 +928,15 @@
"@latus/http@2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fhttp/-/http-2.0.0.tgz#b8236cbdcd96916343be62f975dc33de11d0395b"
integrity sha512-3ZsUcuVwxMidG3ph/YJht3KYPJSjtq8gdGGsb61vrXzbWC86+5UtydZCySzKGOenEU+tkQqwfd+tClvVKTcwSQ==
resolved "http://npm.cha0sdev/@latus%2fhttp/-/http-2.0.0.tgz#afb45a0820463a47fe04b3c6a905f5d005d03bc7"
integrity sha512-jVInRxC/n1AZqoJhuAs8iwtQOHlazYwRQJKJd6XgFCxQppvz2BX7ppdyLSWSZxkBjbuk/hABP67F/1cU0M0J2g==
dependencies:
"@latus/core" "2.0.0"
"@neutrinojs/web" "^9.1.0"
debug "4.3.1"
express "^4.17.1"
http-proxy "^1.18.1"
lodash.uniq "^4.5.0"
memfs "3.2.0"
mocha "^8"
neutrino "9.4.0"
@ -949,23 +952,24 @@
"@latus/react@2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2freact/-/react-2.0.0.tgz#e56110e0fc48de2601e8b5dad7ca6d0e5a4b5c68"
integrity sha512-stcRzji4pA9jWwGtqsmlJHTlpDNfzb/5ugw40t9oaHnxqS2gzIvDfS4RcVV/zdxo2BEGYo20uhSmXXSM3JEnGg==
resolved "http://npm.cha0sdev/@latus%2freact/-/react-2.0.0.tgz#08914f1a2630c64306ac5d67c116269b21b906ea"
integrity sha512-zzW87W727d/lh5PZrR7e9L2b5w9WqkAZfzXXnC62mISEo4+9L/x0473wmZt9w4ASV/FcrK2RWb8ZUnNIKEg6gQ==
dependencies:
"@hot-loader/react-dom" "^17.0.1"
"@hot-loader/react-dom" "^16.14.0"
"@neutrinojs/react" "^9.4.0"
debug "4.3.1"
node-sass "^5.0.0"
postcss-loader "3.0.0"
react "^17.0.1"
react-dom "^17.0.1"
prop-types "^15.7.2"
react "^16.14.0"
react-dom "^16.14.0"
react-hot-loader "^4.13.0"
sass-loader "^10.1.0"
"@latus/redux@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fredux/-/redux-2.0.0.tgz#ee9076751d28804991b01e8648df4e7bda6e3882"
integrity sha512-FbYRQ7v7xCAd9Xu3gDGUkLjnAtjMpW+8a3Rp03LVYRJRbfOAILpS3gNEHA72icZiAFzVNIql8SuKO+oySpo/LQ==
resolved "http://npm.cha0sdev/@latus%2fredux/-/redux-2.0.0.tgz#0cf354549c81b5ee7556c8d386de56bc51648a81"
integrity sha512-uK7t/CkFlaBEMGrLMtQIl6a73ssECuUg8NOd1h4MWf5Ig+3Q1PGk2qFdqhaNGnjXMMfjjEZ+U2uTmDiJ4HdE5Q==
dependencies:
"@latus/core" "2.0.0"
"@latus/socket" "^2.0.0"
@ -979,8 +983,8 @@
"@latus/socket@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fsocket/-/socket-2.0.0.tgz#0b16a9907939915e569844ee900c37b9a07ad301"
integrity sha512-e0QtP2DeogX01yQ1qw3QSvXc/xgUbN7pNEluny8gw6jhoRVMZwfIf8RczqivIAZ2zpI/m+YSPxPc7keHwHix4Q==
resolved "http://npm.cha0sdev/@latus%2fsocket/-/socket-2.0.0.tgz#d130a00b0a2d06883dcb1f1f25e072ab971949b1"
integrity sha512-pAvxFXUoWdka9jb22e/iMQgZ4pQW8Mi1ESxgD6712MDyY2CEd2+J23J4z0yh5QYkVbQYtg03wpSHAUkligHR4g==
dependencies:
"@latus/core" "2.0.0"
"@latus/http" "2.0.0"
@ -992,7 +996,6 @@
schemapack "^1.4.2"
socket.io "^3.1.0"
socket.io-client "^3.1.0"
socket.io-parser "^4.0.4"
"@neutrinojs/airbnb-base@^9.4.0":
version "9.5.0"
@ -1123,21 +1126,6 @@
babel-merge "^3.0.0"
deepmerge "^1.5.2"
"@react-dnd/asap@^4.0.0":
version "4.0.0"
resolved "http://npm.cha0sdev/@react-dnd%2fasap/-/asap-4.0.0.tgz#b300eeed83e9801f51bd66b0337c9a6f04548651"
integrity sha512-0XhqJSc6pPoNnf8DhdsPHtUhRzZALVzYMTzRwV4VI6DJNJ/5xxfL9OQUwb8IH5/2x7lSf7nAZrnzUD+16VyOVQ==
"@react-dnd/invariant@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@react-dnd%2finvariant/-/invariant-2.0.0.tgz#09d2e81cd39e0e767d7da62df9325860f24e517e"
integrity sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==
"@react-dnd/shallowequal@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@react-dnd%2fshallowequal/-/shallowequal-2.0.0.tgz#a3031eb54129f2c66b2753f8404266ec7bf67f0a"
integrity sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==
"@reduxjs/toolkit@^1.5.0":
version "1.5.0"
resolved "http://npm.cha0sdev/@reduxjs%2ftoolkit/-/toolkit-1.5.0.tgz#1025c1ccb224d1fc06d8d98a61f6717d57e6d477"
@ -1176,14 +1164,6 @@
"@types/minimatch" "*"
"@types/node" "*"
"@types/hoist-non-react-statics@^3.3.1":
version "3.3.1"
resolved "http://npm.cha0sdev/@types%2fhoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f"
integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==
dependencies:
"@types/react" "*"
hoist-non-react-statics "^3.3.0"
"@types/html-minifier-terser@^5.0.0":
version "5.1.1"
resolved "http://npm.cha0sdev/@types%2fhtml-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50"
@ -1209,19 +1189,6 @@
resolved "http://npm.cha0sdev/@types%2fnode/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18"
integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw==
"@types/prop-types@*":
version "15.7.3"
resolved "http://npm.cha0sdev/@types%2fprop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
"@types/react@*":
version "17.0.0"
resolved "http://npm.cha0sdev/@types%2freact/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8"
integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw==
dependencies:
"@types/prop-types" "*"
csstype "^3.0.2"
"@types/source-list-map@*":
version "0.1.2"
resolved "http://npm.cha0sdev/@types%2fsource-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
@ -2349,11 +2316,6 @@ cliui@^5.0.0:
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
clsx@^1.0.4:
version "1.1.1"
resolved "http://npm.cha0sdev/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188"
integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==
code-point-at@^1.0.0:
version "1.1.0"
resolved "http://npm.cha0sdev/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
@ -2705,11 +2667,6 @@ cssesc@^3.0.0:
resolved "http://npm.cha0sdev/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
csstype@^3.0.2:
version "3.0.6"
resolved "http://npm.cha0sdev/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef"
integrity sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "http://npm.cha0sdev/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@ -2925,15 +2882,6 @@ dir-glob@^2.0.0:
dependencies:
path-type "^3.0.0"
dnd-core@^11.1.3:
version "11.1.3"
resolved "http://npm.cha0sdev/dnd-core/-/dnd-core-11.1.3.tgz#f92099ba7245e49729d2433157031a6267afcc98"
integrity sha512-QugF55dNW+h+vzxVJ/LSJeTeUw9MCJ2cllhmVThVPEtF16ooBkxj0WBE5RB+AceFxMFo1rO6bJKXtqKl+JNnyA==
dependencies:
"@react-dnd/asap" "^4.0.0"
"@react-dnd/invariant" "^2.0.0"
redux "^4.0.4"
dns-equal@^1.0.0:
version "1.0.0"
resolved "http://npm.cha0sdev/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
@ -2983,14 +2931,6 @@ dom-converter@^0.2:
dependencies:
utila "~0.4"
dom-helpers@^5.1.3:
version "5.2.0"
resolved "http://npm.cha0sdev/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b"
integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==
dependencies:
"@babel/runtime" "^7.8.7"
csstype "^3.0.2"
dom-serializer@0:
version "0.2.2"
resolved "http://npm.cha0sdev/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
@ -3884,19 +3824,6 @@ from2@^2.1.0:
inherits "^2.0.1"
readable-stream "^2.0.0"
frontend-collective-react-dnd-scrollzone@^1.0.2:
version "1.0.2"
resolved "http://npm.cha0sdev/frontend-collective-react-dnd-scrollzone/-/frontend-collective-react-dnd-scrollzone-1.0.2.tgz#cf5ed6165335f7d26504a40126f8e972ee644698"
integrity sha512-me/D9PZJq9j/sjEjs/OPmm6V6nbaHbhgeQiwrWu0t35lhwAOKWc+QBzzKKcZQeboYTkgE8UvCD9el+5ANp+g5Q==
dependencies:
hoist-non-react-statics "^3.1.0"
lodash.throttle "^4.0.1"
prop-types "^15.5.9"
raf "^3.2.0"
react "^16.3.0"
react-display-name "^0.2.0"
react-dom "^16.3.0"
fs-extra@^8.1.0:
version "8.1.0"
resolved "http://npm.cha0sdev/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@ -4281,7 +4208,7 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1"
hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
version "3.3.2"
resolved "http://npm.cha0sdev/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
@ -5172,11 +5099,6 @@ lodash.get@^4.4.2:
resolved "http://npm.cha0sdev/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
lodash.isequal@^4.5.0:
version "4.5.0"
resolved "http://npm.cha0sdev/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
lodash.omit@^4.5.0:
version "4.5.0"
resolved "http://npm.cha0sdev/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60"
@ -5187,11 +5109,16 @@ lodash.set@^4.3.2:
resolved "http://npm.cha0sdev/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23"
integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=
lodash.throttle@^4.0.1, lodash.throttle@^4.1.1:
lodash.throttle@^4.1.1:
version "4.1.1"
resolved "http://npm.cha0sdev/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "http://npm.cha0sdev/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@~4.17.10:
version "4.17.20"
resolved "http://npm.cha0sdev/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
@ -6514,7 +6441,7 @@ promise-inflight@^1.0.1:
resolved "http://npm.cha0sdev/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
prop-types@^15.5.9, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "http://npm.cha0sdev/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@ -6631,13 +6558,6 @@ querystringify@^2.1.1:
resolved "http://npm.cha0sdev/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
raf@^3.2.0:
version "3.4.1"
resolved "http://npm.cha0sdev/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
dependencies:
performance-now "^2.1.0"
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"
@ -6668,29 +6588,7 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
react-display-name@^0.2.0:
version "0.2.5"
resolved "http://npm.cha0sdev/react-display-name/-/react-display-name-0.2.5.tgz#304c7cbfb59ee40389d436e1a822c17fe27936c6"
integrity sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg==
react-dnd-html5-backend@^11.1.3:
version "11.1.3"
resolved "http://npm.cha0sdev/react-dnd-html5-backend/-/react-dnd-html5-backend-11.1.3.tgz#2749f04f416ec230ea193f5c1fbea2de7dffb8f7"
integrity sha512-/1FjNlJbW/ivkUxlxQd7o3trA5DE33QiRZgxent3zKme8DwF4Nbw3OFVhTRFGaYhHFNL1rZt6Rdj1D78BjnNLw==
dependencies:
dnd-core "^11.1.3"
react-dnd@^11.1.3:
version "11.1.3"
resolved "http://npm.cha0sdev/react-dnd/-/react-dnd-11.1.3.tgz#f9844f5699ccc55dfc81462c2c19f726e670c1af"
integrity sha512-8rtzzT8iwHgdSC89VktwhqdKKtfXaAyC4wiqp0SywpHG12TTLvfOoL6xNEIUWXwIEWu+CFfDn4GZJyynCEuHIQ==
dependencies:
"@react-dnd/shallowequal" "^2.0.0"
"@types/hoist-non-react-statics" "^3.3.1"
dnd-core "^11.1.3"
hoist-non-react-statics "^3.3.0"
react-dom@^16.3.0:
react-dom@^16.14.0:
version "16.14.0"
resolved "http://npm.cha0sdev/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89"
integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==
@ -6700,15 +6598,6 @@ react-dom@^16.3.0:
prop-types "^15.6.2"
scheduler "^0.19.1"
react-dom@^17.0.1:
version "17.0.1"
resolved "http://npm.cha0sdev/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6"
integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler "^0.20.1"
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"
@ -6744,32 +6633,7 @@ react-redux@^7.2.2:
prop-types "^15.7.2"
react-is "^16.13.1"
react-sortable-tree@^2.8.0:
version "2.8.0"
resolved "http://npm.cha0sdev/react-sortable-tree/-/react-sortable-tree-2.8.0.tgz#9901711778628d0546c045f845216480507c366a"
integrity sha512-gTjwxRNt7z0FC76KeNTnGqx1qUSlV3N78mMPRushBpSUXzZYhiFNsWHUIruyPnaAbw4SA7LgpItV7VieAuwDpw==
dependencies:
frontend-collective-react-dnd-scrollzone "^1.0.2"
lodash.isequal "^4.5.0"
prop-types "^15.6.1"
react-dnd "^11.1.3"
react-dnd-html5-backend "^11.1.3"
react-lifecycles-compat "^3.0.4"
react-virtualized "^9.21.2"
react-virtualized@^9.21.2:
version "9.22.3"
resolved "http://npm.cha0sdev/react-virtualized/-/react-virtualized-9.22.3.tgz#f430f16beb0a42db420dbd4d340403c0de334421"
integrity sha512-MKovKMxWTcwPSxE1kK1HcheQTWfuCxAuBoSTf2gwyMM21NdX/PXUhnoP8Uc5dRKd+nKm8v41R36OellhdCpkrw==
dependencies:
"@babel/runtime" "^7.7.2"
clsx "^1.0.4"
dom-helpers "^5.1.3"
loose-envify "^1.4.0"
prop-types "^15.7.2"
react-lifecycles-compat "^3.0.4"
react@^16.3.0:
react@^16.14.0:
version "16.14.0"
resolved "http://npm.cha0sdev/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
@ -6778,14 +6642,6 @@ react@^16.3.0:
object-assign "^4.1.1"
prop-types "^15.6.2"
react@^17.0.1:
version "17.0.1"
resolved "http://npm.cha0sdev/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"
integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
read-pkg-up@^1.0.1:
version "1.0.1"
resolved "http://npm.cha0sdev/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
@ -6886,7 +6742,7 @@ redux-thunk@^2.3.0:
resolved "http://npm.cha0sdev/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622"
integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==
redux@^4.0.0, redux@^4.0.4, redux@^4.0.5:
redux@^4.0.0, redux@^4.0.5:
version "4.0.5"
resolved "http://npm.cha0sdev/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f"
integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==
@ -7187,14 +7043,6 @@ scheduler@^0.19.1:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler@^0.20.1:
version "0.20.1"
resolved "http://npm.cha0sdev/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c"
integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
schema-utils@^1.0.0:
version "1.0.0"
resolved "http://npm.cha0sdev/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
@ -7497,7 +7345,7 @@ socket.io-client@^3.1.0:
parseuri "0.0.6"
socket.io-parser "~4.0.4"
socket.io-parser@^4.0.4, socket.io-parser@~4.0.3, socket.io-parser@~4.0.4:
socket.io-parser@~4.0.3, socket.io-parser@~4.0.4:
version "4.0.4"
resolved "http://npm.cha0sdev/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0"
integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==

View File

@ -4,15 +4,15 @@
"@avocado/core@2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@avocado%2fcore/-/core-2.0.0.tgz#6c8c14ca33b7bc3e55893b1b2d44a53f6df42c7d"
integrity sha512-WVMQQTT8HymwM9SMacnhJQt2fWegCDbLz5U0I6bjB7dNLh9lLc5MCdj3gtTcoHC+cDGNVmIhyePxGhnlbM1Qjg==
resolved "http://npm.cha0sdev/@avocado%2fcore/-/core-2.0.0.tgz#813bcac7c8610c134e33d550e928cb40ec4170a3"
integrity sha512-5mZ5imuDrLYZA8od1Xftm7MHDgEJevKTDhVhqh8cfr9n5bJg1HCeYtuuSyjOPQ6PDtMZxoklQp6C2o168FkaQA==
dependencies:
debug "4.3.1"
"@avocado/resource@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@avocado%2fresource/-/resource-2.0.0.tgz#2b1a96cea9cbf7d7d4725e16dcfc19024fef197a"
integrity sha512-8zE7TIJ1F26OcfBkc+22Q4+wVqR2xkAunQQOX0juqyz/D9X6myJXVgN3OTwP3IC0TbGHjQrN9ygDJ5+oSbzl0A==
resolved "http://npm.cha0sdev/@avocado%2fresource/-/resource-2.0.0.tgz#590ab5b6abfcfc222ab45f7173d0481d077a2b57"
integrity sha512-G+QCWN/eeL6oHvyNyku/6F2Lmb3fKAm0puZlI10lzyQEekECp06qcqyNAgz4xagbUfv/818Qj8XiLNibELfYRQ==
dependencies:
"@avocado/core" "2.0.0"
"@latus/core" "2.0.0"
@ -910,19 +910,20 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
"@hot-loader/react-dom@^17.0.1":
version "17.0.1"
resolved "http://npm.cha0sdev/@hot-loader%2freact-dom/-/react-dom-17.0.1.tgz#0c75b4dd068f819435dafb3e8809ca1749695656"
integrity sha512-QttzEibkIFkl/WV1dsLXg73YIweNo9ySbB0/26068RqFGWyv7pKyictWsaQXqSj1y66/BDn3kglCHgroGrv3vA==
"@hot-loader/react-dom@^16.14.0":
version "16.14.0"
resolved "http://npm.cha0sdev/@hot-loader%2freact-dom/-/react-dom-16.14.0.tgz#3cfc64e40bb78fa623e59b582b8f09dcdaad648a"
integrity sha512-EN9czvcLsMYmSDo5yRKZOAq3ZGRlDpad1gPtX0NdMMomJXcPE3yFSeFzE94X/NjOaiSVimB7LuqPYpkWVaIi4Q==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler "^0.20.1"
prop-types "^15.6.2"
scheduler "^0.19.1"
"@latus/core@2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fcore/-/core-2.0.0.tgz#2ca04903351edc14f29fcec2ad6ab5e19c72e072"
integrity sha512-Sq4nPpQzRektLgsXRFQqhZWpUWY1bFTrVbm5X0vGTyTTlfQPmMbHyddmtdVTB8NbANvleuw4PvfuNVqKU4le6w==
resolved "http://npm.cha0sdev/@latus%2fcore/-/core-2.0.0.tgz#40c834cffe07bed850a95d6fc44f4b467d096e03"
integrity sha512-N43j7dAHxFwvLzOzQReu9iMD9DT2Um76jm9RPJvDlgJj0wD/RKe9N7HTuyeExw+XQf/T35bHC35aXUv8Wp5O4g==
dependencies:
debug "4.3.1"
js-yaml "3.14.0"
@ -930,17 +931,19 @@
lodash.get "^4.4.2"
lodash.set "^4.3.2"
mkdirp "^1.0.4"
webpack-virtual-modules "^0.4.1"
"@latus/http@2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fhttp/-/http-2.0.0.tgz#b8236cbdcd96916343be62f975dc33de11d0395b"
integrity sha512-3ZsUcuVwxMidG3ph/YJht3KYPJSjtq8gdGGsb61vrXzbWC86+5UtydZCySzKGOenEU+tkQqwfd+tClvVKTcwSQ==
resolved "http://npm.cha0sdev/@latus%2fhttp/-/http-2.0.0.tgz#afb45a0820463a47fe04b3c6a905f5d005d03bc7"
integrity sha512-jVInRxC/n1AZqoJhuAs8iwtQOHlazYwRQJKJd6XgFCxQppvz2BX7ppdyLSWSZxkBjbuk/hABP67F/1cU0M0J2g==
dependencies:
"@latus/core" "2.0.0"
"@neutrinojs/web" "^9.1.0"
debug "4.3.1"
express "^4.17.1"
http-proxy "^1.18.1"
lodash.uniq "^4.5.0"
memfs "3.2.0"
mocha "^8"
neutrino "9.4.0"
@ -956,23 +959,24 @@
"@latus/react@2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2freact/-/react-2.0.0.tgz#e56110e0fc48de2601e8b5dad7ca6d0e5a4b5c68"
integrity sha512-stcRzji4pA9jWwGtqsmlJHTlpDNfzb/5ugw40t9oaHnxqS2gzIvDfS4RcVV/zdxo2BEGYo20uhSmXXSM3JEnGg==
resolved "http://npm.cha0sdev/@latus%2freact/-/react-2.0.0.tgz#08914f1a2630c64306ac5d67c116269b21b906ea"
integrity sha512-zzW87W727d/lh5PZrR7e9L2b5w9WqkAZfzXXnC62mISEo4+9L/x0473wmZt9w4ASV/FcrK2RWb8ZUnNIKEg6gQ==
dependencies:
"@hot-loader/react-dom" "^17.0.1"
"@hot-loader/react-dom" "^16.14.0"
"@neutrinojs/react" "^9.4.0"
debug "4.3.1"
node-sass "^5.0.0"
postcss-loader "3.0.0"
react "^17.0.1"
react-dom "^17.0.1"
prop-types "^15.7.2"
react "^16.14.0"
react-dom "^16.14.0"
react-hot-loader "^4.13.0"
sass-loader "^10.1.0"
"@latus/redux@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fredux/-/redux-2.0.0.tgz#ee9076751d28804991b01e8648df4e7bda6e3882"
integrity sha512-FbYRQ7v7xCAd9Xu3gDGUkLjnAtjMpW+8a3Rp03LVYRJRbfOAILpS3gNEHA72icZiAFzVNIql8SuKO+oySpo/LQ==
resolved "http://npm.cha0sdev/@latus%2fredux/-/redux-2.0.0.tgz#0cf354549c81b5ee7556c8d386de56bc51648a81"
integrity sha512-uK7t/CkFlaBEMGrLMtQIl6a73ssECuUg8NOd1h4MWf5Ig+3Q1PGk2qFdqhaNGnjXMMfjjEZ+U2uTmDiJ4HdE5Q==
dependencies:
"@latus/core" "2.0.0"
"@latus/socket" "^2.0.0"
@ -986,8 +990,8 @@
"@latus/socket@^2.0.0":
version "2.0.0"
resolved "http://npm.cha0sdev/@latus%2fsocket/-/socket-2.0.0.tgz#0b16a9907939915e569844ee900c37b9a07ad301"
integrity sha512-e0QtP2DeogX01yQ1qw3QSvXc/xgUbN7pNEluny8gw6jhoRVMZwfIf8RczqivIAZ2zpI/m+YSPxPc7keHwHix4Q==
resolved "http://npm.cha0sdev/@latus%2fsocket/-/socket-2.0.0.tgz#d130a00b0a2d06883dcb1f1f25e072ab971949b1"
integrity sha512-pAvxFXUoWdka9jb22e/iMQgZ4pQW8Mi1ESxgD6712MDyY2CEd2+J23J4z0yh5QYkVbQYtg03wpSHAUkligHR4g==
dependencies:
"@latus/core" "2.0.0"
"@latus/http" "2.0.0"
@ -999,7 +1003,6 @@
schemapack "^1.4.2"
socket.io "^3.1.0"
socket.io-client "^3.1.0"
socket.io-parser "^4.0.4"
"@neutrinojs/airbnb-base@^9.4.0":
version "9.5.0"
@ -5091,6 +5094,11 @@ lodash.throttle@^4.1.1:
resolved "http://npm.cha0sdev/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "http://npm.cha0sdev/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@~4.17.10:
version "4.17.20"
resolved "http://npm.cha0sdev/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
@ -6362,7 +6370,7 @@ promise-inflight@^1.0.1:
resolved "http://npm.cha0sdev/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
prop-types@^15.6.1, prop-types@^15.7.2:
prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "http://npm.cha0sdev/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@ -6504,14 +6512,15 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
react-dom@^17.0.1:
version "17.0.1"
resolved "http://npm.cha0sdev/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6"
integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==
react-dom@^16.14.0:
version "16.14.0"
resolved "http://npm.cha0sdev/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89"
integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
scheduler "^0.20.1"
prop-types "^15.6.2"
scheduler "^0.19.1"
react-hot-loader@^4.13.0:
version "4.13.0"
@ -6548,13 +6557,14 @@ react-redux@^7.2.2:
prop-types "^15.7.2"
react-is "^16.13.1"
react@^17.0.1:
version "17.0.1"
resolved "http://npm.cha0sdev/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127"
integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==
react@^16.14.0:
version "16.14.0"
resolved "http://npm.cha0sdev/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
read-pkg-up@^1.0.1:
version "1.0.1"
@ -6942,10 +6952,10 @@ sass-loader@^10.1.0:
schema-utils "^3.0.0"
semver "^7.3.2"
scheduler@^0.20.1:
version "0.20.1"
resolved "http://npm.cha0sdev/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c"
integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==
scheduler@^0.19.1:
version "0.19.1"
resolved "http://npm.cha0sdev/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
@ -7223,7 +7233,7 @@ socket.io-client@^3.1.0:
parseuri "0.0.6"
socket.io-parser "~4.0.4"
socket.io-parser@^4.0.4, socket.io-parser@~4.0.3, socket.io-parser@~4.0.4:
socket.io-parser@~4.0.3, socket.io-parser@~4.0.4:
version "4.0.4"
resolved "http://npm.cha0sdev/socket.io-parser/-/socket.io-parser-4.0.4.tgz#9ea21b0d61508d18196ef04a2c6b9ab630f4c2b0"
integrity sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==