@synteq/cli 0.1.4 → 0.1.6
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/api/client.d.ts +28 -37
- package/dist/api/client.js +47 -49
- package/dist/api/client.js.map +1 -1
- package/dist/api/types.d.ts +34 -23
- package/dist/commands/api.js +4 -4
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/catalog.js +1 -1
- package/dist/commands/catalog.js.map +1 -1
- package/dist/commands/config/set-api-url.js +37 -2
- package/dist/commands/config/set-api-url.js.map +1 -1
- package/dist/commands/gpu/activity.d.ts +1 -0
- package/dist/commands/gpu/activity.js +6 -0
- package/dist/commands/gpu/activity.js.map +1 -1
- package/dist/commands/gpu/bandwidth.d.ts +1 -0
- package/dist/commands/gpu/bandwidth.js +4 -0
- package/dist/commands/gpu/bandwidth.js.map +1 -1
- package/dist/commands/gpu/boot-order.d.ts +1 -0
- package/dist/commands/gpu/boot-order.js +5 -0
- package/dist/commands/gpu/boot-order.js.map +1 -1
- package/dist/commands/gpu/console.d.ts +1 -0
- package/dist/commands/gpu/console.js +5 -0
- package/dist/commands/gpu/console.js.map +1 -1
- package/dist/commands/gpu/details.d.ts +2 -0
- package/dist/commands/gpu/details.js +9 -0
- package/dist/commands/gpu/details.js.map +1 -1
- package/dist/commands/gpu/ip/add.d.ts +1 -0
- package/dist/commands/gpu/ip/add.js +6 -0
- package/dist/commands/gpu/ip/add.js.map +1 -1
- package/dist/commands/gpu/ip/list.d.ts +1 -0
- package/dist/commands/gpu/ip/list.js +4 -0
- package/dist/commands/gpu/ip/list.js.map +1 -1
- package/dist/commands/gpu/list.d.ts +1 -1
- package/dist/commands/gpu/list.js +2 -2
- package/dist/commands/gpu/list.js.map +1 -1
- package/dist/commands/gpu/order.js +2 -0
- package/dist/commands/gpu/order.js.map +1 -1
- package/dist/commands/gpu/power.d.ts +1 -0
- package/dist/commands/gpu/power.js +6 -0
- package/dist/commands/gpu/power.js.map +1 -1
- package/dist/commands/gpu/reinstall.d.ts +3 -0
- package/dist/commands/gpu/reinstall.js +7 -0
- package/dist/commands/gpu/reinstall.js.map +1 -1
- package/dist/commands/gpu/resize.d.ts +1 -0
- package/dist/commands/gpu/resize.js +6 -0
- package/dist/commands/gpu/resize.js.map +1 -1
- package/dist/commands/gpu/stats.d.ts +1 -0
- package/dist/commands/gpu/stats.js +5 -0
- package/dist/commands/gpu/stats.js.map +1 -1
- package/dist/commands/instant-metal/activity.d.ts +1 -0
- package/dist/commands/instant-metal/activity.js +6 -0
- package/dist/commands/instant-metal/activity.js.map +1 -1
- package/dist/commands/instant-metal/bandwidth.d.ts +1 -0
- package/dist/commands/instant-metal/bandwidth.js +4 -0
- package/dist/commands/instant-metal/bandwidth.js.map +1 -1
- package/dist/commands/instant-metal/boot-order.d.ts +1 -0
- package/dist/commands/instant-metal/boot-order.js +5 -0
- package/dist/commands/instant-metal/boot-order.js.map +1 -1
- package/dist/commands/instant-metal/console.d.ts +1 -0
- package/dist/commands/instant-metal/console.js +5 -0
- package/dist/commands/instant-metal/console.js.map +1 -1
- package/dist/commands/instant-metal/details.d.ts +2 -0
- package/dist/commands/instant-metal/details.js +9 -0
- package/dist/commands/instant-metal/details.js.map +1 -1
- package/dist/commands/instant-metal/ip/add.d.ts +1 -0
- package/dist/commands/instant-metal/ip/add.js +6 -0
- package/dist/commands/instant-metal/ip/add.js.map +1 -1
- package/dist/commands/instant-metal/ip/list.d.ts +1 -0
- package/dist/commands/instant-metal/ip/list.js +4 -0
- package/dist/commands/instant-metal/ip/list.js.map +1 -1
- package/dist/commands/instant-metal/list.d.ts +1 -1
- package/dist/commands/instant-metal/list.js +2 -2
- package/dist/commands/instant-metal/list.js.map +1 -1
- package/dist/commands/instant-metal/order.js +2 -0
- package/dist/commands/instant-metal/order.js.map +1 -1
- package/dist/commands/instant-metal/power.d.ts +1 -0
- package/dist/commands/instant-metal/power.js +6 -0
- package/dist/commands/instant-metal/power.js.map +1 -1
- package/dist/commands/instant-metal/reinstall.d.ts +3 -0
- package/dist/commands/instant-metal/reinstall.js +7 -0
- package/dist/commands/instant-metal/reinstall.js.map +1 -1
- package/dist/commands/instant-metal/resize.d.ts +1 -0
- package/dist/commands/instant-metal/resize.js +6 -0
- package/dist/commands/instant-metal/resize.js.map +1 -1
- package/dist/commands/instant-metal/stats.d.ts +1 -0
- package/dist/commands/instant-metal/stats.js +5 -0
- package/dist/commands/instant-metal/stats.js.map +1 -1
- package/dist/commands/order/gpu.js +2 -0
- package/dist/commands/order/gpu.js.map +1 -1
- package/dist/commands/order/instant-metal.js +2 -0
- package/dist/commands/order/instant-metal.js.map +1 -1
- package/dist/commands/order/storage.js +1 -1
- package/dist/commands/order/storage.js.map +1 -1
- package/dist/commands/order/vps.js +2 -0
- package/dist/commands/order/vps.js.map +1 -1
- package/dist/commands/os-images.js +1 -1
- package/dist/commands/os-images.js.map +1 -1
- package/dist/commands/resources.js +22 -21
- package/dist/commands/resources.js.map +1 -1
- package/dist/commands/storage/attach.d.ts +1 -1
- package/dist/commands/storage/attach.js +11 -11
- package/dist/commands/storage/attach.js.map +1 -1
- package/dist/commands/storage/detach.js +2 -2
- package/dist/commands/storage/detach.js.map +1 -1
- package/dist/commands/storage/list.js +1 -1
- package/dist/commands/storage/list.js.map +1 -1
- package/dist/commands/storage/order.d.ts +1 -1
- package/dist/commands/storage/order.js +10 -10
- package/dist/commands/storage/order.js.map +1 -1
- package/dist/commands/vds/activity.d.ts +1 -0
- package/dist/commands/vds/activity.js +6 -0
- package/dist/commands/vds/activity.js.map +1 -1
- package/dist/commands/vds/bandwidth.d.ts +1 -0
- package/dist/commands/vds/bandwidth.js +4 -0
- package/dist/commands/vds/bandwidth.js.map +1 -1
- package/dist/commands/vds/boot-order.d.ts +1 -0
- package/dist/commands/vds/boot-order.js +5 -0
- package/dist/commands/vds/boot-order.js.map +1 -1
- package/dist/commands/vds/console.d.ts +1 -0
- package/dist/commands/vds/console.js +5 -0
- package/dist/commands/vds/console.js.map +1 -1
- package/dist/commands/vds/details.d.ts +2 -0
- package/dist/commands/vds/details.js +9 -0
- package/dist/commands/vds/details.js.map +1 -1
- package/dist/commands/vds/ip/add.d.ts +1 -0
- package/dist/commands/vds/ip/add.js +6 -0
- package/dist/commands/vds/ip/add.js.map +1 -1
- package/dist/commands/vds/ip/list.d.ts +1 -0
- package/dist/commands/vds/ip/list.js +4 -0
- package/dist/commands/vds/ip/list.js.map +1 -1
- package/dist/commands/vds/list.d.ts +1 -1
- package/dist/commands/vds/list.js +2 -2
- package/dist/commands/vds/list.js.map +1 -1
- package/dist/commands/vds/order.d.ts +19 -2
- package/dist/commands/vds/order.js +210 -7
- package/dist/commands/vds/order.js.map +1 -1
- package/dist/commands/vds/power.d.ts +1 -0
- package/dist/commands/vds/power.js +6 -0
- package/dist/commands/vds/power.js.map +1 -1
- package/dist/commands/vds/reinstall.d.ts +3 -0
- package/dist/commands/vds/reinstall.js +7 -0
- package/dist/commands/vds/reinstall.js.map +1 -1
- package/dist/commands/vds/resize.d.ts +1 -0
- package/dist/commands/vds/resize.js +6 -0
- package/dist/commands/vds/resize.js.map +1 -1
- package/dist/commands/vds/stats.d.ts +1 -0
- package/dist/commands/vds/stats.js +5 -0
- package/dist/commands/vds/stats.js.map +1 -1
- package/dist/commands/vps/activity.js +4 -4
- package/dist/commands/vps/activity.js.map +1 -1
- package/dist/commands/vps/bandwidth.js +5 -5
- package/dist/commands/vps/bandwidth.js.map +1 -1
- package/dist/commands/vps/boot-order.js +5 -5
- package/dist/commands/vps/boot-order.js.map +1 -1
- package/dist/commands/vps/console.js +9 -9
- package/dist/commands/vps/console.js.map +1 -1
- package/dist/commands/vps/details.d.ts +4 -0
- package/dist/commands/vps/details.js +20 -9
- package/dist/commands/vps/details.js.map +1 -1
- package/dist/commands/vps/ip/add.js +10 -9
- package/dist/commands/vps/ip/add.js.map +1 -1
- package/dist/commands/vps/ip/list.js +6 -6
- package/dist/commands/vps/ip/list.js.map +1 -1
- package/dist/commands/vps/list.d.ts +3 -1
- package/dist/commands/vps/list.js +11 -7
- package/dist/commands/vps/list.js.map +1 -1
- package/dist/commands/vps/order.d.ts +3 -2
- package/dist/commands/vps/order.js +25 -16
- package/dist/commands/vps/order.js.map +1 -1
- package/dist/commands/vps/power.js +14 -13
- package/dist/commands/vps/power.js.map +1 -1
- package/dist/commands/vps/reinstall.d.ts +2 -0
- package/dist/commands/vps/reinstall.js +41 -14
- package/dist/commands/vps/reinstall.js.map +1 -1
- package/dist/commands/vps/resize.js +11 -10
- package/dist/commands/vps/resize.js.map +1 -1
- package/dist/commands/vps/stats.js +7 -7
- package/dist/commands/vps/stats.js.map +1 -1
- package/dist/help.js +0 -1
- package/dist/help.js.map +1 -1
- package/dist/tui/screens/Dashboard.js +1 -1
- package/dist/tui/screens/Dashboard.js.map +1 -1
- package/dist/tui/screens/Order.js +352 -45
- package/dist/tui/screens/Order.js.map +1 -1
- package/dist/tui/screens/Resources.js +31 -60
- package/dist/tui/screens/Resources.js.map +1 -1
- package/dist/ui/image-resolve.js +1 -1
- package/dist/ui/image-resolve.js.map +1 -1
- package/dist/ui/payment.d.ts +1 -1
- package/dist/ui/resource-detail.d.ts +3 -0
- package/dist/ui/{vps-detail.js → resource-detail.js} +11 -7
- package/dist/ui/resource-detail.js.map +1 -0
- package/dist/ui/resource-resolve.d.ts +4 -0
- package/dist/ui/resource-resolve.js +24 -0
- package/dist/ui/resource-resolve.js.map +1 -0
- package/dist/ui/wait.d.ts +1 -1
- package/dist/ui/wait.js +4 -4
- package/dist/ui/wait.js.map +1 -1
- package/package.json +1 -4
- package/dist/commands/bare-metal/index.d.ts +0 -4
- package/dist/commands/bare-metal/index.js +0 -5
- package/dist/commands/bare-metal/index.js.map +0 -1
- package/dist/commands/bare-metal/list.d.ts +0 -9
- package/dist/commands/bare-metal/list.js +0 -38
- package/dist/commands/bare-metal/list.js.map +0 -1
- package/dist/commands/bare-metal/order.d.ts +0 -6
- package/dist/commands/bare-metal/order.js +0 -27
- package/dist/commands/bare-metal/order.js.map +0 -1
- package/dist/ui/vps-detail.d.ts +0 -3
- package/dist/ui/vps-detail.js.map +0 -1
- package/dist/ui/vps-resolve.d.ts +0 -4
- package/dist/ui/vps-resolve.js +0 -24
- package/dist/ui/vps-resolve.js.map +0 -1
|
@@ -6,7 +6,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
6
6
|
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
7
|
size: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
8
|
location: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
-
"attach-
|
|
9
|
+
"attach-resource": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
10
|
"payment-method": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
11
|
"apply-credits": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
12
12
|
"no-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
@@ -10,7 +10,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
10
10
|
static examples = [
|
|
11
11
|
"<%= config.bin %> storage order # interactive wizard; defaults to active project",
|
|
12
12
|
"<%= config.bin %> storage order --name backups --size 500 --location 019e... --payment-method 019e...",
|
|
13
|
-
"<%= config.bin %> storage order --name scratch --size 2000 --location 019e... --attach-
|
|
13
|
+
"<%= config.bin %> storage order --name scratch --size 2000 --location 019e... --attach-resource 019e... --apply-credits",
|
|
14
14
|
"<%= config.bin %> storage order --no-interactive --name logs --size 100 --location 019e... --apply-credits -o json",
|
|
15
15
|
" # bills active project; pass --project <id> to override",
|
|
16
16
|
];
|
|
@@ -18,7 +18,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
18
18
|
name: Flags.string({ description: "Volume name (1..64 chars)." }),
|
|
19
19
|
size: Flags.integer({ description: "Size in GB (1..10000)." }),
|
|
20
20
|
location: Flags.string({ description: "Location id." }),
|
|
21
|
-
"attach-
|
|
21
|
+
"attach-resource": Flags.string({ description: "Attach to this resource id (VPS/VDS/GPU/Instant Metal) on creation." }),
|
|
22
22
|
"payment-method": Flags.string({ description: "Saved payment method id." }),
|
|
23
23
|
"apply-credits": Flags.boolean({ description: "Apply team credit balance first." }),
|
|
24
24
|
"no-interactive": Flags.boolean({
|
|
@@ -64,7 +64,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
64
64
|
name: flags.name,
|
|
65
65
|
size_gb: flags.size,
|
|
66
66
|
location_id: flags.location,
|
|
67
|
-
attach_resource_id: flags["attach-
|
|
67
|
+
attach_resource_id: flags["attach-resource"],
|
|
68
68
|
payment_method_id: payment.payment_method_id,
|
|
69
69
|
apply_credits: payment.apply_credits || undefined,
|
|
70
70
|
};
|
|
@@ -151,11 +151,11 @@ export default class StorageOrder extends BaseCommand {
|
|
|
151
151
|
disabled: l.in_stock ? undefined : "out of stock",
|
|
152
152
|
})));
|
|
153
153
|
}
|
|
154
|
-
let
|
|
155
|
-
if (!
|
|
154
|
+
let attachResource = flags["attach-resource"];
|
|
155
|
+
if (!attachResource) {
|
|
156
156
|
let candidates = [];
|
|
157
157
|
try {
|
|
158
|
-
const list = await this.clients.api.
|
|
158
|
+
const list = await this.clients.api.virtualized.list(projectId);
|
|
159
159
|
candidates = list
|
|
160
160
|
.filter((v) => !v.location_id || v.location_id === locationId)
|
|
161
161
|
.map((v) => ({ id: v.id, hostname: v.hostname }));
|
|
@@ -168,8 +168,8 @@ export default class StorageOrder extends BaseCommand {
|
|
|
168
168
|
name: `${v.hostname} ${v.id.slice(0, 8)}`,
|
|
169
169
|
})),
|
|
170
170
|
];
|
|
171
|
-
const pick = await pickFromCatalog("Attach to a
|
|
172
|
-
|
|
171
|
+
const pick = await pickFromCatalog("Attach to a resource in this project + location?", choices);
|
|
172
|
+
attachResource = pick === "__none__" ? undefined : pick;
|
|
173
173
|
}
|
|
174
174
|
const priceNum = Number(catalog.price_per_gb);
|
|
175
175
|
const displayUnits = useTb ? size / 1024 : size;
|
|
@@ -201,7 +201,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
201
201
|
"Location",
|
|
202
202
|
catalog.locations.find((l) => l.id === locationId)?.city ?? shortId(locationId),
|
|
203
203
|
],
|
|
204
|
-
["Attach to",
|
|
204
|
+
["Attach to", attachResource ? shortId(attachResource) : "(unattached)"],
|
|
205
205
|
["Payment", payment.summary],
|
|
206
206
|
["Monthly cost", monthly],
|
|
207
207
|
];
|
|
@@ -216,7 +216,7 @@ export default class StorageOrder extends BaseCommand {
|
|
|
216
216
|
name,
|
|
217
217
|
size_gb: size,
|
|
218
218
|
location_id: locationId,
|
|
219
|
-
attach_resource_id:
|
|
219
|
+
attach_resource_id: attachResource,
|
|
220
220
|
payment_method_id: payment.payment_method_id,
|
|
221
221
|
apply_credits: payment.apply_credits || undefined,
|
|
222
222
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/commands/storage/order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,OAAO,GACR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAC,WAAW,GAAG,mCAAmC,CAAC;IACzD,MAAM,CAAC,QAAQ,GAAG;QAChB,yHAAyH;QACzH,uGAAuG;QACvG,
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/commands/storage/order.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ResourceActivity from "../vps/activity.js";
|
|
2
2
|
export default class VdsActivity extends ResourceActivity {
|
|
3
3
|
static description: string;
|
|
4
|
+
static examples: string[];
|
|
4
5
|
static args: {
|
|
5
6
|
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
7
|
};
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import ResourceActivity from "../vps/activity.js";
|
|
2
2
|
export default class VdsActivity extends ResourceActivity {
|
|
3
3
|
static description = "Show recent activity for a VDS instance.";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> vds activity 019e...",
|
|
6
|
+
"<%= config.bin %> vds activity 019e... --limit 50",
|
|
7
|
+
"<%= config.bin %> vds activity 019e... --limit 25 --offset 25",
|
|
8
|
+
"<%= config.bin %> vds activity 019e... -o json",
|
|
9
|
+
];
|
|
4
10
|
static args = ResourceActivity.args;
|
|
5
11
|
static flags = ResourceActivity.flags;
|
|
6
12
|
static baseFlags = ResourceActivity.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../../src/commands/vds/activity.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,gBAAgB;IACvD,MAAM,CAAC,WAAW,GAAG,0CAA0C,CAAC;IAChE,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACpC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;IACtC,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"activity.js","sourceRoot":"","sources":["../../../src/commands/vds/activity.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,gBAAgB;IACvD,MAAM,CAAC,WAAW,GAAG,0CAA0C,CAAC;IAChE,MAAM,CAAC,QAAQ,GAAG;QACd,wCAAwC;QACxC,mDAAmD;QACnD,+DAA+D;QAC/D,gDAAgD;KACjD,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACpC,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;IACtC,MAAM,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ResourceBandwidth from "../vps/bandwidth.js";
|
|
2
2
|
export default class VdsBandwidth extends ResourceBandwidth {
|
|
3
3
|
static description: string;
|
|
4
|
+
static examples: string[];
|
|
4
5
|
static args: {
|
|
5
6
|
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
7
|
};
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import ResourceBandwidth from "../vps/bandwidth.js";
|
|
2
2
|
export default class VdsBandwidth extends ResourceBandwidth {
|
|
3
3
|
static description = "Show a VDS instance's bandwidth usage (month-to-date, allowance, overage).";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> vds bandwidth 019e...",
|
|
6
|
+
"<%= config.bin %> vds bandwidth 019e... -o json # full summary for scripting",
|
|
7
|
+
];
|
|
4
8
|
static args = ResourceBandwidth.args;
|
|
5
9
|
static flags = ResourceBandwidth.flags;
|
|
6
10
|
static baseFlags = ResourceBandwidth.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bandwidth.js","sourceRoot":"","sources":["../../../src/commands/vds/bandwidth.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,iBAAiB;IACzD,MAAM,CAAC,WAAW,GAAG,4EAA4E,CAAC;IAClG,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"bandwidth.js","sourceRoot":"","sources":["../../../src/commands/vds/bandwidth.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,iBAAiB;IACzD,MAAM,CAAC,WAAW,GAAG,4EAA4E,CAAC;IAClG,MAAM,CAAC,QAAQ,GAAG;QACd,yCAAyC;QACzC,iFAAiF;KAClF,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ResourceBootOrder from "../vps/boot-order.js";
|
|
2
2
|
export default class VdsBootOrder extends ResourceBootOrder {
|
|
3
3
|
static description: string;
|
|
4
|
+
static examples: string[];
|
|
4
5
|
static args: {
|
|
5
6
|
id: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
7
|
order: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import ResourceBootOrder from "../vps/boot-order.js";
|
|
2
2
|
export default class VdsBootOrder extends ResourceBootOrder {
|
|
3
3
|
static description = "View or set a VDS instance's boot order.";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> vds boot-order 019e... # read current",
|
|
6
|
+
"<%= config.bin %> vds boot-order 019e... disk_first",
|
|
7
|
+
"<%= config.bin %> vds boot-order 019e... cdrom_first",
|
|
8
|
+
];
|
|
4
9
|
static args = ResourceBootOrder.args;
|
|
5
10
|
static flags = ResourceBootOrder.flags;
|
|
6
11
|
static baseFlags = ResourceBootOrder.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boot-order.js","sourceRoot":"","sources":["../../../src/commands/vds/boot-order.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,iBAAiB;IACzD,MAAM,CAAC,WAAW,GAAG,0CAA0C,CAAC;IAChE,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"boot-order.js","sourceRoot":"","sources":["../../../src/commands/vds/boot-order.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,iBAAiB;IACzD,MAAM,CAAC,WAAW,GAAG,0CAA0C,CAAC;IAChE,MAAM,CAAC,QAAQ,GAAG;QACd,uFAAuF;QACvF,qDAAqD;QACrD,sDAAsD;KACvD,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import ResourceConsole from "../vps/console.js";
|
|
2
2
|
export default class VdsConsole extends ResourceConsole {
|
|
3
3
|
static description = "Open a VDS console (interactive serial, or a browser URL for graphical).";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> vds console 019e... # attach serial (TTY) or print URL",
|
|
6
|
+
"<%= config.bin %> vds console 019e... --print-url # always print the browser URL",
|
|
7
|
+
"<%= config.bin %> vds console 019e... --print-url -o json # {url, token, console_type} for scripting",
|
|
8
|
+
];
|
|
4
9
|
static args = ResourceConsole.args;
|
|
5
10
|
static flags = ResourceConsole.flags;
|
|
6
11
|
static baseFlags = ResourceConsole.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/commands/vds/console.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,eAAe;IACrD,MAAM,CAAC,WAAW,GAAG,0EAA0E,CAAC;IAChG,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IACnC,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;IACrC,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/commands/vds/console.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,eAAe;IACrD,MAAM,CAAC,WAAW,GAAG,0EAA0E,CAAC;IAChG,MAAM,CAAC,QAAQ,GAAG;QACd,0GAA0G;QAC1G,sGAAsG;QACtG,kHAAkH;KACnH,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IACnC,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;IACrC,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import ResourceDetails from "../vps/details.js";
|
|
2
2
|
export default class VdsDetails extends ResourceDetails {
|
|
3
3
|
static description: string;
|
|
4
|
+
static examples: string[];
|
|
4
5
|
static aliases: never[];
|
|
5
6
|
static args: {
|
|
6
7
|
id: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
@@ -13,4 +14,5 @@ export default class VdsDetails extends ResourceDetails {
|
|
|
13
14
|
output: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
15
|
insecure: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
16
|
};
|
|
17
|
+
protected matchesKind(): string;
|
|
16
18
|
}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import ResourceDetails from "../vps/details.js";
|
|
2
2
|
export default class VdsDetails extends ResourceDetails {
|
|
3
3
|
static description = "Show full details for one VDS instance. With no id, pick from a list.";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> vds details # pick from a list (TTY)",
|
|
6
|
+
"<%= config.bin %> vds details web-01 # by hostname",
|
|
7
|
+
"<%= config.bin %> vds details 019f155b # by short id",
|
|
8
|
+
"<%= config.bin %> vds details 192.0.2.45 -o json # by IP, as JSON",
|
|
9
|
+
];
|
|
4
10
|
static aliases = [];
|
|
5
11
|
static args = ResourceDetails.args;
|
|
6
12
|
static flags = ResourceDetails.flags;
|
|
7
13
|
static baseFlags = ResourceDetails.baseFlags;
|
|
14
|
+
matchesKind() {
|
|
15
|
+
return "vds";
|
|
16
|
+
}
|
|
8
17
|
}
|
|
9
18
|
//# sourceMappingURL=details.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../src/commands/vds/details.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,eAAe;IACrD,MAAM,CAAC,WAAW,GAAG,uEAAuE,CAAC;IAC7F,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IACnC,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;IACrC,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../src/commands/vds/details.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,eAAe;IACrD,MAAM,CAAC,WAAW,GAAG,uEAAuE,CAAC;IAC7F,MAAM,CAAC,QAAQ,GAAG;QACd,iGAAiG;QACjG,sFAAsF;QACtF,sFAAsF;QACtF,yFAAyF;KAC1F,CAAC;IACJ,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IACnC,MAAM,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;IACrC,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IAEnC,WAAW;QACnB,OAAO,KAAK,CAAC;IACf,CAAC"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import ResourceIpAdd from "../../vps/ip/add.js";
|
|
2
2
|
export default class VdsIpAdd extends ResourceIpAdd {
|
|
3
3
|
static description = "Buy extra IPv4 addresses for a VDS instance (charges immediately).";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> vds ip add 019e... # 1 IP, prompts for payment + confirm",
|
|
6
|
+
"<%= config.bin %> vds ip add 019e... --quantity 2 --payment-method 019f... --yes",
|
|
7
|
+
"<%= config.bin %> vds ip add 019e... --apply-credits --yes -o json # credits first; agent-friendly",
|
|
8
|
+
"<%= config.bin %> vds ip add 019e... --billing-mode new_cycle --payment-method 019f... --yes",
|
|
9
|
+
];
|
|
4
10
|
static args = ResourceIpAdd.args;
|
|
5
11
|
static flags = ResourceIpAdd.flags;
|
|
6
12
|
static baseFlags = ResourceIpAdd.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/commands/vds/ip/add.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAa;IACjD,MAAM,CAAC,WAAW,GAAG,oEAAoE,CAAC;IAC1F,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IACnC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/commands/vds/ip/add.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAAa;IACjD,MAAM,CAAC,WAAW,GAAG,oEAAoE,CAAC;IAC1F,MAAM,CAAC,QAAQ,GAAG;QACd,gHAAgH;QAChH,kFAAkF;QAClF,0GAA0G;QAC1G,8FAA8F;KAC/F,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;IACjC,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;IACnC,MAAM,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import ResourceIpList from "../../vps/ip/list.js";
|
|
2
2
|
export default class VdsIpList extends ResourceIpList {
|
|
3
3
|
static description = "List a VDS instance's IP addresses and extra-IP add-ons.";
|
|
4
|
+
static examples = [
|
|
5
|
+
"<%= config.bin %> vds ip list 019e...",
|
|
6
|
+
"<%= config.bin %> vds ip list 019e... -o json # {ips, addons, pending_addons}",
|
|
7
|
+
];
|
|
4
8
|
static args = ResourceIpList.args;
|
|
5
9
|
static flags = ResourceIpList.flags;
|
|
6
10
|
static baseFlags = ResourceIpList.baseFlags;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/vds/ip/list.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,cAAc;IACnD,MAAM,CAAC,WAAW,GAAG,0DAA0D,CAAC;IAChF,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IACpC,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/vds/ip/list.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,cAAc;IACnD,MAAM,CAAC,WAAW,GAAG,0DAA0D,CAAC;IAChF,MAAM,CAAC,QAAQ,GAAG;QACd,uCAAuC;QACvC,oFAAoF;KACrF,CAAC;IACJ,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IAClC,MAAM,CAAC,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IACpC,MAAM,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC"}
|
|
@@ -6,8 +6,8 @@ export default class VdsList extends ResourceList {
|
|
|
6
6
|
"<%= config.bin %> vds list --project 019e...",
|
|
7
7
|
"<%= config.bin %> vds list -o json",
|
|
8
8
|
];
|
|
9
|
-
|
|
10
|
-
return
|
|
9
|
+
matchesKind() {
|
|
10
|
+
return "vds";
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/vds/list.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAAY;IAC/C,MAAM,CAAC,WAAW,GAAG,0BAA0B,CAAC;IAChD,MAAM,CAAC,QAAQ,GAAG;QAChB,4BAA4B;QAC5B,8CAA8C;QAC9C,oCAAoC;KACrC,CAAC;IAEQ,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/vds/list.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAAY;IAC/C,MAAM,CAAC,WAAW,GAAG,0BAA0B,CAAC;IAChD,MAAM,CAAC,QAAQ,GAAG;QAChB,4BAA4B;QAC5B,8CAA8C;QAC9C,oCAAoC;KACrC,CAAC;IAEQ,WAAW;QACnB,OAAO,KAAK,CAAC;IACf,CAAC"}
|
|
@@ -1,6 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class VdsOrder extends
|
|
1
|
+
import { BaseCommand } from "../../base/command.js";
|
|
2
|
+
export default class VdsOrder extends BaseCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
project: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
category: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
tier: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
location: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
image: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
hostname: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
+
"payment-method": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
"apply-credits": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
"ssh-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
"ssh-public-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
password: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
17
|
+
ciuser: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
18
|
+
"no-interactive": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
yes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
"billing-cycle": import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
21
|
+
};
|
|
5
22
|
run(): Promise<void>;
|
|
6
23
|
}
|
|
@@ -1,13 +1,216 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Flags } from "@oclif/core";
|
|
2
|
+
import open from "open";
|
|
3
|
+
import { BaseCommand } from "../../base/command.js";
|
|
4
|
+
import { pickPayment } from "../../ui/payment.js";
|
|
5
|
+
import { pickFromCatalog, panel, isInteractive } from "../../ui/wizard.js";
|
|
6
|
+
import { confirmDestructive } from "../../ui/confirm.js";
|
|
7
|
+
import { statusColor } from "../../ui/glyphs.js";
|
|
8
|
+
// VDS ordering is TIER-BASED: the server owns a ladder of
|
|
9
|
+
// (cpu, ram, disk, bandwidth, price) rungs per category, and the client
|
|
10
|
+
// only sends `tier_category_slug + tier_index`. VPS uses custom sliders,
|
|
11
|
+
// GPU/Instant-Metal use plan_id, VDS uses tiers — three different shapes,
|
|
12
|
+
// so vds/order.ts can't share vps/order.ts's plan_id wizard.
|
|
13
|
+
export default class VdsOrder extends BaseCommand {
|
|
14
|
+
static description = [
|
|
15
|
+
"Order a VDS instance — server-defined tier ladder (CPU/RAM/disk/BW rungs).",
|
|
16
|
+
"",
|
|
17
|
+
"Interactive on a TTY (tier picker → project → location → image → hostname → payment).",
|
|
18
|
+
"Scripted with --tier <index> plus --project/--location/--image/--hostname/--payment-method.",
|
|
19
|
+
"The tier ladder lives on the catalog at `categories[slug].slider_config.tiers` (index from 0).",
|
|
20
|
+
].join("\n");
|
|
4
21
|
static examples = [
|
|
5
|
-
"<%= config.bin %> vds order
|
|
6
|
-
"<%= config.bin %> vds order --
|
|
22
|
+
"<%= config.bin %> vds order # interactive wizard",
|
|
23
|
+
"<%= config.bin %> vds order --tier 0 --location <id> --image <id> --hostname web1 --payment-method <pm> --yes",
|
|
24
|
+
"<%= config.bin %> vds order --category vds_performance --tier 2 -o json",
|
|
25
|
+
"<%= config.bin %> vds order --tier 1 --location <id> --image <id> --hostname db1 --payment-method <pm> --billing-cycle yearly --yes",
|
|
26
|
+
" # bills 12 months up front; tier must have that cycle enabled",
|
|
7
27
|
];
|
|
28
|
+
static flags = {
|
|
29
|
+
project: Flags.string({ description: "Scope to a project id." }),
|
|
30
|
+
category: Flags.string({
|
|
31
|
+
description: "VDS category slug (e.g. vds_performance). Defaults to the only enabled VDS category.",
|
|
32
|
+
}),
|
|
33
|
+
tier: Flags.integer({
|
|
34
|
+
description: "Tier index (0 = smallest rung). Required in --no-interactive mode.",
|
|
35
|
+
min: 0,
|
|
36
|
+
}),
|
|
37
|
+
location: Flags.string({ description: "Location id." }),
|
|
38
|
+
image: Flags.string({ description: "OS image id." }),
|
|
39
|
+
hostname: Flags.string({ description: "Hostname." }),
|
|
40
|
+
"payment-method": Flags.string({ description: "Saved payment method id." }),
|
|
41
|
+
"apply-credits": Flags.boolean({ description: "Apply team credit balance first." }),
|
|
42
|
+
"ssh-key": Flags.string({ description: "Saved SSH key id." }),
|
|
43
|
+
"ssh-public-key": Flags.string({ description: "Raw OpenSSH public key." }),
|
|
44
|
+
password: Flags.string({ description: "Root password (min 8 chars)." }),
|
|
45
|
+
ciuser: Flags.string({ description: "cloud-init username (max 32 chars)." }),
|
|
46
|
+
"no-interactive": Flags.boolean({
|
|
47
|
+
description: "Skip the wizard; error if required flags are missing.",
|
|
48
|
+
}),
|
|
49
|
+
yes: Flags.boolean({
|
|
50
|
+
char: "y",
|
|
51
|
+
description: "Skip the confirmation prompt. Required when stdout is not a TTY.",
|
|
52
|
+
}),
|
|
53
|
+
"billing-cycle": Flags.string({
|
|
54
|
+
description: "Billing cycle for the new VDS: monthly (default), quarterly (3 months up front), or yearly (12 months up front). Non-monthly values must be enabled on the tier — the server 422s otherwise.",
|
|
55
|
+
options: ["monthly", "quarterly", "yearly"],
|
|
56
|
+
default: "monthly",
|
|
57
|
+
}),
|
|
58
|
+
};
|
|
8
59
|
async run() {
|
|
9
|
-
this.
|
|
10
|
-
await
|
|
60
|
+
await this.initClients();
|
|
61
|
+
const { flags } = await this.parse(VdsOrder);
|
|
62
|
+
try {
|
|
63
|
+
const catalog = await this.clients.api.orders.catalog();
|
|
64
|
+
const vdsCategories = (catalog.categories ?? []).filter((c) => c.slug.startsWith("vds") &&
|
|
65
|
+
c.slider_config?.enabled &&
|
|
66
|
+
(c.slider_config.tiers?.length ?? 0) > 0);
|
|
67
|
+
if (vdsCategories.length === 0) {
|
|
68
|
+
this.error("No VDS tier ladders enabled in the catalog.", { exit: 1 });
|
|
69
|
+
}
|
|
70
|
+
// Category
|
|
71
|
+
let category = flags.category
|
|
72
|
+
? vdsCategories.find((c) => c.slug === flags.category)
|
|
73
|
+
: vdsCategories.length === 1
|
|
74
|
+
? vdsCategories[0]
|
|
75
|
+
: undefined;
|
|
76
|
+
if (!category && !flags["no-interactive"] && isInteractive()) {
|
|
77
|
+
const pick = await pickFromCatalog("VDS category", vdsCategories.map((c) => ({
|
|
78
|
+
value: c.slug,
|
|
79
|
+
name: `${c.name ?? c.slug} (${c.slider_config?.tiers?.length ?? 0} tiers)`,
|
|
80
|
+
})));
|
|
81
|
+
category = vdsCategories.find((c) => c.slug === pick);
|
|
82
|
+
}
|
|
83
|
+
if (!category) {
|
|
84
|
+
this.error(`Ambiguous VDS category — pass --category with one of: ${vdsCategories.map((c) => c.slug).join(", ")}.`, { exit: 1 });
|
|
85
|
+
}
|
|
86
|
+
const tiers = category.slider_config?.tiers ?? [];
|
|
87
|
+
// Tier
|
|
88
|
+
let tierIndex = flags.tier;
|
|
89
|
+
if (tierIndex == null) {
|
|
90
|
+
if (flags["no-interactive"] || !isInteractive()) {
|
|
91
|
+
this.error("Pass --tier <index> in --no-interactive mode.", { exit: 1 });
|
|
92
|
+
}
|
|
93
|
+
tierIndex = await pickFromCatalog("Tier", tiers.map((t, i) => ({
|
|
94
|
+
value: i,
|
|
95
|
+
name: `${i}: ${t.cpu}c · ${t.ram_gb}GB RAM · ${t.disk_gb}GB disk · ${t.bandwidth_tb}TB BW — $${t.monthly_price}/mo`,
|
|
96
|
+
})));
|
|
97
|
+
}
|
|
98
|
+
if (tierIndex < 0 || tierIndex >= tiers.length) {
|
|
99
|
+
this.error(`--tier ${tierIndex} out of range (0..${tiers.length - 1}).`, { exit: 1 });
|
|
100
|
+
}
|
|
101
|
+
const tier = tiers[tierIndex];
|
|
102
|
+
// Project (default to the only project on the team, else prompt)
|
|
103
|
+
let projectId = flags.project;
|
|
104
|
+
if (!projectId) {
|
|
105
|
+
const projects = await this.clients.api.projects.list();
|
|
106
|
+
if (projects.length === 1) {
|
|
107
|
+
projectId = projects[0].id;
|
|
108
|
+
}
|
|
109
|
+
else if (!flags["no-interactive"] && isInteractive()) {
|
|
110
|
+
projectId = await pickFromCatalog("Project", projects.map((p) => ({ value: p.id, name: p.name })));
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
this.error("Provide --project (multiple projects on this team).", { exit: 1 });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Location
|
|
117
|
+
let locationId = flags.location;
|
|
118
|
+
if (!locationId) {
|
|
119
|
+
const locs = catalog.locations ?? [];
|
|
120
|
+
if (locs.length === 1) {
|
|
121
|
+
locationId = locs[0].id;
|
|
122
|
+
}
|
|
123
|
+
else if (!flags["no-interactive"] && isInteractive()) {
|
|
124
|
+
locationId = await pickFromCatalog("Location", locs.map((l) => ({ value: l.id, name: `${l.city}, ${l.country}` })));
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this.error("Provide --location.", { exit: 1 });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Image
|
|
131
|
+
let imageId = flags.image;
|
|
132
|
+
if (!imageId) {
|
|
133
|
+
const imgs = catalog.images ?? [];
|
|
134
|
+
if (!flags["no-interactive"] && isInteractive()) {
|
|
135
|
+
imageId = await pickFromCatalog("OS image", imgs.map((i) => ({ value: i.id, name: i.display_name })));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
this.error("Provide --image.", { exit: 1 });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
// Hostname
|
|
142
|
+
const hostname = flags.hostname;
|
|
143
|
+
if (!hostname) {
|
|
144
|
+
this.error("Provide --hostname.", { exit: 1 });
|
|
145
|
+
}
|
|
146
|
+
// Payment
|
|
147
|
+
const payment = await pickPayment({
|
|
148
|
+
api: this.clients.api,
|
|
149
|
+
tokens: this.clients.tokens,
|
|
150
|
+
config: this.clients.config,
|
|
151
|
+
flow: "virtualized_order",
|
|
152
|
+
prefill: {
|
|
153
|
+
paymentMethodId: flags["payment-method"],
|
|
154
|
+
applyCredits: flags["apply-credits"],
|
|
155
|
+
},
|
|
156
|
+
noInteractive: flags["no-interactive"] || !isInteractive(),
|
|
157
|
+
log: (msg) => this.log(msg),
|
|
158
|
+
});
|
|
159
|
+
// Confirm on TTY
|
|
160
|
+
if (!flags.yes && isInteractive() && this.outputFormat === "table") {
|
|
161
|
+
this.log(panel("Review your VDS order", [
|
|
162
|
+
["Category", category.slug],
|
|
163
|
+
["Tier", `${tierIndex}: ${tier.cpu}c · ${tier.ram_gb}GB · ${tier.disk_gb}GB · ${tier.bandwidth_tb}TB`],
|
|
164
|
+
["Monthly", `$${tier.monthly_price}`],
|
|
165
|
+
["Hostname", hostname],
|
|
166
|
+
["Location", locationId],
|
|
167
|
+
["Image", imageId],
|
|
168
|
+
]));
|
|
169
|
+
const outcome = await confirmDestructive({
|
|
170
|
+
message: `Place order? Charges ~$${tier.monthly_price}/mo.`,
|
|
171
|
+
});
|
|
172
|
+
if (outcome !== "confirmed") {
|
|
173
|
+
this.log("Aborted — nothing ordered.");
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const body = {
|
|
178
|
+
project_id: projectId,
|
|
179
|
+
tier_category_slug: category.slug,
|
|
180
|
+
tier_index: tierIndex,
|
|
181
|
+
location_id: locationId,
|
|
182
|
+
image_id: imageId,
|
|
183
|
+
hostname,
|
|
184
|
+
payment_kind: payment.payment_kind,
|
|
185
|
+
payment_method_id: payment.payment_method_id,
|
|
186
|
+
apply_credits: payment.apply_credits || undefined,
|
|
187
|
+
ssh_key_id: flags["ssh-key"],
|
|
188
|
+
ssh_public_key: flags["ssh-public-key"],
|
|
189
|
+
password: flags.password,
|
|
190
|
+
ciuser: flags.ciuser,
|
|
191
|
+
billing_cycle: flags["billing-cycle"],
|
|
192
|
+
};
|
|
193
|
+
const result = await this.clients.api.orders.create(body);
|
|
194
|
+
this.emit(result, () => {
|
|
195
|
+
this.log(panel("Order submitted", [
|
|
196
|
+
["Status", statusColor(result.status)],
|
|
197
|
+
["Order id", result.order_id],
|
|
198
|
+
["Invoice id", result.invoice_id],
|
|
199
|
+
["Charge id", result.charge_id],
|
|
200
|
+
["Checkout URL", result.checkout_url],
|
|
201
|
+
["Failure reason", result.failure_reason],
|
|
202
|
+
]));
|
|
203
|
+
});
|
|
204
|
+
if (result.checkout_url && process.stdout.isTTY) {
|
|
205
|
+
try {
|
|
206
|
+
await open(result.checkout_url);
|
|
207
|
+
}
|
|
208
|
+
catch { }
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (err) {
|
|
212
|
+
this.fail(err);
|
|
213
|
+
}
|
|
11
214
|
}
|
|
12
215
|
}
|
|
13
216
|
//# sourceMappingURL=order.js.map
|