Skip to content

Commit f3283c5

Browse files
authored
Merge pull request #197 from BlueprintFramework/pterodactyl-v1.12
Pterodactyl v1.12 compatibility
2 parents aeb797e + 63ec12f commit f3283c5

File tree

25 files changed

+4047
-4519
lines changed

25 files changed

+4047
-4519
lines changed

app/Console/Kernel.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@
1313
use Pterodactyl\Console\Commands\Maintenance\PruneOrphanedBackupsCommand;
1414
use Pterodactyl\Console\Commands\Maintenance\CleanServiceBackupFilesCommand;
1515

16-
use Pterodactyl\BlueprintFramework\GetExtensionSchedules;
16+
// Import Blueprint schedules, telemetry and library
1717
use Pterodactyl\Services\Telemetry\RegisterBlueprintTelemetry;
18+
use Pterodactyl\BlueprintFramework\GetExtensionSchedules;
1819
use Pterodactyl\BlueprintFramework\Libraries\ExtensionLibrary\Console\BlueprintConsoleLibrary as BlueprintExtensionLibrary;
1920

2021
class Kernel extends ConsoleKernel
@@ -60,9 +61,10 @@ protected function schedule(Schedule $schedule): void
6061
$registerBlueprintTelemetry->register($schedule);
6162
}
6263

63-
// Blueprint-related utilities.
64+
// Blueprint-related utilities
6465
$schedule->command('bp:version:cache')->dailyAt(str_pad(rand(0, 23), 2, '0', STR_PAD_LEFT) . ':' . str_pad(rand(0, 59), 2, '0', STR_PAD_LEFT));
6566

67+
// Blueprint extension schedules
6668
GetExtensionSchedules::schedules($schedule);
6769
}
6870

app/Http/Kernel.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ class Kernel extends HttpKernel
4848
ConvertEmptyStringsToNull::class,
4949
];
5050

51+
protected $middlewarePriority = [
52+
SubstituteClientBindings::class,
53+
];
54+
5155
/**
5256
* The application's route middleware groups.
5357
*/

app/Providers/AppServiceProvider.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Pterodactyl\Extensions\Themes\Theme;
1414
use Illuminate\Database\Eloquent\Relations\Relation;
1515

16+
// Blueprint-related shenanigans imports
1617
use Pterodactyl\Providers\Blueprint\ExtensionfsConfigProvider;
1718
use Pterodactyl\Providers\Blueprint\RouteServiceProvider;
1819

blueprint.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ source scripts/libraries/misc.sh || missinglibs+="[misc]"
103103

