@akaanakbaik/pterodactyl-gateway 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wizard-cli.d.ts +3 -0
- package/dist/wizard-cli.d.ts.map +1 -0
- package/dist/wizard-cli.js +10 -0
- package/dist/wizard-cli.js.map +1 -0
- package/dist/wizard.d.ts +2 -0
- package/dist/wizard.d.ts.map +1 -0
- package/dist/wizard.js +219 -0
- package/dist/wizard.js.map +1 -0
- package/package.json +6 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard-cli.d.ts","sourceRoot":"","sources":["../src/wizard-cli.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { runWizard } from "./wizard.js";
|
|
3
|
+
try {
|
|
4
|
+
await runWizard(process.argv.slice(2));
|
|
5
|
+
}
|
|
6
|
+
catch (error) {
|
|
7
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
8
|
+
process.exitCode = 1;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=wizard-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard-cli.js","sourceRoot":"","sources":["../src/wizard-cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,IAAI,CAAC;IACH,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC"}
|
package/dist/wizard.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../src/wizard.ts"],"names":[],"mappings":"AAkBA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,iBAoB7C"}
|
package/dist/wizard.js
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { createInterface } from "node:readline/promises";
|
|
2
|
+
import { stdin as input, stdout as output } from "node:process";
|
|
3
|
+
import { createPtero } from "./index.js";
|
|
4
|
+
const PRESETS = ["mini", "basic", "standard", "premium", "unlimited"];
|
|
5
|
+
export async function runWizard(args) {
|
|
6
|
+
const action = args[0] ?? "help";
|
|
7
|
+
const flags = parseFlags(args);
|
|
8
|
+
if (["help", "--help", "-h"].includes(action)) {
|
|
9
|
+
printWizardHelp();
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (action === "create-user") {
|
|
13
|
+
await wizardCreateUser(flags);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
if (action === "create-server") {
|
|
17
|
+
await wizardCreateServer(flags);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
throw new Error(`Wizard tidak dikenal: ${action}`);
|
|
21
|
+
}
|
|
22
|
+
async function wizardCreateUser(flags) {
|
|
23
|
+
const rl = createInterface({ input, output });
|
|
24
|
+
try {
|
|
25
|
+
console.log("Wizard Create User");
|
|
26
|
+
const username = await required(rl, "Username");
|
|
27
|
+
const email = await required(rl, "Email");
|
|
28
|
+
const password = await question(rl, "Password (kosong = auto)", "auto");
|
|
29
|
+
const administratorRaw = await question(rl, "Administrator? yes/no", "no");
|
|
30
|
+
const administrator = parseYesNo(administratorRaw);
|
|
31
|
+
const payload = { username, email, password, administrator };
|
|
32
|
+
if (flags.dryRun) {
|
|
33
|
+
printResult({ dryRun: true, payload }, flags);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (!flags.yes) {
|
|
37
|
+
const ok = parseYesNo(await question(rl, "Buat user sekarang? yes/no", "no"));
|
|
38
|
+
if (!ok) {
|
|
39
|
+
console.log("Dibatalkan.");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const ptero = createPtero.fromEnv();
|
|
44
|
+
const result = await ptero.users.createSmart(payload);
|
|
45
|
+
printResult(result, flags, "User berhasil dibuat.");
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
rl.close();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async function wizardCreateServer(flags) {
|
|
52
|
+
const rl = createInterface({ input, output });
|
|
53
|
+
try {
|
|
54
|
+
console.log("Wizard Create Server");
|
|
55
|
+
console.log("Catatan: node/nest/egg ID tetap diisi manual oleh admin. Jalankan `ptero-gateway ids` jika perlu melihat ID.");
|
|
56
|
+
const name = await required(rl, "Nama server");
|
|
57
|
+
const email = await required(rl, "Email owner");
|
|
58
|
+
const username = await question(rl, "Username owner jika ingin auto-create user (kosong = pakai user existing dari email)", "");
|
|
59
|
+
const password = username ? await question(rl, "Password user (kosong = auto)", "auto") : undefined;
|
|
60
|
+
const description = await question(rl, "Description", "Created by Akadev Pterodactyl Gateway Wizard");
|
|
61
|
+
const nodeId = parseRequiredNumber(await required(rl, "Node ID"), "Node ID");
|
|
62
|
+
const nestId = parseRequiredNumber(await required(rl, "Nest ID"), "Nest ID");
|
|
63
|
+
const eggId = parseRequiredNumber(await required(rl, "Egg ID"), "Egg ID");
|
|
64
|
+
const preset = await choosePreset(rl);
|
|
65
|
+
const memory = await question(rl, "Memory override (kosong = preset)", "");
|
|
66
|
+
const disk = await question(rl, "Disk override (kosong = preset)", "");
|
|
67
|
+
const cpu = await question(rl, "CPU override (kosong = preset)", "");
|
|
68
|
+
const databases = await optionalNumber(rl, "Database limit override (kosong = preset)");
|
|
69
|
+
const allocations = await optionalNumber(rl, "Allocation limit override (kosong = preset)");
|
|
70
|
+
const backups = await optionalNumber(rl, "Backup limit override (kosong = preset)");
|
|
71
|
+
const inputPayload = {
|
|
72
|
+
name,
|
|
73
|
+
email,
|
|
74
|
+
username: username || undefined,
|
|
75
|
+
password,
|
|
76
|
+
autoCreateUser: Boolean(username),
|
|
77
|
+
description,
|
|
78
|
+
nodeId,
|
|
79
|
+
nestId,
|
|
80
|
+
eggId,
|
|
81
|
+
dockerImage: "auto",
|
|
82
|
+
startup: "auto",
|
|
83
|
+
preset,
|
|
84
|
+
specs: {
|
|
85
|
+
...(memory ? { memory } : {}),
|
|
86
|
+
...(disk ? { disk } : {}),
|
|
87
|
+
...(cpu ? { cpu } : {}),
|
|
88
|
+
...(databases !== undefined ? { databases } : {}),
|
|
89
|
+
...(allocations !== undefined ? { allocations } : {}),
|
|
90
|
+
...(backups !== undefined ? { backups } : {})
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
console.log("\nPreview input:");
|
|
94
|
+
console.log(JSON.stringify(maskPayload(inputPayload), null, 2));
|
|
95
|
+
const ptero = createPtero.fromEnv();
|
|
96
|
+
const normalizedInput = normalizeCreateServerInput(inputPayload);
|
|
97
|
+
if (flags.dryRun) {
|
|
98
|
+
const result = await ptero.servers.createSmart(normalizedInput, { dryRun: true });
|
|
99
|
+
printResult(result, flags, "Create server dry-run OK.");
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (!flags.yes) {
|
|
103
|
+
const ok = parseYesNo(await question(rl, "Buat server sekarang? yes/no", "no"));
|
|
104
|
+
if (!ok) {
|
|
105
|
+
console.log("Dibatalkan.");
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const result = await ptero.servers.createSmart(normalizedInput);
|
|
110
|
+
printResult(result, flags, "Server berhasil dibuat.");
|
|
111
|
+
}
|
|
112
|
+
finally {
|
|
113
|
+
rl.close();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function normalizeCreateServerInput(inputPayload) {
|
|
117
|
+
const preset = inputPayload.preset ?? "basic";
|
|
118
|
+
const fallback = presetToSpecs(preset);
|
|
119
|
+
const specs = { ...fallback, ...inputPayload.specs };
|
|
120
|
+
return { ...inputPayload, specs };
|
|
121
|
+
}
|
|
122
|
+
function presetToSpecs(preset) {
|
|
123
|
+
if (preset === "mini")
|
|
124
|
+
return { memory: "512MB", disk: "1GB", cpu: "50%", databases: 0, allocations: 1, backups: 0, swap: 0, io: 500 };
|
|
125
|
+
if (preset === "standard")
|
|
126
|
+
return { memory: "2GB", disk: "5GB", cpu: "200%", databases: 1, allocations: 1, backups: 1, swap: 0, io: 500 };
|
|
127
|
+
if (preset === "premium")
|
|
128
|
+
return { memory: "4GB", disk: "10GB", cpu: "300%", databases: 2, allocations: 2, backups: 2, swap: 0, io: 500 };
|
|
129
|
+
if (preset === "unlimited")
|
|
130
|
+
return { memory: "0", disk: "0", cpu: "0", databases: 5, allocations: 3, backups: 3, swap: 0, io: 500 };
|
|
131
|
+
return { memory: "1GB", disk: "2GB", cpu: "100%", databases: 0, allocations: 1, backups: 0, swap: 0, io: 500 };
|
|
132
|
+
}
|
|
133
|
+
async function choosePreset(rl) {
|
|
134
|
+
const answer = await question(rl, `Preset (${PRESETS.join("/")})`, "basic");
|
|
135
|
+
if (!PRESETS.includes(answer))
|
|
136
|
+
throw new Error(`Preset tidak dikenal: ${answer}`);
|
|
137
|
+
return answer;
|
|
138
|
+
}
|
|
139
|
+
async function optionalNumber(rl, label) {
|
|
140
|
+
const value = await question(rl, label, "");
|
|
141
|
+
if (!value)
|
|
142
|
+
return undefined;
|
|
143
|
+
return parseRequiredNumber(value, label);
|
|
144
|
+
}
|
|
145
|
+
async function required(rl, label) {
|
|
146
|
+
const value = await question(rl, label, "");
|
|
147
|
+
if (!value)
|
|
148
|
+
throw new Error(`${label} wajib diisi.`);
|
|
149
|
+
return value;
|
|
150
|
+
}
|
|
151
|
+
async function question(rl, label, fallback) {
|
|
152
|
+
const suffix = fallback ? ` [${fallback}]` : "";
|
|
153
|
+
const value = (await rl.question(`${label}${suffix}: `)).trim();
|
|
154
|
+
return value || fallback;
|
|
155
|
+
}
|
|
156
|
+
function parseRequiredNumber(value, label) {
|
|
157
|
+
const parsed = Number(value);
|
|
158
|
+
if (!Number.isInteger(parsed) || parsed < 0)
|
|
159
|
+
throw new Error(`${label} harus angka.`);
|
|
160
|
+
return parsed;
|
|
161
|
+
}
|
|
162
|
+
function parseYesNo(value) {
|
|
163
|
+
const normalized = value.trim().toLowerCase();
|
|
164
|
+
if (["yes", "y", "true", "1", "iya", "ya"].includes(normalized))
|
|
165
|
+
return true;
|
|
166
|
+
if (["no", "n", "false", "0", "tidak", "nggak", "ga", "gak"].includes(normalized))
|
|
167
|
+
return false;
|
|
168
|
+
throw new Error("Jawaban harus yes/no.");
|
|
169
|
+
}
|
|
170
|
+
function parseFlags(args) {
|
|
171
|
+
return {
|
|
172
|
+
dryRun: args.includes("--dry-run"),
|
|
173
|
+
yes: args.includes("--yes") || args.includes("-y"),
|
|
174
|
+
json: args.includes("--json")
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function maskPayload(value) {
|
|
178
|
+
if (Array.isArray(value))
|
|
179
|
+
return value.map(maskPayload);
|
|
180
|
+
if (typeof value !== "object" || value === null)
|
|
181
|
+
return value;
|
|
182
|
+
const output = {};
|
|
183
|
+
for (const [key, item] of Object.entries(value)) {
|
|
184
|
+
output[key] = /(password|token|key|secret|auth)/i.test(key) && typeof item === "string" ? maskSecret(item) : maskPayload(item);
|
|
185
|
+
}
|
|
186
|
+
return output;
|
|
187
|
+
}
|
|
188
|
+
function maskSecret(value) {
|
|
189
|
+
if (!value || value === "auto")
|
|
190
|
+
return value;
|
|
191
|
+
if (value.length <= 4)
|
|
192
|
+
return "****";
|
|
193
|
+
return `${value.slice(0, 2)}****${value.slice(-2)}`;
|
|
194
|
+
}
|
|
195
|
+
function printResult(result, flags, message) {
|
|
196
|
+
if (flags.json) {
|
|
197
|
+
console.log(JSON.stringify(result, null, 2));
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
if (message)
|
|
201
|
+
console.log(message);
|
|
202
|
+
console.log(JSON.stringify(maskPayload(result), null, 2));
|
|
203
|
+
}
|
|
204
|
+
function printWizardHelp() {
|
|
205
|
+
console.log(`Akadev Pterodactyl Gateway Wizard
|
|
206
|
+
|
|
207
|
+
Perintah:
|
|
208
|
+
ptero-gateway wizard create-user
|
|
209
|
+
ptero-gateway wizard create-user --dry-run
|
|
210
|
+
ptero-gateway wizard create-server
|
|
211
|
+
ptero-gateway wizard create-server --dry-run
|
|
212
|
+
ptero-gateway wizard create-server --yes
|
|
213
|
+
|
|
214
|
+
Catatan:
|
|
215
|
+
Wizard tidak mengelola node/location/allocation.
|
|
216
|
+
Node ID, Nest ID, dan Egg ID tetap diisi manual oleh admin.
|
|
217
|
+
Jalankan ptero-gateway ids untuk melihat daftar ID yang tersedia.`);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../src/wizard.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akaanakbaik/pterodactyl-gateway",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "SDK, CLI, dan smart gateway TypeScript untuk Pterodactyl Panel.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
9
|
"ptero-gateway": "dist/cli-entry.js",
|
|
10
|
-
"ptg": "dist/cli-entry.js"
|
|
10
|
+
"ptg": "dist/cli-entry.js",
|
|
11
|
+
"ptero-wizard": "dist/wizard-cli.js"
|
|
11
12
|
},
|
|
12
13
|
"exports": {
|
|
13
14
|
".": {
|
|
@@ -25,12 +26,13 @@
|
|
|
25
26
|
"scripts": {
|
|
26
27
|
"clean": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
27
28
|
"build": "npm run clean && tsc -p tsconfig.json && npm run chmod:bin",
|
|
28
|
-
"chmod:bin": "node -e \"const fs=require('fs'); for (const f of ['dist/cli.js','dist/cli-entry.js']) if (fs.existsSync(f)) fs.chmodSync(f, 0o755)\"",
|
|
29
|
+
"chmod:bin": "node -e \"const fs=require('fs'); for (const f of ['dist/cli.js','dist/cli-entry.js','dist/wizard-cli.js']) if (fs.existsSync(f)) fs.chmodSync(f, 0o755)\"",
|
|
29
30
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
30
31
|
"test": "npm run build && node --test test/*.test.js",
|
|
31
|
-
"test:cli": "npm run build && node dist/cli-entry.js help && ./dist/cli-entry.js help && node dist/cli-entry.js presets && node dist/cli-entry.js explain DOMAIN_REQUIRED && node dist/cli-entry.js env-template",
|
|
32
|
+
"test:cli": "npm run build && node dist/cli-entry.js help && ./dist/cli-entry.js help && node dist/cli-entry.js presets && node dist/cli-entry.js explain DOMAIN_REQUIRED && node dist/cli-entry.js env-template && node dist/wizard-cli.js help && ./dist/wizard-cli.js help",
|
|
32
33
|
"test:pack": "npm run build && npm pack --dry-run",
|
|
33
34
|
"cli": "node dist/cli-entry.js",
|
|
35
|
+
"wizard": "node dist/wizard-cli.js",
|
|
34
36
|
"verify": "npm run typecheck && npm test && npm run test:cli && npm run test:pack",
|
|
35
37
|
"prepublishOnly": "npm run verify"
|
|
36
38
|
},
|