ngx-soap
Version:
SOAP service for Angular
237 lines (236 loc) • 7.16 kB
TypeScript
import { EventEmitter } from 'events';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
export interface IXmlAttribute {
name: string;
value: string;
}
export interface IWsdlBaseOptions {
attributesKey?: string;
valueKey?: string;
xmlKey?: string;
overrideRootElement?: {
namespace: string;
xmlnsAttributes?: IXmlAttribute[];
};
ignoredNamespaces?: boolean | string[] | {
namespaces?: string[];
override?: boolean;
};
ignoreBaseNameSpaces?: boolean;
escapeXML?: boolean;
returnFault?: boolean;
handleNilAsNull?: boolean;
wsdl_headers?: {
[key: string]: any;
};
wsdl_options?: {
[key: string]: any;
};
}
export interface Definitions {
descriptions: object;
ignoredNamespaces: string[];
messages: WsdlMessages;
portTypes: WsdlPortTypes;
bindings: WsdlBindings;
services: WsdlServices;
schemas: WsdlSchemas;
valueKey: string;
xmlKey: string;
xmlns: WsdlXmlns;
'$targetNamespace': string;
'$name': string;
}
export interface WsdlSchemas {
[prop: string]: WsdlSchema;
}
export interface WsdlSchema extends XsdTypeBase {
children: any[];
complexTypes?: WsdlElements;
elements?: WsdlElements;
includes: any[];
name: string;
nsName: string;
prefix: string;
types?: WsdlElements;
xmlns: WsdlXmlns;
}
export interface WsdlElements {
[prop: string]: XsdElement;
}
export declare type XsdElement = XsdElementType | XsdComplexType;
export interface WsdlXmlns {
wsu?: string;
wsp?: string;
wsam?: string;
soap?: string;
tns?: string;
xsd?: string;
__tns__?: string;
[prop: string]: string | void;
}
export interface XsdComplexType extends XsdTypeBase {
children: XsdElement[] | void;
name: string;
nsName: string;
prefix: string;
'$name': string;
[prop: string]: any;
}
export interface XsdElementType extends XsdTypeBase {
children: XsdElement[] | void;
name: string;
nsName: string;
prefix: string;
targetNSAlias: string;
targetNamespace: string;
'$lookupType': string;
'$lookupTypes': any[];
'$name': string;
'$type': string;
[prop: string]: any;
}
export interface WsdlMessages {
[prop: string]: WsdlMessage;
}
export interface WsdlMessage extends XsdTypeBase {
element: XsdElement;
parts: {
[prop: string]: any;
};
'$name': string;
}
export interface WsdlPortTypes {
[prop: string]: WsdlPortType;
}
export interface WsdlPortType extends XsdTypeBase {
methods: {
[prop: string]: XsdElement;
};
}
export interface WsdlBindings {
[prop: string]: WsdlBinding;
}
export interface WsdlBinding extends XsdTypeBase {
methods: WsdlElements;
style: string;
transport: string;
topElements: {
[prop: string]: any;
};
}
export interface WsdlServices {
[prop: string]: WsdlService;
}
export interface WsdlService extends XsdTypeBase {
ports: {
[prop: string]: any;
};
}
export interface XsdTypeBase {
ignoredNamespaces: string[];
valueKey: string;
xmlKey: string;
xmlns?: WsdlXmlns;
}
export interface IOptions extends IWsdlBaseOptions {
disableCache?: boolean;
endpoint?: string;
envelopeKey?: string;
httpClient?: HttpClient;
stream?: boolean;
forceSoap12Headers?: boolean;
customDeserializer?: any;
[key: string]: any;
}
export interface WSDL {
constructor(definition: any, uri: string, options?: IOptions): any;
ignoredNamespaces: string[];
ignoreBaseNameSpaces: boolean;
valueKey: string;
xmlKey: string;
xmlnsInEnvelope: string;
onReady(callback: (err: Error) => void): void;
processIncludes(callback: (err: Error) => void): void;
describeServices(): {
[k: string]: any;
};
toXML(): string;
xmlToObject(xml: any, callback?: (err: Error, result: any) => void): any;
findSchemaObject(nsURI: string, qname: string): XsdElement | null | undefined;
objectToDocumentXML(name: string, params: any, nsPrefix?: string, nsURI?: string, type?: string): any;
objectToRpcXML(name: string, params: any, nsPrefix?: string, nsURI?: string, isParts?: any): string;
isIgnoredNameSpace(ns: string): boolean;
filterOutIgnoredNameSpace(ns: string): string;
objectToXML(obj: any, name: string, nsPrefix?: any, nsURI?: string, isFirst?: boolean, xmlnsAttr?: any, schemaObject?: any, nsContext?: any): string;
processAttributes(child: any, nsContext: any): string;
findSchemaType(name: any, nsURI: any): any;
findChildSchemaObject(parameterTypeObj: any, childName: any, backtrace?: any): any;
uri: string;
definitions: Definitions;
}
export interface Client extends EventEmitter {
constructor(wsdl: WSDL, endpoint?: string, options?: IOptions): any;
addBodyAttribute(bodyAttribute: any, name?: string, namespace?: string, xmlns?: string): void;
addHttpHeader(name: string, value: any): void;
addSoapHeader(soapHeader: any, name?: string, namespace?: any, xmlns?: string): number;
changeSoapHeader(index: number, soapHeader: any, name?: string, namespace?: string, xmlns?: string): void;
clearBodyAttributes(): void;
clearHttpHeaders(): void;
clearSoapHeaders(): void;
describe(): any;
getBodyAttributes(): any[];
getHttpHeaders(): {
[k: string]: string;
};
getSoapHeaders(): string[];
setEndpoint(endpoint: string): void;
setSOAPAction(action: string): void;
setSecurity(security: ISecurity): void;
wsdl: WSDL;
[method: string]: ISoapMethod | WSDL | Function;
call(method: string, body: any, options?: any, extraHeaders?: any): Observable<ISoapMethodResponse>;
}
export interface ISoapMethod {
(args: any, options?: any, extraHeaders?: any): Observable<ISoapMethodResponse>;
}
export interface ISoapMethodResponse {
err: any;
header: any;
responseBody: string;
xml: string;
result: any;
}
export interface ISecurity {
addOptions(options: any): void;
toXML(): string;
}
export interface BasicAuthSecurity extends ISecurity {
constructor(username: string, password: string, defaults?: any): any;
addHeaders(headers: any): void;
addOptions(options: any): void;
toXML(): string;
}
export interface BearerSecurity extends ISecurity {
constructor(token: string, defaults?: any): any;
addHeaders(headers: any): void;
addOptions(options: any): void;
toXML(): string;
}
export interface WSSecurity extends ISecurity {
constructor(username: string, password: string, options?: any): any;
addOptions(options: any): void;
toXML(): string;
}
export interface WSSecurityCert extends ISecurity {
constructor(privatePEM: any, publicP12PEM: any, password: any): any;
addOptions(options: any): void;
toXML(): string;
}
export interface NTLMSecurity extends ISecurity {
constructor(username: string, password: string, domain: string, workstation: any): any;
addHeaders(headers: any): void;
addOptions(options: any): void;
toXML(): string;
}