@bldg-7/proxmox-mcp 0.4.0 → 0.4.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxmox.d.ts","sourceRoot":"","sources":["../../src/client/proxmox.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"proxmox.d.ts","sourceRoot":"","sources":["../../src/client/proxmox.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA8ClD,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,UAAU,EAAE,MAAM;aAClB,QAAQ,EAAE,MAAM;gBAFhC,OAAO,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM;CAKnC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAE5B,MAAM,EAAE,MAAM;IAwBpB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CA4E/E"}
|
package/dist/client/proxmox.js
CHANGED
|
@@ -2,6 +2,40 @@ import fs from 'node:fs';
|
|
|
2
2
|
import { Agent } from 'undici';
|
|
3
3
|
import { logger } from '../utils/index.js';
|
|
4
4
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
5
|
+
const encodeFormValue = (value) => {
|
|
6
|
+
if (typeof value === 'boolean') {
|
|
7
|
+
return value ? '1' : '0';
|
|
8
|
+
}
|
|
9
|
+
if (value instanceof Date) {
|
|
10
|
+
return value.toISOString();
|
|
11
|
+
}
|
|
12
|
+
if (typeof value === 'object' && value !== null) {
|
|
13
|
+
return JSON.stringify(value);
|
|
14
|
+
}
|
|
15
|
+
return String(value);
|
|
16
|
+
};
|
|
17
|
+
const toFormParams = (body) => {
|
|
18
|
+
if (body instanceof URLSearchParams) {
|
|
19
|
+
return body;
|
|
20
|
+
}
|
|
21
|
+
const params = new URLSearchParams();
|
|
22
|
+
if (!body || typeof body !== 'object') {
|
|
23
|
+
return params;
|
|
24
|
+
}
|
|
25
|
+
for (const [key, rawValue] of Object.entries(body)) {
|
|
26
|
+
if (rawValue === undefined || rawValue === null) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (Array.isArray(rawValue)) {
|
|
30
|
+
for (const item of rawValue) {
|
|
31
|
+
params.append(key, encodeFormValue(item));
|
|
32
|
+
}
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
params.append(key, encodeFormValue(rawValue));
|
|
36
|
+
}
|
|
37
|
+
return params;
|
|
38
|
+
};
|
|
5
39
|
export class ProxmoxApiError extends Error {
|
|
6
40
|
statusCode;
|
|
7
41
|
endpoint;
|
|
@@ -37,19 +71,36 @@ export class ProxmoxApiClient {
|
|
|
37
71
|
this.dispatcher = new Agent({ connect: connectOptions });
|
|
38
72
|
}
|
|
39
73
|
async request(endpoint, method = 'GET', body) {
|
|
40
|
-
const
|
|
74
|
+
const normalizedMethod = method.toUpperCase();
|
|
75
|
+
let url = `${this.baseUrl}${endpoint}`;
|
|
41
76
|
const headers = {
|
|
42
77
|
'Authorization': this.authHeader,
|
|
43
|
-
'Content-Type': 'application/json',
|
|
44
78
|
};
|
|
45
79
|
const options = {
|
|
46
|
-
method,
|
|
80
|
+
method: normalizedMethod,
|
|
47
81
|
headers,
|
|
48
82
|
signal: AbortSignal.timeout(DEFAULT_TIMEOUT_MS),
|
|
49
83
|
dispatcher: this.dispatcher,
|
|
50
84
|
};
|
|
51
85
|
if (body !== undefined) {
|
|
52
|
-
|
|
86
|
+
const params = toFormParams(body);
|
|
87
|
+
if (normalizedMethod === 'DELETE') {
|
|
88
|
+
const query = params.toString();
|
|
89
|
+
if (query) {
|
|
90
|
+
url += url.includes('?') ? `&${query}` : `?${query}`;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
else if (normalizedMethod === 'POST' || normalizedMethod === 'PUT') {
|
|
94
|
+
headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
|
95
|
+
options.body = params.toString();
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
headers['Content-Type'] = 'application/json';
|
|
99
|
+
options.body = JSON.stringify(body);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else if (normalizedMethod === 'POST' || normalizedMethod === 'PUT') {
|
|
103
|
+
headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
|
53
104
|
}
|
|
54
105
|
logger.debug({ method, endpoint }, 'Proxmox API request');
|
|
55
106
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxmox.js","sourceRoot":"","sources":["../../src/client/proxmox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAmB,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGtB;IACA;IAHlB,YACE,OAAe,EACC,UAAkB,EAClB,QAAgB;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAQ;QAClB,aAAQ,GAAR,QAAQ,CAAQ;QAGhC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IACV,OAAO,CAAS;IAChB,UAAU,CAAS;IACnB,UAAU,CAAa;IAExC,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,WAAW,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,eAAe,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAExF,MAAM,cAAc,GAAkD,EAAE,CAAC;QAEzE,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,KAAK,QAAQ;gBACX,cAAc,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBACzC,MAAM;YACR,KAAK,QAAQ;gBACX,cAAc,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBACzC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACxD,CAAC;gBACD,MAAM;YACR,KAAK,UAAU;gBACb,cAAc,CAAC,kBAAkB,GAAG,KAAK,CAAC;gBAC1C,MAAM;QACV,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,QAAgB,EAAE,MAAM,GAAG,KAAK,EAAE,IAAc;QAC/D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"proxmox.js","sourceRoot":"","sources":["../../src/client/proxmox.ts"],"names":[],"mappings":"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"}
|