From 902aacbb9150b59dd1f9ab1e3fca3aa41d625dda Mon Sep 17 00:00:00 2001 From: someCatInTheWorld <162684669+someCatInTheWorld@users.noreply.github.com> Date: Thu, 29 Jan 2026 06:25:31 +1100 Subject: [PATCH 1/2] feat: add server extension --- package-lock.json | 25 ++++++++++++++++++++----- src/lib/libraries/extensions/index.jsx | 17 +++++++++++++++++ 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d89c68cb0..478495cb3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -184,6 +184,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -2987,7 +2988,6 @@ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "eslint-scope": "5.1.1" } @@ -3832,6 +3832,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3905,6 +3906,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -5281,6 +5283,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", @@ -7853,6 +7856,7 @@ "integrity": "sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "array.prototype.flat": "^1.2.1", "cheerio": "^1.0.0-rc.2", @@ -8270,6 +8274,7 @@ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -8440,6 +8445,7 @@ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -8573,7 +8579,6 @@ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -8588,7 +8593,6 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "engines": { "node": ">=4.0" } @@ -8599,7 +8603,6 @@ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=10" } @@ -17235,6 +17238,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -17571,6 +17575,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -17600,6 +17605,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -17635,6 +17641,7 @@ "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "hoist-non-react-statics": "^3.3.0", "intl-format-cache": "^2.0.5", @@ -17739,6 +17746,7 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", "license": "MIT", + "peer": true, "dependencies": { "hoist-non-react-statics": "^2.5.0", "invariant": "^2.0.0", @@ -17763,6 +17771,7 @@ "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-4.1.0.tgz", "integrity": "sha512-ZuDraf0qsJlyiTwzeva+foHx83IP6SIhru9o7BvMwQ4ZHjRIL5WjdgVNNrKSRbmeWO9rEJoMpabei/5lJn8KaA==", "license": "MIT", + "peer": true, "dependencies": { "hyphenate-style-name": "^1.0.0", "matchmediaquery": "^0.2.1", @@ -17792,6 +17801,7 @@ "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", "license": "MIT", + "peer": true, "dependencies": { "prop-types": "^15.5.4" } @@ -17830,6 +17840,7 @@ "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.8.0.tgz", "integrity": "sha512-Uj/vVd0uGuqwTkWeRjKS56T2iwOSvsSMbjqTK7AseHZEMND+WCXXUajaF7+ZsJWTZgnpeT9kBnaBFhchzeDTbw==", "license": "MIT", + "peer": true, "dependencies": { "classnames": "^2.2.5", "prop-types": "^15.6.0" @@ -17939,6 +17950,7 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", "license": "MIT", + "peer": true, "dependencies": { "lodash": "^4.2.1", "lodash-es": "^4.2.1", @@ -18819,6 +18831,7 @@ "node_modules/scratch-render-fonts": { "version": "1.0.0", "resolved": "git+ssh://git@github.com/PenguinMod/penguinmod-render-fonts.git#4dda62c707f64505266aa62f7a6cc84f0e5812fd", + "peer": true, "dependencies": { "base64-loader": "1.0.0" } @@ -20990,7 +21003,8 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "license": "0BSD", + "peer": true }, "node_modules/tty-browserify": { "version": "0.0.0", @@ -22355,6 +22369,7 @@ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", "license": "MIT", + "peer": true, "dependencies": { "@webassemblyjs/ast": "1.9.0", "@webassemblyjs/helper-module-context": "1.9.0", diff --git a/src/lib/libraries/extensions/index.jsx b/src/lib/libraries/extensions/index.jsx index bbf273884..1b31e4338 100644 --- a/src/lib/libraries/extensions/index.jsx +++ b/src/lib/libraries/extensions/index.jsx @@ -162,6 +162,23 @@ export default [ featured: true, internetConnectionRequired: true }, + { + name: 'Web Server', + extensionId: 'server', + collaborator: 'LibreKitten', + // TODO: This is a placeholder until someone designs a cover or Amp gives permission to use the he made one for + // LibreKitten. + iconURL: customExtensionIcon, + description: ( + + ), + tags: ['ob'], + featured: true + }, { name: 'Makey Makey', extensionId: 'makeymakey', From 597cf5418207fb4be76dadd6f08c18c6cc377468 Mon Sep 17 00:00:00 2001 From: someCatInTheWorld <162684669+someCatInTheWorld@users.noreply.github.com> Date: Thu, 29 Jan 2026 08:59:00 +1100 Subject: [PATCH 2/2] feat: add server extension cover in gallery Thanks @ampeletrecuted! --- src/lib/libraries/extensions/index.jsx | 5 +- .../libraries/extensions/server/server.svg | 88 +++++++++++++++++++ 2 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 src/lib/libraries/extensions/server/server.svg diff --git a/src/lib/libraries/extensions/index.jsx b/src/lib/libraries/extensions/index.jsx index 1b31e4338..3f3d739ef 100644 --- a/src/lib/libraries/extensions/index.jsx +++ b/src/lib/libraries/extensions/index.jsx @@ -48,6 +48,7 @@ import gdxforConnectionSmallIconURL from './gdxfor/gdxfor-small.svg'; import twIcon from './tw/tw.svg'; import customExtensionIcon from './custom/custom.svg'; +import serverIcon from './server/server.svg'; import returnIcon from './custom/return.svg'; import galleryIcon from './gallery/gallery.svg'; import {APP_NAME} from '../../brand'; @@ -166,9 +167,7 @@ export default [ name: 'Web Server', extensionId: 'server', collaborator: 'LibreKitten', - // TODO: This is a placeholder until someone designs a cover or Amp gives permission to use the he made one for - // LibreKitten. - iconURL: customExtensionIcon, + iconURL: serverIcon, description: ( + + + + + + + + + + + + + +