104104
cdhalt() { PRINT FATAL "Attempted navigation into nonexistent directory, halting process."; exit 1; }
105105
depend() {
106-
# Make sure Node.js is version 17 or higher.
106+
# Make sure Node.js is version 20 or higher.
107107
nodeMajor=$(node -v | awk -F. '{print $1}' | sed 's/[^0-9]*//g')
108108

109109
# Check for required (both internal and external) dependencies.
@@ -131,8 +131,8 @@ depend() {
131131
if [[ $DEPEND_MISSING == true ]]; then
132132
PRINT FATAL "Some framework dependencies couldn't be found or have issues. This is usually NOT a bug, do not report it as such."
133133

134-
if [[ $nodeMajor -lt 17 ]]; then
135-
PRINT FATAL "Unsupported dependency \"node\" <17.x. (Requires >17.x)"
134+
if [[ $nodeMajor -lt 20 ]]; then
135+
PRINT FATAL "Unsupported dependency \"node\" <20.x. (Requires >20.x)"
136136
fi
137137

138138
if ! [ -x "$(command -v unzip)" ]; then PRINT FATAL "Missing dependency \"unzip\"."; fi
268 KB
Loading

database/Seeders/BlueprintSeeder.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ class BlueprintSeeder extends Seeder
3131
],
3232
'flags' => [
3333
'disable_attribution' => [
34+
'default' => false,
35+
'type' => 'boolean',
36+
'hidden' => true,
37+
],
38+
'introduction_dismissed' => [
3439
'default' => false,
3540
'type' => 'boolean',
3641
'hidden' => false,

package.json

Lines changed: 153 additions & 153 deletions
Original file line numberDiff line numberDiff line change
@@ -1,157 +1,157 @@
11
{
2-
"name": "pterodactyl-panel",
3-
"engines": {
4-
"node": ">=17"
5-
},
6-
"dependencies": {
7-
"@floating-ui/react-dom-interactions": "^0.6.6",
8-
"@fortawesome/fontawesome-svg-core": "^1.2.32",
9-
"@fortawesome/free-solid-svg-icons": "^5.15.1",
10-
"@fortawesome/react-fontawesome": "^0.1.11",
11-
"@headlessui/react": "^1.6.4",
12-
"@heroicons/react": "^1.0.6",
13-
"@hot-loader/react-dom": "^16.14.0",
14-
"@preact/signals-react": "^1.2.1",
15-
"@tailwindcss/forms": "^0.5.2",
16-
"@tailwindcss/line-clamp": "^0.4.0",
17-
"axios": "^0.27.2",
18-
"boring-avatars": "^1.7.0",
19-
"chart.js": "^3.8.0",
20-
"classnames": "^2.3.1",
21-
"codemirror": "^5.57.0",
22-
"copy-to-clipboard": "^3.3.1",
23-
"date-fns": "^2.28.0",
24-
"debounce": "^1.2.0",
25-
"deepmerge-ts": "^4.2.1",
26-
"easy-peasy": "^4.0.1",
27-
"events": "^3.0.0",
28-
"formik": "^2.2.6",
29-
"framer-motion": "^6.3.10",
30-
"i18next": "^21.8.9",
31-
"i18next-http-backend": "^1.4.1",
32-
"i18next-multiload-backend-adapter": "^1.0.0",
33-
"qrcode.react": "^1.0.1",
34-
"react": "^16.14.0",
35-
"react-chartjs-2": "^4.2.0",
36-
"react-dom": "npm:@hot-loader/react-dom",
37-
"react-fast-compare": "^3.2.0",
38-
"react-hot-loader": "^4.12.21",
39-
"react-i18next": "^11.2.1",
40-
"react-router-dom": "^5.1.2",
41-
"react-transition-group": "^4.4.1",
42-
"reaptcha": "^1.7.2",
43-
"sockette": "^2.0.6",
44-
"styled-components": "^5.2.1",
45-
"styled-components-breakpoint": "^3.0.0-preview.20",
46-
"swr": "^0.2.3",
47-
"tailwindcss": "^3.0.24",
48-
"use-fit-text": "^2.4.0",
49-
"uuid": "^8.3.2",
50-
"xterm": "^4.19.0",
51-
"xterm-addon-fit": "^0.5.0",
52-
"xterm-addon-search": "^0.9.0",
53-
"xterm-addon-search-bar": "^0.2.0",
54-
"xterm-addon-web-links": "^0.6.0",
55-
"yup": "^0.29.1"
56-
},
57-
"devDependencies": {
58-
"@babel/core": "^7.12.1",
59-
"@babel/plugin-proposal-class-properties": "^7.12.1",
60-
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
61-
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
62-
"@babel/plugin-proposal-optional-chaining": "^7.12.1",
63-
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
64-
"@babel/plugin-transform-modules-commonjs": "^7.18.2",
65-
"@babel/plugin-transform-react-jsx": "^7.12.1",
66-
"@babel/plugin-transform-runtime": "^7.12.1",
67-
"@babel/preset-env": "^7.12.1",
68-
"@babel/preset-react": "^7.12.1",
69-
"@babel/preset-typescript": "^7.12.1",
70-
"@babel/runtime": "^7.12.1",
71-
"@testing-library/dom": "^8.14.0",
72-
"@testing-library/jest-dom": "^5.16.4",
73-
"@testing-library/react": "12.1.5",
74-
"@testing-library/user-event": "^14.2.1",
75-
"@types/codemirror": "^0.0.98",
76-
"@types/debounce": "^1.2.0",
77-
"@types/events": "^3.0.0",
78-
"@types/jest": "^28.1.3",
79-
"@types/node": "^14.11.10",
80-
"@types/qrcode.react": "^1.0.1",
81-
"@types/react": "^16.14.0",
82-
"@types/react-copy-to-clipboard": "^4.3.0",
83-
"@types/react-dom": "^16.9.16",
84-
"@types/react-redux": "^7.1.1",
85-
"@types/react-router": "^5.1.3",
86-
"@types/react-router-dom": "^5.1.3",
87-
"@types/react-transition-group": "^4.4.0",
88-
"@types/styled-components": "^5.1.7",
89-
"@types/uuid": "^3.4.5",
90-
"@types/webpack-env": "^1.15.2",
91-
"@types/yup": "^0.29.3",
92-
"@typescript-eslint/eslint-plugin": "^5.29.0",
93-
"@typescript-eslint/parser": "^5.29.0",
94-
"autoprefixer": "^10.4.7",
95-
"babel-jest": "^28.1.1",
96-
"babel-loader": "^8.2.5",
97-
"babel-plugin-styled-components": "^2.0.7",
98-
"cross-env": "^7.0.2",
99-
"css-loader": "^5.2.7",
100-
"eslint": "^8.18.0",
101-
"eslint-config-prettier": "^8.5.0",
102-
"eslint-plugin-jest-dom": "^4.0.2",
103-
"eslint-plugin-node": "^11.1.0",
104-
"eslint-plugin-prettier": "^4.0.0",
105-
"eslint-plugin-react": "^7.30.1",
106-
"eslint-plugin-react-hooks": "^4.6.0",
107-
"fork-ts-checker-webpack-plugin": "^6.2.10",
108-
"identity-obj-proxy": "^3.0.0",
109-
"jest": "^28.1.1",
110-
"postcss": "^8.4.14",
111-
"postcss-import": "^14.1.0",
112-
"postcss-loader": "^4.0.0",
113-
"postcss-nesting": "^10.1.8",
114-
"postcss-preset-env": "^7.7.1",
115-
"prettier": "^2.7.1",
116-
"redux-devtools-extension": "^2.13.8",
117-
"source-map-loader": "^1.1.3",
118-
"style-loader": "^2.0.0",
119-
"svg-url-loader": "^7.1.1",
120-
"terser-webpack-plugin": "^4.2.3",
121-
"ts-essentials": "^9.1.2",
122-
"ts-jest": "^28.0.5",
123-
"twin.macro": "^2.8.2",
124-
"typescript": "^4.7.3",
125-
"webpack": "^4.43.0",
126-
"webpack-assets-manifest": "^3.1.1",
127-
"webpack-bundle-analyzer": "^3.8.0",
128-
"webpack-cli": "^3.3.12",
129-
"webpack-dev-server": "^3.11.0",
130-
"yarn-deduplicate": "^1.1.1"
131-
},
132-
"scripts": {
133-
"clean": "cd public/assets && find . \\( -name \"*.js\" -o -name \"*.map\" \\) -type f -delete && rm -rf node_modules/.cache",
134-
"test": "jest",
135-
"lint": "eslint ./resources/scripts/**/*.{ts,tsx} --ext .ts,.tsx",
136-
"watch": "cross-env NODE_ENV=development ./node_modules/.bin/webpack --watch --progress",
137-
"build": "cross-env NODE_ENV=development ./node_modules/.bin/webpack --progress",
138-
"build:production": "yarn run clean && cross-env NODE_ENV=production ./node_modules/.bin/webpack --mode production",
139-
"serve": "yarn run clean && cross-env WEBPACK_PUBLIC_PATH=/webpack@hmr/ NODE_ENV=development webpack-dev-server --host 0.0.0.0 --port 8080 --public https://pterodactyl.test --hot"
140-
},
141-
"browserslist": [
142-
"> 0.5%",
143-
"last 2 versions",
144-
"firefox esr",
145-
"not dead"
146-
],
147-
"babelMacros": {
148-
"twin": {
149-
"preset": "styled-components"
2+
"name": "pterodactyl-panel",
3+
"engines": {
4+
"node": ">=20"
1505
},
151-
"styledComponents": {
152-
"pure": true,
153-
"displayName": true,
154-
"fileName": true
6+
"dependencies": {
7+
"@floating-ui/react-dom-interactions": "^0.6.6",
8+
"@fortawesome/fontawesome-svg-core": "^1.2.32",
9+
"@fortawesome/free-solid-svg-icons": "^5.15.1",
10+
"@fortawesome/react-fontawesome": "^0.1.11",
11+
"@headlessui/react": "^1.6.4",
12+
"@heroicons/react": "^1.0.6",
13+
"@hot-loader/react-dom": "^16.14.0",
14+
"@preact/signals-react": "^1.2.1",
15+
"@tailwindcss/forms": "^0.5.2",
16+
"@tailwindcss/line-clamp": "^0.4.0",
17+
"axios": "^1.13.2",
18+
"boring-avatars": "^1.7.0",
19+
"chart.js": "^3.8.0",
20+
"classnames": "^2.3.1",
21+
"codemirror": "^5.57.0",
22+
"copy-to-clipboard": "^3.3.1",
23+
"date-fns": "^2.28.0",
24+
"debounce": "^1.2.0",
25+
"deepmerge-ts": "^4.2.1",
26+
"easy-peasy": "^4.0.1",
27+
"events": "^3.0.0",
28+
"formik": "^2.2.6",
29+
"framer-motion": "^6.3.10",
30+
"i18next": "^21.8.9",
31+
"i18next-http-backend": "^1.4.1",
32+
"i18next-multiload-backend-adapter": "^1.0.0",
33+
"pathe": "^2.0.3",
34+
"qrcode.react": "^1.0.1",
35+
"react": "^16.14.0",
36+
"react-chartjs-2": "^4.2.0",
37+
"react-dom": "npm:@hot-loader/react-dom",
38+
"react-fast-compare": "^3.2.0",
39+
"react-hot-loader": "^4.12.21",
40+
"react-i18next": "^11.2.1",
41+
"react-router-dom": "^5.1.2",
42+
"react-transition-group": "^4.4.1",
43+
"reaptcha": "^1.7.2",
44+
"sockette": "^2.0.6",
45+
"styled-components": "5.2.1",
46+
"styled-components-breakpoint": "^3.0.0-preview.20",
47+
"swr": "^0.2.3",
48+
"tailwindcss": "3.0.24",
49+
"use-fit-text": "^2.4.0",
50+
"uuid": "^13.0.0",
51+
"xterm": "^4.19.0",
52+
"xterm-addon-fit": "^0.5.0",
53+
"xterm-addon-search": "^0.9.0",
54+
"xterm-addon-search-bar": "^0.2.0",
55+
"xterm-addon-web-links": "^0.6.0",
56+
"yup": "^0.29.1"
57+
},
58+
"devDependencies": {
59+
"@babel/core": "^7.12.1",
60+
"@babel/plugin-proposal-class-properties": "^7.12.1",
61+
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
62+
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
63+
"@babel/plugin-proposal-optional-chaining": "^7.12.1",
64+
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
65+
"@babel/plugin-transform-modules-commonjs": "^7.18.2",
66+
"@babel/plugin-transform-react-jsx": "^7.12.1",
67+
"@babel/plugin-transform-runtime": "^7.12.1",
68+
"@babel/preset-env": "^7.12.1",
69+
"@babel/preset-react": "^7.12.1",
70+
"@babel/preset-typescript": "^7.12.1",
71+
"@babel/runtime": "^7.12.1",
72+
"@fontsource-variable/ibm-plex-sans": "^5.2.8",
73+
"@testing-library/dom": "^8.14.0",
74+
"@testing-library/jest-dom": "^5.16.4",
75+
"@testing-library/react": "12.1.5",
76+
"@testing-library/user-event": "^14.2.1",
77+
"@types/codemirror": "^0.0.98",
78+
"@types/debounce": "^1.2.0",
79+
"@types/events": "^3.0.0",
80+
"@types/jest": "^28.1.3",
81+
"@types/node": "^22.0.0",
82+
"@types/path-browserify": "^1.0.3",
83+
"@types/qrcode.react": "^1.0.1",
84+
"@types/react": "^16.14.0",
85+
"@types/react-copy-to-clipboard": "^4.3.0",
86+
"@types/react-dom": "^16.9.16",
87+
"@types/react-redux": "^7.1.1",
88+
"@types/react-router": "^5.1.3",
89+
"@types/react-router-dom": "^5.1.3",
90+
"@types/react-transition-group": "^4.4.0",
91+
"@types/styled-components": "5.1.7",
92+
"@types/uuid": "^3.4.5",
93+
"@types/webpack-env": "^1.18.8",
94+
"@types/yup": "^0.29.3",
95+
"@typescript-eslint/eslint-plugin": "^5",
96+
"@typescript-eslint/parser": "^5",
97+
"autoprefixer": "^10.4.7",
98+
"babel-jest": "^28.1.1",
99+
"babel-loader": "8.2.5",
100+
"babel-plugin-styled-components": "^2.0.7",
101+
"cross-env": "^7.0.2",
102+
"css-loader": "5.2.7",
103+
"eslint": "^8",
104+
"eslint-config-prettier": "^8",
105+
"eslint-plugin-jest-dom": "^4.0.2",
106+
"eslint-plugin-prettier": "^4",
107+
"eslint-plugin-react": "^7",
108+
"eslint-plugin-react-hooks": "^4",
109+
"identity-obj-proxy": "^3.0.0",
110+
"jest": "^28.1.1",
111+
"postcss": "8.4.14",
112+
"postcss-import": "14.1.0",
113+
"postcss-loader": "5.3.0",
114+
"postcss-nesting": "10.1.8",
115+
"postcss-preset-env": "7.7.1",
116+
"prettier": "^2.7.1",
117+
"redux-devtools-extension": "^2.13.8",
118+
"source-map-loader": "1.1.3",
119+
"style-loader": "2.0.0",
120+
"svg-url-loader": "^8.0.0",
121+
"terser-webpack-plugin": "^5.3.14",
122+
"ts-essentials": "^9.1.2",
123+
"ts-jest": "^28.0.5",
124+
"twin.macro": "^2.8.2",
125+
"typescript": "~5.1.0",
126+
"webpack": "^5.103.0",
127+
"webpack-assets-manifest": "^6.4.0",
128+
"webpack-cli": "^6.0.1",
129+
"webpack-dev-server": "^5.2.2"
130+
},
131+
"scripts": {
132+
"clean": "cd public/assets && find . \\( -name \"*.js\" -o -name \"*.map\" \\) -type f -delete",
133+
"test": "jest",
134+
"tsc": "tsc --noEmit",
135+
"lint": "eslint ./resources/scripts/**/*.{ts,tsx} --ext .ts,.tsx",
136+
"watch": "cross-env NODE_ENV=development ./node_modules/.bin/webpack --watch --progress",
137+
"build": "cross-env NODE_ENV=development ./node_modules/.bin/webpack --progress",
138+
"build:production": "yarn run clean && cross-env NODE_ENV=production ./node_modules/.bin/webpack --mode production",
139+
"serve": "yarn run clean && cross-env NODE_ENV=development USE_LOCAL_CERTS=true WEBPACK_PUBLIC_PATH=https://pterodactyl.test:5173/ webpack serve --progress --hot --server-type https"
140+
},
141+
"browserslist": [
142+
"> 0.5%",
143+
"last 2 versions",
144+
"firefox esr",
145+
"not dead"
146+
],
147+
"babelMacros": {
148+
"twin": {
149+
"preset": "styled-components"
150+
},
151+
"styledComponents": {
152+
"pure": true,
153+
"displayName": true,
154+
"fileName": true
155+
}
155156
}
156-
}
157157
}

0 commit comments

Comments
 (0)