soap 0.27.1 → 0.31.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/lib/client.js CHANGED
@@ -31,36 +31,32 @@ var nonIdentifierChars = /[^a-z$_0-9]/i;
31
31
  var Client = /** @class */ (function (_super) {
32
32
  __extends(Client, _super);
33
33
  function Client(wsdl, endpoint, options) {
34
- var _this = _super.call(this) || this;
34
+ var _this_1 = _super.call(this) || this;
35
35
  options = options || {};
36
- _this.wsdl = wsdl;
37
- _this._initializeOptions(options);
38
- _this._initializeServices(endpoint);
39
- _this.httpClient = options.httpClient || new http_1.HttpClient(options);
36
+ _this_1.wsdl = wsdl;
37
+ _this_1._initializeOptions(options);
38
+ _this_1._initializeServices(endpoint);
39
+ _this_1.httpClient = options.httpClient || new http_1.HttpClient(options);
40
40
  var promiseOptions = { multiArgs: true };
41
41
  if (options.overridePromiseSuffix) {
42
42
  promiseOptions.suffix = options.overridePromiseSuffix;
43
43
  }
44
- BluebirdPromise.promisifyAll(_this, promiseOptions);
45
- return _this;
44
+ BluebirdPromise.promisifyAll(_this_1, promiseOptions);
45
+ return _this_1;
46
46
  }
47
47
  /** add soapHeader to soap:Header node */
48
48
  Client.prototype.addSoapHeader = function (soapHeader, name, namespace, xmlns) {
49
49
  if (!this.soapHeaders) {
50
50
  this.soapHeaders = [];
51
51
  }
52
- if (typeof soapHeader === 'object') {
53
- soapHeader = this.wsdl.objectToXML(soapHeader, name, namespace, xmlns, true);
54
- }
52
+ soapHeader = this._processSoapHeader(soapHeader, name, namespace, xmlns);
55
53
  return this.soapHeaders.push(soapHeader) - 1;
56
54
  };
57
55
  Client.prototype.changeSoapHeader = function (index, soapHeader, name, namespace, xmlns) {
58
56
  if (!this.soapHeaders) {
59
57
  this.soapHeaders = [];
60
58
  }
61
- if (typeof soapHeader === 'object') {
62
- soapHeader = this.wsdl.objectToXML(soapHeader, name, namespace, xmlns, true);
63
- }
59
+ soapHeader = this._processSoapHeader(soapHeader, name, namespace, xmlns);
64
60
  this.soapHeaders[index] = soapHeader;
65
61
  };
66
62
  /** return all defined headers */
@@ -170,7 +166,7 @@ var Client = /** @class */ (function (_super) {
170
166
  return def;
171
167
  };
172
168
  Client.prototype._defineMethod = function (method, location) {
173
- var _this = this;
169
+ var _this_1 = this;
174
170
  var temp;
175
171
  return function (args, callback, options, extraHeaders) {
176
172
  if (typeof args === 'function') {
@@ -188,13 +184,34 @@ var Client = /** @class */ (function (_super) {
188
184
  extraHeaders = options;
189
185
  options = temp;
190
186
  }
191
- _this._invoke(method, args, location, function (error, result, rawResponse, soapHeader, rawRequest) {
187
+ _this_1._invoke(method, args, location, function (error, result, rawResponse, soapHeader, rawRequest) {
192
188
  callback(error, result, rawResponse, soapHeader, rawRequest);
193
189
  }, options, extraHeaders);
194
190
  };
195
191
  };
192
+ Client.prototype._processSoapHeader = function (soapHeader, name, namespace, xmlns) {
193
+ switch (typeof soapHeader) {
194
+ case 'object':
195
+ return this.wsdl.objectToXML(soapHeader, name, namespace, xmlns, true);
196
+ case 'function':
197
+ var _this_2 = this;
198
+ // arrow function does not support arguments variable
199
+ // tslint:disable-next-line
200
+ return function () {
201
+ var result = soapHeader.apply(null, arguments);
202
+ if (typeof result === 'object') {
203
+ return _this_2.wsdl.objectToXML(result, name, namespace, xmlns, true);
204
+ }
205
+ else {
206
+ return result;
207
+ }
208
+ };
209
+ default:
210
+ return soapHeader;
211
+ }
212
+ };
196
213
  Client.prototype._invoke = function (method, args, location, callback, options, extraHeaders) {
197
- var _this = this;
214
+ var _this_1 = this;
198
215
  var name = method.$name;
199
216
  var input = method.input;
200
217
  var output = method.output;
@@ -224,7 +241,7 @@ var Client = /** @class */ (function (_super) {
224
241
  var error = new Error('Error http status codes');
225
242
  error.response = response;
226
243
  error.body = body;
227
- _this.emit('soapError', error, eid);
244
+ _this_1.emit('soapError', error, eid);
228
245
  return callback(error, obj, body, obj.Header);
229
246
  }
230
247
  return callback(null, obj, body, obj.Header);
@@ -254,7 +271,7 @@ var Client = /** @class */ (function (_super) {
254
271
  var parseSync = function (body, response) {
255
272
  var obj;
256
273
  try {
257
- obj = _this.wsdl.xmlToObject(body);
274
+ obj = _this_1.wsdl.xmlToObject(body);
258
275
  }
259
276
  catch (error) {
260
277
  // When the output element cannot be looked up in the wsdl and the body is JSON
@@ -269,15 +286,11 @@ var Client = /** @class */ (function (_super) {
269
286
  }
270
287
  error.response = response;
271
288
  error.body = body;
272
- _this.emit('soapError', error, eid);
289
+ _this_1.emit('soapError', error, eid);
273
290
  return callback(error, response, body, undefined, xml);
274
291
  }
275
292
  return finish(obj, body, response);
276
293
  };
277
- if (this.wsdl.options.forceSoap12Headers) {
278
- headers['Content-Type'] = 'application/soap+xml; charset=utf-8';
279
- xmlnsSoap = 'xmlns:' + envelopeKey + '="http://www.w3.org/2003/05/soap-envelope"';
280
- }
281
294
  if (this.SOAPAction) {
282
295
  soapAction = this.SOAPAction;
283
296
  }
@@ -287,7 +300,11 @@ var Client = /** @class */ (function (_super) {
287
300
  else {
288
301
  soapAction = ((ns.lastIndexOf('/') !== ns.length - 1) ? ns + '/' : ns) + name;
289
302
  }
290
- if (!this.wsdl.options.forceSoap12Headers) {
303
+ if (this.wsdl.options.forceSoap12Headers) {
304
+ headers['Content-Type'] = "application/soap+xml; charset=utf-8; action=\"" + soapAction + "\"";
305
+ xmlnsSoap = 'xmlns:' + envelopeKey + '="http://www.w3.org/2003/05/soap-envelope"';
306
+ }
307
+ else {
291
308
  headers.SOAPAction = '"' + soapAction + '"';
292
309
  }
293
310
  options = options || {};
@@ -315,15 +332,26 @@ var Client = /** @class */ (function (_super) {
315
332
  // pass `input.$lookupType` if `input.$type` could not be found
316
333
  message = this.wsdl.objectToDocumentXML(input.$name, args, input.targetNSAlias, input.targetNamespace, (input.$type || input.$lookupType));
317
334
  }
335
+ var decodedHeaders;
336
+ if (this.soapHeaders) {
337
+ decodedHeaders = this.soapHeaders.map(function (header) {
338
+ if (typeof header === 'function') {
339
+ return header(method, location, soapAction, args);
340
+ }
341
+ else {
342
+ return header;
343
+ }
344
+ }).join(' ');
345
+ }
318
346
  xml = '<?xml version="1.0" encoding="utf-8"?>' +
319
347
  '<' + envelopeKey + ':Envelope ' +
320
348
  xmlnsSoap + ' ' +
321
349
  'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
322
350
  encoding +
323
351
  this.wsdl.xmlnsInEnvelope + '>' +
324
- ((this.soapHeaders || this.security) ?
325
- ('<' + envelopeKey + ':Header>' +
326
- (this.soapHeaders ? this.soapHeaders.join('\n') : '') +
352
+ ((decodedHeaders || this.security) ?
353
+ ('<' + envelopeKey + ':Header' + (this.wsdl.xmlnsInHeader ? (' ' + this.wsdl.xmlnsInHeader) : '') + '>' +
354
+ (decodedHeaders ? decodedHeaders : '') +
327
355
  (this.security && !this.security.postProcess ? this.security.toXML() : '') +
328
356
  '</' + envelopeKey + ':Header>')
329
357
  :
@@ -361,10 +389,10 @@ var Client = /** @class */ (function (_super) {
361
389
  req = this.httpClient.requestStream(location, xml, headers, options, this);
362
390
  this.lastRequestHeaders = req.headers;
363
391
  var onError_1 = function (err) {
364
- _this.lastResponse = null;
365
- _this.lastResponseHeaders = null;
366
- _this.lastElapsedTime = null;
367
- _this.emit('response', null, null, eid);
392
+ _this_1.lastResponse = null;
393
+ _this_1.lastResponseHeaders = null;
394
+ _this_1.lastElapsedTime = null;
395
+ _this_1.emit('response', null, null, eid);
368
396
  callback(err, undefined, undefined, undefined, xml);
369
397
  };
370
398
  req.on('error', onError_1);
@@ -374,23 +402,23 @@ var Client = /** @class */ (function (_super) {
374
402
  // don't stream
375
403
  if (response.statusCode !== 200 || !output || !output.$lookupTypes) {
376
404
  response.pipe(concatStream({ encoding: 'string' }, function (body) {
377
- _this.lastResponse = body;
378
- _this.lastResponseHeaders = response && response.headers;
379
- _this.lastElapsedTime = Date.now() - startTime_1;
380
- _this.emit('response', body, response, eid);
405
+ _this_1.lastResponse = body;
406
+ _this_1.lastResponseHeaders = response && response.headers;
407
+ _this_1.lastElapsedTime = Date.now() - startTime_1;
408
+ _this_1.emit('response', body, response, eid);
381
409
  return parseSync(body, response);
382
410
  }));
383
411
  return;
384
412
  }
385
- _this.wsdl.xmlToObject(response, function (error, obj) {
386
- _this.lastResponse = response;
387
- _this.lastResponseHeaders = response && response.headers;
388
- _this.lastElapsedTime = Date.now() - startTime_1;
389
- _this.emit('response', '<stream>', response, eid);
413
+ _this_1.wsdl.xmlToObject(response, function (error, obj) {
414
+ _this_1.lastResponse = response;
415
+ _this_1.lastResponseHeaders = response && response.headers;
416
+ _this_1.lastElapsedTime = Date.now() - startTime_1;
417
+ _this_1.emit('response', '<stream>', response, eid);
390
418
  if (error) {
391
419
  error.response = response;
392
420
  error.body = '<stream>';
393
- _this.emit('soapError', error, eid);
421
+ _this_1.emit('soapError', error, eid);
394
422
  return callback(error, response, undefined, undefined, xml);
395
423
  }
396
424
  return finish(obj, '<stream>', response);
@@ -399,10 +427,10 @@ var Client = /** @class */ (function (_super) {
399
427
  return;
400
428
  }
401
429
  req = this.httpClient.request(location, xml, function (err, response, body) {
402
- _this.lastResponse = body;
403
- _this.lastResponseHeaders = response && response.headers;
404
- _this.lastElapsedTime = response && response.elapsedTime;
405
- _this.emit('response', body, response, eid);
430
+ _this_1.lastResponse = body;
431
+ _this_1.lastResponseHeaders = response && response.headers;
432
+ _this_1.lastElapsedTime = response && response.elapsedTime;
433
+ _this_1.emit('response', body, response, eid);
406
434
  if (err) {
407
435
  callback(err, undefined, undefined, undefined, xml);
408
436
  }
package/lib/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/lib/http.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import * as req from 'request';
2
3
  import { IHeaders, IOptions } from './types';
3
4
  export interface IExOptions {
@@ -7,7 +8,7 @@ export interface IAttachment {
7
8
  name: string;
8
9
  contentId: string;
9
10
  mimetype: string;
10
- body: ReadableStream;
11
+ body: NodeJS.ReadableStream;
11
12
  }
12
13
  export declare type Request = req.Request;
13
14
  /**
package/lib/http.js CHANGED
@@ -50,7 +50,7 @@ var HttpClient = /** @class */ (function () {
50
50
  };
51
51
  var mergeOptions = ['headers'];
52
52
  var attachments = exoptions.attachments || [];
53
- if (typeof data === 'string' && attachments.length === 0) {
53
+ if (typeof data === 'string' && attachments.length === 0 && !exoptions.forceMTOM) {
54
54
  headers['Content-Length'] = Buffer.byteLength(data, 'utf8');
55
55
  headers['Content-Type'] = 'application/x-www-form-urlencoded';
56
56
  }
@@ -64,10 +64,22 @@ var HttpClient = /** @class */ (function () {
64
64
  headers: headers,
65
65
  followAllRedirects: true
66
66
  };
67
- if (attachments.length > 0) {
67
+ if (exoptions.forceMTOM || attachments.length > 0) {
68
68
  var start = uuid();
69
+ var action = null;
70
+ if (headers['Content-Type'].indexOf('action') > -1) {
71
+ for (var _i = 0, _a = headers['Content-Type'].split('; '); _i < _a.length; _i++) {
72
+ var ct = _a[_i];
73
+ if (ct.indexOf('action') > -1) {
74
+ action = ct;
75
+ }
76
+ }
77
+ }
69
78
  headers['Content-Type'] =
70
79
  'multipart/related; type="application/xop+xml"; start="<' + start + '>"; start-info="text/xml"; boundary=' + uuid();
80
+ if (action) {
81
+ headers['Content-Type'] = headers['Content-Type'] + '; ' + action;
82
+ }
71
83
  var multipart_1 = [{
72
84
  'Content-Type': 'application/xop+xml; charset=UTF-8; type="text/xml"',
73
85
  'Content-ID': '<' + start + '>',
package/lib/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,28 @@ export interface IWSSecurityCertOptions {
3
3
  hasTimeStamp?: boolean;
4
4
  signatureTransformations?: string[];
5
5
  signatureAlgorithm?: string;
6
+ additionalReferences?: string[];
7
+ signerOptions?: IXmlSignerOptions;
8
+ }
9
+ export interface IXmlSignerOptions {
10
+ prefix?: string;
11
+ attrs?: {
12
+ [key: string]: string;
13
+ };
14
+ existingPrefixes?: {
15
+ [key: string]: string;
16
+ };
6
17
  }
7
18
  export declare class WSSecurityCert implements ISecurity {
8
19
  private publicP12PEM;
9
20
  private signer;
21
+ private signerOptions;
10
22
  private x509Id;
11
23
  private hasTimeStamp;
12
24
  private signatureTransformations;
13
25
  private created;
14
26
  private expires;
27
+ private additionalReferences;
15
28
  constructor(privatePEM: any, publicP12PEM: any, password: any, options?: IWSSecurityCertOptions);
16
29
  postProcess(xml: any, envelopeKey: any): string;
17
30
  }
@@ -25,8 +25,10 @@ function generateId() {
25
25
  var oasisBaseUri = 'http://docs.oasis-open.org/wss/2004/01';
26
26
  var WSSecurityCert = /** @class */ (function () {
27
27
  function WSSecurityCert(privatePEM, publicP12PEM, password, options) {
28
+ if (options === void 0) { options = {}; }
28
29
  var _this = this;
29
- options = options || {};
30
+ this.signerOptions = {};
31
+ this.additionalReferences = [];
30
32
  this.publicP12PEM = publicP12PEM.toString()
31
33
  .replace('-----BEGIN CERTIFICATE-----', '')
32
34
  .replace('-----END CERTIFICATE-----', '')
@@ -36,6 +38,22 @@ var WSSecurityCert = /** @class */ (function () {
36
38
  this.signer.signatureAlgorithm = options.signatureAlgorithm;
37
39
  this.signer.addReference('//*[name(.)="soap:Body"]', ['http://www.w3.org/2001/10/xml-exc-c14n#'], 'http://www.w3.org/2001/04/xmlenc#sha256');
38
40
  }
41
+ if (options.additionalReferences && options.additionalReferences.length > 0) {
42
+ this.additionalReferences = options.additionalReferences;
43
+ }
44
+ if (options.signerOptions) {
45
+ var signerOptions = options.signerOptions;
46
+ this.signerOptions = signerOptions;
47
+ if (!this.signerOptions.existingPrefixes) {
48
+ this.signerOptions.existingPrefixes = {};
49
+ }
50
+ if (this.signerOptions.existingPrefixes && !this.signerOptions.existingPrefixes.wsse) {
51
+ this.signerOptions.existingPrefixes.wsse = oasisBaseUri + "/oasis-200401-wss-wssecurity-secext-1.0.xsd";
52
+ }
53
+ }
54
+ else {
55
+ this.signerOptions = { existingPrefixes: { wsse: oasisBaseUri + "/oasis-200401-wss-wssecurity-secext-1.0.xsd" } };
56
+ }
39
57
  this.signer.signingKey = {
40
58
  key: privatePEM,
41
59
  passphrase: password
@@ -71,17 +89,28 @@ var WSSecurityCert = /** @class */ (function () {
71
89
  ("wsu:Id=\"" + this.x509Id + "\">" + this.publicP12PEM + "</wsse:BinarySecurityToken>") +
72
90
  timestampStr +
73
91
  "</wsse:Security>";
74
- var xmlWithSec = insertStr(secHeader, xml, xml.indexOf('</soap:Header>'));
92
+ var xmlWithSec = insertStr(secHeader, xml, xml.indexOf("</" + envelopeKey + ":Header>"));
75
93
  var references = this.signatureTransformations;
76
94
  var bodyXpath = "//*[name(.)='" + envelopeKey + ":Body']";
77
95
  if (!(this.signer.references.filter(function (ref) { return (ref.xpath === bodyXpath); }).length > 0)) {
78
96
  this.signer.addReference(bodyXpath, references);
79
97
  }
98
+ var _loop_1 = function (name_1) {
99
+ var xpath = "//*[name(.)='" + name_1 + "']";
100
+ if (!(this_1.signer.references.filter(function (ref) { return (ref.xpath === xpath); }).length > 0)) {
101
+ this_1.signer.addReference(xpath, references);
102
+ }
103
+ };
104
+ var this_1 = this;
105
+ for (var _i = 0, _a = this.additionalReferences; _i < _a.length; _i++) {
106
+ var name_1 = _a[_i];
107
+ _loop_1(name_1);
108
+ }
80
109
  var timestampXpath = "//*[name(.)='wsse:Security']/*[local-name(.)='Timestamp']";
81
110
  if (this.hasTimeStamp && !(this.signer.references.filter(function (ref) { return (ref.xpath === timestampXpath); }).length > 0)) {
82
111
  this.signer.addReference(timestampXpath, references);
83
112
  }
84
- this.signer.computeSignature(xmlWithSec);
113
+ this.signer.computeSignature(xmlWithSec, this.signerOptions);
85
114
  return insertStr(this.signer.getSignatureXml(), xmlWithSec, xmlWithSec.indexOf('</wsse:Security>'));
86
115
  };
87
116
  return WSSecurityCert;
@@ -1 +1 @@
1
- {"version":3,"file":"WSSecurityCert.js","sourceRoot":"","sources":["../../src/security/WSSecurityCert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WSSecurityCert.js","sourceRoot":"","sources":["../../src/security/WSSecurityCert.ts"],"names":[],"mappings":"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"}
package/lib/server.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
3
  import * as http from 'http';
4
- import { ISecurity, IServerOptions, IServices } from './types';
4
+ import { IServerOptions, IServices } from './types';
5
5
  import { WSDL } from './wsdl';
6
6
  interface IExpressApp {
7
7
  route: any;
@@ -15,17 +15,20 @@ declare type Response = http.ServerResponse;
15
15
  export interface Server {
16
16
  emit(event: 'request', request: any, methodName: string): boolean;
17
17
  emit(event: 'headers', headers: any, methodName: string): boolean;
18
+ emit(event: 'response', headers: any, methodName: string): boolean;
18
19
  /** Emitted for every received messages. */
19
20
  on(event: 'request', listener: (request: any, methodName: string) => void): this;
20
21
  /** Emitted when the SOAP Headers are not empty. */
21
22
  on(event: 'headers', listener: (headers: any, methodName: string) => void): this;
23
+ /** Emitted before sending SOAP response. */
24
+ on(event: 'response', listener: (response: any, methodName: string) => void): this;
22
25
  }
23
26
  export declare class Server extends EventEmitter {
24
27
  path: string;
25
28
  services: IServices;
26
29
  log: (type: string, data: any) => any;
27
30
  authorizeConnection: (req: Request, res?: Response) => boolean;
28
- authenticate: (security: ISecurity, processAuthResult?: any) => boolean;
31
+ authenticate: (security: any, processAuthResult?: (result: boolean) => void, req?: Request, obj?: any) => boolean | void | Promise<boolean>;
29
32
  private wsdl;
30
33
  private suppressStack;
31
34
  private returnFault;
package/lib/server.js CHANGED
@@ -234,7 +234,7 @@ var Server = /** @class */ (function (_super) {
234
234
  res.end();
235
235
  }
236
236
  };
237
- Server.prototype._process = function (input, req, callback) {
237
+ Server.prototype._process = function (input, req, cb) {
238
238
  var _this_1 = this;
239
239
  var pathname = url.parse(req.url).pathname.replace(/\/$/, '');
240
240
  var obj = this.wsdl.xmlToObject(input);
@@ -246,6 +246,11 @@ var Server = /** @class */ (function (_super) {
246
246
  var portName;
247
247
  var includeTimestamp = obj.Header && obj.Header.Security && obj.Header.Security.Timestamp;
248
248
  var authenticate = this.authenticate || function defaultAuthenticate() { return true; };
249
+ var callback = function (result, statusCode) {
250
+ var response = { result: result };
251
+ _this_1.emit('response', response, methodName);
252
+ cb(response.result, statusCode);
253
+ };
249
254
  var process = function () {
250
255
  if (typeof _this_1.log === 'function') {
251
256
  _this_1.log('info', 'Attempting to bind to ' + pathname);
@@ -287,7 +292,7 @@ var Server = /** @class */ (function (_super) {
287
292
  }
288
293
  try {
289
294
  if (binding.style === 'rpc') {
290
- methodName = Object.keys(body)[0];
295
+ methodName = (Object.keys(body)[0] === 'attributes' ? Object.keys(body)[1] : Object.keys(body)[0]);
291
296
  _this_1.emit('request', obj, methodName);
292
297
  if (headers) {
293
298
  _this_1.emit('headers', headers, methodName);
@@ -309,6 +314,7 @@ var Server = /** @class */ (function (_super) {
309
314
  if (headers) {
310
315
  _this_1.emit('headers', headers, pair.methodName);
311
316
  }
317
+ methodName = pair.methodName;
312
318
  _this_1._executeMethod({
313
319
  serviceName: serviceName,
314
320
  portName: portName,
@@ -330,10 +336,25 @@ var Server = /** @class */ (function (_super) {
330
336
  // Authentication
331
337
  if (typeof authenticate === 'function') {
332
338
  var authResultProcessed_1 = false;
333
- var processAuthResult = function (authResult) {
334
- if (!authResultProcessed_1 && (authResult || authResult === false)) {
335
- authResultProcessed_1 = true;
336
- if (authResult) {
339
+ var processAuthResult_1 = function (authResult) {
340
+ if (authResultProcessed_1) {
341
+ return;
342
+ }
343
+ authResultProcessed_1 = true;
344
+ // Handle errors
345
+ if (authResult instanceof Error) {
346
+ return _this_1._sendError({
347
+ Code: {
348
+ Value: 'SOAP-ENV:Server',
349
+ Subcode: { value: 'InternalServerError' }
350
+ },
351
+ Reason: { Text: authResult.toString() },
352
+ statusCode: 500
353
+ }, callback, includeTimestamp);
354
+ }
355
+ // Handle actual results
356
+ if (typeof authResult === 'boolean') {
357
+ if (authResult === true) {
337
358
  try {
338
359
  process();
339
360
  }
@@ -363,7 +384,17 @@ var Server = /** @class */ (function (_super) {
363
384
  }
364
385
  }
365
386
  };
366
- processAuthResult(authenticate(obj.Header && obj.Header.Security, processAuthResult));
387
+ var functionResult = authenticate(obj.Header && obj.Header.Security, processAuthResult_1, req, obj);
388
+ if (isPromiseLike(functionResult)) {
389
+ functionResult.then(function (result) {
390
+ processAuthResult_1(result);
391
+ }, function (err) {
392
+ processAuthResult_1(err);
393
+ });
394
+ }
395
+ if (typeof functionResult === 'boolean') {
396
+ processAuthResult_1(functionResult);
397
+ }
367
398
  }
368
399
  else {
369
400
  throw new Error('Invalid authenticate function (not a function)');