@kastov/node-supervisord 2.0.0 → 2.0.2

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,5 +1,5 @@
1
- import { XmlRpcValue } from '@foxglove/xmlrpc';
2
1
  import { SupervisordClientMethod } from './methods';
2
+ import { XmlRpcValue } from './xmlrpc';
3
3
  export interface SupervisordClientOptions {
4
4
  username: string;
5
5
  password: string;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SupervisordClient = void 0;
4
- const xmlrpc_1 = require("@foxglove/xmlrpc");
5
4
  const methods_1 = require("./methods");
5
+ const xmlrpc_1 = require("./xmlrpc");
6
6
  class SupervisordClient extends methods_1.SupervisordClientMethod {
7
7
  client;
8
8
  constructor(connectionUrl, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"supervisord-client.js","sourceRoot":"","sources":["../src/supervisord-client.ts"],"names":[],"mappings":";;;AAAA,6CAA6D;AAE7D,uCAAuE;AAOvE,MAAa,iBAAkB,SAAQ,iCAAuB;IAClD,MAAM,CAAe;IAE7B,YAAY,aAAqB,EAAE,OAAkC;QACjE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAY,CAAC,aAAa,EAAE;YAC1C,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;SACvC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAqB;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa,CAAC,OAAkC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1E,OAAO,EAAE,aAAa,EAAE,SAAS,OAAO,EAAE,EAAE,CAAC;IACjD,CAAC;CACJ;AAzBD,8CAyBC;AAED,2BAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IACjC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1C,iBAAiB,CAAC,SAAiB,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,MAAqB;QACjF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"supervisord-client.js","sourceRoot":"","sources":["../src/supervisord-client.ts"],"names":[],"mappings":";;;AAAA,uCAAuE;AACvE,qCAAqD;AAOrD,MAAa,iBAAkB,SAAQ,iCAAuB;IAClD,MAAM,CAAe;IAE7B,YAAY,aAAqB,EAAE,OAAkC;QACjE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAY,CAAC,aAAa,EAAE;YAC1C,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;SACvC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAqB;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa,CAAC,OAAkC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1E,OAAO,EAAE,aAAa,EAAE,SAAS,OAAO,EAAE,EAAE,CAAC;IACjD,CAAC;CACJ;AAzBD,8CAyBC;AAED,2BAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IACjC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1C,iBAAiB,CAAC,SAAiB,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,MAAqB;QACjF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { XMLBuilder } from 'xmlbuilder2/lib/interfaces';
2
+ export declare class CustomType {
3
+ raw: string;
4
+ tagName: string;
5
+ constructor(raw: string);
6
+ serialize(xml: XMLBuilder): XMLBuilder;
7
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomType = void 0;
4
+ class CustomType {
5
+ raw;
6
+ tagName = 'customType';
7
+ constructor(raw) {
8
+ this.raw = raw;
9
+ }
10
+ serialize(xml) {
11
+ return xml.ele(this.tagName).txt(this.raw);
12
+ }
13
+ }
14
+ exports.CustomType = CustomType;
15
+ //# sourceMappingURL=CustomType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomType.js","sourceRoot":"","sources":["../../src/xmlrpc/CustomType.ts"],"names":[],"mappings":";;;AAEA,MAAa,UAAU;IAGA;IAFnB,OAAO,GAAG,YAAY,CAAC;IAEvB,YAAmB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAElC,SAAS,CAAC,GAAe;QACrB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC;CACJ;AARD,gCAQC"}
@@ -0,0 +1,29 @@
1
+ export type DateFormatterOptions = {
2
+ colons?: boolean;
3
+ hyphens?: boolean;
4
+ ms?: boolean;
5
+ };
6
+ export declare class DateFormatter {
7
+ private _colons;
8
+ private _hyphens;
9
+ private _ms;
10
+ static ISO8601: RegExp;
11
+ constructor(options?: DateFormatterOptions);
12
+ /**
13
+ * Converts a date time stamp following the ISO8601 format to a JavaScript Date
14
+ * object.
15
+ */
16
+ decodeIso8601(time: string): Date;
17
+ /**
18
+ * Converts a JavaScript Date object to an ISO8601 timestamp.
19
+ */
20
+ encodeIso8601(date: Date): string;
21
+ /**
22
+ * Helper function to pad the digits with 0s to meet date formatting requirements.
23
+ */
24
+ static zeroPad(digit: number, length: number): string;
25
+ /**
26
+ * Helper function to get an array of zero-padded date parts, in UTC
27
+ */
28
+ static getUTCDateParts(date: Date): [string, string, string, string, string, string, string];
29
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DateFormatter = void 0;
4
+ class DateFormatter {
5
+ _colons = true;
6
+ _hyphens = true;
7
+ _ms = true;
8
+ // Regular Expression that dissects an ISO 8601 formatted string into an array of parts
9
+ static ISO8601 = /([0-9]{4})([-]?([0-9]{2}))([-]?([0-9]{2}))(T-?([0-9]{2})(((:?([0-9]{2}))?((:?([0-9]{2}))?(\.([0-9]+))?))?)(Z|([+-]([0-9]{2}(:?([0-9]{2}))?)))?)?/;
10
+ constructor(options) {
11
+ if (options != undefined) {
12
+ this._colons = options.colons ?? this._colons;
13
+ this._hyphens = options.hyphens ?? this._hyphens;
14
+ this._ms = options.ms ?? this._ms;
15
+ }
16
+ }
17
+ /**
18
+ * Converts a date time stamp following the ISO8601 format to a JavaScript Date
19
+ * object.
20
+ */
21
+ decodeIso8601(time) {
22
+ const dateParts = DateFormatter.ISO8601.exec(time.toString());
23
+ if (dateParts == null) {
24
+ throw new Error(`Expected a ISO8601 datetime but got "${time}"`);
25
+ }
26
+ let date = [
27
+ [dateParts[1], dateParts[3] ?? '01', dateParts[5] ?? '01'].join('-'),
28
+ 'T',
29
+ [dateParts[7] ?? '00', dateParts[11] ?? '00', dateParts[14] ?? '00'].join(':'),
30
+ '.',
31
+ dateParts[16] ?? '000',
32
+ ].join('');
33
+ date +=
34
+ dateParts[17] != undefined
35
+ ? dateParts[17] + (dateParts[19] != undefined && dateParts[20] == undefined ? '00' : '')
36
+ : 'Z';
37
+ return new Date(date);
38
+ }
39
+ /**
40
+ * Converts a JavaScript Date object to an ISO8601 timestamp.
41
+ */
42
+ encodeIso8601(date) {
43
+ const parts = DateFormatter.getUTCDateParts(date);
44
+ return [
45
+ [parts[0], parts[1], parts[2]].join(this._hyphens ? '-' : ''),
46
+ 'T',
47
+ [parts[3], parts[4], parts[5]].join(this._colons ? ':' : ''),
48
+ this._ms ? '.' + parts[6] : '',
49
+ 'Z',
50
+ ].join('');
51
+ }
52
+ /**
53
+ * Helper function to pad the digits with 0s to meet date formatting requirements.
54
+ */
55
+ static zeroPad(digit, length) {
56
+ return digit.toString().padStart(length, '0');
57
+ }
58
+ /**
59
+ * Helper function to get an array of zero-padded date parts, in UTC
60
+ */
61
+ static getUTCDateParts(date) {
62
+ return [
63
+ date.getUTCFullYear().toString(),
64
+ DateFormatter.zeroPad(date.getUTCMonth() + 1, 2),
65
+ DateFormatter.zeroPad(date.getUTCDate(), 2),
66
+ DateFormatter.zeroPad(date.getUTCHours(), 2),
67
+ DateFormatter.zeroPad(date.getUTCMinutes(), 2),
68
+ DateFormatter.zeroPad(date.getUTCSeconds(), 2),
69
+ DateFormatter.zeroPad(date.getUTCMilliseconds(), 3),
70
+ ];
71
+ }
72
+ }
73
+ exports.DateFormatter = DateFormatter;
74
+ //# sourceMappingURL=DateFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFormatter.js","sourceRoot":"","sources":["../../src/xmlrpc/DateFormatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import { DateFormatter } from './DateFormatter';
2
+ import { Encoding, XmlRpcValue } from './XmlRpcTypes';
3
+ export declare class Deserializer {
4
+ dateFormatter: DateFormatter;
5
+ private _type?;
6
+ private _responseType?;
7
+ private _stack;
8
+ private _marks;
9
+ private _data;
10
+ private _methodname?;
11
+ private _encoding;
12
+ private _value;
13
+ private _callback;
14
+ private _error?;
15
+ private _parser;
16
+ static isInteger: RegExp;
17
+ constructor(encoding?: Encoding);
18
+ deserializeMethodResponse(data: string | ArrayBuffer): Promise<XmlRpcValue>;
19
+ private _onDone;
20
+ private _onError;
21
+ private _push;
22
+ private _onOpentag;
23
+ private _onText;
24
+ private _onCDATA;
25
+ private _onClosetag;
26
+ private _endNil;
27
+ private _endBoolean;
28
+ private _endInt;
29
+ private _endDouble;
30
+ private _endString;
31
+ private _endArray;
32
+ private _endStruct;
33
+ private _endBase64;
34
+ private _endDateTime;
35
+ private _endI8;
36
+ private _endValue;
37
+ private _endParams;
38
+ private _endFault;
39
+ private _endMethodResponse;
40
+ private _endMethodName;
41
+ private _endMethodCall;
42
+ }
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Deserializer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const sax_1 = tslib_1.__importDefault(require("sax"));
6
+ const DateFormatter_1 = require("./DateFormatter");
7
+ const XmlRpcFault_1 = require("./XmlRpcFault");
8
+ class Deserializer {
9
+ dateFormatter = new DateFormatter_1.DateFormatter();
10
+ _type;
11
+ _responseType;
12
+ _stack = [];
13
+ _marks = [];
14
+ _data = [];
15
+ _methodname;
16
+ _encoding;
17
+ _value = false;
18
+ _callback = () => {
19
+ return;
20
+ };
21
+ _error;
22
+ _parser;
23
+ static isInteger = /^-?\d+$/;
24
+ constructor(encoding = 'utf-8') {
25
+ this._encoding = encoding;
26
+ this._parser = sax_1.default.createStream();
27
+ this._parser.on('opentag', this._onOpentag);
28
+ this._parser.on('closetag', this._onClosetag);
29
+ this._parser.on('text', this._onText);
30
+ this._parser.on('cdata', this._onCDATA);
31
+ this._parser.on('end', this._onDone);
32
+ this._parser.on('error', this._onError);
33
+ }
34
+ async deserializeMethodResponse(data) {
35
+ return await new Promise((resolve, reject) => {
36
+ this._callback = (error, result) => {
37
+ if (error != undefined) {
38
+ reject(error);
39
+ }
40
+ else if (result != undefined && result.length > 1) {
41
+ reject(new Error('Response has more than one param'));
42
+ }
43
+ else if (this._type !== 'methodresponse') {
44
+ reject(new Error('Not a method response'));
45
+ }
46
+ else if (this._responseType == undefined) {
47
+ reject(new Error('Invalid method response'));
48
+ }
49
+ else {
50
+ resolve(result?.[0]);
51
+ }
52
+ };
53
+ this._parser.end(data, this._encoding);
54
+ });
55
+ }
56
+ _onDone = () => {
57
+ if (this._error == undefined) {
58
+ if (this._type == undefined || this._marks.length !== 0) {
59
+ this._callback(new Error(`Invalid XML-RPC ${this._type ?? 'message'}`));
60
+ }
61
+ else if (this._responseType === 'fault') {
62
+ const createFault = (fault) => {
63
+ const faultString = typeof fault.faultString === 'string' ? fault.faultString : undefined;
64
+ const faultCode = typeof fault.faultCode === 'number' ? fault.faultCode : undefined;
65
+ return new XmlRpcFault_1.XmlRpcFault(faultString, faultCode);
66
+ };
67
+ this._callback(createFault(this._stack[0]));
68
+ }
69
+ else {
70
+ this._callback(undefined, this._stack);
71
+ }
72
+ }
73
+ };
74
+ _onError = (err) => {
75
+ if (this._error == undefined) {
76
+ this._error = err;
77
+ this._callback(this._error);
78
+ }
79
+ };
80
+ _push = (value) => {
81
+ this._stack.push(value);
82
+ };
83
+ //==============================================================================
84
+ // SAX Handlers
85
+ //==============================================================================
86
+ _onOpentag = (node) => {
87
+ if (node.name === 'ARRAY' || node.name === 'STRUCT') {
88
+ this._marks.push(this._stack.length);
89
+ }
90
+ this._data = [];
91
+ this._value = node.name === 'VALUE';
92
+ };
93
+ _onText = (text) => {
94
+ this._data.push(text);
95
+ };
96
+ _onCDATA = (cdata) => {
97
+ this._data.push(cdata);
98
+ };
99
+ _onClosetag = (el) => {
100
+ const data = this._data.join('');
101
+ try {
102
+ switch (el) {
103
+ case 'BOOLEAN':
104
+ this._endBoolean(data);
105
+ break;
106
+ case 'INT':
107
+ case 'I4':
108
+ this._endInt(data);
109
+ break;
110
+ case 'I8':
111
+ this._endI8(data);
112
+ break;
113
+ case 'DOUBLE':
114
+ this._endDouble(data);
115
+ break;
116
+ case 'STRING':
117
+ case 'NAME':
118
+ this._endString(data);
119
+ break;
120
+ case 'ARRAY':
121
+ this._endArray(data);
122
+ break;
123
+ case 'STRUCT':
124
+ this._endStruct(data);
125
+ break;
126
+ case 'BASE64':
127
+ this._endBase64(data);
128
+ break;
129
+ case 'DATETIME.ISO8601':
130
+ this._endDateTime(data);
131
+ break;
132
+ case 'VALUE':
133
+ this._endValue(data);
134
+ break;
135
+ case 'PARAMS':
136
+ this._endParams(data);
137
+ break;
138
+ case 'FAULT':
139
+ this._endFault(data);
140
+ break;
141
+ case 'METHODRESPONSE':
142
+ this._endMethodResponse(data);
143
+ break;
144
+ case 'METHODNAME':
145
+ this._endMethodName(data);
146
+ break;
147
+ case 'METHODCALL':
148
+ this._endMethodCall(data);
149
+ break;
150
+ case 'NIL':
151
+ this._endNil(data);
152
+ break;
153
+ case 'DATA':
154
+ case 'PARAM':
155
+ case 'MEMBER':
156
+ // Ignored by design
157
+ break;
158
+ default:
159
+ this._onError(new Error(`Unknown XML-RPC tag "${el}"`));
160
+ break;
161
+ }
162
+ }
163
+ catch (e) {
164
+ this._onError(e);
165
+ }
166
+ };
167
+ _endNil = (_data) => {
168
+ this._push(undefined);
169
+ this._value = false;
170
+ };
171
+ _endBoolean = (data) => {
172
+ if (data === '1') {
173
+ this._push(true);
174
+ }
175
+ else if (data === '0') {
176
+ this._push(false);
177
+ }
178
+ else {
179
+ throw new Error("Illegal boolean value '" + data + "'");
180
+ }
181
+ this._value = false;
182
+ };
183
+ _endInt = (data) => {
184
+ const value = parseInt(data, 10);
185
+ if (isNaN(value)) {
186
+ throw new Error("Expected an integer but got '" + data + "'");
187
+ }
188
+ else {
189
+ this._push(value);
190
+ this._value = false;
191
+ }
192
+ };
193
+ _endDouble = (data) => {
194
+ const value = parseFloat(data);
195
+ if (isNaN(value)) {
196
+ const lower = data.toLowerCase();
197
+ if (lower === 'nan') {
198
+ this._push(NaN);
199
+ this._value = false;
200
+ }
201
+ else if (lower === '-inf' || lower === '-infinity') {
202
+ this._push(-Infinity);
203
+ this._value = false;
204
+ }
205
+ else if (lower === 'inf' || lower === 'infinity') {
206
+ this._push(Infinity);
207
+ this._value = false;
208
+ }
209
+ else {
210
+ throw new Error("Expected a double but got '" + data + "'");
211
+ }
212
+ }
213
+ else {
214
+ this._push(value);
215
+ this._value = false;
216
+ }
217
+ };
218
+ _endString = (data) => {
219
+ this._push(data);
220
+ this._value = false;
221
+ };
222
+ _endArray = (_data) => {
223
+ const mark = this._marks.pop() ?? 0;
224
+ this._stack.splice(mark, this._stack.length - mark, this._stack.slice(mark));
225
+ this._value = false;
226
+ };
227
+ _endStruct = (_data) => {
228
+ const mark = this._marks.pop() ?? 0;
229
+ const struct = {};
230
+ const items = this._stack.slice(mark);
231
+ for (let i = 0; i < items.length; i += 2) {
232
+ const key = String(items[i]);
233
+ struct[key] = items[i + 1];
234
+ }
235
+ this._stack.splice(mark, this._stack.length - mark, struct);
236
+ this._value = false;
237
+ };
238
+ _endBase64 = (data) => {
239
+ const buffer = Buffer.from(data, 'base64');
240
+ this._push(buffer);
241
+ this._value = false;
242
+ };
243
+ _endDateTime = (data) => {
244
+ const date = this.dateFormatter.decodeIso8601(data);
245
+ this._push(date);
246
+ this._value = false;
247
+ };
248
+ _endI8 = (data) => {
249
+ if (!Deserializer.isInteger.test(data)) {
250
+ throw new Error(`Expected integer (I8) value but got "${data}"`);
251
+ }
252
+ else {
253
+ this._endString(data);
254
+ }
255
+ };
256
+ _endValue = (data) => {
257
+ if (this._value) {
258
+ this._endString(data);
259
+ }
260
+ };
261
+ _endParams = (_data) => {
262
+ this._responseType = 'params';
263
+ };
264
+ _endFault = (_data) => {
265
+ this._responseType = 'fault';
266
+ };
267
+ _endMethodResponse = (_data) => {
268
+ this._type = 'methodresponse';
269
+ };
270
+ _endMethodName = (data) => {
271
+ this._methodname = data;
272
+ };
273
+ _endMethodCall = (_data) => {
274
+ this._type = 'methodcall';
275
+ };
276
+ }
277
+ exports.Deserializer = Deserializer;
278
+ //# sourceMappingURL=Deserializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Deserializer.js","sourceRoot":"","sources":["../../src/xmlrpc/Deserializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Encoding, XmlRpcValue } from './XmlRpcTypes';
2
+ export declare function serializeMethodCall(method: string, params?: XmlRpcValue[], encoding?: Encoding): string;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeMethodCall = serializeMethodCall;
4
+ const byte_base64_1 = require("byte-base64");
5
+ const xmlbuilder2_1 = require("xmlbuilder2");
6
+ const CustomType_1 = require("./CustomType");
7
+ const DateFormatter_1 = require("./DateFormatter");
8
+ const illegalChars = /^(?![^<&]*]]>[^<&]*)[^<&]*$/;
9
+ const dateFormatter = new DateFormatter_1.DateFormatter();
10
+ // Creates the XML for an XML-RPC method call
11
+ function serializeMethodCall(method, params = [], encoding) {
12
+ const xml = (0, xmlbuilder2_1.create)({ version: '1.0', encoding })
13
+ .ele('methodCall')
14
+ .ele('methodName')
15
+ .txt(method)
16
+ .up()
17
+ .ele('params');
18
+ params.forEach((param) => {
19
+ serializeValue(param, xml.ele('param'));
20
+ });
21
+ // Includes the <?xml ...> declaration
22
+ return xml.doc().toString();
23
+ }
24
+ function serializeValue(value, xml) {
25
+ let current = { value, xml };
26
+ const stack = [current];
27
+ let valueNode;
28
+ let next;
29
+ while (stack.length > 0) {
30
+ current = stack[stack.length - 1];
31
+ if (current.index != undefined) {
32
+ // Iterating a compound
33
+ next = getNextItemsFrame(current);
34
+ if (next != undefined) {
35
+ stack.push(next);
36
+ }
37
+ else {
38
+ stack.pop();
39
+ }
40
+ }
41
+ else {
42
+ // we're about to add a new value (compound or simple)
43
+ valueNode = current.xml.ele('value');
44
+ switch (typeof current.value) {
45
+ case 'boolean':
46
+ appendBoolean(current.value, valueNode);
47
+ stack.pop();
48
+ break;
49
+ case 'string':
50
+ appendString(current.value, valueNode);
51
+ stack.pop();
52
+ break;
53
+ case 'number':
54
+ appendNumber(current.value, valueNode);
55
+ stack.pop();
56
+ break;
57
+ case 'object':
58
+ if (current.value == undefined) {
59
+ valueNode.ele('nil');
60
+ stack.pop();
61
+ }
62
+ else if (current.value instanceof Date) {
63
+ appendDatetime(current.value, valueNode);
64
+ stack.pop();
65
+ }
66
+ else if (Buffer.isBuffer(current.value)) {
67
+ appendBuffer(current.value, valueNode);
68
+ stack.pop();
69
+ }
70
+ else if (current.value instanceof CustomType_1.CustomType) {
71
+ current.value.serialize(valueNode);
72
+ stack.pop();
73
+ }
74
+ else {
75
+ if (Array.isArray(current.value)) {
76
+ current.xml = valueNode.ele('array').ele('data');
77
+ }
78
+ else {
79
+ current.xml = valueNode.ele('struct');
80
+ current.keys = Object.keys(current.value);
81
+ }
82
+ current.index = 0;
83
+ next = getNextItemsFrame(current);
84
+ if (next != undefined) {
85
+ stack.push(next);
86
+ }
87
+ else {
88
+ stack.pop();
89
+ }
90
+ }
91
+ break;
92
+ default:
93
+ stack.pop();
94
+ break;
95
+ }
96
+ }
97
+ }
98
+ }
99
+ function getNextItemsFrame(frame) {
100
+ let nextFrame;
101
+ if (frame.keys != undefined && frame.index != undefined) {
102
+ if (frame.index < frame.keys.length) {
103
+ const key = frame.keys[frame.index++];
104
+ const member = frame.xml.ele('member').ele('name').txt(key).up();
105
+ nextFrame = {
106
+ value: frame.value[key],
107
+ xml: member,
108
+ };
109
+ }
110
+ }
111
+ else if (frame.index != undefined &&
112
+ Array.isArray(frame.value) &&
113
+ frame.index < frame.value.length) {
114
+ nextFrame = {
115
+ value: frame.value[frame.index],
116
+ xml: frame.xml,
117
+ };
118
+ frame.index++;
119
+ }
120
+ return nextFrame;
121
+ }
122
+ function appendBoolean(value, xml) {
123
+ xml.ele('boolean').txt(value ? '1' : '0');
124
+ }
125
+ function appendString(value, xml) {
126
+ if (!illegalChars.test(value)) {
127
+ xml.ele('string').dat(value);
128
+ }
129
+ else {
130
+ xml.ele('string').txt(value);
131
+ }
132
+ }
133
+ function appendNumber(value, xml) {
134
+ if (value % 1 === 0) {
135
+ xml.ele('int').txt(String(value));
136
+ }
137
+ else if (value === Infinity) {
138
+ xml.ele('double').txt('inf');
139
+ }
140
+ else if (value === -Infinity) {
141
+ xml.ele('double').txt('-inf');
142
+ }
143
+ else if (isNaN(value)) {
144
+ xml.ele('double').txt('nan');
145
+ }
146
+ else {
147
+ xml.ele('double').txt(String(value));
148
+ }
149
+ }
150
+ function appendDatetime(value, xml) {
151
+ xml.ele('dateTime.iso8601').txt(dateFormatter.encodeIso8601(value));
152
+ }
153
+ function appendBuffer(value, xml) {
154
+ xml.ele('base64').txt((0, byte_base64_1.bytesToBase64)(value));
155
+ }
156
+ //# sourceMappingURL=Serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../../src/xmlrpc/Serializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Options as GotOptions } from 'got';
2
+ import { Encoding, XmlRpcValue, XmlRpcValueOrFault } from './XmlRpcTypes';
3
+ export interface XmlRpcClientOptions {
4
+ encoding?: Encoding;
5
+ headers?: Record<string, string>;
6
+ /** Additional got options */
7
+ gotOptions?: GotOptions;
8
+ }
9
+ export declare class XmlRpcClient {
10
+ url: string;
11
+ encoding?: Encoding;
12
+ headers: Record<string, string>;
13
+ gotOptions?: GotOptions;
14
+ constructor(url: string, options?: XmlRpcClientOptions);
15
+ methodCall(method: string, params?: XmlRpcValue[]): Promise<XmlRpcValue>;
16
+ multiMethodCall(requests: {
17
+ methodName: string;
18
+ params: XmlRpcValue[];
19
+ }[]): Promise<XmlRpcValueOrFault[]>;
20
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XmlRpcClient = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const got_1 = tslib_1.__importDefault(require("got"));
6
+ const Deserializer_1 = require("./Deserializer");
7
+ const Serializer_1 = require("./Serializer");
8
+ const XmlRpcFault_1 = require("./XmlRpcFault");
9
+ // A client for making XML-RPC method calls over HTTP(S)
10
+ class XmlRpcClient {
11
+ url;
12
+ encoding;
13
+ headers = {
14
+ 'Content-Type': 'text/xml',
15
+ Accept: 'text/xml',
16
+ };
17
+ gotOptions;
18
+ constructor(url, options) {
19
+ this.url = url;
20
+ this.encoding = options?.encoding;
21
+ this.gotOptions = options?.gotOptions;
22
+ if (options?.headers != undefined) {
23
+ this.headers = { ...this.headers, ...options.headers };
24
+ }
25
+ }
26
+ // Make an XML-RPC call to the server and return the response
27
+ async methodCall(method, params) {
28
+ const body = (0, Serializer_1.serializeMethodCall)(method, params, this.encoding);
29
+ let resText;
30
+ try {
31
+ const response = await got_1.default.post(this.url, {
32
+ body,
33
+ headers: this.headers,
34
+ responseType: 'text',
35
+ ...this.gotOptions,
36
+ });
37
+ resText = response.body;
38
+ }
39
+ catch (err) {
40
+ const error = err;
41
+ if (error.code === 'ECONNREFUSED' || error.code === 'ENOTFOUND') {
42
+ throw new Error(`XML-RPC call "${method}" to ${this.url} failed to connect`);
43
+ }
44
+ throw err;
45
+ }
46
+ const deserializer = new Deserializer_1.Deserializer(this.encoding);
47
+ return await deserializer.deserializeMethodResponse(resText);
48
+ }
49
+ async multiMethodCall(requests) {
50
+ const res = await this.methodCall('system.multicall', [requests]);
51
+ if (!Array.isArray(res) || res.length !== requests.length) {
52
+ throw new Error(`malformed system.multicall response`);
53
+ }
54
+ const output = [];
55
+ const createFault = (fault = {}) => {
56
+ const faultString = typeof fault.faultString === 'string' ? fault.faultString : undefined;
57
+ const faultCode = typeof fault.faultCode === 'number' ? fault.faultCode : undefined;
58
+ return new XmlRpcFault_1.XmlRpcFault(faultString, faultCode);
59
+ };
60
+ for (const entry of res) {
61
+ if (!Array.isArray(entry) || entry.length !== 1) {
62
+ output.push(createFault(entry));
63
+ }
64
+ else {
65
+ output.push(entry[0]);
66
+ }
67
+ }
68
+ return output;
69
+ }
70
+ }
71
+ exports.XmlRpcClient = XmlRpcClient;
72
+ //# sourceMappingURL=XmlRpcClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XmlRpcClient.js","sourceRoot":"","sources":["../../src/xmlrpc/XmlRpcClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare class XmlRpcFault extends Error {
2
+ code?: number;
3
+ faultCode?: number;
4
+ faultString?: string;
5
+ constructor(faultString?: string, faultCode?: number);
6
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XmlRpcFault = void 0;
4
+ class XmlRpcFault extends Error {
5
+ code;
6
+ faultCode;
7
+ faultString;
8
+ constructor(faultString, faultCode) {
9
+ const msg = `XML-RPC fault${faultString != undefined ? ': ' + faultString : ''}`;
10
+ super(msg);
11
+ this.code = this.faultCode = faultCode;
12
+ this.faultString = faultString;
13
+ }
14
+ }
15
+ exports.XmlRpcFault = XmlRpcFault;
16
+ //# sourceMappingURL=XmlRpcFault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XmlRpcFault.js","sourceRoot":"","sources":["../../src/xmlrpc/XmlRpcFault.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAY,SAAQ,KAAK;IAClC,IAAI,CAAU;IACd,SAAS,CAAU;IACnB,WAAW,CAAU;IAErB,YAAY,WAAoB,EAAE,SAAkB;QAChD,MAAM,GAAG,GAAG,gBAAgB,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACjF,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;CACJ;AAZD,kCAYC"}
@@ -0,0 +1,7 @@
1
+ import { XmlRpcFault } from './XmlRpcFault';
2
+ export type XmlRpcValue = undefined | boolean | number | string | Date | Uint8Array | XmlRpcValue[] | XmlRpcStruct;
3
+ export type XmlRpcStruct = {
4
+ [key: string]: XmlRpcValue;
5
+ };
6
+ export type Encoding = 'ascii' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'latin1' | 'binary' | 'hex';
7
+ export type XmlRpcValueOrFault = XmlRpcValue | XmlRpcFault;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=XmlRpcTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XmlRpcTypes.js","sourceRoot":"","sources":["../../src/xmlrpc/XmlRpcTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export { CustomType } from './CustomType';
2
+ export { DateFormatter, type DateFormatterOptions } from './DateFormatter';
3
+ export { Deserializer } from './Deserializer';
4
+ export { serializeMethodCall } from './Serializer';
5
+ export { XmlRpcClient, type XmlRpcClientOptions } from './XmlRpcClient';
6
+ export { XmlRpcFault } from './XmlRpcFault';
7
+ export type { Encoding, XmlRpcStruct, XmlRpcValue, XmlRpcValueOrFault, } from './XmlRpcTypes';
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XmlRpcFault = exports.XmlRpcClient = exports.serializeMethodCall = exports.Deserializer = exports.DateFormatter = exports.CustomType = void 0;
4
+ var CustomType_1 = require("./CustomType");
5
+ Object.defineProperty(exports, "CustomType", { enumerable: true, get: function () { return CustomType_1.CustomType; } });
6
+ var DateFormatter_1 = require("./DateFormatter");
7
+ Object.defineProperty(exports, "DateFormatter", { enumerable: true, get: function () { return DateFormatter_1.DateFormatter; } });
8
+ var Deserializer_1 = require("./Deserializer");
9
+ Object.defineProperty(exports, "Deserializer", { enumerable: true, get: function () { return Deserializer_1.Deserializer; } });
10
+ var Serializer_1 = require("./Serializer");
11
+ Object.defineProperty(exports, "serializeMethodCall", { enumerable: true, get: function () { return Serializer_1.serializeMethodCall; } });
12
+ var XmlRpcClient_1 = require("./XmlRpcClient");
13
+ Object.defineProperty(exports, "XmlRpcClient", { enumerable: true, get: function () { return XmlRpcClient_1.XmlRpcClient; } });
14
+ var XmlRpcFault_1 = require("./XmlRpcFault");
15
+ Object.defineProperty(exports, "XmlRpcFault", { enumerable: true, get: function () { return XmlRpcFault_1.XmlRpcFault; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/xmlrpc/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,iDAA2E;AAAlE,8GAAA,aAAa,OAAA;AACtB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,2CAAmD;AAA1C,iHAAA,mBAAmB,OAAA;AAC5B,+CAAwE;AAA/D,4GAAA,YAAY,OAAA;AACrB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kastov/node-supervisord",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "A Node.js library for communicating with the Supervisord XML-RPC API",
5
5
  "keywords": [
6
6
  "supervisor",
@@ -28,6 +28,7 @@
28
28
  "lint-staged": "lint-staged"
29
29
  },
30
30
  "devDependencies": {
31
+ "@types/sax": "^1.2.7",
31
32
  "husky": "^9.0.11",
32
33
  "lint-staged": "^15.2.2",
33
34
  "prettier-plugin-organize-imports": "^3.2.4",
@@ -50,6 +51,9 @@
50
51
  ]
51
52
  },
52
53
  "dependencies": {
53
- "@foxglove/xmlrpc": "^1.3.0"
54
+ "byte-base64": "^1.1.0",
55
+ "got": "^14.4.5",
56
+ "sax": "^1.4.1",
57
+ "xmlbuilder2": "^3.1.1"
54
58
  }
55
59
  }