diff --git a/app/jsnode/package.json b/app/jsnode/package.json index 56b93072..5dd73d57 100644 --- a/app/jsnode/package.json +++ b/app/jsnode/package.json @@ -5,7 +5,7 @@ "description": "Minecraft Creator Tools command line and libraries.", "publisher": "mojang-studios", "author": { - "name": "Mojang Studios" + "name": "Mojang Studios" }, "keywords": [ "minecraft", @@ -13,7 +13,7 @@ "bedrock", "add-on", "creator" - ], + ], "bugs": { "url": "https://aka.ms/mctbugs" }, @@ -43,7 +43,6 @@ "ajv": "^8.11.0", "localforage": "^1.9.0", "permessage-deflate": "^0.1.7", - "ste-events": "^2.0.9", - "trash": "^8.0.0" + "ste-events": "^2.0.9" } } diff --git a/app/package-lock.json b/app/package-lock.json index 091e4675..236a7761 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -45,7 +45,6 @@ "react-scripts": "^5.0.1", "ste-events": "^2.0.9", "threads": "^1.7.0", - "trash": "^8.0.0", "tui-grid": "^4.18.1", "uuid": "^9.0.0", "waveform-playlist": "^4.3.3" @@ -4449,77 +4448,6 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, - "node_modules/@sindresorhus/chunkify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/chunkify/-/chunkify-0.2.0.tgz", - "integrity": "sha512-mOAiwqu+bIIkNFDCXFJxZEmF9p9WHfSBbpLLmgysYnNkEs7aA0/AvU9+6zLHFqI7JnqdqwAuWu8CbGwGIszRdw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sindresorhus/df": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/df/-/df-3.1.1.tgz", - "integrity": "sha512-SME/vtXaJcnQ/HpeV6P82Egy+jThn11IKfwW8+/XVoRD0rmPHVTeKMtww1oWdVnMykzVPjmrDN9S8NBndPEHCQ==", - "dependencies": { - "execa": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sindresorhus/df/node_modules/execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": "^8.12.0 || >=9.7.0" - } - }, - "node_modules/@sindresorhus/df/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@sindresorhus/df/node_modules/npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sindresorhus/df/node_modules/p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "engines": { - "node": ">=8" - } - }, "node_modules/@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -4536,14 +4464,6 @@ "@sinonjs/commons": "^1.7.0" } }, - "node_modules/@stroncium/procfs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@stroncium/procfs/-/procfs-1.2.1.tgz", - "integrity": "sha512-X1Iui3FUNZP18EUvysTHxt+Avu2nlVzyf90YM8OYgP6SGzTzzX/0JgObfO1AQQDzuZtNNz29bVh8h5R97JrjxA==", - "engines": { - "node": ">=8" - } - }, "node_modules/@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", @@ -6274,14 +6194,6 @@ "node": ">=8" } }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -10397,6 +10309,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "dependencies": { "once": "^1.4.0" } @@ -13091,20 +13004,6 @@ "node": ">=8.0.0" } }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -19783,49 +19682,6 @@ "webpack": "^4.5.0 || 5.x" } }, - "node_modules/mount-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mount-point/-/mount-point-3.0.0.tgz", - "integrity": "sha1-Zly57evoDREOZY21bDHQrvUaj5c=", - "dependencies": { - "@sindresorhus/df": "^1.0.1", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mount-point/node_modules/@sindresorhus/df": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/df/-/df-1.0.1.tgz", - "integrity": "sha1-xptm9S9vzdKHyAffIQMF2694UA0=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/move-file": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-3.0.0.tgz", - "integrity": "sha512-v6u4XjX3MFW6Jo1V/YfbhC7eiGSgvYPJ/NM+aGtTtB9/Y6IYj7YViaHu6dkgDsZFB7MbnAoSI5+Z26XZXnP0vg==", - "dependencies": { - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/move-file/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -20761,14 +20617,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -21088,6 +20936,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -21096,6 +20945,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -21104,6 +20954,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, "dependencies": { "pinkie": "^2.0.0" }, @@ -21505,15 +21356,6 @@ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/pumpify": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", @@ -26657,181 +26499,6 @@ "node": ">=8" } }, - "node_modules/trash": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/trash/-/trash-8.0.0.tgz", - "integrity": "sha512-4z5iyC3uk5dglQ+DnTXnT0TSuq5PuxSaINqOVXjNCDrxdAY3b7ShH9NMz7neSgsGpxWU1Wh5UWcUghPTEGOqaQ==", - "dependencies": { - "@sindresorhus/chunkify": "^0.2.0", - "@stroncium/procfs": "^1.2.1", - "globby": "^7.1.1", - "is-path-inside": "^4.0.0", - "move-file": "^3.0.0", - "p-map": "^5.1.0", - "uuid": "^8.3.2", - "xdg-trashdir": "^3.1.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/trash/node_modules/aggregate-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.0.tgz", - "integrity": "sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==", - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/trash/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trash/node_modules/clean-stack": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.1.0.tgz", - "integrity": "sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==", - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/trash/node_modules/dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dependencies": { - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/trash/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/trash/node_modules/globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dependencies": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/trash/node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "node_modules/trash/node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/trash/node_modules/is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/trash/node_modules/p-map": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.1.0.tgz", - "integrity": "sha512-hDTnBRGPXM4hUkmV4Nbe9ZyFnqUAHFYq5S/3+P38TRf0KbmkQuRSzfGM+JngEJsvB0m6nHvhsSv5E6VsGSB2zA==", - "dependencies": { - "aggregate-error": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/trash/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/trash/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, - "node_modules/trash/node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trash/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -27503,17 +27170,6 @@ "node": ">=0.10.0" } }, - "node_modules/user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", - "dependencies": { - "os-homedir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/utf-8-validate": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-6.0.4.tgz", @@ -28655,28 +28311,6 @@ "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==" }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/xdg-trashdir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/xdg-trashdir/-/xdg-trashdir-3.1.0.tgz", - "integrity": "sha512-N1XQngeqMBoj9wM4ZFadVV2MymImeiFfYD+fJrNlcVcOHsJFFQe7n3b+aBoTPwARuq2HQxukfzVpQmAk1gN4sQ==", - "dependencies": { - "@sindresorhus/df": "^3.1.1", - "mount-point": "^3.0.0", - "user-home": "^2.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/xlsx": { "version": "0.17.5", "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.17.5.tgz", @@ -32092,55 +31726,6 @@ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", "dev": true }, - "@sindresorhus/chunkify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/chunkify/-/chunkify-0.2.0.tgz", - "integrity": "sha512-mOAiwqu+bIIkNFDCXFJxZEmF9p9WHfSBbpLLmgysYnNkEs7aA0/AvU9+6zLHFqI7JnqdqwAuWu8CbGwGIszRdw==" - }, - "@sindresorhus/df": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/df/-/df-3.1.1.tgz", - "integrity": "sha512-SME/vtXaJcnQ/HpeV6P82Egy+jThn11IKfwW8+/XVoRD0rmPHVTeKMtww1oWdVnMykzVPjmrDN9S8NBndPEHCQ==", - "requires": { - "execa": "^2.0.1" - }, - "dependencies": { - "execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "requires": { - "path-key": "^3.0.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" - } - } - }, "@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", @@ -32157,11 +31742,6 @@ "@sinonjs/commons": "^1.7.0" } }, - "@stroncium/procfs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@stroncium/procfs/-/procfs-1.2.1.tgz", - "integrity": "sha512-X1Iui3FUNZP18EUvysTHxt+Avu2nlVzyf90YM8OYgP6SGzTzzX/0JgObfO1AQQDzuZtNNz29bVh8h5R97JrjxA==" - }, "@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", @@ -33507,11 +33087,6 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -36561,6 +36136,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "requires": { "once": "^1.4.0" } @@ -38654,14 +38230,6 @@ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, "get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -43711,38 +43279,6 @@ "loader-utils": "^2.0.2" } }, - "mount-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mount-point/-/mount-point-3.0.0.tgz", - "integrity": "sha1-Zly57evoDREOZY21bDHQrvUaj5c=", - "requires": { - "@sindresorhus/df": "^1.0.1", - "pify": "^2.3.0", - "pinkie-promise": "^2.0.1" - }, - "dependencies": { - "@sindresorhus/df": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/df/-/df-1.0.1.tgz", - "integrity": "sha1-xptm9S9vzdKHyAffIQMF2694UA0=" - } - } - }, - "move-file": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/move-file/-/move-file-3.0.0.tgz", - "integrity": "sha512-v6u4XjX3MFW6Jo1V/YfbhC7eiGSgvYPJ/NM+aGtTtB9/Y6IYj7YViaHu6dkgDsZFB7MbnAoSI5+Z26XZXnP0vg==", - "requires": { - "path-exists": "^5.0.0" - }, - "dependencies": { - "path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==" - } - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -44459,11 +43995,6 @@ } } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -44702,17 +44233,20 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -45018,15 +44552,6 @@ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "pumpify": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", @@ -48583,120 +48108,6 @@ "punycode": "^2.1.1" } }, - "trash": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/trash/-/trash-8.0.0.tgz", - "integrity": "sha512-4z5iyC3uk5dglQ+DnTXnT0TSuq5PuxSaINqOVXjNCDrxdAY3b7ShH9NMz7neSgsGpxWU1Wh5UWcUghPTEGOqaQ==", - "requires": { - "@sindresorhus/chunkify": "^0.2.0", - "@stroncium/procfs": "^1.2.1", - "globby": "^7.1.1", - "is-path-inside": "^4.0.0", - "move-file": "^3.0.0", - "p-map": "^5.1.0", - "uuid": "^8.3.2", - "xdg-trashdir": "^3.1.0" - }, - "dependencies": { - "aggregate-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.0.tgz", - "integrity": "sha512-8DGp7zUt1E9k0NE2q4jlXHk+V3ORErmwolEdRz9iV+LKJ40WhMHh92cxAvhqV2I+zEn/gotIoqoMs0NjF3xofg==", - "requires": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "clean-stack": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.1.0.tgz", - "integrity": "sha512-dxXQYI7mfQVcaF12s6sjNFoZ6ZPDQuBBLp3QJ5156k9EvUFClUoZ11fo8HnLQO241DDVntHEug8MOuFO5PSfRg==", - "requires": { - "escape-string-regexp": "5.0.0" - } - }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "requires": { - "path-type": "^3.0.0" - } - }, - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==" - }, - "is-path-inside": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz", - "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==" - }, - "p-map": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-5.1.0.tgz", - "integrity": "sha512-hDTnBRGPXM4hUkmV4Nbe9ZyFnqUAHFYq5S/3+P38TRf0KbmkQuRSzfGM+JngEJsvB0m6nHvhsSv5E6VsGSB2zA==", - "requires": { - "aggregate-error": "^4.0.0" - } - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -49184,14 +48595,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "user-home": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz", - "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", - "requires": { - "os-homedir": "^1.0.0" - } - }, "utf-8-validate": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-6.0.4.tgz", @@ -50112,22 +49515,6 @@ "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha512-GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==" }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xdg-trashdir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/xdg-trashdir/-/xdg-trashdir-3.1.0.tgz", - "integrity": "sha512-N1XQngeqMBoj9wM4ZFadVV2MymImeiFfYD+fJrNlcVcOHsJFFQe7n3b+aBoTPwARuq2HQxukfzVpQmAk1gN4sQ==", - "requires": { - "@sindresorhus/df": "^3.1.1", - "mount-point": "^3.0.0", - "user-home": "^2.0.0", - "xdg-basedir": "^4.0.0" - } - }, "xlsx": { "version": "0.17.5", "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.17.5.tgz", diff --git a/app/package.json b/app/package.json index e5c48493..ddc8bd0d 100644 --- a/app/package.json +++ b/app/package.json @@ -48,7 +48,6 @@ "react-scripts": "^5.0.1", "ste-events": "^2.0.9", "threads": "^1.7.0", - "trash": "^8.0.0", "tui-grid": "^4.18.1", "uuid": "^9.0.0", "waveform-playlist": "^4.3.3" @@ -119,8 +118,8 @@ "@minecraft/server-net": "^1.0.0-beta.1.21.30-preview.25", "@minecraft/server-ui": "^1.4.0-beta.1.21.30-preview.25", "@minecraft/vanilla-data": "^1.21.22", - "@octokit/rest": "^18.5.2", "@npm/types": "^1.0.2", + "@octokit/rest": "^18.5.2", "@octokit/types": "^6.13.0", "@testing-library/react": "^11.2.5", "@testing-library/user-event": "^12.8.1", diff --git a/app/public/data/forms/render_controller_set_geometry.form.json b/app/public/data/forms/render_controller_set_geometry.form.json index c2a88839..677aa678 100644 --- a/app/public/data/forms/render_controller_set_geometry.form.json +++ b/app/public/data/forms/render_controller_set_geometry.form.json @@ -23,6 +23,7 @@ { "id": "geometries", "title": "Geometries", + "undefinedIfEmpty": true, "description": "Lists of geometries that can be used in selection calculations", "dataType": 28 } diff --git a/app/public/data/forms/render_controller_set_materials.form.json b/app/public/data/forms/render_controller_set_materials.form.json index 1657cbf2..0a0d28da 100644 --- a/app/public/data/forms/render_controller_set_materials.form.json +++ b/app/public/data/forms/render_controller_set_materials.form.json @@ -23,6 +23,7 @@ { "id": "materials", "title": "Materials", + "undefinedIfEmpty": true, "description": "Lists of materials that can be used in selection calculations", "dataType": 28 } diff --git a/app/public/data/forms/render_controller_set_textures.form.json b/app/public/data/forms/render_controller_set_textures.form.json index 5f8dac44..cc977666 100644 --- a/app/public/data/forms/render_controller_set_textures.form.json +++ b/app/public/data/forms/render_controller_set_textures.form.json @@ -24,6 +24,7 @@ { "id": "textures", "title": "Textures", + "undefinedIfEmpty": true, "description": "Lists of textures that can be used in selection calculations", "dataType": 28 } diff --git a/app/public/docs/notice.html b/app/public/docs/notice.html index 9a5c1861..66190ca8 100644 --- a/app/public/docs/notice.html +++ b/app/public/docs/notice.html @@ -42,6 +42,30 @@

