diff --git a/changelogs/CHANGELOG_alpha.md b/changelogs/CHANGELOG_alpha.md
index 4996f4a93a..b06ad69597 100644
--- a/changelogs/CHANGELOG_alpha.md
+++ b/changelogs/CHANGELOG_alpha.md
@@ -1,3 +1,38 @@
+# [7.4.0-alpha.5](https://github.com/parse-community/parse-dashboard/compare/7.4.0-alpha.4...7.4.0-alpha.5) (2025-08-22)
+
+
+### Features
+
+* Add info panel setting to auto-load first row on opening new browser tab ([#2972](https://github.com/parse-community/parse-dashboard/issues/2972)) ([020a25d](https://github.com/parse-community/parse-dashboard/commit/020a25dc302e45e947eb5c15a271bb9f0f1211f2))
+
+# [7.4.0-alpha.4](https://github.com/parse-community/parse-dashboard/compare/7.4.0-alpha.3...7.4.0-alpha.4) (2025-08-22)
+
+
+### Features
+
+* Add config parameter name to quick add dialogs in Config page ([#2970](https://github.com/parse-community/parse-dashboard/issues/2970)) ([31988f6](https://github.com/parse-community/parse-dashboard/commit/31988f68cda16856b0c6afb22e4f06321cbcef03))
+
+# [7.4.0-alpha.3](https://github.com/parse-community/parse-dashboard/compare/7.4.0-alpha.2...7.4.0-alpha.3) (2025-08-04)
+
+
+### Bug Fixes
+
+* Legacy script in JavaScript console not imported to modern console ([#2963](https://github.com/parse-community/parse-dashboard/issues/2963)) ([8c8d084](https://github.com/parse-community/parse-dashboard/commit/8c8d0849521eccd23e590c57ca91069bb32c5035))
+
+# [7.4.0-alpha.2](https://github.com/parse-community/parse-dashboard/compare/7.4.0-alpha.1...7.4.0-alpha.2) (2025-08-04)
+
+
+### Features
+
+* Modernize JavaScript console with tabs and server-side storage of scripts ([#2962](https://github.com/parse-community/parse-dashboard/issues/2962)) ([6e0c7f2](https://github.com/parse-community/parse-dashboard/commit/6e0c7f25b16fdfc0a34123359a8512c26252f269))
+
+# [7.4.0-alpha.1](https://github.com/parse-community/parse-dashboard/compare/7.3.0...7.4.0-alpha.1) (2025-08-03)
+
+
+### Features
+
+* Add App Settings option to store dashboard settings on server ([#2958](https://github.com/parse-community/parse-dashboard/issues/2958)) ([666e078](https://github.com/parse-community/parse-dashboard/commit/666e07860ba1478aec3cde9db5c98a5772ea07fb))
+
# [7.3.0-alpha.44](https://github.com/parse-community/parse-dashboard/compare/7.3.0-alpha.43...7.3.0-alpha.44) (2025-07-31)
diff --git a/package-lock.json b/package-lock.json
index c4648074d2..85830ec49c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,16 +1,16 @@
{
"name": "parse-dashboard",
- "version": "7.3.0",
+ "version": "7.4.0-alpha.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "parse-dashboard",
- "version": "7.3.0",
+ "version": "7.4.0-alpha.5",
"license": "SEE LICENSE IN LICENSE",
"dependencies": {
"@babel/runtime": "7.27.4",
- "@babel/runtime-corejs3": "7.27.4",
+ "@babel/runtime-corejs3": "7.28.3",
"bcryptjs": "3.0.2",
"body-parser": "2.2.0",
"commander": "13.1.0",
@@ -25,7 +25,7 @@
"graphql": "16.11.0",
"immutable": "5.1.3",
"immutable-devtools": "0.1.5",
- "inquirer": "12.6.3",
+ "inquirer": "12.9.0",
"js-beautify": "1.15.4",
"node-fetch": "3.3.2",
"otpauth": "8.0.3",
@@ -2106,12 +2106,12 @@
}
},
"node_modules/@babel/runtime-corejs3": {
- "version": "7.27.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.4.tgz",
- "integrity": "sha512-H7QhL0ucCGOObsUETNbB2PuzF4gAvN8p32P6r91bX7M/hk4bx+3yz2hTwHL9d/Efzwu1upeb4/cd7oSxCzup3w==",
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.28.3.tgz",
+ "integrity": "sha512-LKYxD2CIfocUFNREQ1yk+dW+8OH8CRqmgatBZYXb+XhuObO8wsDpEoCNri5bKld9cnj8xukqZjxSX8p1YiRF8Q==",
"license": "MIT",
"dependencies": {
- "core-js-pure": "^3.30.2"
+ "core-js-pure": "^3.43.0"
},
"engines": {
"node": ">=6.9.0"
@@ -2691,14 +2691,14 @@
}
},
"node_modules/@inquirer/checkbox": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.8.tgz",
- "integrity": "sha512-d/QAsnwuHX2OPolxvYcgSj7A9DO9H6gVOy2DvBTx+P2LH2iRTo/RSGV3iwCzW024nP9hw98KIuDmdyhZQj1UQg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.2.0.tgz",
+ "integrity": "sha512-fdSw07FLJEU5vbpOPzXo5c6xmMGDzbZE2+niuDHX5N6mc6V0Ebso/q3xiHra4D73+PMsC8MJmcaZKuAAoaQsSA==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/figures": "^1.0.12",
- "@inquirer/type": "^3.0.7",
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/figures": "^1.0.13",
+ "@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2",
"yoctocolors-cjs": "^2.1.2"
},
@@ -2715,13 +2715,13 @@
}
},
"node_modules/@inquirer/confirm": {
- "version": "5.1.12",
- "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.12.tgz",
- "integrity": "sha512-dpq+ielV9/bqgXRUbNH//KsY6WEw9DrGPmipkpmgC1Y46cwuBTNx7PXFWTjc3MQ+urcc0QxoVHcMI0FW4Ok0hg==",
+ "version": "5.1.14",
+ "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.14.tgz",
+ "integrity": "sha512-5yR4IBfe0kXe59r1YCTG8WXkUbl7Z35HK87Sw+WUyGD8wNUx7JvY7laahzeytyE1oLn74bQnL7hstctQxisQ8Q==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/type": "^3.0.7"
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/type": "^3.0.8"
},
"engines": {
"node": ">=18"
@@ -2736,13 +2736,13 @@
}
},
"node_modules/@inquirer/core": {
- "version": "10.1.13",
- "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.13.tgz",
- "integrity": "sha512-1viSxebkYN2nJULlzCxES6G9/stgHSepZ9LqqfdIGPHj5OHhiBUXVS0a6R0bEC2A+VL4D9w6QB66ebCr6HGllA==",
+ "version": "10.1.15",
+ "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.15.tgz",
+ "integrity": "sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==",
"license": "MIT",
"dependencies": {
- "@inquirer/figures": "^1.0.12",
- "@inquirer/type": "^3.0.7",
+ "@inquirer/figures": "^1.0.13",
+ "@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2",
"cli-width": "^4.1.0",
"mute-stream": "^2.0.0",
@@ -2789,13 +2789,13 @@
}
},
"node_modules/@inquirer/editor": {
- "version": "4.2.13",
- "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.13.tgz",
- "integrity": "sha512-WbicD9SUQt/K8O5Vyk9iC2ojq5RHoCLK6itpp2fHsWe44VxxcA9z3GTWlvjSTGmMQpZr+lbVmrxdHcumJoLbMA==",
+ "version": "4.2.15",
+ "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.15.tgz",
+ "integrity": "sha512-wst31XT8DnGOSS4nNJDIklGKnf+8shuauVrWzgKegWUe28zfCftcWZ2vktGdzJgcylWSS2SrDnYUb6alZcwnCQ==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/type": "^3.0.7",
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/type": "^3.0.8",
"external-editor": "^3.1.0"
},
"engines": {
@@ -2811,13 +2811,13 @@
}
},
"node_modules/@inquirer/expand": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.15.tgz",
- "integrity": "sha512-4Y+pbr/U9Qcvf+N/goHzPEXiHH8680lM3Dr3Y9h9FFw4gHS+zVpbj8LfbKWIb/jayIB4aSO4pWiBTrBYWkvi5A==",
+ "version": "4.0.17",
+ "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.17.tgz",
+ "integrity": "sha512-PSqy9VmJx/VbE3CT453yOfNa+PykpKg/0SYP7odez1/NWBGuDXgPhp4AeGYYKjhLn5lUUavVS/JbeYMPdH50Mw==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/type": "^3.0.7",
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/type": "^3.0.8",
"yoctocolors-cjs": "^2.1.2"
},
"engines": {
@@ -2833,22 +2833,22 @@
}
},
"node_modules/@inquirer/figures": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.12.tgz",
- "integrity": "sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==",
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.13.tgz",
+ "integrity": "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==",
"license": "MIT",
"engines": {
"node": ">=18"
}
},
"node_modules/@inquirer/input": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.12.tgz",
- "integrity": "sha512-xJ6PFZpDjC+tC1P8ImGprgcsrzQRsUh9aH3IZixm1lAZFK49UGHxM3ltFfuInN2kPYNfyoPRh+tU4ftsjPLKqQ==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.2.1.tgz",
+ "integrity": "sha512-tVC+O1rBl0lJpoUZv4xY+WGWY8V5b0zxU1XDsMsIHYregdh7bN5X5QnIONNBAl0K765FYlAfNHS2Bhn7SSOVow==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/type": "^3.0.7"
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/type": "^3.0.8"
},
"engines": {
"node": ">=18"
@@ -2863,13 +2863,13 @@
}
},
"node_modules/@inquirer/number": {
- "version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.15.tgz",
- "integrity": "sha512-xWg+iYfqdhRiM55MvqiTCleHzszpoigUpN5+t1OMcRkJrUrw7va3AzXaxvS+Ak7Gny0j2mFSTv2JJj8sMtbV2g==",
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.17.tgz",
+ "integrity": "sha512-GcvGHkyIgfZgVnnimURdOueMk0CztycfC8NZTiIY9arIAkeOgt6zG57G+7vC59Jns3UX27LMkPKnKWAOF5xEYg==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/type": "^3.0.7"
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/type": "^3.0.8"
},
"engines": {
"node": ">=18"
@@ -2884,13 +2884,13 @@
}
},
"node_modules/@inquirer/password": {
- "version": "4.0.15",
- "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.15.tgz",
- "integrity": "sha512-75CT2p43DGEnfGTaqFpbDC2p2EEMrq0S+IRrf9iJvYreMy5mAWj087+mdKyLHapUEPLjN10mNvABpGbk8Wdraw==",
+ "version": "4.0.17",
+ "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.17.tgz",
+ "integrity": "sha512-DJolTnNeZ00E1+1TW+8614F7rOJJCM4y4BAGQ3Gq6kQIG+OJ4zr3GLjIjVVJCbKsk2jmkmv6v2kQuN/vriHdZA==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/type": "^3.0.7",
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2"
},
"engines": {
@@ -2906,21 +2906,21 @@
}
},
"node_modules/@inquirer/prompts": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.5.3.tgz",
- "integrity": "sha512-8YL0WiV7J86hVAxrh3fE5mDCzcTDe1670unmJRz6ArDgN+DBK1a0+rbnNWp4DUB5rPMwqD5ZP6YHl9KK1mbZRg==",
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.0.tgz",
+ "integrity": "sha512-JHwGbQ6wjf1dxxnalDYpZwZxUEosT+6CPGD9Zh4sm9WXdtUp9XODCQD3NjSTmu+0OAyxWXNOqf0spjIymJa2Tw==",
"license": "MIT",
"dependencies": {
- "@inquirer/checkbox": "^4.1.8",
- "@inquirer/confirm": "^5.1.12",
- "@inquirer/editor": "^4.2.13",
- "@inquirer/expand": "^4.0.15",
- "@inquirer/input": "^4.1.12",
- "@inquirer/number": "^3.0.15",
- "@inquirer/password": "^4.0.15",
- "@inquirer/rawlist": "^4.1.3",
- "@inquirer/search": "^3.0.15",
- "@inquirer/select": "^4.2.3"
+ "@inquirer/checkbox": "^4.2.0",
+ "@inquirer/confirm": "^5.1.14",
+ "@inquirer/editor": "^4.2.15",
+ "@inquirer/expand": "^4.0.17",
+ "@inquirer/input": "^4.2.1",
+ "@inquirer/number": "^3.0.17",
+ "@inquirer/password": "^4.0.17",
+ "@inquirer/rawlist": "^4.1.5",
+ "@inquirer/search": "^3.1.0",
+ "@inquirer/select": "^4.3.1"
},
"engines": {
"node": ">=18"
@@ -2935,13 +2935,13 @@
}
},
"node_modules/@inquirer/rawlist": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.3.tgz",
- "integrity": "sha512-7XrV//6kwYumNDSsvJIPeAqa8+p7GJh7H5kRuxirct2cgOcSWwwNGoXDRgpNFbY/MG2vQ4ccIWCi8+IXXyFMZA==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.5.tgz",
+ "integrity": "sha512-R5qMyGJqtDdi4Ht521iAkNqyB6p2UPuZUbMifakg1sWtu24gc2Z8CJuw8rP081OckNDMgtDCuLe42Q2Kr3BolA==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/type": "^3.0.7",
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/type": "^3.0.8",
"yoctocolors-cjs": "^2.1.2"
},
"engines": {
@@ -2957,14 +2957,14 @@
}
},
"node_modules/@inquirer/search": {
- "version": "3.0.15",
- "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.15.tgz",
- "integrity": "sha512-YBMwPxYBrADqyvP4nNItpwkBnGGglAvCLVW8u4pRmmvOsHUtCAUIMbUrLX5B3tFL1/WsLGdQ2HNzkqswMs5Uaw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.1.0.tgz",
+ "integrity": "sha512-PMk1+O/WBcYJDq2H7foV0aAZSmDdkzZB9Mw2v/DmONRJopwA/128cS9M/TXWLKKdEQKZnKwBzqu2G4x/2Nqx8Q==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/figures": "^1.0.12",
- "@inquirer/type": "^3.0.7",
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/figures": "^1.0.13",
+ "@inquirer/type": "^3.0.8",
"yoctocolors-cjs": "^2.1.2"
},
"engines": {
@@ -2980,14 +2980,14 @@
}
},
"node_modules/@inquirer/select": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.2.3.tgz",
- "integrity": "sha512-OAGhXU0Cvh0PhLz9xTF/kx6g6x+sP+PcyTiLvCrewI99P3BBeexD+VbuwkNDvqGkk3y2h5ZiWLeRP7BFlhkUDg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.3.1.tgz",
+ "integrity": "sha512-Gfl/5sqOF5vS/LIrSndFgOh7jgoe0UXEizDqahFRkq5aJBLegZ6WjuMh/hVEJwlFQjyLq1z9fRtvUMkb7jM1LA==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/figures": "^1.0.12",
- "@inquirer/type": "^3.0.7",
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/figures": "^1.0.13",
+ "@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2",
"yoctocolors-cjs": "^2.1.2"
},
@@ -3004,9 +3004,9 @@
}
},
"node_modules/@inquirer/type": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.7.tgz",
- "integrity": "sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==",
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.8.tgz",
+ "integrity": "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==",
"license": "MIT",
"engines": {
"node": ">=18"
@@ -9630,9 +9630,9 @@
}
},
"node_modules/core-js-pure": {
- "version": "3.41.0",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.41.0.tgz",
- "integrity": "sha512-71Gzp96T9YPk63aUvE5Q5qP+DryB4ZloUZPSOebGM88VNw8VNfvdA7z6kGA8iGOTEzAomsRidp4jXSmUIJsL+Q==",
+ "version": "3.45.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.45.0.tgz",
+ "integrity": "sha512-OtwjqcDpY2X/eIIg1ol/n0y/X8A9foliaNt1dSK0gV3J2/zw+89FcNG3mPK+N8YWts4ZFUPxnrAzsxs/lf8yDA==",
"hasInstallScript": true,
"license": "MIT",
"funding": {
@@ -13566,17 +13566,17 @@
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"node_modules/inquirer": {
- "version": "12.6.3",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.6.3.tgz",
- "integrity": "sha512-eX9beYAjr1MqYsIjx1vAheXsRk1jbZRvHLcBu5nA9wX0rXR1IfCZLnVLp4Ym4mrhqmh7AuANwcdtgQ291fZDfQ==",
+ "version": "12.9.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.9.0.tgz",
+ "integrity": "sha512-LlFVmvWVCun7uEgPB3vups9NzBrjJn48kRNtFGw3xU1H5UXExTEz/oF1JGLaB0fvlkUB+W6JfgLcSEaSdH7RPA==",
"license": "MIT",
"dependencies": {
- "@inquirer/core": "^10.1.13",
- "@inquirer/prompts": "^7.5.3",
- "@inquirer/type": "^3.0.7",
+ "@inquirer/core": "^10.1.15",
+ "@inquirer/prompts": "^7.8.0",
+ "@inquirer/type": "^3.0.8",
"ansi-escapes": "^4.3.2",
"mute-stream": "^2.0.0",
- "run-async": "^3.0.0",
+ "run-async": "^4.0.5",
"rxjs": "^7.8.2"
},
"engines": {
@@ -21913,9 +21913,9 @@
"license": "MIT"
},
"node_modules/run-async": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz",
- "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-4.0.5.tgz",
+ "integrity": "sha512-oN9GTgxUNDBumHTTDmQ8dep6VIJbgj9S3dPP+9XylVLIK4xB9XTXtKWROd5pnhdXR9k0EgO1JRcNh0T+Ny2FsA==",
"license": "MIT",
"engines": {
"node": ">=0.12.0"
diff --git a/package.json b/package.json
index 99b357c99c..01ee9d9a89 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "parse-dashboard",
- "version": "7.3.0",
+ "version": "7.4.0-alpha.5",
"repository": {
"type": "git",
"url": "https://github.com/parse-community/parse-dashboard"
@@ -36,7 +36,7 @@
],
"dependencies": {
"@babel/runtime": "7.27.4",
- "@babel/runtime-corejs3": "7.27.4",
+ "@babel/runtime-corejs3": "7.28.3",
"bcryptjs": "3.0.2",
"body-parser": "2.2.0",
"commander": "13.1.0",
@@ -51,7 +51,7 @@
"graphql": "16.11.0",
"immutable": "5.1.3",
"immutable-devtools": "0.1.5",
- "inquirer": "12.6.3",
+ "inquirer": "12.9.0",
"js-beautify": "1.15.4",
"node-fetch": "3.3.2",
"otpauth": "8.0.3",
diff --git a/src/components/BrowserMenu/MenuItem.react.js b/src/components/BrowserMenu/MenuItem.react.js
index 84eedf1ad0..2cd09381a3 100644
--- a/src/components/BrowserMenu/MenuItem.react.js
+++ b/src/components/BrowserMenu/MenuItem.react.js
@@ -8,7 +8,7 @@
import React from 'react';
import styles from 'components/BrowserMenu/BrowserMenu.scss';
-const MenuItem = ({ text, disabled, active, greenActive, onClick }) => {
+const MenuItem = ({ text, shortcut, disabled, active, greenActive, onClick, disableMouseDown = false }) => {
const classes = [styles.item];
if (disabled) {
classes.push(styles.disabled);
@@ -30,14 +30,29 @@ const MenuItem = ({ text, disabled, active, greenActive, onClick }) => {
- {text}
+ {text}
+ {shortcut && (
+
+ {shortcut}
+
+ )}
);
};
diff --git a/src/components/CodeEditor/CodeEditor.react.js b/src/components/CodeEditor/CodeEditor.react.js
index e8554fe7e3..4a3c75521d 100644
--- a/src/components/CodeEditor/CodeEditor.react.js
+++ b/src/components/CodeEditor/CodeEditor.react.js
@@ -10,10 +10,23 @@ import Editor from 'react-ace';
import PropTypes from '../../lib/PropTypes';
import 'ace-builds/src-noconflict/mode-javascript';
-import 'ace-builds/src-noconflict/theme-solarized_dark';
+import 'ace-builds/src-noconflict/theme-monokai';
import 'ace-builds/src-noconflict/snippets/javascript';
import 'ace-builds/src-noconflict/ext-language_tools';
+// Disable web workers to prevent MIME type errors
+import ace from 'ace-builds/src-noconflict/ace';
+
+// Configure ACE to disable workers globally
+ace.config.set('useWorker', false);
+ace.config.set('loadWorkerFromBlob', false);
+ace.config.set('workerPath', false);
+
+// Also set the base path to prevent worker loading attempts
+ace.config.set('basePath', '/bundles');
+ace.config.set('modePath', '/bundles');
+ace.config.set('themePath', '/bundles');
+
export default class CodeEditor extends React.Component {
constructor(props) {
super(props);
@@ -32,13 +45,13 @@ export default class CodeEditor extends React.Component {
}
render() {
- const { fontSize = 18 } = this.props;
+ const { fontSize = 18, theme = 'monokai' } = this.props;
const { code } = this.state;
return (
this.setState({ code: value })}
fontSize={fontSize}
showPrintMargin={true}
@@ -49,8 +62,25 @@ export default class CodeEditor extends React.Component {
enableBasicAutocompletion={true}
enableLiveAutocompletion={true}
enableSnippets={false}
- showLineNumbers={true}
tabSize={2}
+ style={{
+ backgroundColor: '#202020'
+ }}
+ setOptions={{
+ useWorker: false, // Disable web workers to prevent MIME type errors
+ wrap: true,
+ foldStyle: 'markbegin',
+ enableMultiselect: true,
+ // Additional worker-related options
+ enableBasicAutocompletion: true,
+ enableLiveAutocompletion: true,
+ enableSnippets: false,
+ }}
+ editorProps={{
+ $blockScrolling: Infinity, // Disable annoying warning
+ $useWorker: false, // Additional worker disable
+ }}
+ commands={[]} // Disable any commands that might trigger worker loading
/>
);
}
@@ -59,4 +89,5 @@ export default class CodeEditor extends React.Component {
CodeEditor.propTypes = {
fontSize: PropTypes.number.describe('Font size of the editor'),
defaultValue: PropTypes.string.describe('Default Code'),
+ theme: PropTypes.string.describe('Theme for the editor'),
};
diff --git a/src/dashboard/Data/Browser/BrowserToolbar.react.js b/src/dashboard/Data/Browser/BrowserToolbar.react.js
index a311ce5188..9a322592d8 100644
--- a/src/dashboard/Data/Browser/BrowserToolbar.react.js
+++ b/src/dashboard/Data/Browser/BrowserToolbar.react.js
@@ -85,6 +85,8 @@ const BrowserToolbar = ({
appName,
scrollToTop,
toggleScrollToTop,
+ autoLoadFirstRow,
+ toggleAutoLoadFirstRow,
}) => {
const selectionLength = Object.keys(selection).length;
const isPendingEditCloneRows = editCloneRows && editCloneRows.length > 0;
@@ -388,6 +390,25 @@ const BrowserToolbar = ({
toggleScrollToTop();
}}
/>
+