Minecraft Creator Tools

This repository incorporates material as listed below or described in the code. +

waveform-playlist

+ +

MIT License

+ +

Copyright (c) 2015 Naomi + +

Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +

The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +

Noto Sans Font

SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

diff --git a/app/reslist/packs-preview.resources.json b/app/reslist/packs-preview.resources.json index eb15a124..48fde650 100644 --- a/app/reslist/packs-preview.resources.json +++ b/app/reslist/packs-preview.resources.json @@ -1,5 +1,5 @@ { - "url": "https://github.com/Mojang/bedrock-samples/archive/acc158ace8d048413c6be79c26584914643c9a12.zip", + "url": "https://github.com/Mojang/bedrock-samples/archive/706bce4c7df169f79f36e0302e1fe9f930e4af3e.zip", "ignoreFirstFolder": true, "exclude": [ "documentation/", diff --git a/app/reslist/packs.resources.json b/app/reslist/packs.resources.json index 9ea30f26..9e9caa5b 100644 --- a/app/reslist/packs.resources.json +++ b/app/reslist/packs.resources.json @@ -1,5 +1,5 @@ { - "url": "https://github.com/Mojang/bedrock-samples/archive/6e0daa70a8c94130fd04f65295e672f99d7adc6d.zip", + "url": "https://github.com/Mojang/bedrock-samples/archive/5ce65764d3426f2a1f600f4156412f829c178b55.zip", "ignoreFirstFolder": true, "exclude": [ "documentation/", diff --git a/app/src/UX/EntityTypeResourceEditor.tsx b/app/src/UX/EntityTypeResourceEditor.tsx index 984f474d..669362ce 100644 --- a/app/src/UX/EntityTypeResourceEditor.tsx +++ b/app/src/UX/EntityTypeResourceEditor.tsx @@ -81,8 +81,6 @@ export default class EntityTypeResourceEditor extends Component< }; this._childPersistables = []; - - this._updateManager(true); } static getDerivedStateFromProps(props: IEntityTypeResourceEditorProps, state: IEntityTypeResourceEditorState) { @@ -110,10 +108,11 @@ export default class EntityTypeResourceEditor extends Component< componentDidMount(): void { this._childPersistables = []; - this._updateManager(true); + + this._updateManager(); } - async _updateManager(setState: boolean) { + async _updateManager() { if (this.state !== undefined && this.state.fileToEdit !== undefined) { if (this.state.fileToEdit !== this._lastFileEdited) { this._lastFileEdited = this.state.fileToEdit; @@ -133,15 +132,15 @@ export default class EntityTypeResourceEditor extends Component< (this.state.fileToEdit.manager as EntityTypeResourceDefinition).isLoaded && !this.state.isLoaded ) { - this._doUpdate(setState); + this._doUpdate(); } } _definitionLoaded(defA: EntityTypeResourceDefinition, defB: EntityTypeResourceDefinition) { - this._doUpdate(true); + this._doUpdate(); } - async _doUpdate(setState: boolean) { + async _doUpdate() { let selItem = this.state.entityTypeResource; if (selItem === undefined && this.state && this.state.fileToEdit && this.state.fileToEdit.manager) { @@ -182,25 +181,14 @@ export default class EntityTypeResourceEditor extends Component< } } - if (setState) { - this.setState({ - fileToEdit: this.state.fileToEdit, - isLoaded: true, - mode: this.state.mode, - sound: soundEvent, - entityTypeResource: etrd, - renderControllerSets: renderControllerSets, - }); - } else { - this.state = { - fileToEdit: this.props.file, - isLoaded: true, - mode: this.state.mode, - sound: soundEvent, - entityTypeResource: etrd, - renderControllerSets: renderControllerSets, - }; - } + this.setState({ + fileToEdit: this.state.fileToEdit, + isLoaded: true, + mode: this.state.mode, + sound: soundEvent, + entityTypeResource: etrd, + renderControllerSets: renderControllerSets, + }); } async persist() { @@ -275,12 +263,6 @@ export default class EntityTypeResourceEditor extends Component< this.state.fileToEdit.manager === undefined || Database.uxCatalog === null ) { - if (this.state.fileToEdit !== null) { - if (this.state.fileToEdit.manager === undefined) { - this._updateManager(true); - } - } - return
Loading...
; } @@ -395,6 +377,7 @@ export default class EntityTypeResourceEditor extends Component< header = (
+
{rcTitle}
{rcDescrip}
); + let i = 0; for (const renderControllerSet of this.state.renderControllerSets) { renderControllerEditors.push( ); + i++; } } @@ -464,6 +450,7 @@ export default class EntityTypeResourceEditor extends Component< ", - "Latest Minecraft release", - "Latest Minecraft preview", - "Latest Education Edition", - "Latest Education Edition preview", + "Latest Minecraft Bedrock", + "Latest Minecraft Bedrock preview", + "Latest Minecraft Education", + "Latest Minecraft Education preview", ]; export const AUTOGENERATED_CONTENT_TOKEN = "==== AUTOGENERATED"; @@ -2312,7 +2312,7 @@ export default class Project { } else if (folderContext === FolderContext.behaviorPack && folderPathLower.indexOf("/dialogue/") >= 0) { newJsonType = ProjectItemType.dialogueBehaviorJson; } else if (folderContext === FolderContext.behaviorPack && folderPathLower.indexOf("/recipes/") >= 0) { - newJsonType = ProjectItemType.recipeBehaviorJson; + newJsonType = ProjectItemType.recipeBehavior; } else if ( folderContext === FolderContext.behaviorPack && folderPathLower.indexOf("/spawn_rules/") >= 0 @@ -2481,7 +2481,7 @@ export default class Project { ) { newJsonType = ProjectItemType.entityTypeBehavior; } else if (folderContext === FolderContext.behaviorPack && folderPathLower.indexOf("/items/") >= 0) { - newJsonType = ProjectItemType.itemTypeBehaviorJson; + newJsonType = ProjectItemType.itemTypeBehavior; } else if (folderContext === FolderContext.behaviorPack && folderPathLower.indexOf("/blocks/") >= 0) { newJsonType = ProjectItemType.blockTypeBehavior; } else if (folderContext === FolderContext.docs && baseName === "info") { diff --git a/app/src/app/ProjectItem.ts b/app/src/app/ProjectItem.ts index 2c51e961..0600ee6b 100644 --- a/app/src/app/ProjectItem.ts +++ b/app/src/app/ProjectItem.ts @@ -338,7 +338,7 @@ export default class ProjectItem { return "behavior/animations/animations.json"; case ProjectItemType.blockTypeBehavior: return "behavior/blocks/blocks.json"; - case ProjectItemType.itemTypeBehaviorJson: + case ProjectItemType.itemTypeBehavior: return "behavior/items/items.json"; case ProjectItemType.lootTableBehavior: return "behavior/loot_tables/loot_tables.json"; @@ -378,7 +378,7 @@ export default class ProjectItem { return "behavior/feature_rules/feature_rules.json"; case ProjectItemType.functionEventJson: return "behavior/functions/tick.json"; - case ProjectItemType.recipeBehaviorJson: + case ProjectItemType.recipeBehavior: return "behavior/recipes/recipes.json"; case ProjectItemType.spawnRuleBehavior: return "behavior/spawn_rules/spawn_rules.json"; diff --git a/app/src/app/ProjectItemRelations.ts b/app/src/app/ProjectItemRelations.ts index 02e25232..aba71bf1 100644 --- a/app/src/app/ProjectItemRelations.ts +++ b/app/src/app/ProjectItemRelations.ts @@ -3,6 +3,7 @@ import EntityTypeDefinition from "../minecraft/EntityTypeDefinition"; import EntityTypeResourceDefinition from "../minecraft/EntityTypeResourceDefinition"; import ItemTextureCatalogDefinition from "../minecraft/ItemTextureCatalogDefinition"; import MusicDefinitionCatalogDefinition from "../minecraft/MusicDefinitionCatalogDefinition"; +import ParticleEffectResourceDefinition from "../minecraft/ParticleEffectResourceDefinition"; import SoundCatalogDefinition from "../minecraft/SoundCatalogDefinition"; import SoundDefinitionCatalogDefinition from "../minecraft/SoundDefinitionCatalogDefinition"; import TerrainTextureCatalogDefinition from "../minecraft/TerrainTextureCatalogDefinition"; @@ -41,6 +42,16 @@ export default class ProjectItemRelations { await entityTypeResource.addChildItems(project, item); } } + } else if (item.itemType === ProjectItemType.particleJson) { + await item.ensureStorage(); + + if (item.file) { + const particleResource = await ParticleEffectResourceDefinition.ensureOnFile(item.file); + + if (particleResource) { + await particleResource.addChildItems(project, item); + } + } } else if (item.itemType === ProjectItemType.attachableResourceJson) { await item.ensureStorage(); @@ -119,7 +130,17 @@ export default class ProjectItemRelations { const entityTypeResource = await EntityTypeResourceDefinition.ensureOnFile(rel.parentItem.file); if (entityTypeResource) { - await entityTypeResource.deleteLink(rel); + await entityTypeResource.deleteLinkToChild(rel); + } + } + } else if (rel.parentItem.itemType === ProjectItemType.particleJson) { + await item.ensureStorage(); + + if (rel.parentItem.file) { + const particleResource = await ParticleEffectResourceDefinition.ensureOnFile(rel.parentItem.file); + + if (particleResource) { + await particleResource.deleteLinkToChild(rel); } } } else if (rel.parentItem.itemType === ProjectItemType.attachableResourceJson) { @@ -129,7 +150,7 @@ export default class ProjectItemRelations { const attachableResource = await AttachableResourceDefinition.ensureOnFile(rel.parentItem.file); if (attachableResource) { - await attachableResource.deleteLink(rel); + await attachableResource.deleteLinkToChild(rel); } } } else if (rel.parentItem.itemType === ProjectItemType.soundCatalog) { @@ -139,7 +160,7 @@ export default class ProjectItemRelations { const soundCat = await SoundDefinitionCatalogDefinition.ensureOnFile(rel.parentItem.file); if (soundCat) { - await soundCat.deleteLink(rel.childItem); + await soundCat.deleteLinkToChild(rel.childItem); } } } diff --git a/app/src/app/ProjectItemUtilities.ts b/app/src/app/ProjectItemUtilities.ts index 5e5a1238..2c4d7c59 100644 --- a/app/src/app/ProjectItemUtilities.ts +++ b/app/src/app/ProjectItemUtilities.ts @@ -52,13 +52,13 @@ export default class ProjectItemUtilities { firstHundred.indexOf('"minecraft:recipe_shaped"') >= 0 || firstHundred.indexOf('"minecraft:recipe_shapeless"') >= 0 ) { - return { itemType: ProjectItemType.recipeBehaviorJson }; + return { itemType: ProjectItemType.recipeBehavior }; } else if (firstHundred.indexOf('"minecraft:entity"') >= 0) { return { itemType: ProjectItemType.entityTypeBehavior }; } else if (firstHundred.indexOf('"minecraft:item"') >= 0) { - return { itemType: ProjectItemType.itemTypeBehaviorJson }; + return { itemType: ProjectItemType.itemTypeBehavior }; } else if (firstHundred.indexOf('"pools"') >= 0) { - return { itemType: ProjectItemType.itemTypeBehaviorJson }; + return { itemType: ProjectItemType.itemTypeBehavior }; } else if (firstHundred.indexOf('"minecraft:spawn_rules"') >= 0) { return { itemType: ProjectItemType.spawnRuleBehavior }; } else if (firstHundred.indexOf('"tiers"') >= 0) { @@ -118,9 +118,9 @@ export default class ProjectItemUtilities { case ProjectItemType.blockTypeBehavior: return 1852; - case ProjectItemType.itemTypeBehaviorJson: + case ProjectItemType.itemTypeBehavior: return 1853; - case ProjectItemType.recipeBehaviorJson: + case ProjectItemType.recipeBehavior: return 1860; case ProjectItemType.particleJson: return 1870; @@ -200,12 +200,12 @@ export default class ProjectItemUtilities { case ProjectItemType.blockTypeBehavior: case ProjectItemType.blocksCatalogResourceJson: case ProjectItemType.blockTypeResourceJson: - case ProjectItemType.itemTypeBehaviorJson: + case ProjectItemType.itemTypeBehavior: case ProjectItemType.fogResourceJson: case ProjectItemType.tradingBehaviorJson: case ProjectItemType.particleJson: case ProjectItemType.structure: - case ProjectItemType.recipeBehaviorJson: + case ProjectItemType.recipeBehavior: case ProjectItemType.biomeBehaviorJson: case ProjectItemType.biomeResourceJson: case ProjectItemType.lootTableBehavior: @@ -324,7 +324,7 @@ export default class ProjectItemUtilities { case ProjectItemType.animationControllerBehaviorJson: case ProjectItemType.blockTypeBehavior: case ProjectItemType.blockMaterialsBehaviorJson: - case ProjectItemType.itemTypeBehaviorJson: + case ProjectItemType.itemTypeBehavior: case ProjectItemType.lootTableBehavior: case ProjectItemType.biomeResourceJson: case ProjectItemType.fileListArrayJson: @@ -345,7 +345,7 @@ export default class ProjectItemUtilities { case ProjectItemType.featureRuleBehaviorJson: case ProjectItemType.featureBehavior: case ProjectItemType.functionEventJson: - case ProjectItemType.recipeBehaviorJson: + case ProjectItemType.recipeBehavior: case ProjectItemType.spawnRuleBehavior: case ProjectItemType.tradingBehaviorJson: case ProjectItemType.volumeBehaviorJson: @@ -502,7 +502,7 @@ export default class ProjectItemUtilities { return "Block type"; case ProjectItemType.blockMaterialsBehaviorJson: return "Block type materials"; - case ProjectItemType.itemTypeBehaviorJson: + case ProjectItemType.itemTypeBehavior: return "Item type"; case ProjectItemType.lootTableBehavior: return "Loot table"; @@ -542,7 +542,7 @@ export default class ProjectItemUtilities { return "Feature"; case ProjectItemType.functionEventJson: return "Function event"; - case ProjectItemType.recipeBehaviorJson: + case ProjectItemType.recipeBehavior: return "Recipe"; case ProjectItemType.spawnRuleBehavior: return "Spawn rule"; @@ -832,7 +832,7 @@ export default class ProjectItemUtilities { return ["attachables"]; case ProjectItemType.entityTypeBehavior: return ["entities"]; - case ProjectItemType.itemTypeBehaviorJson: + case ProjectItemType.itemTypeBehavior: case ProjectItemType.itemTypeResourceJson: return ["items"]; case ProjectItemType.blockTypeBehavior: @@ -843,7 +843,7 @@ export default class ProjectItemUtilities { return ["command_modules"]; case ProjectItemType.lootTableBehavior: return ["loot_tables"]; - case ProjectItemType.recipeBehaviorJson: + case ProjectItemType.recipeBehavior: return ["recipes"]; case ProjectItemType.spawnRuleBehavior: return ["spawn_rules"]; diff --git a/app/src/app/ProjectUtilities.ts b/app/src/app/ProjectUtilities.ts index 18224fb1..e5fc7edb 100644 --- a/app/src/app/ProjectUtilities.ts +++ b/app/src/app/ProjectUtilities.ts @@ -667,8 +667,8 @@ export default class ProjectUtilities { ); if ( - bpManifestJson.uuid !== oldUids["defaultBehaviorPack"] && - bpManifestJson.uuid !== project.defaultBehaviorPackUniqueId + bpManifestJson.id !== oldUids["defaultBehaviorPack"] && + bpManifestJson.id !== project.defaultBehaviorPackUniqueId ) { await bpManifestJson.setUuid(Utilities.createUuid(), project); } @@ -680,8 +680,8 @@ export default class ProjectUtilities { rpManifestJson.randomizeModuleUuids(project.defaultDataUniqueId, oldUids["defaultDataModulePack"]); if ( - rpManifestJson.uuid !== oldUids["defaultResourcePack"] && - rpManifestJson.uuid !== project.defaultResourcePackUniqueId + rpManifestJson.id !== oldUids["defaultResourcePack"] && + rpManifestJson.id !== project.defaultResourcePackUniqueId ) { await rpManifestJson.setUuid(Utilities.createUuid(), project); } @@ -925,7 +925,10 @@ export default class ProjectUtilities { } static replaceNamesInPath(path: string, project: Project, entityTypeProject: IGalleryItem, newName: string) { - path = Utilities.replaceAll(path, entityTypeProject.id, newName); + path = Utilities.replaceAll(path, "/" + entityTypeProject.id + ".", "/" + newName + "."); + path = Utilities.replaceAll(path, "\\" + entityTypeProject.id + ".", "\\" + newName + "."); + path = Utilities.replaceAll(path, "/" + entityTypeProject.id + "/", "/" + newName + "/"); + path = Utilities.replaceAll(path, "\\" + entityTypeProject.id + "\\", "\\" + newName + "\\"); return path; } diff --git a/app/src/cli/ClUtils.ts b/app/src/cli/ClUtils.ts index 88b3274b..2bfca905 100644 --- a/app/src/cli/ClUtils.ts +++ b/app/src/cli/ClUtils.ts @@ -4,6 +4,7 @@ import Project, { ProjectAutoDeploymentMode } from "../app/Project"; import IStatus, { StatusType } from "../app/Status"; import Log from "../core/Log"; import LocalEnvironment, { OperationColors, consoleText_reset } from "../local/LocalEnvironment"; +import LocalUtilities from "../local/LocalUtilities"; import NodeStorage from "../local/NodeStorage"; import Database from "../minecraft/Database"; import IFolder from "../storage/IFolder"; @@ -143,7 +144,7 @@ export default class ClUtils { return workFolder; } - static getCarto(localEnv: LocalEnvironment) { + static getCarto(localEnv: LocalEnvironment, basePath?: string) { CartoApp.localFolderExists = ClUtils.localFolderExists; CartoApp.localFileExists = ClUtils.localFileExists; CartoApp.ensureLocalFolder = ClUtils.ensureLocalFolder; @@ -173,6 +174,10 @@ export default class ClUtils { "" ); + if (localEnv.utilities && basePath) { + (localEnv.utilities as LocalUtilities).basePathAdjust = basePath; + } + const coreStorage = new NodeStorage(__dirname + "/../data/content/", ""); Database.contentFolder = coreStorage.rootFolder; diff --git a/app/src/cli/TaskWorker.ts b/app/src/cli/TaskWorker.ts index 4347a187..69b995ab 100644 --- a/app/src/cli/TaskWorker.ts +++ b/app/src/cli/TaskWorker.ts @@ -180,21 +180,30 @@ async function validateAndDisposeProject( pis.disconnectFromProject(); if (localEnv?.displayInfo || localEnv?.displayVerbose) { + let lastMessage: string | undefined; + for (let k = 0; k < pis.items.length; k++) { const item = pis.items[k]; - if ( - (localEnv.displayInfo || localEnv.displayVerbose) && - item.itemType !== InfoItemType.info && - item.itemType !== InfoItemType.featureAggregate - ) { - if (item.itemType === InfoItemType.error || item.itemType === InfoItemType.testCompleteFail) { - Log.error(pis.itemToString(item)); - } else { - Log.message(pis.itemToString(item)); + const message = pis.itemToString(item); + + if (message !== lastMessage) { + if ( + (localEnv.displayInfo || localEnv.displayVerbose) && + item.itemType !== InfoItemType.info && + item.itemType !== InfoItemType.featureAggregate + ) { + if (item.itemType === InfoItemType.error || item.itemType === InfoItemType.testCompleteFail) { + Log.error(message); + lastMessage = message; + } else { + Log.message(message); + lastMessage = message; + } + } else if (localEnv.displayVerbose) { + Log.verbose(message); + lastMessage = message; } - } else if (localEnv.displayVerbose) { - Log.verbose(pis.itemToString(item)); } } } diff --git a/app/src/core/ContentIndex.ts b/app/src/core/ContentIndex.ts index 7ba235c4..fc6b6f1f 100644 --- a/app/src/core/ContentIndex.ts +++ b/app/src/core/ContentIndex.ts @@ -12,17 +12,25 @@ export enum AnnotationCategories { entityComponentDependent = "c", blockComponentDependent = "d", entityTypeDependent = "e", - experiment = "E", + entityComponentDependentInGroup = "g", itemTypeDependent = "i", itemComponentDependent = "j", - entityComponentDependentInGroup = "g", blockComponentDependentInPermutation = "p", storagePathDependent = "s", - entityTypeSource = "E", blockTypeSource = "B", + entityTypeSource = "E", itemTypeSource = "I", + itemTextureSource = "J", + blockSounds = "L", + musicDefinitionSource = "M", + entitySounds = "N", + interactiveSounds = "R", jsSource = "S", + terrainTextureSource = "T", + soundDefinitionSource = "U", + individualEventSoundsSource = "V", worldProperty = "W", + experiment = "X", } const AvoidTermList = ["__proto__", "prototype", "[[Prototype]]"]; @@ -334,7 +342,7 @@ export default class ContentIndex implements IContentIndex { for (const item in curNode) { // we've found part of our string in this node - if (item.startsWith(nextStart) && curNode[item] !== undefined) { + if (item.startsWith(nextStart) && curNode[item] !== undefined && !hasAdvanced) { let itemIndex = 0; hasAdvanced = true; curNode = curNode[item]; @@ -396,7 +404,7 @@ export default class ContentIndex implements IContentIndex { } insert(key: string, item: string, annotationChar?: string) { - if (Utilities.isNumericIsh(key) || key.length > 40) { + if (Utilities.isNumericIsh(key) || key.length > 70) { return; } diff --git a/app/src/dataform/DataForm.tsx b/app/src/dataform/DataForm.tsx index 929dc029..f1b5e963 100644 --- a/app/src/dataform/DataForm.tsx +++ b/app/src/dataform/DataForm.tsx @@ -137,7 +137,7 @@ export default class DataForm extends Component const fieldId = this._getProperty("id", undefined); - if (!fieldId) { + if (fieldId) { return fieldId; } @@ -975,8 +975,6 @@ export default class DataForm extends Component this.checkboxItems = []; this.checkboxNames = []; - const seedId = this._getObjectId(); - if (this.props.definition !== undefined) { for (const propIndex in this.props.definition.fields) { const field = this.props.definition.fields[propIndex]; @@ -985,17 +983,19 @@ export default class DataForm extends Component const curVal = FieldUtilities.getFieldValue(field, this.props); const defaultVal = curVal ? curVal : field.defaultValue; + let baseKey = this._getObjectId() + "." + field.id; + let isValid = true; if (field.validity) { isValid = FieldUtilities.evaluate(this.props.definition, field.validity, this.props, field); } - let descriptionElement = <>; + let descriptionElement = ; if (field.description) { descriptionElement = ( -
+
{field.description}
); @@ -1006,7 +1006,7 @@ export default class DataForm extends Component if (this.props.readOnly || field.readOnly) { if (field.defaultValue === undefined || field.defaultValue !== curVal) { formInterior.push( -
+
{title}
{curVal}
@@ -1054,7 +1054,7 @@ export default class DataForm extends Component label={title} id={propIndex} items={items} - key={"frs" + seedId + title + propIndex} + key={"frs" + baseKey + title + propIndex} fluid={true} onChange={this._handleDropdownChange} value={[dropdownValue]} @@ -1064,7 +1064,7 @@ export default class DataForm extends Component this.dropdownNames.push(field.id); this.dropdownItems.push(items); formInterior.push( -
+
{dropdown} {descriptionElement}
@@ -1072,6 +1072,7 @@ export default class DataForm extends Component } else if (field.dataType === FieldDataType.point3) { const val = this._getProperty(field.id, [0, 0, 0]); let objKey = field.id; + if (this.props.objectKey) { objKey += this.props.objectKey; } @@ -1080,7 +1081,7 @@ export default class DataForm extends Component this.formComponentNames.push(field.id); this.formComponents.push(point3); formInterior.push( -
+
{point3} {descriptionElement}
@@ -1108,7 +1109,7 @@ export default class DataForm extends Component this.formComponents.push(version); formInterior.push( -
+
{version} {descriptionElement}
@@ -1139,7 +1140,7 @@ export default class DataForm extends Component this.formComponents.push(sarrt); formInterior.push( -
+
{title}
{descriptionElement} {sarrt} @@ -1172,7 +1173,7 @@ export default class DataForm extends Component this.formComponents.push(range); formInterior.push( -
+
{range} {descriptionElement}
@@ -1202,7 +1203,7 @@ export default class DataForm extends Component this.formComponents.push(sarr); formInterior.push( -
+
{descriptionElement} {sarr}
@@ -1238,7 +1239,7 @@ export default class DataForm extends Component const fieldInput = (